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