''''''      ''''''''''''''''';+zZoo#########oooooo######oooooo#####oZZZZZz*;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;+ZZZoooZz*'';++*Zoo###oooooooooo################################oooZZZZZZzzzzzzzz*********************************zzzz
        '        ''''''''''''''''''';*zooo########oooooo#####ooooooo####ooZZZZZz;  ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;*ZZoooozz+' '''+zZZoooooooooooo###############################ooooZZZZzzzzzzzzzz*************************************z
               ''''''''''''''''''''''';zoooo#######oooooo#####oooooo#####oZZZZZZ* ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;+zZooooZz*;    ';*zZoooooooooo################################oooZZZZZzzzzzzzzzzzz************************************z
              ''''''''''''''''''''''''';*Zoooo########ooo######oooooo####oooZZZZz' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;+*zZoooZZz*;    ';*Zoo########################################oooZooZZZZZZZZZZZZZZzz***********************************z
              '''''''''''''''''''''''''''+zZoooo########o######oooooo#####ooooooZ; ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;***zooZZZz*;'   ';zZo#########################################oooooooZZZZZZZZZZZZzz*************************************
              '''''''''''''''''''''''''''';+zZooo###############ooooo######oooooo*'   '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'';;+*zzZZZZZZz*+;'  '*Zo###########################################oo###ooooooooZZzzz***************************************
           '''''''''''''''''''''''''''''''''';*Zoooo#############ooooo#####ooooooZ'       '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';+zZZZZZooZz*+'' '+zo####################################################oZZZzzzz*****************************************
            ''''''''''''''''''''''''''''''''''';zZoooo###########ooooo#####ooooooo+          ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';*ZZZzZo#ooZ+'''';*Zo##########oo####################################oooZZzzzz********************************************
          '''''''''''''''''''''''''''''     '''';*Zoooo####o######oooo#####ooZZZo#Z'          ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';*ZZZZZo###oZ*;'';+zo########oo####################################oooZZzzz************************************************
           ''    '''''''''''''''''              ';+zooooo###o#####ooooo####ooZZZooo*   '       ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';*ZoZZZo#####oZ*;;*zoo###########################################ooZZzzz****************************************************
           ''''           '''''                   '+zZooooo#oo####oooo####ooZZZZoZoZ' ;+'       ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+ZoZZZo######ooZZZZZoooo######################################ooZZzzz*******************************************************
           '''                                     ;+*Zoooo#######oooo####ozZZzzZZZo+ +*;        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';*ZoZZoo######oooooooooo####################################oooZZzz*******+++**++++++++**************************************
          '''''                                    '';*zoooo#####oooooo###oZZZzzzZzZZ+**;          ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+ZZZZo##########oooooo#####################################ooZZzz*****+++++++++++++++++++++*+********************************
         '''''                                     ''';*zoooo####ooooooo##ooooZzzZZZoZz*;  +;       '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';*ZZZZ############ooo#########################ooooo######oooooZzz*****+++++++++++++++++++++++++++++++++++++++++++*++**********
      '''  ''                                       ''';;*Zoooo###oooooo###oooozzZZZooZz+  **        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ';zZZZo#######################oo#########ooo#####ooo#####oooooZZz******++++++++++++++++++++++++++++++++++++++++++++++++++******
''   '''''''                                         '''';*Zoooo##ooooooo###oooZZZooooZZ*;'*z'        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '+zZZZoo##o################ooooooooooooo#######o#ooo####oooooZZzzzzzz**++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'''''''''''   ''''   '                               ''''';*Zoooooooooooooo#o#ooZZZooozZz+;+z+          ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''   '*zZZZooooo#############oooooooooooooo##################oooooZZZZZZz**+++;;;+;+++++++++++++++++++++++++++++++++++++++++++++++++
'''''''''''' '''''' '' '                             '''''';*ZooooooooZoooooo##ooZZoooZzz*;+**           ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''     ';zzzZZoooooooo########ooooooooooooooo####################ooooZZZZZz**+++;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++++
''''''''''' ''''''' ''' '                             '''''''+zZoooZZZZoooooo###ooZooooZZz+*+z;            '''''''''''''''''''''''''''''''''''''''''''''''''''''''''        '+zzzZZZoooooooo####oooooooooooooo#########################oooooZZz*+;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++
'''''''''''''''''''''''''                             '''''''';zZoZZZZZZoooooo###ooooooooZ+++Zz'            '''''''''''''''''''''''''''''''''''''''''''''''''''''''        ';*zzZZZoo#oooooo##oooooooo######################o###########ooooZz*+;;'';;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++
''''''''''''''''''''''''' '                           ''''''' '+zZoooooZoooooo####oooooooZ+++Zo;              ''''''''''''''''''''''''''''''''''''''''''''''''''''        ''+*zZZZZooooZooooooooooo###############oooooooo#o###########oooZZz+;''''''''';;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++
'''''''''''''''''''''''''''                           '''''''  '+zooooooooooooo####oooooooz++o#Z;+              '''''''''''''''''''''''''''''''''''''''''''''' '         ';+**ZZoooooooooooooooo##########oooooooooooooooo########ooooZZz*+;;''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++
'''''''''''''''''''''''''''                           ''''''    ;*ZooooooZZZooooooooooooooZ*+o#o**'              '''''''''''''''''''''''''''''''''''''''''               ';+*zZZoooooooooooooo##########oooooooooooooooo#######oooZZzz*+;;;''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++
''''''''''''''''''''''''''                              ''''    '+ZoooooooZZoooooooooooooooZzo##**'                 ''''''''''''''''''''''''''''''                      ';+*zzZZooooooooooo#############ooooooooooooooo#######oZZzz*++;;;;'  '     ''''''''''''''';;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++
'''''''''''''''''''''''''''                             ''''     ;zZooooooZZZooooooooooooooooo##z*+                  ''''''''''''''''''''''''''''                       ;+*zzZZZooo####ooo##########################o########oZZzz*+;;;;;''''          '''''''''''''';;;;;;;;;;;;;;;;;;;++++++++++++++++++++
'''''''''''''''''''''''''''                             '''      '*ZoooooooZZooooooooooooooooo##Zz*  ;                  ''''''''''''''''''''''''                       '+**zzZZoooo######ooo##########################oooooooZZzzz**++++;;''              ''''''''''''';;;;;;;;;;;;;;;;;;;++++++++++++++++++
'''''''''''''''''''''''''''                             ''        +zooooooZZZZoooooooooooooooo##oZz '*;                      ' ''''''''''''''''                       ';**zzZZZooo########oooo########################oooooooZZZZZz***+'''                  ''''''''''''';;;;;;;;;;;;;;;;;;+++++++++++++++++
'''''''''''''''''''''''''''                                       ;*ZoooZZZZZZZoo#oooooooooooo##oZz  ++'                            ''''''''' '                       ;**zzZZZoo##########Zzo###########################oooooooZZz*+;'                        ''''''''''''';;;;;;;;;;;;;;;;;;+++++++++++++++
'''''''''''''''''''''''''''         '  '''                        '+ZoooZZZZZZZoo#oooooooooooo##oZZ' +z;                               ''                            '+*zzzZZoo###########oZooo################ooo##o#######ooZz*+;;                             '''''''''''';;;;;;;;;;;;;;;;;;+++++++++++++
'''''''''''''''''''''''''''       '''''''''                        ;zooooooooZoooooooooooooooo##ooo' +Z+                                                             ;+*zzZZoo###########oooo################oooo###oo####ooZz+;''                                ''''''''''''';;;;;;;;;;;;;;;;;++++++++++++
''''''''''''''''''''''''''''      '''''''''                        '*Zooooooooooooooooooooooo####oo; +Z*                                                            ;+*zzzZoo###########################################ooZ*+;                                      '''''''''''';;;;;;;;;;;;;;;;;;;+++++++++
''''''''''''''''''''''''''''    ''''''' '''                        '+ZZooZoooooooooooooooooooo###oo; +oz'                                                          ';*zzzZooo##oo####################################oooZz*;'                                        '''''''''''';;;;;;;;;;;;;;;;;;;++++++++
'''''''''''''''''''''''''''''''''''''''' '                          ;zZooooooooooooooooooooooo###oo+ *oz'                                                          ;+*zzzZooooooo###################################oZZz+;'                                            ''''''''''''';';;;;''''';;;;;;+++++++
'''''''''''''''''''''''''''''''''''''' ''''                         '*ZZooooooooooooooooooooooo##o#+ *oZ;                                                         '+*zzzZZZooooo##################################ooZ*;'                                                '''''''''''''''''''    ';';;;;;+++++
'''''''''''''''''''''''''''''''''''''''''''                         '*ZZZZooooooooooZoooooooooo###o+ *oZ;                                                        ';*zzzZZZZooo###########################oooooo##ooZ*;''                                                 ''''''''''''''''''    ''';;;;;+++++
''''''''''''''''''''''''''''''''''''''''''''                         +zZZZoooooooooZZZoZZoooooo###o+ *oZ+                                                       ';+zzzzZZZooo#######################oooooooooooooZZzz*++;;;;'                                             '''''''''''''''''    ''';;;;;;++++
''''''''''''''''''''''''''''''''''''''''''''''                       '*ZZZZZooooooZZZZZoZoooooo###o*'*oZ+                                                       ;+zzzzZZZooooooo##############oooooooooo##o#ooooooooooZZZzz**;                                             '''''''''''''''''    ''';;;;;;;++
'''''''''''''''''''''''''''''''''''''''''''''''                      '+zZZZZZZZZooZZZZZZoooooo##oooz+zoo*                                                      '+*zzzzzzZooooo###############ooooo#######oooooooo##oooooooZz*;'                                              '''''''''''''''     '';;;;;;;;+
'''';;''''''''''''''''''''''''''''''''''''''''''                      '*ZZZZZZZZZooZZZZZooooooo##ooZZZooz;                                                     ;*zzzzzzzzZooo###########################oooooooooooooooooZ*+;'                                               ''''''''''''''''     '';;;;;;;;
'';;;;''''''''''''''''''''''''''''''''''''''''''''                     ;zZZZZZZZZZZZZZZZZZooooo####oooooz*'                                                   ;+**zzZZZzzzoo############################ooooooooZZzz***+;                                                    ''''''''''''''''      ';;;;;;;;
';;;;'''''''''''''''''''''''''''''''''''''''''''''                     '+zZZZzZZZZZZZZZZzzZZoooo######ooz*;                                                  '+***zZZoZZZZooo##oo######################oooooZZz*++;'''                                                       ''''''''''''''''      ';;;;;;;;
;;;;;;;'''''''''''''''''''''''''''''''''''''''''''                      '*ZZZZZZZZZZZZzz**zZZoooo#####ooZz+                                                  ;+**zZZoooZZZoooo#####################ooo#oooZZzz*++;'                                                     ''  '''''''''''''''''     '';;;;;;;;
;;;;;;;'''''''''''''''''''''''''''''''''''''''''''                      ';zZZZZZZZZZZz*****zZZZoooo###oozz*                                                 ;+*zzZZoooZZZZoo#####oooo###ooooo#oo#ooooooooooZZz*+;'                                                    ''''''  '''''''''''''  '' '''';;;;;;;;
;;;;;;;''''''''''''''''''''''''''''''''''''''''''''                      '+ZZZZZZZZZzz****+*zZZZooo##oooZzz'                                               ;+*zzZZooooooooo######ooooooooo####oooooooo###oooz*+'                                                      '''''''  ''''''''      ''''''';;;;;;;;
;;;;;;;''''''''''''''''''''''''''''''''''''''''''''                       ;*zZZZZZZZzz***++++*zZZooo##oooZz+                                              '+***zZZZoooooo########ooooo#######ooooooooo##ooZz+;'                                                       '''''''  '''''''      ''''''''''';;;;;
;;;;;;'''''''''''''''''''''''''''''''''''''''''''''                       ';*zzZZZZZzzz**+;;+++zZoooo#oooZz*'                                            ;+***zZZZoooo###########oo#############ooo###ooZz+;                                                          ''''''''''''''''     '''''''''''';;;;;
;;;;;''''''''''''''''''''''''''''''''''''''''''''''                        '+zzzZZZZzzz**++;+++*ZZoooooooZZz+                                           ;****zZZZooo##########oo#################o##oooZ*;                                                            ''''''''''''''''     ''''''''''';;;;;;
;;;;;;'''''''''''''''''''''''''''''''''''''''''''''                        ';*zzzZZZZzzz**+++++*ZZoooooooZZz*;                                         ;*z**zZZZoo########oooo#####################ooZz*;                                                            '''''''''''''''''    '''''''''''';;;;;;
;;;;;''''''''''''''''''''''''''''''''''''''''''''''                         ';*zzzzZZZzzz***++*zZoooooooooZZz+;                                      '+****zZZoo###########o#######################oZz*;                                                              '''''''''''''''''''''''''''''''';'''''
;;;;'''''''''''''''''''''''''''''''''''''''''''''''                          ';+*zzzZZZZzz*****ZZooooooooooZz*;'                                   ''+****zZooo###################################ooZ*;'                                                            ' '''''''''''''''''''''''''''''''''''  '
;;;;'''''''''''''''''''''''''''''''''''''''''''''''                          '''+*zzZZZZZzzzzzzZooooooooooooZz+;;                                 ';+zz***zZoo###################o###############ooZz*;''                                                             ''''''''''''''''''''''''''''''''''''  
;;;;''''''''''''''''''''''''''''''''''''''''''''''''''                          ';**zzZZZZZZzZZZoooooooooooooZz+*+                              ';;+zz***zZoo##################oooooooooZoooooooZZZZz*;;''                                                            '''''''''''''''''''''''''''''  '''''  
;;;;''''''''''''''''''''''''''''''''''''''''''''''''''                           ';+*zzZZZZZZZZZooooooooooooooo**+                             ';;+zz***zoo#############oooooZZoZZZZZzzzzzzzzZZZZZZZzz**+;'                                                             ''''''''''''''''''''''''''     '''''
;;;''''''''''''''''''''''''''''''''''''''''''''''''''''                            '+*zzZZZZZZooooooooooooo####oz*;                           ';;*z***zZooo########ooZZZZZZZZZZZzzzzzzzzzzzzzzzzzzzZzZZZZ*;'                                                           ''''''''''''''''''''''''''        '''
;';'''''''''''''''''''''''''''''''''''''''''''''''''''''                            ';*zzZZZooooooooooo#########oZ*                          ';+zzzzzzZooo######oZZzz*zzzzzzzzzzzzzz*****zzzzzzzzzzzzZooo#oz;'                                                          '''''''''''''''''''''''''         ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '                        ';*zzZZZoooooooo############oz+                        ';*zzzzzZZoo#####oZZzzzz************zz*******zzzzzzzzZZooo######Z*;                                                          '''''''''''''''''''''''          ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                           ;*zZZZoooooooo############oZz;                      ';*zzzzzZZooo###oZz***zz*+**+*++**************zzz*zzzoo###########oZ;                                                         '''''''''''''''''''''''         '''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                            ';*zZZooooooo############ooZz'                    ;+*zzzzzZoooo##oZz***+**++++++++++++**********zzz**zZo########oo#####o*;                                                        ''''''''''''''''''''''         '''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                             ';+zZZoooooo#oooo######ooooZ*;                  ;+*zzzzZZZZZoooZZzz***+++;;;;;;++++++*********zzz**zoo#######oooooooo##o*'                                                      '''''''''''''''''''''''       '''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                                ';zZoooooooooooooo####ooooZ*;                ;****zzzZZZZZooZZzz*+*+;;;;';;;;;;;;+**++*****zzz**zZo######ooooooooooo##Z+'                                                      ''''''''''''''''''''''''    ''''';
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                                  ;*Zoooooooooooooo###ooooZZz+              '*****zzZZZZZo##Zzz**++;';;''';;;;;;+++++*****zz*z*zZoo###ooooooooooooooo##z;'                                                     '''''''''''''''''''''''''''''''';;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                                '+ZZooooooooooooo####ooooZz+            ;+****zzzZZZZo##ozz**+;+;'''''';;;;';+++;+****zz****Zoooooooooooooooooooooo#o*'                                                     ''''''''''''''''''''''''''''''';;;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                                '*ZZoooooooooooo#####oooZZz*         '+*+****zzZZoooo##oz***+;+;''''';';;'';++;+*z*+*zz***zZooZZZooooooooooZZZooooo#Z;'                  '''''''                           '''''''''''''''''''''''''''''';;;;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                                '+zZZZZZZzzzzzzzZZooooooooZ*'     '+******zzzZZoooo###Z***+;;;'''''''';'';++;;***++*z****ZoZz+*zZZooooZZZZZZZZoooooo+''              ''''''''''''                           '''''''''''''''''''''''''''';;;;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                                 ;*zz**++++++++****zzZZZZZZzz*+;;+**+****zzZZoooooo##oZ**++;;;' ''''''''';;;;+**++*z****zooz+++*ZZZooZZZZZZZZZZooo#o*''           ''''''''''''''''    ''' ''             ' ''''''''''''''''''''''''''''';;;;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                               ';+++++++++++++++******zzzzZZZzz**+++***zzZZooooo####oz*+++;';'  '''''''';;;;**+;+*z****Zooz*++*zZZZZZZZZZZZZZZooo##Z''' ''   '''''''''''''''''''''''''''''''''''        ''''''''''''''''''''''''''''''';;;;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                              ';;;;;;;;;+++++****zzz********zzz**++++**zZZZoooo######oz*+++;'''''''''''';;;;+*+;+*z****ZoooZ*+++zZZZZZZZoooZZZZZooo#o;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                              '''''';;;+++++***zzzzzzzz***********++**zZZZZoooo########Z*+++;;''''''''''';';;++;++*z****o#oooz*+*zZZZZZoo###ooZZZooo##+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                            '''''';+++**zzzzzzzzzzzzzzzz**zzzz****zzZZZZZoooo####oo###Z*+++;;'''''''''''';;;+++++z****Z###ooZ***zZZZZZoo#####oZZooo##+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                            ''' '';;+**zZZZZZZZZZZZZZZzzZZZZZZZZZZZooooooooo#####oo####Z**+++;;'''''''''';;;++++****z**o###ooZZzzZZZZZoo#oooo#ooZZoo##*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                            '' '';+*zzzZZooooooooooooZZZZZZZZZZooooooooooo#######oo####Z**+++;;'''  '''';;;++++****zz*zo###oooZZzZZZZZo#oooooo#oZZZo##*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                           ''''';+*zZZoooooooooooooooooooooooooooooooo###########o#####ozzz*;'''      ''';;++*****zzz*Z####oooZZZzzZZZoooZoooo#oZZZo##+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                           '''';+*zZoooooooooooooooooooooooooooo#######################oZZ*+;'''   '''''';;++***zzzZZZo####oooZZz*zzzzZoZZoooo#oZZoo##+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                           ;;'';*ZZZZooooooooooooooooZZoooooooo#########################oZ*+;;'''''''''';;++******zzZZo###ooooZzz*zz*zzZZZooooooZZoo#o;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                           ;;;+++zZZZZZZZZoooooo#ooooooooooooo##########################oZ*++;''         '';++*zzzzzzzZo##oooZzzz*zz*zzzZZoooooZZZo##o;  ''''''''''''''''''''''''''''''''''''''''''''';;''''''''';''''''''''''''';';;;;;;;;;;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                         ';;*z***zzzZZZZoooo#####ooo##oooooo##########################oZ*+;'             ';+*zZZZZZZZZoooooZzzzzZzzzzZZZooooooZoo##Z'  '''''''''''''''''''''''''''''''''''''''''''';;;;;''';;'''''''''''''''';;;;;;;;;;;;;;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                             ';++*zzz*zzzZZooo############ooooo###########################o*+;'              ';+*zZZZZZZZZZooooZZzzZZZZZZoZZooooooooo#o*'  '''''''''''''''''''''''''''''''''''''''''';;;;;;;;;';;'''''''''''''';;;;;;;;;;;;;;;;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                            '';+**zzzZZZZZZoo#############oooo############################Z+;''              ';+*ZZZZZZooooooooZZZZZZooo#ooZooooZooo##Z+  '''' '''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;'';''''''''';;;;;;;;;;;;;;;;;;
'''''''''''''''''''''''''''''''''    ''''''''''''''''''''''                             '';+++*zzZZZZZZZZooooo######oooooooo##########################oz+;''             '';*zZZZzZZzZooooooZoooooooo##oooooooo###o*'  ''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;'''''''''''';';;;;;;;;;;;;;;;;;
   ''''''''''''''''''''''  ''' '         '     ''   ''''                                ''++*****zZZZZoZZZoooooooooooooooooo##########################o*+'''             ';+zZZZZzzZz*zooooooooooooo#ooo#ooooo####z'   ''' ''''''''''''''''''''''''''''''''''''''''''''';''';;'''''''''''';;;;;;;;;;;;;;;;;;
   ''''''''''''''''''''''  '''                           '                              ';+*+;'' ;*ZZZooZZZooooooooooooooooo##########################o*;'''            ';+*ZZoZZZZZZ**ZZo#ooooooooo#ozZ###oo###oz;     '      ''''''''''''''''''''''''''''''''''''''';;';;'''''';;;'''''';;;;;;;;;;;;;;;;;;
     ''''''''''''''''                                                                  '';+'       *ZZZZZZZZZooooooooooooooooooo######################oz++;'''   '''';;+*zzzzZZooZZoZz+*zzo#ooo##ooo#z+;*zZooooz;'              ''''''''''''''''''''''''''''''''''''''''''''''''';''''''';;;;;;;;;;;;;;;;;;;
      ''  ''''  ' '                                                                    ';;'        ;zZZZZZZZzZZooooooooooooooooooo####################oZzz*+++;''';+zZZZzz*+++zZooZZoz+**zoo#o###oooo*;'''';;;;'                 '''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;
                                                                                        ;;'         +zzZZZZZzzZZooooooooooooooooooo###################ozzzZZz*+'';+zZZZz***+;;+zZZZZZZ**zZoo#####oo#o+''                         '''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;
                                                                                        ';'         '*zzZZZZZzzZZZZZZooooooooooooooo##################Z+++*zZZ*' ;*zzzzzzzz*+++*zZZZZZZ**Zooo####oo#Z;'                          ''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;
                                                                                         ;;         ';*zzZZZZzzzZZzzzzZooooooooooooooo################Z+++zzZz+'';***zZZoZZZzz*zZZZZZZZz*ZZoooo#####z;'                          ''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;
                                                                                         ''          ;+*zzZZZZzzzZzzzzzZZoooooooooooooo###############Z*zZZZZz+''+***zZzZoZz*zZZZZZZZZzz*zZo#ozo##o#z'                           '''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;
                                                                                                     ;++*zzzzzZz*zzzzzzzZZoooooooooooooo##############ozz+zz**; ;***+***zZz*+zZZZZZZZzzzz*ZZoZ+*##oo*'                         '''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                     '++***zzzzzzzzzzzzZZZooooooooooooooo#############oz*;;+++' +z**+++++++*zzZz*zZZZzz*zzzooz++o##o+'                         ''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                      ++***zz**zzzzzzzzZZZZooooooooooooooo############o*;;;++; '+z**;;;++++**z**+*ZZZZz*zZzzoz+;Z##Z;'                        ''''''''''''''''''''''''''''''''''';;''';''''';''';';;;;;;;;;;;;;;;;;;;;;;;;;;
       '                                                                                              ;++*+*z*+zzzZzzzzZZooZoooooooooooooooo##########Z+;';;'  ;*z**;''';;;+++;++*ZooZzzzzoZzz+;zooz;'                       '''''''''''''''''''''''''''''''''''''';';;'';'';'';;'';;;;;;;;;;;;;;;;;;;;;;;;;
       ''                                                                                             ;++*++z*+*zzZZZZzzZZoZoooooooooooooooooo########Z;''''   ;zzz*+    '''';;+*zZoZZzZzzoooz+;+Zo*''                      ''''''''''''''''''''''''''''''''''''''''';;;';;'''''';'';;;;;;;;;;;;;;;;;;;;;;;;
      ''''''                                                                                          '+++++*z*+*zZZooZZzZZoooooooooooooooooooo#######z;'      +zzz*+'      '';+*ZooZZzZzzZooZ*++*Z+'                     '''''''''''''''''''''''''''''''''''''''''''''''''''''''';;';;;;;;;;;;;;;;;;;;;;;;;
      '''''''                                                                                          +*+++*z***zzZZooZZzzZoooooooooooooooooooo#####o*;'     '*Zzzz*'      ''+*ZooZZZZZzZoooZz*;+**'                    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;''';;;;;;;;;;;;;;;;;;;;
     ''''''''                                                                                          ;*++++*z***zzZoooZZzzZZooooooooooooooooooo###oo*;'     ;zZzzz*;'     ';*zZooZZZZZZoooZzZZ+;++;                  ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';';;;;;;;;;;;;
'  ''''''''''                                                                                          '+++++*z*****zZZoZZZzzzZZooooooooo##ooooooooooo*;'  '''+ZZzzz*;'''''';+zZoooZZZZzZoooZzzZZ+;;;                 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;
''''''''''''''                                                                                         ';;+*++****++*zzZZZZZZzzzZZoooZooo###oooooooooo*;'  ';*zZzzzz*+;;''';+*Zo#ooZZZZzZoooZ*zzZz+;;'              ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;
''''''''''''''                                                                                          ;;+********+++*zZZZZZZZZZZoooooooo##ooooooooooz+;''';*****zz*+;;;;;+*zZo#oZZZZZZooooZ***zz+;;;''         '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;
'''''''''''''''                                                                                         ';++****++**++**zzzzzZZooooooooooo###oooooooooz*;''';+***zzz*+;;++**zzZo#oZZZZZZooooZ***zz*+;''''     ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;
'''''''''''''''                                                                                         ';;++****++**++*zzzzzzzZoooooooooo###oooooooooZ*+;'';;+*zzz**;;;+**zZZZoooZZZZZoooooo*+*Z**+;''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''                                                                                           ;;;+****+++*+;+*zzZZzzzZoooooooooooooooooooooZz+;;';;+*zz**+;;;+**zZZZoooZZZZZooooooz+*z*++;' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''                                                                                           ';;;+*+**+++**+;+*ZZZZZZoo#oooooooooooooooooooz*;;';*zZoZz*+;;;+**zzZZoooZZZZoooooZZZ*+*+*+;' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''                                                                                                  ';;++++***++**+++*zZZZZZo##ooo#####ooooooooooz*;;+zZZooooZz*+++**zzZooooZZZZooooZZooz+*+;*+;' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''   ''                                                                                            ';;++++**********+*zZZZZo###########oooooooooZ*++zoZZZooooooZz***zzZooooZZZoooooZoooZ*++;+*+;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''   ''                                                                                             ';;+;;+*z*z***zz***zZZZo###########oooooooooZ*+zoZZZZZZZZooooZz*zZooooZZZZooooooooZZz++;;++''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''' '                                                                                             ';;;;;+***z**+*zzzzzZZoooo#oo######ooooooooZ**zZ**++++++*zZoZzzzZooooZZZooooZZZZZzzz*+;;;+;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''' '                                                                                              ';;;;;+****+++*zzzZZZooooooo######ooooooooZ**zz+;;+++;++*zooZzZZoooZZZZoooZZZzzz+*zz*;;;;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''  '''                                                                                              '';;;;+***++;;*zZZZZZoooZZZZo#####ooooooooZ**zZ++*zZZz****Z#oZZZoooZZZooooZZZzzz++*zz+;;;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''  '''                                                                                                    ';;;;+**+;;;+*zzzZZZZZZZZoo#####ooooooooZz*zZ*+*ZooZZz**Z##oZZoZZZZooooZoooz***+**z*+++''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''' ' ''                                                                                                     ''';+*z*+;;++*zzzzzZZZoooo#ooooooooooooZzzZo*+*Zooz***zo##oZZZZZZZooooooooz***++*z*++*+;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''   '                                                                                                         '';+***++***zzzzzZZoo##oooooooooooooooZzZoz++zooz++*zo##oZZZZZZooooo###oz****+*zz****+''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''    '''''''''''''''''''''''''''''''''
''''''                                                                                                              ';+*++**zzzzzzZZZoooooooooooooZoZZoooZZoZ*+zooZ+++zo###oZZZZooo######oZ++******zz***;' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''       '''''''''''''''''''''''''''''''''
'''                                                                                                                  ';+++zzzZZZZzzzzzzZZoooZZZoooooZZoooZZooz*zo#o*++zo###ooZZoooo#######o*;*z*****z*+*+;' '''''''''''''''''''''' '''''''''''''''''''''''''''''''''       ''''    '''''''''''''''''''''''''
 '       '                                                                                                            ';;+*zzZZZZZZZZZzZZoooZZZZZZooZZooZooooZ*Z###z++Zo####ooo##o########oZ+;zz**z**z*+++'''''''''''''''''''''''''''''''''''''''''''''''''''''''''        '''         ' '''''''''''''''''''
'''                                                                                                                     ';+*zZZZZZZZZZZoooooZZZZZZZooooZZoooooZo#@@ozzo#@####oo###########oZZ*+*z*zz**z*;;;''''''''''''''''''''''''''''''''''''''''''''''''' ' ''''                       ''''''''''''''''''
'                                                                                                                        '+**zZZZZZZZoZoooooZZzZZZZoZZoZZoo######@@#####@@##############ooooozz*********+;;;''''''''''''''''''''''''''''''''''''''''''        ' ''''                     '''''''''''''''''''
'                                                                                                                         ';+*zZZZZZoooooooooZZZZZZooZooooo######@@#@##@@@############ooZoo##oZZz++*****++;;' '''''''''''''''''''''''''''''''''  '          '''   '''                     ''''''''''''''''''
'                                                                                                                           '+*zZZZZoooooZZZZZZZZZZooZooooo#####@@@@@@@@@@@##########ooZzZ####oZzz*+***z*++;'  ''''''''''''''''''''''''''''''''' '''        ''' '''                      '''''''''''''''''''
                                                                                                                              ;*zZZZZoooZzzZZZZZZZZZooooooo#####@@@@@@@@@@@@########ooZzZooooo#oZzz*+*+*z+++'' '''''''''''''''''''''''''''''''''  '      '''  '                          '''''''''''''''''''
                                                                                                                               ;*ZZZZZZZz++zzzZZZZZZZoooooo####@@@@@@@@@@@@########ooZzzZooZZZooooZz+;+**z++;'  '''''''''''''''''''''''''''''   ''''''  '''' ''                          '''''''''''''''''''
     '                                                                                                                          ;zZZZZz*;'';+zzZZZZZZooooo######@@@@@@@@@@#######oooZzzZooZZzzzZZoooz*+****++''' ''   '''''''''''''''''''''''  ''''''   '''''                            '''''''''''''''''''
                                                                                                                                 ;zZZ*;'''  '+zZZZZZoooooo#######@@@@@@@@@######oooZzzzZoZZZzz*zzZZoZZz*z**+++''''    ''''''''';;;;;;;'''''    ''''''''''''''                            '''''''''''''''''''
     ''                                                                                                                          '*z*;  '    '+ZZZZooooooo#oo####@##@@@@@@#####ooooz*zZoZZZZz****zzZZZZ*zz***+;'''    ''''''';;;+++;;;'''''' '''   ''''''''''                            '''''''''''''''''''
    '''  '                                                                                                                       '+z+'       '*ZZZZooooZoo#oo######@@@@@@@###oooooz*zZZoZZZZz*****zzzZozzz***;'''';;' ''''';;;;;;;;;''''''''''   ''''''''''''                            '''''''''''''''''''
    '''                                                                                                                          '+*;        ;zz*ZoZZooZooooo######@@@@@@####ooooZ**zZoZZZZZz******zzzZZzz*+;''';+**;''';;;;;;'''''''''''''''  '';;''''''''''                            '''''''''''''''''''
                                                                                                                                 ';*;       '*z+'zZZZoZZoooo#######@@@@@@###ooooo**zZZoZoZZzz****zz**zz**+;;''';+;''';;;;;'''           '    '';;;''''''''''''         '                ''''''''''''''''''''
    '                                                                                                                             ;*;      '+z*' ;zZZZZooooooo#####@@@@@@##oooooz*zzZoZZZZZzz**zzz****+;'''  ''''''''''                    '';;;'''''''''''''''''   ' '''              '''''''''''''''''''''
       '                                                                                                                          +*;     ';*z;  '+ZZZZooooooo#####@@@@@@##ooooz+*zzZZZZzz***zzzz**++;''    '''''                         '''''  ''''''''''''''''' '' '''            '''''''''''''''''''''''
                                                                                                                                  ;*;'  '';*z+'  '+ZZZZooooooo#####@@@@@###oooz+;*zZZZzz****zz**++;'      '''''               ''''        ''''  '''''''''''''''''''''''''           ''''''''''''''''''''''''
                                                                                                                                  ;+++;;++*z*'''+*zzZZZooooooo#####@@@@@##oooz;;+zzzz*******+++;'        ''               ''''''          '''''''''''''''''''''''''' ''' '         '''''''''''''''''''''''''
 '                                                                                                                               '+**+++**zz*;;+*zzzZZZoooooo#######@@@@#ooZ*;;+*****++++++;;;''                       '''''''           ''''''''''''''''''' ''''''''           ''''''''''''''''''''''''''''
                                                                                                                                 ;z*++**zzzzz***zzzzzZooooooo######@##@#ooz+;++**+**+++;;;;'''                       '''''             '''';;''''''''''''''' ' '''''     ''   '''''''''''''''''''''''''''' '
                                                                                                                                '*Z**zz**zzzz**zzzzzzZooooooo##########oZ*;++++++*++;;''''''    '                   '''              '''''+;'   '''''''''''' ' '''''    ''''''''''''''''''''''''''''''''''''
                                                                                                                                ;ZzzZZz++**+**zzzz*zZZoooooooo########oZ+;+*++;+++;;'''''    ''                   ''                ''  '++'    '''''''''''  '''''''''''''''''''''''''''''''''''''''''''''''
                                                                                                                               '*Z*zzZz;++++*zzzz**zZZoooooooo#######oz+;+**;;++;'''       '''                                     '   ;**'    '''''''''    ''''''''''''''''''''''''''''''''''''''''''''''''
      '                                                                                                                       '+z*+zzz+;';++*ZZz**zzZZooooooo#######o*;;+++;;+;''        '''                                         ';**'    ''''''''''    '''''''''''''''''''''''''''''''''''''''''';;;'''
                                                                                                                              ;zz;+**+''';+*zZZz**zzZZooooooo#####oZ*;+++;;;;;'        ''                                           '+z+'    '''''''''''    ' '''''''''''''''''''''''''''''''''''''';;;;;;;;
                                                                                                                            ''zZ*++;+;'''+*zZZZ**zzZZZoooooo##o#oZz*;;++;;;;'         '                                            ;*z+'    ''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;
                                                                                                                           '+zZz*;'''''';*zzZZz**zzZZZoooooo#ooZzz+;;+;';;'         '                                            '+z*;'   ''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;
                                                                                                                        '''+zZz+;'''''';+*zZZZz*zzzZZZooooo#ozzz*+;;;;;;;'                                                      ;**+;''' '''''' ''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;
                                                      ''                                                               ';++zz+;'''''';;;+*zZZZ**zZZzZZooooooz**z+;;;';;;'          ''                                         ';**;'''' '';'''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;'';;;;;
                                                    ''' '                                                             ;++;;;;''''''';;;;+*zZZz**ZZzzZooooooz+**+;''';;'           '                                          '++;''';;''';'''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;';;;;;
                                           ''  '   '''''''                                                           ;**+;;' ''''';;;;;+*zzZZz*zZZzzzooooZz+**;'''''''                                                     ';;;'  ';;;;;''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;
               ''''                          ''''''''''''''                                                          +**+';' '''';;;;;;+*zZZZ**zZzzzzooZzz++*;'''''''                                                     ';;''  ';+*+;;'''''''''''''''''''''''''''''''''''''''''''''''''''''';';;;;;;;;;;;;
                ''''                           ''''''''''''                                                         ;**+;''''''';;;;;;;+zzZZz**zZzz*zZZz*+++;''''  ''                                ''                  '''''  ';+zZz+;;;'''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;
                ''''                            ''''''''''''                                                       '+z+;;';;''';;;;;;;+*zzZZz**ZZzz*ZZz*+;+;''''  ''                              '''''''               ''''' '';;*zzz+;;;'''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;
               '''''                            ''''''''''''                                                      ';+*;';';;'';;;;;;;++*zzZZ***ZZz**Zz**+;;''    ''                             '''''''               '''''' ';;;;**zzz+;;''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;
                ''''                             ''''''''''                                                       ;;'*;''';+;;;;;;;;;+**zZZZ**zZZz**z**+;'''                                   '''''''               ''  '  ';;;;++*zoo*;;;'''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;
                   '                             ''''''''''                                                      ';;'+;''';+;;;;;;;;+**zzZZz**zZz***++++;''              '                     '''''                        ';;;;++zoooz+;;''''''''''''''''''''''''''''''''''''''''''''''''    '';;;;;;;;;;;
                                                 ''''''''''                                                      ;+''''''';++;;;;;;;+**zzZZz**zZz**++++;''             ''                    ''''''                         '';;++zZoooo*;;'''''''''''''''''''''''''''''''''''''''''''''''''   '';;;;;;;;;;;
                                                ''''''''''''  '                                                 ';;'''';'';++;;;;;;;+**zzZZ*+*zZ*+*+++;'      '      '''              ''   ''';;'                           ';+**ZooooooZ+;;'''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;
                                               '''''''''''''                                                   '';'''''''';+*+;;;;;++**zzZZ*+*zz**+;;;'      '      '''''           '''' ''';;;'             '              ;+*zZoooooooo*+;'''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;
                                             ''''''''''''''' '                                                 '''';'';;'';***+++;;++**zzZz*+*zz+*+;;'            ';;;;'          ''''''';;++;'       '' '''''             '+*zZoooooooooZ+;;''''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;
                                           ''''''''''''''''''                                                 '''';;'';''';*z*++++++***zzZz*+***++;;'            ';+++''''      ';;'''';+++;'          '''''              ';*zZooooooooooo*+;'''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;
                                           '''''''''''''''' '                                                 '''';;'';;;;;*z**+++++***zzZz*+**++;;''      '    ';+++''''     ';;;''';+++;'         ''''''              '';+*zZoooooooooooZ+;'''''''''''''''''''''''''''''''''''''''''''''''';;;;;;;;;;;;;;;
                                           '''''''''''''''' '                                                 ''';;;;';;;;;*z***++++***zzZz*+++++;;'      ''   ';++;'''''   ';++;'';++++;'       ''''''               ''';++*ZZZoooo####ooo*;;'''''''''''''''''''''''''''''''''''''''''  '''';;;;;;;;;;;;;;;
                                          ''  ''''''''''''' '                                                '''';;;;';;;++zZz***+++***zzz**++++;''      ''   ';++;;;'''';;;++;;;++++;;''      '';'''            ''''''';;+zZZZZoooo####oooZ+;''''''''''''''''''''''''''''''''''';;;''    ''';;;;;;;;;;;;;;;
                                                   ''''''''                                                  ''';;;;;;;;;++*Zz***+++***zzz***++;''     '''''';+*+;;;;'';;++++;;+++++;'''    ''';''             '''''' '';++zZZZZoooo#####ooo*;;''''''''''''''''''''''''''''''';;;;;;''    '''';;;;;;;;;;;;;;
                                                    '''''                                                   '''';;;;;;;;;;+*ZZz***++**zzzz***+;;''    '''''';+*+;++;';;++*+;;;**++;;'''   ''''''             ';''''   '';+*zZZZZooooo#####oo*;;'''''''''''''''''''''''''''';;;;;;;;;'''   '''';;;''''';;;;;;
                                                     ''''                                                   '''';;;;;;;;;;+*ZZzzz*++**zzZz***;;''     ;;';;+***+++;;++***+;+**++;''''''''''''           '  ';;''''    ';+zzZZZZZooooo#####ooz;;''''''''''''''''''''''';'';;;;;;;;;;;;''     ''';;''''';;;;;;
                                                    ''''                                                   '' ';;;;;;;;;;;+*zZzzz**+**zZZz***;''     ';;;;+***++*++*****++*z*+;;''''''''''           '''''''''      ';++***ZZZZZZoooo####oooZ+;;'''''''''''''''''';;;;;;;;;;;;;;;;;;;;'      ''''''''';;;;;;
                                                    ' ''                                                  ''  ';;;;++++;;;++zZZzzz****zZZ*+*+;''    ';;;;+****z*+*zzzz***zZ*+;;;;'''''''          ''''''''''       ';+***zZoZZZZZoooo#####ooZ+;;''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;''''   ''''''';;;;;;;;
                                                    ''                                                   ''  '';;;;;+**+;;++*ZZZZzz**zZZZ***+''    ';;;;+***zZ***ZZzz*zzZZ*+;;;;;;;''''         '''';;''          ';+**zZoooZzZZZooooo####ooo*;;;'''''''''''';';;;;;;;;;;;;;;;;;;;;;;;;;''''''''''';;;;;;;;;
                                                                                                         '   ''';;;;+***++++*zZZZZzz*zZZZ***;'''''';+;';+**zZz*zZZzzzzZZz*+;;++;;;;'''       '';;;;;''           ';+*ZoooooZZzZZZooooo####oooz+;;'''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''''';;;;;;;;;;;
                                                                                                        '    ''';;;;+****+++*zZZZZzzzzZZz***;'''';+++;;**zZZZzzooZzzZZZz*++++***+;;'''''''';;;;+;''             ';*zZooooooZzzZZZooooo#####ooZ*;;'''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                             ''';;;;+**zz*+++*ZZZZZzzzZZz**+'''';***+;**zZZZzZooZZZooZz*+**zzz**+++;;;;;;;+++;''              ';+zZZZZZZZooZzzZZZoooooo####oooz+;;''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                      '      ''';;;;++*zz**++*ZZZZZzzZZoZz*+''''+zz+++zZooZZZooZZZoZZzz*zzZzz*****++++++++;;;'              ''';**zzzZZooooZzzZZZoooooo######oZ*+;;''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                     ''      '';;';;++*zzz****zoZZZZZZZoZz*;''';*zz**zZooZZZooooooooZZZZZZZ*******+++++++;;''             ''' ';++*ZZoooooZZzzZZooo#ooo#####oooz+;;''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                     '      ''''';;;;+**zzz***zZoZZZZZooZz*;'';*zzzzZZoooZooooooo#oooooZZz**zzz*+++*++;;''                   ';;+*ZoZzZooooZzzZZooo#oooo###ooooZ++;;'''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                             ''';;;;++***zzz***ZooZZZZoZzZ+'';+zzZZZooooZZZZZZZo##ooooZzzzzZZz****++;'''                    ';+zZoooZzZZooZZzzZZooo#oooo###ooooo*+;;''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                              '';;;;++***zzzzzzZoooZZZoZZZ;;;+*zZZZooooZZZZoZZZo#ooooZZZZoZZZz**+++;''''''''               '*zZooooooooZooZZzzZZoo##oooo###oooooz+;;'''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                          '''''';;;++***zzZZzzzzZooZZoZZZz+++zzZooooZZoooooooZZ#####oooooZZz**++;;;;;;;;''               ';+ZZZZoo#####oooZZzzZZoo##oooo##ooooooZ*+;''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                          '''';;;;++*zzzzzZZZZZZZZoZZoZZZz***zzZoZZZooo###ooZZo####oooZZzzz*+++++++++;''             ''';;+*zZooo######oooZZzzZZoo###ooo##ooooooo*+;'''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                          '''''''++*zZooZZZZZZZZZZooZZoZZ*zzZZZZZZZZo####ooZZZo#oooooZZzzz******++;;'        '''  '''';;;+*zzZo##o###ooooZZZzzzZoo###ooo##oZoooooz+;;''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                        '''';;''+*zZZoooooooZZZZZZoooooZZzzZoZZZoZZoo####ooZZoooooooooZz*****++;;;;'''''''''''' '''''';;;+*zZoooooooooZZzzZZzzzZoo###ooo##oZZooooZ*;;;''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                      ''''';;;+*zZZooooooooZZZZZZZooooZZZzz*****zzzZZoo#oooZoo###oooooZZz*++;;;;;;;;;'''''      '  '''';;*zZoooooooooZ*****ZzzzZoo###ooo##oZZooo#oz+;;'''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                                '  '  '';;;;+*zZoooooooooZZZzzzZZZZZZz*++;''''''''';++*zzZZooooooooooZZZZz*++++++;'''               '';+*ZooZoooooooZ*++***ZzzzZoo###ooo##oZZooo#oZ++;'''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                               ''    ';;+++*zZooooooooZZZzzzzzzzzzz+;'  '''''';;;;;'''''';;*ZooZZZZZZZZzz***+++;'                 '';+zZZoZZZooooooZz++***zZZzzZooo##ooo##oZZZoo##Zz+;;''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                              ''''  '';++**zZooooooZzzzzzzzzzZz*;''    ';++++*****++;;;;''''+zZZZZZZZZzz****+;;''            ''';;;+zZoooooZzZooooZZz+***zZZZzzZooo##ooo###oZZoo##oz*+;;''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                             ''''' '';++**zZZZooZZ*****zZZZZz*;'     '';+**zzzzZzzz***+++;;';*ZZZZZZZZZzz**++;;;'''''   '';;;;;;+*zZooooooo*+*ZoooZZZ**zZZZZZzzzZooooooo###oZZoo##ozz*;;''''''''''''';;;;;;;;;;;';;;;;;';;;;;;;;;;;;;;;;;;;;
                                                                                             ''''''';;++*zZZzzzZ*++++*zzZZz+'       '';*zzZoo#####ooooZZzzzzzZZZZZoZZZzz*++;;''''     ''';;''';+zZoo####oooZ*zZooZZZZZZoooooZzz*zzZooooo###oZZZo###Zz*+;;'''''''''''';;;;;;;;;;' '';;;;;;;;;;;;;;;;;;;;;;;;+
                                                                                            ''''''';;++**ZZz***z+;;;+*zZz+'    '''''';*zZZoooooo#########oooZzzzzZZz**+++;;'''        ''''''';+*ZZoooo##ozooZZoooZZoooooo#ooZz**zzzoooo####oZZZo###oZz++;''''''''''';;;;;;;;;;'   ';;;;;;;;;;;;;;;;;;;;;;;;+
                                                                                           '''''';;;++***Zzz**+++;';+zZz;    ';;;;'';;*Z#ooooooooooooooooooZZZZzzz**+;;'''''''           '';+**zZZooo###oooooooooZZooo####ooZz***zzZooo####ooZZo###oZz*+;''''''''''';;;;;;;;;;'''';;;;;;;;;;;;;;;;;;;;;;;;;+
                                                                                          '''''';;++*+**zZzz*+;++;';*Zz;    ''';''';''';+zzZZooooooooooZZZzzzzZzz**+;;;;''''''''''''''';;+**zzzZoo#######ooooooooZZoo#####ooZz****zZooo####ooZZo####oZz++;'''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                         ';;;;;;;+++++**zZzz*+++;';;*z+'    '';;;+++;;''  '+*zZoooooooooZZzz**++++;;;;;;;;;+++++;;;;;+*zZZZZoooo#########oooooooZZZoooo#oooZZz****zZooo####ooZZo#####oz*+;''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                                        ';;;;;;;++++;+**ZZZz***+;';;++;'''';++*****++++;''' '';+zZZZZzzzzzz**++;;;;;;;;;;;;;;;;;;;+*zo##################oooZoooZZZZZooooZzzzz****zZoooo####ooZZoo####oZz*;''''''';;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;'';;;;
                                                                                       ';;+;;++++++;;+**ZZZz*+++;;;+;;''';++*****++******+;''  ';+*ZZZz*****+++++;;;;;;;''''''';;*Zo###################oooZzzZZZZZZZoooZ*****++*zzZoooo####oooZZo####ooZz+;'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';;;;
                                                                                      ';;++++++++;;';*+zooZZ**++++++;'''';;;++++;''+*zZzz**++;'';+*ZZoZzz***++++++;;;;;'''';;;+++zZo#########oo#######ooooooZZZZZZZZZoZz+++**++*zZooooo####oooZZo####oooZ+;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+
                                                                                     '';++++++++;''';*+zoooZz***+*z*;'   '''';;;'''';+*ZZZzz**+++*zZooo#oZZZz**+++;;;;;;;;;;;++++*zoo########zzo#####oooooooZZZZZZzzZZZ*+++++++*zZoo#######ZZoZZo####oooZ+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;+
                                                                                    ';;++;++;++;'''';**Zo#oZZzz**zz*;'''';;;;;;;;;;;;'';+*zzzZzzzzZZooo##oooooooZZzz*********zzzZZZoo#########o#####oooooooZZZZZZzzzZZz+;;;;+++*Zooo#######ZZZZzo#####ooZ*+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++
                                                                                    ';;+;++++;;''''';+*Zo##oZZzzzZZ*+++++******++*zz**+;;;++zZooZZZoooooo#ooooooo#oooooooZZooooooo###################oooooZZZZZZzzzzzZz+;;;;;;+*Zooo#######ZzzZzo#####ooZ*+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;
                                                                                   ';;++++++;''''''';+*Zo##oooZZZZZ*+++******z***zZZZZZzz****Zo#o##oooooo############################################ooooZZZZZZZzzzZZZZ*;;;;;;+zZooo#######ZzzZZo#####ooz*+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;
                                                                                   ';;++*+;''''''''';+*o####oooooooz******zzz***zZoooooooooZZooo##@@@#################################################ooZZZZZZZzzzZZZZZz+;;;;+*ZZooo#######oz*zZo#####ooZ*+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++;
                                                                                  '';+**+;''''  ''''+*zo#####o#oo##Z**z**zzzz*+zzZo########ooooo#@@@@@@@@#############################################ooZZZZZZzzzzZZZZoZz++++*ZZoooo#######Zz**zo#####ooZ**+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;
                                                                                 '';+**+;''''' '''''+zZ############ozzzzzzzzz*++++*zZo###########@@@@@@@@@@##############ooo###########################oZZZZzzzzzZZZZoooZZzzZZooooo########Zz***o#####ooZz*+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;
                                                                                 ';+**+;'''''  '''';**Z#############ozZZZZooZZzzz****zZooo####@@@@@@@@@@@@@@##@@########ooo############################ooZZZzzzzZZZZooooooooooo##oo########Zz***Z#####oooZ*+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;
                                                                                ';++++;'''''' ''''';++Z##############oZZooooooZZZZZZZZZoo#####@@@@@@@@@@@@@@@##########oooo##########oo#################oZZZZzZZZZZZoooooooo#####oo########Zz***Z#####oooZ**+;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;
                                                                                ';++;;''''''  ''''';++o###@@@@@####@##oooooooooooooooooo######@@@@@@@@@@@@@############ooooooooooooooooo################ooZZZZZZZZZZoooo##########o########Z****Z#####oooZ**+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;+++++++++++;;
                                                                              ';;++;;''''''''   ''';+*o###@@@@@@###@@@##oooo######ooo#########@@@@@@@@@@@#############ooooooooZZZooooooo################oooZZZZZZZZooooo###################Z****Z#####oooozz+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;
                                                                              ';++;'''''''''''  '''+**o###@@@@@####@@##########@@@#####@#@@@@@@@@@@@@@@@@#########o##oo##oooooZZZZoooooo################ooooZZZZZZZoooooo##################Z****Z###o#oooozz*+;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;
                                                                             ';++;''''''''''    ' '+*zo###@@@@@@#########@@@@@@##@@#@@@@@@@@@@@@@@@@@@##########oooooooooooZooZZzZoooooo#################ooooZZZZZZoooooo##################Z****Z###o#oooozz*++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;
                                                                            ';++;'''''''';'       '+*zo###@@@@@@@@@@######@@@####@#@@@@@@@@@@@@@@@@@##########ooZZoooZooZZZZZZZzzZZo#oooo#########oo########oooZZZooooooo#################oz****o#####ooooZz*+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'
                                                                           ';;;;''''''';;''       '+*Zo####@@@@@@@@@@@@##########@#@@@@@@@@@@@@@@@@#########oooZZZoooZooZZzzzZZZzZZZooZoo#########oo####o####ooZZZoooooooo################oz****o####oooooZZz*++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                          ';;;;'''''';;;''''      ';*Z####@@@@@@@@@@@@@@##@########@@@@@@@@@@@@@@@########ooooZzzZZoooooZzzz*zZZZZZooZZoo#########oo##########ooZooooooooo################oz****o####oooooZZz*++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                          ';;;'''''';+;;'''       ';*oo######@@@@@@@@@@@@@@@@############################oooooZzzzZooooZzz*++zZZZooooZzZo#########ooo##########ooooooooooo################oz****o###oooooooZz*++++++++++++;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;
                                                                         ';;;''''';;++;'''        ';*Zo####o##@@@@@@@@@@@@@@@##########################oooooZZoZzzZZoZZZz****zzZZZZZZZZzo#########ooo###########oooooooooo##############@#oz****o###oooooooZz*++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;
                                                                        '';'''''';+++;;'''        ';*Zo#######@@@@@@@@@@@@@@@#@@@##@#################oooooooZZoZZZZZZZzzz**zzzzzZZZZZZZZZ#########ooo############ooooooooo##############@#oz***zo###ooZooo#Zz*++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;
                                                                       '';'''';;;++++;;;''        '+*ZzZo####@@@@@@@@@@@@@@@@#@@################ooooooooooooZZZoZZzzz******zZzzzzzzZZZZZZo#########ooo#############ooooooo##############@#Zz***zo###ooZoZ##Zzz*+++++++++++++++++++;;;;;;'';;;;;;;;;;;;;;;;;;
                                                                       ''''''';+**++;;;;''       ';;+**zo##@@@@@@@@@@@@@@@@@@@@@@@@#######oooo#o####oooooooZzzZZZzzzz*++**zzzzzz**zzZZZZZo#########ooo####o#o#######ooooooo#############@#Zz***z####ooZoZooZzz*+++++++++++++++++++;;;;;;'';;;;;;;;;;;;;;;;;;
                                                                      ''''''';+**++++;;;''      ';++***Zo##@@@@@@@@@@@@@@@@@@@@@@@@###oo###ooooo####oooooooZZzZZoZzzZz*******zzz*+*zZoZZZZ#########oooo#o#oo#########oooooo###############Zz***Z####oZZoooooZz*+++++++++++++++++;;;;;;;''''';;;;;;;;;;;;;;;;
                                                                      '''''';+***+++++;;'     '';+**ZZoo###@@@@@@@@@@@@@@@@@@@@@@@@########oooZo####oZo#oooozzZZooZZZz**zz*zzz***+**zZoZZZ##########oooooooooo#######oooooo###############Zz**zZ####oZZoooZoZz*+++++++++++++;;;;;;;;''''   ';;;;;;;;;;;;;;;;
                                                                     '''''';+****+++;;;''    ''';+*zZooo###@@@@@@@@###@@@@@@@@@@@@@#######ooZoZZ###oooooooooZzzZZoooZz***zzzzz******zZoZZZo#########ooooooooooo#######ooooo############@##Zzz*zZ####ozZoooZoZz*+++++++++++;;;;;;;;;''''    ';;;;;;;;;;;;;;;;
                                                                     '''''';*****+++;;;''    '';+**zZo####@@@@@@@@@##@@@@@@##@@@@@@########ooooooo#ooooooZooZZZZZooZZZz*zZZZZz***zzzZZZZZoo#########ooooooooooo########oooo############@##Zzz*zZ####ZzZoooo#oz**++++++++++;;;;;;;;;''''   '';;;;;;;;;;;;;;;;
                                                                     ''''';+***+++++;;''    '''+*zzzZo###@@@@@@@@@@##@@@@@@#@@@@@@########ooooooZZoooooooZZooZZZoooZZZZZZooZZZzzzzzZooooooo###oo#####oZZoo#oooZo########ooo##############oZz*zzZ###oZzZoooo#oZ**++++++++;;;;'''';;;;''    '';;;;;;;;;;;;;;;;
                                                                     '''';+***+++++;;;''    '';+**zzZo####@@@@@@@@@#@@@@@@@#@@@@@@##o#####ooZoooZzZoZoooooooooooooooZZZZZoZzzzZZzzzZooooooo###oo#####ooZoo##ooZo#########oo##############oZz*zzz###ZzzZoooo#oZz*+++;;++;;;;''''';;;;'''' ''''';;;;;;;;;;;;;;
                                                                    '''';;+***+*++;;;;''    '';+*+*zZo####@@@#@@@@@@@@@@@@@#@@@@@@######o#oZZoooZZZZZZooooooooZZZoooZZZZooZ**zZZzzZZooo#ooo###oo######oZZoo#ooZZo#########oo############oZzz*zzzo#oZzzoooo##ooz**++;;;;;;;;;'''';;;;''''''''''';;;;;;;;;;;;;
                                                                    ''';;+*******+;;;;'     '';++;+*Zoo##@@@@##@@@@@@@@@@###@@@@@@@#####oooZZoooooooooooooooooZZZooooZZoooZzzZoZzzZZoZZo##o###ooo#####oZZoo##oZZZo################oo###oZzz**zzZooozzZZoo###ooZz*+;;;;;;;;;;''''';''''''''''' ''';;;;;;;;;;;
                                                                    ';;;+********+;+;''     ''';;;;+zZoo##@@@##@@@@@@@@@##o#@@@@@@@#####oooZZoooooooooooooooooZoooooooooooZZZoooZZZooZo###oo##oZo#####ooZZo##ooZZo####################oZ*+***zZZooZzzZZoo###ooZzz+;'''';;;;;;''';;''''''''''' '''';;;;;;;;;;
                                                                    ';;;+********+++;''    '''    ';+zZo###@@#@@@@@@@@@@@######@@#######ooooZZoooo###ooooooooooooooooooooooooooooZZooZoo#ooo##oZZo#####oZZo###oZZZo###################o*;;;**zZZooZzzZZo####oZZz*+''''';;;;;;;;;;;''''''''''' ''''';;;;;;;;;
                                                                    ';;+******z**+++;;''   '''      '+zZo##@@#@@@@@@#@@@@@#####@#######ooooooo#oZZooooZZo##oooooooooooo#o##oo###ooooooo##oZo###oZo######oZoo###ZZZo###################o*;;;***zZooZzzZZo####oZZz+;''' ';;;;;;;;;;;;''''''''''''''''';;;;;;;;
                                                                    ';++*z**zzz****+;;''' ''         '*zoo#@@@@@@####@@@@@############o###oooooZzzzzzzzzZoZZzzZoZZZoZooo###oo###ooooooo#oooo###oZZo#####oZZo###oZZZo##################oz++***+zooozzzZo####oZZz**;''  '';;;;;;;;;;;;''''''''''''';'';;;;;;;;
                                                                    ';++*z*zzzzz***+;;''''''         '+zZo###@@@@####@@@@#############ooooooooZz***z***zzzz***zzzzzZZZoooooZooZZo#ZZo#oooooo###oZZo######oZo###oZZZZo#################oozzzzz*oooZzzZZo####oZz*+*+''   '';;;;;;;;;;;;'''';;;;;''';;;;;;;;;;;
                                                                    '++*zzzzzzzz***+;'''''''          ;*zZ##@@@####o#@@@@#########o##oZ*zZoZooz****z**+************ZZoo#oZZZooZ+z#ozzo####oo###oZZZo#####oZZo###ZZzZZ#################oZzzzZZo#ooZ*zZo####ooz*++**;'  ''';;;;;;;;;;;;;'';;;;;;;;;;;;;;;;;;;;
                                                                    '+**zzzzzzzz***+;''''';'          ;+zZo#@@####oo#@@@@########ooo#ozzZoZZoZz**zzz**+**zz****zz**ZZoo#ZZZZooZ+;ZoZ*zo###oo###oZZZo######oZoo##oZzzZo#################oZZZZoo#ooz*zZo####oZz++++*;' '''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                    '***zzzzZZzz***+;''''';;'         ;*zZo######oo##@@@@########ooooZ*zoZzZoZ***zzz**+**zZz*zzzz*zZZoo#ZZZZooo*;+ZZ**Z####oo##oZZZo######oZZoo#oZZzzZo################ooZooo##oZz*zZ#####oZ*+;;++;''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                     +zzzZZZZZzz***+''''';+;'        '+zZo#####oooo##@@@@#######ooZZZ*zooZzZoZ**zZZzz***zZZZzzZZZzzZZZo#oZZZoooZ+;+z*+*o#ooo####ZZZZo#####ooZZooooZzzZZo################ooooo##oZ*zZo####oZz+;;;;;;'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                     +zzzZZZZZzz**+;'''''++;'        ;*Zooo##oooooo##@@@@######ooZzZz*ZoZzzZ#ozzZZZZZzzZZZZZzzZZZzzZZZo#ooZooooo*;;**+*Z#ooo####ZZZZoo#####oZZZoooZZzzZo################oooo##oozzzo#####oZ*;;;;;;;'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;
                                                                     ;zZzZZZZzzz**+;'''';+**;'      '+zZoooooZZZZoo##@@@######ooZ*zZ**ooZZZZ#ozzZZZZZzZZZZZoZZZZZZZoZZ##ooooooooz;;+*++zooooo###oZZZZo#####oZZZoooZZzzzZo###########@###oooo##oZzzZo#####oz+;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                      *ZZZZZzzzz*+;'''''+*z*++;'  ';+*ZooooZz*zzzZo##@@@######oZ**Zz+Zooooooo#ZzZZZZZZZooZZZZooooooooooooooooo#oZ+;+*++*Zooo####oZZzzo######ooZZoooZZzzzZ#####@@####@###ooo##ooZzzo######Zz+;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;
                                                                      +ZZZZZzzzz*+;'''';*zzzz*+;;;++*zZZooZz+++**zZo#@@#######oz+*Z**oooooooo#oZZZoooooooooooooooo##oooooooooo##o*;+*+;*Zooooo##oZzzzZo#####oZZZooooZzzzZo####@@########o####oozzZo######Zz+;;;;;++++;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;
                                                                      ;zZZZZZzzz*;''''';*zzZZzz***zzZZZZZZz*;;;;+*Zo#@@#######Z*+z*+Zooooooooooooooo####ooooo###o###oooo#oo##o##oz;+**;+z##oZo###Zz**zo#####oZZZooooZZzzZZo##################oZzzo#######Zz+;;;;;**++;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;
                                                                      'zZZZZZzz*+;'''';+zZoooooZZZZoooZZz*+;'  ';+Zo#@########Z+*z**ooooooo#########o######ooooooooooooo#####oo##Z+;**;;*o#ZZZo##oZ*+*Zo####oooZoooooZZzZZo#######@@@########oZzZo#######oZz;;;;+***+;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;
                                                                      'zZZZZZzz*+;''';+zZZooooooooooooZzz+;;    ';Zo##########z+z*+zooo##########ooooooooooooooooooZooo###o##ooo#o*;+*+;+Z#oooo##oZ*++zoo####ooZoooooZZzzZoo#####@@@@########oZZoo#######ooZ+;;;+*z*++;;;;;;;;;;;;;;;;+++++;++++++++++;;;;;;
                                                                      'zZZZZZz*++;;;;+*zzZo#########oozz*;;'   ''+Zo##@#######**z+*Zo###########ooZZooooooooooooooZZooo######ooo#oZ++**;+z#oooo##oZ*++*Zo####ooZooooooZZZZZoo####@#@@#######ooZZo#########oZ*+;;+*zz*+;;;;;;;;;;;;+;;;;;;;;;;;+;++++++++;;;;
                                                                      ;zZZZZZz*++;;;++zzZo##########oZz*+;'' ';;;*Zo##@######Z+z*+Zoo#######oooooZZzoooooooZooooooZZooo######ooo##o*;**;;*ooooo##oZ**+*zoo####ooZooooooZZZZooo#####@@#######oZZoo##oo#####oZ*+;;+**z*+;;;;;;;+;;;;;;;;;;;;;;;;;;;+++++++;;;;
                                                                      +zZZZZZz*++;;++*ZZoo#########ooZz*;;;' ';;+zo#####o###oz*z**Zo#####ooooooooZZzZoooooZZooooooZZoo#######oo###oz++*+;+o#oooo#oZ**++zZo####ooZZooooooZZZooo######@######oooooo#########oZz+;+***z*+;;;;;;;+;;;;;;;;;;;;;;;;;;;++++++++;;;
                                                                      *ZZZZZzz*++++++zZZo##########ooZz++;;;'';+*Zo#####o#@#o*zz+zoo####oooooZoooZzzZooooZZZooooooZZZo###ooooooo##oz++*+;+Z#oooo#oo**++*Zo#####oZZZooo#oZZZooo######@######ooooo######o###oZz*+++**z*++;;;;;;+;;;;;;;;;;;;;;;;++++++++++;;;;
                                                                     'zZZZZZzz*+++++*ZZo###########ooZz+++++++*Zoo#####oo#@#Z*z**oo####ooooZZZZoZZzzZoZZZZZZooZoooZzZoo##oooZzzZ###Z++**++Z#oooooooz*++*zZo####oZZZZooo#oZZooo######@@#####ooo#o####ooo###oZz*++++***++;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;
                                                                     ;zZZZZZzz*+++++zZo###########ooZzz*+***zzZo#######o#@@#Z*z*zo#####oooZZZZZZZZz*ZoZZZZZZooZoooZzZoo##oZZz*zzoooZ*++*++zooooZZooz*+++zZoo###ooZZZZoo##oooo#######@@#####o#######oooo###oZzz*+++****+;;;;;;;;;''';;;;;;;;;;;;;;++;;;;;;;;;
                                                                     +ZZZZZZZz+++++*ZZo###########oZzzz****zZZo########o##@#zz**Zo#####ooZzZZZZZZZ**ZoZZZZZZooZooZZzZoo##oZZZZzzZooZ*++**+zooooZZooZ*+++*Zoo####oZZZZoo###oooo######@@#############oooo###oZzz*+++****+;;;;;;;;'''';;;;;;;;;;;;;;;+;;;;;;;;;
                                                                    'zZZZZZZz***++*zZoo##########ooZzzzz***zZo#####o##oo##@ozz+zo####ooZzz*zzzzZZz**ZoZZZZZZooZZoZZzZo###oZoo#oo#ooZ*++**+*ZoooZZooZ*+++*ZZoo###ooZZZZoo###ooo#######@##############oo####oZzzz*+++***++;;;;;;''''';;;;++;;;;;;;;++;;;;;;;;;
                                                                    +zZZZZZz***++*zzoo##########ooZZzzz***zzoo###oooo#oo#@#Zz**Zo####oZzzz+*z*zzZz**ZZZZZzzZooZZoZZzZo###oo########oz*+*z++ZooooZZooz++++zZoo####oZZzZZo###ooo############################oZzzzz******++;;;;;;;;''';;;++;;;;;;;;;+++;;;;;;';
                                                                   'zZZzzZz***++**zZo###########oZZzzz***zzZoooooooooooo#@#zz*zoo####oZ*zz+**zzzzz**zZZZZzzZooZZoZZzZo###oooooo#####Z*++z*+zooooZZooZ*+++*Zooo###oZzzzZo###ooo############################oZZzz*******++;;';''';''';;;++;;;;;;;;;++++;;;''''
                                                                   *ZZZzzz***++*zzZo##########ooZZzz****zzZZZzzZZZZZoooo#@oz**ooo####oz*zZzzzZZzzz**zZZZZzzZooZZoZZzZo##ooooZZoo####o*++zz+zooooZZooZ*+++*zoooo##oZ***zZo################oo###############oZZzz**zzz**+;;;''''';'';;;;++;+;;;;;+++++;;;;''''
                                                                  ;zZZZZzz**++*zzZo##########ooZZz******zZZZzz*zzzZZZoo###Zz*zooo##ooZz*zZZZZZZzz***zZZZZzzZooZZoZZzzo##oooZzzoooo##oz++zZ+zoo#oZZoooz++++zZoooo#oZz**zZo##############oZZZo##############oZZZZz*zZz**+;;;''''';'';;;;;+;+++++++++++;;;;''''
                                                                  *ZZZZZzz*++**zZ##########oooZZz******zZZoZZZzz**zzZZo###Z*zZoooooooZ**zzZZZZZzz***zZZZZZzZooZZoZZzzo##oooZzzZoooo#oZ+;*Z**o##ooZoooz++++*Zoooo#ozzzzzZoo#############oZzzoo#############oZZZZzzzZz**+;+;;'''';;;;;;;;++++++++++++;;;''''''
                                                                 'zZZZZZz**+*zzZo########oooZZZz******zZZoZZz+;*+;;+zZo##oz*zZooooooooZ*ZZZzzzzzzz**zZZZZZzZZZZZoZZzzo##ooo#ooo#ooo##Z*;+Zz*Zoo#oZZooZ++++*Zoooo#oZzzzzZoo#############Zzzzo##############oZZZZZZZZZz**+;;;;'';;;;;;;;+++++++++++;;;;;;'''';
                                                                 ;zZZZZZz***zzZo########oZZZZZz*++*****zZZZz*;'+;'';*ZoooZ**zZooZZooooZzZoZzzzzzzz**zZZZZzzZZZZZoZZzzo##########ooo#oZ*;+zz*zooooZZooo*+++*zooooo#oZZZzzZoo############ZzzZo##############oZZZZZooooZZz+;;;;;;;;;;;;;;;;+++++++++;;;;;;''';;
                                                                ;*zZZZZzzz*zZoZo#######oZzzZZz*+++++++*zzZZz+;;;'  '+zZooz+*zoooZzZoooZZZZZzzZzzzz*+*ZZZZzzZZZZZoZZzzo##############ZZz+;zZ*zZooooZoooz++++*Zoooo##oZZZZZoo############oZzZo##############ZZZZZZoooooZz*+;;;;;;;;;;;;;;;+++++++++++++;;'';;;
                                                              '*zzZZZzzzzzzoooo#######oZZzZZz**+++;;;;+**zZz++;'  '++*ZZZ*+*zoooZ*zZooZZZZz**ZZZzz*+*ZZZZzzZZZZZooZzzo##@@@#####@@#ozzZ+;*ZzzZoo#oZoooz++++*ZZooo##ooZZZZooo############ooo###############ZZZZooo#ooooZz++;;;;;;;;;;;;++++++++++++++++;;;;';
                                                             ;*zzZzzzzzzzZoooo#######ooZzzZZz****;'''';++zzz*+;;''+***ZZz++*Zoooo**ZoooZZZz**ZoZzz*+*ZZZZzzZZZZZooZzzo##@#@#o#####oozzZ*;+ZZzZoo#oZZooZ*+++*zZooo###ooZZZoooo#############################ZZZZoZo##oooZz*+;;;;;;;;;;++++++++++++++++++;;;'''
                                                            ;*zzzzzzzzZzZooo#########oZZZZZzzzz**;   '';+zZzz*++;+*z*zZz*++zZoooo**zZooZZZz**zoZzz*+*ZZZZzzZZZZZooZzzoo##@#oo###oZZoZZoz;+zZzzoo#oZZooo*++++zZooo###oooZZZooo######@@#######@#######@####ooZZZooo##o#oZz*+;;;;;;;;++++++++++++++++++++;;;;;;
                                                           '*zzzzzzzzZZZoo##########oZZZZzzZZzzzz+;'  '+zZzzz**+**zZzZZz++*zoooooz**zZooZZz**ZoZzz*+*ZZZZz*ZZZZZooZzzZo####oo##oZzZooooz+;zZzZoooZzZoooz++++*Zoooo###oooZZoooo#######@@@###@@@###@#@@####ooZZZooo##o#oZz*++;;;;;+++++++++++++++++++++++;;;;;
                                                          '*zzzzzzzzzZoo##########ooZZZZZZZZZZZzz**+;'+zzz****++*zZZZZz*++*ZoooooZz**ZoooZz**ZoZzz*+*zZZZz*ZZZZZooZzzZo####oooZz*zZo#ooZ+;*ZzZoZoZzzZooZ++++*zoooo###ooooooooo######@@@@@@@@@@@@@@@@@####oooZZooo##o#oZz*++;;;++++++++++++++++++++++++;;;;;;
                                                         '*zzzzzzzzzZo###########ooZZZZZZZZZZZZzz*****z*+++***+*zZoo#oz*;+zZooooZoZ**zZooZz**ZoZzz*+*zZZZz*ZZZZZooZzzZoo####oZz**ZooooZZ*;+zZzZZZZzzZooZ*+++*zZooo####ooooooooo#####@@@@@@@@@@@@@@@@#####oooZZooo####oZz**+;;++++;;;;+++++++++++++++++;;;;;;
                                                        ;*zzzzzzzzZo############ooZZZZZZZZZZZZZZz;'*zzz+ ';+**+*Zo###Zz++*ZooooozoZZ**zooZZz*ZZZzz*+*zZZzzzZZZZZooz*zZooo##oZz**zooooZzZ*;;*ZzZzZZzzZoooz+++*zZoooo###ooooooooo###@#@@@@@@@@@@@@@@@@#####oooZoooo#o##oZZz*+++++;;;;;;;;;;+++++++++++++;;;;;;
                                                      '+*zzzzzzzzZo############ooZZZZZZZZZZZzzzzz+'+zZZ*';;+***zo####Z*++zZooooZZZzZz**ZooZZzzzzzz*+*zZZzzzZzZZoooz*zZooo##Z***zoZZoozzZz+;+z*zzzZzzZoooz+++*zZoooo####oooooooo####@@@@@@@@@@@@@#@@######oooooooo####ooZz*++++;;;;'  ';;;++++++++++++;;;;;;;
                                                     '+**zzzzzzZoo############oooZZZZZZZZZZZzzzz*+;+*zZz+;++***Z#####z*;*ZoooooZoZ*ZZ**zZooZZZzzz**+*zZZz*zZzZZoooz*zooo##o***zoozZooZzzz+;;+**z*zzzzZooZ++++zzooooo###oooooooo###@@@@@@@@@@@@@@#@@######ooooooooo###ooZzz++++;;;'    ';;;+++++++++++;;;;;;;
                                                    ;+*zzzzzzZZo#############ooZZZZZZZZZZZZZZZoZZzzZZZZz******zo####oz+;*ZoooooZoZ**oZ**zoooooZzz**+zZZZzzzZzZZoooz*zooo#o***zoozzZoooz**+'  ''++*zzzzooZ++++*zZoooo####oooooo####@@@@@@@@@@@@@@@@@#####ooooooooo####ooZzz++++;;'      ';;++++++++++++;;;;;;
                                                   ;+*zzzzzZZZo#############oooZZZZZZZZoZZZZoooooooZzzZz******Z##@##Z*++zoooooooZoz*zZz**ZoooooZz**+zZZZzzZZzZZoooz*zooooZ**zooZzZoZZoZ*+'      '+****ZZZ*+++*zZooooo####ooooo####@@@@@@@@@@@@@@@@@@####ooooooo######ooZZz+++++;;      '';;+++++++++++;;;;;;
                                                  '+*zZzzZZZoo#############oooZZZZZZZZooZZZo#ooooooZ+;zz*****zo#@@#oZ*;+zoooooooZZZ**Zz**zooo#oZz***zZZZzzZZzZZoooz*zoooZ***zooZZoZzZZZ*''       '***;*ZZ*+++*zZooooo####ooooo#####@@@@@@@@@@@@@@@@#####ooooooo######ooZZz+++++;;       ';;++++++++++;;;;;;;
                                                 ;+*ZZZZZZoo###############oooZZZooooooZooo########oz*z*+;**zo#@@@#oz+;*ZoooooZZoZz*zZz++*zoo#oZz***zZZzzzZZzZZoooz*zZZZZ**z*zoZzzzZoZZ+'         ++; +z*+;+++zZZooooo####oooo#####@@@@@@@@@@@@@@@@@####oooooo#######ooZZz++++++;;'     ';;+++++++++;;;;;;;'
                                                '+*ZZZZZZoo##############oooooZZoooooooooo##########oZz*++**Z##@@##Z*++*ZoZoooZZZZzzZz*****zo#oZz***zZZz*zZZzZoooozzzZZZz*zz**oozzzooZZ+'         ;+; +z*+;;++*ZZooooo#####ooo######@@@@@@@@@@@@@@@@####oooooo#######ooZZz++++++;;;''''';;++++++++++;;;;;;;'
                                               '+*zZZZooo###############ooooooooooooooo##o#o########oz******o#####oz*++zooZooooZzZZZZzZoZ***ZooZz*+*zZZz*zZZzZoooozzzZZZZZoZz*zoZZZZZZz*'         ;+;'*zZz*;++*zZoooooo####ooo######@@@@@@@@@@@@@@@@####oooooo#######oooZz+;++++;;;;;;;;;+++++++++++;;;;;;;;
                                              '*zZZZoooo################ooooooooo####o####o#########Zz*****Z######Z*++*ZoZZooooZzZoozZoZZz**zooZz*+*zZZz*zZzzZoooozzzZZZooZoZ**ZoooZzzzz+'       ' ';+*zZZz+++*zZooooooo####oo#######@@@@@@@@@@@@@@@@@##ooooo########oooZz+;;+++++++++++++++++++++++;;;;;;;;
                                             '*zZZoooo#################oooooooooo###############@@#ozz****zo###o##Z*++zooZZoooozzzZzzoZzZZ***Zozz*+*zZzz*zZzzZoo#ozzZZZZoZ*Zoz*ZooZz**zz+;';'    '''+***ZZZ+++*zZooooooo#############@@@@@@@@@@@@@@@@###ooo###########ooZz+;;;+++++++++++++++++++++++;;;;;;;
                                            '*ZZZoooo#################oooooooooo################@@#Zzz****Z###ooooz+++zooZZoooZzzzzzoZzzzZz**zZzz*+*zzz**zZzzZoo#ZzzZZZoZz*zoo*zZZz******+;;;    ';+zzz*zZZ*;+*zZoooooooo#############@@@@@@@@@@@@@@@####o#########@##ooZ*+;;+++++++++++++++++++++++;;;;;;;'
                                           '*ZZZoooo#################ooooooooooooo#####o#######@@#Zzz****Z####oZZz++;*ZoZZZoooZ****zoZZoZZZz**zzz***zzz**ZZzzZoooZzzZZooZzzzZoz*z**+++**++;;+;'' ;*zZZzzzZoz+++*zZooooooo#############@@@@@@@@@@@@@@@####o#########@##ooZ*+;;++*+++++++++++++++++++;;;;;;;;'
                                          ;+ZZooo###################ooooooooooooo######o######@@#ozz****zo####oZz*;;;*ZZZZZooZz****zZZZZozZz**zz****zzz**ZZzzZoo#o*zZoooooZzZoZ***++++*++++;+z+;'+zZooZZZooZ+++*zZoooooo###############@@@@@@@@@@@@@@################oooZ*++++*+++++++++++++++++++;;;;;;;;;;
                                         '+zZooo####################oooooooooo########oo######@@oZz****zZ#####oZz*;;;zzzzZZooZ******zZoZoZZZz*******zzz**ZZzzZoo#Z*zZooooozzZZZz*+++;;++**+++z*;;+ZoooZZo#oo*++*zZooooo################@@@@@@@@@@@@@@##############@##ooZ*++***++++++++++++++++++++;;;;;;;;;
                                        '+zoooo####################ooooo#oooooooo###ooo######@@#Zzz***zZo##oooZZ*;' '++**zZZZz++****zzoooZzZZzz*****zzz*zZzzzoo#oZ*zooooozzZZZz*+++;;;;+***++zZ+;;zo##ooo###z++*zZoooooo################@@@@@@@@@@@@##############@@##oooz*****++***+++++++++++++++;;;;;++++
                                       '+*ooo#####################ooooo###oooooo##ooooo######@#ozz*+**zo####oZzz;'  ''';**zZZ*++++++*zZooZzZZzz*****zzz*zZzzzo##oZzzZoooZzZoZz**++;;;;;+***++*Zz;;*oo#ooo###Z++*zzoooooo################@@@@@@@@@@@@##############@@####oz*******+**++;;;;++;++++++;;;;;++++
                                      ';*Zoo###################oooooooo###oooooo#oooooo#####@##Zz**+*zZ#@###oZz*'   ';;+**zz*;;;++++**zZZZZZzzz*****zz*zzZzzzo##oZzZoooooZoZz**++;;;''';***+++zZ+;+Zo#ooo###o*+**zZoooooo################@@@@@@@@@@@###############@####oZz+*****+++++;;;;;;;++++++;;;;;++++
                                     ';+zo###################oooooooooo#ooooooooooZZZZo####@##Zz*++*zZo#@###oZz+'''';+++++*+; ';;++++**zZooZZzz*****zz*zZZzzzo#oozzZooooooZZz*+++;;'''';+***++*Z*;;*Zoooo####Z+**zZooooooo###############@@@@@@@@@@@##############@@####oZ*++*****++++;;;;;;;;+++++++++;;+++
                                   '';;*Zoo#################oooooooooooooooooooooZZZZZo######oz**++zZo#@@###oZz*';;+**;;;'''   ';;++++*zZoZoZZz*****zz*zZZzzZo##ozzZooooooZz**++;;'''''';;**+++zZ+;+zZooo####Z***zZooooooo###############@@@@@@@@@@@##############@@@###oZ*++*****++++'''';;;;+++++++++;;+++
                                  '';;*Zoo#################oooo#oooooooooooooooZZzzZZoo#####ozz*++*Zoo@@@###oZz+';+zz*+;''''   '';;++*+*zooooZz*****z**zZzzzZo##oZZZoo##oZZz**++;'''''''';+*+++*Z*;+*Zooo####Z*+*zZooooooo##############@@@@@@@@@@@###############@@@###oZ*********++;'   ';+++***+++++;;+++
                                  ';+*Zooo#################oo##oooooooooooooooZzzzZZZo#####oZz*++*Zoo#@@@###oz*;';*ZZZz*'  '' ''';;++++**zoooZz****zz*zzZzzzZ###oZZoo##oZZzz**+;;;''''''';;+++++zZ+;*zZo#####oz***zZooooooo#############@@@@@@@@@@@###############@@@###oZz*********++'''';;++++****++++++++
                                  ';*Zo###################o####ooooooooooooooZZzzZZZoo####oZz*+;+zoo#@@@@###Zz+;;+zZZZZz+;''''''';;;++++**ZooZ*****zz*zZZzzzo##oZZZoo##oZzzzz*+;;;;'''''';;+++++*Z*;+zZo#####oZ***zZooooooo############@@@@@@@@@@@@###############@@@##oZz************+;;;;;+++******+++++++
                                  '+Zoo##################o######ooooooooooooZZzZZzZZo#####Zz*+++zoo#@@@@@##oZz+;+*ZZooZzz*+'''''';;;;+*++*zooz*****z**zZZzzzo##oZZZoo#oozzzz*++;;;;;'''''';+++;;+zz;+*ZZo#####Zz**zZooooooo############@@@@@@@@@@@@###############@@@##oz***************+++++++*******++++++
                                  '*oo##################o#######ooooooooooZZZzZZZzzo#####Zz*+++*o##@@@@@###oZz++*ZoooooZZz*''''''';;;+++++zZoz*******zzZzzzzo##oZZZooooZzzz*++;;';;;;'''''';;;'''+z*;+zZo#####oz**zZZooooooo###########@@@@@@@@@@@@##############@@@@##oZ*++*********++************zzz**++++
                                  '*o##########################ooooooooooZZZZZZZzzZo####oz*+++*Z##@@@@@@###oZz++zooooooZZZ*''''''';;;;++++*ZZz****zzzzzZzzzzo##oZZZoooZzzzz+++;''';;;;'         ';**++*ZZ#####oZz**zZooooooooo#########@@@@@@@@@@@@##############@@@@##oZ*+++*********++++**zzzz***zzzz**++*
                                  '*o##########################oooooooZoZZZZZZZzzZo####oZ*++++zo#@@@@@@####oZ*+*ZooooooZZZ*'''''''''';++++*ZZz****zzzzzZzzzZo##oZZooooZzzz*++;;'''';;''          '+z*;+zZo#####Zz**zZooooZoooo#########@@@@@@@@@@@@##############@@@###oZz*+++*********+++***zzzzzzzzzzzz***
                                   *oo#######o#######ooo#####ooooooooZoZZZZZZZZZZo####oz*++++zo#@@@@@@#####oz++zo#oo#ooooZ+'''''''''';;+++zZZ*****zzzzzzzzzZ###ZZZooooZzz*++;;;;'''''''           ;*z++*Zo#####oz**zZooooZZoooo#######@#@@@@@@@@@@@@@@###########@@@###oZz*++++****zzzzz*****zz********zzZzz
                                   zoo########oo####oooo#####ooZZZZZoooZZZZZZZZZZ####Z**++++*o#@@@@@@@####oZ*+*Z##o##ooooz;''''''''';;;+++ZZZ*****zzzzzzzzzZ##oZZZooooZz*+++;;;;;''''''           ;*z*;+zZo#####Zz*zZZooooZoooo#######@@@@@@@@@@@@@@@@###########@@@###oZ*++++++***zzzzzzz*zzzz******++*zZZZ
                                  'zoo######oooo####ooo#####ooZZZzZZoooZZZZZZZZoo###z***++*zo#@@@@@@@#####oz++zo#####oooZ*'''''''''';;;;+*ZZz*****zzzzzzzzzo##oZZZooooZ*+++;;;;;;''''''           ;*zz++zZo#####Zz**zZooooZooooo#######@@@@@@@@@@@@@@@###########@@@##ooZ++++++++***zzZZzzzzzzz******+++*zZZ
                                  'zoo#######ooo####oo#####ooZZZZZZZZooZZZZoZZoo###Z***+*zZo#@@@@@@@######Zz+*Z######oooZ+''''''''';;;;;+zZZz*****zzzzzzzzzo#ooZZZooooz+++;;;;;;;;'''''          ';*zZz++Zoo####oz**zZoooooZoooo#######@@@@@@@@@@@@@@############@@@##ooz;;+++++++***zzZZZZZZzzz*++++++++*zZ
                                  'zoo#######oo###########ooZZZZZZooooZZZZooooo##oz*+***zZ##@@@@@@@@######z*+*Z######oooz;'''''''''';;;;+zZZz******zzzzzzzZo#ooZZZooooz++;;;;;;;;;''''   ''''   ';+*zzZ*;zoo#####Z**zZoooooZooooo######@@@@@@@@@@@@@@############@@@##ooz;+++++++++***zzZZZZZZZz*+++++++++*z
                                  'zoo#######o#######o####ooZZZZooooZZZZZZoooo##o*++***zZ#@@@@@@@@@######oz++zo#####oooZ*;''''''''''''';*zZz***+***zzzzzzzZo#ooZZooooo*++;;;;;;;;;;;;'' ';;;;+;;+++*zzZz++Zoo####o**zZZoooooooooo######@@@@@@@@@@@@@@############@@@##ooz**+++++++++***zzZZZZZZZz+++++++++**
                                  'zoo#o#####o#######o###ooZZZZoooZZZZZZZoooo##Z*++***zo#@@@@@@@@@#######Z*+*Z######oooZ+;'''''''''''''+zzZz***+*zzzzzzzzzZ#oooZZooooZ*+;;;;;;;;;;;;;;'';;;;+********zZZ*;zoo#####z**zZoooooooooo#######@@@@@@@@@@@@@###########@@@@###oZzz*++++++++++**zzZZZZZZz*+++++++***
                                  'zooooo#############ooooZZZZooooZzzzzzZooo##Z*+***zZo##@@@@@@@@@######oz++zo######ooZz;;;''''''''''''*zzZz****zzzz*zzzzzo#oooZZooooz+;;;;;;;;;;;;;;;;;;++++zzz*****zZZZ++Zoo####Z**zZooooooooooo######@@@@@@@@@@@@@###########@@@@###oZzz*++++++++++++*zZZZZZZz*+++++++***
                                  '*oooooo#oo#########ooooZZZoooooZZzz*zZooo#oz+*zzzZo##@@@@@@@@@#######o*+*zo######ooZ*;;;''''''''''';zzzZz****zzzz*zZzzzo#ooZZZooooz+;;;;;;;;;;;;;;;+;;++++zzzz*****zZZ*+zooo###o**zZooooooooooo######@@@@@@@@@@@@@######@####@@@@###oZzz*++++++++;;;++*ZZZZZZz*++++++****
                                   *Zooooooooo##oo###ooooZZZoo#oooooZzzzZZZoZz**zzzZ###@@@@@@@@@#######oZ++zZ######oooZ*;;;'''''''''';+zzZz****zzzz**zzz*ZoooZZZZooZz+;;;';;;;;;;;;;;++;;++++*zzzzz***zZZz*+Zoo####z*zZZooooooooooo######@@@@@@@@@@@@@####@@@##@@@@@###oZzz*+++++++;;;;++*zZZZZZzz*+++++****
                                   *ZZooooooooo#ooo#ooooZZZoo###oooooZZz***zz***zzZo###@@@@@@@@@#######oz+*zZ######oooZ+;;;;''''''''';*zzZz****zzzz*zzzz*zooZZZZZoZZz;''';;;;;;;;;;;;;+++++++*zZzzz***zZoZz+zooo###Z**zZooooooooooo#######@@@@@@@@@@@@@@#@@@@###@@@####oZz**++++++;;'';+++zZZZZZZZz******z**
                                   *ZZoooooooooooo##ooooooooo##oooooooZ*++;+++*zzoo###@@@@@@@@@######ooZ*+zZo######oooz+;;;;;''''''';+zzzzz***zzzz**zzz**ZZZZZzZooZz*;'''';;;;;;;;;;;;++++++++zzzzz***zZoZZ*+Zoo###o**zZooooooooooo#######@@@@@@@@@@@@@@@@@#####@@#####oZz**++++;;;;;;++++*zZZZZZZz*********
                                   +ZZZZoooooooooo##oooooooo######ooooz+;;;;+*+zo####@@@@@@@@@######o#Z*+*ZZo######oooz*+;;;;'''''';;*z*zz****zZz***zzz*zZZZzzzZoZZz+''''';;;;;;;;;;;;;+++++++*zzzzz**zZooZZ*zZoo##oz*zZoooooooo#ooo#######@@@@@@@@@@@@@@@@###########ooZz**++;;';;;;+;;++*zZZZooZZzzz******
                                   +zzZZZZoZZooooo##ooooooo#######o#ooz+;;';***zo###@@@@@@@@@######oo#z*+*ZZ#######ooZz*+;;;;''''';'+z**Zz****Zz***zzzz*zZZzz*zZoZz*+''''';;;;;;;;;;;;++++++++**zzzz***zoooZz*zZo###Z**zZooooooo###o#######@@@@@@@@@@@#############oZ#ooZz**++;' ';+++++++*zZZoooZZzzzz*****
                                   +zzzZZZZZZZZZoo#ooooooo##########ooZ*;';+*zZoo##@@@@@@@@@@######o#oz++zZo#####@#ooZz*+;;;;';;;';'*z*zZz***zZz***zzzzzZZZz**zZoZz*;''''';;;;;;;;;;;;+++++++++*zzzzz**zooooz*zZZ###o**zZooo#######o#######@@@@@@@@@###############ZZ#ooZz**+;'   ;+++++**zzZooooZZzzz******
                                   ;z**zzZZZZZ*zooooooooo###########oZz*++****Zo###@@@@@@@@@######oo#Z*++ZZo####@##ooZz*;;;;'';;;;';z**Zz****Zz****zzzzzZZZz*zzZZzz+'''''';;;;;;;;;;;++++++++++**zzzz**zooooZ**zZo##oz+zZooo###oo###########@@@@@@@################oooooZz*+;'    ';;*****zzZooooZz*zz*+++**
                                   ;z***zZZZZZZooooZZooooooo####o###oZz**zZZZZoo##@@@@@@@@@######ooooz++*Zo#####@##ooZ*+;;;;';;;;';+z*zZz***zZz*z*zzzzzZZZZz*zzzzz*;'''''';;;;;;;;;;;++++++++++**zzzzz*zooooZz+zZZ###z+*Zoo###Z++o###########@@@@#####oZo############oooZ**+;     '';*zzzzzzZoooZz**zz*++++*
                                   'z***zZZZZoooooZZoooooooo###oo##oZz**ZZoooo###@@@@@@@@@#######oooZ*++zZo#####@##ooZ*+;;;;';;;'';**zZZ****zz*zzzzzzzzZZZz**zzzz**; ''''';;;;;;;;;;;++++++++++**zzZzzzzZooooZ**ZZZ##Z*+zZo###;  *##################oozzZo#####ooo###ooZz**+;  ''';;+*zZZZzzZZoZZz**zz*+++++

Reallocate and distribute to retail