Siri
| レッスン評価 | 5.0 |
|---|---|
| お気に入り登録者数 | ❤ 5,715回 |
| 講師歴 | 7年8ヶ月 |
| 特徴 | 子供が得意・初心者が得意 |
スタッフより
Siri先生は英語を専攻し、中等教育の学士号を取得しました。幼児、子供や大人まであらゆるレベルの生徒達を2年ほど教えていました。お休みの日には本を読んだり、書き物をしたりして過ごしますが、家族に料理を作ることが多いそうです。先生は大学時代、学生新聞のジャーナリストをしていました。
教師として、忍耐強く教育に情熱を注いでいます。先生は生徒達により多くの知識を蓄え、レベルアップするために喜んで知識を共有してくれます。
楽しくて、興味深い学びはたくさんあります。是非彼女のレッスンにご参加ください!
自己紹介
Hello, my name is Siri. I graduated with the degree of Bachelor of Secondary Education with a specialization in English. I have been teaching both offline and online classes for almost two years. I have experience teaching young children, teenage students, and adults of different levels. I chose teaching as my profession because I want to help students make a change in their lives. I like to read and write during my free time, but I spend most of my downtime cooking for my family. When I was in college, I was one of the journalists for the school publication.
As a teacher, I am patient and dedicated to my students. I like sharing the things that I learned in college to help my students make a better version of themselves.
If you enroll in my class, I can assure you that you will have fun while learning English. You will learn a lot from me. "
- 国
- Philippines
- 出身大学
- St. Francis Xavier College
- 趣味
- I like watching foriegn movies, especially action Japanese and Chinese movies. I like to watch that kind of movies, because I can learn how to defend myself if ever I will be in danger.
みんなのコメント
430件のコメント
Thank you for pointing out my mistake.Thank you for the fun time today.
2025-06-18editYuikaSiri先生ととても楽しくレッスンができました。
2025-06-17editImari先生に笑顔で話してもらえると、私は拙い英語でも、間違っていると思っても、話すことができます。
今日は楽しいレッスンをありがとうございました。
私は、またSiri先生のレッスンが受けられる日を楽しみにしています
She is great at leading lessons and makes learning enjoyable.
2025-06-16editMichiakiわかりやすい。
2025-06-09editKiyomiよかったです。
電波のせいか、声が途切れ途切れになる事が多かった。
2025-06-04editRieゆっくり話してくれるので聞き取りやすかったです!
Siri先生の授業を初めて受けました。
2025-05-28editHanaSiri先生は面白くて、とても話が聞き取りやすいし、わかりやすいです。
なのでとてもおすすめします!
最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最
2025-05-22editAtsuto♡Siri先生のいいところ♡
2026-06-02editRinko笑顔☺️
親しみやすい🥰
面白い🤣
発音が綺麗✨
チャットで説明してくれる💬 などほかにもたくさんあります!
⭐︎Siri先生の悪いところ⭐︎
何もない
Siri先生はとーってもおすすめです!♡私もまたしたいです♡ 小5女子🔰
強いて言うと、話すときに面白くしてくれたり、顔をちゃんと見て話をしてくれた。
2025-05-15editNatsuki評価が高いのも納得
楽しかったです。
2025-05-14editTaiki※ 講師のコメントは、その講師のレッスンを受講した後に投稿することができます