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