................
                                                              ..................
                                                                 ...............
                                . .                                .............
                     ............                              .             .  
              ............                                 .....................
       . . ..                                             ......................
                                                        ..............''........
                      . ....                          ..............'''kK0000000
               .............                        .................,.:xxkkkkkk
        ..........''',,;:c:                            .............;,..clccllll
   ........'',;::lldxkkOOO:               .........  ............. .xOKxokxxxkxx
.......''',;;ccccc:llllooo.              .... .... .   .........   .x0xdOOkkkkkk
.......,'''...'..........'            ... ... ..................... ,ol::::,,,;;
.......;;;;,,,,,,;::::clll,         ... . ..    ...............',,,..'.:;'''''..
......':ollcclllllodddxkkkk.         .......... ...............',,;:c::;..',;ccc
.....'':odddxxxkkkOOOO0KKKKk.       ..........'''.............'',,;;clc,,;;:;;;o
.....',:odddodddxxxxdkOKXNXKd.     ..........................'',,;;;;;;;;;;;,,:l
.'.....,:::::,,,,,::,,;clcclo:..............................'',,,,,,;;;;;;;,,:lc
...'.....'....'.'.....'''''........,,,'.'',,''..............'.',,,;;;:cc:;',:odd
.........;..,.........''..'........',''.';;;;,''....''..''''',;;:::cccccc;,:::cc
'.....'''.;'',......',;,;....'.'',';,'.'',,,,,,,,..''''...',;;;:ccllool::clcccll
'''',,.',',,';..''',..;,;'.'...,;;,';;'',,,;,';,c;,','..';;;cccclooooolcoo:clooo
',''''''',,:,....',,...,;'.....:c:'';:,,'';c,,;;,:;::;;;::::cclloodddoooodddxkkk
''.....';;;'.....,;;'..,;''..'';;'.,cc:''.,;:c:;,,;;;;:::cllcllollcoddolx00O0000
.......';:;'....',;,''',;''..'';;',;cc;'...';cc:;,;;:;::cclllllooddoO0KXNNNXKKXX
,,,''''',;;,...,,,'.'',;,'',''';,;,;:c:,...';c:;,',,;;::clllc:::ccocXNNNNNNNNNXX
;;,;;;::;;;;,,,;,'...',;;,,,,,;,;,',;::;'.';cc:;;;::ccccclllc;,;cldKWWWNNNNNNNNN
'..',;;;;;;;;:;;,'....,,;,;,,;,;;,'',;;:cccllllllcllllollcllc:::cd0KKKKKKKKKXKXX
,. .'... ....',;;;'...'',,,,,,,,;,',:llcc:c:ccllcll:cllc::cll:;:lO0000000KKKKKKK
:;.............'::;...'',,,,,;;;,'':dol;'.......',.';lll:;;ccc:o0OOkxddxxxxxxxkk
';;;'......... ..,,..',,,,,,,;::;',loc'.....',,;,.'cddolccc:cccok0KXNKOxoooooodd
....'',;,;;;'.......'',,,'';:c:c;',;,'.......'',:lool:;;;;::::lldOKK0NXK0Oxooooo
........',:c;.......''',''';:clcc;'..'',lolllcc;;,'',,,;:ccc:ccloOKKK0XXKKNXxooo
.....................''',,;:ccccl:'..',;lc:,'..''',,;;;:collclcloOKXXXXXKKKNWKkk
......''''''.........'',,,;::cc:::;''',,;,,''',,,,;;;:codoollllox0KXXXXX000XNNWN
....'',,'''''.''.....'',,,;;;::;;:;;,,,;:::;;,,,;;::::cc::cloccdOKKKXXNNXOKXKXXX
;;''',',,,,,'''....'',,,,;;;;;;,,;;::;;::cccc::;;;;;clddolloolok0KKKXXXNXXKKKKXK
::;;;,,',,'''.''...'',;;;;;;;;;;',;:;:::clllllllccldxdddoolloxkO000KKKXXXNNXXXKK
;;;;;''.....'',,..............',,':cc:::c:ccloddooddddxxddodkOO0000KKKXXXNNNNNWW
;::;;;,,''''',;:::,'..........,;:cllc:,,;;;:ldxdddxxdxxdooxkOO0KKKXXXXXNNNNNNNNN
'',:;,,'','',;ccclllc'.....'coddddolcc:::clldxxxxxddddoodxkkOO00KKKKKKKKXXXNNNNN
,,,;::;;;;;::cccccllllc'..;odxxxxxddlccc:loodxkddooddxkkOkkkkkOOO00KKKXXXNNNNNNN
,,,;;::c::::ccccccccc:;'.':cooddddooddlooddxkkxxoooodxkOOOOOOO0000KKXXXXNNXNNNNN
;,'''';:ccc::::::;;,'......;:cclooooodddxkkkxxdxxodxxkkkkkOOO000000KXXXXXXNNNNNN
;;;,,,,,:lllc:'.'..............',:ccoxkkOOxdoollokkkkkOOOO00000000KKKKKXXXXNNNNX
',;;;,,,,:lllc;..'l'.........'c,',;okOOkkxllcoooxddkOOOOO000000KKKKKKKXXXXNXNXK0
...',,,,,,:lolc'..oo:,''..'':ox:'cokOOOxolclooodxdkOOOO0OO00000KKKKKKKXXXXXK0O00
.....'.'',,:lll,..':c::;;::clo:;;lO00kdooloododooxkOO00000KKKKKKXKXXXKKXKOkOOOO0
..........',;lol:,.......;:;'',:dOOOxdooooodxdlxdxOOOO000000KKKXXXXXXKOkkkkkkkOO
.... ......',;coollc:;,'',:codxOOOkdoldoddollcodoxkO0O00000KKKKKXNX0xdddxxkkkkkO
.............';;clllloooodxxkOkkdoooolcc::,;:ccooxkkOOOK000KKKKK0xooddddddxxkkxk
.............''',;:cllllloddoolooodooooll:,;:;'.,lkxOOOO0KKKKOxooooooododdddxxxx
............''..''',;;:coooolc:lododoooolc:c'.''.:dxkkkO00Oxlllllloollloooddddxx
.....'''''',,.....',';:ccoddooollodddddxxxdo:,''.:dxxkkxo::l:ccccclllllloooooodx
......',,,;::,',,,,,',;:coodddodddxxxkxxkkOk;..':oooxxdc::cccccc::cccccccllllllo
.......'';:::::c:::;;,;c:oodddolddoddddodxkxc::lkOkkOOkkxoolcclclllc:::::cclllll
........''',,;;cccc::;:::lolcolcclcclclccloolokO00000OOOOOkxxdoolll,'.',;;;c::c:
..............',,;::;:::;:c',,;;cccc:::cclldkkkO000000000KK000Oxdo:'...';::lolox
'''''...........'',,',,;',;';;:cllolcllodxkkOOkOKKK0KKKKXKKKK0Oko:''...';c::ddxk
...',,''.'......'.,'',,;,,;;cllloooooddxxkkkxkO0KKKKKKKKXXXKKXXK0x;,,''':ooclxkk
....',,,;,,,,'',,',,,;ccc:lldoooddoloddxkkxxkOO0KKKKXXKKKKXXNNNXX0;;;,,,c0kookkO
....''.'',,;,,;;:::c:cloloolodododdoddxdkxxxkOOKKKXXXXXKKKXNNNNXXk;;;;;;;0K00KK0
''....'.''''',',;:::cccccoclloooodddodxxkkkkOOO00000KKKKK0KKXKK0k:;:;;;;;kXXXXXK
'.......'','''',:;;;:c:;lc:llooodddxxxxxkkkkO0KKKKKKKKKKKKXXXXX0c,;::;;;;oXXXXXX