OOOOOOOOOOOOOOOOkkxxdooc;'.                                                      .. ....................................................................................................................................................................................                                                                                                
OOOOOOOOOOOOOOOOkkxxddoc;'.                                                      .......................................................................................................................................................................................                                                                                                
OOOOOOOOOOOOOOOkkkxxdolc,..                                        ....... ............................................................................................................................................................................................                                                                                                 
OOOOOOOOOOOOOOOkkkxxdol:,..                                        ....................................................................................................................................................................................................                                                                                                 
OOOOOOOOOOOOOOOkkxxdolc;'.                                          ...................................................................................................................................................................................................                                                                                                 
OOOOOOOOOOOOOOkkkxxdol:,..                                        .....................................................................................................................................................................  ................................                                                                                               
kOOOOOOOOOOOkkkkxxdol:;..                                      ....................................................................................................................................................................           ...........................                                                                                               
kkkOOOOOkkkkkkkkxdolc;'.                                        .................................................................................................................................................................               .........................                                                                                               
kkkkkkkkkkkkkkxxxdlc;,..                                       ................................................................................................................................................................                    .......................                                                                                              
kkkkkkkkkkkkkkxddoc;,..                                .......................................................................................................................................................................                       ........................                                                                                           
kkkkkkkkkkkkkxddol:;'..                           .  ........................................................................................................................................................................                          ................................ .            ...............................................                    
xkkkkkkkkkkkxxdolc;'... .                 .............................................................................................................................................        ...........................                               ...............................................................................................................
xkkkkkkkkkkxxdolc:,................ ................................................................................................................................',,,,,,,..........              .................                                      .............................................................................................................
xxkkkkkkkxxxdolc:;'...........................................................................................................................................';::cccc:::::;;;::;,'..                   ..                                                  ...''''''''.................................................................................................
xxkkkkkkkxxddolc;,........................................................................................................................................,;:cccccccccccc:;;;;;;;,,.                                                                          ..'''''''''''''''''''''''''''''''''....................'''......'''''''''''''''''''.......................
xxxxxkxxxxddolc;,.....................................................................................................................................';clllllllllccc::;;;;;;;;,,''.                                                                           ..''''''''''''',,,,,,;;,,;,,,,,,,,'''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,''''''''''........'.'...
ddxxxxxxdddolc;,...................................................................................................................................,:clollllllllc:::::;;;;;;;;,,'''.                                                                             .',,'''',,,,,;;;;::::::::::::;;;;;,,,''''''''''''''''''',,,,,,,;;;;::::::::::;;;,,,,,''''''''''''''''''
ddxxxxddddolc;,.....  ..........................................................................................................................';looooollllllllccccc:;;;;;;;,,,'''.                                                                              ..','',,,;;;;::::cccccccccc:::::;;;,,,'''''''''''''''',,,,,,;;:::::cccccccc:::::;;;,,,''''''''''''''''
ddxxddddollc;,.......  ......................................................................................................................,:clooolllllllcccccccc:::::;;;;;,,,'''.                                                                                .',,,;;;:::::ccccccccccccccc::::;;;,,,'''''''''''''',,;;;;::::ccccccccccccccc::::;;,,,''''''''''''''
oddddoollc:;,..        ...................................................................................................................,:loooollllllcc::::::cccc::::::;;;;,,''....                                                                                .',;;;:::cccccllllllllllcccccc::;;,,,'''''''''''''',;;;:::cccclllllllllllllccc:::;;,,''''''''''''''
ooooollc::;'..         ................................................................................................................,clooooollllllccc:::::::::::::::::;;;;,,''.....                                                                                .,;;;::cccllllloooooolllllccc:::;;;,,'''''''''''',,;;:::cclllllllooooollllllcc:::;;,,'''''''''''''
ooollcc:;,'..          .............................................................................................................';coooooollllllcccc:::::cc:::::;::::;;;;;;,''......                                                                               .';:::cclllloooooooooooolllcccc::;;;,''''''''''',,;;:::ccllllooooooooooooolllcc:::;;,,'''''..'''',
llcc::;,'..            ...........................................................................................................;coooooolllllllcccc::ccccccc::;;;;;;;;;;;;;;,'''.....                                                                                .,::cccllloooooooooooooolllccc:::;;,,'''''''''',;;:::cclllloooddddddddddoolllcc:::;,,''''.....'',
c:::;,'...             .........................................................................................................,loooooolllllllllccccc::::::::::;;;;;;;;;;;;;;;,''......                                                                                '::ccllllooooooooooooooolllccc::;;,,''''''''',,;;::ccllllooooddddddddddooolllcc::;;,'''......',,
:;,,''..               .......................................................................................................,coooooollllllllcccccc:::;;;;;;;;;;;;;;;;;;;;;;;;;,'......                                                                                .;:ccllllooooooooooooooolllccc:::;,,''''''''',,;;::ccllloooodddddddddddooolllcc::;;,'''....''',,
;'.....                ....................................................................................................':loooollllllllllcccc::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,''.....                                                                               .,:cccllloooooooooooooollllcc:::;;,,''''''''',,;;::ccclloooodddooddddddoollllcc::;;,'''....''',;
'.....                ....................................................................................................,coooooollllllllccc::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,'.......                                                                             .,::ccllllloooooooooooolllccc::;;;,'''..''''',,;;:::ccllooooddddddddooooollllcc::;;,''......'',;
......                ...................................................................................................;loooooolllllllccc:::;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;,''.......                                                                           .,;;::ccccllllooooooollllccc:::;;;,,'........'',,;;;::ccllloooodddddooooollllcc::;;,,'.......'',,
....                   ................................................................................................'coooooolllllllccc:::;;;;;;;;;;;;;;:::::::::::;;;;;;;;;;;;;;,,''......                                                                        ..,,,;;;::ccccclllllllllccccc::;;;,,''..........'',,;;;::cclllllooooooooollllccc::;;,,''.........',
..                     ..............................................................................................';looooollllllllccc::::;;;;;;;;;;;;:::c:::::::::;;;;;;;;;;;;;;,,,''......                                                                     ....''',,,;;::::ccccccccccc::::;;,,,'''.............',,,;;;::ccclllllllllllcccc:::;;,,,'...........''
.                      .............................................................................................'coooooolllllllccccc:::;;;;;;;;;;;;::::c::::::::::;;;;;;;;;;;;;;;,,''......                                                                  .........''',,;;;;:::::::::::;;;,,,,''.................'',,,;;::::cccccccccccc::::;;;,,''.............'
                       ............................................................................................'coooooollllllcccccc:::;;;;;;;;;;;;::::cc::::::::::;;;;;;;;;;;;;;;;,,''......                                                               ..............''',,,,;;;;;;;;;;,,,,'''.....................'',,,;;;;:::::::::::::;;;,,,''................
..                  .  ...........................................................................................'cdddooollllllcccccc:::;;;;;;;;;;;::::ccc:::::::::::;;;;;;;;;;;;;;;;;,,'''......                                                          .....................''''',,,,,,''''.............................''',,,,;;;;;;;;;;,,,,'''...................
......                 ....................................................................................'''''''codoooolllllllllcccc::;;;;;;;;;;::::ccccc:::::::::::;;;;;;;;;;;;;;;;;,,,,'''.....                                                        ............................''''.....................................'''',,,,,,,,,,'''.......................
..........             ....................................................................................'''''':odooollllllllcccc::::;;;;;;;;;;:::::cccc::::::::::::;;;;;;;;;;;;;;;;;;,,,,,''......                                                    ............................................................................''''''''...........................
'''..........         .....................................................................................'''',:odooollllllllccc::::;;;;;;;;;;;;:::::cccc::::::::::::::;;;;;;;;;;;;;;;;,,,,,,,''.....                                                ..................................................................................................................
,,''''''........       ....................................................................................'''';odooolllllllccccc:::;;;;;;;;;;;;;::::ccccc::::::::::::::;;;;;;;;;;;;;;;;;,,,,,,,''......                                            ....................................................................................................................
;,,,,,,''''.........   ..................................................................................''''''codooollllllccccc::;;;;;;;;;;;;;;;::::ccccc::::::::::::::;;;;;;;;;;;;;;;;,,,,,,,,,'''......                                         .....................................................................................................................
;;;;;,,,,'''...........................................................................................''''''';ldoooooolllllccc::::;;;;;;;;;;;;;::::::ccc:::::::::::::::;;;;;;;;;;;;;;;;;;,,,,,,,,,''.......                                    ........................................................................................................................
;;;;;;,,,,'''.......................................................................................'''''''',,coooooooollllccc:::;;;;;;;;;;;;;;;:::::::cc:::::::::::::::::;;;;;;;;;;;;;;;;;,,,,,,,,,'''.......                                 ..''''...................................................................................................................
::;;;;;,,,,''......................................................................................'''''',,,,;ooooooooolllccc:::;;;;;;;;;;;;;;;;;::::::cc::::::::::::::::::;;;;;;;;;;;;;;;;;;;,,,,,,,'''.........                               ..',,'''................................................................................................................
::;;;;;,,,,'''..............................................................................'''''''''''',,,,,cooooooolllllccc:::;;;;;;;;;;;;;;;;;;:::::c::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;,,,,,,,''''.........                              ..,,,,'''..............................................................................................................
:::;;;;,,,,'''.....................................................................''''''''''''''''''',,,,,;;looooooolllllccc:::;;;;;;;;;;;;;;::;::::::c::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,'''...........                            ..,;;,,,''............................................................................................................
::;;;;;,,,,'''............................................''''''''''''''''.''''''''''''''''''',,,,,,,,,,,;;;:oooooooolllllcc::;;;;;;;;;;:::;;;;::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,''............                            .,;;;,,''...........................................................................................................
::;;;;;,,,''''.......................................'''''''''''''''''''''''''''''''''''',,,,,,,,,,,,,,;;;;;coooooooollllccc:;;;;;;;;::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;,,,,,,'''..............                         .,:;;,,''..........................................................................................................
::;;;;,,,''''....................................''''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,;;;;;;;looooooolllllcc::;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;,,,,,,,,,,''................                      .;::;;,,'.........................................................................................................
;;;,,,,'''''....................................''''''''''''',,,,'',,'','''''''',,,,,,,,,,,,,;;;;;;;;;;;;;;:looooooolllccc:;;;;;;;:::::::::::::::::::::::::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;,,,,,,,,,''''....................               .:c:;;,,''........................................................................................................
,,,,'''''.....................................''''''''',,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,;;;;;;;;;;;;;;;;:ooooooolccc:::;;;;;;;;:::::::::::::::::::::::::::;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;,,,,,,,,,,,'''.......................,;;,.....':cc::;,,''.......................................................................................................'
''...........................................''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;cooooolllcc::;;;;;;;;;;;;;;:::::::;;;;;;;:::::::::;:::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;,,,,,,,,,,,''......................:oooolllllccc::;,,''.......................................................................................................'
.............................................'''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;:loooolllcc::::;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;:::::::::::::::;;::::;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,''....................:loooooollccc::;,,''....................'............................''''''''''''''''''''''''''...........................''
..................... .......................'''''''',,,,''',,,,,,,,,,''''',,,''',,,,,,,,,,;;;;;;;;;;;;;;;:loooolccccccc:::;;;;;;;;;:::::::::::::::;;;;;;;;::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,'''.................':looooolllccc::;,,''..............'''''''''''''..............'''''''''''''''''''''''''''''''''''.........................'''
...........    ...... ......................'''''''''',,'''''',''''''''''''''''''''',,,,,,,;;;;;;;;;;;;;;;clodoc:ollcccc::,'..........',;;:::::::;;;;;;:::::::::::::::::cccc:c:::::;;,,'''',,,,,;;;;;;;;;;;;;,,,,,,,,,,''''................';lllllllllcc::;;,,''............'''''''''''''''''''''''''.'''''''''''''''''''''''''''''''''''''''........................'''
....... .              .....................''''''''''''''''''''''''''''''''''''''''',,,,,,;;;;;;;;;;;;;;:loodo::olcccc:'..................';;::;;;;;;;;;;::::::::::::::cccc:c:,'...  ........  ....',;;;;;;;;,,,,,,,,,,''''........'.......,cllllllccc::;;,,'''...........''''''''''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,''''''''''......................'''
...   ..                ....................'''''''''''''''''''''''''''''''''''''''''',,,,,,,,,,;;;;;;;;;cooool;:olcc:'...,;;;:;;;;;;;;,... .';:;;;;;;;;;;:::::::::::::cccc:,.. ...,;;;;;;;;;,,'.... ..',;;;;;;,,,,,,,,,,'''''''...''.......,cccccccc:::;;,,'''.........''''''''''','''''''''''''''''''''''''',,',,,,,,,,,,,,,,,,,,,,,''''''''''.....................'''
..                      ......................''''''''''''''....'.....'''.''.....''''',,,,,,,,,,,,;;;;;;:loooo:,colc,...;:::::::;;;;;::::;,. .';::;;;;;;;;:::::::::cccccc:,....;:cccc:::::::::::::;,,....';;;;;,,,,,,,,,,''''''''''''''....'':cccc:::::;;,,'''.........''''''''''',,,'''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''....................'''
.                       ......................''''''''''''............................'''''',,,,,,,,;;;;:loool;;loc..,:cc:::::::;;;;::::::::'...;:::::::::::::::::cccccc;..';cccccccc::::::::::::::::::;'..,;;;,,,'',,,,,'''''''''''''''''''';::::::;;;,,,''..........''''''''''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,,''''''''','''''''''''''''''............''''
.                        ...................'''''''''''...............................''''''''',,,,,,;;;:loooc,:oo'.:cccc::::::::::::::::::::'..':::::::::::::::::cccc:,..,ccccccccccc:::::::::::::::::::,..';,,,''..,,,,'''''''''''''''''''',;;;;;;;,,,''...........'''''''''''''''''''''''''''..'''''''''''',,,,,,,,,,',''''''''''''''''''''''''''''''''''......''''''
.                          ................'''''''''''.................................'''''''',,,,,;;;;:oool;,cd:':cccc::::::::::::;;:::::::,..'::::::::::::::::cccc:'..':ccccccccccc::::::::::::::::::::,..',,,''...,,,,''''''''''''''''''',,,,,,,,''''............'''''''''''''''''...............'''''''''''',',,,''''''''''''''''''''''''''''''''''''''''''''''''''
.                           ...............'''''''''''...................................'''''',,,,,,;;;coool,,lo::ccc:::::::;;::::;;;::::::c;...:::::::::::::::::::c,..':cccccccccccc::::::::::::::::::;;;...,,,''....,,,,''''''''''''''''',,,,'''''................'''''''''''''.......................''''''''''''''''''''''..'''''''''''',,'',,'''''''''''''''''''''
.                          ................'''''''''''....................................''''',,,,,,;;;coooc':olccc::::::::;;;::;;;;;:::::::;...;c:::::::::::::::::;...:ccccccccccccc::::::::::::::;;;;;;,'..',,'''...',,,,'''''''''''''''',,,,'....................'''''''''''''.........................''''''''''''''''''......''''''''',,,,,,,,'''''''''''....'''''
....                          ............'''''''''''''....................................''''',,,,,,;;cooo:,lolcc:::;;;;;;,,;;;;;;;;;;;;;;:,. .;c:::::cc::::::::::'..,ccccccccccccccccccccc::::::;;;;;;,,,..',,''''...',,,'''''''''''''''',,,,'....................'''''''''''''..........................'''''''''''''''''.......'''''''',,,,,,,,'''''''''''.....''''
.......                       .............'''''''''''''...................................''''',,,,,,;;cooo::olc:;;;;;;;;;,..;;;;;;;;;;;;;;;'. .,:::::ccc:::::::::,. .,:cccccccc::ccccc:;ccc::::::;;;;;;,,,'..,,,''''...',,,''''''''''''''',,,,'....................'''''''''''''...........................''''''''''''''''........''''''',,,,,,,,''''''''''.......'''
.............                ..............''''',,''''''.....................................''',,,,,,,;coll:co:;;,,,,,,,,,'..';;;;;;;;;;;;;;.  .':::::::::::::::::'. .;::::ccccc:::::cc,.;ccc:::::;;;;;,,,,'..,,,''''...',,,''''''''''',,,,,,,,'....................''''''''''''''..........................'''''''''''''''.........''''''',,,,,,'''''''''...........''
................          ................'''''',,,'''''......................................''',,,,,,;collcll:;;,,,,,,,,,'. .,,,;;;;;;;;;;;'...,::;;;::::::::;;;;'...;:::::::::::::::c,..;cc:::::;;;;;,,,,,,',,,,''''...',,,''''''''',,,,,,,,,'.....................''''''''''''''.........................'''''''''''''''.........'''''''''',''''''''''............''
.................         .. .............''''',,,,,,'''''...................................'''',,,,,,;looloc:;,,,''''''''.  ..',,,,,,,;;;;;;,,;;;;;;;;:::::;;;;;;,..;:::::::::::::::::,. .;::::::;;;;;,,,,,,,,,,,,,''''..,,,''''''''',,,,,,,,,,''''.................'''''''''''''''''.......................'''''''''''''...........''''''''''''''''''''............''
.................             . ..........'''',,,,,,,,,,,,,,,'''.......................'''''',,,,,;;;;;:llllc;;;,,'''...           ....'',,,;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::'   .;;;;;;;;;;;,,,,,,,,,,,,,,'''...,,,,'''''',,,,,,,,,,,,,,,'''...............''''''''''''''''''.....................''''''''''''''..........''''''''''''''''''..............''
.................            .............''',,,,,,,,;;;;;;;;;,,,,''''...''''''''''''',,,,;;;;;;;;;;;;;:lllc:;;,,'''..                   ...,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,.   .',,,,,,,,,,;,,,,,,,,,,,,,,'''..',,,''''''',,,,,,,,;;;;;;,,,''..............''''''''''''''''''.....................''''''''''''...........''''''''''''''''''''............''
..................  .       ..............''',,,;;;;;;:::::::;;;;;;,,,,,,,,,,,,,,,,,,,;;;:::::::::::::clloo:;;;,,'''..                       ....'''',,,;;;;;;;;;;;;;;;;;;;;;;,,,'''....       ......'',,,,,,,,,,,,,,,,,''...',,,'''''',,,,,,,,;::::;;;,,''.................''''''''''''''.....................''''''''''.............'''''''',''',''''''''...........''
....................    .   ..............'',,,,;;::::cccccccc::::::;;;;;;;;;;;;;;::::::cccccccccccccloocll:;;;,,,'''..                             ..',,;;;;;;;;;;;;;;,,,,'...... ....               ..,,,,;;;;;;;;;,,,''....',,'''''',,,,,,,,:cccc::;;;,,'.................'''''''''''''''..................'''''''''''..............'''''''',,,,'''''''''''.......'''
.........................................''',,,;;:::cccccllcccccccc:::::;;;:::::::cccccclllllllllllllooc:c:;;;;;,,,,,,'..                            ..',;;;;;;;;;;;;,'...                              ..',;:cccc::;,,,,''....',''''''',,,,,,;clllccc::;;,''..................''''''''''''''.................'''''''''''.............''''''''',,,,,,'''''''''.....'''''
.........................................''',,;;;:cccllllllllllllcccccc:::::::ccccclllloooooooooooololcccc::;;;;,,,,,,,,''..                      ...,,,,;;;;;;;;;;,'..                                  .,,;:ccccc:;,,,,,'''...,'''''',,,,,,,;lolllccc::;;,''....................''''''''''''...............''''''''''''.............'''''''',,,,,,,'''''''''.......'''
.........................................'',,,;;::cllllllloollllllllcccccccccccclllllooooddddddddoooolccc::::;,,,,;;;;;,,,,,'...      ...........',,,,,,;::::::;;;,,''''..                           ...,;:::cccllcc;,,,,,,,,,''','''',,,,,,,,:looolllc::;;,''.....................'''''''''''...............''''''''''''.............''''''''',','''''''''''.........''
.........................................'',,,;;:ccllloooooooooooollllccccccccllllooooodddddddddddddoolcc:::::;,,,,,,;;;,;;;;;;'    .',,,,,,,,;;;;;,,,,,;::::::;;;,,'''''''.......             ......,,;;;::cclllcc:;,,,,;;;;;,,,',''',,,,,,,,:oooolllcc:;;,''.......................'''''''''...............''''''''''''.............''''''''''''''''''''............''
.........................................'',,;;::clllooooooooooooooolllcccccclllloooodddddxxxxxxdddddoolcc::cc::;;,,,,,,,,,,,,,.   ..''',,,,;;;;;;;,,,,;;::::::;;;;,,'''''''''',,,'''..      .',,,,,;;;;;;;:cccccc:;,,,;;;;;;,,,'''',,,,,,,,,;coooolllcc::;,''........................'''''''''..............'''''''''''..............''''''''''''''''''..............''
.........................................'',,;;::cllooooodddoooooooollllccccclllooooodddddxxxxxxxddddooolccccccc::;;,,,,,,,,,,'. .',,,,,;;;;;;;;;;,,;;;;::::::::;;;;,,,,,,,,,,,''''',,,.    .',,,,,,,,,;;;::ccccc:;;,,;;;;;;,,,'''',,,,,,,,,,:loooolllcc:;;,''.........................'''''''''.............'''''''''''..............''''''''''''''''................''
.........................................'',,;;::cllooooddodddoooooolllccccccllloooooddddddxxxxxdddddoooollcccccccc::;;;;;;;;;...;;;;;;:::;;;;;;;,;;;;;:::::::::;;;;,,,,,,,,;;;;;,,,''''.   .',,,,,,,,,,;;:::::;;;,,,;;;;;;,,''',,,,,,,,,,,,;cooolllccc::;;,'..........................'''''''''..............'''''''''...............'.'''''''''''''.................''
.........................................'',,;;::clloooododdddoooooolllccccccclllooooddddddxxxxxxddddoooloolccccccccccc::::::,..:::::::::::::;;;;;;;;;;:::::::;;;;;;;;,,,,,;;;;;;;;;;;,,,.  .,,,,,,,,,;;;;;;;;;;,,,,;;;;;;,,'..',,,,,,,,,,,,:llllllccc::;;,''..........................'''''''''..............''''''..................'.'''''''''''''.................''
.........................................'',,;;::cllooooodoooooooooolllccccccclllloooodddddddxxxxddddooolloocccccccccccccc:c:,.;::::::::;;;;;;;;;;;;;;::::::::;;;;;;;;,,,,;;;;;;;;;;;;;;;,..,;;;;;;;;;;;;;;;;;,,,,;;;;;,,,,'...',,,,,,,,,,,;cllllcccc::;;,,'...........................'''''''''..............'.''''.'...............''''''''''''''''.................''
.........................................'',,;;:ccllooooooooooooooolllcccccccccllllooooddddddddddddddoollllllccccccccccccccc:,;cc:::::;;;;;;;;;,;;;;;::::::::;;;;;;;;,,,,,;;;;;;;;;;;;;;;;,',;::;;;;;;;;;;;;,,,,,,,;,,,,,,,'..',,,,,,,,,,,;:ccccccc::;;;,,'............................''''''''''................'''.................''''''''''''''''''''............'''
.........................................'',,;;:ccllooooooooooooooolllcccc:ccccclllloooodddddddddddoooolllcllccccc::::ccccccccccc:::::::::;;;;,,,;;;;::::::::;;;;;;;,,,,,,,,;;;;;;;;;;;;;;;,;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,'..',,,,,,,,,,,;;::::::::;;;,,,'.............................'''''''''''...................................'''''''''''''''''''''''''......'.'.
...........................  ............'',,;;:cclloooooooooooooolllcccc::::ccccllllooooddddddddddooolllcccllc:cc:::ccccccccccccc:::::;;;;;;;,,,;;;;::::::::;;;;;;,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,'..',,,,,,,,,,,;;;;;;;;;;;,,'''..............................'''''''''''..................................''''''''''''''''''''''''''''........
..........................    ............',,;;::cllloooooooooooollllcc:::::::cccclllloooooddddddoooolllccccclc::cc:ccccccclcccccccc:;;:::::;;;;;;;;;::::::::;;;;;;,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;,,;;;,;;,,,,,,,,,,,,,',,,'..,,,,,,,,,,,,,;;;,,,,,,,'''..............................'''''''''''''..................................''''''''''''''''''''''''''''........
......................         ..........'',,;;:ccllloooooooooooollllcc:::::::::cccccllloooooooooooollllcccc:ccc::ccccccccccccccccc:;,:cccc::;;;;;;;;::::::::;;;;;;;,,,,,,,,,'',,;;;;;;;;;;;;;;;;;,;;,,,,,,,,,,,'''''',,,,'.',,,,,,,,,,,'''''''''''..................................'''''''''''''.................................''''''''''''''''''''''''''''.........
 .....................          ..........',,;;:ccllloooooooooooollllcc:::;;:::::cccccllloooooooooolllllcccc::ccc:::ccccccccccccc:;,'':ccccc::;;;;;;::::::::;;;;;;;;;,,;;;;;,,''',,;;;;;;;;;;;;;;;;;;,,,,,,,,,'''''''',,,,'.',,,,,,,,,'.............................................''''''''''''''.................................'''''''''''''''''''''''''''..........
  ........                      ..........',,;;:ccllloooooooooooolllcc::::;;;:::::cccclllllooooooolllllcccc::::cc:::ccccccccccc:;,'''',::::ccc:::;;;:::::::::;;;;;;;;;;;;;;;,,'...',;;;;;;;;;;;;;;;;,,,,,,,,,''''''',,,,,,.',,,,,,,,,,'.........................................'''''''''''''''''''................................''''''''''''''''''''''...............
                                ..........',,;;::clllooooooooooollllcc:::;;;;::::::cccccllllllllolllllcccc::::::c:::::ccccc:::;'.......,,;;:cccc:::::::::::::;;;;;;;;;;;;;;,,''''''',,,,,;;;;;;;;,,,,,,,''',,'''',,,,,,,,'.',,,,,,,,,'................................'''''''''''''''''''''''''''..................................'''''''''''''''''....................
                                ..........',,,;;:ccllooooooooooolllccc:::;;;;::::::::ccccclllllllllllcccc:::::;:c::::::::::;,'..        .....,:c:::::::::::::;;;;;;;;;,,,,,,,',,,,,,,,,',,,;;;,,,,,,,,,'''',''',,,,,,,,,,,',,,,,,;,,'................................''''''''''''''''''''''''''''......................................''''.'''.........................
                                 .........',,,;;:ccllooooooooooollllcc::;;;;;;;;::::::cccccllllllllccccc:::::;;:c:::::::::;,'..              ..;::ccccc::::::;;;;;;;,,'''''............''''',,,,,,,,,,,'''',,',,,,,,,,,,,,,,,,,,,,,''..'...'''''.....................''''''''''''''''''''''''''.........................................................................
                                  ........',,,;;:cclloooooooooollllccc::;;;;;;;;::::::cccccclllllllcccc::::::;;:c:::::::c:;'...                .,cccccccc::::;;;;;,'.....                  ..',,,,,,,,,,,''''',,,,,,,,,,,,,,,,,,,,,'',,,,,,,,,,,,''''.................''''''''''''''''''''''............................................................................
                                 .........',,,;;:cclloooooooooolllccc:::;;;;;;;;;:::::cccccccccllccccc:::::::;;:c:::::ccc:;,''.                 .ccllllccc:::;;;,,.                           .,,,,,,,,,,,,'',,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;,,,,''................''''''''''''''''.................................................................................
                                ..........',,,;;:ccllllooooooolllllcc::;;;;;;;;;;::::::ccccccccllccccc:::::::;;::c::::cc::;;:;'                 .;clllllccc::;;,..                            .',,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;::::::::;;;;,,'''..................''..''''.....................................................................................
                               ...........',,,;;::clllloooooolllllccc::;;;;;;;;;;:::::::cccccccccccccc::::::;;;;:ccccc::::::::'                  .:llllllcc::;,.                               ',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;:::::::ccccc:::::;;;,,''..............................................................................................................
                             .............'',,;;::clllooooooolllllccc::;;;,,,;;;;;::::::cccccccccccccc:::::::;;;:cccccc:::cccc,              ... .,llllllcc:;,.                                .,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,;;:::ccccccclllccccc:::;;,,''........................................................................................................'''''
                           ...............'',,;;::clllooooooollllcccc::;;;,,,;;;;;:::::::ccccclccccccc:::::::;;;:ccccccc::cccc;.          .........:lc,.,::;,.                                 .,,;;,,,,,,,,,,;,,,,,,,,,,,,,,;;::cccclllllllllllcccc::;;,''...................................................................................................'''''',,,,
                        ..................'',,;;::clllllooooollllccc::;;;,,,,,;;;;;::::::ccccccccccccc:::::::;;;:ccccccc::cccc;.          ..........:;. .,;,..                                 .',;;,,,,,,,,;;;;,,,,,,,,,,,,;;::cccllllllloooollllccc::;;,'.....................................................................................''''''''''''''',,,,,,,,;
.                .........................'',,;;::clllllooollllllccc::;;,,,,,,;;;;;;;::::ccccccccccccc:::::::;;;:cccccccc::cccc'          ...........,;;;;...                      ..          .',,,,,,,,,,;;;;;,,,,,,;;;;;;;;::cclllloooooooooolllcc::;;,''................................................................................'''',,,,,,,,,,,,,,,,;;;;;;;;
              ............................'',,;;::ccllllooollllllccc::;;,,,,,,,;;;;;;::::cccccccccccc:::::::;;;;:ccccccccc:cccc:.         ..............'.......    ..             ..          .,,,,,,,,,,;;;;;;,,,,,;;;;;;;;;::cllllooooooooooollllcc::;,,'...........................................................''''''''''''''''''''''',,,,,,;,,,,,,,;;;;;;;;::::
....... .    .............................'',,;;::ccllllooollllllcc:::;;,,,,,,,;;;;;;:::::ccccccccccc:::::::;;;;:ccccccccccccc::'         ..............'..  .....  ..     ........          ..,,,,,,,,,,,;;;;;;,,,,;;;;;;;;;;::cllllooooooooooollllcc::;,,'.......................................................'''''',,,,,,,,,,,,'''','',,,,;;;;;;;;;;;;;;;:::::::::
..........................................'',,;;::ccllllllllllllccc:::;;,,,,,,,,;;;;;::::::cccccccc:::::::::;;;;:cc:ccccccc:::c:,.           .....'....','. ..''..  ..... ........          ..,,,,,,,,,,,;;;;;;,,;;;;;;;;;;;;;;:cclllloooooooooolllcc::;;,,'.....................................................'''',,,,,,;;;;;;;;,,,,,,,,,,,;;;;;;;;;;;;::::::::::::::
''''''....................................'',,;;::ccllllllllllllccc::;;;,,,,,,,,;;;;;;::::::cccccc::::::::::;;;;:cc::cccccc:ccc:;..            ........'''.....'..  ..... ....             .',,;;,,,,,,,,;;;;,,;;;;,;;;;;;;;;;;;,:cllllooooooooolllcc:;;;,''.................................................''''',,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::ccc::
;;;;;,,,'''...............................'',,,;;:cclllllllllllcccc::;;;,,,,,,,,;;;;;;;:::::cccccc::::::::::;;;;;clcccccccc:::c:;'..           ...................  .....  ..              ':::;;;,,,,,,,;;;,,,;;;;;;;;;;;;;;;;,...,:cllooooooolllllcc::;;,'.......................................''''''''''''',,,,;;;;;:::::::::::;;;;;;;;;;;:::::::::::::::::::::::::
cccc::;;,,,''.............................'',,,;::cclllllllllllccc:::;;;,,,,,,,,,;;;;;;::::::::cc:::::::::::;;;;;:cccccccccc::c::,...               .............  ...                   .'::cc:;;,,,,,,;;;;;;;;;;;;;;;;;;;;;;;'.   ..;ccllccccccccccccccc:::;;,,,,'''.........................'''',,,,,,,,'',,,,;;;;;;::::::cc:::::::::::::::::::::::::::::::::::::::::
ooollcc:;;,,''............................'',,,;::cclllllllllllccc:::;;,,,',,,,,,,;;;;;;:::::::::::::::::::;;;;;;;cccccccccc:::::;'..                     .. ....                       .,::cc:;;,,,,;;;:::::;;;;;;;;;;;;;;;;;;.      .';;;;;;,,,,;;;;;;:::::::::::::::::;,''.................'',,,,;;,,,,,,,,,,;;;;;:::::ccccccccc:::::::::::::::::::::::::::::::::::::
xxxdoolc::;;,'''..........................'',,,;::cclllllllllllccc:::;;,,,',,,,,,,,,;;;;;::::::::::::::::::;;;;;;;:ccccccccc::::::;,'.           ...      .                            .':cccc:;,,,,;;;:ccc::::;;;;;;;;;;;;;;;'.      .';;;;;;;;,,,,,,,,;;;;;::::::::ccccc:::;,'''''''''''''''',,,;;;;;;;;;,;;;;;;;;::::::ccccccccc:::::::::::::::::::::::::::::::::::::
Okkkxddolcc;;,''..........................''',,;::cccllllllllllccc:::;;,,,'',,,,,,,,;;;;;:::::::::::::::::;;;;;;;;;:ccccccccc:::::;;;,..                  ..                          .'cllcc:;,,,;;;;:cccc::::;;;;;;;;;;;;;;,.       .',,;;;;;;;;;;;;;;;;;;;;;;;;;::::::ccc::::;;,,,,,,''''',,,;;;;;:::;;;;;;;;:::::::::cccccccccc:::::::::::::::::::::::::::::::::::::
OOOOkkxdoolc;,,'..........................''',,;:::cclllllllllcccc::;;;,,'''',,,,,,,,;;;;;::::::::;;::::;;;;;;;;;;;:::cccccccc::::;;;;,'..                                        ....;clllc:;,,;;;;:cccccc:::;;;;;;;;;;;;;;;.       ....'''''''''''',,,,;;;;:::::;;;;;:::::::ccc::::;;;,,,,,,;;;;;:::::::::::::::::::::ccccccccc:::::::::::::::::::ccccccccc::::::ccc::
00OOOkkxddol:;,''.........................''',,;;:cccllllllllllccc::;;,,,''''',,,,,,,;;;;;;;;;::::::::;;;;;;:;:::::::::::cccccccc::;;;;;;,..                                    ..',:cccccc:;;,;;;:cclcccc:::;;;;;;;;;;;;;;;'        .,'.'''.....'''''''',,;:cccccc:::;;;;;;::::cccccccc:;;;;;;;;:::::::::::::::::::::::ccccccc:::::::::::::::::::ccccccccccccccccccccc:
0000OOkkxdolc;,'..........................'',,,;::cccllllllllllcccc::;;,''''''',,,,,,,;;;;;;;;;;;;;:;::::::cc:::::::;;;::ccccccccc::;;;;;;;,...                              ..',;:::::cc::;;,;;:cccccc:::;;;;;;;;;;;;;;;;;'.      ..',;;;,,,,'.....'''''',:ccccccccc::;;;;;;;;;::::cccccc:::;;;:::::::::::::::::::::::ccccccc:::::::::::::::::::cccccccccccccccccccccc:
K0000OOkkxdoc;''...........................',,,;::cccllllllllllcccc:::;,,''''''',,,,,,;;;;;;;;;;;:::cccc:::;;;;;;;;;;;;;;:ccccccccc::::;;;;::,..................      .....',;::::::::::::;;;;:cccc:::;;;;;;;;;;;;;;;;;;;,.       ..''',;;;;;;;;,''...'''',::::::cccccc:;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::cccccc::::::;;::::::::::ccccccccccccccccccccccccc:
KK000OOkkxxoc;'...........................''',,;;::ccllllllllllccc::::;;,''''''',,,,,,;;;;;;;;;:cclllc:;;;;;;;;;;;;;;;;;;:c:ccccccc:::::::::::;,'''','''''',,,'''''',,,,;;,;;;::::::::::::::::c:::;;;;,,;;;;;;;;;;;;;;;;'.       .',,'.'',,;;::::;;,'''.'',::c::::cccccc::;;,;;;;;;;;;;;;;;;;;;;,,;;:::::::::::::::::ccccc::::::::;;;;;;;::::::cccccccccccccccccccccccc:
KK000OOkkxdoc;'...........................''',,;;::ccllllllllllccc::::;;,,'''''',,,,,,;;;;;;:ccclllc:;;;;;;,,,;;;;;;;;;,,,:c:cccccccc::::::::::;;,,;;;;;;,,,,,,,,,,,,;;;;;;:::::::c::::::::::::;;;;;;;;;;;;;;;;;;;;;;;'.        ..',''..'',:cccc:::;;;,,,',;:::::::cccccc:;;,,,;;;;;;;;;;;;;;;,'......'',,;;::::::::cccccc:::::;;;;;;;;;;;;::::ccccccccccccccccccccccc::
KK000OOkxxdl:,............................''',,;;::ccllllllllllcccc::;;;,,'''''',,,,,;;;;:cllcllc::;;;;;;;;,,,,;;;;;;;,,'..;::::ccccccc:::::::::::::::::::::::;;;;;;;:::::cccccc::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;'.         ..'''''..',;:ccccc:::;;;;;;;,,;:::::cccccc:;;,,,,,,;;;;;;;,,''..            ...',;::ccccccc:::::;;;;;;;;;;;;:::::cccccccccccccccccccccc::
KKK00OOkxdoc;'............................''',,;;::ccllllllllllcccc::;;;,,,'''',,,,,;;:clllcclll:;;;;;;;;;;;;;,;;;;,,,,,'. .,:::ccccccccc::::ccccc:::::::::::::::::ccccccccc:::::::::::::;;;;;;;;;,,,,,,,,,;;;;;;,..        ..',,,,''...'';::cccccc:::;;;;;;;;::cccccccc::;,,,,,,,,,,,,,...                     ...',;::cc::::::;;;;;;;;;;;::::::cccccccccccccccccc::c::
KK000Okxdol;'.............................''',,;;::cclllllllllllccc:::;;;,,'''',,,,;:cllllllllc::;;;;;;;;;;;,,;;;;;,,,,,'.  ..,:ccccccccccccccccccccccccccccccccccccccccccc:::::c::::::;;;;;;;;;,,,',,,,,;;;;;,'.          .',,,,,,,,'...',;:ccccccc:::::;;:::::ccccccc::;;,,,,,,,,,,'..                              ..,;::::::;;;;;;;;;;;;::::ccccc:::::::::::::::::::
KK000Okxol:'..............................''',,;;::ccclllllllllcccc:::;;,,,',,,,,;:cloooooollcc::;;;;;;;;;,,,,;;,,,,''''..    .';:::ccccccccccccccccccccccccccccccccccccccccccccc::::;;;;;;;;;,,,''',,,;;;;,'..          ..',,,,,,,,;;,'',;;::ccccccc::::::::::::::::::;;;,,,,,,,,,'..                                   ...,::::;;;;;;;;;;:::::::::::::::::::::::::::::
KK00OOkdl:,...............................''',,;;;::cccllllllllcccc:::;;,,,,,,,,;cloooooooollcc:;;;;;;;;;,,,,,,,,,'''''''.      .,:c::ccccccllcccccccllllcccccccclllcccccccc::::::;;;;;;;;;;,'''',,,,,,,...            ..',;;;;;;,,;::;,,,;;:::ccccccc:::::::::::::::;;;,,,,,,,,'..                                          .,:::;;;;;;;;::::::::::::::::::::::::::::::
K00OOkxol:,...............................''',,;;:::cccclcccccccccc::;;;,,,,,,,:oodoooooollllc::;;;;;;;;,,,,,,,,,,,,,,,,,,.      ..,;::cccclllccccccccccccccccccllllccccc:::::::;;;;;;;;;;,'''',,,;,'..              ...',;:::::;;,;;;;;;;;;::cccccccc:::::::::::::;;;;,,,,,,'...                                           .;::::::::;:::::::::::::::::::::::::::::::::
00OOkkxdlc;'..............................''',,,;;::ccccccccccccc::::;;;,,,,,,;odddoooollllllcc:;;;;;;;;,,,,,,,,,,,,,,,,,,'..       ..,:cccllllllcccclllllllllllllllcccc:::;;;;;;;;;;;;;,,,,,,,,,'..              ...'''';:::::::::;;;,,,,;;;::cccccc:::::::::::::;;;;,,,,'...                                             .;::::cc:::::::::::::::::::::::::::::::::::::
K000OOkxdoc,'.............................''',,,;;::ccccccccccccc::::;;;,,,,,,cddooooolllllllcc:;;;;;;;,,,,,,,,,,,,,,,,,,,,''..        ..,:cccllcccllllllllllllllcccc:::;;;;;;;;;;;;;;,,,,,,,'..             ....'',,,'';;::::::ccc::::;,,,,,;:cccccc:::::::::;;;;;;,,'...                                               .':::::::ccc::::::::::::::::::::::;;::::::::::;
KKK000OOkxdl;'............................''',,,;;::ccccclccccccc::::;;;,,,,,,cooooooolllllllc::;;;;;;;;,,,,,,,,,,,,,,,,,,'''''..         .';:cccccccccccccclllcccc:;;;,,,,;;;;;;;;,,,'''''..              .';;;;,,,;;,,;::;::::::::::::;,,,',;:cccccc::::;;;;;;,'...                                                   .,cc:::::::ccc::::::::::::::::::::;;;;;;;::::;;;
XKKKK000Okkxoc;,'.........................''',,,;;::ccccccccccccc::::;;,,,,,,,,loooooollllllc:::;;;;;;;;,,,,,,,,,,,,,,,,,,;,,,,''..         ...'''''',;;;:::ccc:::;;;,,,,;;;;;;,,,,,,,''..             ....,;::::;;,,;;;,;::::::::::::::;,,,,,;:cccccc::::;;,'..                                                       .;ccc:::::::::::::::::::::::::::::;;;;;;;;;;;;;;;
XXKKKK00OOOkxdoc:,''.....................'''',,,;;::ccccccccccccc::::;;;;;;,,,,:looooolllllcc:::;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,'...                ...',,;;;;,,;;;;,,,,,,,,,,,,'...            ...''''';:::::::;;,;;;;,,;:::::c:::::;;,,,,,;:cccccc:;'..                                                           .:ccccc::::::::::::c::::::::::::;;;;;;;;;;;;;;;;,,
XXKKKK000OOOkxxdoc;,,'''..................'',,,;;;::ccccccccccccc:::ccccllllllcclooooollllcc:;::;;;;;;;;;;;,,,,,,,,',,,,,,,,,;;,,,,,,,,'.....                 .............',''..           ........',,,',;::::::::;,;;;;;,,:::::::::::;;,,,,;;:cccc;'.                                                              .:cccccccc::::::::;;cc::;;;;;;;;;;;,,,,,,,,,,,,,,''
XXXKKKK0000OOkxxdol:;;,,'''...............'',,,;;;::cccccccccccclloooooollccc::::cloolllccc::;;;;;;;;;;;;;;;,,,,,,,',,,;;;;,;;;;,;;,''''''',,''.....                               .........''''...',;:;,,;::::c::;;;;;;,,,,:::::::::::;;,,,,;;:ccc,.                                                               .;ccc:cccccc::;;;::;;:c::;;;;;;;;;,,,,,''''''''''''.
XXXKKKK00000OOkkxdol:::;;,,,'''''.......'''',,,;;:::ccccccclloooooollcc:::;;;;;;;;;:llcc:::;;;;;;;;;;;;;;;;;;;,,,,''',,,;;;;;;;,,;;,,'''',;;;;;;;;;,'''.......            ......',,,'''',;;;,,,'..,;:cc:;;;:::ccc::;;,,,,,,,;cc::::::::;;,,;;;::c:'.                                                               .:cc:;:cccccc:;;;;:::,:c:;;,,,,,,,,''''''............
XXXKKKKK0000OOkkkxdollcc:;;;;,,,,,,'',,,,,,,,,,;;:::cccllooooollcc::::;;;;;;;;;;;;,,'''''.'',;;;;;;;;;;;;;;;;;;,,,,,'''',,;;;;,,,;;;,,''',;;;;;;;;;;,,,'.',;,,,'...''''',,,''.';::;;,,',;;;;;;,'.';:ccc:::;:::ccc::;;,,,,,,,;::::::::::;;;;;;::::'.                                                               .:cc:;;:cccccc:;;;;:::;;c:;,,'''''''..................
XXXKKKKKK000OOOkkxxdoolccc:::;;;;;;;,,,,,,,,,,,;;:::ccooooolcc::::;;;;;;;;;;;;;;;;;;,....  ....',;;;;;;;;;;:::;;;;;,,,,''',;;,,,,;;;;,,'',,;;;;;;;;;,,'.',;;;;;;,,,;;;;;,,,'..';:::::::::;;;,,,.'';ccccc::;:::cccc::;,,,,,,,,;;:::::::;;;;;;;:::,.                                                               .,clc;;;clccccc:;;;;:::;;c:;'''........................
XXXKKKKKK0000OOOkkxdooollccccc:::::::;;;;;;;;;;;;::clooocc:::;;;;;;;;;;;;;;;;;;;;;;;,,............,;;;;;;;;;:::::;;;,,,,,,,,,,,,,;;;;,,,'',;;;;;;;;;,,'',;;;;;;;;;;;;;;,,,'''';:::cc::::;;;,,,''',;:ccc:::::::cccc::;;,,'''',,,;::::::;;;;;;::::'                                                                .:cc:;;;clcccc::;,;;::;;:c:;'..........................
XXXKKKKKKK000OOOOkxxddooolllllllcccccc:::::;:::;;;,,cool::;::;;;;;;;;;;;;;;;;;;;;;;;;,,'.......... ..',;;;;;;::::::;;;;,,,,,,,,,,,;;;;,,'',;;;;;;;;;,;;;;;;;;;;;;;;;;,,,,,',;:::cccc:::;;;;;;,,,,,;ccc::::::cccccc::;;,,,,',,,,,,;:::::;;;::::;'.                                                               .:cc:;;;;cccccc:;;,;;;;,;::::,..........................
XXKKKKKKKK000OOOOkkxxddddoooooooooollllllccc::;;,,'.,lll:;;;;;;::;;;;;;;;;;;;;;;;;,,;;;,,'... .....   ..,;;;;;;:::::::;;;,,,,,,,,,,;;;;;,'',;;;;;;;;;:;;;;;;;;;;,,,,,,,,,,;:::::ccc:::;;;,;;;;,,,,:cccc::::ccccccccc:;;,,,,,,,,,,,;::::;;;::;'.                                                                .,cc:;;;;:cccccc:;;;;;;,,;c::::,.........................
XKKKKKKKK0000OOOOkkxxxddddddddddddddddddoool:;,,''...'cl:;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,'..........   ...,;;;::::::::::;;;,,,,,,;;;;;;;;;;::::::::::;;;;;;;;;;,,,;;;;;;:::::ccccc::;;,,,;;;;;;;:ccccc:cccccccccccc:::;;;;,,,,,,,,;::::;;,..                                                                  .:lc:;;;;:cccccc:;;,,,,',:c:::::'........................
KKKK0000000OOOOOOkkkxxxxxxxxxxxxxxxxkkxxxxo:;,''......,c::;;;;;;;::;;;;;;;;;;;;;,,,,,,,,,,,'..... ....      ..,;;;:::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;::::::::cccccc:;;;,,,;;;;;;:ccccccccccccc::::::::::;;;;;;;;;,,,,;;,...                                                                    .,clc;;;;;:cccccc:;;,,,'';cc::::c:'.......................
0000000000OOOOOOOkkkxxxxxxxkkkkkkkkkkkkkxc,,,'.........;::;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,'....     .        ..',;;::::::::::::::ccc:::::::::::::::::;;;;;;;;;::::cccccccccccc::;;,,,,;;;;;;:cccccccccccc::::::::::::::;;,,;;;;,'...                                                                       ..;ll:;;;;;:cccllc;;;,,,';:cc:;:::c;.......................
00000000000OOOOOkkkkxxxxxkkkkkOOOOOOOOxo:...,,'........'::;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,''....               ...,,;;;:::::::::::::::::ccccccccc:::::::::::cccccccccccccccc:::;,,,,,;;;;::ccccccccccc:::;;:::::::::::;;,,''...                                                                           .,clc:;;;;;:ccllc:;;;,,',:ccc:;:::cc;......................
00000000000OOOOOkkkkkkxkkkkkOOOOOOOOOkc'....','...     .,::;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,'.....                 ...',;;;;;:::::::::::::cccccccccccccccccccccccccccccccccc::;,,,,,,;;::cccccccccc::::;;;;;::::::::;,'...                                                                                .:llc;;;;;;:ccllc:;,,,'';cccc:;::::cc;'....................
000000000000OOOOOOkkkkkkkOOOOO000000Oo'.............   ..::;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,'.......                  ....',,;;;;:::::::::::::ccccccccccccccccccccccccccccc:;,,,,,;;::cccccccccc:::;;;;;;;;;;,,'...                                                                                     .,cll:;;;;;;ccclcc;;,,'',ccccc::::::ccc;....................
KKKKKK0000000OOOOOOOOOOOOOO000000000Ol...    ......     .,:;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,'..........                   ....'',;;;;;;::::::::::ccccccccccccccccccc::cccc::;,;;;::cccccccc::::;;;;,,,'.....                                                                                           .:llc:;;;;,:ccllc:;,,''':ccccc::;::::ccc,...................
KKKKKKKKKKK00000000000000000000KKKK0x:...         .     ..;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,;;;,,,'...........                      ......'',,;;;;:::::::::::::::::::::::::::::::;;;::cccccc::;;,,'.......                                                                                                 .cllc;;;;;;:clllc:;,''';cclllc::;:::::cc:'..................
XXXXXXXKKKKKKK000000000000000KKKKK0d:,..    .     ..      .;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,;;;;,,''...........                              ...........'''',,,,,,,;;;;;,,,,,,,,,,,,,''........                                                                                                           'lll:;;;;,;cllllc;,,'',:clllcc::;:::::::c;'.................
XXXXXXXXKXKKKKKK00000000000KKKKK0ko;,'...                 .,;;;;;;;;;;;;;;;;;;,;;,,,,,,,,,,,,,;;;;;;,,'.............                                              .........                                                                                                                                .,llc:;;;,;:llllc:;,,',:clllllc::::::::::c:,'................
XXXXXXXXXXXKKKKK00000000000KKKK0xc;'''...                 .,:;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,;;;;;;;;,'.................                                                                                                                                                                                  .:lc:;;;;,;cllllc;,,,';cllllllcc::::::::::c:,''''''..........
XXXXXXXXXXXKKKKKK0000000000KKK0x:,'......            .. .  .;:::;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,;;;;;;;;;,,'..........'''''......                                                                                                                                                                            .clc:;;;,;:clllc:;,,,,:llllllllc::;:::::::cc;''''''''''......
XXXXXXXXXXXKKKKKK0000000000000d:,'......   .        ...    .,::::;;;;;;;;;;;;;;;;;;;,,,,,,,,,,;;;;;:::;;,,''.......''''''',,,,''.....                                                                                                                                                                     .,ll:;;,,;:clllc:;;,,,:lllllllllcc::;;::::::c:;'''''''''''....
XXXXXXXXXXKKKKKK000000000000Od:,'.......                   .':::::;;;;;;;;;;;;;;;;;;;,,,,,,,,;;;;;::::::;;,,'......''''''',,,,,,;;;;,'.....                                                                                                                                                               .:lc:;,,,;cclll:;;,,,:lllllllllllc:::::::::::c:,''''''''''....
XXXXXXXXKKKKKKK000000000000kl;;,.........                  ..;:::::;;;;;;;;;;;;;;;;;;;;,,,,,,;;;;::::::::;;,,'''''''''''',,,,,,,;;;;;;;;,,'.......                                                                                                                                                        'cl:;;,,;cllllc;;;,,;clllllllllllc:::::::::::cc:,'''''''''....
XXXXXXKKKKKKKK00000000000Oo:;,,'.... ......                 .,:::::::;;;;;;;;;;;;;;:::;;;;;;,;;;;:::::::::;;,,'''''''',,,,,,,,,,;;;;;::;;;;,''....................                                                                                                                                       .;lc;;,,;:clllc:;;,,;cllllllllllllcc:;:::::::::cc;'''''''''....
KKKKKKKKKKKKK00000000000kl;;;,,.... ........    .           .':::::::::;;;;:::;;;::::::;;;;;;;;;::::::::::::;;,,,,,,,,,,,,,,,,;;;;;;;:::::;;,'''''''',,,,;;;;;;;,,''.........                                                                                                                            .cc:;,,;:cllllc;;,,,:lllllllllllllcc::::::::::::c:,''''''''....
KKKKKKKKKKKK0000000O0OOkl;,,,,'.............    .           ..;::::::::::::;:::::::::::::;;;;;;;::::::ccc:c::;;,,,,,,,,,,,,,,,;;;;;;;::::::;;,,''''',,,,,;;;;::::::;;,,,,,,,,'.                                                                                                                         .,c:;,,;:cllllc:;;,,;llllllllolllllcc::::::::::::::,''''''''....
KKKKKKKKK000OOOOOOOOOkd:,,,,,,'....... .....               . .;::::::::::::::::::::::::::::;;;;;:::::ccccccc::;;;,;;;;;;;,,,;;;;;;;;;;::::::;;,,,,,,,,,,,;;;;;::::c::;;;;;;;;;'.                                                                                                                        .,;,,,;:cllool:;;,,,clllllllolllcllcc:::::::::::::c:'''''''''...
KKKKKK0000OOOOOOOkkkxo:,,,,',,,.......       ..       . .. . .,;:::::::::::::::::::::::c::::;;;;::::ccccccccc::;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;,,,,,,;;;;;;;:;:::ccc::;;;;:::,.                                                                                                                        .;,,,;:clloolc:;;,,;llllllllllllcllcc:::::::::::::::,''''''''...