############ #### #####
############ #### #####
##### #####
################# ##### ########## ################## ################*
################### ##### ########### #################### ###################
################### ##### ########### #################### ###################
#### ##### ##### #### ##### ##### #### #####
################### ##### #### ##### ##### #################*#
################## ##### #### ##### ##### ################*#
#### ##### #### ##### ##### ####
################### ################## ################## #################### ##############*####
################### ################### ################## ################## #################*#