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