########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
#####################################################@WWW@##############################################
#############################################x;:;;:,.`   `.in@##########################################
############################################M`               ,M#########################################
############################################i                 :#########################################
###########################################@`               ```#########################################
###########################################M               ,;* W########################################
###########################################z              .Mnn`@########################################
#########################################;*+              *Mi+`W########################################
########################################M`+*              `n#n*@########################################
######################################### *+              `z#*:@########################################
########################################+ +#              z#i+;@########################################
########################################* in              .+Wn+#M#######################################
######################################### :M              `.n+:@,W######################################
######################################### .M              `,xnMW`M######################################
########################################n  M`             +@M,zx`M######################################
########################################M  z:             ,*n;W#`W######################################
#########################################` i#             ``x;@*.#######################################
#########################################, ,W`            *nMi#::#######################################
#########################################; `@:       ```  `.*:M`i#######################################
#########################################+  xz    `*xMMWMnii+xn z#######################################
##########################################  z@,   `;`  `.#@@,W; n#######################################
#########################################n `WzM.          ,zMx` ########################################
#########################################W`,M`zM,        `.;x,  i#######################################
##########################################..x` ,##` ``:izW@@++` i#######################################
##########################################;,++,`#W:,M++*,`:Mz.  +#######################################
##########################################+:@M#*i`;@Wnxx:  `    z#######################################
##########################################z *M    ..` ``        M#######################################
##########################################M ,@.                `W#######################################
##########################################@``W;                 n#######################################
###########################################` n#      `:  ``:i;.`M#######################################
###########################################. *n    ,+WW*+x@@xW@W########################################
###########################################: ;x #xn@W+*iiii, `.`x#######################################
###########################################; .W`,ii@:           M#######################################
###########################################* `W`  +x ``,zM,    `W#######################################
############################################  x.  W@nn#xz.   .,;########################################
###########################################z  n.  i.`       .#+#########################################
###########################################x  #.             ` .@#######################################
###########################################M  `             .*#n########################################
###########################################@`               ..  M#######################################
############################################.                 `.n#######################################
############################################.                 `#W#######################################
############################################. ``                ########################################
############################################, i:              .;x#######################################
############################################, ;*           ,*z##W#######################################
############################################: :+          ;#;```*#######################################
############################################; :*            `n#in#######################################
############################################, ii            .;  *#######################################
############################################. *;            .. `.#######################################
###########################################@` #:              :nM#######################################
############################################+ix.              i+:M######################################
############################################i:n.               .+@######################################
############################################zxM`               ,ix######################################
############################################:,n.                ,W######################################
############################################i.M.                 `W#####################################
############################################in@;                  M#####################################
############################################. n+                  x#####################################
############################################: nz                  z#####################################
############################################. nx                  ;##############M@nxz##################
############################################. zM                  `@#xn##MMW,*#i+:ix.;z*################
############################################. +W                   z@``i;.W;   `n`;#`x,`,n##############
############################################` *x                   ;#,  `zz`  .x#`#`,z` ;@##############
###########################################@` ;n      ;zn#;````.`  +@. .nn`   .,     ``*M#W#############
###########################################W  :z      `.;xW#,z@@Wz;x###W#`           `zx.`;#############
###########################################M  :#       `  `  `.`..,WW*+, .i+##:`     iM.  `W############
###########################################M  ;* `;nMxni`    ,i;   zM` ,z@####@#`    ``    n############
###########################################W` *+ `;,.;x@M+*#M@M*``,@z`z@########M;``       *############
#################################Wn++n######. #*  `    `;:@W*i`  `#@:z##@z*.,:+M##M;       :############
###############################n;     ,x####. z;    .**+zWW,   .,`i@n#@z`       ;@#@#`     `W###########
#############################n,       ``####: x,    `;nWx+,    i+iM@@@*`       .iWM#@+      z###########
############################+zWM#i;,i.  `M##;+M`.                `+@@*  .x#++#x@x,`+@@*     ;###########
##############################@xx@##@;   +##i.n`n.               `iWn`  `*zz+*;,`  `z@@:    `W##########
###########################++:    ,;`    :##z*W`x:                .@*..            ``M#M`    +##########
##########################z`             .@#z`z.zi            `*,,,@Mx+`          ` `i##i    .@#########
##########################,              `@#Wi+.#i            ``  .#W``           +: `M#M`    +#########
#########################W                M#M`;`+*                ,#Mzn`          ;n  *##, *:``M########
##############x++x#######n                x#x:W`*+                ,#@+..          `@, ,##* #@:`:########
###########@*.    .iW####+                n#W`n`i+                ;##+Wi           n+ `W#z .WM``+#######
###########@xz;``   .M###*   :`           ##@n# i+                ;#@+.            *x  n#M  :@n``n######
##########W;;++##.   ;###; ``M;           *##.  i*                ;#Mi**+:         ;W  z#@`  ##*``z#####
#########W.``     `,``M##: ;;@i           :##,  i*                *#@i;,``         ,@` ###.  `M#i;i#####
#########nnn*     innM###: *:#;           ,##;  *i                +#n              ,W` ###,   :#########
########@z+M`        `;##: #,#:           .##i  *:                ##z+#`           ,M  +##,    M@.:,M###
##########;M*`    .,,`:##: #.@.           `@#+  +,                z#x.`            .xn+x##,    z#nMWW###
#########*M+`     nMM;;@#: x.M`            M#z  #.                z#ziz:          `` `.###,    n#,``####
########n,#,``        `@#i M;n:`           x#n  z`                z#@#,        :*nWM+:.n##.  .`M#,  ####
#######W..x`**      ` `M#*`MWMM.           n#M  n`              `,M##.`        :`,i;+,,n##,  xiMx. `W###
#######*  . n+     *Mn#x#Mzzin#            +#W  x`              ,#z#@z:           `i*  n##,  ,MWxz``@###
#######.    n*      . .@#n`nx*i            *#W``M`              .iz#z.`       `:;*zx+ .W##,   xx#xM*####
######W`   ,@i         ##z`n#`             i#@`.W`              `.+#Wz`     *+xMn#,*, `n##.  `M,M,,W####
######M  ` ;#,    i+i;.i#z`+W;             ,#@`,W           `+:` .x##`     `W+`  ``zM+;z#@`  :;#;n,@####
######z .M.i#.   `++**#M#M.++              .@W`,W         ,MW@@: `x#@#      ``   ,.nz``##@`  `*,:.:#####
#######`iW@*@`       +nz@@.,x+,             @W``x.        `:::; `n@#M`           +:*MnxM#@` `+n`ixM#####
######W,n.x*M        ,*x##.z#*              WW.zWz      `+Mzi    ,M#W`           x,`i``;##,.+M.,.i######
######z,@:n+z       `znn##:;Mi*.            M@Mii.      .+:      ,W#i           `n`    i##,,W;`zxz######
######xW*.z**        `,z##i`xWi,            x#i*x*:`              x@.           `z     :##i +x.`z#######
######W,*.zM#       `...##* :M`             n#x,n+xMi,        ,` iW#:           `x     .@#+  ;x,n#######
######z`x.*#z       `;nn##i `M;             n#:`x```:#*      `#*``+@+:*`        `W.     z#n   ;@########
######W`+,:##       *+;.@#+` ``             n#,`M`    `           ;#W`           n+     ;#@`  `;########
######x *:,@n`       .+z@##`;;              n@``x`               :x@#;           :W`    `W#;  ,W########
######M`#@W@@n        ` ##Wx#,              MM  *;                :@#x           `n*     *#n `M#########
#######nxM``+,        `;n##i,              `@x  `;                .@##;           :M     `W#;+##########
######@` .  *,         ,*##x:.             :##   `                 :M#x`           x,     ;#W@##########
######M     ,.          :#@:x+`            *#;                      `z@,           ;*     `x############
######M                 :#@+i              nW`                       .M#           `i      ;############
######@`                *#n               `@+                         iM`                  `M###########
######@.                n#:               iW.                         `@,                   ############
#####nz*              `.@z                z;                           xi                   i###########
#####,nn              `xx`                ``                           +i                   .###########
##### #@`             #z`                                              +.                   `@##########
####. *#;             ``                                               `                    `@##########
###@` .@n                                                                                   .###########
###M   z@,                                                                                  ;###########
###x   :@n`                                                                                 +###########
###x    +@+                                                                                 M###########
###@.   `*@*                                                                               ,############
####x`   `,;                                                                               +############
#####z`          `,                                                                       `W############
#######`         `n`                                                                      *#############
########`     `+i z:           `` ,`                                       ` `,#         ,@#############
########+`   .*;n ;#.:         #;`i# `                                `;#n#:*.nz`       `x##############
#########+``.,W:W.`n,x`.      `;n`.W`z;.i:                           .n@+;``n*@x:      `z###############
##########+`.z##zi`i;x,z     ,;,M;:x*+@x#`                           ++.``,z*:x``     .n################
############`z,M:xi;n*;n```` #x`z`z.#.n+``     :x#,`;`   ```           `izWMMMxMW+  `;W#################
############+i##inix++MnW@x;`,+M@+#+:zi@*`     `Wnx:W;. `x.+.          ,+;#`.x;iz, .z###################
#############n##WMW@########W:`x.xz@+MxW.`    ``+:W*x@W. z#i*`       ``#.+n#;Mx*`.+@####################
##############################+M;;in.***+ `i##:#,.x:n;```,W;x`      `*n@########x@######################
#################################xni#ix;W+MM####z;in*#   `MM##`   `iW###################################
#################################################@*M;M.   ;x`ni``:x#####################################
####################################################WM+`,:.+i.M*M#######################################
#######################################################@##@x@+W#########################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################