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