:       :     ## :      :       
:       :    ####:      :       
:       :   #######     :       
:       :  #### ###     :       
:        ## ########    :   #   
:       ############    : ####  
:      ##############   ####### 
:... #################.##### ###
### ######### ####### ##########
# ########## ####### ###########
:################## ############
######################### ######
###### ###### ### ######## #####
#### ########### ######### #####
########## ################ ####
## #############################
