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