みんなのレビュー
Ryo
2025-10-16 (木) 11:55
Your class is so fun and so excited. I want to learn in your class again.
Yuika
2025-06-18 (水) 21:49
Thank you for pointing out my mistake.Thank you for the fun time today.
Imari
2025-06-17 (火) 11:56
Siri先生ととても楽しくレッスンができました。
先生に笑顔で話してもらえると、私は拙い英語でも、間違っていると思っても、話すことができます。
今日は楽しいレッスンをありがとうございました。
私は、またSiri先生のレッスンが受けられる日を楽しみにしています
先生に笑顔で話してもらえると、私は拙い英語でも、間違っていると思っても、話すことができます。
今日は楽しいレッスンをありがとうございました。
私は、またSiri先生のレッスンが受けられる日を楽しみにしています
Michiaki
2025-06-16 (月) 09:58
She is great at leading lessons and makes learning enjoyable.
Kiyomi
2025-06-09 (月) 11:26
わかりやすい。
よかったです。
よかったです。
Rie
2025-06-04 (水) 13:56
電波のせいか、声が途切れ途切れになる事が多かった。
ゆっくり話してくれるので聞き取りやすかったです!
ゆっくり話してくれるので聞き取りやすかったです!
Hana
2025-05-28 (水) 17:57
Siri先生の授業を初めて受けました。
Siri先生は面白くて、とても話が聞き取りやすいし、わかりやすいです。
なのでとてもおすすめします!
Siri先生は面白くて、とても話が聞き取りやすいし、わかりやすいです。
なのでとてもおすすめします!
退会済
2025-05-22 (木) 15:48
最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最
Rinko
2026-06-02 (火) 18:08
♡Siri先生のいいところ♡
笑顔☺️
親しみやすい🥰
面白い🤣
発音が綺麗✨
チャットで説明してくれる💬 などほかにもたくさんあります!
⭐︎Siri先生の悪いところ⭐︎
何もない
Siri先生はとーってもおすすめです!♡私もまたしたいです♡ 小5女子🔰
笑顔☺️
親しみやすい🥰
面白い🤣
発音が綺麗✨
チャットで説明してくれる💬 などほかにもたくさんあります!
⭐︎Siri先生の悪いところ⭐︎
何もない
Siri先生はとーってもおすすめです!♡私もまたしたいです♡ 小5女子🔰
Natsuki
2025-05-15 (木) 18:27
強いて言うと、話すときに面白くしてくれたり、顔をちゃんと見て話をしてくれた。
評価が高いのも納得
評価が高いのも納得
講師へのコメントは、その講師のレッスンを受講した後に投稿することができます
