           ,ggg,                                        
          dP""8I    I8                                  
         dP   88    I8                                  
        dP    88 88888888 gg                            
       ,8'    88    I8    ""                            
       d88888888    I8    gg    ,ggg,,ggg,     ,gggg,gg 
 __   ,8"     88    I8    88   ,8" "8P" "8,   dP"  "Y8I 
dP"  ,8P      Y8   ,I8,   88   I8   8I   8I  i8'    ,8I 
Yb,_,dP       `8b,,d88b,_,88,_,dP   8I   Yb,,d8,   ,d8b,
 "Y8P"         `Y88P""Y88P""Y88P'   8I   `Y8P"Y8888P"`Y8