ll'''''''''''''lll,,,,,,,,,,,,,,,,,,,,,
    'll          '''''''''ll
    ll,,,,,,,,,,,,,,,,,    ,,,,,,,   ll,
 l''''''''''''lll,,,,,,,ll''    ll' '''''''''''''
             ''ll,,,,,,,,
 ''''''''ll,,,,,,,,,          ''''''''ll                    ,,,,,,,,,,,
      ,l''   ,,ll''''ll,,,,,,,,,, ll ll''''''''ll,,,,,,,,,,,,               l'   '''''''''''''''ll,,,,,,,,,,,,,
     ,,l''     ,l'      ''''''' l'        '''''''''ll,,,,,,,,,,        ,l'           ''''ll,,
    ,l''     ,ll'          '''''ll,,,,,,,,,,,,,,,,,,       ''''''''''ll    '''''''''''''llll,,,,,,,,,,,,      lll      ,,l'''''''ll,,,, ,,,,,,,,
    l,,,,,,   ,ll'               ''''''''''''ll,,,,,,,,,,,  l'           ,,,,l''''      ,,ll'     ,,ll''    ,lllll'  ''''lll
      ''''''lll'                        '''''''''        ,,,,ll'''       ,,,lll''     ,ll''   ,llll,ll'    ll
                                    ,,,,ll''''       ,,,'''''''''''ll,   ,ll''            ''ll,,,,,,,,,,         ,,ll'''ll,,,,,,,
                                     ,,,,ll''''         'lll     'l, lll,,   ,,,,,,,,,,,,         '''lll      ,,l''    ,ll' ll'''''''ll,,,
                                    lll       ,,,,    ,,,,,ll,ll''''' llllllllll,,,ll''   ,ll    ,l''ll,,,,,,,,,, ll  ,ll'''''''''''''    ,llll ,ll    l'
                                     'll,   ,,,,l'''' ''ll,     'll,,  ,ll'   ''''''''''ll''    ll'     ''''  lll,,,,,         ''''''''    ll,,
                                       'll,,ll''''     ''ll,,     'll, ,ll,,,,,,, ,          '''''''ll,,,,,,,,,,     'lll''    ,ll,,,,,,,,,,,      ''''ll
                                            'l,,, ,,,,,ll'''''    ''''''''''''''lll           ''''ll,,,,,,,,,ll'    ,l'    'l'    ,,,,,,,,,ll
                                              ''''''          ,ll'    ,l''''''''ll,,,,,,,,,,,lll   ''   ,lll,,   ,,'    ll'
                                                         l'   ,ll'      ''lll,,,,           ''''''    ll,,
                                                         '''ll,,,,,,,,l'        ,ll''    ,ll'll,,,,,,,,,,,,,      '''''''ll
                                                                     l'     ,l''     l'    ,ll,,,,,,,,ll'
                                                                     '''''ll,,,,,,l''     ,ll    ,ll
                                                                           lll,,   l'
                                                                             ''''''''ll'