........................
.............''''''''''................'''....
. ......'',,,,,,,,,''''''''''''''',,,,''''''............''...
....';;;;;:cllccccccccclllccc::;;,,''''''',,,,,,,,,''''.............
...''';c:;::;,'.........''',,;;;:ccclllcc::;;,'''',,;;;,,,,,,''''...........
.......'',::::,''''',;:ccccccccc:::::::::::cccccccccc:;,''',,;;;;;,,,,,''''''........
.. ....''....,;::,;::llooooooooooooooolllccc::::::::::ccccccc::;,,,,,;;;;;;;,,,,'''''''......
............',;;;:clooooooooooooooooooooooooooolllcc::cccccc::::::::c::;,,,;;:;;;;;;,,,'''''''.....
....'......,:lodddddoooooooooooooooooooooooooooooooooollcccccccccc::;;;;;:c::,,,,;;;;:;;;;,,,,'''''......
....;c;..,:cloooooooooodoooooooooooooooooooooooooooooooooooollcc:cccccccc::;,,;;:::;,',,,;;;;;;;;,,,''''''.....
...':l;,;coooooooooooooooooooooooooooooooooooooooooooooooooooooolllc::cccccccc:::;,;;;::;,',,,,,,,;;;;;,,,''''......
...,clc:coooooooooooooooooooooooooloooooooloooooooooooooooooooooooollll:::ccccccccc:::;;;,;:;,',;;;;,,,,;;;;,,,''''....
...'clllclooooooooooooooooooooooooooollooooooollooooooooooooooollllllllllllc:::ccccccccc::::;;;;;,',,;;;;;,,,,,;;;,,''''...
....':llcllloooooooooooooooooooooooooooooocoooooooolloodddolllllllllllllllllllll:;;:ccccccccc:::::;;;,,'',;;;;;;;,,,,,;;,,'''.
....,;:llclllooooooooooooooooooooooooooooooooclooooooddllooollllllllllllllllllllllllc;;:ccccccccc:::::::;;,'',,;:;;;;;,,,,,,,,,'
....,:clcclllloooooooooooooooooooooooooooooooooccooddxxxdlccllllllllllllllllllllllllllc:;,::cccccc::::::;:::;,''',;;;;;;;,,,,,,,,
...',:clcclllllooooooooooooooooooooooooooooooooodolxkdoooooolcclllllllllllllllllllllllllcc;,,::cccc::::::::;;:;;,'.',;:::;;;;;,,,'
...',,:ccccllllloooooooooooooooooooooooooooooodddkkxlldoooolooolc:cccccllllllllllllllllllcccc:;,,::ccc:::::::::;;::;,'..';;::::::::;
....,,,:cccclllllloooooooooooooooooooooooodddxkOkkddooocloooolllllll::ccccccccllcccllcccccccccccc:;',:cc::::::::::;;;;:;''..',;;;;::::
....,,;ccccclllllloooooloooooooooooooooodxxkxdxOkdooollllcloooolllllllc::c::::ccccc:ccccccccccccccc:;,',:c:::::::::::;;;;:;,'..',,,,,;;
..'.,,;cccccllllllllllooloooooollooooodxkOOOkOxdoooooolllll:lloolllclllll:;::::::::cc;;:ccccccccccccc:;;'';:c:::::::::::;,,;;;,...',,,,,
..'.,,;cccccllllllllllloloooooollloodxxxdkxddddoooollllllclll:ollllllccccccc;;;:::;;;:c:,;;:ccccccccccc:;;,',:c::::::::::::;,,;;;'...,;;,
..'',,,ccccclllllllllllllooloooooddodddooooollllllllllllllccllccoclllllc:ccccc:;;;;;;;;;::,,,,:ccc:::cccc:;;,'';:::::::::::::;;,,;;,'..',;
..',',,cccccclllllllllllllooododdddollllllllllllllllllllllllccccclocllllc:;::::cc;,;;;;;;;;;,,'.,;:cc:::::::;,,,'':c::::::::::::;,',,;,'...
..,;',,ccccccllllllllllllooxdoolllllllllllllllllllllllllllllll:ccccdcccccccc',::::c:,,;;;;,,,;,''.,,,::::;::::;,,,'.;c:::::::::::::,''',;,'.
..,;',':ccccccllllllllllllloollllllllllllllllllllllllllllllllllc:ccccx;:ccccc:'';:::::,,,,,,,,,,,''.';,';:::;;::;,,,,'':c::::::::::::;,''',,,
..,;,'';ccccccllllllllllllllllclllllllllllllllcccccllllllllllllll:;cccox,:ccccc:'.,;;;::;,,,,,,,,,,'...;;,.';:;;;:;,,,,'';c::::::::::::;,'''''
..,;,',,:cccccclllllllllcccllllcllllllllllllllc:ccccccccccclllllllc:;cccdo':::::::,..;;;;:;',,,,,,,''....,;;'..,:;,;;,,,,,';c:::::::::;;;;;..''
..,;,''';cccccclllllllllcccclllc:clllllllllllllc::ccccccccccccllllclc;;::ck,':::::::,..,,,;;;''''''''''....,,;,'..';;,,,,,,,',:::::::::;;;;;;'..
.';,,',,:cccccclllllllllcccclllc;cllllllllcccccc:;:cccccccccccccccccc:,:::od.':::::::;..',,,;;,'''''''''....,,,,,....,,,'',,''';:::::::::;;;;;,.
.';,;'',;:cccccclllllllllccccllll;cclllllllcccccc:;;:::cccccc:c:ccccccc;,:::k;.,;;:;;::;...,,,,;,.''''''''....,,,,,'....,,''''''.,:::::::::;;;;;,
.;,,,',,::ccccccllllllllcccccllll,:clllllllcccccc:,,;::::::ccc:::cccccc:,,::do..',;;;;;;,...'''','.''''''''....',,''... ..''..'''.,:::::::::;,;;;
',,,,,',:::ccccccllllllccc::ccclll;;ccccccccccc::cc,,;;:::::::c:::;cccccc;',:cx,.,,',;;;;;,...'''','..'''''''....'''''.... ......''.';:;::::::;,,;
,,'','',::ccccccclllllcccc::::clcl:,:cccccccccc:;:c;',;;::::::::;:;;cc::::,.;:x:..oc.,,;;;;,...''''''..'''''''....'''..............'..;:;::::::;;,
,;'',,',;:;ccccccccllcccccc::::clclc,;cccccccccc:;;::',,,;;::;::::;;;;:::::,,';dc,.'Kd',,,;;;,....'''''..'''''''..............c'........,;,;;:clodd
;''',,'';:;cccccccccccccccc:;:::cccl,,:ccccccccc::';:,',,,;;;;;;:::;;,;:::;;','ol;'.xN0;',;;;,,....'...'...''''''.............'kd;......okOKKK0kdo;
',''',;.':::cccccccccccccccc:;:::cc:l;';ccccccccc::;.:;'',,,,;;;;;::;,;,:::;;,''cl;,.:XWNo',;;;,,....,.......''''''.. ..........cXKd.....cWWl'.',;;,
:''',;;.,:;:cccccccccccccccc:;;::cc::c''::cccc:::::;',:''',,,,,,;;;;;,,,,;;;;;'':l:;''KWWWk,,;;;,'....'.......'''',.. ..........kNXO:....;KNc.,;;:;
.,.'',:,.':;:cccccc:ccccccccc:;;;;:cc;c,',::::::::::;;.;,.''',,;,,,,,,;,,,';;;,,.cc::,.kNWWWK:,;;;,'....,.......',,,,.. .......'.'0WWXk:'...xNd.';;o
;'''';:,.':;:cccccc::cccccccc:,,;;;cc;;:..':::::::::;;.';'..''',;,,,,,',','';,,,.::;:;'dNWWWWXo,;;;;,....,.......',,,'.. .'.''''''.lNNNX0k:...:Ol.;kd
;.'',:;,.':;:cccccc::ccccccc::,,,;;:c:,c'.'':::::::::;,.,,...''',,,,,,'',',.',,,':;,::,:XWWWWWWk,;;;;'....,.......',,,....:.''''''''xKKKKK0x;..'dOOc'
,.'';:;,.';;:cccccc:::ccc:cc;;,,,;,;cc;';...,:::::;;;;,'.,'...''';,,,,,.''''.',,,c',,:;,KWWWWWWWK;,;;;'....,........'''...lO,,,,,,,,lNWWWWWNKOl..:.'.
.'.'';:;,..,;::cccccc:::c:::c,,;,,,,,:c:';....;;;;;;;;;;,.',....''';,',,'.''''.',,c.,,;;'0NWWWWWWWX:,;;;'....'........,,...'KO';;;;;;;KWWWWWWWNKO:..,'
...'':;;,..';::cccccc:;::::::;','',,,;:c,.;....;;;;;;;;;,'.''.....',;,,''..'.'..';;.',,:'ONWWWWWWWWNd,;,,'...',........,'...ONk,:::;;;0NWWWWWWWWNKx,.,
...',:;;,..';:::ccccc:;;::::::..''','';::'',....;;;;;;;;,,..'.......,;,,''..,.'..:'..,,:'xXWWWWWWWWWWk;;;;,...';'.''....;...oXWd;::;cx0NWWWWWWWWWWNKd.
..';:;,,...,:::cccccc:;;:::;:..''''''';:,.......,;;;;;,,,,..'.......,;,,''..,...,...',;,dKWWWWWWWWWWNK:;::;...,;''''''''';.:KWNlcok00KNWWWWWWWWWWWWNk
...;:;,,...'::::cccccc;;:::;:,...''''',;:'.......,;;;,,,,,,..........;;,,'..,,.;.....;;;oKWWWWWWWWWWWNX:;::;...,;'',,,,,';o;KWWWK000XWWWWWWWWWWWWWWN0
...;:;,,'...::::cccccc:;;::;;;....''''',;,........,,,,,,,,,'.'........;;;,'..;,,....',;;o0WWWWWWWWWWWWWKc;::,.'':;,,;;;,',000NWWNXXNWNNNWWWWWWWKxodOX
...;:,,,;...;::::cccccc;;::;,;..'..''''',;'........,,,,,,,,''..........;;;,'..:,....;,;;l0NWWWWWWWWWWWWWNo;cc,.,;c:;;;;;.:0NXNNXKdOK00KKK0Odl:,':dOO0
..;:,,;;...;:::::ccccc:;;;;;,' .'..''''',;.........',,,,''',..........'::;,..':,...;c:;c0NWWWWWWWWWWWWWWNl:cc..;:c:;;cdkOkO0KXKcdXX0kdc;'. .. ...'',
...;:,,;;'..,:::::ccccc:;,;;;,;..'...',''',,..........''''''',..........,:::,..,:'..;d;:c0NWWWWWWWWWWWWWWWNccc;';coddkOkkO0NWW0;.:;,.......
..;:,,;;;..';:::::ccccc:;,;;,,. .,...',''','..........''''''';..........,:::,..::,';O;:c0NWWWWWWWWWWWWWWWWNxdkO000O000KXNXxl;.'''............ .....
..,:,,;;;...;:::::::ccc:;;,;;',. .'...,,''',...........'''''',;..........;cc:,',c:,;O:cl0NWWWWWWWWWWWWWWWWWWKKKXXNXKKNN0o..'.... ......'c0KK0Oxol'''
..':,,::;'..,;:::::::ccc:;,,;',. .''...,'''',....... ....''...',..........:cc:,,:c;c0c:d0NWWWWWWWWWWWWWWWWWWWWWWWXKXN0:..... ............lKXXXXXklc
...:,,::;;..';;;;::::cc::;,,,,',...''...,,'',,....... ........':;.........':cc;,;c;o0o:k0NWWWWWWWWWWWWWWWWWWWWWWWNNKl........';:c::,'''''..,KWWWWXdd
..;;,::;;'..;;;;;;:::::::,,,,''. ...'...,,'',,....... .......,c;........''clc,;c;k0x:O0WWWWWWWWWWWWWWWWWWWWWWWWNkc.........;ld0KOl;;,,,;'..KMWWNxo
.,,,::;;,..';;;;;;::::::;,,',.'....''...,,'',,'...... .......;l;.....'''',cl'::;O0xl0KWWWWWWWWWWWWWWWWWWWWWWWNOk;'.;o...'';ldkX0lcldodO0kocWWWKx0
.',':;;;,'..,;;;;;;::::::,,''''..,..''...',,'','.'.............:o:...''',,,,:,::o0KKX0XWWWWWWWWWWWWWWWWWWWWWWWNNd;;dKK..''',oll;,.,cxKWWWWNcNWNkKX
........ .'';;;,,,..,,;;;;,;::::::,,.'.'.ld..,,...',,'','.'.....,'......coc','',,;;;,,xcO0XWNKWWWWWWWWWWWWWWWWWWWWWWWWWKclKXXNl.;,:ldoc:..,lxKKKK0k:XWKXXN
.lxO0000000KKKKKKOkxdl;'. ...;;;,'''..,,;;;;,::::::;,,.''.;OO;.,;....',,'';',''''.:d:....,ldc;l;',;;;:cO00KWWWWWWWWWWWWWWWWWWWWWWWWWWWWWKkXWWWWN,.coolxdxlcdkOK000O0xNNXNNN
oKNNWWWWWWWWWMMMMMMMMMWNXKkl,......,,,''','.',,;,,,;::::::,,,..'.x0Nd.';,....',,,;';,'',':00d,..,lxo;Okc;lxO00NNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWX:cclkOkOO0KXXX0OdO0XNNNNNN
OKKXNNWWWWWWWWMMMMMMMMMMMMMNKdol...,,',,,'..',,,,,,::::::;','...,ONWO'.:;....',,,:,;;,,,,;ONKx:,,odx0XK0000XNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNd:lkO00KXXOdodOKNNNNNNXXX
lldx0NNk kkOOOOKNWNKk:..,',,,'''..'',,,,;:::;::,','.'.dXWWXl.;:.....',;:;;c;,;;,dNNKOxOOOO0XXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWKkdkxxxxxk0XNNNNNXXXXXXX
:xKWMMWl ...;:ccc::;;:cdo,.',,'''''..''',,,';:::;::',,..',0WWWKx;;l;.....,;::,c:;;cd00OO0KKKKXXXNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWN00KXNNNNNNNNXXXXXXXXX
;KNWMMMk.,;,',,,;::;',:::;,,''...''''''''..'',,,',:::;:c:',,...dXNKXWXo,cc....;;,;c;ldkkxxKNNNNKkxdoooxkO0XNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNXXXXXXXXXX
.0WMMMMk:l;,;::cl;.'xkOkkkx;'.......'''''..'',,,';::;,:c,',,..;0XNWWWNKo:l,..'lxlcdxolox00xl:'........,:okKNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNXXXXXXXXXXX
.'cOMMMMMX:;:odxko.'xkkkkkk. ...l'..........'.',,'';::,;c:,',,..oXWWWWWWN0lcc,..oK0kk0Oo'..',.........',::lldkKNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNXXXXXXXXXXX
.lONWklXMMMMWloxkkx,'xkkkkkOc....cxl..',''.....'.''''':::';c:'',,.'0WWWWWWWWNkoodkOOO0Kk,..''.. .........l0XNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNXXXXXXXXXX
..l0NWWM0 '0MMMMWodkko.dkkkkkkk'...:dddc..',,,''....''''';::,'::;.',,.cXWWWWWWWWWXK00kkOo,..'......','''...''.'xWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNXXXXXXX
.;x0WWMMW: '.dKXXNXxxd;'kkkkkkkk...,oodddl...'',,'....''''';:;',::,.',,.dXWWWWWWWWWWKdl,. ....'....':lxkxc,,',,,.oWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNXXXX
xxOKXNNO. ...':dOO0KKxcoxkkkkkk...;ooodddl....''''....'''.,::,';::,.',,.kNWWWWWWXOl'.. .. .:Oc....,cxkNKllooloxo:dWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNN
dok00Kk' ..'..::lxKXXX0xdodkkk'.;,ooooddd:.....''..'.''.'.;:;'';::'.',,,KWNXK0xc::. .xXX:..''':lldd;,ldkKNWNxOWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNN
.dxKNWNd. ....ccc:ldOXXXXKkdol,.l,cooooddo,.....'...'.'...';;,'';:;'.',,;KNXNNKOo' ,0XKXk..;''odcc...:kKXNNKkoWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNN
oxKXNWK: ....:ccclc,d0NWWWWNKd;c;'lllooddl''.....'.'..'...,;,''.::;'..,,;XWNXOc. ...,KXKXWW:.',llddlc;lxk0000kOxWWWWWWWWWWWWWWWWWWWWWXNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNN
;x0XNN0,...::::cc;odoxkKNNNNN0klclllloooc.;'......,....'.;,''..;:,...,,;0N0:. ....,KXKXWWWN:.,lolxOkxOKXXXKxk0NWWWWWWWWWWWWWWWWWWWWWNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNN
OdNNx...::::::::ddddllokNMMMM0;lllloolc'0c.....,,.....';,''..:;'...,,'c' ....':x0XWWWWWWxc:cx0000KKOxxx0NWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNN
.KO'..;;;;;::,dddddol:cdKMMMO:llllool:kNk;....;'....',;'',..:;'...''...'',;;ccldOKWWWWWWW0dxxxOxxdk0NNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNWWWWWWWWWWWWWWWWWWNN
,:..,;;;;;:,looooollo:'OMMMk:ccclolckNNNl...';.....';''',.:;;,....,',0XXXXK0xxdxkO0KXWWWWNOxO0XNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNKkdolWWWWWWWWWWWWWWWWWWWN
..';;;;;;;;lllllllll,:KMMWx:ccclocOWNNO.'..,,....',''',..l;;'....,''xNNNNXXXKXXXXKKXXXNNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNX0Okddddd:NWWWWWWWWWWWWWWWWWWN
..,,,,,,;,cllllllll;;;XWWWO:cccccOWWNX',o,.:'....',.'';.,o,;'....''.:KNNNNNNNNNNNNNNNNXXNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWNX0OxxxxxxkkkxlNWWWWWWWWWWWWWWWWWNN
..,,,,,,,,,llllllll:,;cNWWW0;:cc:0WWWN,.:Oo,:....','..,,.;l,,'.....,.'kNNNNNNNNNNNNNNN0kNXXXXNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWN0OxxxxkkkOOOOOOOxWWWWWWWWWWWWWWWWWNNN
.',,,,,,,,:clllllcc',;lNWWWO;:::0WWWW'..cOl;;....,'...:..c:,,'.....'..oXNNNNNNNNNNNNXXXXXXXXXNXNNNNNNNNNWWWWWWWWWWWWWWWWWN0OxddxxkkOOOOOOOOOOkKWWWWWWWWWWWWWWWWNNNN
..,,,,,,,,,cccccccl'',;lXNNNk;;;KWWWX....:k::,....,'..,:..o;,,,..'...'.,dKNNNNNNNNNNXXXXXXXXXXNXNNNNNNNNNWWWWWWWWWWWWWWWXloddxxkkOOOOOOOOOOOkKWWWWWWWWWWWWWWWWNNNNN
.',,,,,',,;ccccccc;.',;:0NNKk:.0NWWx:'...cx::;'..';...::..x,,,'..'......'dXNNNNNXXXXXXXXXXXXXNNNNNNNNNNNWWWWWWWWWWWWWWWWXdoxxkOOOOOOOOOOOO0XWWWWWWWWWWWWWWWWNNNNNN
..',,,,,',,:ccccccc..,,;;dXN0kolKNN:c:'...ox::;'..,...'c;.;d',,'..''......;xKNXXXXXXXXXXXXXXXXNNNNNNNNNNWWWWWWWWWWWWWWWWWWXOkkkOOOOOOOO0KXWWWWWWWWWWWWWWWWWNNNNNNK
.',,,,,,',':cccccc;.',,;,cKXOkdcko,cc:,..'oo:c:'..,...,c'.lx'';'...'......':dOXXXXXXXXXXXXXXNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWNXKKKKKXXNWWWWWWWWWWWWWWWWWWWNNNNNNk,
.;;,,,,',,'::ccc:c..',,;;;OKOkdl.;:ccc,..,xl:c:'.''...;l..ox.';'...,.......';lOXXXXXXXXXXXXNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNKlc;
.,;;;,,,';.':::c:c,..'',;;,lOkkc.:::cc:,.,:xlcc:,.,...'cc..od.';,...,''.......';dKXXXXXXXXNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNkcdxd
.,:;;;,,,,.'::::::..''',;;,,okc,;:::cc:,.,;dcccc;',...,l:..xd..:;....,''...;;,,.'cx0XXXXNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNXdoxxxx
..:;;;;;,;'.;:::::'..''',;;;.l,;;;:::cc:..,:d;ccc,'. ..co,.'X;..l,....;''''.':dd,...;x0KKNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNloxxxxx