.......................................................                                                                                                                                                                                       ..,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,
.......................................................                                                                                                                                                                                        ..,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,
......................................................                                                                                                                                                                                          .',,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,
.................................''''................                                                                                                                                                                                            .',,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,;
.............................'''''''''''............                                                                                                                                                                                              .',,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
............................'''''''''''''''........                                                                                                                                                                                                .',,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
...........................''''''''''''''''''......                                                                                                                                                                                                 .',;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.........................''''''''''''''''''''.....                                                                                                                                                                                                   .,,;;;;;;;;;;;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
........................''''''''''''''''''''''...                                                                                                                                                                                                    ..,,;;;;;;;;;:::::::::::::::::::::::::;;;;;;;;;;;;;;;::
......................''''''''''''''''''''''''..                                                                                                                                                                                                      .',;;;;;;;::::::::::::::::::::::::::::::::::::::::::::
.....................'''''''''''''''''''''''''..                                                                                                                                                                                                       .',;;;;;;;:::::::::::::::::::::::::::::::::::::::::::
....................''''''''''''''''''''''''''.                                                                                                                                                                                                        ..,,;;;;;;:::::::::::::::::::::::::::::::::::::::::::
...................''''''''''''''''''''''''''..                                                                                                                                                                                                         .',;;;;;;::::::::::::::::::::::::::::::::::::::::::c
..................'''''''''''''''''''''''''''.                                                                                                                                                                                                           .',;;;;;;::::::::::::::::::::::::::::::::::::::::cc
..................'''''''''''''''''''''''''''.                                                                                                                                                                                                           ..,,;;;;;:::::::::::::::::::::::::::::::::::::::ccc
.................'''''''''''''''''''''''''''..                                                                                                                                                                                                            .',;;;;;;::::::::::::::::::::::::ccccccccccccccccc
................''''''''''''''''''''''''''''.                                                                                                                                                                                                              .,,;;;;;;:::::::::::::::::ccccccccccccccccccccccc
..............'''''''''''''''''',,,,,,,'''''.                                                                                                                                                                                                              .',,;;;;;;::::::::::::::ccccccccccccccccccccccccl
............''''''''''''''''',,,,,,,,,,,,,'..                                                                                                                                                                                                              ..,,;;;;;;;:::::::::::cccccccccccccccccccccccccll
.........''''''''''''''''',,,,,,,,,,,,,,,,'..                                                                                                                                                                                                               .',,;;;;;;;:::::::::ccccccccccccccccccccccclllll
.........'''''''''''''''',,,,,,,,,,,,,,,,,,.                                                                                                     .        ..                                                                                                ..,,,;;;;;;::::::::cccccccccccccccccccccllllllll
......''''''''''''''''',,,,,,,,,,,,,,,,,,,,.                                                                                                    '::,....,::,.                                                                                                .',,;;;;;;:::::::ccccccccccccccccllllllllllllll
..''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,.                                                                                                   .;ldxdoodxol:.                                                                                                .',,;;;;;:::::::ccccccccclllllllllllllllllllllo
..''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,.                                                                                                  .'ldkkOOkkkxol,.                                                                                               .',,;;;;:::::::cccccccccllllllllllllllllllllloo
..''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,.                                                                                                 ..;oxkOOOOOOkdo:.                                                                                               ..,,;;;:::::::ccccccccllllllllllllllllllllllloo
....'''''''''''''''''''',,,,,,,,,,,,,,,,,,,.                                                                                                 .'cdkOOOOOOOOxoc'.                                                                                               .,;;;;:::::ccccccccllllllllllllllllllllllllloo
....''''''''''''''''''''',,,,,,,,,,,,,,,,,,.                                                                                                ..,oxOOOOOOOOOkdl,.                                                                                               .,;;;::::ccccccccllllllllllllllllllllllllllooo
....''''''''''''''''''''',,,,,,,,,,,,,,,,,,.                                                                                                ..:dkOOOOOOOOOkdo;..                                                                                              .,;;::::cccccclllllllllllllllllllllllllllloooo
.....'''''''''''''''''''',,,,,,,,,,,,,,,,,,.                                                                                               ...cxOOOO0000OOkxo:.. ..                                                                                           .,;;:::ccccccllllllllllllllllllllllllllllooooo
...'''''''''''''''''''''',,,,,,,,,,,,,,,,,,.                                                                                            .....,okOOO00000OOOxdl'.....                   ..                                                                     .,;::ccccccllllllllllllllllllllllllllllloooooo
..''''''''''''''''''''''',,,,,,,,,,,,,,,,,,.                                                                              ..           ......;xOOO0000000OOxdl,.....                  ...                                                                     .,::cccclllllllllllllllllllllllllllllolloooooo
..'''''''''''''''''''''',,,,,,,,,,,,,,,,,,,'.                                                                             ..          .',....ckOOO0000000OOxdo;...''.                 .,.                                                                     .,::cccllllllllllllllllllllllllllooooooooooooo
'''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,'.                                                                            .''.         .;;...'lkOO00000000OOxdo:...',.                 .;,.         .'.                                                        .,:ccclllllllllllllllllllooooooooooooooooooooo
''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,.                                                                            .;;.        .'c:...,oOOO00000000OOkdo:...',.                .,c;.        .':,.      ...                                              .;cccllllllllllllllolloooooooooooooooooooooood
''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,.                                                                            '::.        .;lc'..,dOOO00000000OOkdoc'..,;.                .;c:.        .:lc'.     .,,.                                             .;cclllllllllllllloooooooooooooooooooooooooood
'''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,'.                                                       ..                 .,c:'.      .'clc,..;dOO0000000000Okddc'..;:..              .'clc,.      .;lll:..   ..::.                                            .':cclllllllllooooooooooooooooooooooooooooooodd
''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.                                                      .''                 .;cc;.     ..;lll;..:xOO0000000000Okxdl'.':c'.              .;lll;.    ..,coool;.....;lc,.                                           .':cllllllooooooooooooooooooooooooooooooooddddd
'''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.                                                      .;,.                ':cc:.......'clol:..:kO00000000000Okxdl,.,ll'.             ..clol:......'coodooc'...'col;.                                           .,clllllloooooooooooooooooooooooooooodddddddddd
'''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,'.                                                    .,:;.               .,cllc,......:oooo:''ckOO0000000000Okxdl,.;oo,..            .;loooc......:odddddo;...;oooc'.. ...                                     .;cllllooooooooooooooooooooooooooodddddddddddxx
''''''''',,,,,,,,,,,,,,,,,,,,,,,,,;;,;;;,,,,,'.                                             .     .':cc,.              .;llll:.....'lddooc,'ckOO0000000000Okxxo;':do,...          ..cooooc'....:oddddxxdl,.,ldxxd;....;'.                                    .;clllooooooooooooooooooooooddddddddddddddddxxx
'''''''',,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;,,,,,.                                           .''.    .;ccc;.             ..:oolll,....;dxxddl;'ckOO0000000000Okxxd:'cxd;...        ...;odoodl'...:dddxxxkkkd:,:dxkOkc...:l;.                                   ..:lllloooooooooooooooooodddddddddddddddddxxxxxx
''''',,,,,,,,,,,,,,,,,,,,,,,;;,;;;;;;;;;;;;;,,.                                          .,::..  .'clllc'.     ... .....cddool:....cxkkxdoc,:xOO0000000000Okkkx:,lxd;......   .....cxddddl,..:dkxxxxkOOOklcoxkOOOd,':loc'.                                  .'cllllooooooooooooooddddddddddddddddxxxxxxxxxxk
''''',,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;,,'.                                        .,:cc,....;llllc;......,:;......lxxdool;..'lkkkxddl,;xOOO000000000Okkkx:;okd;.............;dxxdddl,.;dOkkxxkO000OxdxkO000xccoddo;.                                  .,clllooooooooooooodddddddddddddddxxxxxxxxxxxxxk
'''',,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;,,,.                                       .,ccll:...'clllll:.....;cllc;...'lxkxdooc'.,okkOkxdo:;dOOOOOkkxkO00Oxxkx::xkd:...''.......,okkxdddl,;dOOkkxkO0000OkkkO0000Oxdxddo:.                              .....;cllloooooooooooodddddddddddxxxxxxxxxxxxxxxxxkk
'',,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;,,,'.                                     .'clloll;..;loooolc,...:lllllll:''cxkkdool;.,okkkkxdoc;:llcc:cldxxkkxxkOxclkOxc,:lool:;'..'cxxolc::,';ldxxxxO000000OOO000000Okxxddc'.                            .''...:llloooooooooooddddddddddddxxxxxxxxxxxxxxxxxxkk
,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;,,,'.                                 .. .':lodddoc,'codxdlcc,..',;,,,,;;;,';cclcc:;,..;::::;,,'....',:odxxxxkOOOOdcdOOkxdxkxxxxxdl:cxkxoc::;'...',;;:lodxkOOO00000000Okxxxdl,.                           ..;,..':llloooooooooddddddddddddxxxxxxxxxxxxxxxxxxxxkk
,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;,,,,.                                .,,.':lodxkxdo::ldxkdlcc:;:ccc::;;:;;;;;,,,,''.......'''',,;;:cldkkO00000000Odok00OkO000OOkkO0OO000OkkOkxolc;,'...'',;:clloodddxxxdooddl,..                          .,:;..,cllooooooooodddddddddddxxxxxxxxxxxxxxxxxxxxxxkk
,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;,,,'.                              .':c:clodxkkkxdoodxkkkxdddxkkOkkxdxkkkkkkkxxxddlclloodddddxxkkkOO000000000000OdxO000000000000000000000000000OOxdooollccccclllloooddoooodo;..                          .;c:'.,cllooooooooddddddddddxxxxxxxxxxxxxxxxxxxxxxxxxk
,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;,,,'.            ..    ...         .:llooodxkOkkkxddxkkOkkxdxkOOOOOkkkOOOOOOOOOOOOkkxkOOkkkxkkkkOOO0000000000000Oxk0000KKKKKKKKKKKK000000000000OOOkkOOO000000000000000Okxxxd:..                         .,ccc,.;llooooooodddddddddddxxxxxxxxxxxxxxxxxxxxxxxxxxk
,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,.           .;'.  .,:;'.      .;llooddxkOOOOkkxxxkOOOkkxkOOOOOOOOOOOOOOOOOOOOOOOkkOkxxdddxxxxkkOO00000000000OkO000KKKKKKKKKKKKKKKK0000000OkxdxxkkO0000000KKKK00000Okkkkx:...                       ..:cll:';loooooodddddddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,'.         .;::...;cccc;..   .,cloodxkkkOOOOOOkkkOOOOOkkOOOOOOOOOOOOOOOOOOOOOOkkkkkxxdooooddxxxkkO00000000000000KKKKKKKKKKKKKKKKKK0000OkxdoodxkkO0000000KKKKKK0000OOOOOxc.......                   .,clllc;:loooooddddddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,'.         ':cc;';cclllc:'...'clooodxkkOOOOOOOOkOOOOOOOkkxxdddddxxxdxxxxxxxxddollccc:clodddxxxxxxkO0000000000000KKKKKKKKKKKKKKKKK000OkxdodxxddxxxkkkOO0000000000OkkO00Okl,:;......                .':lllll:cooodddddddddddxxxxxxxxxxxxxxxxxxxxxxxddddddddxx
,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'.         .:ccccllllllll:'..:loooddxkOOOOOOOOOOOOOOOOOxl::;;;;,,,''''''''''''',;,',;:codkkkxxxxxxkO00000000000KKKKKKKKKKKKKKKKK00Okkkxxxdoccc:::clllodxxxkkkkkxdoodkOOkdoo:.   ...               .,cllooollodddddddddxxxxxxxxxxxxxxxxxxxxxdddddddddddddddd
,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'.         .;ccllllllllll:;:clloooddxkOOOOOOOOOOOOOOOOOxlc:cool;'''............,:;,:ldxxkkOOkxxxxxkkO0000000000KKKKKKKKKKKKKKKKKK0OOkkkkxo::::,'.....''''',;:;;,;::coxOOxdo:..   ...          .. ..:looooddddddddxxxxxxxxxxxxxxxxxxxxxxdddddddddddddddddddd
,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;::;;;;;'.          ':ccllllllllllc:ccloooddxkOOOOOOOOOOOOOOOOOkxdooooo:;,'.........''',,;:cloxxxxkxxdddxkOO00000000000KKKKKKKKKKKKKKKKKKK00OOkkxdodxdc,,'........':lc;,:odddxkkkxo;..    ...        .....,looddddddxxxxxxxxxxxxxxxxxxxxxxxdddddddddddddddddddddddd
,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;:::::::::::::::;;;'.          .':cclllllllllllc:coooddxkOOOOOOOOOOOOOOOOkxxdllllc::;;,,,;;::::cllloodddxxxxxxddddxkOO00000000000KKKKKKKKKKKKKKKKKKKKKK00Okkxxxxdlc:;,'''...''',,;;cooodxkkkxo;..     ...      .';...:odddxxxxxxxxxxxxxxxxxxxxxxxdddddddddddddddddoooooooddddd
,,;;;,,;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::;;'.           ..;ccllllllooloc:coooddxkkOOOOOOOOOOOOOOkxxxdoooollllllooodddddddxxxxxxxxxxxxxddxxxkOO00000000000KKKKKKKKKKKKKKKKKKKKKKK00Okxxxkkkxxdoollccccc:::ccllodxkkkkxl,..     ....    ..:c'.,ldxxxxxxxxxxxxxxxxxxxxxxxxdddddddddddddoooooooooooooooodd
;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::;'.             .,:clllllooolcclooooddxkOOOOOOOOOOOOOkxxxxxxddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkO0000000000KKKKKKKKKKKKKKKKKKKKKKKKKK0OkxxkkkkkkkkkkkxxxxxxxkkkkkkkOOOkxc'..      .'..   .'ll,.:dxxxxkkkkkkkxxxxxxxxxxxddddddddddoooooooooooooooooooooddd
;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::'.  ..           .,:cllllooolllolloodxkOOOOOOkxxxxxddxxxxxkkkxxxxkkkkkkxxxxxxxkkOkkxxxxxxxxxxxkkkkO00000000KKKKKKKKKKKKKKKKKKKKKKKKKKKKK0OkkOOOOOOOOkkkkkOOOO00000OkOO00Ox:....      .'.....;oo;'cxxxkkkkkkkkkxxxxxxxxxdddddddddddooooooooooooddddddddddddd
;;;;;;;;;;;;;;::::::::::::::::::::::::cccccccc:::,. .,,.           ..,:llloolldxxxoclddxkOOOOkddkkkkdlooddxkOkkxxkkOOOOOkkxxxxkkOOOkkxxxxkkkkkkkkkkO00000000KKKKKKKKKKKKKKKKKKKKKKKKKKKKK00OO0000000OOOOO00000KKKK0OOOO00Od;.....     .'...';cdo;;oxxxkkkkkkkkxxxxxxxxdddddddddddddddddddddddddddddddddddddd
::::::::::::::::::::::::::::::::::cccccccccccccc:,..,::'.            ..;cllcldkkkkdccldxkkOOkddkOOkkdcclodxkkkxxxkOOOOOOkkkkkkOOOOOOkkxkxkkkkkkkkkkO00000000KKKKKKKKKKKKKKKKKKKKKKKKKKKKKK0000KKKKK0OOO00KKKKKKKKK00OOOO0Oo,...... .  ..'.';:oxdc:dxxkkkkkkkkxxxxxxxxddddddddddddddddddddddddddddddddddddddd
::::::::::::::::ccccccccccccccccccccccccccccccccc,.':cc;.             ..,cccdkkkkxdoolodxkkxdxkOOOOxolllldxxxxxxkOOOOOOOkkkkOOO000OOkkkkkkkOOOkkkkkOO00000000000KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK00OO0KKKKKKKKKKK0OOOOOkl'............;::,:dxxoldxxkkkxxxxxxxxxxxxddddddddddddddddddddddddddddddddddddddxx
ccccccccccccccccccccccccccccccccccccccclllllllllc,.;ccc:'              ..'cdkkkkkxdxxlldxxxdxkOOOOkooxdloddxxxxkkOOOOOOOkkkkOO00000OOkkkkkkOOOOkkkkOO0000000000000KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK00O00KKKKKKKKKK00OOO00kc'............:l;'cdxxxdxxxxxxxxxxxxxxxdddddddddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ccccccccccccccccccccccccccccllllllllllllllllllllc;;cllcc;.            ...:dxkkkkkxxkxlloddoxkOOOOkxdkkolodxxxxxkOOOOOOOOOkkOO0000000OOkkkkkkOOOkkkkOO000000000OO0000KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK00O00KKKKKKKKKK0OOOO00x:'',,,'......,:c,,ldxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
cccccccccccccccccccllllllllllllllllllllllllllllllcllllcc:.           ...:dxkkkkkkkkkdlooooxkOOOOOkkkkxolddxxxxxkOOkkxxxxkOOOO00000000OOkkkkkOOOkkkkOO00000000OkkO0000KKKKKKKKKKKKKKKKKKKKKKKKKKKKKK00OO0KKKKKKKKKK0OOOO00d;;okkkxc;:lllc:;;:oxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkxxxxxxxxxxxxxk
cccccccclllllllllllllllllllllllllllllllllllllllllllllllc:'          ...:dxkkkkkkkkkxllollxkkOOOOOOOOkdloddxxxxxkkxodkkkkxdkOO000000000OkkkkkOOOkkkkO0000000OOkkkkO0000KKKKKKKKKKKKKKKKKKKKKKKKKKKKK0OOO0KKKKKKKKKK0OOOOOOoclx0000OdxO000koccoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxkk
ccccccllllllllllllllllllllllllllllllllllllllllllllllllllc'.        ...:dxkkkkkkkkkxocoloxkOOOOOOOOOOkolodxkxxxxxdlokOOOOkolxOO00000000OkkkkkOOOkkkkO000000OkkkkkkO00000KKKKKKKKKKKKKKKKKKKKKKKKKKK00OO00KKKKKKKKKK00OkOOxoxkxO0KKK0kk00000kddddxxxxxxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxkkk
cccccccccccccccccccclcccccccclllllllllllllllllllllllllllc,.       ...:dxkkkkkkkkkxo;;clxkkOOOOOOOOOkdllodxkxxxxolokOOOOOxdooxOO0000000OOkkkkOOOOkkkOO0000OkkxxxxkO00000KKKKKKKKKKKKKKKKKKKKKKKKKKK00OO00KKKKKKKK000OOkkxodOOkk0KKKK0OO0KKK00kkkxxxkkkkkkkkxxkkxxxxxxxxkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxk
ccccccccccccccccccccccccccccccllllllllllllllllllllllllllc'.      ...cdxkkkkkkkkkkd:',cxkkOOOOOOOOOkxolodxkkxxdooxkOOOOOxdxdodkOOO00000OOkkkkOOOkkkkOOOOOOkxxxxxxkO000000KKKKKKKKKKKKKKKKKKKKKKKKKK00OO00KKKKK0OOOkkxxkxl:oO00kk0KKKKKOO0KKKK000Okdxxxxxkkkkkkkkxxkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxk
ccccccccccccccccccccccccccccccclllllllllllllllllllllllllc'.    ....cdxkkkkkkkkkkd:',cxkkkOOOOOOOOOkolloxkkkxdodkOOOOOOOkkkdodxOOO00000OOkkkOOOOkkkkOOOOkkxxxxxxxxkO00000KKKKKKKKKKKKKKKKKKKKKKKKKK00OO00KKK0OkO0000Oxdl;,ck00000KKKKKK0OOKKKKKKK0Oxdxkxxxkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
::::::::::::::::ccccccccccccccccccllllllllllllllllooolll:.........:dxkkkkkkkkkkxc,'cdkkkOOOOOOOOOkdllodxkkkxodkOOOOOOOOOOxodxxkOO00000OOkkkOOOkkkkkOOkkxxxxxxxxxxkO0000000KKKKKKKKKKKKKKKKKKKKKKKK00OO00KK0OxxO00000Od:,';oO0KKKKKKKKKK0OO0KKKKKKK0kkOOxdxkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
:::::::::::::::::cccccccccccccccccllllllllllllllooooooll;........;dxkkkkkkkkkkxo,':dkkkkOOOOOOOOkkoloodxkkxodkOOOOOOOOOOkoodxkOOO000000OkkkOOOkkkkkkkxxxxxxxxxxxxxkO0000000KKKKKKKKKKKKKKKKKKKKKKK00OO0000kkOxk000K00Od;,,:x00KKKKKKKKKKKOO0KKKKKKKKOkOOxdkkxkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;:::::::::::::::::cccccccccccccllllllllllllllloooooooooc'.......,oxkkkkkkkkkkko:',lxkkOOOOOOOOOkkdlooodxkxdxkOOOOOOOOOOkdodxxkOO000000OOkkkOOOkkkkkxxxxxxxxxxddddxxkOOOOO000KKKKKKKKKKKKKKKKKKKKKK0OOO0000kk0Oxk000K00Od::clx00KKKKKKKKKKK0O0KKKKKKKK0kkxdxxxxxxxxxxxxxxxxxxxxxxxdddddxdxxxxdddddddddxxxxxxx
;;;;;;::::::::::::ccccccccccccllllllllllllllooooooooolc:::::;'.'cxkkkkkkkkkkkdc'':dkkkOOOOOOOOkkxooooodxdoxOOOOOOOOOOOkdoddxkOOO000000OOkkkkOOkkxxxxxxxxxxdxxdoodxxkOOkkO0000K0KKKKKKKKKKKKKKKKKK00OOO000Oxk00OxO00K000Odc,,:x00KKKKKKKKKKK0OOKKKKKKKK0Oxooxxxxxxxxxxxxxxxdddddddddddddddddddddddddddxxxxxxx
;;;;;;;::::::::::::ccccccccccclllllllllllloooooooooolcldxxxxxdlcdkkkkkkkkkkkxo;',okkkOOOOOOOOOkkoloddddooxkOOOOOOOOOOOxoodxxkOOO000000OOkkkkOOkxxxddddxxdxxxxxxxxkkOO00000000000KKKKKKKKKKKKKKKKK00OOO000OxxO00000KK0000Od:,,cx00KKKKKKKKKKK0kO0KKKKKKKKOdloxxxxxxxxxxxdddddddddddddddddddddddddddddxxxxxxxx
;;;;;;;;:::::::::::cccccccccccllllllllllloooooooooolcldxxkkkkxooxkkkkkkkkkkkxc''cxkkkkOOOOOOOkkxloddddooxkOOOOOOOOOOOxooddxkOOOO00000OOOkkxkkkkxddddxxxxxkxxkxxkkOO00000000000000000000KKKKKKKKK000OOOO000kdxO00KK0KK0000Od:,,cx00KKKKKKKKKKK0OO0KKKKKKKK0xodxxxxxxxdddddddddddddddddddddddddddddddxxxxxxxxx
;;;;;;;;::::::::::ccccccccccclllllllllllloooooooooolcoxxkkkkkdodkkkkkkkkkkkkd:',oxkkOOOOOOOOkkkoloddoooxkOOOOOOOOOOOkooddxxkOOOO0OO0OOOOkkxkkkxddddxkkkkOOOOOOOOOO000000000000OOkO00000KKKKKKK0000OOOOO00OkdoxO0000KKKK0000xc,,cx00KKKKKKKKKKKKOk0KKKKKKKK0kddxxxxxdddddddddddddddddddddddddddddddxxxxxxxxxx
;;;;;;;;;::::::::::ccccccccccllllllllllloooooooooool:lxxkkkkxdoxkkkkkkkkkkkko;':dkkkkOOOOOOOkkxl:looooxkOOOOOOOOOOOkoodddxkOOOOOOOOOOOOOkxxkkkxddxkkOOOOOOOOOOOOOOOOOkkkOO0000OkkO0000000KKKK00000OOOOO00OxdllxO0000KKK00000kl;;ck00KKKKKKKKKKKKOk0KKKKKKKK0Odddxxxxxdddddddddddddddddddddddddxxxxxxxxxxxxxx
;;;;;;;;;::::::::::cccccccccclllllllllllooooooooool;,lxxkkkkxodkkkkkkkkkkkkxo,,lxkkkkOOOOOOkkkdllccloxkkOOOOOOOOOOkdlodddxkOOOOOOOOOOOOkkxxxkkxxxkOOkkxxdddddddddddddoooodkO000OOO000000000000000OkkkkOOOxol::lxO0000K00K0000Oo:;ck0KKKKKKKKKKKKK0OOKKKKKKKKKOxodxxddddddddddddddddddddddddxxxxxxxxxxxxxxxxx
;;;;;;;;;::::::::ccccccccccclllllllllllloooooooooolc:lxxkkkkdoxkkkkkkkkkkkkxl;:dkkkkkOOOOOOkkkolooccdkkOOOOOOOOOOkdlodddxkOOOOOOOOkxkkkkxxxkkkxxkkkkdlccccllccc::::::;,,,;dOO00OOOO0000000000000OOkkkkkkxo:;,,,:xO000000KKKK00Od:;lk00KKKKKKKKKKKK0kO0KKKKKKKK0kddxxxxddddddddddddddddddxxxxxxxxxxxxxxxxxxxx
;;;;;;;;:::::::::cccccccccclllllllllllllooooooooooooclxxxkkxooxkkkkkkkkkkkkxl:okkkOOOOOOOOOkkkoloolokkOOOOOOOOOOkxooddddxkOOOOOkxolodxdddxxkkkxxxkxl::cc::::::::::::;,''',lkOOOOOkOO000000000000Okxxxxxoc;,'....;dO00000KKKK000Oxc:ok00KKKKKKKKKKKK0kk0KKKKKKKK0kddxxxxxxxxxxxddddddddxxxxxxxxxxxxxxxxxxxxxk
;;;;;;:::::::::cccccccccccllllllllllllllloooooooooooclxxxxxdodkkkkkkkkkkkkkkolxkkkOOOOOOOOOkkxololoxkkkOOOOOOOkkxoloddddxkkOOkxolldkkkkdodxkkkxxxoc:::::::::::::::::::;,,;lxOOOOkkkO00000000000Okxxxxdlc::;,'....;dO0000000000000xc:oO0KKKKKKKKKKKKK0kk0KKKKKKKK0Oxdxxxxxxxxxddddddddxxxxxxxxxxxxxxxxxxxxxkk
;;;;::::::::::ccccccccccclllllllllllllllllllccccc:c::lxxxxxooxkkkkkkkkkkkkkxodkkkkOOOOOOOOOkkxllllxkkOOOOOOOOOkkdllooddddkkkxddddxkkkkxoloxkkxxdoc:::::::::::::::::::::;:llxOOOOkkkO0000000000OkxkOOOkdlc::::,....;dO0000000KK0000xlcx00KKKKKKKKKKKKK0kk0KKKKKKKK0Oxdxxxxxxxxddxxxxxxxxxxxxxxxxxxxxxxxxxxxkk
;::::::::::::ccccccccccccllllllllccc::::::;;;;:::::::oxxxxdodkkkkkkkkkkkkkkdoxkkkkkkOOOOOkkkkdllldkkkOOOOOOOkkkxlllloooddxxddxkkkOOOkkdlcoxkkxddlodollcc:::::::::::cclodxddxOOOkkkOO00000000OOxookO0OOOxl:::::;'...;dO0000000000000kodO0KKKKKKKKKKKKKK0kO0KKKKKKKK0Oddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkk
::::::::::::ccccccccccccclcc:::;;;;;;;;:::::::cc:::;:oxxxxooxkkkkkkkkkkkkkxodkkkkkkkOOOOkkkkkdlldkkkOkOOOOOkkkxollllooodooodkkOOOOOkkxolcoxxxxdddooodxxxddddooooodddddddxxkOOOkkkkOO0000000OkdolldOO00OOxl:cc::;'...:xOO000000000000kox00KKKKKKKKKKKKKKOkOKKKKKKKK00kddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkk
::::::::::::cccccccccc::;;;;;;;;::::::::::::::::;;;;cdxxxdodxkkkkkkkkkkkkkdoxkkkkkkkkOOkkkkkkdclxkkOOkOOOkkkkkdlccclloolloxkkOOOOOkkkdlcldxxxdddxxdooooodoooddoooooooodxkOOOOkxxxkOOO00OOOOxocccloxO000OOko::c::;'..'cxO0000000000000kxO0KKKKKKKKKKKKKK0Ok0KKKKKKKK00xdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkk
:::::::::::::cccc::;;,,,;;;:::::::::::::::::::;;;;;;ldxxxooxxkkkkkkkkkkkkxodkkkkkkkkkkOkkkkkkolxkkkOkkOOOOkkkxlclccccccldkkkkOOOOkkxdlcloddxddddxkkkkkkxxdddddddddxxkkOOOOOOkkxxxkkOOOOOkdlccc::ldxOOO00OOkoc:c::;,..'lkO0000000000000OkO0KKKKKKKKKKKKKK0kk0KKKKKKK00Oddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkkk
:::::::::::::::;,,,,;;;;:::::::::::::::::::::;;;;;;:oxxxdooxxkkkkkkkkkkkkdoxkkkkkkkkkkkkkkkkxoxkkkkkOkkOOkkkkdlloolcccoxkkkOOOOkkkxoccllodddddddxkkkkkkkkkkkkkkkOOOOOOOOOOOkkxxxxxkkkkdocc::::::coxkOO000OOkdc::::,...,lkO0000000000000kkOKKKKKKKKKKKKKKK0kO0KKKKKKK00xdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkk
::::::::::::;,,,,;;;;;:::::::::::::::::::::;;;;;;;,:dxxxdldxxkkkkkkkkkkkxodkkkkkkkkkkkkkkkkxddkkkkkkOkkOkkkkxlloooolcoxkkkOOkOkkkxocclloodddddddxkkkkxxxxxxkkkkOOOOOOOOOOOkxxxxdddddlc:::::::::::ldxOOO00OOOOdc:::'....,okO0000000000000kk000KKKKKKKKKKKKKOkO0KKKKKK00kddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkk
:::::::::;,,,,;;;;;;;:::::::::::::::::::::;;,,;;;;;ldxxxooxxxkkkkkkkkkkxddxkkkkkkkkkkkkkkkxddkkkkkkkkkkkkkkkdllooolldkkkkOOkkkkkdocclllooodddddddxkkkkkkxxxxkkkOOOOOOOOOkkxddddolcc:::::::::::::;:ldkOOOOOOOOOxc:;'.....;dOO000000000000Okk000KKKKKKKKKKKK0OkO00KKKK00Oddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkk
::::::;,'',;;;;;;;;;;;;;::::::::::::::::;;,,,,;;;;cdxxxdodxxkkkkkkkkkkxdoxkkkkkkkkkkkkkkkkddkkkkkkkkkkkkkkkxolooolldkkkkkkkkkkxdlcclllllooooodddddxkkkkkkkkkkOOOOOOOOOkkxdddolc::;;;;;;;;;;;:::::;codkOOO00OOOOxl;.......cxO0000000000000Okk000KKKKKKKKKKKK0Oxk00KK0000xodxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxk
::::;,',,;;;;;;;;;;;;;;;:::::::::::::::;;,,,,,;;,;ldxxdooxxxkkkkkkkkxxodxkkkkkkkkkkkkkkkkddxkkkkkkkkkkkkkkkxllolcoxkkkkkkkkkkxdl:::cccccllloooddddxxkkkkkkkkOOOOOOOkkkxddolc:;;;;;;;;;;;;;;;;;;::;;coxkOOOO00OOOxc'......,okO0000000000000Oxk00KKKKKKKKKKKKK0Okk000K000kodxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxk
:;,'',,;;;;;;;;;;;;;;;;;;;;::::::::::::;;,,,,,;;,cddxdooxxxkkkkkkkkkxxxkkkkkkkkkkkkkkkkkxdxkkkkkkkkkkkkkkkkdlolloxkkkkkkkkkkkdlcclcc:::::cccllooooddxkkkkkkkkkkkkkkkxdolc:::;;;;;;;;;;;;;;;;;;;;::;;cdxkOOOOOOOOOxc'......;dOO0000000000000OkO000KKKKKKKKKKKKK000000000Odoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxk
,'',,,,;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;,;ldxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkxdxkkkkkkkkkkkkkkkkxollldkkkkkkkkkkkxdoccooolllcc:::::cccclloodxxxxxkkxxxxdollc::cc:;,;;;;;;;;;;;;;;;;;;;;;:;;ldxOOOOOOOOOOxc'.....'ckOO0000000000000Okk0000KKKKKKKKKKKKK0000000Ododxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
.',,,,,,;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::;;:odxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkdlcoxkkkkkkkkkkkkxoccloooooollllcccccccc::ccccccccccccccc:cccclc;',;;;;;;;;;;;;;;;;;;;;;::;;ldkOOOOOOOOOOxc......,dOO00000000000000OOO00000KKKKKKKKKKKK0000000xodxxxxxxdddddddxxxxxxxxxxxxxxxxxxxx
,,,,,,,,,,;;;;;;;;;;;;;;;;;;;::::::::::::::::::;cdxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkdloxkkkkkkkkkkkxdoccloooooooooollllloollllccccc:::::ccccccccllc:;,,;;;;;;;;;;;;;;;;;;;;;;;:;;ldkOOOOOOOOOOx:.....'ckOO0000000000000000000000000KKKK00000000000xodxxddddddddddddddddddxxxxxxxxxxxxx
,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;::::::::::::::::;cddxxxxxxxxxkkxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxodxkkkkkkkkkkkxdoccloooooooooooooooooooolllllccccccccclllllllc;:c:,,;;;;;;;;;;;;;;;;;;;;;;;;,:oxkOOOOOOOOOOd;.....;dOO000000000000000000000000000000000000000Oxldddddddddddddddddddddddddxxddddxxx
,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;:::::::::::::::;cddxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkkkkkkkkkkkkxdoc:looooooooooooooooolllloolllllcccccllllllllc::llc,,;;;;;;;;;;;;;;;;;;;;;;;;;;coxkOOOOOOOOOkd;....,lkOO00000000000000000000000000000000000000Odlddddddddddddddddddddddddddddddddxx
,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;:::::::::::::;cddxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxdol:cloooooooooooloollllllooolllllllllllllllllc;:llll;,,;;;;,;;,,,;;;;;;;;;;;;;;;;cdxkOOOOOOOOOkd:'.,:lxOO00000000000000000000000000000000000000Oo:lodddddddddddddddddddddddddddddddx
''',,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;::::::::::::;cddxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxdlccloooollllooolllllllllllllllllllllllllllllc;:lllll:,,;;;,,,,;,,,;;;;;;;;;;;;;;;;ldxkOOOOOOOOOkxc,:lldOO0000000000000000000000000000000000000Okc'';lodddddddddddddddddddddddddddddd
......''',,,,,,,,,;;;;;;;;;;;;;;;;;;;::::::::::;:oddxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxdocclllllllllloolllllllllllllllllllllllllllllc;cllllllc,,;,,,'',,,,,,,;;;;;;;;;;;;;,;ldkkOOOOOOOOOOkolodkOO000000000000000000000000000000000000OOx:...;loooooddddddddddddddddddddddddd
      .......'',,,,,,,,,;;;;;;;;;;;;;;:::::::::;:oddxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxdocclllllllllllllllllllllllllllllllllllllllll:;clllllllc;',,,,.',,,,,,,;;;;;;;;;;;;;;,:oxkkOOOOOOOOOOOOOOOOO000000000000000000000000000000000000OOo,....:looooooooddddddddddddddddddddd
             .....',,,,,,,;;;;;;;;;;;;;:::::::::;lddxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxoc:llllllllllllllllllllllllllllllllllllllll:;clllllllll;',,,'.',,,,,,,,,,,,,,;;;;;;;;;coxkOOOOOOOOOOOOOOO000000000000000000000000000000000000OOOkl'....':loooooooooodddooddddddddddddd
                  .....',,,,;;;;;;;;;;;;;;::::::;cddddxxxxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxdc:lllllllllllllllllllllllllllllllllllllllc:cllllllllll:',,,'',,,,,,,,,,,,,,,,;;;;;;:,;ldxkOOOOOOOOOOOOO000000000000000000000000000000000000OOOOx:......'clooooooooooooooooooooooodddd
                       ....',,,,;;;;;;;;;;;:::::;:oddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkxxxxocclllllllllllllllllllllllllllllllllllllll:;cllllllllll:',,'.',,,,,,,,,,,,,,,,,,;;;::'.:odxkOOOOOOOOOOOOOOOOOO00000000000000000000000000000OOOOko'.......,cloooooooooooooooooooooooddd
                            ...',,,;;;;;;;;;;:::;;ldddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkxxxxxdl:clllllllllllllllllllllllllllllllllllllllc:cllllllllll:',,..,,,,,,,,,,,,,,,,,,,;;::,..,coxkkkOOOOOOOOOOOOOOOOOOOOOOOOOOO0000000000000OOOOOOOOOx:.........:llooooooooooooooooooooooodd
                               ...',,;;;;;;;;::::;coddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkxxxxxxdl::lllllllllllllllllllllllllllllllllllllllc:clllllllllc:','.',,,,,,,,,,,,,,,,,,,;::;...'codkkkkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO00OOOOOOOOOOko,.........,clloooooooooooooooooooooood