.,odoodxkkkxddxkO000OkkkOO00Okxkk00OOOkxdollc:,......             ..',,,''.......        ....                                                                                                ..       ..''....                                       .':oddl;'''..;
                                         .,:ccodkOOOxxkOKXXXXXK000KK0OOO00OOkxxxxdooool:'.....              ..',;;,'.........  .......                                                                   ...          ..            ..''..    ...,,'..    ..             .......             ..',,,;,......;
                                    .......',;ldxxxxkk0XNNNNXK00KK00000000Okxdlcccccodoc:;,.                 ..,;:;,'......'''''..','..                                       .                           ....        ..            ':c;,.. ........    ....    ..   ...                      ...          ;
                                  ..,:cc:,,,,;clodkOO0KKXXXXKK0kxddxxkkkOOkkxoc;,;;:loddo;..                 ..';:::,.....,;::::;,'''............                         ...''..                          ....             .';;,.. .,:;...........    ....    .........          ..                       ;
                                ..,cokOOkdl:;;:clldxkxdlodk000OdlclooooodkOOOxl;,;ldkOkd:'..                 ..',;::,'....,;;;;,,,,,''...'',,'..... ....                ..,:cc:,..                         ......         .'lk00ko;..     ........    ...      ........                    .             ..:
                                 .;cdO00Okxolc:::::c:;;;;,:lddolccloodddodkOOxl::ok0KOdc;''...              .....',;,.....,:::;,,,,,,,'.'',;;;,'.........               .;ldkko:'...                           ............cONWNXk:'..    ..............       .....                                       ;
                                   .;ok00Okxxdolcc:;;;::cc::::;;;;codxxdlcoxxoccok0K0Oxl:,'....       ... ........',,''''',::::;,'',,,,,,,,;;;,,,'........    ....      .;ldddl;....                               ....','.,cx0KOo;''..   .............    ......        ..                                ;
                                    ..:oxxdxxxxdoc:;;;;:cc;,,'''',lxOOkdl:;cc;:lxOOOOkdc;,'.....   ........''''..',;;,,;:::ccc:;,''''',,,,,;;,,,,,'.    ...........      .',,,,,....         .                        .;c;,. ..''.....     ...........    ....            ..                   .   ...     ;
                                      .',:coxkkxxol:;;:ccc:;;,,,;lx00Oxdol:,',:oxkkxolc;,'''........'',,,,,,,,'',;::;,,,,;:cllc;'.....',,,,;;,,,,,'.       .......      ......''...   ...  ....                       .'c:'.                 ........   ...                .....                    ....   ;
                                     ..,;;coxxxkkxdoc:;;;::;,,;:lx000kxxxo:'';lxO00Oxl:,'.........',;,,,,;;;;;;;:::;,''',,',,,,'....  .',,,,,,,,,,,'..       .....    ............    .........                                     ...............    ....      ....     .......                  ....... ;
                                    .,cllcldkkxxxxxxdc:,,,,,,,;:lkOOxooxd:'..,lkOOOOkdc'.. ......';;;,,,;;;::::;;,,'''''''......''...  ..,;;,,'''',,,'...      ...     ..........    ..........                                     ..............    ....      ..............           ..        ....... ;
                                    .:xkxddkO0Okxxxxdc;''',,,,;:ldxdolol;....':dxxoc;,'..      ..',,,',,;;:::;;,,,''.......'...',;,...  .';::;'....',,,;,'..      ...............    ..................    .......          ....     ............    .''.....  .............             ....     ......   ;
                                    .;dxdxxO0000Okkkdc;'..'''';codddddc,..  ..;clc,......      .....'',;;;;;;,,,,,'.....'''',''''....... .';::,......'';c:;,..      .............     ...''............. ...''.......     ..''.... .............   ..,,'.....  ............           .......    ......  . ;
                                   ..;oxxxkO00000Okxoc,'......':odoc:,..     .';;,.......     ......',;;;;;;;,,;;,'..'''''',,,'.........  .';:;'.......':cc:;,...     ............. ....''''...........  ..'''.........   ..'''......',,''''...   ..,,'...................            ....... ...','.......;
                                 ..,:ldxkO0KK000Okxdl:;,'......',,'..         ..........     ........',;;;::;,,;;,'..'''.',,;;,,'.......   .',;,'..    .':ccc:;,'.      .................','...........  ............................','......   ..,,'.................                 .... ..,:c:;..   . ;
                                 .,coxxk0KKXK0Okkxdl:;;,,'.....','...   ....   .........   ..,;;,''..',;:::;;,;;;;,'.....'.',;::;,'......  ..',;,..     .;clllcc;,...     .......'',;;'........''............',;cc:;'.........................  ..,,'.................                      ..,cll;'..     :
                                  .,ok00KKKK0Okkkxl:,,,,''......'.....................'....':odl:;,,,,;;;:;;;,,;;,'.. ......';:cc:;'.....   ..',;'.     .,clooolcc:;'..    ........';;'..  ...,,,'..'.......'cx0K0kl;'.......................  ..,,'.................                        .',,'...    ..:
                                   .'lk0KK0kkkkkxol::;,'.................',,,,''''''.'''..'cdkxdol::clc:;;;;,,,;;'..   ....',;:cll:,'....    .';;,..    ..;coddoollc:;,...  .................',,'...'''',,,'cONNNNkc''....................... ..,;,...............                         .......    .....c
                                     ..;clcldO00kddxo;'.........   ......',,,,,,,,''''''',cxOOOkxdocccc::::;,,,;::'.   ....,;;:cllc;'.....   ..,;,...   ..':ldddooolllc:;'.. ..''............''''....'',::::cONN0o,.....................'''....';;'.............       .                ........   ........:
                                         ..,lkOOkolc,.....             ....'''',,,,,,,,;:ldOKKK0kdlc:;;;:c:;,'.....    ...',;:::ccc;.......   .',,...   ..';ldxxxdddolllc:,.....'....'',,,,,'.....''''',:cc:;:cc;.......................''.. ..,;;'............    ..........     .  ...........  ...''... ;
                                          ..':oooc:,..',,'...         ...'''',,,;;::cccodkOKXK0kolc:;;;;;::;,'....     ...',;::ccc:,....       .','........,:dkOkkkxddoollc;'....''...'',,;,'.....'...';cllc:::,'........................... ..,;;'...............................   ...   ....      ....  ;
...                           ....   .......',::c::;,;cllc:,'... ....',:::;,,,,;:cloddxkOOOO00kdollc:;;:cc:;'...'... ....'',;::cccc:,'..       ..,,'.......';okO00OOkkxdooll:'....''..',,,,,'....''....,cllc;;,'.......................''... ..';;'.....................  .........                   .... ;
''...          ....        ...........'',;cccccc:;,;;::cclolc;'..';;::codoc;,,,;clodddxkkxdk00Oxollc:;;codl:,'.',,......,,,,,;;;:cllc;'..     ...,;;,'.....''ck000000Okxdoool;'....'..',;;,'....';;;,...,;:;'..................................';;,...............................   ...              .... ;
.',,'.......'',;::;,........''..''''''',;codxoll:;,,;::::codl;,,;:cccldkkkdc,...''',,;:lollx00Oxollolc:clooc;,'',;,'....',,,,'''';::::,...  ....',;;,'.....''ck0KKKK00Okxdoooc;.....'..',;,'...';loc;'.',;;,'....'.............................',;;'....................................                 . ;
,lodoc,'';::::cldddoc;;:c::::;,''''...'',,:colc:;;;::::::;;,,;::clllloxOOd:'.......',;;:::cx0KOxdllodxdolll:;;,',;;,'....',;,'''',,;;;,........''''''......'':x0KKKKKKK0Oxdool:'....''...',,,,'',;;;''..''''''''''..............................';;;,,'..................................                  ;
k0KK0ko:,;;;;;:codddoloolc::;,''''''...'',;:cc:;,:lddoc;,,,,,,;clolc:;;:,..  .........,;;;lk00OxdoodxOOkdc;,'',''',;,'...',,,,',,,,,,,,,'....................;x0KKKKKKKK0kdddo:,....'''....',;;,'',,,''...',;:;,''..........................  ...,:c:;,'...................................          ..    :
XNNNXKkl,'''',,cdxkxxkkxdol:;'.....'..',:lool:;,;lkOOko;,'''',,;clool;'..      ... ...,;;;codddolloodxkkxc'.......',,,'...'',,,,,,,,,;;;;,'...............'''lO0KKKKKKKK0Oxdooc;'............'',,,,,''''',,,:c:,............................   ...;:c::;,'..........................     ......... .....   ;
NNNNNKOl,..'''';loloxO00Okdl:,'.......,cdxkxl;,;lx00Od:;,'''',,;:lodol;...         ...,:::::ccc::cllloodo:..  .....',;,'.....''',,,,;;cc:,''............'',,cxOO00KK00000Okxdoc;,.. ....''......'',,,,;cllc:,'........................'.....      .,:c:::;,'......................... .................... :
XNNNX0o,'...''',,',:odxkkkxo:,,''''..';oxkxl:;,;lkOkdlc:;;,,,,,,;clool:,'.............';::::::;;;:ccllllc,..     ..............'',,,,'';;,'............'',;;lkO000000OOOOOkxdol:'..  ...''''.....',,,:dk0Oxl;'..................'''...''...        ..';:cc:;'............................,,,,'.............c
KXNNKd;......'''''''''''',,;,,,,,,'''';looc:;;;;clc::clooc;;,,,,;:cloolc:ccc:;'.........',;;;'''',;:cc:;,....    .......     ...''','....................',;dOOOOOOOOOOOOkxddol;.     ....'''.....',,cx0K0x:'....................'....'...           ..;colc;,'...........   ............':c:;,...........'l
0KK0o;....'....'''''''......'',,,,,,,',;;::;;;;;:;,,',;cc:;::;;,;:cooollloddol:;;,'....',,;,'.....',,,,'...    ....            ........   .................:dkkkOOOOOOOOkdollc:.       ....','....',,:oddl;'..........................'...            .':loolc,'..........................:do:,'...........:
okxc'....'''..'',,,cddodkOko:,',,;;;,,,,,;;;;;;::;,,''',,,;clc:;;;cloooloddxxxxdlc;;;;,,;;'.................   ...                  ...   .................:dxkOOO0000Okxollc;.          ...'''''',;:lddc,...............''..............              .'cooolc;,',''..',''... ............:l:,............:
;lc,,,;:cllcccllllok0KKXWWWKd:,,,:::;,,,,;cllc:;,,'''''',,,;cc:;;:clooooddxk00K0koc:ccc:;'............ ....               .....      ......................;oxkOO00000Okxxdl:'             ....,;:c::cc;'.......................................        .;clool:;;;,'.';c;'.................''.............:
',:ldkO000000000OOOOOxxKWWXkc,,,;:c:;,'..;oxkxo:,'''''''',,;:;;;::clodxxkkkk0KKOxollooc:;,'...............               .................................':oxkO0000000Okxdl;.           .....';lddo:,......'',,,,,,,'''''''.'.......'''..''''''....    .';clllc:,'....''........................ .........c
kkk0XNNNXKKKKKK0Okkxlcclddo:,,'',;:;'....,:okkdc;''....'',,,;,,;;:cldxxxxxxxkkdoccodoc:;;;,..................            .....................''..........';ldkO0KKK00Okxdoc,.        ....'''',;loo:,...',;cllooooooollllllcc::;;;;;;;:;;;;;;,,'''....  ..,:ccc:,'............ ..........................''l
NNXXNNX0xddddoolc::;;::::cc:;,'''''.....';:clll:;,,''..'',,,,',;;::cloddollllc,'';cc:;;;;;,'.. ...................      ....'.................'''''.''..''':odxO00K000Okxxdc,.       ..'''''',,;;;;;;;:ccllloodddollooooooolllccccccccc::;;,,,,''........,:cllc,'................................,;,'''',,,o
NNNNNNX0xlc::::::;,,,;;;;::c;,'''.....'';cc:::c:;;;,,''',;;,''',;;;:cloolc:::;'...,;;::::;;,'.............'''........  .....''................'''........',ldxkO00000Okkxdoc;.      ..'''''''',,,;;;:cccc:::llllc:;:cllllllllllccllooooolc;,,'''.........,:ccc;'................................';:;,'''''.c
NNWWWWWXkolccccc:,'',,,,,,;;,''......'',:cllooolc:::;'',;:;,''''',;:cloolc:;;,,'..,;:lllc;,,'........................  ....''''....   .....''''..........';oxkkO000000Oxdollc,..   ..,,,'''''''',,;::::::ccclc::::::::::ccccccccccloddddool:;,,''........,:;;;'....................,;'.........','''.''....:
NNWWWWNXKkolloolc:clooc;,,,,,,''''''''',;codxxxol:;;,'',,;,,''....';cllolc:,''','',;cllc;'...........  ............... ...'',,'...   .....''''........''',:oxkkO0000KK0Oxdoool;'.  .',,,,,,,,',,;::::::::ccccc:;;;;;,,,,,;;;;;;;;;:cclllllc:::;;,,'''...','..,,''..................';'.....'...............c
XXNWWWXK0koloddddx0KXKOoc:;:c:;,,,,,'',;ccodxdl:,'',,,,,,;;,,'.....,::;:;;'.......'',;:;,'..   ...............   ..........'''.............''.......''''',cdkkkkkOO0KKKKOxoodoc'....',,,,,,,,,;::ccc::::cccc::;;;;,,,,,''',,,,,,,;;:::cccc:::;;;;;;,,'''''..,::;;,'...','',,,,''''.........'.........';;::;o
kO0KKKOkdolllllokKXNWNXklllcccc::::;;,,:odolol;'..',;;:::c::;,''..''.................,,,'...........       .    ...................  ...'''........'''''',okkxxxxkO0KKKK0koccl:....',,,,,,,;;;:::::::cc::::::;;;;;,,,,,'''',,,,,,;;;:::::cccc::;;;;;;;,,'''.',:c:;''',;:ccclolllooc;'...............;cloddok
lc::::cooollddolx0XNX0kollllllccloooc:;;:c:::;,'',;:;;:cccclc::;,''...  .............'''.............    .......................... .............'''''',,:dkxddxxkO0KK00Okd:,,'....',,,;;::::::;:::cccc:::::;;;;;,,,,,''''',,,,,,;;;::::::cccllc:;;;;;,,,,'''',,'....':clooddooodxxoc;''..........,:odddddok
ool:;,;cooooolc:clddolloolcccc::coxxdl:;;;;;,,,,;;::;,''',,;;;:::;'......................................................''....................'',,,,,,,,cdxdooodxOKKKK00ko:'.....',,;:cloollc::::::::::::::;;;;;;,,'''''''',,,,;;,;;;;;::clooddolc:;;;,,,,,,''...  ...,:cloooolllodol:,'.......';loddddddok
cddl::cclcc::;;:::::clccllcccc:clodxdl::;;;;;::;;,,;,....''...',;;,,'''..'''''... .......................................'.................''',,,,,,,,,,;cdkkxdooxO0KKKK0kdoc'...';:clooodddoolllc::::::c::::;;;;;,,,'''''''',,,,,,,;;;;;:clodxxxolc:;;;,,,,,,,''...  ..',:clooolllloolc;,'...';coddddddddok
;cc:::::clllcc::cclolc:,'',;:cclloooolc::;;;:cll:,,;;'..','.....',,,,'''''''....    .   .........................   ...............',,,,,,,,,;;:::;;;;:::lk000Okxdddxkkxddddl,.'';:cloooodddoodoolcc:::ccllcc::;;;;,,,,'''''',,,;,,;;;;;::codddddoc:;;;;,,,,;;;,,,'..   ...,;coooolllllolc:,',:lddddddoooook
',,,,;;:;;:c:;;:ldOOOOd:,'',;coooodddol:;;,,;:llc;;cl:,',;::;;;;;;,'''''.........  ....................''''''''...................;:ccccllllllllloolllllloxxxOOOko:,,,,,,,,,'.',;cclloooooooooooollc:::codoolcc:;;;,,,,,''''',,,,,;;;;;;;;:cloolc;,..'''',,,,;,,;;,,........',codooolllllooc:coxxxxddddooolx
'',,,,,,,,,,,',:x0NNNX0o,..';cloddxxxdl;,,,,,;;::;;;cc:::ccodxddll:;,'...............'',,,,,,,,,;;:;::::ccccclc:,...............':ldxxxxxxxxxxxxxxxxxxxdooddxxkxo:,.   ......';:clllooooollloooolll:;;:cloooooc:;;;;,,''''''',,,,,;;;;;;,,,,;::;'.......''',,,,,,,,;,'.......',coooolllllllllodxxxxxxddddolx
',;::;,,'',,,,,:xKNNNXOl,''',;clodxkkxoc;;;;;;;;;;;,;lodoollooolloddoc;'...';ccllllllloooooloooodddxxxxxxxxxxkkdl;'...........';coxxxxxxxxxkkxkkkkkxxxddlcoxdolc;..       .',;:cclllooollcldddolc:;'.',;:ccool:;;;;;,,,,'''''',,,,,,,;;,'''.............'''''',,,,,,;;,'.....',cooooolllllccldxxxxxxxxddddox
,;:clc;,'',,,,,,;oKNWXOl:::::cllloxkkxxdolllcccccccccoxkkkdolcccokKKKOdl:;:ldxxxxxxkkkxxxxddddxxxxkkkkxxxxxxdxxkxo:,.........,:ldxxxxxxkxxxxkkkkkkxxxdddolddl;'..       ..';::::cclooollldxxdl:;,,'.....'',::,,,,,;;,,,,,''''',,,,,,,,,,'..............''''''''',;;:;;;,'.'''';loollllllllccldxxxxxxxdddddok
;:lodo:,,',,,,,''cxKX0doooooooddoloxkkxxxxdooolllllooooddkkxoodxxOKNNNKOxoddxxxxxxxxxxxxddoodddddddddddddoodddddxxdl;,.....';codxxxkkkkkkxxxxkkkkkxxddddoll:'.         ..,;:c:ccllolllloxxoc;,,,''.............',,,;,,,,,''''',,,,,,,,,,'....   .....''.........',;:::;,,'''',;lolllllllllccloxxxxxxddddddox
ccloddl:,,',,,'..:kKKOdodddoddddoodxkkkkxxddoooloooooooooodxxxxO0KXNNNNKOxxxxxxxxxxxxxxddooooddddddddddoodddddddddxxoc;,,,:codxxxxxxxkkxxxxxxkkkxxxdddol:'..          ..;:ccccllooooodxxdlc::;;,,,'..............',,,;,'''''''',,,,,,,,,,'...   ....',,,,''......',;::;,,''',:cllllllllllllccodxxdddddoddolx
cccccllc:;,'''...'cdxxdoddddodddoodxkkkkxxdddooooooooooooooodxkkkOKXNNX0kxxxxxxxxxxxxxxddooooddddddddddddddddddddddddolcclodxxxxxxxxxxxxxxxxxxxxxxxddolc'...   .......,:ccllooooooodxxdlcclc:;,'''......''........',,,,''''''',,,,,,,,',,'...  ....',oOOxolc,.....'',;;,''',;cllllllllllllccclodddoooooooolx
ccccc:::c:;,'....,:loddddddoodddoloxkkkxxxdddooooooooooooooooodxxxk0KKOkxxkkkkkxxxxxxxxddoooodddxdddddddoddddddddddddddolodxxxxxxxxxxxxxxxddxxxxxdddol:;'...........':cclloooodddddddoc:cc:;'....''''''',,'.......',,,,''''''''',,,,,''''''.......',;okkxoooc'..''''',;,'.';clllllllllllllccclooooooolllollx
:ccccc:::ccc;,'',:looddodddoooddoodxkkkxxxdddoooollooooooooooooodddxxxxxxxxkkkkxxxkxxxxddoooodddddddddddooooddddddddddollldxxxxxxxxxxxxxdddddxxxxdddoc;;''........';:cccllllooddxddolccc:;,...,lxkxxdc,';;,''......',''''''''''',,;;;;,,''''......',clccc::;,..',,''',,'..';cllllllllllllllcccloollllloooolx
::::cccc::ccc:;;cloooooooooooooooodxkkkxxxddooooooloooooooooooooolclodxxxxxxxxxxxxxxxxddoooooodddddooooooooooodddoooddolcloddddddxxxxxddddddddxxdddddolc;,.......,;::::ccccccllodoolc::;,'...,cx0KK0kl;cdc;;,,.....''''''''''''',,;;:;;;,'''......'';c:;;;,'..'''''''''...';cllllllllllllllllllllllllooooolk
::::::ccc::cc:::clooooooooooooooolodxkkxxxddoooooooooooooooooooool:coddxxxxxxxxxxxxxxdddoolooodddddoooooooooooooooooooolcloodddddddddddoooooodxxddddddool:;'..'',;::::::::::::clollcc;,,;;,..;lddddolcll:,;;;,.....'''',,,'''',,,,;;:::;;,'''......''''''''.....''''''....';cllllllllllllllllllllllllllllolx
:::::::ccc:::;;:clooooooodooooooooodxxxxxxddoooooolooolllloooooool::oddxxxxxxxxxxxxxxdddoollooooooooooooooooooooooooooolcclooooodddddddoooooodddddooodddddoc,'',;;;::::;;;;;:::ccccc:;;;;;;,'';:ccc:::,',;;;;,,'...',,,,,,,,,,,,,;;:cccc:;,'''.......''.........'''..'''''';cllllllllllllllllllllllllloooolx
:::::::::::::;,;cloooooooodooooooloddxxxdddoooooolloollllllllloool::oddddddxxxxxxxxxddddoollooooooooooooooooooooooooooolcclllooooddddddoooooodddddooooooooooc;''',;::::;;;;;::::::::;::;;,'''.'',,;:;;;;:;,,,,,'...',,,,,,,,,;;:cccloololc;,'........''.......''''...'''''',cllllllllllllllllllllllloooooook
::::::::::cc:;,;cllooooooooooooolloddddddddoooooolloolllllllllllol::odddddddxxxxddddddddoolloooodddoooooooooddddddooodolcccllllooddddddddoooddxxxxddddddoooooc;,',::::::;;;;;;;;;;,'',;;;;,'......''''',;;,,'''....',,,,,;;;;:coooodddddol:;,'.......'''..'''''''....'''''';cloooooooooooooooooooooooooooook
:::::::::::cc;,;clloooooooooooollllodddddddoooooolllllllllllllllll::ldddddddxxxxxxxdddddoollooodddddddddddddddddddddddolccclloodddddddddddddddxxxxddddddooooolc:;;cc::::;;,,;:::;,,'''',,;,,'.........'',,,,''....',,,,;::::clodddxxxxxxdoc:;;,''.....''''''''''.....',,,,,;cooooooooddddddddoooooooooodddok
:::::cc::::cc;,;clllooooooooooolllloodddoooooooollllllllllllllllll::lodxxxxxxxxxxxxxddddoolllooddddddddddddddddddddddddollloooddddddoooooooooooooooooooooooooll:;;cc:;;::;;,;:::;,''''..',,;;,''.......'',,,'''..',;;:clloooooodxxkkxxkxxdoc:::;,''....'''''''......',',;;;;coddddddddddddddddddddddddddddok
::::ccccc::c:;,;:lllloooooooooollllooooooooooollllllllllllllllllll::lddxxxxxxxxxxxddddddoolllooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooolllc;;cc:;:::::;;:::;,''''....',,;,,,'''''''',,''....,;coddxxxdolloddxxkOOkkxxdlcc:::;,''..'''''........''',;:cccodddddddddddddddddddddddddddddk
::::ccccc::cc:,;:lllloooooollloolcloooooooooooolllllllllllllllllllcclooooooooooooooooooooollloloooooollllllllllllllllllllllllllllllloooooooooooooooooooooooololl:::cc:cccc::::::;,,,,''......',,,,,,,'',,,'''..';;:codxkkxdooodddddxkO0OOkxoolllcc:;''''''''........'''',:llloooooooodddddddddddddddddddddok
::::cccc::::::;;:cllloolllllllllllcllllllllllolllllllllllllllllllcccclllllllllllllllllllllllllllloollllllllccccclllllllllllllcclllooooooooooooooooooollllllooooolc:cccccccc::cc::;,,,,,'.......',,,,,,,,,,,''.';;;;clldxkkxxxxxxxdddxkOOOOkkdolllllc;,''''''........'''',:loooooooooooodddddddddddoooooooook
:::::::::::::::::ccccccccccccccccccccc::ccccclllcccc:ccccclllllcc::ccccccccccllllllllllloooooollloolllllllllllllllllllllllooollloooooooooooooooooooollllllloooooolccccllllccclcc:;;,,,,''.........',,,;,,,,''',;;;:loloxkOOOOOOkxdoodxxkOOOkxollllllc:;,,,,''.......'...,;cooooooooooooooooooodooooooooooook
;;;;;;;;::::::;;::::::c::::::::::::::;;;;;;::::c::::::ccccllolllllllllllllllloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooollllllooooooollloooloollolc:;;,,'''''.........'',,;;;,,,;::::coollokO0000OkkxxddxxxkOOOkkxxddolccc;,,,,'......''...',:lodoooooooooooooooooooooooooooook
,,,,,,,,;;;;;;;,,;;;;;::;;;;;;;;;;;;;;;;;;;;::::cccccllllloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooolllooooooooooooooooolllooooooooooxxoooddddoc:;;;,'''''...........',;;;;;::::clollllok000OOOO0OkxddodxxxkkO00Okxdlllc:;,,,'.....''....,;codoooooooooooooooooooooooooooook
''''',,,,;;;;;;;;;::::::::::::ccccccccccccccccclllllllllllooooooooooooooooooooooooooooooodddoooooooooooooooooooooooooooooooooooooooolllooooooooooooooooolllooooooooodkxdodkkxdoc;;;;,''''''...........',;::::cccloooloodk00O00K0OkkkxdodxxkO000000Okxdoool:,,'''.'''....'';codoooooooooooddooooooooooooooook
;;;;;;;::::::ccccccccccccccllllllllllllllllllllllloooooooooooooooooooooooooooooooooooooodddddddooooooooooooooooooooooooooooooooooooooooooooooooooooooooolllooooooooodkxdoxOOxdl:;;,,,'''''''...........,;::;:::clooooodxkOO00K0OOOOOOkkOOO0000KK000OOOO00Oxl;,,,,,,''..'',;codoooooooooooooooooooooooooooook
:::::::::::cccccllllllllllllllllllllllllllllllloooooooooooooooooooooooooooooooooooooooooodddoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooodxxooxOkdoc;,,,,,,'''''''.....''..';;;;;:::clodddxxxO00OOkxkO000KXXKKKKKKKKKKKKKKKKKKKK0xl;,,,,,,,',,,;codollllloollloolllllllllllllllcx
c::::::::::ccccllllllllllllllllllllllllllllllloooooooooooooooooooooooooooooooooooooooooooddddddooooooooooooooooooooooooooooooooooooooooooooooooddooooooooooooooooooodxxdoxOOdl:;,,,;,,,,''''''''''',,,;,,,;;::cloodxxkkOK0Okxdk0KXNWWWNXXXXNNNNXXKKK00OOOOOOOko;,;::::;;:;;clolc:cccccc:::cc::::::::::::::;o
::::::::cccccccclllllllllllllllllllloloooooooooooooooooooooooooooooooooooooodoooooodddddoddddddooooooooooooooooooooooooooooooooooooooooddooooddddooooollllllooooooollxkdoxOOdl:;,;;;;,,,,''''',,;;;;;;,''',;:cloodxkkO0KKOkkO0XNWMWWNNXXXXXXXXK00OOOkkkxxxxxxxdl:cllllllc:::loc;;;;::;;;;;::;,,;:::::cc::::d
cccccccccccccccclllllllllllllllllooooooooooooooooooooooooooooooooooooooooooddddoooooooooooooooooooooooooooooooooooddddoooooooooooodddddddoooooooooooooooolloooooooo::dxolx00xl:;,;;;;;;,,,,;;:cccllc:;,,,,,;cllodxOOO0XXXKOkKNWWWNXKKXXXXK0Okxxxdddddddddddddddddodddddolc:cooc::cccccccccclc:;:lllloolllllx
cccccccccclllllllllllllllllllllloooooooooooooooooooooooooooooodooooooooooooooooooooooooooooodddooooooooooooooooooooooodddooooooooodddddoooooooooooooooooooooooooool''dxook00kl:;;;:::::::cccclooodolcc::;;;:clodkkOO0XNNNX00KNNXXXXXXXXKOkdolllollollllllclloddxxxxxxxxxdlccoolllllllllooooolc:clooooooooolx
ccccccccclllllllllllllllllllllooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooodddddoooooooooooooooooooooodddooooooooooooooooooooooooooooooooooooolloxc.'oxooxO0xl:;::ccclooooddxkxxkxxddddolc:clodxxkk0KXNNNX00XKKXXXXKOOkxddooooollolllcc:::::ccloxkxxxxxxxocloolllllllooooooooc:cloooodoooook
cccccclllllllllllllllllllllllooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooodddddoooooooooooooooooooooooooooooolllllllllllllllllllccccccccc:::::;:od;.'lxxxxkOxoc::llodxxdxxkOO00OOOO000OOkdooodddxkOKXXXNNXK000KKOdoolcc::clllllllllc:;'....''',:oxxxdxxxxoloollllllloooooooool:clooooddooook
cccccclllllllllllllllllllllllloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooollllllllllllccccccccccccc::::::::::;;;;;;;;;;;;;;;;,,,,,,,,,,,,;ol'.'cxkdodkxolcldxxkkxkkO0000OO0000K0000kkxdxxxkO0KXXNNNXK000Oo:,,,'.....',;::::::,...   .....':dxxxxxxxdoolllllllloooooooool:cloooodoooook
cccccccclllllllllllllllllllolllloooooooooooooolloooooooooollloooooollllllllllllllcccccccccc:::::;;;;;,,,,,,,,,,,,,,,,,,,,''',,,,;;;;;;;;;;;;;;;;;;;;;::::::;;;:cl;..':xkdloxkdlodkkkkkkOOOOOOOOOOOOO0000OOOkxxkkkkOKXXNNNXK0kxl;'...       ..',,,,'... ........':dxxxxxxxdolllllollloooooooool::looooooooook
ccccccccccccccccllllllllllllllllllllllcccccccccccccccccccc:::::::::;;;;;;;;;;;;;;;;;;;;,,,,''''',,,,,,,,,,,,,,,,,,;;;;;;;,,,;:::::::::::cccc:::::::::cccccc:::clc,..';lxdlldxdoodkkkkkOOkkOOOOOOOkkkOOOO0OkxxxkkOO00KXXXNK00Ol,'.....     .....'''...........',cxOxdxxxxxxdllllloooooooooooool::cloooooooook
::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,''.',;;;;;:;:::::::::;;;;;;;;;;::;;:::::::::::::::::::;;;:ccccccccccccccccccccccccccccccclcloo;..',;odlclddoooxkkkkkkkOOOkkkOOOkkkkkOOOkkxxk0KK000KXXXX0KKxc;,'.........................;cccdkkxddxxxxxdllllloooooooooooool::cloooooooolx
,,,,,,''',,,,,,''',,,,,,,,,,,''',,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;::::;,',;:cccccccclccccccc:::::::::cc:::ccc:cccccccccccccc:::ccllcccllllllllccclllcccccccllllllool'.''',ldl:cldddodxkkkxxxkkkxkkOOOOOOOkOOOOkxk0KK00KKKXXXKOOK0dlllllc:;;;,'............';;;:ccoxkkxdodddxxolllllloooooooooolll::cloooooooook
.'''''...',,,,,''',;;::::::::;,;:::::;;;:::::::ccccccccc::::::ccccc:;,,:cllloolllllllllcccccccccccccccccccccccccccccccccc:::clllllllllllllllllloolcccccccllllllc;..''',:locclodddodxxxxkOOkxddxkOOOOOOOOOOOOOKK0OO0OOO0KKOkkO0kl:clddddolc:,'.........',,'',;cdxxxddooodxxolllllllooooooololll::cloooooooolx
,,,,;;,,,,;;;;;,,,:cccllllllc:::ccccccccccccccclllcccccccccccccccccc:,;cloooooooooooooollccccccclllllccccccccccccccclllllc::cllllllllooooolllooooollcccccccllllc,..'',,,cooccloddddxkkkOOOxxdoodxkOOOOOOOOO00KK000OxxkOOOOOkxxxdc:;;;::::;,'....''.........,codddddoooddxxollllllllooooooooollc:cloooooooolx
,;;;::;,,;:::::;,,:clllllllolc:ccllcccccllllccllllllllllllllllcccclc:;;cloooddoooooooooollcccclllllllllllcllcccllccllllllc::cllooolloooooooooddddooolllllllllol:'..',,,,;coocclodddxO0OOkOkxdollodxxkOOOO000KKK0O0OkkOO00Okxxxdol:;,'''''................';cooodddoooooddoollollllloooooooolllc::llooddooolx
;;;::::;;::ccc:;,,:lloooooooolccclcccllllllllllllllllllllllllllcclllc;;cloodddddoooooooolllcllllllllllllllllllcllllllllllc:ccllooooooooddddddxxxddooolloooooodl;..'',,,,,;cllcllodxk00Okkkkdoc:clloodxxkOOO0KK0OOkkxkkkkkxxxxxdooc:;,'''..............'',;:cllodoooolooolccllooolllooooooollllc::looddddoook
;;;::c::;::ccc:;,,:looooooooolccllllllllllllllllllllllllllllllccclllc;;cloddddddoooodddoollllllllllllllllllllllllllllllllcccclooooooooddddddxxxxdddooollooooddl,...''',,,,;:ccccldxkO0Okxkxo:,;::::ccllodxxk000Okkxkxddxxddxdddollc:,,,'''''...''''','',;;:ccloodooolllcccclllloooooooooooolllc::looddddoolk
;;::cccc:::cccc;,,:looooooooolccoollclllllllllllllllllllllllllccclllc;,:loddddddddddddddoolllllllloollllllllllllllllllllllcccloooooooddddddxxxxxxddooooooooddoc;..''''',,,;;:ccclodxxxkxddxl;;;,,',;::;:codxkOOkxkkkxdxxddxxdxxolc::;,,,,,''''',,,,,,,,,;:ccllooooddlc::cccllllloooooooooooooll::lloodddoook
;:::cccc:;;:ccc:;;:looooooooolcclllcccllooolllllllllllllcclllcccclllc;,:ldddddddddddddddoolllllllooollllllllllllllllllllllcccooodddddddddddxxkkxxddoooooooddolc:'.''''',,,,;::::ccllodxxdddo:;'...,;:;,'';loddkOOkxxddxddddddddoolc::;;,,,'',,;;;;::c::::::cclllllooc:::ccclllloooooooooooooool::cloooddoook
;::cccccc:;::cc:;;:looooooooolccclcccclloooolllllllllllccclllllcclllc;,:ldddddddddddddddoolllllllooollllllllllllllllllllllcclodddddddddddddxxkkxxddooooooddxocl:..'''''',,,,;;;::::cloodddddc;,,,;;:cc:,..,oxxxk00Okxxxddddooooolccc:;;;;;;;::::ccldxkOOkdlc:cccclolc:::cclllllooooooooooooooolc:cloooddoook
::::ccllc:;;::::;,:looodooooolccccccccllooooolllllllllcccllloollclllc:;:ldddddddddddddddoollllllooooolllllllllllllllllllllccloddddddddddddxxkkxxxdoooooddxxdlcoc..''.'''',,,;;;;;;;:clloodddl:;;clcclol:'.,kNX0OOOkkxxdddooolllcc:::;;;;::cccccclooxOKNWNXOo::::clc:c:::cccllloooooooooooooooolc:cloooddoook
:::ccclllc:;::::;,:loooddoooolcccccccllooooolllllllllllllloooollcclll:;:odddddddddddddddolllllllooooollllllllllllllllllllllccoodddddddddddxxkkkkxddooddddxxdclko'.....''',,,,;;;;;,;:cloodddoc:::lolldol;',kWMWNX0kdoolllllccc::cc::;,;:cclllloodxxkOKXNWWKl;:;;:c::c:::cccllloooooooooooooooolc:clooooooook
c:cccclllc::::::;,;loodddooooollcllcclloooooolloolllllllllooooollllll:;:lodxddddddddddddolllllllooooollllllllllllllllllllllcclodddddddddddxxkkkkkxdooddddxxoloko'......'''''',,;,,',;:cloddddoc:codlclool;:kNMMMMWXklclloollloollllc:::clooooddxxkkO0OOXWNk:,'';c:::cc:::ccllloooooooooooooooolc:clloooooolx
cccccclllcc:::::;,;coooddoooooolllllllloooooollooollllllllllooollllll:;:lodddddddddddddoolllllllooooollllllllllllllllllllolcclodddddddddddxxxxxxxdoooodddddolddl'.......'''''',,,,',,;:clddxdolclodocclol:cxXWWWMMWKxdk0000OOkkxddoolcclodddxxxxkkO000KNWW0:..':c:::cc:::ccllloooooooooooooooolc:clloooooolx
ccccccccccc::::;;,;coooddoooooolllllllloooooollooolllllllllllllllllllc;;codddddddddddddoolllllllooooollllllllllllllllllllolccloddddddddddddxxxddddooooddddooooxd'..........'''',,,,'',,;clddddollooddlcc:;;oOKXNWMMXOO0XXXXKK0OOkkxxdooodxxxkkkkkO0KKKXNWW0c..':c::cc::::ccllloooollooooooooooolcclloooooolx
ccccccccccccc::;,,,cooddooooooollllllllloodoolloooolllooooollllllllllc;;coddddddddddddddoollllllooooollllllllllllllllllloolccloddddddddddddxxxddxddooddxxxdoox0d'............'''',,'''',;clodddolllodool:;;cxOKNWMMWNKKXXXXXXKK00OOkkxxxxkkOOOOOO0KKXXXXNN0c..;ll::cc::::cccclloooooooooooooooolcclloooooolx
ccccccccc:cccc:;,,,cooooooooooollcccllllooddooooooooooooooooooollllllc;;coddddddddddddddoolllllooooooollllllllllllllllllooolcloddddddddddddxkxddxxdooodxkkxddO0l.............''''',,''.'',:lodddocclodxdlc::o0XXNWWWWNXXXNNNXXXXKKK00OOkO0000000KKXXXXXXNXx;.':olc:cc::::cccclloooooooooooooooolcclloooooolx
ccllllcc::cccc::;,,codooooooooollcccccclooodoooooooooooooooooooolllllc;,:oddddddddddddddooollloooooooollllllllllllllllllooolcloddddddddddddxkxxdxxdooddxkkxodOk:...............''''''''.'',;clodolcccoxxdoc;cOKKKXNNXXNNNNNNNNXXXXXKKK000KKKKKKKKXXXXXNNNNk;.'colcccc::::ccclllloollllloooooooolcclloooooolx
cclllllc::ccccc:;,,:ooooooooooollccccclloddddoooooooooooooooooooollllc;;:ldddxxdddddddddoolllloooooooollllllllllllllllloooolcloddddddddddddxxxxxxxdooddxxkdldOx;..  .............'''''''...';:clolc:cldxkxdllxKXKKKXNWWNNNNNNNNXXXXXXXKKKXXKKKKXXXXXXXXXNNk,.;lolccccc:::cccllloooooolllooooooolcclllooooolx
cccccccc::cccccc;,,:oooooooooooollllcclloddddooooooooooolloooooooolllc;,:ldddxxdddxxddddoolloooooooooollllllllllllllllllloolccooddddddddddxxkkxxxxddoodddxdllkd,..  ................'''''....';:clllcccdkkkxdxk0KKKNWMMWNNNNNNNXXXXXXXXXXXXXXXXXXXXKKKKKXKxccoxxdocccc::::ccllloooooolllooooooolcccloooooolx
cccccccccccccccc:,,;loooodooddooollllllloddddoooooooooollloooooooolllc;;:lddxxxdddxxdooooolllllooooooollllllllllllllllloooolcclodddddddddxxxkkxxxxdoooddddo:ckd,.    ..................'''....',::cccc:coxOOkkdkKXNNNWWWWNNNNNXXXXXXXXXXXXXXXXXXXXXKXXXXKKK0OOkxolccccc:::cclllooooooollooooooolcccllooooolx
c:ccccccc:cccccc:,';cooooooodddooolllllloddddooooddoooollooooooooolllc:,:ldxxxxddddddooooollllooooooooolllllllllllllllloooolccloddddddddxxxxxxxxxxddooddddo::ol,.      .................''''....';:cccc::lxkOOkkOKXNK0KXNNNNNXXXXXXXXXXXXXXXXXXXXXXXXXXXXKXXXX0xlcccccc:::ccllloooooooolloooooolcccllloooolx
c:cccccc::cccccc;,',cllooddoddddooolllllodddddooddddooooooooooooooolll:;:lddxxxddddddooooollllloooooooolllllllllllllllloooolcldkxxdddddddxxxxxxxxxddoodoodoc;lo;.         ...............'''.....',:cccc::ldkOOOOkO000O0XNNNXXXKKKKXXXXXXXXXXXXXKXXXXXXXXXXXXXX0dlccccc:::ccllllooooooolllloooolcccllloooolx
cccccccc::cccccc;,',:llooddddxxddooollllodddddoodddddoooooooooooooooll:;;lddxxxxddddddddoolllloooooooooollllllllllllllloooolclxkOkxddooddddddxxxxxdoooooodo:;co,.           .......................';ccllc:clxO00OkkkkkOXNWNNXXKKKKKXXXXXXXXXXXXXXXXXKXXXXXXXXXXOoccccc::::cclllloooollllloollolcccllloooolx
ccccccccc:cccccc;,',:lloodddxxxdoollllloodddddddddxdddooooooooooooooll:;;coddddddddddddddoolllloooooooooollllllllllllllloooolldxxxdolllloooodddddddoolllool:,:l;.             ......................',:lolc::coxO00OkddkXNNNXXXKKKKKXXXXXXXXXXXXXKKXXKKXXNNXXXXXKxlcccc::::cccllloooollllloollllccclllloollx
ccccccccccccccc:;,'':llooddddxxdoollllloodddxddddddddddooooooooooooool:;;coddddxddddddddddoolloooooodoooolllllllllllllloooolcclddolcccccllllodddddoolllllc:;,:l:.              .......................,:ooolc::cldkOOkxkXNNXXXXXXXXXXXXXXXXXXXXXXXXXXXKXXNNNXXXXXOocccc::::ccclllooollllllllllollcclllloollx
ccccccccc::cccc:;,.':llooddddxddollllllooddxxxdddddddddooolllooooooollc;;clodddxdddddddddddoooooooooddoooollllllllllllloolollcccccc::::ccccllodooooolllllc;,,:lc'.               ......................,codolc:::clodxxkKXNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNNXNNXX0occcc::::ccclllooolllllllllllllccllllllllx
c:ccccc:::::ccc:;'.';lloodddddddollllclloddxxxddddddddooolllloooooooolc;,:lodddxdddddddddddoooooooooddoooolllllllllllllooooolc::::::::::ccccloddooollllllc;,,co:..                ..  .................':ldolcc:;;:clodxOKNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNNNNNX0occcc::::ccclloooolllllllllllllccclllllllx
::ccc:::::::ccc:;'..;clloddoddddollllllloddxxxdooodddddoollllloooooollc;,:lddddxdddddddddooolllooooodooooollllllllllllooooollc:cc::::::::ccccloddolllllll:;,,;ll,.                     .................,coollc:;;::::ccd0XNXXXXXXXXXXXXXNNNXXXXXXXXXXXXXXXNNNNNXOocccc:::::cclllooolllllllllllllcccllllollx
:::ccc::;;:::c::;,..,cclooooddddolllllllloddxxdoooddddddoolllloooollllc;,:ldddxxdddddodddooollllooddddoooolllllllllllloooooolccccccccc:::ccccclodolllllllc,'.'co;.                       ...............';lollc:;::cc:;;ckXXXXXXXXXXXXXXNNNNNXNNXXNXXXXXXXXNNNNNXklc:cc:::::cclllllllllllllllllllccclllllllx
:::cc::::::::c::;,'.,:clloooodddoooollclloodxxdoooddddddoollllloolllllc;,;lodxxddddddodddooollllooodddoooolllllllllllloooooolc::cccccccccccccllodollllllc:,'..;l:..                         .............,clollc:::clc::cd0XXXXXXXXXXXXNNNNNNNNNNNNNXXXXXXXNNNNXKxcccccc::::cclllllllllllllllllllcccllllllcx
::::c:::::::cc:;;,'.':llooooddddooooollllloddxddoooddddoolllllllllllllc:,;codddddddddooodoooollloooddddooolllllllllllooooooooc:cccccc:::cccccllooolllllc:;;'..,cl'.                         .............';loollcccclllc:oOXXNNXXXXXXXXXNNNNNNNNNNNNXXXXXXXXXNNX0oc:::cc::::cclllllllllllllllllllcccllllllcx
:::::::::::::::;;,'.':llooooodddooooolclllodddddooodddoooolllllllllolll:,;coddxxddddooooooollllooodddddoollllllllllllooooooooccccccccc:::ccccllollllllllc;,'...;:'.                           ...........',:clllcccclolllox0XNNNXXXXXXXXNNNNNNNNNNNXXXXXXXXXXXXXOoc:::c:::::cccllllllllllllllllllc:cllllllcx
:::::::::;;::::;,,'.':clooooodddooooolccllooddddoooddddoooolllllllooool:,;ldxxxxddddoooooolllllloooodddoolllllllllllooooooooolcccccccccccccccllllllcllllc:,''.'::'...  .                          ........';cllllccccllloxxkKXNNXXXXXXXXNNNNNNNNNNNXXXXXXXXXXXXXklc::ccc:::::ccclllllllllllllllllc:clllllllx
:::::::::;;:::;,,,'.':clloooooddoooollccllodxxxddoddddooooollllllllllll:,;ldxxxxddoooooooooolllllooooddolllllllllllllollooooolccclllcccccccclllllllloollc:,''..,;'...  ..      ..                .........';:cclllccclllodx0XXXXXXXXXXXXXXXXXXNNNNNNXXXXXXXXXXX0dlc::::::::::ccccllllllllllllllllc:ccllllllx
::::::::::;;;;;,,,'.';cllooooodddooollccllodxxxddddxxddooooolllllllllll:,,cdxxddddooooooooooollloooooodoollllllllllllooooooool::cllllllccllllllllllollllc:,'....''...          .....             .........',:cccccccllooooxkkkKXXXXXXXXXXXXXXXXNNNNXXXXXXNXXXXKkolc::::::::::ccccllllllllllllccccc:cclllllcx
;:::::::::;;;;,,,,'',:clllooooodoooollccllodxxxxdddxxdoooooollllllllllc:,,coxxddddddoooooooollllloooooooollllllllllllooloooool::clolllllllllllllooooollc::;''''.'.......        .......          .........'',;::ccccloooodddddk0XXXXXXXXXXXXXXNNNNXXXXXXXNNXXKOdolc:::::::::::cclllllllllllllllllc::clllllcx
;:::::::::::;;,,,''',:clllooloooooolllccllldxxxxxxxxxdooooollllllcccccc:,,:oxxxxxddddooodooolllllooooodoolllllllllllllllloolol::cooooolllllloooooooolcc:;;,,;;'.,,'......      .........         .........''',;;:::cloddodddoodxOKXXXXXXXXXXXXXXXXXXXXXXXXXXKOxdolc::::::::::ccccllllllllllllllllc::cllllllx
;:::::::::::;;,,,''',:clllollooooooolllllllodxxxxxkkxdooooollllccllllcc:;,:oxxxxxddddoooooooolllloooooooollllllllllllllllollll::coooooolllloooooooollcc:;;,,;:,.''.......     ..........         ........''',;;;;;:looooooooooolok0KKKXXXXXXKKKXXXXXXXXXXXKxloddolc::::::;;::ccccclllllllllllllllc::clllllcx
;::cc:::::::;;,,,,''';clllolloooodoolllclllodxxkkkkkxdoooooolllccccllllc;,:oxxxxxddddoooooolllllloooooooollllllllllllllllllllc::cloooooooooooooodxdllc::;;,,:l:..''....       .........         .........'',;:;,,,:loooooooooolcccoxO0KKKKKK000KKKKKXXKKOd:.,lddolc::::::;;;:ccccccllllccclllllllc::ccllllcx
;;:::::::::;;,,,,''.',cllllllooooooolllccclldxkkOkkkxxooooollllccccllllc;,:odxxxxdddddooooollllllloooooollllllllllllllllllllllc:clooooooodxxxxdxOkoclc:;;,,,;c:'','....          .........     ...........',;;;,,,:looooodddooll:;,;coxkkkkkkxxkOOOOkdl:'. .,lddolc::::::;;;::ccccclllcccccllllllcc:ccllllcx
;;;;;;;;;;;;,,,'''...,:llllllloooooollllcclldxkOOOkkkxdooooolllccllllllc:,;ldddxxdddddoodooolllllloooooollllllllllllllllllllllc:clooooodk00K0kkxl;:lc:::;,,,,:l:''.....           .......................'',;::;;:clooooddddoollc:,'',;;;;;,,'',,,''..     .'lddolc:::::::;;::cccclllllcccllllllllc:ccllllcx
,;;;;;;;;;;;,,,''''..,:ccllllooooooolllccclloxxkkOOOkxdollollllllllllllc:,;codddddddddooooollllllloooooollllllllllllllllllllllc::lodddxOXK00kc,...;cc:;;;;;,;:c;'..'..             ......................'',;;;;::ccloooooddooolc;,''','.........          ..cddolc:::::::;:::ccccccclcccclllllllcc::cllllcx
,,,,;;;;;;;,,,,''''..':ccllllooooooollccccclodxkkOOkkxdolllllllcclllllcc:,,:oddddddddoooooolllcllloooooollllllllllllllllllllll:;:lodxkKWN00Oo'.. .,::;;,;;,;:::c,.....              .......................',,,,,;:clloooooolllcc;'...'...........          .:odoolc::::::;;:::ccccccllccllllllllcc::cllllcx
,,,,,,,,,,,,,,,,''...':cclllllloooooolc::cclodxkkOkkkxdolllllllccccllllc:;,:ldddddddddoooollllcccllllllllllllcllllllllllllllllc::lodONWWNK0k:.....,;;;,,,,;cc;:c;'....              .......................'''''',;::ccclloollc::;'...''..........         ..,ldoolc::::::;;:::cccccclcccclllllllcc::cclllcx
,,,,,,,,,,,,,;;,''...';cccllllloloooolc::cclodxkkkkkkkxolclllllcccccllllc;;:lddddddoddooooolllcccllllllllllllccllllllllllcllllc::coxKWWNXOko'.''..';;;;;,,;:c:,;:,'...                ......................'..''',;:::clodolc:;,'..',,''.........         ..'cooolc::::::;;;:::ccccccccccccccccccc::cccllcx
,,,,,,,,,,,,;;;,''....;:cclllllllloddoc::cclldxkkkkkkkxolclllllcclllllllc:;:ldddddooodoooolllcccccllllloollllccllllllcccccclllc::cokXWWN0xo:'',cc;,,;:::;;:::;,,;:,...                ....................'..'''',,;;;::clllc;;,''..'',''.........         ...:ooolcc:::::;;;:::ccccccccccccccccccc::cccllcd
,,,,,,,,,,,,;;,'''''..,:cccllllllloodocc:cccldxkkkkkkkxdlllllllcclllllllc:;:ldddddoooooooolllcccclllllloolllllcllllllcccccccllcccco0WWWXklc::cldOkl:;;;;;;cc;;,,,;;'.... ...           .................'''.','',''''',,;::::;,''....''''..........       ....:ddolcc:::::;;;;::ccccccccccccccccccc:::ccllcd
,,,,,,,,,,,,,,,'''''..':cccllllllloooolc::ccldkkkkkkkkkdollllccccccccllcc:;:lddddooooooooollcccccclllllooollllllccccccccccccllcc:lxXWWWKdccdOkk0XX0d:;;;;:c;;,,'.';,.............       ..............'''...'''''''''''',,,;,,''.......''..........        ...;dxoc:::::::;;;;:::cccccccccccccccccc:;:ccclcd
,''',,,,,,,,,,,'''....':ccccllllllloolcc::ccldkOOkkkkkkxoolllccccccccclcc:,;coddoooooooooollcccccccllllooolllllcccccccccccccllccclkNWWN0o:ckXXXXXKOkdc;;;:;;;,,'...'..............      .............''',''...''''''''''',,,''.........''..........         ..'cddl:::::::;;;;:::cccccccccccccccccc:;::ccccd
,''',,,,',,,,,,'''.....;:cccllllllllllccc:ccldkOOkkkkkkxoolllccclccccclcc:;;codoooooooooolllcccccccclloooolllllccccccccccccclloood0NWWNOl:l0NNNNXKOO0kdoc::;,''...................      .............'',,''.....''''...'''''''.........''..........         ...,cooc::::::;;;;;::ccccccccccccccccc::;::ccccd
'''',,'''',,,,,''......;::cclllllllllcc::::cldkOOkkkkkkdollcccccllccccccc:;;codoooollooollllccc:cccllloooollllllcccccccclloodoooox0WWNXkc:dKNNNWNNXKKKK0kdlc;'....................     ...............''''......'......'''''...........''.........          ...',,,:ll::::;;;;;:::cccccccccccccccc::;:::cccd
'''''''''',,,,'''......,::cllllllllllc::;;:cldkkkkkkkkkxdlcccccclccc::::::;;coooooolloooolllccc::cclllloooollllllllllllodddooooood0NNNKd;:kXNNWNWWWNXXKKKOxl;'.....................    . .............'''..............''''.......................           ..,,,.:k0kl::;;,;;::::ccccccccc:::c::::;;:::c:d
''''''''''',,'''.......,:ccllloolllllc::;;:cldxkkkkkkkkxdolcccccllcccccc::;;coooooolloooollllcc::cclllllooollllllllloddooollllllodxOXKxc;l0NNNWNNWWWWNXXKKOxo:'...................     ....  ........''''..............'',''............''........           ..','.':x0Odc:;,;;;:::::ccccc::::::::::;;:::c:d
''''''''''''''''.......,:cclolllllcclc::;;;:coxkkkkkkkkxxollccccllccccccc:;;:looooooooooollllccccccloolooooooolllodxxdoolllllllodddx0Oo;;dKNNNNNNNNWWWWWNXK0Oko;'.................     ...   .........'',,'............'''''............''.......            ...'''...:k0xc;,,;;;:::cccccc::::::::::;;:::::d
''','''''''',,'''......,:ccclllllccccc:;;;;:cldxkkkkkxxxxdlllccclllcccccc:;;:ldddddoooddooooolllllloodddddddddddddxdollllcccclodolloddl,,oKNNNNNNNNWNNWWWWNXK0Okdc;'..............    ....   .........',,,'............''''''...........''.......           .....,,'.,;ckKx:;,,;;:::cccccc::::::::::;;;::::d
''',,,,,''',,,,''......';:ccllllcccccc:;;;;:clodxxxxxxxxxdolllllllllllllllc:ldxxxxxxkkkkkOOOOOOOO0000KKKXXXXXXKkxdlccccccccclooolllodoo:'.l0NNNNNNNNNWWWNNNNNXK0Okxl:'............... ................',;,''....''''..''''''''..........'.......               ..,;,,colkNKd:;;;;::::ccc::::::::::::;;;;:::d
oc:;,,,,'',',,''''......;::ccccccccc:::;;;;:clodxxxxxxkxxxxddddxxkkkkOO0000O0KXXXXXNNNNWWWWWWWWMMMMMMMMMMMMWX0kdolcccccc:clooolccclooooc,..:OXNNNNNNNNNNNWWNNWNNXK0Oxoc;'............................''',,''....'''''..'',''''..................                .;;;:oolkWWOc;;;;:::::::::::::::::::;;;;::;o
lc:;;,,,''''''''........;;::cccccccc:::::::clodxkOOOO000KKKXXXXNNNNNWWWMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMWWNXKkdooolcc:cccccloollc::clllllc:,..'oKNNNNNNNNNNWNNNNNNNNNXK0Oxoc:,'.........................''''''.....'''....'''''''...............                  'cc:cdo:oKWKl,,;;:::::::::::::::::::;,,;;:;o
.......''''''''.........;:::ccclllllloodxkkO0KXXNNNNWWWWWWWMMMMMWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNNXKOxddooolcccc:::cllllc::;;:ccccc:c:'...;xKNNNNNNNNNNNNNNNNNNNNNXK0Oxdlc;,'................''....'''''.....''''...'''...................                 .cdddddl::xXXo;,;;;::::::::::::::::::;,,;;;;o
       ...'.......'''...;:cclodxkO0KKXNNWWWWWWWWWWWWWWWWWWWWWWWWWWMMWWWWMMMMMMMMMMMMWWWWWWWWWWWWWNNXK0Oxdddoollccccc:::cllcc::;;;:::::::::,'....:xXNNNNNNNNNNNNNNNNNNNNNNNXK0kxdlc:;,'...........'''......''.....'''.....'....................                .,cldddolc;lkOo;,;;;;;;;:::::::::;;;;;;,,;;;;o
        .........',,'..':oxO0KXNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWMMWWNNWWWWWWWWWNNNNXK0kxdddolcclllllc::ccccc:::;;;;::::;;:;,,;;,'...:kXNNNNNNNNNNNNNNNNNNNNNNNNNXK0Okdolc:;,'.....'''.......'''.....''..........................               ..'',;cccll::loc,,,;;;;;;;;;::::;;;;;;;;,,,;;;o
          .....''';;;:ld0XNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWNNNNWWWWWNNXXXK00kxdoddollccllllcc:::::cc:;;,,,;;;;;,;;,,;::::;,..'cx0KNNNNNNNNNNNNNNNNNNNNNNNNNNXXK0Oxdolc::;;,''.......'''................................           ...','...',;coxo:;:c:,,,,;;;;;;;;;:;;;;;;;;;;,,,;;;o
           ..,''',cdOKNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNWWWWWWWNNNWNNNNWWWNNNNNNXXK00OOkxdoooollcllllllcc::;;;:::;;,,,,;,,,,,,,,;:;;;;;:,'...';oOXNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXK0Okxdolc::;,,'''..................................      ....',;;ccc,...';:okkl:,:dxo:,,,;;;;;;;;;;;;;;;;;;;,,,,;,o
            .,;:lx0NWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNWWNWWWWWNNNNNNNNNWWNNNNXXKK0Okxxxdddoolclllollll::;;,,;;:;;;,'',,,,,,''',;;;;;;;;,,,,''...'cx0XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXKK0Okxdoolc::;;;,,,''''.............................',;;:::;;,'...',;:okc'':lcoOOl;,;;;;;;;;;;;;;;;;;;;,,,,;,o
          ..,ckKNWWWWWWWWWWWWWWWWWWWWWWWWWWWNNWNNWWWWWWWNXXXXNNNNWWWWWNNNNNNNNNNNNNXXKK00Okkxdooolllllooollllc:;;,,,,;;;,,''''''',,,,',;;,,,;;,,,,,',,''....,cxKXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXKK0Okxddolllc:::;;;;,,,,,'''''........''',,,;;;;;;;;;,'..',,,,:xkl,;dxlclkkc,;;;;;;;;;;;;;;;;;;;,',,,,l
      ...;ok0XNNNNNNWWWWWWWWWWWWWWWWWNWWNNNNWNNNNNNWWWNNXXXXNXXNNWWNNNNNNNNNNNXXXXXK000Oxxxdddolllcclllollccc:;,,,,,,;;;,,,'...'''''''',,'',,,,'','''..........,cdOXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXKK00Okkxxddollcc::::;;,,',;::;;;;;;;;;;;;,,,,,''',,''',lkOOolxdddcdkc,,;;;;;;;;;;;;;;;;;,,'',,,l
   ...;oOXXXNNNNNWNNWWNNNNNNNWWNNNNNNNNNNNNNNXXXNNNNNXXXXXXXXXNNNNNNNNNNNXXXXXXXK0K00Okxddxddolccccccloollcc:;,'''''',,,,,'......'''''',''',,,''''................';lx0XXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXKK00OOOkkxxdolc:ccc:;;;;;,,,'.''''''''''''..,dkkkkOkllxxOOo:;;;;;;;;;,,;;;,,,,,,''',,l
 ..,lOXNXXXNNNNNNNNWNNNNNNNNNNNNNNNNXXNNXXXXXXXXNXNNXXXXXXXXXXNXXXXNXXXXXXXXKK0000OOkxddddodolc::::cclllccc:;'''''''''''''......'''''',,''',,'........................';lxOKXNNNNNNNNNNNNNNNNXXXXXXXNNNNNNNNNXXXXXXXXXXXXXXXXXXXXKK0d:;;,;cooooooc'..'''''''''''..:xkxxxOxodkOkdllc:;,,,,,,,,,,,,,,,,,'',,,l
,lkKNXK0KNNNXXNXXNNNNNNXXXXXNNXXXNXXXXNNXKKKKKKXNNNNXXXXXXXXXKKKKXXXKKKKKK00OOOOOOkdddooooddolc::ccclollllc;,'..''''''''..........'''''''''......................... ......,cdk0XXNNNNNXXXXXXNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOl;,,,ckKKKKKOl....'''''''''...:lcclcoododdl:::cc;,,,,,,,,,,,,,,,,,'',,,l
0XNNXKO0XNNXKKXXNNXXXXK0KKXXXXXKKKKKKXXK000000KXXXXKKXXXXKKXXKKXXKKK00000Okxxkkxxxolloooollllc:::ccclolllc:,........''............'''''''''.......'............................';cokOKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXKx:,,,:xKXXXKKOl,'....'''.''...''..coc:cllcc::::::;,,,,,,,,,,,,,,,,'''','l
NNXK00KKKK000KXXKKK00OOOKKKKKKKK00KKK00OkO00KKKKKKKKKKKKK00KKKKKK0OOOOOkxxxkkxddollllllllllllc::::cllcclc;'...........................''''.....''....................... ...........',:ldxO0KXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXKOl;,',cOXXXKKKKx;.............'..  'cc:::c:::::::;;,,,,,,,,,,,,,'''''.'''l
XKOkO0XX0OOO000OO0OkkOOOOO000000OO0000OxkOOO0KKK00000OOOOOOOO000OkkOkkxdddxkxdoolcccccclllllcc:;::cccccl:'............................'''.....'...................   .. ...................,;cldxk0KKXXXXXXXXXXXXXXXXXXXXXXXXXXXXKkc,'''cOKKK000x;................    .,::::::::::;;:;,,,,,,,,,,,''''''.'''l
Oxdxk0K0kxxkOOkkkxxdxO00OkkOOOkkxdkOOOkxkO0O0KK00000OkxkkOOOOOOOkkkkxdooooooolc:::cc:cc::llc::;::cllccc:'.............................'''....................         .   ........................',;clodxkO0KKKKXXXXXKKKKKKKKXXKKd;''',d0KKK0Ox;..........            .::::::::::;:cc;,,,,,,,,'''''''...''l
oooxkkkxoddxdodxdodxxkxdddxOkxdooodxxxxkkkkkOO00OOOkkkkkkOkxxxdddddddllooollc:;;;;;;;,;:ccc:;;::cccccc:'...................................................               .................................',;::cclodxxkkOO000KKKkc'''.;d0K000kc.........              .ll:;;;;;;;;;;::,','',,''''''''.....c
ccodddolloolccloolllllccloxdolccodddddddodddxxkkkOOxxxxxxddddolooolc::lolc:::::::;;,,;;:::;;;;;:::;;;,...................................................                         ..................................'','..'',;;;;,'.'..;xO00Oko,......                 'xd:;;;:;;,;;;;;,''''',''''''''.....c
;;clllllc::::;;;:;;::;;cooolc:;:cccllddollodddddkkxxxxxdddxdoollllc::ccc::::;;::;;,,,;,,,;,,,;:::;;,'..  .................  .............................                         .................................''',........   ......,;::;,.....                     .;;;;cc,..',;;,''''''''''''''......c
,;ccc:::;;::,,,,,,;:;;;:ccc:;;,,;;::clooccloollldddddddddddollcc::cc:::;:c:,',;;,'..',,',,,,,;::;;,....   ..............   .............................                           ...............................'''...   ....   ......                                 .';coo;...''''''''''''''''''......c