......                                     
                               ..................                               
                           .. ..           ......                               
                                      ......',;:::;,'...  .                     
                     .            ..',;:ccccclllllllc;,,....                    
                  .... .      ...,:cllllllllllllllllcc:;,''',:,.                
                .......     .';::;'.......',;cllllllc::;::;;;ccc:'              
              .......     .::,'............',;cllllllc;;;,'....';cc......       
              ......   .'cc;;:::::::;,,''',,;;clloodolc::;,,,,,''.':'...        
            ..........;dxldl:;;;:ccccc:;''',;:codooollc:;;;::cccllc;'... ..     
         ........'..,dkxxOd;'':lc;,,,,,;,'',cloddoollc:;,,,;::ccccllc,....      
      ...........',lkOkkOx;...'..   ..,...,clddxdolllllc'.....,;::;:cc... .     
    .............'oOOOOkdc;,''''''',;:::cclodxxkkl:::clc:,.. . ...',;c;...      
 ...''.......  ..,xOOkxdolllllllloooollcclodd:'...;''..':cllc:;,'..',::'.       
....,......    ..,dOkxxddddddooooooolcc::coo;.   .;,;'. .;cooolllccc:::;.       
...'......   ....,okkkkkkkxxddddoollcc:::col;,,;:c:::lc,,;loooooooollcc:.       
..'.......    ..',x0OO000Oxxxxddoollcccclllooollllclcllllclooodddooolllc;       
....     .... ...,kKKKKK0kxdxxxddooooloooooololllllllloollloooddooollllcc.      
....        ....',dO0KXKOkkkkkkxxxdddollllllc;,''''',,;:clolllooooollllcc.      
....        ...;;:okO0XKOOOOOOOOkkxxol:,''....''.'.......':lllllloollllc:.      
..         ...,::odkO0K0OkkOO000Okkdc:;,,:cc:::;;;;;;:::;,'',:lllllllllc,.      
           ..,clc;ldkO0OkxkOO0000kdocllllllc:;,,''''',;::ccccccllllllllc'.      
           .,:::;:ccdO0OkkOOOOOOkdoolllccc:::::::::::;:ccclllllllllllllcl,      
        .,;'.,;;lc;,cxO0OOkkkkkkxoollllcclllllllllollllolllllllllclllll:;,.     
.     .;,.    ..'.. .cdxkxkkkkkxddddddddddddoolllllloooooooollllccllllc:;...    
    .;.              .clloooddddxkkkkxxxxddllcccclllloodddooollllllllc'... ..   
  .:..                '::::cclloodxkkkOxdolc:::;:ccccccllloollllcccc:.    ..'.. 
 .c.                   ;;;,'',,;:cccllooc:;;,,,,,,,,;;;;::cccc::;;,.         :. 
 :.                    '::;;,'.....',,;,,'...............'''''...            '' 
 o                     .:::;::;;;;,,''.....................'',:'              :.
 l.                    .::::;::::::;;;;;,,'.........'',;;;;:cc;.              .;
 .l.                   .:::::;;:cclcccc:;;,,,'.'',;;::::::ccl:,                ;
  .:,                  '::::::;,:lllllc::;;,,',;;::::ccccccc:;.                .
    .c;.              .;:::::::;,cllllc:;;;;;;;;::ccccccccc;:;                 ,
      .cl'            .;::::c::::,:cc:::;;;:::::::c::::ccc;::.                .d
        .;dl'         ..;::::::::;,,;:;;;,,;;;;:::::::ccc,:::                'dK
           .lkc.     ....';::::::;;,'',,,,'',,;;;;:::cc:,:::.               .lO0
             .cOo.   .....',;:::;;;;;,'''''',,;;:::ccc:,::::                o0Kk
               .lOl.  ..'''',;:ccc:::::;,,,,;;;::cccc:;cc::'               ;kX0'
                 .lOl.  .''',,;::cccc:::;;;;;;::cccc;;ccc::.               lxl; 
                   .ok:. .',,,,;::ccccc:::;;;;;:::;;:ccc::'               .kc.  
                     'ox; .:,,,;:::cllccc:::;;;;,,;cccc:;;:;             ;k:    
                       'lo',l,;;;:clllllcc::;,,',:lccc;. ;d'           .od.     
                         .'.',;;:cllllllcc:,''',:ccc;.  .xx.         .co,       
                               .';:ccccc:'..',;;::;..   ;xd      ..,:;.         
                                             .......    .;'....'''..