........................
.::::::::::::::::::::::::::::::::.
.::::::::::::::::::::::::::::::::::::::::.
.::::::::::::::::::::::::::::::::::::::::::::.
.::::::::::::::::::::::::::::::::::::::::::::::::.
.::::::::::::::::::::::::::::::::::::::::::::::::::.
.::::::::::::::::::::::::::::::::::::::::::::::::::::.
.::::::::::::::::::::::::::::::::::::::::::::::::::::::.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::____:::::::::::::::::::::::::
::::::::::::::::::::::::::,o#######o,::::::::::::::::::::
`:::::::::::::::::::::::,o###########o,::::::::::::::::::'
======================================================
=====================o###############o================
::::::::::::::::::::::###############::::::::::::::::::::
`::::::::::::::::::::::`o###########o'::::::::::::::::::'
`::::::::::::::::::::::::`*#####*'::::::::::::::::::::'
`::::::::::::::::::::::::::::::::::::::::::::::::::'
`::::::::::::::::::::::::::::::::::::::::::::::'
`::::::::::::::::::::::::::::::::::::::::::'
`::::::::::::::::::::::::::::::::::::'
`::::::::::::::::::::::::::::::'
`::::::::::::::::::::::'
`''''''''''''`