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