```                                                                                 
                                                             .:;*+*+#+*i:,...```                                                                      
                                                          .;+znzzzzzz###z##+#+*;,``                                                                   
                                                        .i+znnnnnnnnzzz###++#zzz#*;.```                                                               
                                                      `:#znnxxxxnnzzzzzz###+++#zzz#+**;,.`                                                            
                                                     .i#znxxxxxnnxxxxxxnnzz####+#znn#+i;+*;,.`                                                        
                                                    .i#znxxxxxxxxxMMxxxxnnnnzz#z###znz#+;i#;,,:.                                                      
                                                   `i##nnxxxxxxxMMMMMMMMxnxnnzzz#z#+#zz####+*,`,,.                                                    
                                                  `:+#znxxxxMMxxMMMMMxxxxxxxxnnnzzzz##zzzzzz##;` ..`                                                  
                                                 `.i#znxxxxxxxxxxxxnnnnxxxxxxxnnnzzzz#+nnzzzz+z+,` ``                                                 
                                                .,:+znxxxxxxnnzzzz###zzzznnnnxxnnnnzznz#znnnzz##z+;` `                                                
                                                `,;#nxxxxxnz##++++++++###zzznnnnxnnnzznzzznnnzzz#z#*. `                                               
                                                `,iznnnnnz+***********+++##zzznnnnnzznznz#znnnnzzz#+#,``                                              
                                               `.;+znnz#+*iiiiiiiiiiii***++###zznnnnnnznz#znnxnzzz+++#:`                                              
                                              `.,izzz#*i;;;;;;;;;;;;;iii***+++##zznnnnnnnz#znxxnnzzz+i+:                                              
                                            `.:;i+z#*;:::::::::::::;;;;iii***++###zznnxnnnzzzxxxnznzz+;i`                                             
                                           ..:i*+#*;:,,,,:::::::::::;;;;;iii**+++###zznxnnnzzzxxnnzzzz*i,                                             
                                          `.;*###i,,,,,,,,,:::::::::::;;;;iii***++###zznnnnnzznxxnnzzzz+:`                                            
                                         `.;*#z#i,,,,,,,,,,::::::::::::;;;;iiii***++###znnnxnnzxxxnnzzz+i``                                           
                                        `.ii###*,,,,,,,,,,,::::::::::::::;;;;iiii***+++#znxxnznnxxnnznn##;.                                           
                                        `;i+z#*:,,,,,,,,,,:::::::::::::::;;;;;;iiii****+#znxxnnzMxxnnnzn##;,                                          
                                       ..i+z#*;:,,,,,,,,::::::::::::::::::;;;;;;;;iiii***#znxxnnxxxnnnnnz#*;.                                         
                                      ``;*#z#i:,,,,,,,,:::::::::::::::::::;;;;;;;;;;iii***#znxnnnMxxxnnnz##i:`                                        
                                     ``,;+zz*;:,,,,,,:::::::::::::::::::::;:;:;;;;;;;;iii**#znxnnxxxxnnnn##+;:`                                       
                                      `i*zz#;:,,,,,,::::::::::::::;:::::;:;;;:;;;;;;;;;;ii**#zxnnnMxxnnnnz#+*;:`                                      
                                     `;i#zz*;:,,,,,,:,:::::::::;;;;;::::::;:::;:;:;;;;;;;;i*+znxnnMxxnnnnzz++*i,                                      
                                    `,i+znz*::,,,,,::::::::::::;;;;;;;:::;;;;;:::;;;;;;;;;;i*#zxxnxxxnnnnnz#**i;`                                     
                                   ``;*#zn#i:,,,,,::::::::::;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;i*+#nxxnMxxnnnnz++**i,                                     
                                   `:*+#zz+i:,,,:::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i*+zxxnxxxnnnnz+***i;`                                    
                                  `:i*##zz+;:,,,:::::::::::;:;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;i*#nxnxxxxxnnz+*+*ii,                                    
                                 `,;*+zzz#*;:,,:::::::::::::::;;;;;;;;;;;;;;;:;:::::::::::;;;ii+zxxxxxxxnnz+**+*ii`                                   
                                 .;i+zzzz#i;:,,:::::::::::::::::::;;;;;;;;;:;;:::::::::::::;;;i*#nxxxxxxnnz***+**i,                                   
                                `:i*#zzzz+i;:,,,::::::::::::::::::::::;;::;:;;::::::::::::::;;;i*zxxxxxxnnz*+*#+**;                                   
                                ,i*+#zznz+*;::,,:::::::::::::::::::::::::::;:;:::::::::::::::;;ii#xxxxxxnn#*+*+#i+;`                                  
                               `;**+zzznz+i;::,,::::::::::::::::::::::::::::::::::::::::::::::;ii*zxxxxxnn#++++z*+i.                                  
                               ,i*+#zzzz#+i;::,:::::::::::::::::;;::::::::::::::::::;:;;;;::::;;i*#xxxxxnn###++#+*i:                                  
                              .;**+#zzzz#+i;::,:::::::::::;;;;;;;;;::::;;:::::;::;;;;;;iiii;;;;;i*+nxxxxnz###+#++*i;`                                 
                              :i**##nznz#+;;:,:::::::::;;iii;;iiii;;;;;;;;;::;;;;;;iiii*****iiiiii+zxxxnnz##z++++i*i`                                 
                             `i**+##zznz#*i::,,::::::;ii**+++++++*iii;;;;;;;;;;;;;;i*++#++###++****zxxnnnz##z++++***.                                 
                             ,i**+#zzznz#*i::::::::;i*+zzzznzzz###+**ii;;;;;;;;;ii*+zznnnnnnnzz#++++nxnnnn####+#+*+*,                                 
                             ;**++#zzznz#+;::,,:::i*#zznnnnnnzzz##+*ii;;;;;;;;;i*+#znnnnxxxxxnnz####zxxnxz###z++#+++,                                 
                            .i**+#zzzznz#*;:,,,:;*###+++#znnnnzz##+***;;;;;;;;ii*+#znnnnnnnnnnnzz####nxxxz##zz+*#+#+:                                 
                            ,i**+#zzzznz#*;::,::*#####zzzzzzzznzz#++**i;i;;iiii*+##zzzznnnnzzzzz####zzxxnzz#zn#*###+,`                                
                            :i**+#zzznnz#i;::,:*+##zzzzz#########++++*iii;;iiii*+######zzz#++++++++###nxnzz#zn#++##+:`                                
                           .;**++zzznnnz+i::::i+###+++++++++##++++++***iii;ii***+#+######+++++******+#zxnnz#znz+*z++;                                 
                           :;**++zznnnnz#;:::i*+#++++*******+++#+++++**iiiiii**++++#####++++++*******+zxnnz#zzn#+##+;`                                
                           ;;**++zznnnzz+;:::i***************+++++++++**iiiiii*+######++++************#nnnzznzn#++#*i.                                
                          `ii**+#zznnzzz+;,:;i**+***********+++++##+++**ii;iii*###z#++++++++++********#nnnnznzz#++++i:                                
                          `i*+*+#znnnnnz*::::;************+++###+##++++*i;;;;i+##z#+++###+++++#+****+*+nnnz#nnzz*#++*;`                               
                          .**+*+zznnnnn#i::::;i*+*****+++++#zzzz####++**i;;;;i+#z#+######+++***+++*i+*+znnz#xnz#+#++*i`                               
                          .****+zznnnnnzi::::ii*+*i*+++***+##zzzz####+**i;;;;i*#z#######zzzz#+*ii*#*+++znnz#nxzz+##**i`                               
                          ,++*++zznnnxn#i::::i***i*+***#zzxxxnnz###+++**ii;;;i*#z###znxnxxxxxnnz+**++++#nnz#nxz#+z#***`                               
                          ,++++#zznzxnn#i:::;ii*i*+*+#nxxxxxxxxxnn#+++*ii;;;;;i+z##zzzzzzzznnnnnnnz++++#znz#znn#+z#***.                               
                          .++++#znznnnn#i::::;i**+#nnxxnzz#zzzzz##+*++*iii;;;;i*##+++###+++###zznnn#+*+#zzz#znn#+z#+ii,                               
                          ,+#++#znznnnn#i::::;ii*+nxnnz#+++++#####++***i;;;;;;;i*+#+###++++++++++##z+++#zzz#znn#*zz#*i:                               
                          ,+#+##znznnnn#i:::;iii*++#++******++#z##+***ii;;;;:::;i*+#++###++++++++++++**+zzz#znnz*zz#*i:                               
                          ,*#+##zzznnnn#i:::::ii**++*****++####+++***ii;;;;::::;;i*+++++########++**ii**+zzzzznz*zn#+::                               
                          `i##z#zzzznnnzi::::;iiiii*++++####++++****i;;;:::;::::;;;*******+++++**iii;iii*zzzzznz*zz#+;,                               
                          .;*#z#zzzznnnzi::::;;;iiii***++++++*****ii;;;:::::::::::;;i*********iii;;;;;;ii##zzzz#*#z#i:.                               
                          .ii#zznzzznnnzi:::::;i;;;ii********iiiiiii;;::::::::::,:;i;;iiiiiiiii;;;::::;;i+#zn#z#+##+i``                               
                          .ii+zzzzzznnnzi::::;;;;;;;;iiiiiiiiiiiiiii;;:::::;;;::::;iiii;ii;i;;;;;:::::::;i#znzz#+###i``                               
                          `ii*#zzz#znnnzi::::;;;::;;;;;;;iiii;;;;iii;;::::;;;;;::::;**iii;;;;;::::::,,:::;+znzz++###;``                               
                          `i+##z#z#zznnzi::,::;::::::;;;;;;;;;;;i**i;::::;;;;;;;,::;*+*iii;;;;;:::::,,,,::*znz#++##+;                                 
                          `;+##z#z#zznnz*;:::::::::::;;;;;;;;;ii***;;:::;;iiiii;:,::i#+**ii;;;;;;;;::,,,::iznz+**##*,                                 
                           :+z#z#z+#znnz*;::::::,:::;;;;;;;;;i*++*i;;;;;;ii**iii;:::;+#+*iiii;;;;;;;:,,,,::#nz+*i+#i`                                 
                           ,+zzzzz++znnn+;:::::,:::::;;;;;;;i*++**i;;iiiiii****iiii;;*#+***iiii;;;;;::,,,,:#n#+*i*#:                                  
                           .+zzzz#++#znn+i::::,::::::;;;;;ii*++***iii***********+z+*i*#++**iiiiii;;;;:,,,,,+##**;*+.                                  
                           .*zzzn#++zzzn+i::::,:::::;:;;;ii*++*ii*+*+znxz+*++++zMMn#++#**+**iiiiii;;;::,,,,i+**i;*i`                                  
                           .*#zzn##+zzzn#i:::,::::;;;:;;ii*+#*iiii*+#++++#+#####zz##+********iiiiiii;;:,,,,:#**ii*:                                   
                           :*#zznz##zznz#i::::::;;;;;;;;i*+#+*iiiii******++####+++***ii*******iiiiii;;::,:,:++*i**.                                   
                           ;i#zzn###zznz#i:::::;;;;;;;;ii*++*iiiii***+++++++#####++**ii*********iiii;;::::,,*+*i*i`                                   
                          `i*+zzn##zzzzz#i::::;;;;;;;;;i*+#**ii*****+#+####++#znzz#++*i*****+***iiiii;::::::*+*i**.                                   
                          ,;*#zznzzz#zzz#i::::;;;;;;;;ii+#+*******+##zzznnn##nnnnnzz#*****++++***iiii;;:;;;:*+*i*;:                                   
                         `:;*z#zzzzz#zzz+i;;:;;;i;;;iii*##++++++++#znnnnxnn#znxxxxnnz###++###++***iiii;;ii;;*+*ii:,`                                  
                         .;;+##zzznz#zz#+*;;;;;iii;;ii*+z######zzzznnxxnxnnznnnxxxnnnnzzz##zz#++**iiiiiiiii;i+*i;,.                                   
                         ,::+z#znnnz#zz##*i;i;iii;iii*+zz#zzzzzznznnnxnnnnnz#nnxxxxnnnnnnzzzzz##**********i;i**;:, `                                  
                         ,::+z#znnnz#zz##+;i*i*iiiii**#nzzznnnnnnzznxxnznzn#+#nxnnnnnnnnnnnnnnnz+******+**ii***i,,                                    
                         ,,;#z#znnnzzzz##+i****i*ii**+znzznxnnnnzzzznnnzz##**#znznnnnnnnnnnnnnnn#****++++**i***i:,                                    
                         `.;#zzznzz#zzz##+i*******i**+nnnnxxnnnzzzzzzzzz###+##znznnnnnnnnnxxxxxnz***++###+*i****:.                                    
                          `;#zzzznzzzzz##+*++*++++***#nxnxxxxnnz##zzzzz#######zzzznnnnnnxnxxxxxnn+**+#####+*****,`                                    
                          `;#zzznnznzz####++###+##+**#xxxxxnxnnnz#++#**#**+##++*++i+#+zxxxxxxxxnn+**+#z####+***+:                                     
                          `i#zzznzznzzzz##+######+***#xxxxxnxxxz#*::i,:*:,::i:::;;:;i;+znxxxnnxxn+*+#zzzz##+++*+:                                     
                          .i+#zznznnz#z##########++**#xxxnxxxn#+;i,,,,,:,.,::,,,,:,,;:*+znxnnnnxn+*+#zzzz#+++**+:                                     
                         `,i+#zzznnnz#zzz####zz##++**+xxnnnnn#;i:;::,,.:,,,:;:,,::,:;;**znnz+zznn**+#zzzz#+*+*i*:                                     
                         `:;i+zzznnnxzzzz####zz###+**+nxnn#z##i;:;;i#i*nii**#++#znzz#+###nz##z#nn**+#zzzz#+*****;`                                    
                         `::i+#znxnnxnnzz##z#z#+##+*++zxz#zzz#*i#+z#xMMMMWWWWWMMMxxxnnnxnnz####nn+*+#zzzz#+++*+ii`                                    
                         `,,i##znnxxxnnzz#z#zzz###++++znz+#zzxnnn#z###znnxMMxxxnnzz#zxxxxz####znz+*+#z#zz##++*+i:,                                    
                         `,:*#zznnxxxnnzz#zz#zz#z##+++#nn++zzxxxnz#+++#zzznnzz###++#znxxnz####znz++#zzzzz##+**+*:,`                                   
                         `,i+#znnxxxxnzzz#zzzz######++#zn+*##xMnz##+++###zzzzz##++++#nxxzzz#++znz++#zzzzz##++*+#i.                                    
                         `,i#znnxxxxxxzzzzzzzzz##z##+++nn#*+#zxxzzz++*+###zzz##+++i**znnzzz+++#zz++##zzz#z#+**#++;                                    
                        `.:+zznnxxxxxxnzzznzzzzzzzz#+*+nn+**+#zn#+;+:::::i;;i:;:::::;;*#zz#+*+#zz++#zzzz###+**##+*.                                   
                        .,i+znnxxxxxxxnzzzznnzzzzzz#++#nn+***++##+;;,,:,,:,,;,:,,:,,::*#z#+***+zz#+##zzz###+*+###*.                                   
                       `,:i+znnxxxxxxxnzzzznnnzzzz#####nn+****++++++i:;:,;,,i,;:,;::*i###+****+zz###zzzzzz#+++#zz#i`                                  
                      ``,;*#zznnnxxxxxnzzznnnnnzzzz###znn#***i*++++++++***ii+**ii+++++++*****+#zzzzzzzzzzz#++#zzz#i`                                  
                        .:i*+#znnxxxxxxnzzznnnnzzzzz#zznz#+**ii*********+********************+#znzzzzzzzzz#++#nnz#+,                                  
                      `.,:;i*#znnxxxxxxzzzznnnnnzznzzznnzz+**iii***+**;i******+++++++++******+#zzznzzzzzz##+##nnz#;.`                                 
                      .,,:;*#zznnxxnxxxn#zznnnnnnnnzznnnn#+****iii**+**i******++++++++******+##znzznnzzzz####znzz#;`                                  
                     `,:ii+##zz##zznxxxnz#zznxnnnnnnnnnzz##*****iiii**********+++++*********+##znnnnnzzzz###zzzzz#*.                                  
                      `:::;***:*#+#nxxxnz#nnnnnnnnnnnznz###+***********i***+++++++++*++++++++#zznnzznzzzz#####z#z+::`                                 
                       ` .:;::i*;*nnxxxnz#znnnxnnnnnnnnzz##+****++++++++###zzz#########+++++#zznnnnnzzzzz###z#i###*,`                                 
                       `..:,:;;:*#zxxxxxnzznnnnnnnnnnnnnnnz#++**++++###zzznnnnzznzzz###+++*+zzznnnnnnznzz###zzi**#+;,                                 
                        .,;::,:;*+zxxxxxnzznnnxnxxxxnnxnnzz#+*+**+++##+zzznnzzznnz###++++**#znnnnnnnnnzzz###zz+..:*i;.                                
                        ,::..,;;;+nnxxMxnzzznnnnxxxxxxxnzznzz#****+++##zzzz+++#zzzz##+*+**+#znxxxnnnnnzz####z##*:`,:.,.                               
                        ``.`,,,;*zznxxxxnzzznnnxxxxnnxxxnnnz##+**+##zz##z#+***++##zzz###++##znxxxnnzzzn###+#z#+ii` .` `                               
                          ...,:*#zznxxxxz##znnnxxxxxnxxxnnnzz##++zz###zz#+*****++####zzz###znnxxxnnnnnnzz+**+#+i,,  ``                                
                         `.,::i+##znnnnn###znnnnxxxxnxxxnnnnnz#zzzz#+#z#+++*+**++##zznnzzzzznxxxxnnnnnzz#i;.;i+i,, `                                  
                         `.,;:***#z##zn####znnnxxxxxxxxxxxxxnnnnzzz##zz#++###+#++#zzznnnnnnnxxxxnnnnnnz#+;,`,.;*;. `                                  
                       `..,,;*i;++**+#+++##znnnnxxxxxxxxxxxxxxnnnnnzzz#+#zzz##z#zzzzznnnnnnnxxnxxnnnnn##*;. `..ii,                                    
                       ``.:;*;;ii;ii*;:;*+#zznnxxxxxxxxxMMxxxnnnnnnnnzz#zzzzzzzznzznnnnnnxnxxxxxxnnznz#+*,,  .`,ii.                                   
                       `.,::;:;,,:;;;,..i*###nnxxxxxxxMxxxxxxxxxnnxnnnzzznnnnnnznnnnnnnnnxxxxxxxxnnnnn#+*..  `.`:i:                                   
                      `.,::,.,,..,,,.`.,****znxxxxxxxxxxMxMMMMxxxxxxnnnnnnnnxxxnxnnnxxxxxxxxxxxxnxnnnn#+i`.   ` ..:`                                  
                        ``,,::,,..```.,:*::*znnnnxxxxxxxxMMMMMMxxxxxxxxxnnxxxxxxxxxxxxxxxxxxxnnxxxnnzz#+; .   ``````                                  
                         `.:;i;:...,::ii.``i#nnnxxxxxxxxMxMMMMMxxMxxMxxxxxxMMxxxxxxxxxxxxxMxxxxnxxnz##+*; ``  `.``                                    
                           `.:i**i+++#;````;+znnnxxxxMxxMxMMxMxxMMxMMMMMMxMMMxMxxMMxxxxMxxMxxxxxnxxzz#+*:  `  `:,`                                    
                              `,;*#znxnzzz+i+#znnnxxxxxxMMMMxMxMMMMxMMMMMMMMMMMMMMMxxMMMxxxxxxxxnxxnz#+i:`   ``,:`                                    
                             `:+nxxxxxnnnnnii*#nnnnxxxxMMMxMxMMMMMMMMMMMMMMMMMMMMMMMMMMxxxxxxnxxnxnzz#+i;;;;i*i:.`                                    
                           ,*nxxxxxxxnnxxxnii*#nxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMxxxxxnxxnnnnzz#+;;inxnnnz+:.```                                
                         .*znxxxxxxxnnxxxxx*i*+znxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMxMMMMxxxxnnnnzz*i;;;zxxxnnnz#++++*i,`                           
                       `;#znxxxxxnnxxnxxxxn*ii+#nnxxxxMMMMMMxMMMMMMMMMMMMMMMMMMMMMMMMMxMMMMMxxxxnnzz+ii;;;zxxxxnnz####zz##i`       `````              
                     `:*znnnxxxxnnnxxnxxxxn+ii*+#znxMMMMMMxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMxxxxnnz+iii;;;#xxxxnnnn#z##zzz#i``.....,,,::::,..,,,,,,,..
                 ``,;+#zznnxxxxxnnxxxnxxxxx#iii*++#nxxMMMMMMMMMMMMMMMMMMMMxxMMMMMMMMMMMMMMMxnxxnxn#*iii;;;#nxxxxnnnz#z#zzzz+i:iiii;;:;ii*iii;::;ii**ii
         ```...,:;*##z##znnxxxxnnnxxxxxxxxxziii*++#znnxMMMMMMMMMxMMMMMMMMMxMMMMMMMMMMMMMMMxxnMxxn#+*ii;;;;znnxxxnnnn#zzzzzz#+ii++++****+****iiiiii****
````..,,,::;;i*+#######znnxxxxnnnnxxxxxxxxxn**ii*++##znxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMxxxxn#++*ii;;;innnxxxnnnnn#zzzzzz#+**+##++*++++++**iiii***i
::::;i*++++############znxxxxxnnnnxxxxxxxxxn*iiii*+++#zznxMMMMMMMMxMMMMMMMMMMMMMMMMMMMMMMMxxxxn#++**iii;;innnxxxnnxnnz#znnznzz#+++++++++*++++*+****iii
ii**++++##############znxxxxxnnnnnxxxxxxxxxx+iiiiii**++#znxMMMMMMMMMMxMMMMMMMMMMMMMMMMMMMxxxxnz#+**iiii;;+nnnnxxnxxxnnz#nnnzz#############+###+++***++
++++++################znxxxxnnnnnnxMxxxxxxxxziiiiiiii*++##zznnxMMMMMMMMMMMMMMMMMMMMMMMMMMMxnzz#++*iiiiiii#nnnnxxnxxxnnzz#nnnzz##zzzzzzz######zzzzzzzz#
+++++##########zzz###znxxxxnnnnnnnxMMxxxxxxxniiiiiiiii***+++####znxMMMMMMMMMMMMMMMMMMMMxxnnzz#+***iiiiiiiznnnxxxxxxxnnznz#znnz###zzzzzzz#+++#########+
+++++#####zzzzzzz###znnxMxxnnnnnnnxMMxxxxxxxx*iiiiiiii********++##nnxxxxMMMMMMMMMMMxxxnnnzz##++**iiiiiii*nnnnxxxxxxxnnnnnzzznnz####zzzzzz############+
++#####zzzzzzzzz####znxMxxnnnnnnnxxMMxxxxxxxx#ii;iiiiiii*********+###zzzzzzznnnnnnnnzz#####++***iiiiiiii#nnnnnxxxxxxxnznnnnznnnz###zzzzzz############+
######zzzzzzzzzz###znxxMxxnnnnnnnxMMMxxxxxxxxn*ii;;iiiiiii****++***+++++++++#####z###+++++++****iiiiiiiinnnnnxxnxxxxxnnznnnnznnzzz#zzzznzz###########+
#####zzzzzzzzzzz##zznxMxxnnnnnnnnxMMxxxxxxxxxxziii;iiiiiiii***************+++++++++++++++*+*****iiiiiii+nxnxxxxnxxxxxnnznnnnnznnzzzzzzznzzzzzzz######+
###zzzzzzzzzzzzz#zznxMxxxnnnnnnnnxMMxxxxxxxxxxx+iiiiiiiiiiii******************+++++++**********iiiiiiiinxxnxxxxxxxxxxnnznnnxnznnnzzzzzznzzzzzz###zzz##
##zzzzzzzzzzzzzzzznxMMxxnnnnnnnnnxMMxxxxxxxxxxxn*iiii;;;iiiii***************+++++++************iiiiiii#xxxnxxxnxnxxxxxnnnnnxxnznnnzzzznnnzzzzzzzzzzz#z
zzzzzzzzzzzzzzzzzznxMxxxnnnxnnnnxMMMxxxxxxxxxxxxn*ii;;;;iiiiiiii************+++++***********iiiiiiiii+nxxxxxxnnnnxMxxxnnnnnxxxnnnnzzznnnnzznzzzzzzzz#z
zzzzzzzzzzzzzzzzznxMxxxxnnnnnnnnxMMMxxxxxxxxxxxxxziii;;;;iiiiiiiii*i******************iiiii**iiiiiii*nxxxxxxxnnnnxxxxxnnnnnxxxnznnnnnnnnnnnnnnnnzzzzzz
zzzzzzzzzzzzzzzzznxMxxxnnnnnnnnnxMMMxxxxxxxxxxxxxxzii;i;;;;;iiiiiiiiiii**********ii**iiiiiiiiiiiiiiizxxxxxxxnxnnxMxxxxnnnnnxxxxnnnnnnnnnnnnnnnnnzzzzzz
zzzzzzzzznzzzzzznxMxxxxxnnnnnnnnxMMMxxxxxxxxxxxxxxxzii;;i;;;iiiiiiiiiiii**i*iiiiiiiiiiiiiiiiiiiiiiizxxxxxxxxxxxnxMxxxxxnnnnxxxxnnnnnnnnnnnnnnnnnzzzzzn
zzzzznzzznnzzzzznxMxxxxxnnxnnnnnMMMMMxxxxxxxxxxxxxxxzii;;;;;;;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiizxxxxxxxxnxxxnxxxxxxxnnnnxxxxxnnnnnnnnnnnnnnnnzzzznn
zzzzznnnnnnnzzznnMMxxxxxxxxxnnnxMMMxxxxxxxxxxxxxxxxxxzi;;;;;;;;;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii#xxxxxxxxnxxxxnxxxxxxxnnnxxxxxxnnxnnnnnnnnnnnnnnzznnn
zzzznnnnnnnnzzznxMxxxxxxxxnxnxnxMMxxxxxxxMxxxxxxxxxxxxni;;;;;;;;;;iiiiiiiiiiiiiiiiiiiiiiiiiii;iizxxxxxxxxnxxxxxnxxxxxxxnnnxxxxxxxnxxxxnnnnnnnnnnnznnnn