:::::::::: ::: :::: :::: ::::::::::: ::: ::::::::::: :::::::::: ::::::::: :::::::: :::::::::: :::::::: ::::::::::
:+: :+: :+: +:+:+: :+:+:+ :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+:
+:+ +:+ +:+ +:+ +:+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+
:#::+::# +#++:++#++: +#+ +:+ +#+ +#+ +#+ +#+ +#++:++# +#++:++#+ +#+ +:+ +#++:++# +#++:++#++ +#++:++#
+#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+
#+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+#
### ### ### ### ### ########### ########## ########### ########## ######### ######## ########## ######## ##########