.................................,:::::::::::~::,:~=~~~~~~~~~::::::,:,....,:::~:
.................................,::::::::::+~,::,,,~:~~~~~~~~~~::::,.....,:::::
.................................,::::::+?==~~???????+~:::::::::::,,......,:::::
.................................,:::::=~++===??????+++::,.:,,,,..........,:::::
.................................,::::+++=:,:+?????++++~:,:,,,..,,,,......,:::::
.................................,::~+??????????????++==:.,,,,,,,,,.......,:::::
.................................,=++=~:,,,+?+~:~=?++++::,.,:....,........,:::::
................................~??=~:,..,::+=::~===++++::,......,,.......,:::::
..............................++?++:,...,=~:?+~,,~=:=+++~:.:::...,........~=====
...........................???++=~~,.,..,~~???++=++????+=,:::.,.....,,,,,,,,,:::
........................~??++===~:,,,,..~~?I?++????????+++:,,,.,,.,.,,..........
......................=???+=~:::,,,,...:==~~,,==+??????+++=~,..,....,,,,,,,,,,,,
...................,????+=~:,,,..,,:...:==:,,:~++=++++=====~~,.....,,,,,,,,,,,,,
........,,,,,,,,:+????+=~~:,,....,::,..:~:::,:~~=~+++===:~~~:~....,,,,,,,,,,,,,,
.......,,,,,::+?????++==~,,......,::,..,~:,.,,~:::=+=~~~:::~,........,,,,,,,....
........,,,+???????++=~:,,.......,::,.,,~,:~:::~=::~::~,,:::...........,,,,,,,,.
........,=???????++=~:,,.........,::..,.:::~::=~=~:::,:,:,:,..,.........,,,,,,,,
.......,++?????++=~:,,,..........,,:,.,,~===~~===~::,,,,,,::,.,.........,,,,,,,,
......++++?++++=~~:,,............,,..,,,:~==~:::::,,,,:::,::,:::~~:~::~,..,,,,,,
.....+++++++===~::::,............,,.,..:,~=::,,~,...,,,,::::~~~:~~::::,,,,::,.,,
...==++++++==~~~~::,,............,,,,,::::,:..,,,,,,.,,~~::~~~~:::,,::::::,,,,:.
.,+===========~~:,.,:,.:.........,,,,,::,.,,..:,,.,,::~::~~::::,,:::::::::::,,,,
.============~~:=:::::::::,:,:,:::::,,.....,,,,,,~:~~::~:::::,,:::::::::::::::,,
.:========~::++?~::::::::::::::::::,.:,.,:,,,::~~~~:::~::::::,::::::::::::::::::
:,:~~~===++?????::::::::::::::::::,,:.,::++::~~~:~::::::::::,:::::::::::::::::::
