## ### ###### ## ## ######## ######## ###### ## ##
## ## ## ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ## ##
## ## ## ## ##### ## ###### ## #########
## ## ######### ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ## ## ## ## ##
###### ## ## ###### ## ## ## ######## ###### ## ##