``````                     ```                
                                     `              ```` ` `` ```  ````````  ``  ````````` .``````````.`.``.``..`.`.`.```.``.``.`.``..``..``,...`..``.
                  ``         `` ```        ```` .,,::;;;iiiiiiiii;;;iiiii;;;;;;;;;;iiii*++*+***++++++##++##++#z#+++z#z##+*i+##+#+z*xz##+zz#z#n#z#znnzz
       `     `    ``    ``             `  ``.,:;iiiiii*******i*i**+++##++**+*ii*+**++*+zz##z####zzzzzznznxn##nMM##znnzznMn#xxxz#xxMnnxWxxxMMxxMMMMMMMM
                  `     ```   ` ````.``  `,;ii*****i;ii******i*ii*++###++*+++*+##++#+*+z#+*+#+++##z##zzz#nnnz#+#nnnnnzznxnznxxz;znMnzMMMnnMxxzMWWxxMWM
   ``    ``     `       ``   ```      ``,;i**ii*******+++++##+++*+++++***+++++###+##+i*z#++#z####znz#znnz#zxz:.:nnz#znnzznxzxxz,:*i#xnnxnnnMnxxMWMxMWW
         ``     `              ````` `,;i***ii*+****+##+****+*+**++**ii**++**++#++##+i*#++++###+#znz#znzxnzMz,.;xnzznxxn#nx#nxni.,::xxnxMnnnxMxnxxMMxx
         `             `  `..``.**i;:;*+ii*+++**++***+**i*i****iiii*++##+++++***++#++*++++#+++#+######zz#zzn*,:innzz#zzz+z+i::,`.,:,*MzxWMxzMMMnxMWMxx
``     ```   `     `   `  .:;;;i*iiiii*****+++++**+*ii**+#+##+++***+#+++#++#+iii++++*++*+#z+++#+###zzzzzzxn+,,+n#zzzi;i+:;,,..`..;++nznnxMnnxMxxxMMxnx
 `     `     ```   ``  ``.:;iiii*+****ii*++****i+*i*+##++++***+++++#zz##z##++**++###+*+;*+#+++##z##nnnz#zxni,.*##znni..::..`````;,xnzxxxznxMnznWMxMxWn
    ``  `    `` `  `````:;i;ii**#+**++**++*iii*i****+****;:;+++*####nnz###+++++#####+*+i++#++###z+znzz+nz#n.i,:i#zz+:...,.```..`:inzzxxxnnMnxzxMMxnMWW
       `  `` ``````.:;iiiii;ii*++*ii****++*ii*******iii*;i***+##zzz#zz#+++++++####+##+++++++#z#+#nnnz#nxzn:,z;,:i*i,```````.``:i*nnznxnnnnnxnxxxMnnnMM
       `  `  `..:,:;i*+******+****i*+**+++++*++###+++****+#++zz#znz#++***+++++####++#**+*++######zn##nnxx+:i++.::,.````` ``..,#xznznnzznxxnxnMnnxxMnxz
    ``    ``.:;i**ii***iii*+++*i*++++++**i*+#++######++*++++###+##++*ii+*+######zz###+*+*+#####zz#zzznzx#,ii````.` `` ```.``.*nnz#znnzznxnnzxxxznMMMzx
 ``   `..```,i**********iii*+**i*#z###++*ii++++####++**+++#z#*+z#+*****+*+###z#+###++#+#*#zz###znxznxnnz#;z;`.``        ```:*#nzn#zzznnnnnnnnxxnnxxxnx
 ``  `:i+i;;i*+*ii***ii*+**++++#+zzzzz#z+**++++#zz#+++##zzzz#+#z+***+++##zzzzzz#+*+*i**#+#zz###znzn#znii+z:,:```     `````,*##+#zz###nznznnxzxnxxxxnMx
`  `,;i***ii;;iiii*+*ii+++++*i*#+######z##++########z##+#zn#+##+*++++#+#znnzznnzz##+ii+#z###zz##zz#zzi,,#i.`.  `   `   ` `,,,i;:;+i+#n#n#zxxnzxMxxzMxM
  `;*+**+********iii:;*+#+*;;i***+++###zzz#+zzzzznz#z###***+###+++++#zz#zznzzznnz#zn##*nzz##zzzz#zzz#+.*:```  ``          ````..``.,;*+#zzznznzxxnnxxn
,:;ii***i*++*ii*#+*;:;+z+*iii*ii#zz#zzzn##z#zzzznnz###zn#+++####++###znnzzzzzzzz#z#nz+########zz#zzz#+,*,.`` ``             ````  ```.,,i*#zzxnznxxxnn
:;;;i**i++***++++**;,,:;;;i##+**##+#nnz#zzz#zzznznz##znn##++++++*+++#znxnzznxnzznznzznz#+#zzz#znnz#zzz;*,.``` ```                    ```.;##nxn#nxxxnn
i;;*++++**+#+***+*i;,:ii:+z++#+i++++++#nzzz#zzznznz#znn##zzz#+++*+++#zznnzznxnzznnx#zxz###znzzznxz#znn*+#i.```  ``                    ```,+#zzz#znnnnn
**+##++#+***iiii###+++###*+##+#xWWMn+***+++#znzznnz#znz##znnz##z##+#znnznnxnnzzzznzzn#z+zzzzzzznnz#znn###n#:``````                     ``.i*##znnzznxx
+#zzzz#+z+;;i++#nnnnzz#+###+zMW@WWWWWMz**+*+#z##znzznzzzzznnzzzn##+#znnzxMMnznxxzzzMM###zzzzznnnznnnzznnzz#**i:`                      ````.:*#znnzzxMM
zzzznxn##++++#znxnzzzznzz##nxWWWWWWWWWMn##++#z###zznnzzznnnnnnnn###+#zz#znnzznnnnzxMxz+zzzzzznnzznnnzznnn##z+;,.                        ```.;#zzzzznxx
zzznnnzz##+##z##nzznznnnzznMWWW@@WWWWWMz#z#zznzzzz#znznxxnnnnnzz####+####zzzzzz##xzxz##+#zzzznnzznnnzznzz###;,..                `   ``   ```,zz#nxxxxx
nxxnnxxxnzzznnzz#zznnnnzzzMWWWWWW@WW@M#+++xz#zzzzzzznnnxxnzznxn##z##+######znnzzzxx######znnz#znnz##znz#zn#i*+#i.``` ``                 ` ``,#z#znxxnn
xxxxxxxxnnnnnxxxnznnnzzzzzMWWWW@WWWWWM#+*+xnzznnxnnnnnnnnnnnnnz############znnzznxn###zz##xnx#nnnz##zzz#nnz;++nz;```  `                    `.+znnnnxxx
MxnxxxxxnnxxxxxxxnzzzzznznWWWWW@@@@WWx++*+znzznnxxnnxxzzznnnzzz#####zzz##zzzzznnnzz#+#zzznnn#z#zz#++#zzzznn+z*##*,``                     ` `.iznxnnxMW
MxxxxxxxnxxxxnnnxnzzzzzxnxW@WWWWWW@WMx#+**znnznnnnzznnnznnnnzzzz####zzz#zzz###znnzzz##zzxnn#zznz+++++#zzzn##z#++;.```                    ` `.;znxnnxMM
xMMnnxxxnxMMxxnnzznnnzznnM@@@W@@WW@MMMnz#*nnnnznnnnzzzznxxnnnnnz####zzz#zzz#+#zzzzzz##z#nzz#nnnz++#+##znn#+zzz#;```                     `` `.izznxxxxx
xMMxnxMxnnxxxnnznnnnnzznnWWW@W@@@@Wxxxnzz+xxxxznnxxzz#znnnnxMxnz#zzzz#zz##zz#####zz###zz###zznz#+++##zznn#znn##;..`                     ``.;i#zznxMxxM
xMMxnxxxnnnnxxnnnnnnnnnnnW@@@W@@@WWxz+++z#xxnnnnxxxzz#zzzznxMxn#zzzzzzznz##zz#++znz##znnz#xzn+zn#+++zzzz##zz##nzi:.                      `:#znznnxxxxx
xMxnnnnxxxnxxxxMznxxMMxnn@@@@W@@@WWMz+*+nzxxnzxxnxnzzzznzzznxxnzzzzzz#znz##zz###znz+#zzz+znxz+#xz#+#znz##nzz#zz#+;. `                   ` ;##z#xnnnxMM
xxnnxxxxnxxxxxxMxxxxxMxxMW@@@@@@@WWWx#+#xn#Mnzznxnznxnzzznnnzzznzz#znxzz#nx###nnzz#z##zznz#z#zzzz###zn#z#n###zn+.``                     ```:z+xxMxzMMW
xxxxMMMMxxxxxxxxxMMMMMxxMW@@@@@@WWWMxz#+#znxnnzzzznnnnzzzzzzzzzznz#znnz#znxzz#nnz#nzzn#nnzz+zzxn+#zzz#znn##zn#i;.`                       ``,zznnnnxxMx
xxxMxMMxxxxxxMxnMMMMxxxMW@@@@@@@W@Wxnz#zznMxMnzz#znzzznnnzzzzzz#zzzznzzzzzzzzzzzz#zznzzznz#++znz+zzzz#nxz#zzn#;,``                      ``..nxnnnMMMnn
xnxMxxxxxxMMMWWMMMMxxxxMW@@@@@@WW@WMx##nnnxzxxnxzzzzzznnnzzznnnz#znzz#znzzzznzzzznzzn#nzzz#z+#####+#zznnz###zz;.                        ``.;zxnnxMMMnx
xnxxnnxxnxxxxMWWMMxxMMMMW@@@@@WWWWWMMn#z#Mnznxnzzz#zzzznnzzznnnz#znzz#nnzzznnnz#nnMzznnxz#zzn#zz#+++zn#++znz*,,,  `                     ``.##nnnxnMxMn
xxxxxxxxxxxnnxMWMxxMWMMxW@@@@@WMWWWMMxz*n@MMxnzznz##zzzzzzzznnnnzzzzzznnzzznnnz#zzn##znnz#znz#znz+++#z+#zxz#+*i,  `                     ``inn#xxxnnxWM
xxxxMMMMMMMxxMMWMMMMMMxxW@@@@@WMWMMxnnn#xMxnnzzxzzz#zzz#znnnzznnnz#zznzzzz#z#z##+z#zz#z#zzznznzzz#+++##z+z+i*#*,```                     `.zzx#xxMxxMWW
MWMMWWMMMxMMMMMMMMWMMxxMW@@@@@WMxzz#*#xxxz#;i**#zzzzzzz#znxnzznxnnzzzz##xxzz+#####znzn##zznzxxx###++#+z#z++*+#*;``                      `:zn#xnxnnxxWx
MxxxxMWWxxMWWMxxWMWWxMMxx@W@@WWn#+#++#nn#zn##***zznznzzznnnnnxnzzzznnnnnzzz#####+##zz#+#zzzznn#**+**+++#z+*ii**i,.``   ``    ``` `  ``.,;#zzxxxnnWMMzW
MMMMMMMMMMMMMMMMMW@WMxxnM@W@@WWz+zn#znz++xMz+++*znxnnznnxnnnnxzznnnnnzzznz#znz######+++z######+*iiiii*+*+**iiii;::,```       `     ``.:*znzzxxxzzMMMxM
WWMMMMMMWWMMMMWWMWMxz#znxWMWMMMz+xxnnn#**xMz+#+*+xxzn#zznzzznn###znnzzznz#+znz+++#z#+*+++#znz+**ii***#z+*++*i;;::i;.```````````` ```:+zzznzxznxxxnMnMn
WWMxMMMWWWMxMWW@@n+#zz#znxxxxxxz#xxnzz++*zzz+++**Mxznznzzznnnnzzznnzz#zzz#znxz+#+#zz+****#znz*ii;;ii*+#+i**i::,:;ii;,``````     .``,+znn#zMxxzMMWxnMM@
nxxxMMxMMMMMMWW@W#+znz#+nnxxnnxnzzzn#z##+++#*+++*Mnznnxnzxxxzzzznzzzzzz#zznnz#+###zz+++*+zz#+***:;;;iii*;ii;:::::i*+*:.`````````,::*#zznznnMnznnxnnMWW
znnnxxxMMMMWWWWWxnMMzznznnnxnnnnnzznzxx##+++i*++*nnzznnnnxxxz####+*#zzz###++**+###z####+#z#++++*;i;;i;:;;ii;::;;;i**++i,.....,::*#z#znnzxxzxznnzxxMMxn
nxnnnxMWMMWWWMMMMMWMnxxnxnxxnnnzznnxMMMn#++*ii++*znnznnnxnzzz+###**+#+**++*i**+##zzzzz##+++***ii;;;::;::;;i;::::;iii*#+*++####zznz#nxz#nxxM#xzMnx@M@zW
xxxxxxxMMMW@WMxxMWWMMMxxWxxxxnzz#nxxWMMMziiii;++*#nxzzznz+;+#**++**##+*+++*****#znzzzz##++*iii;i;;;;:ii:;;i;;;;;;ii***+##zzzzzzzzzznnnznxMzz#nz#nMWMxx
MMxxMxnMWWWWWMMxWWWWWWMxMxnnxnnz#zxMMMMx#++*i;*#*+**iii;;#n#ii***,.:i**+*+***+##nnz##+*#*iii;;:;;;;;;iiiiiiiiiiiii**++##n#zznnz#znxnzzxMnzxnxznMMxnM@W
MxxxnnxnMWWMn#zzWWWWWWMxxnzzzzzz##zxMMxnnnz+i;;i;ii*+#nxxMMx+ii*;,:;i*++++++++++*i+zzM@Wi:;;;;;;i;;iiii**+++****i**++#zzzz+znzn#zxxxzxxMnnMxxznMMxzW@@
nz#znnzz#znnz###WWWWWWMxnz#+++##+#nxMMxnnn#*i;i*zxMW@WMMWWMx+***i..:i+##+**+#+**nM@@@@WW+:;;;;i;;iiii**+++++++**+++++###z#nzzn#nzznzxnxxnMnMznzMxnMxWM
+++#zz###++++++*W@WWWWWxnz##+**++#nxMxxn#++++#nxMMMW@WMMMWWWzz#*i.,i****i+#+*##+W##WWWW##;i;;;*ii*+**+###++#++++#z##+####nnn#+znnzzxMnznMMxnxnMxzzMWxM
;;#n##z#z#+***+#M@WWWWWxnnzz#***++zxMMnz++#xMWW@WWMW@W@@WMW@n#+#;.:i;::i*;;+#i*zMM@@@@#Wzi+*+*#+**+++++z#+++++++##++####znnz##znnzzMMxnxMMnnxznzznMWxM
:;+z####z##+++##M@WWWW@xxnnnz#****zMMMMn#znW@@MMW@W@@@WWW@@@x#i*:...:ii*++*+#nnnMW##Wxz*+i********+**++#+++***+++*++####n#z##nznzznzxnxxnxzMzn#zxnMxMx
;iii##+####zz#+*x@WW@W@Mxxxxxnz#++nMxMWMnnnMMWxnMWMW@##@WW#;:::ii;:;#n#+i+++++#znx#**ii**i+*****i*+**++*+##++###+++#z##z#z+znznznxxxzxnxxnxxMnnxxxzMMW
ii;;i++++++###++x@W@@W@MMxxMMMxnx#nxnx@MnxnxM@MnW@@@##@Wnzi;iii##zz##+*#z#++##*i*;;ii***ii***+++***+##++*##++##+**+##++z###zznzzznxnnzxxxzxnxzzMMMnxWM
*ii;;i*;;ii*+***n@WWW@WWMMMMWMMWxxMMxMWWxxxMWMznz#+Mxx#*+**+#++n##+#zxxx#+***;;;i**ii***i***#z##**++*++###*+*+**+#+++#z#+######zxzznxxxnnxnxzMxxnxMMMM
+#*i**iii;****i*n@WWW@WnMWMMMMMWWMxMMMWWxMMz##**##+nz#+*#++++*+#zx#nzMW@x++##;:;*****+++*+++####++#+++*+*+***++++#++++#++##+++#znzznnnzznnxnxxMxnMWMxx
**++**i;*+******x@W@@@M+xWWWWWWWMxMWWxxnn#**zWWnxM@@x#+++#+*#zxMM@MWznnW@Mznn+i*++++++++++###++##++++*iii*****+##+*++*+++++++##n##zzzznnnxnnnMMxnxMxxx
;i+#*i*i+#***i++x@W@W@M*#MWWWWMMMxMMMxxxnzz##nW@@@@W#*##nxxxMMWW@WxxWxnzWMzz#z+++***+++##+#zz++#z##+**iiii+iii+##+*++*++#####++###zzzzznnxnxnxxxxxnnxM
i******#z+#++#*+x@@@W@M**nWW@@W@@@@@WMn#z###+zMWz##znx@@###@##@#@MMnWnxz*++++z#**ii*++###++zz++#z##+**i***+i**+##+*++*+#+####+*+++####zznzxxMnxxMxnnxM
+*ii++###+####++n@@@W@M+*zM@@@WWMxnznMMn*+++++z#++zW###@######@#@WMM@xn+*+++++**ii*+##+##+#z######z#+*i***+*++++##++++++**+##++#+++##zzzzzxxxnxxMxxxxn
+ii**##*i*i##*+iz@@@@@M++#nxnz###++##zz#+###z##*+#z##@@@@#@@Wn#+zMWWxz###+++*ii***+#z#++z####zz#+#z#++**++#++#*+##+++++++++++**#z#######znnnnnxxnxMxxn
*+*i*#++*i+##+*+z@@@@@x+#**#++##++##+*++zxx@@Mxx###@@#@@#@xz+***+nnn#+++**+++i****+###++zzz##zz###z#++**#+#+*#*+#z#++##*+++++*+###++##z#nnx#nnMxzxMxnx
i***++++++#++#++n@@WW@n++#znz+++#xMnzx@@#@@#@@#n#zx@#@@#z+***++#+*####*+#+#+++*#++++++++#*#zz+z##zzz#+#z##z#+++##+##**+++++**++*++++++#znzznxnnnMxxxxx
ii+#*i*i+#*++*z##nzzM@WxWW@WMnzzM@##@###@##@@@@xMW@@@@@##++++++++*+###++#++++++++++#####++##z+#zz##zzz#z##z#+#+#####++#++++++##+*+#####zz#znnnnnMxxxxx
ii**i;i*++++++#z+x@@@########@@@#####@@@@@WMWMzn@@@@@@Wx**++++++++++#+*+#++++#+++++#####+#####+zz#+#zzz#z#z###+#####++##++++#z#+##z###zz##zznnnxxnxxMM
i*ii*ii+**##+#+#zM###@###########@@@@@WWxxxnxxzMWMnzzxxz**#++#+++++##+++++#++#++++######+###+#+########zz##++#+++#zz+*#z+++#zz##zz#####z###zzznxnnxMMM
+ii**++ii+*##+#+#x@W@@#@###@@@@@##@@@@WMnMMnnMxxnz#*i*#z###++++***+####++##++#+++######+####*+#++####+###++*+++++znz###n###zzz###zznnnz#zzzzzznxznxMxx
+*ii*#+*i*+####++x###@#@@@@@@@##@@@WW@WMxMWMxMnzz###+++#z##++#+**++###+*++z#+++++#####++#++#*+#*++++++###++++++++#zzzz#z##zzzzzz#zznnnzzz###zznxnnxxnn
i*i;***+**#++z+##zx#@@WW@@@@@@#@@@WWWWWWnxxMMxnzzz#++++#nzz##z#++#+##++*++##++++++###+++#++++##+++++++###+++++*++###zz##+#zzzzzz#######z#+++##zznnnxnn
ii*+i;i*##+**+##**z##@W@@WWW@@@@WWWWWWWMnMnnMxn######+++z#zz##++####z##*++##++++###+++#####+z#+++##+++###+##++**+#####+#+#z#znnz#zzzz###z##+#zzzxnnnnx
;*++i;;i+*i*+i++**+M@#W#WMWxMWx@WWWWWWWWMMxxxxnzz######++#zn##+##zzzz#+**+#++++**###+##+*++#######++###+##+++**i+##+++###z##znnz+###znz######zzzxnznnz
*++**i***i+ii+*****zn@#M##*#z+#z@WWW@@@@@@WMMxnzz####zz++#zz#######+++**+++##++**+++++++*+*+++######++++###+++**+++++++####zzzzzzz###zz#+#####znnnznnz
++*i*+**iii**iii++**i+***;;i**i#@@@@@@@@#@WMMxnzz####zz++###+####z#++++++*+##++++++******+*++*+++++++**+##+++++++**+####zzznnzznnzz#zzz#z###znzzznnnnz
+*ii*++*;ii++iiii#++**i#*;i;i*iz@@@@@###@@WMMxxnz##zzzz+*##########++++*+*+##++++******+++*++***++++#+++##+++++++**+##zz#zznzznxnzzzzzzzzzzzz#zznnnnnn
++**+++*ii+*i+i*+***;**i*+***i*#@@@@@@@@@@WMMxxnz#znnnz#*+#z#++#z#####+**+++++++*******++++++++*+###+*+#++##+++++++++#zz##zzzznnzzzzznnnzzzzzzznnxnnnn
++++*******ii*++iii*++**i++****z@WWW@@@@@WWMMxnnzzznnnz#++###*+##++####++#+**+++**i*++++++*++++*+###+++#+++++++++##++###+#zzznnnnnzzzznnnzznxxnzxxnnxn
*+++*i**++;**i++ii;+#*;*;i+i;iin@WWWWWWWWMMMxxnnzznxxnz#+*+*+i*+*i*+**+*+++****+****++++++++**+*##zzzzz#++++++######+###++#zzzzznnz#znnn#znnz#znxxnxxx
i*++*ii*#++i*++***i*i+*ii***i;+M@WWWWWMMMMMxxxnnnznxxnz#+**iii**ii+#*i***iiiiii*****+#++##++**+++znz###++######zz########++#####zzz#znnzz##zznnxnnnxMx
z#++****i**+#+**++#ii;**+iii***WW@WWWWWWMMxMMxxxxxMMMxn#++i;i*i;;iiii*+#+*****;i**+*++##z#+++**+#nnnz+*+++#znnnzz###zz#+#+++++#zzzznz##z++++++**####zz
z#+*#++i+i*#*i***#**i*i#iiiii++W@@WWWWMMMMxMxnnnxxMMMxn#++*;iiii;;*ii+*+*iii**ii****++##********#++++*+####nxMn+###++###+#z#+###+++##+**iiiii;;;iiiiii
#z##+#++*+#++**++*+***++*i*i+*#@@@@WWWWWWWMMMMMMMMWWMMxz++*;;;;;;i:;iii;;;i;;iii*i**+**+*++#zz##i:;ii*+++#nxxnnz++++++###zz##++ii;;;;i;;iii;;;ii;;iii;
z++*z++**##*+++++*i#i+**+**+i*+@@@@@WWWWMMMMMMMMWWWWMMxz##*i;::;i::,:i:::;i;:;;ii;ii*i;;**+#####*iii*+#+#+#zzzz#++###zz#z+*++*i;ii;;;ii;iiii;ii*;:i*i;
+##z***#z*i*i*##ii*iz*ii**#ii;+xW@@WMMMMMWMWWMWWWWWWWMxnz#+i;;;i*;;:;i;;:;i;::;i;:;;i;;;iiii***+++*i+##zz##+*****+zz###zz+**#+*****iii;;;iiiiiiii;i*ii
##z##++*#+ii**++***+++***+++;i*nWWWMxnnnxMMWWMW@WWWWWWMnz#*iiiiiii;ii;*ii;i;;i;;;;;:;;ii**iiii**#z#+znznxz+++++*####++++++***+****i;;;;i;;ii*iii******
*###*****+**++i*+i+***#*+**++*zxWMMxz###+##zzzxWWWWWWWMn##*;i***i;*i;i;**;;;i*;;;ii;;;iiiiiii;;ii***+++**+zz###zz+**++++###++++**iii;;i**i;i*i;;iii;;i
#++++****;*+*iii*#*i;**#i*ii*#xMWMxnz#+++++#++x@WWWWWWMnz#*ii++*;i**;:;**;;;ii;;:i*;i;iii**+*i;;i;;;:i*;:;+zz#+ii;:;i*+#+*i***i*ii*++ii*#*i***iii**i**
+##+#z+ii**#ii;i*#*i;i**ii*;*nMMWMxnz####+++++M@WWWWWWMnz#***+*iiiii*ii*i*iiii*;*i;;;;;;iiiiiii*iii*iiii**+#zz+**i;;;i+++++#+*+z#++##****++*ii*+ii*+++
#+++##++i*+*+ii*+;**i*i;*i**+nxWMMxnz######+**M@WWWWWWMnz#+*******ii***iii+*i*i*ii;iiii;;ii;;i*i;;i****+#++##+****+**##z###zz##zzzz#+++**++*ii*+**++##
z####++##**+;*#+****#iiii++*#MMMMxnz####+##+**M#WWWWWWMnn#++*ii***iii**i;***ii*+****+**ii**;;i*ii;iiiiii**+###++zzMxxxzn##++####+++**++*****ii**++++++
+zz#++++z*#***n+i+*+#iiii++*zWMxMxnz###z###+*+x@WWW@WWMnz#++*i*+********i*i**;****+****+++++++++***i**ii;*+####+i*###z+###+++++**i*****+***++*ii*++**+
+zz++++++#++##*++i++*+i;**i#MMMWMxz###zz##+**+n@WWW@WWMnz+****+*iii*i;i*+iii**iiii*iii*++++#z######++##++****ii*+*iii***zz#+*++++*+#+i*++**+++*i*++***
+##+++++*+#*z***++**i++++iizWWMWxnz#####z+*ii*z@WWWWWWMnn+*i*+*iiii*i;;**iii**iiii*iiii*****++#+#zz##zz####+**ii**ii**++##+*ii*+**+++*++#+++++***+++++
++**++**+*+zi****#iiii+#***nWWWMxnz#####z+**i*#@WW@@WWMnn+*****i****i***i*i**;*i******ii***ii***i**++####zz##z#*+++***ii;;i+*iii*++*+##++++++++++++++#
++*+##*iii+#+***+i+**++*+**xWMMMnnz######+*+*i+@WWWWWWMnn+***ii*i**ii**ii*+*iii**i;i*+*ii***ii**iii**iii*i;ii****i+ii*i+*;;i***####+###**+##++##++*+##
**++++#+*#+*##*#+*****iii+#WMMWxnz######i*+**i+@WWWWWMxnz*i**+**+iii*+**i***i;i**i;i**i;i**ii;iiiiiii;;;*ii;;ii*ii*****iiii******+++**+#++++++++##z###
+++++*++#*++*+#+***+++*i*+zWMMMnnzz#zzz#ii+*ii*WW@WWWWMxz+*****++iiiiii*iiiiiiiiiiiiiiii********iiiiii*i;ii*iiii*******************+***+#+++###++#####
+#+i*ii+#i**i+z+ii*++*****xMWWxxzz#####+**+*ii#@W@WWMMMxn+*******i**iii**iiii*iii*+*i;i+iiii*ii;***i*+++i*+++*****i****i*******+*ii**ii*+**+##+++###+#
+#+****#++**+++++******+*+MMWWxxzzzzz##++**ii*z@@@@WWWMxn*iii**iii**iiii**iii*iii*+*i;i+*ii****ii****++*+++++***++*****************++**++**++##+######
+*******i+*i+i;i**iiiii**+nznzz+++++++***;;;;i+znnnzzzzz#i;;i*i;;;iii;;;;;;;;iiiiiii;;;ii;;;;i;;;;iiiiiiiiiiii**********iiiiiiiiiiiii**iii*******+++++
. `.``. `````` `````` ```....`.`......``.` ````..```````.```````` ````````````````````` `````````````  ``` ````````````````````````  ```````  ````````
           `  ``       ` `    ``  ```````             ```     ```                                                                         `           
 `  `  `        `      ` ` ``` `   `````      ` `     ``.    ```` `  ``     ```   ``   `    `    ``  ``                        `