Home / Game | Hypnotic dickbutt | ASCII dickbutt

-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-......---.......................................--..................................................................................................................................................--.................................................--..........--...............--...---.....---............-...--..........---.-----.--------...----------..------...------------------------------------.
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::*****************::-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------::******:::--------::::******:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------:****::----------------------::*****:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------------------------------------------------------------------------:***:--------------------------------:*+*:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------------------------------------------------------------------.--:**::-------------------------------------::*+*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------------------------------------------------------------------:***:-------------------------------------------:*+*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------------------------------------------------------------------------------------:**:------------------------------------------------:***---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------------------------------------------------------------.-:**:-----------................-------------------------:*+:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------------------------------------------------------------:**:---------.....................--------------------------:+*:.----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------:**:-------..........................---------------------------*+:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------.-:**:------.............................----------------------------:+*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------:*:------...............................------------------------------*+:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------------------------------------------------------------------:*:------................................--------------------------------*+:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------:*:-----.................................-----------------------------------:+*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------------------------------------------------------------:*:----..................................-------------------------------------:+*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------------------------------------------------:*:-----.................................----------------------------------------:+*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------------------------------------------------------------:*:----.................................-------------------------------------------:+*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------------------------------------------------------------------**-----................................----------------------------------------------:+*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------------------------------------------------------:*:----................................-------------------------------------------------:+:------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------------------------------------------------------:*:----...............................----------------------------------------------------:+:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------------------------------------------::----..............................--------------------------------------------------------*+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------------------------------------------------------::-.--............................------------------------------------------------------------*+----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------:*:---............................---------------------------------------------------------------+*.--------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------------------------------------------------:*----.........................-------------------------------------------------------------------:+:--------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------------------------------------------------::----........................----------------------------------------------------------------------*+--------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------------------------------------::----......................--------------------------------------------------------------------------+*-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------------------------------------------------::----.....................----------------------------------------------------------------------------:+:------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------------------------------------------------------:------................----------------------------------------------------------------------------------**------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------:------.............--------------------------------------------------------------------------------------:+:-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------------------------------------------:-------.........-------------------------------------------------------------------------------------------**-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------------------------------------------:------------------------------------------------------------------------------------------------------------:+:----------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------------------------------------------::--------------------------------------------------------------------------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------------------------------------------:---------------------------------------------------------------------------------------------------------------:+:---------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------::-----------------------------------------------------------------------------------------------------------------**---------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------:------------------------------------------------------------------------------------------------------------------:+:--------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------------------------------------:--------------------------------------------------------------------------------------------------------------------**--------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------------------------------------:---------------------------------------------------------------------------------------------------------------------*+--------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------------------------:----------------------------------------------------------------------------------------------------------------------:+:-------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------------------------------------:------------------------------------------------------------------------------------------------------------------------**-------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------------------------------------------:-------------------------------------------------------------------------------------------------------------------------:+-------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------:--------------------------------------------------------------------------------------------------------------------------:+:------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------------------------------:----------------------------------------------------------------------------------------------------------------------------+*------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------------------------------:-----------------------------------------------------------------------------------------------------------------------------**------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+:-----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------**-----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------**-----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+-----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+-----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+:----------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*:----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------.----:::::::---------------------------------------------------------------------------------------------------------------------------------*:----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------::***:::::*****::----------------------------------------------------------------------------------------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------------:*++++***::-....--:**:--.-----------------------------------------------------------------------------------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------------:*+=%%%%%%%%%==+:-....-:**-------------------------------------------------------------::---------------------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------------------.-*+=%%%%%%%%%%%%%%@%+:....-:*:----------------------------------------------------::************:---------------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------------------:+=%%%%%%%%%%%%%%%%%%%%+-....-**:-----------------------------------------------:***::-......--::****:-----------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------*=%%%%%%%%%%%%%%%%%%%%%%%%*.....:*:--------------------------------------------*+++***++**:--.......-:**:---------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------*=%%%%%%%%%%%%%%%%%%%%%%%%%%+-....-**-----------------------------------------:+==%%%%@@@@@@%%+*-......-:**:-------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------*=%%%%%%%%%%%%%%%%%%%%%%%%%%%@=:.....**--------------------------------------:+=%%%@@@@%@@@%%%@@@%+-.......:**------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------:+%%==++==%%%%%%%%%%%%%%%%%%%%%%%=:.....**------------------------------------*=%@@%%%%@@@@%%%%%%%%%@%+-......-**:----------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------.-+%%*:----:*=%%%%%%%%%%%%%%%%%%%%%%=-.....**----------------------------------*=%@@@@@@@@@@@@@@%%%%%%%%@%*. .....:*:---------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------------*%=:---------+%%%%%%%%%%%%%%%%%%%%%%=-.....*:-------------------------------:+%@%=++++=%@@%%%@@@%%%%%%%%%%+- .....-**--------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------*==------------*%%%%%%%%%%%%%%%%%%%%%%+.....-*:.----------------------------:+%@=*------:+%@@%%%%%%%%%%%%%%@=- .....-**-------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------:+=:-------------+%%%%%%%%%%%%%%%%%%%%%%:.....:*-----------------------------+%%+----------*%@%%%%%@%%%%%%%%%@%-.......**------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------+%+--------------:%%%%%%%%%%%%%%%%%%%%%%=-.....*:---------------------------*%%+------------*%%%%%%%%%%%%%%%%%@=- ......**-----------------------------------*:----------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------:=%:---------------=%%%%%%%%%%%%%%%%%%%%%%*.....-*--------------------------*=%=--------------+@%%%%%%%%%@@@%%%@@=. .....-*:---------------------------------:+:----------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------+%=----------------+@%%%%%%%%%%%%%%%%%%%%%=-.....::------------------------*=%%*--------------:%%%%%%%%%%%@%%%%%@@+.......-+---------------------------------:+:----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------:=%=----------------+%%%%%%%%%%%%%%%%%%%%%%%*.....-*-----------------------:+%@%:---------------=@%%%%%%%%%%%%%%@@@%: ......:*--------------------------------:+:----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------*%%=----------------+%%%%%%%%%%%%%%%%%%%%%%%=......::----------------------*%%@=----------------=@%%@%%%%%%%%@@@@@%@=........+:-------------------------------*+-----------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------=%%%:---------------=%%%%%%%%%%%%%%%%%%%%%%%%-.....-*---------------------:=%%@=----------------+%%@@@@%%%%%%@@@@@%%%* ......:*-------------------------------*+-----------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------*=%%%+--------------:%%%%%%%%%%%%%%%%%%%%%%%%%*......*---------------------+%%%@=----------------=%%@@@%%%%%%%%%@@%@%%=. ......*:------------------------------**-----------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------*%%%%=:-------------+%%%%%%%%%%%%%%%%%%%%%%%%%+......::-------------------:=%@@@%:--------------:=@@@%@%%@%%%%%@@@%%%@@*.......-*-----------------------------:+:-----------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------.-+%%%%%+------------*%%%%%%%%%%%%%%%%%%%%%%%%%%=. ....:*-------------------*%%%%%%*--------------*%@@%%%%@@@@@@@@@@@@@@@=........*:----------------------------:+:-----------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------:=%%%%%%=:---------*%%%%%%%%%%%%%%%%%%%%%%%%%%%=- ....-*------------------:+%%%%%%%:------------:%@%@%%%@@@@@%%%%%%@%%%%%-.......:*----------------------------*+------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------:=%%%%%%%=*:-----*=%%%%%%%%%%%%%%%%%%%%%%%%%%%%=- .....*------------------*=%%%%%%@=:----------:+@%%@@%%@@@%%%%%%%%%%%%@@* ......-*----------------------------**------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------*%%%%%%%%%%%=++=%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-......*:-----------------+%%%%%%%%%=:--------:=@%%%%%%%%%%%%%%@@%%%%%%@@+........*:---------------------------+:------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-......::-----------------+%%%%%%%%%%%+*:--:*+%@%@%@%%@@%%@@@@@@@%%%%%%@@=........:*--------------------------:+-------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-......::----------------:=%%%%%%%%%%%%%===%%@@%%%@%%%%%%@%%@@@@@%%%%%%@@=-.......-*--------------------------*+-------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------.-*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%=-......::----------------:=%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%@%%%%%%%%%%%%- ..... -*--------------------------+*-------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------.-*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%=.......::----------------*%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%- ..... .*:------------------------:+:-------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%=.......::----------------*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%- ..... .*:------------------------*+--------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------*=%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+.......::----------------+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%- .......::-----------------------:+:--------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------:=%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:.......*-----------------+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%@@@%%@%- .......::-----------------------*+:--------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------:+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-......-*-----------------+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%%%%%@%@@%- .......::-----------------------*+---------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------.:*=%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+.......-*-----------------+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%@@=.........:*----------------------:+*.--------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------.-**%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:.......::-----------------+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@+.........::----------------------:+:.--------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------*:=%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%=........*:-----------------*=%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@*.........*:----------------------*+----------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------.::*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*...... -*------------------*+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@%:....... .*:----------------------+*----------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------.-*-=%%%%%%%%%%%%%%%%%%%%%%%%%%%=+*****+%%%%=........:*------------------**%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%@@@@=..........*:---------------------:+:----------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------*-:%%%%%%%%%%%%%%%%%%%%%%%%%+:--------:+%%:........*--..----.----------::+@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%@+.........-*----------------------:+:----------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------.:*.*%%%%%%%%%%%%%%%%%%%%%%%*------------**........:*-------------------:*:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%-........ :*----------------------*+-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------.-*-.+%%%%%%%%%%%%%%%%%%%%%+-------------..........*++++********:::-----:*-=@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@+..........:*----------------------**-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------:*.-=%%%%%%%%%%%%%%%%%%%=:-------------.........-+@###@#%:-::::=%======+-:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%-..........*:---------------------:+:.----------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------*:.-=%%%%%%%%%%%%%%%%%%=-------------. .......-*+@#####@......=#######%:.+%%%%%%%%%%%%%%%%%%%%@@%@%@@@%==+++=%%%%@*..........-*:---------------------:+:-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------*-.-+%%%%%%%%%%%%%%%%%=:----------...........:*+#######:....-*=@#####%*.-%%%%%%%%%%%%%%%%%%%%%%%%@@%+:------:*=@=...........**----------------------*+------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------.:*...*%%%%%%%%%%%%%%%%%*---------...........:*-+#######+----:::*%####%*:.:%%%%%%%%%%%%%%%%%%%%%%@@=*-----------*:..........-+:----------------------+*------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------------:*...:=%%%%%%%%%%%%%%%%:-------...... ....-*--+######%::::::::::=###=**..*%%%%%%%%%%%%%%%%%%%%%@%:------------............:*----------------------:+:------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------*:....*=%%%%%%%%%%%%%%%*:---............-*:.-+######@+*****:::::+@#=:*:..+%%%%%%%%%%%%%%%%%%%@@+-------------.......... -*:----------------------:+:------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------:*:.....:+=%%%%%%%%%%%@%+:.............-*:.--+########@@@@@%*::*:+@=-:*...+%%%%%%%%%%%%%%%%%%@%:-----------.............**-----------------------*+-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------:-*:.... .-:*+=======+*:-.............:*:----*@#############=:::::+*--*:...*%@%%%%%%%%%%%%%%%%%*----------.............:+:-----------------------**-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------------::--**-.........-----...  ............:*:-----:%#############=:::::**---*-...:=%%%%%%%%%%%%%%%%@+---------.............-+*------------------------**-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------.--:----:*:...........   ..............-**----.---=############@*:*:::*:---:*-...-+%%@%%%%%%%%%%%%%%*------...............**-------------------------+:-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------.-:-----:**-.........................:*:---------*@###########=:::::**-----:*.....:+%@@%%%%%%%%%%%@%*:--................:*-------------------------:+:-------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------.::-------:**:....................-:**-----------:=######%*::=*:::*:*:------**.... .-*=%%%%@@%%@@@%@%*-................:*:-------------------------:+--------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------.-::---------:**:-..............-:**:--------------:%####=... .-:::***--------**..... ..-:++=%%%==+*:-.................:+:--------------------------**--------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------*------------:***::--------::***:-----------------*=##@-......::***:---------**-......  .....-....   ...............:*:---------------------------**--------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------:*---------------:::*********::---------------------:=@=.......:*+*:-----------:*-........ .   .  .................-**:----------------------------+*--------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------::--------------------------------------------------::***--..--*+*--------------:*:......... .....................-**-----------------------------:+:--------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------*:-------------------------------------------------::--:********:----------------:**-...........................-*+:------------------------------:+:--------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------.-*---------------------------------------------------------:::----------------------:**-.......................-:**:-------------------------------*+---------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------.:*------------------------------------------------------::---------------------------:*+*:............... ...-:**:---------------------------------*+---------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------*:.----------------------------------------------------::::---::-::--------------------:****:-...........--****:-----------------------------------**---------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------*:.--------------------------------------------------------------::-----------------------::******:::::*****:--------------------------------------+*---------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------*----------------------------------------------------------------::---------------------------::******::::-----------------------------------------+:---------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------.:*----------------------------------------------------------------::-------------------------------------------------------------------------------:+:---------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------.**--------------------------------------------.-------------------:::------------------------------------------------------------------------------:+:---------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------.-*:-----------------------------------------------------------------::------------------------------------------------------------------------------:+----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------.:+:-------------------------------------------------------------------------------------------------------------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------.:*--------------------------------------------------------------------------------------------------------------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------**--------------------------------------------------------------------------------------------------------------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------*:---------------.----------------------------------------------------------------------------------------------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------*:------------------.-------------------------------------------------------------------------------------------------------------------------------*:----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------:+-.----------------:-----.-------------------------------------------------------------------------------------------------------------------------:*:----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------:*-----------------*++*-----------------------------------------------------------------------------------------------------------------------------:*:----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------**----------------**::**----------------------------------------------------------------------------------------------------------------------------:+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------*:---------------**----*:---------------------------------------------------------------------------------------------------------------------------:*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------.-*:---------------*:----::--*+*+*--------------------------------------------------------------------------------------------------------------------:*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------.:+---------------:*-----:*:**:::**-------------------------------------------------------------------------------------------------------------------:*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------:*--------------.:*----.-**:-.--:+:------------------------------------------------------------------------------------------------------------------**-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------**----------------*------*:---.-.**-----------------------------------------------------------:****--------------------------------------------------**-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------*:----------------*:-----:-------:*----------------------------------------------------------*+*::**-----::*::---------------------------------------**-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------+:----------------::-------------:*---------------------------------------------------------:+*----*:--:*****+*--------------------------------------*:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------:+:-----------------:-------------*:---------------------------------------------------------+*-----:*-:*:----:+*-------------------------------------*:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------:+-------------------:----------:*+:--------------------------------------------------------:+:------::*-------:+:------------------------------------*:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------**-----------------------------:***+*-------------------------------------------------------:+--------:---------**------------------------------------*:.----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------**---------------------------------:+:------------------------------------------------------:*------------------:*------------------------------------+:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------*:---------------:------------------**-------------------------------------------------------*------------------:+------------------------------------*:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------*:----------.---:-------------------**---------------------------------------------------*+*:*:-----------------:*------------------------------------*------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------*----------.---:-..-----------------**--------------------------------------------------+*:::*:-----------------*:-----------------------------------:*:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------.------------------------------------------------:*------------:--..-----------------:+:-------------------------------------------------:+:--------------------.:*------------------------------------:+------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------:*----------::--..-----------------:+*--------------------------------------------------:*:---------------------::------------------------------------:+------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------:*---------::--...--------------:***:----------------------------------------------------+:---------------------:-------------------------------------:*------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------::--------::-....-------------------.----------------------------------------------------**-----------------------------------------------------------:*------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------::-------*:-....-------------------..-----------------------------------------------------*:-------------------.--------------------------------------:*------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------::-----:*:--....---------------------------------------------------------------------------**:--------------------:-----------------------------------:*------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------:-----:*---....----------------------------------------------------------------------------------------------------:----------------------------------:*------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------:----:*---.....-----------------------------------------------------------------------------------------------------:---------------------------------:*------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------:---*:---.....------------------:-----------------------------------------------------------------------------------:---------------------------------:*------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------:--**--.......------------------:------------------------------------------------------------------------------------:--------------------------------:*------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------**--.......-------------------:-------------------------------------------------------------------------------------:-------------------------------:*------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-.-----------------------------.-------------------------------------------------*:--........-------------------:------------------------------------------------------------:------------------------::------------------------------:*----------------------------------------------------------------:**++**:------------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------.-**--........--------------------:------------------------------------------------------------:--.----------------------:------------------------------:*--------------------------------------------------------------:*+++***+++:----------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------.-**--..........------------------::------------------------------------------------------------:--..---------------------::-----------------------------:*------------------------------------------------------------:*+*::-----:*+*---------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------**--.........--------------------::-----------------------------------------------------------::--..----------------------::----------------------------:*-----------------------------------------------------------:++:----------:++:-------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------**--..........--------------------::-----------------------------------------------------------:---..-----------------------*----------------------------:*----------------------------------------------------------*+*-........-----++-------------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------:*-...........---------------------::-----------------------------------------------------------:--...-----------------------::---------------------------:*---------------------------------------------------------*=*-...........----++------------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------:+:.-..........---------------------::-----------------------------------------------------------:--...------------------------*---------------------------:*--------------------------------------------------------:+*-.............---:+*-----------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------.-*:--...........---------------------::----------------------------------------------------------::--...------------------------:*--------------------------:*-------------------------------------------------------:+*-...............---*+-----------------------------------------------------------------------------------------
-.------------------------------------------------------------------------**--............---------------------::----------------------------------------------------------::-....-------------------------*:-------------------------:*-------------------------------------------------------*+-................----+*----------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------:*-.............----------------------*:----------------------------------------------------------:--.....------------------------:*-------------------------:*------------------------------------------------------:+:................-----:+:---------------------------------------------------------------------------------------
-.---------------------------------------------------------------------.-*:.............-----------------------*-----------------------------------------------------------:--.....-------------------------*:------------------------:*------------------------------------------------------*+-................------+*---------------------------------------------------------------------------------------
-.----------------------------------------------------------------------**-.............----------------------:*-----------------------------------------------------------:--.....-------------------------:*------------------------:*-----------------------------------------------------:+:-...............-------*+---------------------------------------------------------------------------------------
-.----------------------------------------------------------------------*:-.............----------------------:*----------------------------------------------------------::--.....--------------------------*:-----------------------:*-----------------------------------------------------:+--..............--------:+:--------------------------------------------------------------------------------------
-.---------------------------------------------------------------------**-.............--.--------------------:*----------------------------------------------------------::--......-------------------------:*-----------------------:*-----------------------------------------------------**-..............----------+*--------------------------------------------------------------------------------------
-.---------------------------------------------------------------------+-..............-----------------------*:----------------------------------------------------------::--......-------------------------:*:----------------------:*-----------------------------------------------------+*-.............-----------**--------------------------------------------------------------------------------------
-.--------------------------------------------------------------------**-.............-----------------------:*:----------------------------------------------------------*-........--------------------------**----------------------:*-----------------------------------------------------+:-............------------:+--------------------------------------------------------------------------------------
-.--------------------------------------------------------------------*:-.............-----------------------:*-----------------------------------------------------------*-........--------------------------:*:---------------------:*-----------------------------------------------------+:-...........-------------:+:-------------------------------------------------------------------------------------
-.-------------------------------------------------------------------:*-..............-----------------------:*-----------------------------------------------------------*--.......--------------------------:**---------------------:*----------------------------------------------------:+:-.........----------------+:-------------------------------------------------------------------------------------
-.------------------------------------------------------------------.**-.............------------------------**-----------------------------------------------------------*-........---------------------------:+:--------------------:*----------------------------------------------------:+:-........-----------------**-------------------------------------------------------------------------------------
-.-------------------------------------------------------------------*:..............----------------------::*:----------------------------------------------------------:*-........---------------------------:**--------------------:*----------------------------------------------------:+:-......-------------------**-------------------------------------------------------------------------------------
-.--------------------------------------------.----------------------*:.............-----------------------::+-----------------------------------------------------------:*-........--------------------------:-**---------------------*----------------------------------------------------:+:---.----------------------**-------------------------------------------------------------------------------------
-.--------------------------------------------.----------------------*-.............----------------------:::*-----------------------------------------------------------:*-........--------------------------:::*:--------------------*----------------------------------------------------:+:--------------------------:+-------------------------------------------------------------------------------------
-.-------------------------------------------------------------------*-............-----------------------::*:-----------------------------------------------------------:*-........--------------------------:::**--------------------*----------------------------------------------------:+:--------------------------:+-------------------------------------------------------------------------------------
-.------------------------------------------------------------------:*-............----------------------:::*:-----------------------------------------------------------:*-.........-------------------------::-**--------------------*:---------------------------------------------------:+---------------------------:+:------------------------------------------------------------------------------------
-.-----------------------------------------------------------------.-*:...........-----------------------:-**------------------------------------------------------------:*-.........-------------------------::-:*:-------------------*:---------------------------------------------------:+---------------------------:+:------------------------------------------------------------------------------------
-.-----------------------------------------------------------------.-+:...........---------------------:--:*:------------------------------------------------------------:*-.........-------------------------::::**-------------------*:---------------------------------------------------**---------------------------:+:------------------------------------------------------------------------------------
-.---------------------------------------------------------------.---**..........----------------------::-*+:------------------------------------------------------------:*-.........-------------------------::::**-------------------*:---------------------------------------------------**---------------------------:+:------------------------------------------------------------------------------------
-.------------------------------------------------------------------.:*-.........-----------------------::**-------------------------------------------------------------:*-.........------------------------::::-**:------------------*:---------------------------------------------------**---------------------------:+:------------------------------------------------------------------------------------
-.------------------------------------------------------------------.-*:-.......---------------------:::-*+:-------------------------------------------------------------:*-.........------------------------::::::+:------------------*:---------------------------------------------------+:---------------------------:+:------------------------------------------------------------------------------------
-.--------------------------------------------------------------------**-......-----------------------:::+*--------------------------------------------------------------:*-.........------------------------::::::+*------------------::--------------------------------------------------:+:---------------------------:+:------------------------------------------------------------------------------------
-.--------------------------------------------------------------------:+:---..------------------------:-**---------------------------------------------------------------:*--........------------------------::::::**------------------:*--------------------------------------------------:+----------------------------:+:------------------------------------------------------------------------------------
-.----------------------------------------------------------------..---:+-.--------------------------:::+:----------------------------------------------------------------*-.........------------------------:-::::**------------------:*--------------------------------------------------**----------------------------:+:------------------------------------------------------------------------------------
-.----------------------------------------------------------------..----**------------------------:::::**-----------------------------------------------------------------*:.........-----------------------::-::::*+------------------:*--------------------------------------------------*:----------------------------:+:------------------------------------------------------------------------------------
-.-----------------------------------------------------------------.-----**---------------------::::::**------------------------------------------------------------------**-........-------------------------:::::*+:-----------------:*-------------------------------------------------:+:----------------------------:+:------------------------------------------------------------------------------------
-.-----------------------------.-----------------------------------------:+*-------------------::-:-:**:------------------------------------------------------------------**--.......-----------------------:::::::*+------------------:*-------------------------------------------------:*-----------------------------:+-------------------------------------------------------------------------------------
-.------------------------------------------------------------------------:+*-----.----------:::-:-:*+:-------------------------------------------------------------------:*--.......----------------------::::::::*+-------------------*-------------------------------------------------**-----------------------------:+-------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------.-:++--------------:::::-:*+:---------------------------------------------------------------------+:--......----------------------::::::::**-------------------*-------------------------------------------------+:-----------------------------:*-------------------------------------------------------------------------------------
-.------------.-------------------------------------------------------------:*+:----------::::::::++:----------------------------------------------------------------------**--......----------------------::::::::**-------------------*------------------------------------------------:+------------------------------**-------------------------------------------------------------------------------------
-.------------.--------------..-----------------------------------------------*+*:-----:::::::::*+*:-----------------------------------------------------------------------:*----....---------------------:::::::::**-------------------*:-----------------------------------------------**------------------------------**-------------------------------------------------------------------------------------
-.--.--------------------------------------------------------------------------:*++*:::::::::**+*:--------------------------------------------------------------------------*:----..----------------------::::-::::+*-------------------::-----------------------------------------------+:------------------------------*:-------------------------------------------------------------------------------------
-.-----.--------------------------------------------------------------------.----:*+++*****+++*:----------------------------------------------------------------------------*+---------------------------::::::::::+:-------------------::-----------------------------------------------+-------------------------------*:-------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------:*******::------------------------------------------------------------------------------:+:-------------------------::::::::::*+:-------------------::----------------------------------------------**------------------------------:*:-------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+:-----------------------:::::::::::+*--------------------::-----------::**********::---------------------*:------------------------------:*--------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------**----------------------::-::::::::*+:--------------------::-------:***+********++++++**:----------------:*-------------------------------:*--------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------..---------------------------------------------------------------------------------------------:+*--------------------:::-::::::::+*----------------------:----::***::------------::**+++*:-------------**-------------------------------**--------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+*------------------::::-:::::-:+*-----------------------:---:::----------------------:**+**:----------*:-------------------------------*:--------------------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+*----------------:::::::::::*+*:-----------------------:------------..........---------::*+*:-------:*--------------------------------*---------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:*+:------------::::-::::-::*+*-------------------------:--------....................------:***------*:-------------------------------:*---------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------:------------------------------------------------------------------------------------------------*+*::-----::::::--::--::*++*--------------------------:------.........................------:**----*--------------------------------:*---------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------:-------------------------------------------------------------------------------------------------:*++**::::--::::::::**++*:---------------------------:----.............................------:::-::--------------------------------*:---------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------.::--------------------------------------------------------------------------------------------------::*++++********++++*::-----------------------------:----.............................---------:*---------------------------------*:---------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------:-----------------------------------------------------------------------------------------------------::***********::-------------------------------------..........................-------------:*--------------------------------:*----------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------:------------------------------------------------------------------------------------------------------------------------------------------------------:-........................----------------*:--------------------------------:*----------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------:------------------------------------------------------------------------------------------------------------------------------------------------------:-....................--------------------*---------------------------------*:----------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------:------------------------------------------------------------------------------------------------------------------------------------------------------:-...............------------------------::--------------------------------:*-----------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------:------------------------------------------------------------------------------------------------------------------------------------------------------:---.....--------------------------------*---------------------------------:*-----------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::---------------------------------::-----------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------::---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*----------------------------------*------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------::--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::---------------------------------::------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------::--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:----------------------------------::------------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------::-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::----------------------------------:-------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:----------------------------------::-------------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:----------------------------------:---:****:-----------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:-----------------------------------:-*+++**+++:---------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::**::---::++*--------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------.-.::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:*:---------*++:------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------::---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:*:-----------:++------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::::--------------------------------::-------------:+*-----------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::::::::******:::-----------------------------------------*+:----------------------------------------------------------------------------
-.--------------------------------------------------.--------------------------------*------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::-----------------::****::--------------------------------------:+*----------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------*:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:****::-----------------------------------:*+:---------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------::---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::***:---------------------------------::+:---------------------------------------------------------------------------
-.----------------------------------------------------------------------------------.::-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.....------------------:***:-------------------------------::+:---------------------------------------------------------------------------
-.----------------------------------------------------------------------------------.-*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------...................------------:*+*:-----------------------------::*:---------------------------------------------------------------------------
-.------------------------------------------------------------------------------------*----------------------------------------------------------------------------------------------------------------------------------------------------------------------..........................----------:*+*----------------------------::+:---------------------------------------------------------------------------
-.------------------------------------------------------------------------------------*:-------------------------------------------------------------------------------------------------------------------------------------------------------------------..............................----------:*+:-------------------------:::*----------------------------------------------------------------------------
-.----------------------------------------------------------.-------------------------:*-----------------------------------------------------------------------------------------------------------------------------------------------------------------...................................---------*+*------------------------::**----------------------------------------------------------------------------
-.------------------------------------------------------------------------------------:*----------------------------------------------------------------------------------------------------------------------------------------------------------------......................................--------:+*:---------------------:::*-----------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------*---------------------------------------------------------------------------------------------------------------------------------------------------------------........................................---------*+:-----------------:::::::-----------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------*:------------------------------------------------------------------------------------------------------------------------------------------------------------.......................................-------------*+*--------------::::::**::----------------------------------------------------------------------------
-.----------------------------------------------------.--------------------------------:*-----------------------------------------------------------------------------------------------------------------------------------------------------------....................................------------------:+*------------::::--::::**:--------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------:*----------------------------------------------------------------------------------------------------------------------------------------------------------..................................----------------------:+*----------::----------:+:-------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------+:--------------------------------------------------------------------------------------------------------------------------------------------------------...............................---------------------------:+*----------------------:+:------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------**--------------------------------------------------------------------------------------------------------------------------------------------------------..........................---------------------------------*+:----------------------**------------------------------------------------------------------------
-.------------------.-------------------------------------------------------------------:*--------------------------------------------------------------------------------------------------------------------------------------------------------......................--------------------------------------*+:-:-------------------:+------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------:+--------------------------------------------------------------------------------------------------------------------------------------------------------...............----------------------------------------------*+:--------------------:+:-----------------------------------------------------------------------
-.---------------------------------------------------------------------------------------*:----------------------------------------------------------------------------------------------------------------------------------------------------------......-----------------------------------------------------++-------------------::+*-----------------------------------------------------------------------
-.---------------------------------------------------------------------------------------**---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+*------------------::**-----------------------------------------------------------------------
-.---------------------------------------------------------------------------------------:*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+:-----------------::**-----------------------------------------------------------------------
-.----------------------------------------------------------------------------------------+:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*+----------------:::**-----------------------------------------------------------------------
-.----------------------------------------------------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+*--------------::::+*-----------------------------------------------------------------------
-.----------------------------------------------------------------------------------------:+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*+:------------:::::+:-----------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------+:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+*-----------:::::*+------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------**-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+:::-::::::::::::+*------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------:+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+*::::::::::::::++:------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------+:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*+:::::::::::::*+:-------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------**-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:+*:::::::::::*+:--------------------------------------------------------------------------
-.------------------------------------------------------------------------------------------:+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:*+::::::::**++:---------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------+:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::+*:*****++*:-----------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------**----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::+*--:::::--------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------+:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::*+---------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------**---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::+:--------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------------------.:+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::+*--------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------------------+:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::**--------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------------------*+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::*+--------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------------+:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::+:-------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------------**-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::+*-------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------------------------:+:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::+*-------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------------:::**------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::**-------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------------::::::*+:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::**-------------------------------------------------------------------------------------
-.--------------------------------------------------------------------------------------::::::::::+*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::*+-------------------------------------------------------------------------------------
-.-----------------------------------------------------------------------------------:::::::::::::*+:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::*+-------------------------------------------------------------------------------------
-.---------------------------------------------------------------------------------::::::::::::::::+*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::*+:------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------------::::::::::::::::::*+:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::*+:------------------------------------------------------------------------------------
-.----------------------------------------------------------------------------::::::::::::::::::::::+*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::+:------------------------------------------------------------------------------------
-.-------------------------------------------------------------------------:::::::::::::::::::::::::*+:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::+:------------------------------------------------------------------------------------
-.------------------------------------------------------------------------:::::::::::::::::::::::::::+*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::+:------------------------------------------------------------------------------------
-.----------------------------------------------------------------------:::::::::::::::::::::::::::::*+*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::*+:------------------------------------------------------------------------------------
-.-------------------------------------------------------------------:::::::::::::::::::::::::::::::::*+:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::*+*::----------------------------------------------------------------------------------
-.-----------------------------------------------------------------::::::::::::::::::::::::::::::::::::+*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::*+::::::-------------------------------------------------------------------------------
-.---------------------------------------------------------------::::::::::::::::::::::::::::::::::::::*+:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::*+::::::::-----------------------------------------------------------------------------
-.-------------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::+*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::*+::::::::::---------------------------------------------------------------------------
-.-----------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::*+:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::*+::::::::::::-------------------------------------------------------------------------
-.----------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::++::::::::::::::-----------------------------------------------------------------------
-.--------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::*+*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::++::::::::::::::::---------------------------------------------------------------------
-.------------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::*+:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::+*::::::::::::::::::-------------------------------------------------------------------
-.----------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::*+*::::::::::::::::::::-----------------------------------------------------------------
-.--------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::*:::::::::*+*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::*+:::::::::::::::::::::::---------------------------------------------------------------
-.-------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::**:::::::::*=:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::++::::::::::::::::::::::::--------------------------------------------------------------
-.-----------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::+*::::::::::::::::::::::::::------------------------------------------------------------
-.----------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*+*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::*+*::::::::::::::::::::::::::::----------------------------------------------------------
-.--------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*+:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::*+::::::::::::::::::::::::::::::---------------------------------------------------------
-.------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::++::::::::::::::::::::::::::::::::-------------------------------------------------------
-.-----------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*++:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::+*:::::::::::::::::::::::::::::::::------------------------------------------------------
-.---------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*:*::*=*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::*+*:::::::::::::::::::::::::::::::::::----------------------------------------------------
-.--------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*::--*=*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::++:::::::::::::::::::::::::::::::::::::---------------------------------------------------
-.------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------*+:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::*+*:::::::::::::::::::::::::::::::::::::::-------------------------------------------------
-.-----------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::**:::---------++:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::*+::::::::::::::::::::::::::::::::::::::::::-----------------------------------------------
-.----------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*:::------------:++:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::::+*:::::::::::::::::::::::::::::::::::::::::::----------------------------------------------
-.--------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------:+*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::*+*::::::::::::::::::::::::::::::::::::::::::::---------------------------------------------
-.-------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------:*+*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::++::::::::::::::::::::::::::::::::::::::::::::::--------------------------------------------
-.-----------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------:::*+*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::*+*::::::::::::::::::::::::::::::::::::::::::::::::------------------------------------------
-.----------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*::--------------------:::::*+*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::::++::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------------------------
-.---------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------:*:::::*+:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::*+*::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------------
-.-------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------:*::::::::*+:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::::+*::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------------
-.------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------:*::::::::::*+*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::::*+*:::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------------
-.-----------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------:*:-::::::::::*+*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::*+*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------------------.
-.---------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------:*:----:::::::::++:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::::++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------..
-.--------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------:*:-----::::::::::++*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::+=*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------------....
-.-------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------**:------:::::::::::*+*---------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::*=*:*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------......
-.-------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------**:--------:::::::::::*+*--------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::+*-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------...... 
-..----------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------**:----------:::::::::::*+*:-----------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::++----::*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------......  
. .....-----------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------------**-------------::::::::::::+*:---------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::++:-----::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------.....    
.  ......--------::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------------*+--------------:::::::::::::++:-------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::*+:--------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------.......    
. .........-----::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------------**:---------------:::::::::::::++*------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::*+:----------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------.... ...    
. ..........--::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------+*-----------------::::::::::::::*++:---------------------------------------------------------------------------------------------------------------------------------------------------------:::::::+=:-------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------..... ...    
. ...........-::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------:+*-------------------::::::::::::-::++:-------------------------------------------------------------------------------------------------------------------------------------------------------:::::::*+:---------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------..........    
. ............:::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------:+*--------------------::::::::::::::-:*+*-----------------------------------------------------------------------------------------------------------------------------------------------------:::::::*+:------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------...........    
. ............-::::::::::::::::::::::::::::::::::::::::::::::::*::------------------------------:+*----------------------::::::::::::::::*+*:--------------------------------------------------------------------------------------------------------------------------------------------------:::::::++:--------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------... ........    
. .............-::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------:+*-----------------------::::::::::::::::::*+*------------------------------------------------------------------------------------------------------------------------------------------------:::::::++:-----------------------:*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----.............    
. ..............:::::::::::::::::::::::::::::::::::::::::::::::-------------------------------:+*-------------------------:::::::::::::::---*++:---------------------------------------------------------------------------------------------------------------------------------------------:::::::++:-------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--..............    
. ... ..........-::::::::::::::::::::::::::::::::::::::::::::--------------------------------:+*--------------------------::::::::::::::-----:+=*:------------------------------------------------------------------------------------------------------------------------------------------::::::*++-----------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...............    
. ... ...........-::::::::::::::::::::::::::::::::::::::::::--------------------------------:+*------------------------:---::::::::*::---------*++*----------------------------------------------------------------------------------------------------------------------------------------::::::*=*-------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::-...............    
.         .......-::::::::::::::::::::::::::::::::::::::::---------------------------------:+*------------------------:----::::::**:-------------*+*:-------------------------------------------------------------------------------------------------------------------------------------::::::++:---------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::-......              
.         ........:::::::::::::::::::::::::::::::::::::::---------------------------------*+:------------------------------::::**:----------------:++*:----------------------------------------------------------------------------------------------------------------------------------:::::*++:-----------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::-......               
.         ........-:::::::::::::::::::::::::::::::::::::---------------------------------*+*-------------------------------::**:--------------------:++*--------------------------------------------------------------------------------------------------------------------------------:::::++*--------------------------------------::*::::::::::::::::::::::::::::::::::::::::::::::::-.......               
.         ........-::::::::::::::::::::::::::::::::::::---------------------------------*+:-------------------------------:**:------------------------:++*-----------------------------------------------------------------------------------------------------------------------------::::*++:-----------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::-.......               
.         ..  .....:::::::::::::::::::::::::::::::::::---------------------------------*+:------------------------------:**:----------------------------:++*:-------------------------------------------------------------------------------------------------------------------------:::*++:--------------------------------------------:*:::::::::::::::::::::::::::::::::::::::::::::-.........              
.          .. .....-::::::::::::::::::::::::::::::::----------------------------------*+:-----------------------------:**:--------------------------------:***:----------------------------------------------------------------------------------------------------------------------:::++*-----------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::-..........              
.          .  ..........--:::::::::::::::::::::::::--------*:------------------------*+*----------------------------:*+*------------------------------------:***:-------------------------------------------------------------------------------------------------------------------::*++:-------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::....... ...              
.          .  ..............-:::::::::::::::::::::---------:+*:---------------------*+:---------------------------:***:---------------------------------------:*+*:---------------------------------------------------------------------------------------------------------------::*++:----------------------------------------------------:*::::::::::::::::::::::::::::::::::::::::-....... ...              
.          ..  ................-:::::::::::::::::-----------:=+*:------------------++:--------------------------:*+*:-------------------------------------::::-::***::-----------------------------------------------------------------------------------------------------------:*++:-------------------------------------------------------:*::::::::::::::::::::::::::::::::::::::-...........               
.          ..  ..................-::::::::::::::-------------*==++:---------------++:-------------------------:***:----------------------------------::::::::::::-::***:-------------------------------------------------------------------------------------------------------:*+*:----------------------------------------------------------:::::::::::::::::::::::::::::::::::::::-...........               
.               ......... . .......-::::::::::----------------*+*+=*:------------++:------------------------:*+*----------------------------------:::::::::::::::::-:::***:----------------:---------------------------------------------------------------------------------:*+*:-------------------------------------------------------------:::::::::::::::::::::::::::::::::::::-.........                  
.                            .......-::::::::------------------++::+++:--------:++:-----------------------:*+*:-------------------------------::::::::::::::::::::::::::::**:::------------:------------------------------------------------------------------------------::*+*:-----------------------------------------------------------------:*:::::::::::::::::::::::::::::::::.....                       
.                            .........-:::::--------------------++:::+++:-----:++:----------------------:*+*:-----------------------------:::::::::::::::::::::::::::::::::::**:::--------:----------------------------------------------------------------------------::*+*:---------------------------------------------------------------------:::::::::::::::::::::::::::::::::-.....                       
.                            ..........-:::---------------------:+*---:+++:--:++:---------------------:*+*:----------------------------:::::::::::::::::::::::::::::::::::::::::::::::----:--------------------------------------------------------------------------:*++*:------------------------------------------------------------------------::::::::::::::::::::::::::::::::......                       
.                            ...........-:-----------------------*+*----:+++*++:--------------------:*+*:---------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::-:------------------------------------------------------------------------::*+*:----------------------------------------------------------------------------::::::::::::::::::::::::::::::-......                       
.                            ...... .......-----------------------*=:-----:++*:-------------------:*+*:--------------------------::::::::::::::::::::::::::::::::::::::::::::::::::-::::::--------------------------------------------------------------------::****:::------------------------------------------------------------------------------:*:::::::::::::::::::::::::::.......                       
.                              ............------------------------++:------::------------------:*++:--------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::--::-----------------------------------------------------------------::****::--::::::--------------------------------------------------------------------------::::::::::::::::::::::::::::-.....                         
.                              .............------------------------++:-----------------------:*++:-------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------------------------------------:::****::--:::::::::::::------------------------------------------------------------------------::*::::::::::::::::::::::::.....                          
.                                ............-----------------------:+*---------------------:*++:-------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------------------------------::::***::::::::::::::::::::::::----------------------------------------------------------------------:::::::::::::::::::::::::-......                         
.                                .............-----------------------:+*------------------:*++:-------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*:----------------------------------------------------::::::::::::::::::::::::::::::::::::::---------------------------------------------------------------------::::::::::::::::::::::::.......                         
.                               ..............------------------------*+:---------------:*++:------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*-------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::-------------------------------------------------------------------::::::::::::::::::::::-.......                         
.                                  ............------------------------*+:------------:*++:-------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------------------------------------------:::::::::::::::::::::......                           
.                                    ...........------------------------++:---------:*++:-------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*--------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------------------------------------------------::::::::::::::::::::.......                          
.                                     ..........-------------------------++-------:*++:-------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*:-------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------------------------------------------------::::::::::::::::::-.......                          
.                                         .......------------------------:=*----:*++*------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*-------------------------------------------::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------------------------------------:::::::::::::::::.......                           
.                                         ........------------------------:+*-:*++:-------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-*:-----------------------------------------::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------------------------------------:::::::::::::::-.......                           
.                                         ........-------------------------*++++*-------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*---------------------------------------:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------------------------------------::::::::::::::-.......                           
.                                         .........-------------------------*=*-------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-*:----------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------------------------------------------::::::::::::::........                           
.                                          ........----------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*:---------------------------------------:*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------------------------------------------:::::::::::::........                           
.                                          ........--------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-**---------------------------------------:*:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------------------------------:::::::::::-........                           
.                                          ........-------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*:--------------------------------------:*:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------------------------------::::::::::-........                           
.                                         ..........----------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:*-------------------------------------:*:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------------------------------:::::::::.........                           
.                                         ..........---------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:*:------------------------------------:*:-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------------------------------:::::::::.....  ...                          
.                                         ..........-------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*------------------------------------:*:-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------------------------------:::::::-.....  ...                          
.                                         ...........-----------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:*:-----------------------------------**::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------------------------------::::::-......   .                          
.                                         ...........---------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:*-----------------------------------**::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------------------------------:*:::.......                              
.                                         ...........--------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:*:---------------------------------:**:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------------------------------------------::-........                              
.                                         ...........-------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::**---------------------------------:*******::::---:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------------------------..............                            
.                                         ...........-----------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::::*+:--------------------------------:**:********::::::--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------..................----------------------..................                          
.                                         ...........----------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::****+--------------------------------:**:*******:******::::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--.........................------------------...................                          
.                                         ...........---------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::::::***:***+:-------------------------------*+*:**:***************::::-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--.............................-------------........... ..........                         
.                                         ...........--------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::::****:::*:**------------------------------:*+****:****:::*******:*****:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-..................................----------............  .........                         
.                                         ...........------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::::*****:*:**:*+:-----------------------------:++****:::*::::::*****::::*****:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--..........  .........................-------.......  ....  .......                           
.                                         ...........-----------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::****::::*:::::**-----------------------------:+*****:::**:::::***********:******::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-..........                ..............----.........                                          
.                                         ...........----------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:::****::::::*::::*+*----------------------------*+*:**********::::***************:****:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--...........                ................-..........                                          
.                                         ...........---------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:****::::::**::**:**+----------------------------*+*:***********:::***************::::****::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-.............                ...........................                                          
.                                         ...........--------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::****:***:::::::****+*--------------------------:*+*:**:*****::::::*************::::::::::***:::::::::::::::::::::::::::::::::::::::::::::::::::::::::-..............                          ............                                               
.                                         ...........------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*********::::::::****+--------------------------:*+*:::**::***::::::*********::****:::::::::****::::::::::::::::::::::::::::::::::::::::::::::::::::::-....  .........                          ............                                               
.                                         ...........-----------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*::::*******::::::*:**+*-------------------------:++*::*:::::**::::::::::::::::::::***::::::::*:::**:::::::::::::::::::::::::::::::::::::::::::::::::::-.... ... ..                               ............                                               
.                                         ...........----------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::***::::*******:::**:**:*+-------------------------*+**::**:::::*****::::::::*::::::::*****:::::::::::***::::::::::::::::::::::::::::::::::::::::::::::::-......... ..                                ... .. ....                                               
.                                         ..........----------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::****::::::::****::***:*:*+*------------------------*+*:*::::::::**********:::**:**:::::********::::::::::***::-::::::::::::::::::::::::::::::::::::::::::-..........                                   ..........                                                
.                                         ...........--------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::***::::::::::::***::**::::*+-----------------------:*+**:****:::::****:::**::::::::::::::**::::::::::****::::**::-:::::::::::::::::::::::::::::::::::::::::............                                  ...........                                               
.                                         ...........-------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::**:::*****:::::::*::***:::*+:----------------------:*+*:**:::::::::**:::::::::::**::*******::::::::::****::::::***:::::::::::::::::::::::::::::::::::::::::........ ....                                 ............                                               
.                                          ..  .........---------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::***::::***::::::::::::*:***:*+----------------------:++*:**:::::********::**:***::::*********:::::***::***::*::*:****:::::::::::::::::::::::::::::::::::::::-..........                                     ..  ..   ..                                               
.                                               ..........------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::***::*:::**:::::::::::::*:::*+:---------------------:+**:::****:*************:::::::::****:::*::::******::::***********:::::::::::::::::::::::::::::::::::::-...........                                                                                               
.                                               ...........----------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::**::::::::****:::::::::::*:*:+*---------------------*+*****:************************:::::::::**::::**::**::::*************:::::::::::::::::::::::::::::::::::-......                                                                                                    
.                                                    ........-------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::**:::::::::::*:::::::::::::::**+:--------------------*+*:****:::******************:****:::****::*::::**::**::::**************:::::::::::::::::::::::::::::::::-.......                                                                                                    
.                                                    .........-----:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-::*::::***::::::::::::::::::::*:*+*-------------------:*+*:***::*:::**********::*****:****:::*******:::::****:***::***::*****::***:::::::::::::::::::::::::::::::........                                                                                                    
.                                                    ..........----:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::**::::****::**::**::::**::****:*+:------------------:++*:::*::****:****::*::*************::::******:::*:::::******************:**::::::::::::::::::::::::::::::-........                                                                                                    
.                                                    ...........-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--:**::::::********::**::::*********+*------------------:++*:::::::****:****:**::******:***:****::::::*******::::*******************::::::::::::::::::::::::::::::::.........                                                                                                    
.                                                    ............-:::::::::-----------------:::::::::::::::::::::::::::::::::--::***:::::::::****:::****:*********++------------------*+****::::::********::**::*:::***************::*****:*:::****::**************:::**::::::::::::::::::::::::::-.........                                                                                                    
.                                                    .......... ..-::----.....................----::::::::::::::::::::::::::--:***::*::::**:::***::::***:**:******+:----------------:*+*:**:::::::****::::::**:::::::******:::::***::*****::::*****::**************::::**:::::::::::::::::::::::::-.........                                                                                                    
.                                                    ....................  .........................---:::::::::::::::::::::-:**:::**:*:::*::::::::::**:::::*****++----------------:++*****:::*:::****::::****::::::::********:::**:::*****::*****::::*********:***:::::**::::::::::::::::::::::::..........                                                                                                    
.                                                     ..................................................---:::::::::::::::-::***::::******::::::**::::::::::****++:---------------:++*:*:**::::**::**********:::::***:*********:::::::*::**::*:::*:::::*******:::::::**:::**:::::::::::::::::::::-.........                                                                                                     
.                                                               .......                    ................---:::::::::::-::**::::::::*+++**::**:**:::::*::::***+*---------------:++*::****:**:**::**:****:**::*******************::::******:::*::**:::***::**::::***:::*:***::::::::::::::::::::-.........                                                                                                     
.                                                               ......                     .............  ....--::::::::-::**::::*:::::**+++***:*::::::**:::***++---------------*++**::***::*****::**:********:********************:********:::**:**:::****::::::********:****:::::::::::::::::::-.........                                                                                                     
.                                                               ......                          ...... ..........-:::::-::***:::::::::*::*+++++*:::::****:::***+:--------------*+*::*:::::::**:***************::******::*:::**********:::::::**:::**:::****:::::*********:::***::::::::::::::::::-.........                                                                                                     
.                                                                                                         .........--::::*:::::::::::::*::*+*:*++**:::******:*+*--------------*+*::*:*::::::**::***::**:::*:**::***********::*****:***:::::::**:::**:::****:**::***:*****::*:***:--::::::::::::::..........                                                                                                     
.                                                                                                       .............--**:::::::::::::::**:*+:-:*+++*********+*-------------:++*::::****:::***::***::**:::*:**:*************::::::::*******:::::::**:::***:*******:::****::*****::-::::::::::::::..........                                                                                                     
.                                                                                                        ....   .......-:*:::::***:::::::****+:---:++++**::*++:------------:++*:::::**:*::::::::***:**:::::********::***::***************::::::***::::::*******:::***:***********:::::::::::::::-..........                                                                                                     
.                                                                                                                    ....::::::****::*::::****+:----:*+++**++:------------:++*:::::::***::::*****::************:***::**:**::****************:::::**::*:********::*************:***::-:::::::::::-..........                                                                                                     
.                                                                                                                     .. .-:**::**::::::::::::*+*------:*+++:------------*+**::*:::::**::::*******:::::::::*********:**::***********::*********:***:*******:::****::*********::::**::-::::::::::-........ .                                                                                                     
.                                                                                                          ..      .........-:**:::::::::::::*:*+*--------:------------:*+****::::*::*::*****:::--------------:::::****:::***********:***::******::::*****:::*********::******:::***:-::::::::::-........ .                                                                                                     
.                                                                                                          ......  ...........:**::::::::::::*::++*-------------------:*+*:*:*::********:::-------------------------:::**::**********::**::*****:::::****:::****::***::**************:::::::::::-........                                                                                                       
.                                                                                                          .....     ..........-**::::::::::::::*++*-----------------:++*::*::**::****::-------------------------------:::****::*****::*::******:::::***:::**********:**************:*::::::::::-.  .. ..                                                                                                       
.                                                                                                                    ....... . .-:*::::::*:::*****++*---------------*++*::::::*****::-------------------------------------::***::***::*::::******::::***:********************:******:**:-:::::::-.  .                                                                                                           
.                                                                                                                     ...... .....:*::::**:********++*-------------*++*::***::***::-----------------------------------------::**********:::::**:**:*******************:***:*:::********:--::---...  ..                                                                                                          
.                                                                                                                     ...... .... .:**:***:****:*****+*-----------*+*::*****:**::---------------------------------------------::***:*****:::::*::*******:::****************::::***::****:--.......  ..                                                                                                          
.                                                                                                                           .  ... .-*****:::::::**:**+*--------:*+*::********:-------------------------------------------------::********:***:::::::***:::***:**********************::-...........                                                                                                             
.                                                                                                                          .. ..... .-******:::::*::***+*------:++*:***:****:-----------------------------------------------------::**********:::***********************************:-.... ........                                                                                                             
.                                                                                                                               ......-**:****::********+*----:++****:****::--------------------------------------------------------:****:***:::******::**********************:***:-.............                                                                                                               
.                                                                                                                               .......-:*:****::********+*--:++*****:***:------------------------------------------------------------:**:***::*******:*********************:***:-...............                                                                                                               
.                                                                                                                                .......-:*:****::********+**++*********:--------------------------------------------------------------:*****::********************************-.................                                                                                                               
.                                                                                                                               .........-**::::***********+=+****:****------------------------------------------------------------------:***::******************************:...................                                                                                                               
.                                                                                                                               ........ .-*::::******:***********:**:--------------------------------------------------------------------:****:***************:************-....................                                                                                                               
.                                                                                                                               ..  .......-*::*************:*******:----------------------------------------------------------------------:::**::**********************:*:.. ..........  ...                                                                                                                   
.                                                                                                                                      .....:**:::*****************:------------------------------------------------------------------------::**::********:::************:.........                                                                                                                             
.                                                                                                                                       .....:***:************:***:---------------------------------------------------------------------------:***:*******:*************:..........                                                                                                                             
.                                                                                                                                        .....**:::::***::******::-----------------------------------------------------------------------------:**********:****:::*****:... .......                                                                                                                             
.                                                                                                                                         ....-*::::::**:::::**:--------------------------------------------------------------------------------:****::*********::****:............                                                                                                                             
.                                                                                                                                         .....:*::*:**:::::**:----------------------------------------------------------------------------------:**:*****:******::**:.......                                                                                                                                   
.                                                                                                                                         .... .:*:****::**:*:------------------------------------------------------------------------------------:***:***:*****::**:. .....                                                                                                                                    
.                                                                                                                                          .....-**:***:**:*::-------------------------------------------------------------------------------------:**::*********:*:.......                                                                                                                                     
.                                                                                                                                          ......:*:::***:**:---------------------------------------------------------------------------------------:*****:*****:*:- ......                                                                                                                                     
.                                                                                                                                          ..... .:*:******:-----------------------------------------------------------------------------------------:*********::*- ........                                                                                                                                    
.                                                                                                                                          .......-*:*****:-------------------------------------------------------------------------------------------:*****::::*:...... ...                                                      .... . ...... ..  .........  ... . ....  .    .  ..  ..... .. . ..  .....     
.                                                                                                                                         ... ... .:*****:---------------------------------------------------------------------------------------------:*::::::*:. . .                                                          ................................-................. ......................-...   
.                                                                                                                                         ... .....-****:-----------------------------------------------------------------------------------------------**::*:**- .  .                                                          ....-...........................-.......... .-.............-.............-...   
.                                                                                                                                         ... ......:***------------------------------------------------------------------------------------------------:**:*:*:.....                                                           ....-.. .............................. ...................---...........---.    
.                                                                                                                                         ... ......-**:-------------------------------------------------------------------------------------------------:**:*:-.....                                                           ....--.........-................-................--..--....--...--..--...-...   
.                                                                                                                                          ..........::---------------------------------------------------------------------------------------------------:*:*-.. .. .                                                          ....----..-.-..-..-..-.-......---..-.-..-..-......-..----..-.....-..-.-..-...   
.                                                                                                                                          ..........------------------------------------------------------------------------------------------------------:*:......                                                             ...--..-.-.....---..--......-..-..-.....--..-... ...-..-..-.............-. .   
.                                                                                                                                              . .....------------------------------------------------------------------------------------------------------*:......                                                             ...--.-..-.....---..--.......-.--.-.....--..-....-..-..-..-..-..-.......-...   
.                                                                                                                                               .......-----------------------------------------------------------------------------------------------------:- .....                                                             ....---...--....-........-....--...--...-...-....-..-.........-.-...........   
.                                                                                                                                               .. ....-----------------------------------------------------------------------------------------------------........                                                            .................-...........................................................   
.                                                                                                                                             .........-----------------------------------------------------------------------------------------------------........                                                            ................-............................ .    ..........................   
.                                                                                                                                             .. .......----------------------------------------------------------------------------------------------------.......                                                             ....................... ................... .... .  ........................    
.                                                                                                                                                      .---------------------------------------------------------------------------------------------------.. .                                                                                                                                                 
.                                                                                                                                                      .---------------------------------------------------------------------------------------------------.