.;*#znnnn#+i,`                                                                 
                                                                    .iznnnnnnnnnnnxxn*,                                                               
                                                                  .+nnnnnnnnnnnnxxxxxxx#,                                                             
                                                                `*nnnnnnnnnnnnnnxxxxxxxxx+.                                                           
                                                               ,znnnnnnnnn+;,.```.:i+nxxxxn:                                                          
                                                              ;nnnnnnnn+:`           `:#xxxx*                                                         
                                                        ```..*xxxxxnn#,                 ,zxxx+                                                        
                                                     `......ixxxxxxn;`                    ixxx+                                                       
                                                   `.......;xxxxxxn,```                    ,nxxi                                                      
                                                  ........,xxxxxxz,``````                   .nxx:                                                     
                                                `.........zxxxxxn,.```````                   .nxn`                                                    
                                               `.........ixxxxxx,``.```````                   :xx*                                                    
                                              `.........,nxnnnni    ````````                   +xx.                                                   
                                              .........`innnnnz`      `......                  `xx+                                                   
                                             .........` znnnnni    ``..,,,,,,,..`               *xx`                                                  
                                            `,.......` ,nnnnnn`  `......,,,,,,,,,,.`            .xxi                                                  
                                            .,,.....`  *nnnnn+ `.......,,,,,,,,,,,,,.            zxz                                                  
                                           `,,,,...`   znnnnni........,.```......,,,,,`          *xx`                                                 
                                           .,,,,,..   .nnnnnx;....,,.`     `````  `,,,,.         ;xx:                                                 
                                           ,,,,,,,`   :nnnnxx:.,,,.`       `.```    `,,,.        ,xxi                                                 
                                          `,,,,,,.    ;nnnxxx,,,,.          `.``     `,,,.       .xx+                                                 
                                          `,,,,,,`    innxxxx,,,`           `..``      .,,.      ,xx#                                                 
                                          .,,,,,,`    *nnxxxx:,`            `...`       .,,`     ,xxz                                                 
                                          .,,,,,,     *nxMMMxi`              ...`       `,,,     ;xxz                                                 
                                          .,,,,,.     *nxMMMM*               ...`        `,,.    +xx#                                                 
                                          .,,,,,.     ixMMMMM#               ...`         ,,,`   nxx#                                                 
                                          .,,,,,.     ;MMMMMxn.              ...`         `,,.  ,xxx*                                                 
                                          `,,,,,.     :MMMMMnni              ...`          ,,,  +xxx;                                                 
                                          `,,,,,.     ,xMMMxnnn.             ...`          .,:..xxxx,                                                 
                                           ,,,,,,     ,nMMMxnnn+            `...           .::,#xxxx                                                  
                                           .,,,,,    `,+MMMnnnnn;           `...           `::ixxxx+                                                  
                                           `,,,,,`   `,:MMMnnnnnn,          ...`           `:;*nxxx:                                                  
                                            ,,,,,.   .,,zMxnnnnnnn,        `...            `;**nxxn`                                                  
                                            `,,,,,`  .,,iMxnnnnnnnn:       ...`            ;***zxxi                                                   
                                             .,,,,.  .,,,nxnnnnnnnnn*`    `...           `+z***#xn`                                                   
                                             `,,,,,. .,,,;Mnnnnnnnnnnz;`  ...`         `inx#**i#x;                                                    
                                              `,,,,,`.,,,,#nnnnnnnnnnnnzi:..`        ,*nxxx+iiiz#                                                     
                                               `,,,,,.,,,,:#nnnnnnnnnnnnxxn#i;:::;i+nxxxxxniiii#.                                                     
                                                `,,,,,:,,,,,znnnnnnnnnxxxxxxnxxxxxxxxxxxxx#iiii.                                                      
                                                 `,,,,:::,,,,nnnnnnnnxxxxxnnnxxxxxxxxxxxxx*iii;`                                                      
                                                   .,,::::::`,znnnxxxxxxxnnnxxxxxxxxxxxxx#iii;:                                                       
                                                    `.:::::::.:nxMxxxxxnnnnnxxxxxxxxxxxxziii;:,                                                       
                                                      `:::::::,,#Mxxxnnnnnnnxxxxxxxxxxxn*i;:::`                                                       
                                                       ,::::::,``:#nnnnnnnnnxxxxxxxxxxn*i;::::                                                        
                                                       `:::::::`   :#nnnnnnnxxxxxxxxxni;:::::.                                                        
                                                        ,:::::::.    ,*znnnnxxxxxxxn+;:::::::                                                         
                                                        `::::::::,`     .:i*+++*i:,,::::::::.                                                         
                                                         .:::::::::,`           `,:::::::::,                                                          
                                                          ,:::::::::::,..```..,::::::::::::`                                                          
                                                           ,::::::::::::::::::::::::::::::`                                                           
                                                            ,::::::::::::::::::::::::::::`                                                            
                                                             ,:::::::::::::::::::::::;;:`                                                             
                                                              .:::::::::::::::::::;;;;:`                                                              
                                                               `,:::::::::::::::;;;;:.                                                                
                                                                 `,::::::::::;;;;;:.                                                                  
                                                                   `.,::::;;;;;:,.                                                                    
                                                                       `.....``                                                                       
                                                                                                                                                      
xxxxxxxxxxxxn+:                              zxxi                                                                                                     
###############M;                            W##+                                                                                                     
##################                           W##+                                                                                                     
###M++++++++z@####+                          W##+                                                                                                     
###n         `n####:                         W##+                                                                                                     
###n           n###n                         W##+                                                                                                     
###n           `@###`                        W##+                                                                                                     
###n            z###:       .i+#+i.          W##+                             `:*##+;`            `;+#+*,                 :+#+;`      ,*#+i.    **:; *
###n            +###;     ;x#######x:        W##+  W@@M            .@@@n    `#@#######n,        ,z#######W*        z@@n :M#####@i   .n#####@+   .;:z.x
###n            +###;   `z###########z`      W##+  +###:           *###;   ;@##########@*      *@##########M.      n##ni#########i :@#########  .;:iz*
###n            M###,  `x###@#i;i#@###x`     W##+  .###n           M##W   i####x*;;*x#####    #####ni;;+W###W,     n##W##M*;in###@,@#W+;;#####, .:,,i;
###n           ;###W   n###z`     `z###n     W##+   n##@`         :###+  :@##W;      :W##*   *###M,      *###W`    n####+     +###@#n`    ;####       
###n          ,@###+  i####         z###;    W##+   :###*         z##@. `M##@,        `M*   .@##M`        i####    n###*       W###z       n##W       
###n    ````,+@###M`  W##M`         `W##M    W###    M##M        `@##z  i###i          `    z###,          z###.   n##x        z##@`       *###`      
#################W,  :###i           i###:   W###    *###:       *###:  x##M               `@##z           .###+   n##n        +##@        ;###.      
################x.   ###@`           `###+   W###    `@##z       M##M  `###+               ;###:            x##x   n##n        *##@        ;###.      
##############x;     x##M             M##n   W###     ###@`     ,###i  :###:               +###`            ###@   n##n        *##@        ;###.      
###x::::::::,`       W##n             n##M   W###     ,###i     ###@`  i###,               ###@             *###`  n##n        *##@        ;###.      
###n                 W##z             n##M   W###      x##M    `@###   i###.               z##W             *###.  n##n        *##@        ;###.      
###n                 M##n             x##x   W###      ;###,   i###.   ;###,               ###@             +###`  n##n        *##@        ;###.      
###n                 n##W             @##z   W###       W###   x##n    ,###i               i###.            z##W   n##n        *##@        ;###.      
###n                 *###,           ,###i   M###       +##@` ,###;     @##n               ,###*            @##z   n##n        *##@        ;###.      
###n                 .###z           z##@`   M###       `@##i ###W      ####.               M##W           i###;   n##n        *##@        ;###.      
###n                  z###:         :####    M###        z##x`@##*      .###n          i.   i###+         `W##M    n##n        *##@        ;###.      
###n                  .@##W,       ,W##@.    M###        ,###*##@`       #####        +#W.   x###i       `x###:    n##n        *##@        ;###.      
###n                   ;###@+.   .+@###:     M###         M######        `x###x:    :x###x   .W###z,   `iW###+     n##n        *##@        ;###.      
###n                    ;@####WMW####@;      M###         i#####,         `x####@MM@####M.    ,W####WMM@####+      n##n        *##@        ;###.      
###n                     ,x#########x,       M###         `@###x            +@##########`      `z#########W;       n##n        *##@        ;###.      
+++;                       :#M@#@M#:         i++:          ####;             `*x@##@x+.          .+x@##Wn;`        ;++;        :++*        .+++`      
                                                           ###W                                                                                       
                                                          .@##+                                                                                       
                                                     `   `x##@`                                                                                       
                                                    .W#:;x###*                                                                                        
                                                   `M#######n                                                                                         
                                                   ,W######z`                                                                                         
                                                    `*M@@x;