.oooooo.    ooooooooo.         .o.       oooooo   oooo
 d8P'  `Y8b   `888   `Y88.      .888.       `888.   .8' 
888            888   .d88'     .8"888.       `888. .8'  
888            888ooo88P'     .8' `888.       `888.8'   
888     ooooo  888`88b.      .88ooo8888.       `888'    
`88.    .88'   888  `88b.   .8'     `888.       888     
 `Y8bood8P'   o888o  o888o o88o     o8888o     o888o    
                                                        
                                                        
                                                        
      .o.       ooooo      ooo oooooooooo.              
     .888.      `888b.     `8' `888'   `Y8b             
    .8"888.      8 `88b.    8   888      888            
   .8' `888.     8   `88b.  8   888      888            
  .88ooo8888.    8     `88b.8   888      888            
 .8'     `888.   8       `888   888     d88'            
o88o     o8888o o8o        `8  o888bood8P'              
                                                        
                                                        
                                                        
oooooooooo.  ooooo        oooooooooooo ooooo     ooo    
`888'   `Y8b `888'        `888'     `8 `888'     `8'    
 888     888  888          888          888       8     
 888oooo888'  888          888oooo8     888       8     
 888    `88b  888          888    "     888       8     
 888    .88P  888       o  888       o  `88.    .8'     
o888bood8P'  o888ooooood8 o888ooooood8    `YbodP'