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