..
                                            .,lolll:,.
                                          'lolc::clooc,'..
                                         .ddc,.  .;'.,c:,.
                                         lxolc;. ..  ..,:
                                       .lXxddddo'':cc;,:;
                                       'kXoolll:'.odxlllc.
                                       'dOolc':l:,c;..,oo,
                                       .clol:cxxo;,'..,lc
                                         ;ldo:oc;''.'':.
                                        .'lkkdc;,''::;.
                                       .ldddxOkkxxxdc:'
                                  .,:clxxxd''cc::c:,'K,.
                            ..'',;,,ooddddxo:,,'.','cx:::..
                         ';c:,.   .,lllloodxkxddodko:;,.' ....
                      .',;c,....,';lolllclooddoKN0xc;,,,..    ....
                      .;,;cdxxdooolllllll,,loo,;::c,','...   .   ..
                     .;cc:odxxddddollccllclllolodol;;'...  ..     ;.
                    .:c;oooddkdddddollc:cllllolodllllccc;,,,...  '.'.
                   .:c:loooddkxddxddoc:;;lllcolodolcllllllll:'......,
                   .,clooooddxddddoool:;;;cccoloxoolllllccccc:',,...:
                   ':llooodddxddodooool::;:llolodoolllllcc::::;l:,'';.
                 .;collloodoloododoooolllllclllo;,llllllc:;;:coolc',',
                ..cooooooddoooooooooooollll.'.co:.;ccll,.,;;:looolc,';
                . ;llloodoooool;doooddollll...colc:;;:cc;,,;codddoc';'.
              .;.,loooodolooloo;ooooooollll..'coolc:;;;:'',cxddoolcc:.'
              .colddoloolc;:coo;codoooollll.;;collc:''....;lxddoolc:;.'
              oxxxdddolllc.'lollllooooollllolclllc:,..'.';cldoooool:;''
            .oxxddddoooc;. ,dolccloloooollldlllll:;,....,:cclddoollc:,.
            .:oxdddddod,   'oocccloooooollldoollcc;.....,,.''oooll;','..
             :lxxdddodxc   .;olcllolllolllcc;c;:;c'.  ..,,' .ooolcl;'.'
              ;dxxddoodo.  ',oollllllloolloolocclc.    .','  :oddollc:;'
             'odxdddddooc. ,;oolcccllloollooodlc:,..    .... .;oool:''.'
              :odxxxdddoc,.cloolcclllooollollllllc'...  .. .  .cooc''. .
               .lddddxxdlocc:lollllllooooccolocc:::,'.. .;..' .'ool:;' '
                 :dxxxdddollccllll;;lllooc:looclcc:cl'.'.,;,; .cooooll...
                   :xddoo:...,:lllcloooolcl,,oolc::cc:;'...';  :doooool:..
                    .:oo;.''...:lloooooll:lccdooccc::::;.,'.'   :odddo:;..
                      .;c;ll:cl,loooooollloolc::::;;:::c:;''.    ;lddol, .
                       ,ddddoodolclooooo:lc;cc::;,;;;::c:;;..     ;xddl;..
                        .dxxdddddddooodoloolocc:;''',,;,''. '      dxdocc.
                          oddddddddddddddddodolcc::ccl:c:'...      'col,;,
                          .o'loodddoodxxxkkkxdll::clcc:::;'.'      .:ol...
                          .l'cllllollooddddoccccc:'..;;;;;:c,      .c,...,
                          .oclodddoooddddcdololl:...........'     ,:o.   ..
                          .ldddddddddddddoxxddoc..;c:.......'    .doo. ....
                          .odooddddddddddxxkxddoooool,...   .    .::xocccc.
                          .ldddddddddddddddddxxddool,,.......    .oddool;
                          .'ldddddddddoooooodddddllllc.   .'.     ,.','
                           'looooodddddooooddddooc:cl:::;..'
                           :lodddddooddooodddddol:.;:::c:'';
                           ,oddddddoooooood::ddoo,...   ,,;,
                           :oddddoooooooodo cdoll,......',,,
                           cldoodooooooool, ccoll,....;c;.,.
                           loo;odddooddocc. :cccl,    .:;,;
                           lco;ddddddddo:'  ;c:cc'    .:,,.
                           ccodddddddddo,.  ,:,cc.    .:.,
                           coddddddddddl.   ,,.:c     .;...
                           clddododdddd:    ,' ..     .;,..
                           :cdooooooddo'.   ,' '.......;;..
                           cldddooodddd',    ..'l'.'...;;..
                           :ldxdddddddol:     ..lc';::;'''
                           lodddddoddddo;    ...ll;.;:,...
                           oldddddoddddd;    .lllcl;''...'
                           lldddddddddod.    .dll'looc....
                           ;lddddddoolol     .ool,,oooc...
                           .cldddddoold'     .ldooc,ool,..
                            'oddddddood.     .lddoo,:ool..
                            .oddddxxddd.     :cddool,lol'.
                            .ldddxxxddo.    .lcdddooc,,,'.
                            .odddxxddc:     .ccdddcllc. :
                             :oddddddl;     'loddoolcc; ..
                             'oddddddl.     ,llddollllc. .
                            .ldxxxddd;      .,oddollllll..
                            ,lxxxxdoo.      ..cddoll:lll:.
                           'coxxddolc        :oodolc;:llc.
                          .oodxxddl:;        :oololl;'llc'
                        ..,dddd;oddl;.      ..llllll::ll'..
                        .,:odxdodddc,.      ,coooddxdocc;.
                           .',,,'..          :ldxoxdolc;;
                                             .cddoloollld
                                             ,xxxxxxkxo:;
                                             cddddoxdodoc
                                             ;xdllxx:l,,,.
                                            .loollodlddlc;:.
                                             .'loolooddxxdcc
                                                .,;::cc:;'..