,...........'..,,'',:c:;;',:''....'.,c;:::,,'   ,;'..'...'.;l::,clddcx:'.,.  ...
,'..........,,,,;:;::;:;'.':.''''',,,,;;,,:,.   ,:,,.,...;.,lllc;:ccccccll;. .c:
,'.'';''.'',cc:c;,':;;;;'.';'.;'.;:::;:,:clc.   ,xxlo',;.klxkllkKKKXK0OXNNx.  0O
clcloododxxxxxclkOO00KKKKXXXXXNNNNNNWWWWWWWWd.  .NWKk,,:'xlk0llxNNNNXklOX0l'  ,0
OKKKXXXXXXNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWK.. .xOxl','....'',,kKKX00XKKKd':' ,
XXXNNNNNNNNXNNNNXNXXNNXNNNXXXXXXXXXXXXNXXNXKk..'',,;,',,','......''.:ldk0Xk.d'x 
O0000000000000000KKKKXKKKKKKKKKKXKKKKKKKKxc;,,,,;;;;,,;;,,''...''''.''.',c'...  
OOOOOO0000OOkxxol:codxxk0KKKKKKKK0Okxxxxl,,;;;:;::;,,;,;,,,'''',''''','''..'..  
OOO000Oko;,;,'''''''...',ldxO0OOd:,,'''.,;:::;;;;,.,;;;;,,',,'....',,'...'....  
OOOkdl;'''.'';;'''''..........'',;;;,',,,;cc:::;,;;:;,,,,'',',,,..'.............
olc;;,',,,;::;,,....',,',,,.:lolllllc:::;;,;;':;;:;;:::;''''.......''.... ..,;;;
:;;;;'',;;:,;,,'...'';,..:cooolc;;;:cc,,.......,,,',;:;,,,'''........     .';:;,
;;::;;::::::,,...''.'',colloll:.','.';;,;;lc;'..   .,cccccc::;:::;;,''. ....'..'
ccccc;;;;;;;;,.....',:lloollc'. ':;,'.   .kOdOd;'..';::ccccc:;cccc::c:;'.,;''...
:;,'.'''....''....,:ooooddo:.....',,. ,ollccoclolc:;',;::cllloc;;:cc::ccc:;,'...
:c;'.'.........;ldooodoolc:lodxxxxxxddxxdxxxxxdddoollc:;clo:;:::;:,,''';:,.',...
.'''''.....';cooooll:clcloxkxkOkkkkOOxkxddddddoooooooolllc;,;:cc:::;,';,,'',,,''
..  .  ..,:loddooll:::lk0Okkkxxkkkkkkxxkxxxxxddxdxdodoloool::::;;;;::::;::::::::
.  .';lodoooooollolldkkkOOkkkkkxxxdddddddxxdxdollc:;'',;:lllclcccclccccccllllodo
,:llllllllooololoxOOOkkxxkxddol;,,;:c:cc:::c:;,;,,',,;:lc:;:codxxxkkkkkxkxkkxxxx
ol::;::cllclllldxkOkkkxxxdoc;'.'';:ccc:,;;:;;::coodxkOOO000OOOOkkkxddddxddxxxddd
;'',;:ccllccldxkkkkkxollc:;;;::cclccoxdxxxxOO0KK0000OOxkkkkkkkkkkkxxxxxxxdoxdooo
;;;:;clccc:clddodddo:;;,,::cdxkkOO0KKK000000OOOkkkxxxxxkxdkxddddddddoloooollccc:
,,;,;cc::c::cccllc:lodkkOO000OOO0OO0OOOkOkxkOkxxxxdxxkkxddddodoolllcclcc:clccccc
ccc::clool:ccodkkOOOOkOOOOOOOkxxkkkkxxOkkkkkdxxdxdxdddololclllooloolccc:cccc;::c