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