:::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...............

:::::::::::::::::::::::::::::::::::::::::::::::::::::....
:::::::::::::::::::::::::::::::::::::::::::::_-------------------------------------
::::::::::::::::::::::::::::::........................................................................................