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