`::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::` 
 .+++++++++++++++++++++++////:-----------:////++++++++++++++++++++++++++++++++++++++++++++++++++++. 
 .+++++++++++++++++++++++   /ohMMMMMMMMMMy  - --/+++++++++++++++++++++++++++++++++++++++++++++++++. 
 .++++++++++++++++::..+++///+-```````oymmdNNNhNo+-.::::::/++++++++++++++++++++++++++++++++++++++++. 
 .++++++++++++++.`.+ys/+++NMMNs:+dd::hdNMMMN+`.sd/  .yy::.`:++++++++++++++++++++++++++++++++++++++. 
 .++++++++++++++.`.:/:-oosymNNMMNmmdNMMmdNNhy--`..-/odh++ys:.-//++++++++++++++++++++++++++++++++++. 
 .+++++++++++++++/::+/-::----/shhyy`/so+/+Nm+ -`.-sMMMhm++---```//++++++++++++++++++++++++++++++++. 
 .++++++++++++++++:--:+++--`  +Mmss --/++:``- +odNdsso`:-symmdm+  /+++++++++++++++++++++++++++++++. 
 .++++++++++++++``::..---.....-:--+++++/:- -hhyy:`.-:ssNNMdmdso`   `:+/::+++++++++++++++++++++++++. 
 .++++++++++++++..``.-:++++++++++////.`-:-`:`-/+oooosdomhh/:-.:/do` -:/+-``::/++++++++++++++++++++. 
 .+++++++++++++++/::-..----------`---.`+yyyo-+/o/+/-:ooo++/yhdNhdo--sdmmyyo  ://++++++++++++++++++. 
 .++++++++++++++++++- `-./////:-. --:/odmdNoo-`+sdNNNNhMNNhdmdms//mNMMMMMNss.` .-:++++++++++++++++. 
 .++++++++++++++++++- `-+o:--/+/. --+.`/yy+.:  shmMNdNyhoo++oo+oNNMdNMMNdMhMs. `.`-:++++++++++++++. 
 .++++++++++++++++++/-. ../++/:-`-``` `` ./+Noo:-/+//:-ssmdmdhmdMMMNMMMNdMhMhmydh/  ::/+++++++++++. 
 .++++++++++++++++++-  `yo.`````.:. --oyyhmmm--.```.:``MMMdmmdNhMMMmNmmNdMhMhNMMmo:-  /+++++++++++. 
 .++++++++++++++++++-   .`+o:...-/. ::/-.-/..   .:::: `ssddmMMNmMMMdNmmNdMMMhNdmmdm+  /+++++++++++. 
 .++++++++++++++++:-` ``:`../so+/.``-::. `::oooodNd+../  shmMMMMMMNhmhhmhMMMhNdmNmm+  ///+++++++++. 
 .++++++++++++++++.  -syNo-/::+dNmo-//oo+sNNMhssmMMmhm+  shmMMMNss-.ssosyNhMhNdmMMm+  ``:+++++++++. 
 .++++++++++++++++.  `.-hy:odmNMMMmsyooshMMMMM/:-.+ddNo  ../oydy  hmNmhs+y/oomNNMMNmm::```-+++++++. 
 .++++++++++++++/:`  `-- .++dNNMMMMMMs+/odmmMMMMm+.`-o+yo. ``-:   hd+.-+sMMMhNMMmdMmMhh.  ``.+++++. 
 .++++++++++++++`  :o+/:  yhNmmNdMNMMmh+:/smMhMNMmys+--.`  ```.   --oshmdMmmsdmNmdNy//ds.    ..+++. 
 .++++++++++++++`` .-.-`  osmdmNdMhNso-`-+oNNhMdNmmNdmyo++.   ````+os++syNsssssssss:++s:`    ``//+. 
 .++++++++++++++--`-/sd+  ``ohmmhhoo`   ``./ooy+yhdmdMhNhh-  `----ooooo+sNNNNMddds++h/so.   .yo``:. 
 .++++++++++++++`  -+oy+    /o+/::`` `` .-  ` -`..-+ods--:-/osdddddyhds--ooooyshdddoo..     .ho  `  
 .++++++++++++++`    .ooo   ``     ``+:-/o/+-`--.``.`.   ymNMMMMMhMdNMMNdMMdd/.-//+++..     .hsh:`  
 .+++++++++++/.. +oso/ooo-oos/`    yyNdmMdoyyhNmhs+... ssNMMMMMNMhMmNmmNmMhys.```.:..       .hhMhyo-
 .+++++++++++/   oyys+-.-.::++-    hhNNMMmhh+hhdNNmdy  MMMNMNmNhssNMMMMMNMhMhy+/:..       ``-hhMNNy-
 .+++++++++++/.. ../oydsmy///-     //hdNmdNdyyohdyo/.  MMMdmdss/yyNMMmmNdMNMhho+:``     -/smmMhMd+-`
 .+++++++++++/`` -:sdmMMMm:-sy:      oymmdNhMhmy+oo:`  MMMdmd/ `yyNMMdyyommMhho+-     ``ohmMNh+s/:` 
 .+++++++++++/   shmNNMNoo-`` `.       :oymhMhMhyo:/:  /:hmmh/ `ooNdNd+.:dhMhh+/-     yhNho+:- . .` 
 .+++++++++++/   shmmdNdMNy--.           ./+yyNhmdhd+` /--`  `-```+++:/syNhNys-       yyds+:     :-`
 .++++++++++//   sys+/ooNhMyo-       .`   ``--+++++o+/--``   `--///`  `-:+::``        :.-.`.   ++my-
 .+++++++++:`` oodho/- `oodhds:-     ://:..   ``-://++++//.     ```    ```            .``   `..hhNy-
 .+++++++++:   hhNdmd/  :/syho/+-    ``-::- `     ``.::+++:-.                           ``:+omhMMMh-
 .+++++++++:`` ssmdmdo-  oyyyydNh``       ``+``        ..::-.                           ohmMMMhNymy-
 .+++++++++++/   shhy++-- ++hNh++++--` .-:+++++`           ```.                         +hdmyy++++. 
 .+++++++++++/   oyssso::`  `.```------:+++++//`  -+/` ``                               :++/---+::` 
 .+++++++++++/   .//sddddd. -////++++++++++++`` -:+yhdody+:::-/:                        `````::Nydo.
 .++++++++++++::.`-smmhhsmy-.-://+++++++++/// --os/.`::dyNdmmdNhho`                       .:/hhMdNy-
 .++++++++++++++++.`-/+s++++++-`.+++++++++:   mNMMMd:-   :/hmdmsy                         /hdMyNhms.
 .++++++++++++++++++/---------:+++++++++++:   symmmNhy::`  ```. - .`.`              ::ooo-`-:++``   
 .++++++++++++++++++++++++++++++++++++++/-- ``..+sso/soh+/:-.   - .`             ./+Nos---:++++NNo. 
 .++++++++++++++++++++++++++++++++++++++-  `yydddms:-  ``oss/``   ` .`           ./-- ::hdmMMMMMMMh-
 .++++++++++++++++++++++++++++++++++++++-  `yydshddh+- ``` .-::-:                `--hyNMMmmMMMNMMMh-
 .++++++++++++++++++++++++++++++++++++++-  `ssyyyssyo  ...`.---`-              /shNhMhMhmmmmhMhMhNh-
 .++++++++++++++++++++++++++++++++++++++-  `hhMdNmmMmoo      `---              /hyooo-+oo//osNhMhNy-
 .++++++++++++++++++++++++++++++++++++++-  `yyMdNddNmN++-//.                 +s:`.+++++++//++yyMdNy-
 .++++++++++++++++++++++++++++++++++++++//: ..ddNddNdMyMy:.`                 `./oyNmMMMMMddNmMyMdNy-