/:::;::::::::::::::::::::::::::::::::::::::::::~-@`@`
./:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
./:::::;/;::::::::::::::::::::::::::/;::::::::::::::ヽ:::::ヽ
/;:::/:;:/::::::::/::::::::::::::::/|;::::::/i;::i;::::|i;:::::|
@`i/i::/|i:::::/;::::::::/i;:/;/;::::/ |;i|:|:::|;::::::::i
/:i |::/::::il;::::::/:::@`@`@`/ .|/ l;:::/ |:/@`@`|:::|i`:::::|@`
il;:|i ./;/:::::|i::::/;:::::/~^~=- -"~"@`@`. |ノ;::::::::;|
|;:::ヽ@`_@`@`ノ;/:::::::i:;:;::|i;:::/ (:o゚) > <(o゚)@`ゝ.|;:::::::::ヽ、 i
ヾ;-=---"ノ;::::;:|i::::::|;::|  ̄  ̄ i;::::::ヾ@`:;:~=─="::|
~=-@`@`-=~;:::ノ;::|;i::::::i;::| |i /;:::::i;;;l::;\;:::;:::::;;/
三==ノ;;:::i|;::i;::|@`@` @`__@` @`~;::::::;:ヽ;::\:;;=:ノ
~`=^彡;:::|;::;|;:|.`i-@` ー @`-~;::::i;:/;:ゝミ=〜"
/ノ::ノ::ノ/:| ~=@` @`-~=-~^^ ̄ ̄
@`@`@`@`--==~三i |::| |;~~:| .| `.──-"/:;:ヽ
@`--~~ | |:::| i:;::::;:i i ./|;::::::i
@`-~;;;ヽ@` .| |:::i .l::::::::|@` / .|;::::::::|=-@`
@`@`-~;:::::::::;;;ヾゝ ヽ::ヽ ヽ::::::ヽ .|::::::::|~|~\@`
::::::::::::::::::::::|i | ヽ:ヽ ヽ:::::::ヽ_ _./;:::::://| .ヾ、
;::::::::::::::::;:;:::|;i ヽヽ ヽ:::::::::\ヽ //::::://// |
;:::::::::::::::::::::::i;|@` ヽヽ ヽ::::::::::\/@`@`::::://// .il
;::::::::::::::::::::::::|i; ヽヽ ヽ:::::::/ヽ@`::// ./ /::>
::::::::::::::::::::::::::| @`@`-:::ヽヽ ヽ/ |i@`/ ./ /;:/
:::::::::::::::::::::::::::|i l @`@`-=~::::::::::\/@`@`| /ヾ@` /、 /;::/
;::::::::::::::::::::::;//"@`. .@` @`/;:::::::::::::::::://└-;";. |";:::::::::ヽ /::/
:::::::::;:;::::::::;//_@`@`@`-~::::::::::::::::::::::/ / i l| i:::::::::::::::|/;:::/
::::::::::::::::/;::::::::::::::::::::::::::::::::::/:: / /; | |i | |::::::::::::|;:::::::/