oooooo     oooo                                             o8o                        
 `888.     .8'                                              `"'                        
  `888.   .8'.oooo.    .ooooo.  oooo d8b ooo. .oo.  .oo.   oooo  ooo. .oo.    .oooo.   
   `888. .8'`P  )88b  d88' `88b `888""8P `888P"Y88bP"Y88b  `888  `888P"Y88b  `P  )88b  
    `888.8'  .oP"888  888ooo888  888      888   888   888   888   888   888   .oP"888  
     `888'  d8(  888  888    .o  888      888   888   888   888   888   888  d8(  888  
      `8'   `Y888""8o `Y8bod8P' d888b    o888o o888o o888o o888o o888o o888o `Y888""8o 
