.
   .o     o.                              o
 o8P'     `88o                         oo88
888'       `88b                        `888
888         888  oo88  oo88   .oooo.    888  oooo   .ooooo.
888  ooooo  888  `888  `888  `P  )88b   888 .8P'   d88' `88b
888  `888'  888   888   888   .oP"888   888888.    888ooo888
`88b.,888.,d88'   888   888  d8(  888   888 `88b.  888    .o
  `Y8b888d8P'     `V88V"V8P' `Y888""8o o888o o888o `Y8bod8P'
      888                               o8o
      o8o     mga                        Y
       Y