+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+##i:+nz,*W##xii:,nWMnznn+i:;i+;,:*++;,,,,...........```````                                                                  +
+*+#Wn:,*Mz#M#:xMWWWn:#ni:ii:+n++*;;*#:,,,.........`````````                                 ,`                               +
+xxn,.iMWM+n#+WWWz+::#ziMMMMMMnxxxn#++;,,,,........`````````         ######.:#               xi       `i#n#i            i,    +
+nM+:zWW+;#x+nn+::;zxM#Mz+#nnnx***+*;+*,,,,,......``````````         xz####.:#               xi      `zxz*nxz           xi    +
+M+zMWz:;zMxxW+;zMWMMn+nn#z#*+#*++*i*ii,,,,,.......`````````         xi     `,  ,`.i:    `:i:xi      *x;   ;x; `,   `, .x*,,  +
+zMMWi:zMMxzMnMWWn#n+M+ii;,,;+#nxnxzz+i:,:,,.......`````````         xi     ix  xnxxxz  `zxnxxi      n+     z# ,x   ix #xxxx  +
+nMMn+MMM#+xMxn*##z**;,`   .`.,,;+z+:.:iiii;,......`````````         xz###* ix  xz. ;x` *x: `xi      xi     *n ,x   ix  xi    +
+MxxxMM#+xMz+xxzz#:.     ;##ii*:,i#;`.:iii**:.......```````          x#iii: ix  xi  `x, n#   xi     `xi     ix ,x   ix  xi    +
+xnMxx+zMz:i+Mxi:`    `;zn+:` ,:,;i,:,:**iii;,,.....```````          xi     ix  xi   x, xi   xi      x*     #z ,x   ix  xi    +
+zMnnxMxi,zWWz:      ,+#*.`.,..,,,;+++++++;;:,,.....````````         xi     ix  xi   x, x#   xi      #n`   `x* ,x.  ix  xi    +
+MMxMzn:iWWM+     ` `.:::#xxMxi,,:+z#+++#*;,,,......````````         xi     ix  xi   x, +ni,*xi      ,xni.*nx` `x*.:nx  +z`.  +
+Mzn#z+zWWi`      ```,:#*#xMMMz;.,*z#******;,,......````````         xi     ix  xi   x, .#xxzxi       :nxxxz,   *xxnzx  :nxx  +
+znz+#*WM,    ``  ``.;i;:, #n##,`.,++;:i*iii:,,..,..````````                              .,            .,.      `,`      ,.  +
+zWii#WMi.;,````` ``:i;,,  .*:.  `.i+;,:+*ii;:,,::,:````````                                                           .`     +
+M##WWWMxMx+::,.`  `::.,.``;i:`  ``:+;i:*#+i;i;::,:x`````````               :,                                         #i     +
+xzWWWMn++zzz##:.  `:,`.`.,..``  ``,+;;i*++*;:;;:.:x````````                #i                                         #i     +
+xMMM#;;#xnxxnnz:  `.,. ``  ``   ``.i**+*****;::..:x+xz:``inz; i# .x` n:   ,xxxi`*nz:     .zxni x#nz:  :zn*` x*xz,  *xxni     +
+xMW#i+xWxMxWn+#+. ``..  `    ` `.`.;+++#+#+*i:,..;x*:++`;z,;x.:x *x:`x`   `z*,`iz::x`    #+`:i x+,*x :n:.z: x*,*z in:.zi     +
+WMx#zxWn inx::;*,  ````       `.,::*++##+#+*i;,,,;x``:x`+*``zi`x,z#+:z     #i  z;  z;    *n*:  x, `x,*n##n* x  ,x #*  #i     +
+Mx#zzMM.  ;:,.:i,` ``````     `.::,;++++++*ii;:,.:x``:x`zi``+* #+n.x**     #i  z:  zi    `;#x* x, `x,+*,,,. x  ,x #*  #i     +
+Wzi*+xx++i,,.`:;:` ``````      `,:;i*+z###*i;:,,.:x``:x`iz`.x: ix* zx:     **  *#``x.    :` *z x: ix`:z` `, x  ,x iz``zi     +
+M#i::;+i:,..``.::`  `.```      `.:;i+zn#+++*i::,.;x.`:x`.#nx+  ,x: ;x`     ,xxi.zxx*     +xzn: xxxx;  *nnx; x  ,x `zxxni     +
+M#*:,,,::,.````:;.  `..``     ```,:i+xnz++*;:::,,...``````..`               `,`  .`       .,   x:,`     ,`          ,`       +
+Wz+;,,...``.```:i,` ``,.``   ````.::*nnz+*+i;::,,...`````````                                  x,                            +
+n##i:,,..``````:i,`  `..```  ````.,,;nnz#**+*i::,....`````````                       ,`        ,`             `,     `i      +
++`*+i:,..``````:*,`   ```    ````.,,:zxz+i;++*;:,.`...```````` i#                    xi x,                    ,x ,x  ,x      +
+#` #*;,,..`````,i:`  `:+:   `````.,,:#xn+**+*i:,,,..``````.;:` +z,.  ,;`  ,`,.`..i`  .``x;,.,   ,`   `,  ,` .``, ;x,,,x`;:   +
+#: i#i,,...``` `:*:.`.#+. ```````.,,,#xn++**ii:,.,..`   `;n#z#`zn#* zz+x. xnx#ixzzx. #i:xz#;x. .x`   ,x``x; #i,x zx##,xx#n*  +
+#i `++;,,...`` `*zz*:;:`  ```````.,,:zxz#++++i;...,,.`   z;`.x.i#  ;z  ** xi  iz` zi #i x,  z* *#     n:;zz x.,x ,x  ,x` ;z  +
+#+`: ++;,,,.``  :+#z#+` ````````..,,:xxzz#zz#ii,,.,,,.  .xxxxx,i#  +xxxx# x,  i#  #i #i x,  :n`x:     +*z:x:n ,x ,x  ,x  ,x  +
+##., `+*:,,.``````,;;.`      ..`..,,;Mxznzzz#ii:,..`.,   z:    i#  ;#     x,  i#  #i #i x,   nzz      ;zx`+z+ ,x ,x  ,x  ,x  +
+##i . ,+i::,......``    `.;*##:...,:*nxnnn+##ii:,,.``,`  *z;;#,.x::.x*:*+ x,  i#  #i #i +#:` *x;      .x+ :x; ,x `x;;,x  ,x  +
+### ,  ;+i::,..,,.``` .;++**;`...,,;+#zxxz*+#ii:::,``.    :+#*` i#* .*#+: #.  :*  *: *: .*#. :n`       #: `#. .#  ;##.#  .#  +
+###. :  ;+;:,,....,i+++#i` `.``.,,:i#i*xxz*++**;;,,.``                                       #*                              +
+###+ :.  i*;:,,,i#z#*:.  `,,...,,,:##;;#n#*++*ii;,,.````                                    `#`                              +
+####` i`  i*::;+##i,`  `,::,....,,iz+:;*+i*++*i*i,.,````   `                                                                 +
+###z* ,:`  :i,,,.:;;::iii;:,.....:##*::ii,*++***i,::````````                                  `*#n#+:`   .+zz+,    ###+i:    +
+###zz, ,.   ii:,,,:;ii:,,,.````.,iz#i::;:.i++++*i,;:````````                                 .nx*i*zxi  :xx#*xx;   xz##zxz`  +
+###zzz. ;`  .;;i;::;:,`     ```.:#z+;:;;:.:++++*i,:,````````                                 zn.    :: `zz.  `#x`  xi   ;x#  +
+##zzzn# .:     ,+;:,.     `````,*z#+;;;;:.:**++*:,,.````````                                .x*        ,x:    .xi  xi    *x` +
+#zzz#+#i i,     .*;,,,````````.;###*;;;i.`,***i:,,.`.````````                               :x,        ;x`     x*  xi    ,x: +
+zzz#**+z:.*.     ```...,,.....;+#z#*;i*+;`,*i;:,,.```````````  ``                           :x,  #xxxi ix`     x*  xi    ,x; +
+zz#iii*#n,;+`          `.,,::ii``+#**+*+;..i;..,,.`..`````````````                          ,x:  :iixi :x,    `xi  xi    ;x. +
+zzi;i***#n,#;              .,:.  .##+++#,`.,,...,.````....`````````                          nz`    xi `x*    ;x,  xi   `nn  +
+z*iii++**##*z,``              `.` *z##z*..``...,.```..`...``````````                         :xz: `:xi  *x#:,+x#   x*,,izn.  +
+*;iiii+++*z+#n*:,``            `.``z#zn.......,,...........`````````                          :zxxxx#,  `*xxxx+`   xxxxx+.   +
+::;iiii+++#n+nxn#i:.`           `` ;nn;.,......,.``...`....````````` ``                         `,,`      `,,`               +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++