*                                        .-ccc-,
*                                       (       )
*                                     (         )
*                -!x!-               (          )
*              /c     c\           (           )
*             !         !         (           )
*             !         !        (           )
*             !     __ _,       (cccc-(     )
*            /\/\  (. ).)       `_'_', (   )
*             C       __)       (.( .)-(  )
*             !   /ccc  \      (_      ( )
*             /   \ c===='    /_____/` D)ee
*           /`-_   `---'         \     |ee
*      .__|c-/^\-c|_/_   |\/\/\/\||    |ee
*     __.         ||/.\  |       |OooooOee
*     \           ---. \ |       |      \
*    _-    ,`_'_'  .c\  \|__   __|-____  / )e
*    <     -(. ).)    \  ( .\ (. )     \(_/ )e
*    c-       _) \_- ooo @  (_)  @      \(_//.e
*   / /_C (-.____)  /((O)/       \     ._/\c_.e
*  /   |_\     /   / /\\\\`-----''    _|o<  |__
*  |     \ooooO   (  \ \\ \\___/     \ `_'_',  /
*   \     \__-|    \  `)\\-'\\ '--.  /_(.(.)- _\
*    \   \ )  |-`--.`--=\-\ /-//_  '  ( c     D\
*     \_\_)   |-___/   / \ V /.c \/\\\ (@)___/ c|
*    /        |       /   | |.  /`\\_/\/   /
*   /         |      (   C`-'` /  |  \/   (/  /
*  /_________-        \  `C__-c   |  /    (/ /
*       | | |          \__________|  \     (/