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