+++****iii;;;;;iiiiiiiiiiiiiiiii;;;;;;;;;;::::;;:::,,,,,,,,,,,:::::::::::::::::::::::::::::::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;`                 
++****iii;;;;;;iiiiiiiiiiiiiii;;;;;;;;;;;;;:::::::,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;`                 
++**iii;;;::;;;iiiiiiiiiiiiiii;;;;;;;;;;;;;;::::::,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;`                 
++**i;;;;::::;;;;;iiiiiiiiiiii;;;;;;;;;;;;;;::::::,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;`                 
+**i;;;;::,,,:;;;;;iiiiiiii;;;;;;;;;;;;;;::::::::,,,,,,,,:::::;*;::;i::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;`                 
***i;;;;:,,,,,:;;;;iiiiiiii;;;;;;;;;;;;;:::::::::,,,,,,,::::::++:::++::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;`                 
**i;;;;:,,,.,,:::;;iiiiiii;;;;;;;;;;;;;;::::::::::::,,,:::::::;*:::;i::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;`                 
**i;;;:,,,..,,,:::;iiiiii;;;;;;;;;;;;;;:::::;:::::::::::::;+;:;+;::;+;i+;::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;`                 
**i;;;:,,,,,,,,:::;;iiiii;;;;;;;;;;;;;:::::;:;::::::::::::i#,;;#+;:*z;i+::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;`                 
*ii;;::::,,,,,:::::;;iiii;;;;;;;;;;;;::::::;;::::::::::::;;ii;;zzi:#n*i*i::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;`                 
ii;;:::::::,,:::::::;;;;;;;;;;;;;;;;;:::::::::::::::::;;;;;i#;iznz+nxxxxx#;:::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;`                 
;;;::::::::::::::,::;;;;;;;;;;;;;;;;;:::::::::::::::;;ii;;*zn++nznnxMMMMMx+;::::::::::::::::::::::::::::::::,:::::::;;;;;;;;;;;;;;;;`                 
:::::::::::::::::,,::;;;;;;;;;;;;;;;::::::::::::::;;+nxxn#++nxnnznMMMMMMMMni::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;`                 
::::,,:::::::::::::::;;;;;;;;;;;;;::::::::::::::;;*zxMMMMMn+xxxnnxMMMWWWMMx#:::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;`                 
:::::::::::::::::::::;;::::;;;;;;:::::::::::::*nnxxMMxxMMxnznxxxxMMMWWMMxMx#;::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;`                 
;:::::::;::::::::::::::::::;;;;;;::::::::::::*xMMMMMMMxMMxnn#xxxMMMWWMn*ii+z;::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;`                 
i;;;;;;;;:::;:::::::;::::::;;;;;::::,,,::::;inMMMMMMWMMMWMxn#nxxMMWWM#i;;:,i*:::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;`                 
iiiii;;;;;;;;::::::;;;:::::::::;;::::,,::::;#MMMMWWWWMMMMMxxz#nxxMMM+i;;;;,.*::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;`                 
iiiiiiii;;;;;:::::;;;::::::::::;;;:::,:::;;;nMMMMWWWWWWMMMMn#*+nxMM#*###;;:.i;::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;`                 
iiiii;;;;;;;:::::::;;;:::::::::;;;;:::::;;;*nMMMWWWWWWWWWMMn+;i#zxz*#MMM+;:.:;:::::::::::::::::::::::::::::::::::::::::::::;;;;;;:;;`                 
iiiii;;;;;;;;;::::;;;;:::::::::;;;;;:::;;;;+xMWWWWWWWWWWWWMn:;iz*#+*zxMMni;;*n;:;i;;:::::::::::::::::::::::::::::::::::::::;:;;:;:::`                 
iiii;;;;;;;;;;;::::;;;;::::::::;;;;;;::;;;;+xMMWWWWWWWWWWWWn+z#z+;**+xxMzii*#Mz+zznn#;::::::::::::::::::::::::::::::::::::::;;;;::::`                 
iii;;;;;iii;;;;;;::;;;;:::;;::;;;;;;;;;;;;;*xWWWWWWWWWWWWWWMxz;#*,;*+#nz**+zxMxnxnxnz++;:::::::::::::::::::::::::::::::::::::;;:::::`                 
iii;;;iiiii;;;;;;;;;::::::;;;;:;;;;;;;;;;;;*MWWWWWWWWWWWWWWMxz:#i.ii+nz#nxMMMMxxnnnnz#z*::::::::::::::::::::::::::::::::::::::::::::`                 
iiii;;iiiii;;;;;;;;::::,::;;;;:;;;;;;;;;;;;ixWWWWWWWWWWWWWWWMz+z*:i:inz#nxxMMxMxn#nz#+z#*:::::::::::::::::::::::::::::::::::::::::::`                 
iiiiiiiiiiii;;;;;;::::::ii;;;;:;;;;;;;;;;;;;nWWWWWWWWWWWWWWMMxxn+*;,*znzzxxMxxnxn+xnz##+#*::::::::::::::::::::::::::::::::::::::::::`                 
iiiiiiiiiii;i;;;;;;::::izz*i;;;:;;;;;;;;;;;;nWWWWWWWWWWWWWWWMMMxn#iii*nz+#nxxnznx#nn#*+#z+::::::::::::::::::::::::::::::::::::::::::`                 
iiiiiiiiiiiii;;;;;;;;;i+nxn+i;;:;;;;;;;;;;;;nWWWWWWWWWWWWWWWWWMMxnnnxxMx#+nnxnz#xzzn++**#+:,::::::::::::::::::::::::::::::::::::::::`                 
iiiiiiiiiiii;;;;;;;;;*nnxxxz*;;;;;;;;;;;;;;;zWWWWWWWWWW@@@@WWWWMxnnnMMMMMMMxxxxznz#n+#**zz*i::::::::::::::::::::::::::::::::::::::::`                 
iiiiiiiiiiiii;;;;;;;;+xMMMxxz*;;;;;;;;;;;;;;*MWWWWWW@@@@@@@WWWWWxzznxMMMWWMMMMMxxxnnz#inxz#*;:::::::::::::::::::::::::::::::::::::::`                 
iiiiiiiiiiiiii;;;;;;izMMMMxxx+i;;;;;;;;;;;;;;nWWWWW@@@@WWWWWMMWMxzznxxxxWWWWMxxxnnnnnnzznzz##++*+***ii;;;:::::::::::::::::::::::::::`                 
ii;;;;;iiiiiii;;;;;;*nMMMMMxxn*;;;;;;;;;;;;;;+WWWWW@@@@WWWMxxxMMxzzzxxnnWWMxxxxxxnnnz##########++###+++++++*i;;:::::::::::::::::::::`                 
ii;;;;;;:;;iiii;;;;;+xMMMMMxxx#i;;;;;;;;;;;;;;nWWWWWWMMMxxxxxnnxnzzzxxnnxxxxxxxxnzzzz#################zzzzzzzzz#*i;;;:::::::::::::::`                 
*i;;;:::,:;;;;i;;;;i+MMMMMMxxx#i;;;;;;;;;;;;;;zWMxxxMMMMMMxxxnzzzzzzxxnxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxnn+;::::::::::::::`                 
*ii;;::,,,:;;;;;;;;i#MMMMMMxxn+i;;;;;;;;;;;;;;xWzxMMMxxMMxxzznz##znnxxxxxxxxxxxxxxxxxxnnnnnxxxxxnnnxxxxMMMMMWWWWMMxxn+:,.,::::::::::`                 
*iii;::,.,,:;;;;;;iizMMMMMMxxn#*;;;;;;;;;;;;;ixMzMMxxxxxxxn#zzzz#znxxxxxxxMMxxxxxxxxnnnnnnnnxxxxMMMMMWWMMMWWWWWWMMMMnzz#;,:**:,:::,,`                 
*iiii;:,,,,:;;;;;;;izMMMMMxxnzz+i;;;;;;;;;;;;+Mzxxnznnxxxnnzz#+#nxxxxxxMxxMMMxxxxnnnnnnxxxnnxxMMMMMMMWWWWMWWWWWWWMMMMxxxxxxxxn+i;:,,`                 
*iiiii;:,,::;;;;;;;izMMMMMxnnzz+i;;;;;;;;;;;;#xzxnz#nnnxnnn#xxxzxxxxMMMMxxxxxxxxxxxxxxxxxnnnxxxxMxxxMMMMMMWWWWWWMMMMMMMMMMMMMMxx#*;,`                 
*iiiiii;:::;;;;;;;iizMMxxMxnnnz#i;;i*++*ii**+nnnnzznxxzznMMMMMMxMMMMMMMxxxxxxMMMxxnnnnnnnnzznnxxnnnnnnnz+##xMWWWWMMMMMMWMMMMMMnn+z*i`                 
**iiiiii;;;;;iii;;iizxxxxMxxnnz#*i*znnxxnnxxMxnzznxxMMxxxMMMMMMMWWWWWWWWMMMMxxxxxnnzzzzzzzzzznnnnnnnnnnzzz##nxMWWMWMMMMWMMMMMMMMMMxn`                 
******ii;;;;;iii;;ii#xxxxMxxnnnz*izxnxxxxxxMMxnnnxMMMMMMMMMMMMMMWWWWWWWMMMxxxxnnnnnzzzzzzzzzznnnnnnnnnnnnnnnnnnxxMWMMMWWWMMMMWWWMMMx`                 
**#z##+*i;;iiiii;;ii#xxMMMMxxxxn+#xxxxMMMxxMMMMnnxMMMMMMMMMWWMMW@@WWMMMMxxxnnnnnnnnnzzzzzzzzznnnnnnnnnnxnnnnnxxxxxMWWWWWWWWWWWWMMMMM`                 
**+#nxnz+*iiiiiiiiii#xMMMMMxxxxn#nxxxxMMMMxxMMMMMxMMMMMMMMMWWW@WWWMMMMMxxxxnnnnnnnnnnnnnzzzznnnnnnnnnnnxxxxxxxxxxxxMWWWWMWWWWWWWWWWM`                 
**+#nMMxnz#+*iiiiiii#xxMMMxxxxnnnnxxxMMMMMMMWWWW@WWWMWWWWW@@@@WWWMMMMMxxxxxxxxxnnnnnnnnnzzzznnnnnnnnnnxxxxxxxxxxxxxxxWWWWWWWWWWWW@WW`                 
***zMWMxxxxn#*iiiiii+nxxxMxxxxnnnnxxxMMxxMWWW@@@@@@WW@@@@@@@@WWWWMMMMxxxxxxxnnnnnnnnnnnzzzznnxnnnxxxxxxxxxxxxxxxxxxxxxMWWWWWWWWWWWWW`                 
***+xWMMxxxxxz+*iiii+nnxxxxnxxxxnxxxxMMMMMWW@@@@@@@@@@@@@@@@WWWWMMMxxxxxxxxnnnnnnnnnnnzzzzznnnnnnnxxxxxxxxxxxxxxxxxxxnxWWWWW@@@@@@WW`                 
****zMMMxxxxxxn#*iii+znnnxnnxxxxxxxxMMMMMMMWWWWWWWW@@@@@@@@@WWWMMxxxxxxxxnnnnnnnnnnnzzzzzzznnnnnnnnnnxxxxxxxxxxxxxxxnnnxWWWWW@@@WWWW`                 
***+zMMMMMMxxxxn#**++znnnnnnnxxxxxxxxxxxxMMMMMMWWWWWW@@@@@@@WWWMMMxxxxxxxxxxxxxxnnnnzzzzzzznnnnnnnnnnxxxxxxxxxxxxxxxnzzzMWW@@@@WWWWW`                 
++#nMWMMMMMMxMMxxzzzznnnnxnnnnnxxxxxxxxxxxxxMxxMMMWWWW@@@@@@WWWWMMMMMMMMMMMMMMMMxxnnnzzzzzznnnnnnnnnxxxxxxMMMxxxnnnnz#+*xW@@@@WWWWWW`                 
#nMWWWWMMMMMMMMMWMnnnnnnnxnnnnxxnxxxxxxxxxxxxxxxxxMWWW@@@@@WWWWWWMMMMMMMMMMMMMMMMxnnzzzzznnnnnnnnxxxxxxxxMMMMxxnzzz#+*;;zM@@@@@WWWWW`                 
MWWWWWWWWWWMMMMWWWxnnnnnnnnnxxnnnxxxxxxxxxxxxxxxxxMWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMxnnnznzznnnnnnxxxxxMMMMMMMMxxnz#++i;:,,+M@@@@@@WWWW`                 
WWWWWWWWWWMxxxxMMWMnnnnnnxnnnnxxxxxxxxxxxxxxxxxxMMMMMWWWMWMMMMMMMMMMMMxxxxxxxxxxxxnnnnnnznnnnnnnnnxxMMMMMMMMxnz#+*i:,..,*x@@@@@@@WWW`                 
xnnnxMWWWWMMMxxxMMMxnnxnxxnnnxxxxxxxxxxxxxxMMMxxxxMMMMMMMMMMMMMMxxxnnnnnnnnnnxxxxxnnnnnnnnnnnnnnnxxxxxMMMMMMxz#+*i;,.``,*x@@@@@@@@@W`                 
+++++#nMWWMMMMxxMMMxnnnxxxnnnxnxxxxxxxxMMMMxxxnnnxMMMMMMMMMMMxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxMMMMMMMMMxxz##+;:,.``,+x@@@@@@@@@@`                 
+++**++zxWMxMMMMMMMMnnxxxxxxxxxnxxxxxMMMMxxnnnxxxxxMMMMMMxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxMMMMMMMMMxz#+*;:,,`.,#M@@@@@@@@@@`                 
+++****+#nMxxMMMMMMMxnxxxxxxxxxnxxMMMMxxxxnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnxxxxxxMMMMMMMMMxn#;,,.`.;nM@@@@@@@@@@`                 
+++******+zxxxMMMWWWWxxxxxxxxxxxxMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnxxxxxxxxxxxxMMMMMMMxn+;,`,+xWW@@@@@@@@@`                 
+++*******+#xMMMWWWWWWMxxxxxxxxxMMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnxxxxxxxxxxxxxxxxxxxxxxxMxxnz+inMWW@@@@@@@@@.                 
+++********+#xWWWWWWWWMMMMMxxxxMMMMMMxxxxxxxxxMxMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMWW@W@@@@@@@@.                 
++++*******++nWWWWWWWWWWWWWMMMMMMMMMMMMMMMMxxMMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMWWW@@@@@@@@@.                 
#+++++****+#zxWWWWWWWW@WWWMMMMMMMMMMMMMMMMMxMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMWWW@@@@@@@@.                 
xz++++++++zxMMMWWWWWW@WWWMMMMMMMMMMMMMMMMMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMxxxxxxxxxxxxxMMMMMMWW@@@@@@@.                 
Wx#+++++#nxMMMMWWWW@WWWWMMMMMMMMMMMMMMMMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMxxxMMMMMMMWW@@@@@.                 
@Wn+++#zxMMMMMWWW@@@WWWMMMMMMMMMMMMMMMMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW@@@@@.                 
@Wx#+#nMMMxMMWWW@@@WWWWMMMMMMMMMMMMMMMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMxxMxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW@@@@.                 
@@Mz#zxMWMxxWW@@@WWWWWMMMMMMMMMMMMMMMMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMxxMxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW@@@.                 
@@Wn#zxWWWWWW@@@WWWWWMMMMMMMMMMMMMMMMMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW@@.                 
@@WnznMWWWWWW@@@WWWWWWWWWWWWMMMMMMMMMMMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW@.                 
@@WMMWWWWWWWW@WWWWWWWWWWWWWWMMMMMMMMMMMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM`                 
@@@WWWWWWWWW@@WWWWWWWWWWWWWWMMMMMMMMMMMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM`                 
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::MWWMxxMMMxMMMMxMxxxxxxxxMxxMMMMMnixxz#+******;;:::::::::::::::::::::::::::                  
                 ``                                       WWMxxxMMxMMn*:zMnnnnnxxxxxxMMnn*.:zn+;:,....,.`          **************,                    
  `            ``i*****::*ii**i`         ````             xxxxxxMMxz,` ixxMxnnnnnnxxMz,```,:+*i,,+nxn#i;` ```` `` `@#############i                    
  ``::::::::::;,`:n@@@*..*@@#x:  ```  `  #zi;:,,,.:,.``   nnnxn*ixx,  ,nn;;xzznxMxnM+`````i:*;.i@M+i+W@@. ,::,,,,``@#############i                    
   :zzzzzzzzznni` i##W`  .W##*   ,;::::. #z;,;z#Wxz*,``   nnnz` ;x*` `#x* :xnxx+inxn.`....x:i:;@W,```.z#, ;zz###*,`@#############i                    
 ``n##########@*` i##W`  .W##+   :z###+, ++,i@W:.,iM@M;`  znn+  i#`  *nx; in#*;`.ix*..z:.:x:i,n@#``..``M; :nMWWMz,`@#############i                    
```z##zW@@@n##+.  i##W`  .W##+   ,x@##M: **,x#x`.,,,##*`  zzzi  *,  :nnxi;z*```..:xi.,,.`#x:;,W#z``..``:* .+M##@z, zzzzzzzx#####@,                    
```*ii+M@#W+ii;`  i##W`  .W##+   `*W@#x. ii,W@x``,::.z+   z#z:  :``.#nnn*:#i.`,..:ni,,.`*nx:;:@#@;``.```i  ;n@@@#.        n#####*     .i+#*:          
      :n##M,   `  i##W`  .W##+    iW@#n. **,M@W;`.,::,#   z#z,`````*zzzz..z;.,#;.;zi.,,i+zn:::@##@#.```    ;x##@z.       i#####x    `#@#####M:        
  ` ``:x@#W:`` `  i##W`  .W##+    iW@#n. ++,#WM#z:.,:,;   zzz.`...;zznn#,,n;,+n;,*z::;:::in:;,@####@ni`    ;x##@#.      ,@####@.   `M########@;       
  ` ``:x@@M: `   `i##@+**+@##+    iW@#n. *+;,Mx+MMz:.,,`  zz#....,;znnn#:;n::zn;:#z:::,:;ix:i,x######@x.   ;x##@#.     `x#####i    z##########@.      
    ` :x@#M:      i##@xnnx@##+    iW@#n. i+*::z*nxWWz..`  zz+,,,,,:#zzz+;*n;;xn;:#*,:;i;;in,*:;@#######M`  ;x##@z.     +#####z    :######@######      
   `  :n@#M:      i##W`  .W##+    iW##n. ;z*;,,izzxW@z`   zn+::.:::+nnn+;#niixni;niiiiii,#x:+i.i@######@*  ;x##@z.    :@####W`    z#####` ;@###W      
   `` :x@#W:      i##W`  .W##+    iW##n. ,ii*i:.i#xMW@i   xM+;:;;;i+MMM*;zzi+Mz:;x*iii;,+MM:+i:.,n@#####M` ;x##@z.   `W#####:     W###M`,;+W####.     
   `` :x@#W:      i##W`  .W##+    iW##n. `:+:ii;,.+MW@n   xM*i;x*ii*xMM*ix#,+MxnxMz;,:inMMW:*i:,.`,z@@@#@` ;x##@z.   z######     `##############:     
      :n@#W:      i##W`  .W##+    iW##n. `.z::ii;,`*W@M`  xM*iiWz***zWM;:xxxMWWWMWWMMMMMWWW:;;:,.```:W@##. ;x##@z.  i#####M`     `##############:     
     `:n##W;      i##W`  .W##+    iW@#n.  .i+..:::``nWM`  xM**+Wx***#WMxMWWWWWWWWWWWWWWWWWW:,#.....``;@##. ;x##@z. .@####@,      `#########@Mn#*.     
     `:x##M:     `*##W`  .W##+   `*W##x,   :+;..,.``#x#   Mx+*z@W+***MWWWWW@@@WWWWWWWWWWWWW:.n:`..````M#@``ix##@z,`x#####+        @###@+i:.  ,        
    ``;M##M:      i##W`  .W##+   `+W@#M:   ,n#*:,..iWW;  `Mn+*n@@z***zW@W@@WWWWWWWWWWWWWWWW: #x`..`  `x#x``*M##@n,*#####@+*******,x####;    i@i       
     `+@@@W;     *xWWWz::zWWWx*  .n@@#W:   `zx#*zzx@M;`  `Wz+*M@@x::iz@@WWWWWWWWWWWWWWWWWWW: *#n```  :@@: .zW@@@x:z##############**#####xzzW##@,      
     `;#+#+,     ....````......```.,:,:.`  ``:i;##+;.``   W#;;M@@WMWWW@@@WWWWWWWWWWWWWWWWWW:`;##x:``:M@+` `;i***i.z##############*`W###########M`     
     `.....`                     `````` `                 WzzxW@@WWW@@@@@WWWWWWWWWMMWWWWWWW:.,###@WW@Mi``` ```...`z##############* ;@##########z      
        ``                       ``            `         `MMMW@@@WWWWWWWWWWMWWWWWWMMMMMMWWW:.`+nxnz+:` `` `       z##############*  ;@#########`      
#zznnnzzzzzz.                    ``  `      `.;i......    :::::::::::::::::::::::::::::::::``  ```     ``         izzzzzzzzzzzzzz:   .+M@#@Mz,        
xW@W@@WWWWWM.                  .xxxxxxxxxxx#*WWWWWWW@@+####+**+++++:                +###########*                                                     
xWWWWWWWn*:.znnnnnnnnnMMMMMxxxxMWW@WW@WWWWM++@@@WWWW@@xxi,xnzzznMMxi ............`  nxxxMMWWMMz,#nnnnnnnnnnixnzzzxxxxxx;z#++#zzzzzn.`````````         
xWWMnMW#```#MMMMMMxMMMWMMMMxnzxMWWWWWWWM+;..+@@@Wn*#@@x* `nnznxMxxMi.++++++++###i`  nxxMMMz+*+``nMMMMn+*#MM+xxxxxxn;.,#*xxxxxxxi:;nWWWWWWWW@#         
xW*.`xx.` iMnMMMzii+xMWWMMzi;;ixWWMnzWM;` ,#+@@@Wi;iWWx:`.xxxxxi..x*n##########@*`  zxxMn;`````.nMMx#i;;;#M#xxxn+#.`.`:#xxxnz#.`.`;WWW@WWWW@z         
nM,``x:``:xW+MM+;;;;+MWWMz;::;;+WM,`,M#```zz+@@Wx;;;WWx,`,xxz*;`..+*znnxW##@xnnz,   zxM#.``````:nMM+;;;;;;xnn+:...`....#n#;...`...,W@@WM*iM@z         
nM.`.*``,xWWnMz;:::;ixWWxi:.,::;Mn``:z.``+Mn+@WWz;;;MWn,`*n:``....i*z++#M@@@z++*`   nxx.`` ```.nxMz;;::;;;#nn:```......zz,```......W@@Wz;;nWz         
nx``.``.nMWWWx;:.;:;;nWW#:,+z::*M#``;,``+MWn+WWW*;;;nWn##zn.````..;i   :n##M,  ``   nM+``.+i..:xMx*;,..:;;+nz,..`` `...#z,..````...W@@W*;;zWz         
xn.....#MWWWMz;:*n;;;nWMi:+MMxMMM+``.``;MWWn+WWM;,,;zWzi,*z..`.,..ii ``:n@#M:`` `   nx:..*#:.`*xMn;;,;#:;;*n#...`,*,...z#...`.i....W@WM;;;#Wz         
xz....,*MMWWM+;:zxi;;nWn;:nWWWWWW*.....xMWWz+WWn:,i;+W+..*#.``#*..ii ``:n@@M;``     nx,.,,,...nxx#;::xn;;;*n+..`.#z:,.,z+..`.##,,.,WWWn;;;*Wz         
n+,,,,,:xMMMxi;;nxi:;nW#:;MWWWWWMi...,,zMWWz+WW+:*+;*W*,.++,.iz*,.+i ``:n@@M:       zn,,,,,.`#nxx*;:iMn;;:*n+,.`+zz:,,:z*..`+zz,,.:WWW+:,:iWz         
n*,,.,::*MMMxi;;nn;:;xW+;iWWWWWMM;,,.,,;MMMz+WMi;+*;iM*,,z+,,#n*:,zi`  :n@#M:       zn;,..`,#nnnni;:*Mn;;:+n*,,,znz::,;ni,.:znz::,iWWMi,i;;Mz         
z*:,zi:;;nxxni;;z+;:*xM*;iWWWn#zM::.::::#MM#+Wx;;;;;;Mi:;n*::zn*:,ni`  :x@#W:       z#,.;;;i;iznn;;:+Mn;;:#ni:,;nnz::,*ni:,innz::,*WWx;:z;;x#         
zi;:n#;;;izzni;;;;::nMM*;iMMz;:#x:::n;:;inx#+W#;;;;;;xi:*x*;;xxi;:ni`` :x@#W:       zi:::::::;*nn;;;*x#;::nxi:,*xxz;;,+n;:,*xn#;;,#WW#;i+;;z#         
z;;;nn*;;;+#n*;;;:.*MxM*;;xxi:;xn;:in+;;;*n*+W*:,,,:;zi;+xi;ixxi;;z:   :n@#W;       zi::::::;;ixn;;;izi;,iMxi;:+xx#;;:+n;;:#xx+;;:#WW*;;;;;##         
#i;ixx#;;:;zxn;:,.ixMMM+;;;;:,#Mz;;*nn;;;i#i+M;,*#zi;#i;#xi;+Mxiiin,  `:n@#W;       #;,``.,:;;*nni;;;;;:,#Mxi;:zxx#;;:#n;;:zxx+;;:#WM;;;;;;+#         
#ii+xxxii+zxMMz;:+MWWWWz;;;:,:MM#i;#xx+;:,**+n;;MWMi,*i;zxi;zMxi:+n,  `:n##W;       *;:***i;;,+nni;;;;:,;MMnii;nxx+i;;znii;xxx*i;inWn;,..:;*+         
+,:#xMMxxxMMWWWMWWWWW@WM*:,.:xWM#i;zxxni+zx#++,*WWWz+z*;nni;nMn::zx: ``;M##M:       iiiiiiii,:xxx+;;::,,#MMziiixMM+i:ixziiiMMM*i;*xW+:i#n#;i+         
zzxMMMMMMMMM#+++++####WWM#*#xWWW*,inMMxxxxM#+xnMW@@@@W*ixn,`nMMMMMM*  `*W@@W;       iiiiii;,,zMMMxi:..,#MWWzii*MMxi..*x#ii*MMxi.`*xWi:nWWz:,i         
............`        `####+++###xxMMMMMMMMMz+@@@@@@@@@;:xx#xMWWWMWW*  `*xxxn:       #;::,.,*xMMMWMni:;zMWWWz;,*MMMznxMM#;,+MMx#zxMMx::MWWM#z+         
                                ````````````*MWWWWWWWW*zMWWWWWWWMWW*  `.,..,`       xxz+#nxMMWWWWWWMMMWWWW@#:izMWMMMMMM+,;zMWMMMMMMMxMW@@@@@#         
+#i;:,,,,,,.`                                         ########zz###;     ```        xWMMMMMWWWWWWWWWWWW@@@@MMMMWWWWWMWWxxMMWWWWWMWW@@@@@@@@@+         
+#*:,.,,,..`                                                                        #zzzzzzzzzzz*..`.......zWMWWWWWWMWWWWWWWWWWWWWWiiiiiiiii,         
*i:,+MWMWWn#                        ;zznnnnznzzz;     ``                                                   ,xxxxx.     ............                   
i:,x@+,.:n@W` ```      ` `;nnnnnnnnnMW@W@@@WWWWMi     ````` ``              `.**:,,,...,.`                 :#####,       `,,,  .`                     
;,z@z``.``+@. .,,,.   `,,,iMMMMMMnnMMWWWWWWWx#;..     ,*#*+**;. `;i*********i,z#;,,;+z+;,.`                :#####,    ,#W###@ `.`                     
:,@@i``..``n,`;###:   :zz+iWMMM#i;;+MWWMxxWM,``;i     ,#nznzzi, ixMMMMMMMMMM+,#*,i@n*i*MWz*.               :#####,   ;@######.`..                     
:;@#z``..``:i ,W@@i   i@@MiWMM#;;;;;nWn,`*Mi``.xi     ,#W###@*, #WW@@###@WWW+.+i,W##`.,.*@@,               :#####,  `@#######;`:`                     
,i###+``````, `M@@;   ;##MiWWn;,.,::+W+``++```zWi     `iz@@#Wi. +++#x@@@n+++..*;;@#*`.::,iW,               :#####, `i#########```                     
,;###@M*,``   `x@#;   ;##MiWM*:,+#,:#Wi``+.``zMWi      :#@@#Mi` ::,;n##W+:,:``*i;@@z``,::,+;    .+xWWx+.   :#####, `######W##i``                      
::@#####Wz,`  `x@#;   ;##MiWn;:zMxxMMM;``.``*MWWi      :####Wi.    .#@#Wi`  `.#*,W@z#,`,::,i   *@######@;  :#####,  z#####.    `                      
;,x#######W:  `x@#;   ;##MiW#:;MWWWWWM:....:MMWWi      :##@#Wi`  ``,z@@W*`` `.#+,#MznMz,`,:.  *#########@; :#####,:;x#####;;;`                        
i::W#######M` `M@#;   ;##MiM*:*WWWWWWM,....:xMWWi      :##@#Wi`  ` ,z@@Wi    `*+i,z##xMWn:.. ,@##########W`:#####,W##########,                        
*i.:M######@* `M@#;   ;##MiM;:#WWWWWMx,,,,,,#MMMi      :##@#Wi.    ,z@@Wi    `++i:,i+zxMWM,` z####@nn@####i:#####,W##########,                        
*i,..*M#####n `M@#;   ;##MiM;:#WWWxznn,,.:::;xMMi      :##@#Wi. `  .z@#W*     ;+*i:.;#zxW@x``@###W.  ,####n:#####,W##########,`                       
;;:,.``iW@##x `M@#;   ;##Mix;;#MM+;;nz::i#::;+xx;      :##@#Wi. `` ,z@#W*     :i:ii;,.*xMW@;,####n*#nW####W:#####,W##########,`                       
;;,,.```.M##x `n@#i   i##Mix;;*Mn;:ix#;:+ni;;;#n:      :##@#Wi.    ,z@#W*     `:#,i*i:`:x@@#;##############:#####,,,n#####*,:.`                       
,#....```;@#x `*W@#iii##@MiM;;;i;:,nx+;:#n#;;;iz,      :##@#Wi.    ,z@#W*     `,z;,:;:,`;@@zi#############@:#####,``z#####;.,.`                       
`M:`..` ``W#n `,x@#@@@@#@MiM+;;;:,iMM+;;nxni;::#:      :##@#Wi.    ,###W*      `*i..,,,``nni;######@Mn#*;,`:#####,``z#####;,:.`                       
 nM.```  ,@@*   iW@#@@@@@x*Wn;:,.;xWM*i;nxx+;+zx;     `:##@#Wi.   `,n##Wi       *z*:..``;@W:,####n.`   `*  :#####,``z#####;,:,`                       
`#@M,`` `#@x`  `.;iii;;ii;iWWn*i#MWWM;,ixMMxxxxxi     `;n###W*,   `:x##Wi       ;xz*++*zWW*` W####*` `;W#; :#####:.`z#####;.:,.`                      
`*##@+:;n@x,`  ` `````````:zzzzzzzzznznxMMMMMMMMi     `*x@@#@+,    i@@@W*`      `*z*#nxx#,`` #######@####@,:#####:.`z#####;`.,.`                      
`;@####@M*.`` ` ```                 `...........`     .*xWMWW+,   `.;::;,          `...`     .@###########n:#####:.`z#####;``.,.`                     
 `:i*;:.`  ``   ```      `                            ``..,.,.``   `.``.`                     ;@#########W,:#####:,`z#####;````,`                     
           ``  `        ``                             `````````                   `           :M#######n. :#####:,`z#####;`..`.`                     
                                                                                                 ;#nnz*,   `;;;;;.:`z#####;`...`                      
                                                                                                                 .:.z#####;.,...`                     
                                                                                                                 ,;,;+++++,.,,,,`                     
                                                                                                                 .:,`````.....,,`