##################################################
#S   #      #     #       #      #       #     E#
# ## # #### # ### # ##### # #### # ##### # ##### #
#    #    # #   # #     # #    # #     # #     # #
##################################################
