:::::::::::::::::::::::::--------------------------
:::::::::::::::::::::::::--------------------------
:::::::::::::::::::::::::--------------------------
:::::::::::::::::::::::::-------------------------pppppppppppp
:::::::::::::::::::::::::--------------------------............
:::::::::::::::::::::::::--------------------------............
::::::::::::::::.::::::::--------------------------............
:::::::::::::::::::::::::--------------------------............
:::::::::::::::::::::::::--------------------------............
:::::::::::::.:::::::::::--------------------------............
:::::::::::::::::::::::::--------------------------............
:::::::::::::::::::::::::--------------------------............
:::::::::::::::::::::::::--------------------------............