<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>26846</bug_id>
          
          <creation_ts>2012-01-23 09:36:29 +0400</creation_ts>
          <short_desc>Не собирается на ARM</short_desc>
          <delta_ts>2012-02-02 13:30:43 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>python-module-sip</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="enp">enp</reporter>
          <assigned_to name="manowar@altlinux.org">manowar</assigned_to>
          <cc>antohami</cc>
    
    <cc>cas</cc>
    
    <cc>cow</cc>
    
    <cc>darktemplar</cc>
    
    <cc>evg</cc>
    
    <cc>george</cc>
    
    <cc>grenka</cc>
    
    <cc>imz</cc>
    
    <cc>lav</cc>
    
    <cc>mithraen</cc>
    
    <cc>nbr</cc>
    
    <cc>qa_viy</cc>
    
    <cc>real.altlinux.org</cc>
    
    <cc>rider</cc>
    
    <cc>sbolshakov</cc>
    
    <cc>sem</cc>
    
    <cc>shaba</cc>
    
    <cc>sin</cc>
    
    <cc>slev</cc>
    
    <cc>vitty</cc>
    
    <cc>viy</cc>
    
    <cc>zerg</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>128442</commentid>
    <comment_count>0</comment_count>
    <who name="enp">enp</who>
    <bug_when>2012-01-23 09:36:29 +0400</bug_when>
    <thetext>$ git clone http://git.altlinux.org/gears/p/python-module-sip.git
$ cd python-module-sip/
$ gear -v --hasher -- hsh --target=arm --with-qemu=arm --mount=/proc --apt-config=/home/enp/arm/mkimage-profile-armrootfs/apt.conf 
...
+ python configure.py --debug -d /usr/lib/python2.7/site-packages
This is SIP 4.12.3 for Python 2.7.2 on linux2.
The SIP code generator will be installed in /usr/bin.
The sip module will be installed in /usr/lib/python2.7/site-packages.
The sip.h header file will be installed in /usr/include/python2.7.
The default directory to install .sip files in is /usr/share/sip.
The platform/compiler configuration is linux-g++.
Creating siplib/sip.h...
Creating siplib/siplib.c...
Creating siplib/siplib.sbf...
Creating sipconfig.py...
Creating top level Makefile...
Creating sip code generator Makefile...
Creating sip module Makefile...
+ sed -i &apos;s|^\(CPPFLAGS.*\)|\1 -g -I/usr/include/python2.7|&apos; sipgen/Makefile siplib/Makefile
+ make
make: Entering directory `/usr/src/RPM/BUILD/sip&apos;
make[1]: Entering directory `/usr/src/RPM/BUILD/sip/sipgen&apos;
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o main.o main.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o transform.o transform.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o gencode.o gencode.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o extracts.o extracts.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o export.o export.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o heap.o heap.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o parser.o parser.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o lexer.o lexer.c
/home/phil/hg/sip/sip-4.12.3/sipgen/lexer.c: In function &apos;yylex&apos;:
/home/phil/hg/sip/sip-4.12.3/sipgen/lexer.c:2843:1: internal compiler error: in free_list, at lists.c:53
Please submit a full bug report,
with preprocessed source if appropriate.
See &lt;http://bugzilla.altlinux.org&gt; for instructions.
Preprocessed source stored into /usr/src/tmp/ccLZrD4N.out file, please attach this to your bugreport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128443</commentid>
    <comment_count>1</comment_count>
      <attachid>5297</attachid>
    <who name="enp">enp</who>
    <bug_when>2012-01-23 09:37:41 +0400</bug_when>
    <thetext>Created attachment 5297
Preprocessed source stored in /usr/src/tmp/ccLZrD4N.out file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128447</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2012-01-23 16:58:31 +0400</bug_when>
    <thetext>У вас на ARM gcc не слишком старый?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128456</commentid>
    <comment_count>3</comment_count>
    <who name="real@altlinux.org">real.altlinux.org</who>
    <bug_when>2012-01-24 06:43:24 +0400</bug_when>
    <thetext>Ну и ошибку надо бы повесить на того, кто хотя бы имеет возможность работать с ARM ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128458</commentid>
    <comment_count>4</comment_count>
    <who name="enp">enp</who>
    <bug_when>2012-01-24 11:31:05 +0400</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; У вас на ARM gcc не слишком старый?

$ rpm -qa | grep gcc
gcc-common-1.4.14-alt1
gcc4.5-4.5.1-alt8
libgcc4.5-4.5.1-alt8

Другого вроде и не предлагают</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128459</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2012-01-24 11:54:15 +0400</bug_when>
    <thetext>(In reply to comment #4)
&gt; (В ответ на комментарий №2)
&gt; &gt; У вас на ARM gcc не слишком старый?
&gt; 
&gt; $ rpm -qa | grep gcc
&gt; gcc-common-1.4.14-alt1
&gt; gcc4.5-4.5.1-alt8
&gt; libgcc4.5-4.5.1-alt8
&gt; 
&gt; Другого вроде и не предлагают

$ rpmquery gcc4.5
gcc4.5-4.5.3-alt1

Требуйте актуальную версию gcc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128460</commentid>
    <comment_count>6</comment_count>
    <who name="enp">enp</who>
    <bug_when>2012-01-24 12:09:06 +0400</bug_when>
    <thetext>&gt; Требуйте актуальную версию gcc.

У кого?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128462</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2012-01-24 12:16:33 +0400</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; Требуйте актуальную версию gcc.
&gt; 
&gt; У кого?

У мейнтейнеров репозитория ARM, я полагаю.
Или соберите пока локально.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128466</commentid>
    <comment_count>8</comment_count>
    <who name="Sergey Bolshakov">sbolshakov</who>
    <bug_when>2012-01-24 14:28:47 +0400</bug_when>
    <thetext>их есть у меня, положу на днях</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128620</commentid>
    <comment_count>9</comment_count>
    <who name="enp">enp</who>
    <bug_when>2012-01-31 08:48:11 +0400</bug_when>
    <thetext>(В ответ на комментарий №8)
&gt; их есть у меня, положу на днях

Спасибо!

Однако сам я его пересобрать по-прежнему не могу:

+ python configure.py --debug -d /usr/lib/python2.7/site-packages
This is SIP 4.12.3 for Python 2.7.2 on linux2.
The SIP code generator will be installed in /usr/bin.
The sip module will be installed in /usr/lib/python2.7/site-packages.
The sip.h header file will be installed in /usr/include/python2.7.
The default directory to install .sip files in is /usr/share/sip.
The platform/compiler configuration is linux-g++.
Creating siplib/sip.h...
Creating siplib/siplib.c...
Creating siplib/siplib.sbf...
Creating sipconfig.py...
Creating top level Makefile...
Creating sip code generator Makefile...
Creating sip module Makefile...
+ sed -i &apos;s|^\(CPPFLAGS.*\)|\1 -g -I/usr/include/python2.7|&apos; sipgen/Makefile siplib/Makefile
+ make
make: Entering directory `/usr/src/RPM/BUILD/sip&apos;
make[1]: Entering directory `/usr/src/RPM/BUILD/sip/sipgen&apos;
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o main.o main.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o transform.o transform.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o gencode.o gencode.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o extracts.o extracts.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o export.o export.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o heap.o heap.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o parser.o parser.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o lexer.o lexer.c
virtual memory exhausted: Cannot allocate memory
make[1]: *** [lexer.o] Error 1
make[1]: Leaving directory `/usr/src/RPM/BUILD/sip/sipgen&apos;
make: *** [all] Error 2
make: Leaving directory `/usr/src/RPM/BUILD/sip&apos;
error: Bad exit status from /usr/src/tmp/rpm-tmp.50080 (%build)

Потребление памяти в процессе сборки выглядело так:
$ free
             total       used       free     shared    buffers     cached
Mem:       2020116    1931456      88660          0        528      66544
-/+ buffers/cache:    1864384     155732
Swap:      1951860     930272    1021588

Да, в хост-системе i586 и branch/t6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128621</commentid>
    <comment_count>10</comment_count>
    <who name="enp">enp</who>
    <bug_when>2012-01-31 09:59:36 +0400</bug_when>
    <thetext>&gt; Да, в хост-системе i586 и branch/t6

Повторил на хост-системе с x86_64, branch/t6 и вдвое большим объемом RAM и свопа. Получил:

+ python configure.py --debug -d /usr/lib/python2.7/site-packages
This is SIP 4.12.3 for Python 2.7.2 on linux2.
The SIP code generator will be installed in /usr/bin.
The sip module will be installed in /usr/lib/python2.7/site-packages.
The sip.h header file will be installed in /usr/include/python2.7.
The default directory to install .sip files in is /usr/share/sip.
The platform/compiler configuration is linux-g++.
Creating siplib/sip.h...
Creating siplib/siplib.c...
Creating siplib/siplib.sbf...
Creating sipconfig.py...
Creating top level Makefile...
Creating sip code generator Makefile...
Creating sip module Makefile...
+ sed -i &apos;s|^\(CPPFLAGS.*\)|\1 -g -I/usr/include/python2.7|&apos; sipgen/Makefile siplib/Makefile
+ make
make: Entering directory `/usr/src/RPM/BUILD/sip&apos;
make[1]: Entering directory `/usr/src/RPM/BUILD/sip/sipgen&apos;
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o main.o main.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o transform.o transform.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o gencode.o gencode.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o extracts.o extracts.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o export.o export.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o heap.o heap.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o parser.o parser.c
gcc -c -pipe -O2 -w -DNDEBUG -I. -g -I/usr/include/python2.7 -o lexer.o lexer.c
/home/phil/hg/sip/sip-4.12.3/sipgen/lexer.c: In function &apos;yylex&apos;:
/home/phil/hg/sip/sip-4.12.3/sipgen/lexer.c:2843:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See &lt;http://bugzilla.altlinux.org&gt; for instructions.
Preprocessed source stored into /usr/src/tmp/ccB2v0oq.out file, please attach this to your bugreport.
make[1]: *** [lexer.o] Error 1
make[1]: Leaving directory `/usr/src/RPM/BUILD/sip/sipgen&apos;
make: *** [all] Error 2
make: Leaving directory `/usr/src/RPM/BUILD/sip&apos;
error: Bad exit status from /usr/src/tmp/rpm-tmp.47559 (%build)

Это уже с gcc4.5-4.5.3-alt1.3

Preprocessed source прикладывать или что-нибудь еще показать?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128667</commentid>
    <comment_count>11</comment_count>
    <who name="enp">enp</who>
    <bug_when>2012-02-02 10:09:18 +0400</bug_when>
    <thetext>(В ответ на комментарий №10)
&gt; &gt; Да, в хост-системе i586 и branch/t6
&gt; 
&gt; Повторил на хост-системе с x86_64, branch/t6 и вдвое большим объемом RAM и
&gt; свопа. Получил:

Со второго раза (а на другом железе - так вообще с первого) почти собралось, остановилось на:

Adjusting library links in /usr/src/tmp/python-module-sip-buildroot
./usr/lib:
Verifying ELF objects in /usr/src/tmp/python-module-sip-buildroot (arch=normal,fhs=normal,lint=no,rpath=normal,stack=no,textrel=normal,unresolved=normal)
ldd: ERROR: ./usr/bin/sip: trace failed
error: Bad exit status from /usr/src/tmp/rpm-tmp.9264 (%install)

Аналогичным образом с первого раза сегфолтилась сборка ядра, на второй раз она закончилась на:

  CC      arch/arm/mm/vmregion.o
/usr/src/tmp/ccpnfXfN.s: Assembler messages:
/usr/src/tmp/ccpnfXfN.s:322: Error: selected processor does not support ARM mode `smc #0&apos;
/usr/src/tmp/ccpnfXfN.s:364: Error: selected processor does not support ARM mode `smc #0&apos;
make[1]: *** [arch/arm/kernel/sysfs_v7.o] Error 1
make: *** [arch/arm/kernel] Error 2

Видимо, баг нужно перевешивать на что-то другое. Что?

И в какой среде собираются ARM-пакеты в Сизиф? Есть ли возможность воспользоваться этой средой? ssh git.alt build --test-only -b что?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128676</commentid>
    <comment_count>12</comment_count>
    <who name="Sergey Bolshakov">sbolshakov</who>
    <bug_when>2012-02-02 13:30:43 +0400</bug_when>
    <thetext>python-module-sip-4.13.1-alt1 в сизифе.
относительно доступа к сборочнице -- ожжидайте анонсов.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>5297</attachid>
            <date>2012-01-23 09:37:41 +0400</date>
            <delta_ts>2012-01-23 09:37:41 +0400</delta_ts>
            <desc>Preprocessed source stored in /usr/src/tmp/ccLZrD4N.out file</desc>
            <filename>ccLZrD4N.out</filename>
            <type>application/octet-stream</type>
            <size>209333</size>
            <attacher name="enp">enp</attacher>
            
              <data encoding="base64">Ly8gL3Vzci9saWJleGVjL2djYy9hcm0tYWx0LWxpbnV4LWdudWVhYmkvNC41LjEvY2MxIC1xdWll
dCAtSS4gLUkvdXNyL2luY2x1ZGUvcHl0aG9uMi43IC1ETkRFQlVHIGxleGVyLmMgLURfRk9SVElG
WV9TT1VSQ0U9MiAtZnN0YWNrLXByb3RlY3RvciAtcXVpZXQgLWR1bXBiYXNlIGxleGVyLmMgLWF1
eGJhc2Utc3RyaXAgbGV4ZXIubyAtZyAtTzIgLXcgLW8gLSAtZnJhbmRvbS1zZWVkPTAKIyAxICJs
ZXhlci5jIgojIDEgIi91c3Ivc3JjL1JQTS9CVUlMRC9zaXAvc2lwZ2VuLy8iCiMgMSAiPGJ1aWx0
LWluPiIKIyAxICI8Y29tbWFuZC1saW5lPiIKIyAxICJsZXhlci5jIgojIDIgIi9ob21lL3BoaWwv
aGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmMiCiMgNCAiL2hvbWUvcGhpbC9oZy9zaXAv
c2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIuYyIKIyAyMCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQu
MTIuMy9zaXBnZW4vbGV4ZXIuYyIKIyAxICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMSAzIDQKIyAy
OCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9mZWF0dXJlcy5o
IiAxIDMgNAojIDM1MiAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDMgNAojIDEgIi91c3IvaW5j
bHVkZS9zeXMvY2RlZnMuaCIgMSAzIDQKIyAzNjUgIi91c3IvaW5jbHVkZS9zeXMvY2RlZnMuaCIg
MyA0CiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvd29yZHNpemUuaCIgMSAzIDQKIyAzNjYgIi91c3Iv
aW5jbHVkZS9zeXMvY2RlZnMuaCIgMiAzIDQKIyAzNTMgIi91c3IvaW5jbHVkZS9mZWF0dXJlcy5o
IiAyIDMgNAojIDM3NiAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDMgNAojIDEgIi91c3IvaW5j
bHVkZS9nbnUvc3R1YnMuaCIgMSAzIDQKIyAzNzcgIi91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAy
IDMgNAojIDI5ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQKCgoKCgojIDEgIi91c3IvbGli
L2djYy9hcm0tYWx0LWxpbnV4LWdudWVhYmkvNC41LjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQK
IyAyMTEgIi91c3IvbGliL2djYy9hcm0tYWx0LWxpbnV4LWdudWVhYmkvNC41LjEvaW5jbHVkZS9z
dGRkZWYuaCIgMyA0CnR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsKIyAzNSAiL3Vzci9pbmNs
dWRlL3N0ZGlvLmgiIDIgMyA0CgojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDEgMyA0
CiMgMjggIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9i
aXRzL3dvcmRzaXplLmgiIDEgMyA0CiMgMjkgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDIg
MyA0CgoKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdV9jaGFyOwp0eXBlZGVmIHVuc2lnbmVkIHNo
b3J0IGludCBfX3Vfc2hvcnQ7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdV9pbnQ7CnR5cGVkZWYg
dW5zaWduZWQgbG9uZyBpbnQgX191X2xvbmc7CgoKdHlwZWRlZiBzaWduZWQgY2hhciBfX2ludDhf
dDsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdWludDhfdDsKdHlwZWRlZiBzaWduZWQgc2hvcnQg
aW50IF9faW50MTZfdDsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBpbnQgX191aW50MTZfdDsKdHlw
ZWRlZiBzaWduZWQgaW50IF9faW50MzJfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191aW50MzJf
dDsKCgoKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBzaWduZWQgbG9uZyBsb25nIGludCBfX2ludDY0
X3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9fdWludDY0
X3Q7CgoKCgoKCgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgbG9uZyBsb25nIGludCBfX3F1YWRfdDsK
X19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX191X3F1YWRfdDsK
IyAxMzEgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9i
aXRzL3R5cGVzaXplcy5oIiAxIDMgNAojIDEzMiAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIg
MiAzIDQKCgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgX191X3F1YWRfdCBfX2Rldl90OwpfX2V4dGVu
c2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgaW50IF9fdWlkX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRl
ZiB1bnNpZ25lZCBpbnQgX19naWRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxv
bmcgaW50IF9faW5vX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBfX3VfcXVhZF90IF9faW5vNjRf
dDsKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX21vZGVfdDsKX19leHRlbnNp
b25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX25saW5rX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRl
ZiBsb25nIGludCBfX29mZl90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgX19xdWFkX3QgX19vZmY2
NF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgaW50IF9fcGlkX3Q7Cl9fZXh0ZW5zaW9uX18gdHlw
ZWRlZiBzdHJ1Y3QgeyBpbnQgX192YWxbMl07IH0gX19mc2lkX3Q7Cl9fZXh0ZW5zaW9uX18gdHlw
ZWRlZiBsb25nIGludCBfX2Nsb2NrX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBs
b25nIGludCBfX3JsaW1fdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIF9fdV9xdWFkX3QgX19ybGlt
NjRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX2lkX3Q7Cl9fZXh0ZW5z
aW9uX18gdHlwZWRlZiBsb25nIGludCBfX3RpbWVfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIHVu
c2lnbmVkIGludCBfX3VzZWNvbmRzX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGludCBf
X3N1c2Vjb25kc190OwoKX19leHRlbnNpb25fXyB0eXBlZGVmIGludCBfX2RhZGRyX3Q7Cl9fZXh0
ZW5zaW9uX18gdHlwZWRlZiBsb25nIGludCBfX3N3YmxrX3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRl
ZiBpbnQgX19rZXlfdDsKCgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgaW50IF9fY2xvY2tpZF90OwoK
Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB2b2lkICogX190aW1lcl90OwoKCl9fZXh0ZW5zaW9uX18g
dHlwZWRlZiBsb25nIGludCBfX2Jsa3NpemVfdDsKCgoKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBs
b25nIGludCBfX2Jsa2NudF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgX19xdWFkX3QgX19ibGtj
bnQ2NF90OwoKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX2ZzYmxr
Y250X3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBfX3VfcXVhZF90IF9fZnNibGtjbnQ2NF90OwoK
Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX2ZzZmlsY250X3Q7Cl9f
ZXh0ZW5zaW9uX18gdHlwZWRlZiBfX3VfcXVhZF90IF9fZnNmaWxjbnQ2NF90OwoKX19leHRlbnNp
b25fXyB0eXBlZGVmIGludCBfX3NzaXplX3Q7CgoKCnR5cGVkZWYgX19vZmY2NF90IF9fbG9mZl90
Owp0eXBlZGVmIF9fcXVhZF90ICpfX3FhZGRyX3Q7CnR5cGVkZWYgY2hhciAqX19jYWRkcl90OwoK
Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBpbnQgX19pbnRwdHJfdDsKCgpfX2V4dGVuc2lvbl9fIHR5
cGVkZWYgdW5zaWduZWQgaW50IF9fc29ja2xlbl90OwojIDM3ICIvdXNyL2luY2x1ZGUvc3RkaW8u
aCIgMiAzIDQKIyA0NSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNApzdHJ1Y3QgX0lPX0ZJTEU7
CgoKCnR5cGVkZWYgc3RydWN0IF9JT19GSUxFIEZJTEU7CgoKCgoKIyA2NSAiL3Vzci9pbmNsdWRl
L3N0ZGlvLmgiIDMgNAp0eXBlZGVmIHN0cnVjdCBfSU9fRklMRSBfX0ZJTEU7CiMgNzUgIi91c3Iv
aW5jbHVkZS9zdGRpby5oIiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMSAzIDQKIyAz
MiAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9fR19jb25maWcu
aCIgMSAzIDQKIyAxNSAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAzIDQKIyAxICIvdXNyL2xp
Yi9nY2MvYXJtLWFsdC1saW51eC1nbnVlYWJpLzQuNS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0
CiMgMTYgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMiAzIDQKCgoKCiMgMSAiL3Vzci9pbmNs
dWRlL3djaGFyLmgiIDEgMyA0CiMgODMgIi91c3IvaW5jbHVkZS93Y2hhci5oIiAzIDQKdHlwZWRl
ZiBzdHJ1Y3QKewogIGludCBfX2NvdW50OwogIHVuaW9uCiAgewoKICAgIHVuc2lnbmVkIGludCBf
X3djaDsKCgoKICAgIGNoYXIgX193Y2hiWzRdOwogIH0gX192YWx1ZTsKfSBfX21ic3RhdGVfdDsK
IyAyMSAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAyIDMgNAoKdHlwZWRlZiBzdHJ1Y3QKewog
IF9fb2ZmX3QgX19wb3M7CiAgX19tYnN0YXRlX3QgX19zdGF0ZTsKfSBfR19mcG9zX3Q7CnR5cGVk
ZWYgc3RydWN0CnsKICBfX29mZjY0X3QgX19wb3M7CiAgX19tYnN0YXRlX3QgX19zdGF0ZTsKfSBf
R19mcG9zNjRfdDsKIyA1MyAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAzIDQKdHlwZWRlZiBp
bnQgX0dfaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKdHlwZWRl
ZiBpbnQgX0dfaW50MzJfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fU0lfXykpKTsKdHlw
ZWRlZiB1bnNpZ25lZCBpbnQgX0dfdWludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChf
X0hJX18pKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9HX3VpbnQzMl90IF9fYXR0cmlidXRlX18g
KChfX21vZGVfXyAoX19TSV9fKSkpOwojIDMzICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMiAzIDQK
IyA1MyAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNAojIDEgIi91c3IvbGliL2djYy9hcm0tYWx0
LWxpbnV4LWdudWVhYmkvNC41LjEvaW5jbHVkZS9zdGRhcmcuaCIgMSAzIDQKIyA0MCAiL3Vzci9s
aWIvZ2NjL2FybS1hbHQtbGludXgtZ251ZWFiaS80LjUuMS9pbmNsdWRlL3N0ZGFyZy5oIiAzIDQK
dHlwZWRlZiBfX2J1aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKIyA1NCAiL3Vzci9pbmNs
dWRlL2xpYmlvLmgiIDIgMyA0CiMgMTcwICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0CnN0cnVj
dCBfSU9fanVtcF90OyBzdHJ1Y3QgX0lPX0ZJTEU7CiMgMTgwICIvdXNyL2luY2x1ZGUvbGliaW8u
aCIgMyA0CnR5cGVkZWYgdm9pZCBfSU9fbG9ja190OwoKCgoKCnN0cnVjdCBfSU9fbWFya2VyIHsK
ICBzdHJ1Y3QgX0lPX21hcmtlciAqX25leHQ7CiAgc3RydWN0IF9JT19GSUxFICpfc2J1ZjsKCgoK
ICBpbnQgX3BvczsKIyAyMDMgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzIDQKfTsKCgplbnVtIF9f
Y29kZWN2dF9yZXN1bHQKewogIF9fY29kZWN2dF9vaywKICBfX2NvZGVjdnRfcGFydGlhbCwKICBf
X2NvZGVjdnRfZXJyb3IsCiAgX19jb2RlY3Z0X25vY29udgp9OwojIDI3MSAiL3Vzci9pbmNsdWRl
L2xpYmlvLmgiIDMgNApzdHJ1Y3QgX0lPX0ZJTEUgewogIGludCBfZmxhZ3M7CgoKCgogIGNoYXIq
IF9JT19yZWFkX3B0cjsKICBjaGFyKiBfSU9fcmVhZF9lbmQ7CiAgY2hhciogX0lPX3JlYWRfYmFz
ZTsKICBjaGFyKiBfSU9fd3JpdGVfYmFzZTsKICBjaGFyKiBfSU9fd3JpdGVfcHRyOwogIGNoYXIq
IF9JT193cml0ZV9lbmQ7CiAgY2hhciogX0lPX2J1Zl9iYXNlOwogIGNoYXIqIF9JT19idWZfZW5k
OwoKICBjaGFyICpfSU9fc2F2ZV9iYXNlOwogIGNoYXIgKl9JT19iYWNrdXBfYmFzZTsKICBjaGFy
ICpfSU9fc2F2ZV9lbmQ7CgogIHN0cnVjdCBfSU9fbWFya2VyICpfbWFya2VyczsKCiAgc3RydWN0
IF9JT19GSUxFICpfY2hhaW47CgogIGludCBfZmlsZW5vOwoKCgogIGludCBfZmxhZ3MyOwoKICBf
X29mZl90IF9vbGRfb2Zmc2V0OwoKCgogIHVuc2lnbmVkIHNob3J0IF9jdXJfY29sdW1uOwogIHNp
Z25lZCBjaGFyIF92dGFibGVfb2Zmc2V0OwogIGNoYXIgX3Nob3J0YnVmWzFdOwoKCgogIF9JT19s
b2NrX3QgKl9sb2NrOwojIDMxOSAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNAogIF9fb2ZmNjRf
dCBfb2Zmc2V0OwojIDMyOCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNAogIHZvaWQgKl9fcGFk
MTsKICB2b2lkICpfX3BhZDI7CiAgdm9pZCAqX19wYWQzOwogIHZvaWQgKl9fcGFkNDsKICBzaXpl
X3QgX19wYWQ1OwoKICBpbnQgX21vZGU7CgogIGNoYXIgX3VudXNlZDJbMTUgKiBzaXplb2YgKGlu
dCkgLSA0ICogc2l6ZW9mICh2b2lkICopIC0gc2l6ZW9mIChzaXplX3QpXTsKCn07CgoKdHlwZWRl
ZiBzdHJ1Y3QgX0lPX0ZJTEUgX0lPX0ZJTEU7CgoKc3RydWN0IF9JT19GSUxFX3BsdXM7CgpleHRl
cm4gc3RydWN0IF9JT19GSUxFX3BsdXMgX0lPXzJfMV9zdGRpbl87CmV4dGVybiBzdHJ1Y3QgX0lP
X0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZG91dF87CmV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBf
SU9fMl8xX3N0ZGVycl87CiMgMzY0ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0CnR5cGVkZWYg
X19zc2l6ZV90IF9faW9fcmVhZF9mbiAodm9pZCAqX19jb29raWUsIGNoYXIgKl9fYnVmLCBzaXpl
X3QgX19uYnl0ZXMpOwoKCgoKCgoKdHlwZWRlZiBfX3NzaXplX3QgX19pb193cml0ZV9mbiAodm9p
ZCAqX19jb29raWUsIF9fY29uc3QgY2hhciAqX19idWYsCiAgICAgc2l6ZV90IF9fbik7CgoKCgoK
Cgp0eXBlZGVmIGludCBfX2lvX3NlZWtfZm4gKHZvaWQgKl9fY29va2llLCBfX29mZjY0X3QgKl9f
cG9zLCBpbnQgX193KTsKCgp0eXBlZGVmIGludCBfX2lvX2Nsb3NlX2ZuICh2b2lkICpfX2Nvb2tp
ZSk7CiMgNDE2ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0CmV4dGVybiBpbnQgX191bmRlcmZs
b3cgKF9JT19GSUxFICopOwpleHRlcm4gaW50IF9fdWZsb3cgKF9JT19GSUxFICopOwpleHRlcm4g
aW50IF9fb3ZlcmZsb3cgKF9JT19GSUxFICosIGludCk7CiMgNDYwICIvdXNyL2luY2x1ZGUvbGli
aW8uaCIgMyA0CmV4dGVybiBpbnQgX0lPX2dldGMgKF9JT19GSUxFICpfX2ZwKTsKZXh0ZXJuIGlu
dCBfSU9fcHV0YyAoaW50IF9fYywgX0lPX0ZJTEUgKl9fZnApOwpleHRlcm4gaW50IF9JT19mZW9m
IChfSU9fRklMRSAqX19mcCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CmV4dGVybiBp
bnQgX0lPX2ZlcnJvciAoX0lPX0ZJTEUgKl9fZnApIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XykpOwoKZXh0ZXJuIGludCBfSU9fcGVla2NfbG9ja2VkIChfSU9fRklMRSAqX19mcCk7CgoKCgoK
ZXh0ZXJuIHZvaWQgX0lPX2Zsb2NrZmlsZSAoX0lPX0ZJTEUgKikgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fKSk7CmV4dGVybiB2b2lkIF9JT19mdW5sb2NrZmlsZSAoX0lPX0ZJTEUgKikgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CmV4dGVybiBpbnQgX0lPX2Z0cnlsb2NrZmlsZSAo
X0lPX0ZJTEUgKikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CiMgNDkwICIvdXNyL2lu
Y2x1ZGUvbGliaW8uaCIgMyA0CmV4dGVybiBpbnQgX0lPX3Zmc2NhbmYgKF9JT19GSUxFICogX19y
ZXN0cmljdCwgY29uc3QgY2hhciAqIF9fcmVzdHJpY3QsCiAgIF9fZ251Y192YV9saXN0LCBpbnQg
Kl9fcmVzdHJpY3QpOwpleHRlcm4gaW50IF9JT192ZnByaW50ZiAoX0lPX0ZJTEUgKl9fcmVzdHJp
Y3QsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QsCiAgICBfX2dudWNfdmFfbGlzdCk7CmV4dGVybiBf
X3NzaXplX3QgX0lPX3BhZG4gKF9JT19GSUxFICosIGludCwgX19zc2l6ZV90KTsKZXh0ZXJuIHNp
emVfdCBfSU9fc2dldG4gKF9JT19GSUxFICosIHZvaWQgKiwgc2l6ZV90KTsKCmV4dGVybiBfX29m
ZjY0X3QgX0lPX3NlZWtvZmYgKF9JT19GSUxFICosIF9fb2ZmNjRfdCwgaW50LCBpbnQpOwpleHRl
cm4gX19vZmY2NF90IF9JT19zZWVrcG9zIChfSU9fRklMRSAqLCBfX29mZjY0X3QsIGludCk7Cgpl
eHRlcm4gdm9pZCBfSU9fZnJlZV9iYWNrdXBfYXJlYSAoX0lPX0ZJTEUgKikgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fKSk7CiMgNzYgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMgNAojIDg5
ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0CgoKdHlwZWRlZiBfR19mcG9zX3QgZnBvc190OwoK
CgoKIyAxNDEgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvYml0
cy9zdGRpb19saW0uaCIgMSAzIDQKIyAxNDIgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMgNAoK
CgpleHRlcm4gc3RydWN0IF9JT19GSUxFICpzdGRpbjsKZXh0ZXJuIHN0cnVjdCBfSU9fRklMRSAq
c3Rkb3V0OwpleHRlcm4gc3RydWN0IF9JT19GSUxFICpzdGRlcnI7CgoKCgoKCgoKCmV4dGVybiBp
bnQgcmVtb3ZlIChfX2NvbnN0IGNoYXIgKl9fZmlsZW5hbWUpIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXykpOwoKZXh0ZXJuIGludCByZW5hbWUgKF9fY29uc3QgY2hhciAqX19vbGQsIF9fY29u
c3QgY2hhciAqX19uZXcpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpOwoKCgoKZXh0ZXJu
IGludCByZW5hbWVhdCAoaW50IF9fb2xkZmQsIF9fY29uc3QgY2hhciAqX19vbGQsIGludCBfX25l
d2ZkLAogICAgICAgX19jb25zdCBjaGFyICpfX25ldykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fKSk7CgoKCgoKCgoKZXh0ZXJuIEZJTEUgKnRtcGZpbGUgKHZvaWQpIF9fYXR0cmlidXRlX18g
KChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CiMgMTg4ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIg
MyA0CmV4dGVybiBjaGFyICp0bXBuYW0gKGNoYXIgKl9fcykgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCgoKCgpl
eHRlcm4gY2hhciAqdG1wbmFtX3IgKGNoYXIgKl9fcykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKIyAyMDYgIi91
c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0ZXJuIGNoYXIgKnRlbXBuYW0gKF9fY29uc3QgY2hh
ciAqX19kaXIsIF9fY29uc3QgY2hhciAqX19wZngpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKSBfX2F0dHJpYnV0ZV9fICgoX193
YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKCgoKCgoKCmV4dGVybiBpbnQgZmNsb3NlIChGSUxFICpf
X3N0cmVhbSk7CgoKCgpleHRlcm4gaW50IGZmbHVzaCAoRklMRSAqX19zdHJlYW0pOwoKIyAyMzEg
Ii91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0ZXJuIGludCBmZmx1c2hfdW5sb2NrZWQgKEZJ
TEUgKl9fc3RyZWFtKTsKIyAyNDUgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKCgoKCgoKZXh0
ZXJuIEZJTEUgKmZvcGVuIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19maWxlbmFtZSwKICAg
ICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbW9kZXMpIF9fYXR0cmlidXRlX18gKChfX3dh
cm5fdW51c2VkX3Jlc3VsdF9fKSk7CgoKCgpleHRlcm4gRklMRSAqZnJlb3BlbiAoX19jb25zdCBj
aGFyICpfX3Jlc3RyaWN0IF9fZmlsZW5hbWUsCiAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fbW9kZXMsCiAgICAgICAgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgX19hdHRyaWJ1
dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKIyAyNzQgIi91c3IvaW5jbHVkZS9zdGRp
by5oIiAzIDQKCiMgMjg1ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0CmV4dGVybiBGSUxFICpm
ZG9wZW4gKGludCBfX2ZkLCBfX2NvbnN0IGNoYXIgKl9fbW9kZXMpIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CiMg
Mjk4ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0CmV4dGVybiBGSUxFICpmbWVtb3BlbiAodm9p
ZCAqX19zLCBzaXplX3QgX19sZW4sIF9fY29uc3QgY2hhciAqX19tb2RlcykKICBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRf
XykpOwoKCgoKZXh0ZXJuIEZJTEUgKm9wZW5fbWVtc3RyZWFtIChjaGFyICoqX19idWZsb2MsIHNp
emVfdCAqX19zaXplbG9jKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0
ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKCgoKCgpleHRlcm4gdm9pZCBzZXRidWYg
KEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYpIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXykpOwoKCgpleHRlcm4gaW50IHNldHZidWYgKEZJTEUgKl9f
cmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCiAgICAgIGludCBfX21v
ZGVzLCBzaXplX3QgX19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKCgoKCgpleHRl
cm4gdm9pZCBzZXRidWZmZXIgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVz
dHJpY3QgX19idWYsCiAgICAgICAgIHNpemVfdCBfX3NpemUpIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXykpOwoKCmV4dGVybiB2b2lkIHNldGxpbmVidWYgKEZJTEUgKl9fc3RyZWFtKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKCgoKCgoKCgpleHRlcm4gaW50IGZwcmludGYgKEZJ
TEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sCiAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X2Zvcm1hdCwgLi4uKTsKCgoKCmV4dGVybiBpbnQgcHJpbnRmIChfX2NvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19mb3JtYXQsIC4uLik7CgpleHRlcm4gaW50IHNwcmludGYgKGNoYXIgKl9fcmVzdHJp
Y3QgX19zLAogICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CgoKCgoKZXh0ZXJuIGludCB2ZnByaW50ZiAoRklM
RSAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKICAg
ICAgIF9fZ251Y192YV9saXN0IF9fYXJnKTsKCgoKCmV4dGVybiBpbnQgdnByaW50ZiAoX19jb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCBfX2FyZyk7CgpleHRl
cm4gaW50IHZzcHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgX19jb25zdCBjaGFyICpfX3Jl
c3RyaWN0IF9fZm9ybWF0LAogICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXykpOwoKCgoKCmV4dGVybiBpbnQgc25wcmludGYgKGNoYXIgKl9fcmVz
dHJpY3QgX19zLCBzaXplX3QgX19tYXhsZW4sCiAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJp
Y3QgX19mb3JtYXQsIC4uLikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0
dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMywgNCkpKTsKCmV4dGVybiBpbnQg
dnNucHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4bGVuLAogICAgICAg
IF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcp
CiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fZm9y
bWF0X18gKF9fcHJpbnRmX18sIDMsIDApKSk7CgojIDM5NiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgi
IDMgNApleHRlcm4gaW50IHZkcHJpbnRmIChpbnQgX19mZCwgX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fZm10LAogICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAgICAgX19hdHRyaWJ1dGVf
XyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDIsIDApKSk7CmV4dGVybiBpbnQgZHByaW50ZiAo
aW50IF9fZmQsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZtdCwgLi4uKQogICAgIF9fYXR0
cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAyLCAzKSkpOwoKCgoKCgoKCmV4dGVy
biBpbnQgZnNjYW5mIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLAogICAgIF9fY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpOwoKCgoKZXh0ZXJuIGludCBzY2FuZiAoX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fZm9ybWF0LCAuLi4pIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSk7CgpleHRlcm4gaW50IHNzY2FuZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywKICAg
ICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fKSk7CiMgNDI3ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0CmV4dGVybiBp
bnQgZnNjYW5mIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBfX2NvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19mb3JtYXQsIC4uLikgX19hc21fXyAoIiIgIl9faXNvYzk5X2ZzY2FuZiIpCgogICAg
ICAgICAgICAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSk7CmV4dGVybiBpbnQgc2NhbmYgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1h
dCwgLi4uKSBfX2FzbV9fICgiIiAiX19pc29jOTlfc2NhbmYiKQogICAgICAgICAgICAgICAgICAg
ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKZXh0ZXJuIGlu
dCBzc2NhbmYgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hhciAqX19y
ZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSBfX2FzbV9fICgiIiAiX19pc29jOTlfc3NjYW5mIikgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkKCiAgICAgICAgICAgICAgICAgICAgICA7CiMgNDQ3
ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0CgoKCgoKCgoKZXh0ZXJuIGludCB2ZnNjYW5mIChG
SUxFICpfX3Jlc3RyaWN0IF9fcywgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAog
ICAgICBfX2dudWNfdmFfbGlzdCBfX2FyZykKICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRf
XyAoX19zY2FuZl9fLCAyLCAwKSkpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSk7CgoKCgoKZXh0ZXJuIGludCB2c2NhbmYgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9y
bWF0X18gKF9fc2NhbmZfXywgMSwgMCkpKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9y
ZXN1bHRfXykpOwoKCmV4dGVybiBpbnQgdnNzY2FuZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fcywKICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFf
bGlzdCBfX2FyZykKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0
ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAyLCAwKSkpOwojIDQ3OCAiL3Vzci9pbmNsdWRl
L3N0ZGlvLmgiIDMgNApleHRlcm4gaW50IHZmc2NhbmYgKEZJTEUgKl9fcmVzdHJpY3QgX19zLCBf
X2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXJnKSBf
X2FzbV9fICgiIiAiX19pc29jOTlfdmZzY2FuZiIpCgoKCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9f
Zm9ybWF0X18gKF9fc2NhbmZfXywgMiwgMCkpKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpOwpleHRlcm4gaW50IHZzY2FuZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCBfX2FyZykgX19hc21fXyAoIiIgIl9faXNvYzk5X3Zz
Y2FuZiIpCgogICAgIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3NjYW5mX18sIDEsIDAp
KSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKZXh0ZXJuIGludCB2
c3NjYW5mIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLCBfX2NvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXJnKSBfX2FzbV9fICgiIiAiX19pc29j
OTlfdnNzY2FuZiIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpCgoKCiAgICAgX19hdHRy
aWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fc2NhbmZfXywgMiwgMCkpKTsKIyA1MDYgIi91c3IvaW5j
bHVkZS9zdGRpby5oIiAzIDQKCgoKCgoKCgoKZXh0ZXJuIGludCBmZ2V0YyAoRklMRSAqX19zdHJl
YW0pOwpleHRlcm4gaW50IGdldGMgKEZJTEUgKl9fc3RyZWFtKTsKCgoKCgpleHRlcm4gaW50IGdl
dGNoYXIgKHZvaWQpOwoKIyA1MzQgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0ZXJuIGlu
dCBnZXRjX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSk7CmV4dGVybiBpbnQgZ2V0Y2hhcl91bmxv
Y2tlZCAodm9pZCk7CiMgNTQ1ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0CmV4dGVybiBpbnQg
ZmdldGNfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKTsKCgoKCgoKCgoKCgpleHRlcm4gaW50IGZw
dXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSk7CmV4dGVybiBpbnQgcHV0YyAoaW50IF9fYywg
RklMRSAqX19zdHJlYW0pOwoKCgoKCmV4dGVybiBpbnQgcHV0Y2hhciAoaW50IF9fYyk7CgojIDU3
OCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4gaW50IGZwdXRjX3VubG9ja2VkIChp
bnQgX19jLCBGSUxFICpfX3N0cmVhbSk7CgoKCgoKCgpleHRlcm4gaW50IHB1dGNfdW5sb2NrZWQg
KGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKTsKZXh0ZXJuIGludCBwdXRjaGFyX3VubG9ja2VkIChp
bnQgX19jKTsKCgoKCgoKZXh0ZXJuIGludCBnZXR3IChGSUxFICpfX3N0cmVhbSk7CgoKZXh0ZXJu
IGludCBwdXR3IChpbnQgX193LCBGSUxFICpfX3N0cmVhbSk7CgoKCgoKCgoKZXh0ZXJuIGNoYXIg
KmZnZXRzIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgaW50IF9fbiwgRklMRSAqX19yZXN0cmljdCBf
X3N0cmVhbSkKICAgICBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwoK
CgoKCgpleHRlcm4gY2hhciAqZ2V0cyAoY2hhciAqX19zKSBfX2F0dHJpYnV0ZV9fICgoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpOwoKIyA2NDAgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0
ZXJuIF9fc3NpemVfdCBfX2dldGRlbGltIChjaGFyICoqX19yZXN0cmljdCBfX2xpbmVwdHIsCiAg
ICAgICAgICBzaXplX3QgKl9fcmVzdHJpY3QgX19uLCBpbnQgX19kZWxpbWl0ZXIsCiAgICAgICAg
ICBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpOwpleHRlcm4gX19zc2l6ZV90IGdldGRlbGltIChjaGFyICoqX19yZXN0cmlj
dCBfX2xpbmVwdHIsCiAgICAgICAgc2l6ZV90ICpfX3Jlc3RyaWN0IF9fbiwgaW50IF9fZGVsaW1p
dGVyLAogICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChf
X3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CgoKCgoKCgpleHRlcm4gX19zc2l6ZV90IGdldGxpbmUg
KGNoYXIgKipfX3Jlc3RyaWN0IF9fbGluZXB0ciwKICAgICAgIHNpemVfdCAqX19yZXN0cmljdCBf
X24sCiAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSBfX2F0dHJpYnV0ZV9fICgoX193
YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKCgoKCgoKCmV4dGVybiBpbnQgZnB1dHMgKF9fY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX3MsIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pOwoKCgoKCmV4
dGVybiBpbnQgcHV0cyAoX19jb25zdCBjaGFyICpfX3MpOwoKCgoKCgpleHRlcm4gaW50IHVuZ2V0
YyAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pOwoKCgoKCgpleHRlcm4gc2l6ZV90IGZyZWFkICh2
b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAogICAgICAgc2l6ZV90IF9fbiwg
RklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKTsKCgoKCmV4dGVybiBzaXplX3QgZndyaXRlIChfX2NvbnN0IHZvaWQgKl9fcmVz
dHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCiAgICAgICAgc2l6ZV90IF9fbiwgRklMRSAqX19y
ZXN0cmljdCBfX3MpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7Cgoj
IDcxMiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4gc2l6ZV90IGZyZWFkX3VubG9j
a2VkICh2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAogICAgICAgICBzaXpl
X3QgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSBfX2F0dHJpYnV0ZV9fICgoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpOwpleHRlcm4gc2l6ZV90IGZ3cml0ZV91bmxvY2tlZCAoX19jb25z
dCB2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAogICAgICAgICAgc2l6ZV90
IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91
bnVzZWRfcmVzdWx0X18pKTsKCgoKCgoKCgpleHRlcm4gaW50IGZzZWVrIChGSUxFICpfX3N0cmVh
bSwgbG9uZyBpbnQgX19vZmYsIGludCBfX3doZW5jZSk7CgoKCgpleHRlcm4gbG9uZyBpbnQgZnRl
bGwgKEZJTEUgKl9fc3RyZWFtKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRf
XykpOwoKCgoKZXh0ZXJuIHZvaWQgcmV3aW5kIChGSUxFICpfX3N0cmVhbSk7CgojIDc0OCAiL3Vz
ci9pbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4gaW50IGZzZWVrbyAoRklMRSAqX19zdHJlYW0s
IF9fb2ZmX3QgX19vZmYsIGludCBfX3doZW5jZSk7CgoKCgpleHRlcm4gX19vZmZfdCBmdGVsbG8g
KEZJTEUgKl9fc3RyZWFtKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
OwojIDc2NyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAoKCgoKCgpleHRlcm4gaW50IGZnZXRw
b3MgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGZwb3NfdCAqX19yZXN0cmljdCBfX3Bvcyk7
CgoKCgpleHRlcm4gaW50IGZzZXRwb3MgKEZJTEUgKl9fc3RyZWFtLCBfX2NvbnN0IGZwb3NfdCAq
X19wb3MpOwojIDc5MCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAoKIyA3OTkgIi91c3IvaW5j
bHVkZS9zdGRpby5oIiAzIDQKCgpleHRlcm4gdm9pZCBjbGVhcmVyciAoRklMRSAqX19zdHJlYW0p
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpOwoKZXh0ZXJuIGludCBmZW9mIChGSUxFICpf
X3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
d2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCmV4dGVybiBpbnQgZmVycm9yIChGSUxFICpfX3N0cmVh
bSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91
bnVzZWRfcmVzdWx0X18pKTsKCgoKCmV4dGVybiB2b2lkIGNsZWFyZXJyX3VubG9ja2VkIChGSUxF
ICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CmV4dGVybiBpbnQgZmVv
Zl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykp
IF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CmV4dGVybiBpbnQgZmVy
cm9yX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCgoKCgoKCgpleHRl
cm4gdm9pZCBwZXJyb3IgKF9fY29uc3QgY2hhciAqX19zKTsKCgoKCgoKIyAxICIvdXNyL2luY2x1
ZGUvYml0cy9zeXNfZXJybGlzdC5oIiAxIDMgNAojIDI3ICIvdXNyL2luY2x1ZGUvYml0cy9zeXNf
ZXJybGlzdC5oIiAzIDQKZXh0ZXJuIGludCBzeXNfbmVycjsKZXh0ZXJuIF9fY29uc3QgY2hhciAq
X19jb25zdCBzeXNfZXJybGlzdFtdOwojIDgyOSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0
CgoKCgpleHRlcm4gaW50IGZpbGVubyAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CgoK
CgpleHRlcm4gaW50IGZpbGVub191bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSk7CiMgODQ4ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0CmV4dGVybiBGSUxFICpwb3BlbiAo
X19jb25zdCBjaGFyICpfX2NvbW1hbmQsIF9fY29uc3QgY2hhciAqX19tb2RlcykgX19hdHRyaWJ1
dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCgoKCgpleHRlcm4gaW50IHBjbG9zZSAo
RklMRSAqX19zdHJlYW0pOwoKCgoKCmV4dGVybiBjaGFyICpjdGVybWlkIChjaGFyICpfX3MpIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpOwojIDg4OCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgi
IDMgNApleHRlcm4gdm9pZCBmbG9ja2ZpbGUgKEZJTEUgKl9fc3RyZWFtKSBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18pKTsKCgoKZXh0ZXJuIGludCBmdHJ5bG9ja2ZpbGUgKEZJTEUgKl9fc3Ry
ZWFtKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpOwoKCmV4dGVybiB2b2lkIGZ1bmxvY2tmaWxlIChGSUxFICpfX3N0
cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CiMgOTA5ICIvdXNyL2luY2x1ZGUv
c3RkaW8uaCIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc3RkaW8uaCIgMSAzIDQKIyA0NCAi
L3Vzci9pbmNsdWRlL2JpdHMvc3RkaW8uaCIgMyA0CmV4dGVybiBfX2lubGluZSBpbnQKZ2V0Y2hh
ciAodm9pZCkKewogIHJldHVybiBfSU9fZ2V0YyAoc3RkaW4pOwp9CgoKCgpleHRlcm4gX19pbmxp
bmUgaW50CmZnZXRjX3VubG9ja2VkIChGSUxFICpfX2ZwKQp7CiAgcmV0dXJuIChfX2J1aWx0aW5f
ZXhwZWN0ICgoKF9fZnApLT5fSU9fcmVhZF9wdHIgPj0gKF9fZnApLT5fSU9fcmVhZF9lbmQpLCAw
KSA/IF9fdWZsb3cgKF9fZnApIDogKih1bnNpZ25lZCBjaGFyICopIChfX2ZwKS0+X0lPX3JlYWRf
cHRyKyspOwp9CgoKCgoKZXh0ZXJuIF9faW5saW5lIGludApnZXRjX3VubG9ja2VkIChGSUxFICpf
X2ZwKQp7CiAgcmV0dXJuIChfX2J1aWx0aW5fZXhwZWN0ICgoKF9fZnApLT5fSU9fcmVhZF9wdHIg
Pj0gKF9fZnApLT5fSU9fcmVhZF9lbmQpLCAwKSA/IF9fdWZsb3cgKF9fZnApIDogKih1bnNpZ25l
ZCBjaGFyICopIChfX2ZwKS0+X0lPX3JlYWRfcHRyKyspOwp9CgoKZXh0ZXJuIF9faW5saW5lIGlu
dApnZXRjaGFyX3VubG9ja2VkICh2b2lkKQp7CiAgcmV0dXJuIChfX2J1aWx0aW5fZXhwZWN0ICgo
KHN0ZGluKS0+X0lPX3JlYWRfcHRyID49IChzdGRpbiktPl9JT19yZWFkX2VuZCksIDApID8gX191
ZmxvdyAoc3RkaW4pIDogKih1bnNpZ25lZCBjaGFyICopIChzdGRpbiktPl9JT19yZWFkX3B0cisr
KTsKfQoKCgoKZXh0ZXJuIF9faW5saW5lIGludApwdXRjaGFyIChpbnQgX19jKQp7CiAgcmV0dXJu
IF9JT19wdXRjIChfX2MsIHN0ZG91dCk7Cn0KCgoKCmV4dGVybiBfX2lubGluZSBpbnQKZnB1dGNf
dW5sb2NrZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKQp7CiAgcmV0dXJuIChfX2J1aWx0aW5f
ZXhwZWN0ICgoKF9fc3RyZWFtKS0+X0lPX3dyaXRlX3B0ciA+PSAoX19zdHJlYW0pLT5fSU9fd3Jp
dGVfZW5kKSwgMCkgPyBfX292ZXJmbG93IChfX3N0cmVhbSwgKHVuc2lnbmVkIGNoYXIpIChfX2Mp
KSA6ICh1bnNpZ25lZCBjaGFyKSAoKihfX3N0cmVhbSktPl9JT193cml0ZV9wdHIrKyA9IChfX2Mp
KSk7Cn0KCgoKCgpleHRlcm4gX19pbmxpbmUgaW50CnB1dGNfdW5sb2NrZWQgKGludCBfX2MsIEZJ
TEUgKl9fc3RyZWFtKQp7CiAgcmV0dXJuIChfX2J1aWx0aW5fZXhwZWN0ICgoKF9fc3RyZWFtKS0+
X0lPX3dyaXRlX3B0ciA+PSAoX19zdHJlYW0pLT5fSU9fd3JpdGVfZW5kKSwgMCkgPyBfX292ZXJm
bG93IChfX3N0cmVhbSwgKHVuc2lnbmVkIGNoYXIpIChfX2MpKSA6ICh1bnNpZ25lZCBjaGFyKSAo
KihfX3N0cmVhbSktPl9JT193cml0ZV9wdHIrKyA9IChfX2MpKSk7Cn0KCgpleHRlcm4gX19pbmxp
bmUgaW50CnB1dGNoYXJfdW5sb2NrZWQgKGludCBfX2MpCnsKICByZXR1cm4gKF9fYnVpbHRpbl9l
eHBlY3QgKCgoc3Rkb3V0KS0+X0lPX3dyaXRlX3B0ciA+PSAoc3Rkb3V0KS0+X0lPX3dyaXRlX2Vu
ZCksIDApID8gX19vdmVyZmxvdyAoc3Rkb3V0LCAodW5zaWduZWQgY2hhcikgKF9fYykpIDogKHVu
c2lnbmVkIGNoYXIpICgqKHN0ZG91dCktPl9JT193cml0ZV9wdHIrKyA9IChfX2MpKSk7Cn0KIyAx
MjUgIi91c3IvaW5jbHVkZS9iaXRzL3N0ZGlvLmgiIDMgNApleHRlcm4gX19pbmxpbmUgaW50Cl9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIGZlb2ZfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFt
KQp7CiAgcmV0dXJuICgoKF9fc3RyZWFtKS0+X2ZsYWdzICYgMHgxMCkgIT0gMCk7Cn0KCgpleHRl
cm4gX19pbmxpbmUgaW50Cl9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIGZlcnJvcl91bmxv
Y2tlZCAoRklMRSAqX19zdHJlYW0pCnsKICByZXR1cm4gKCgoX19zdHJlYW0pLT5fZmxhZ3MgJiAw
eDIwKSAhPSAwKTsKfQojIDkxMCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0CgoKIyAxICIv
dXNyL2luY2x1ZGUvYml0cy9zdGRpbzIuaCIgMSAzIDQKIyAyNCAiL3Vzci9pbmNsdWRlL2JpdHMv
c3RkaW8yLmgiIDMgNApleHRlcm4gaW50IF9fc3ByaW50Zl9jaGsgKGNoYXIgKl9fcmVzdHJpY3Qg
X19zLCBpbnQgX19mbGFnLCBzaXplX3QgX19zbGVuLAogICAgIF9fY29uc3QgY2hhciAqX19yZXN0
cmljdCBfX2Zvcm1hdCwgLi4uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKZXh0ZXJu
IGludCBfX3ZzcHJpbnRmX2NoayAoY2hhciAqX19yZXN0cmljdCBfX3MsIGludCBfX2ZsYWcsIHNp
emVfdCBfX3NsZW4sCiAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKICAg
ICAgX19nbnVjX3ZhX2xpc3QgX19hcCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CgoK
ZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18gKChfX2FydGlmaWNpYWxfXykpIGludApfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18pKSBzcHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fZm10LCAuLi4pCnsKICByZXR1cm4gX19idWlsdGluX19fc3ByaW50Zl9jaGsgKF9fcywg
MiAtIDEsCiAgICAgIF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoX19zLCAyID4gMSksIF9fZm10LCBf
X2J1aWx0aW5fdmFfYXJnX3BhY2sgKCkpOwp9CgoKCgoKCmV4dGVybiBfX2lubGluZSBfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fICgoX19hcnRpZmljaWFs
X18pKSBpbnQKX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgdnNwcmludGYgKGNoYXIgKl9f
cmVzdHJpY3QgX19zLCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIF9fZ251Y192YV9s
aXN0IF9fYXApCgp7CiAgcmV0dXJuIF9fYnVpbHRpbl9fX3ZzcHJpbnRmX2NoayAoX19zLCAyIC0g
MSwKICAgICAgIF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoX19zLCAyID4gMSksIF9fZm10LCBfX2Fw
KTsKfQoKCgpleHRlcm4gaW50IF9fc25wcmludGZfY2hrIChjaGFyICpfX3Jlc3RyaWN0IF9fcywg
c2l6ZV90IF9fbiwgaW50IF9fZmxhZywKICAgICAgc2l6ZV90IF9fc2xlbiwgX19jb25zdCBjaGFy
ICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAogICAgICAuLi4pIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXykpOwpleHRlcm4gaW50IF9fdnNucHJpbnRmX2NoayAoY2hhciAqX19yZXN0cmljdCBfX3Ms
IHNpemVfdCBfX24sIGludCBfX2ZsYWcsCiAgICAgICBzaXplX3QgX19zbGVuLCBfX2NvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCiAgICAgICBfX2dudWNfdmFfbGlzdCBfX2FwKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKCgpleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fYXJ0aWZpY2lhbF9fKSkg
aW50Cl9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIHNucHJpbnRmIChjaGFyICpfX3Jlc3Ry
aWN0IF9fcywgc2l6ZV90IF9fbiwgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LCAuLi4p
Cgp7CiAgcmV0dXJuIF9fYnVpbHRpbl9fX3NucHJpbnRmX2NoayAoX19zLCBfX24sIDIgLSAxLAog
ICAgICAgX19idWlsdGluX29iamVjdF9zaXplIChfX3MsIDIgPiAxKSwgX19mbXQsIF9fYnVpbHRp
bl92YV9hcmdfcGFjayAoKSk7Cn0KCgoKCgoKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXykpIF9fYXR0cmlidXRlX18gKChfX2FydGlmaWNpYWxfXykpIGlu
dApfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSB2c25wcmludGYgKGNoYXIgKl9fcmVzdHJp
Y3QgX19zLCBzaXplX3QgX19uLCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIF9fZ251
Y192YV9saXN0IF9fYXApCgp7CiAgcmV0dXJuIF9fYnVpbHRpbl9fX3ZzbnByaW50Zl9jaGsgKF9f
cywgX19uLCAyIC0gMSwKICAgICAgICBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fcywgMiA+IDEp
LCBfX2ZtdCwgX19hcCk7Cn0KCgoKCgpleHRlcm4gaW50IF9fZnByaW50Zl9jaGsgKEZJTEUgKl9f
cmVzdHJpY3QgX19zdHJlYW0sIGludCBfX2ZsYWcsCiAgICAgX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fZm9ybWF0LCAuLi4pOwpleHRlcm4gaW50IF9fcHJpbnRmX2NoayAoaW50IF9fZmxhZywg
X19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pOwpleHRlcm4gaW50IF9fdmZw
cmludGZfY2hrIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBpbnQgX19mbGFnLAogICAgICBf
X2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXApOwpl
eHRlcm4gaW50IF9fdnByaW50Zl9jaGsgKGludCBfX2ZsYWcsIF9fY29uc3QgY2hhciAqX19yZXN0
cmljdCBfX2Zvcm1hdCwKICAgICBfX2dudWNfdmFfbGlzdCBfX2FwKTsKCgpleHRlcm4gX19pbmxp
bmUgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
YXJ0aWZpY2lhbF9fKSkgaW50CmZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIF9f
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZtdCwgLi4uKQp7CiAgcmV0dXJuIF9fZnByaW50Zl9j
aGsgKF9fc3RyZWFtLCAyIC0gMSwgX19mbXQsCiAgIF9fYnVpbHRpbl92YV9hcmdfcGFjayAoKSk7
Cn0KCmV4dGVybiBfX2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fICgoX19hcnRpZmljaWFsX18pKSBpbnQKcHJpbnRmIChfX2NvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19mbXQsIC4uLikKewogIHJldHVybiBfX3ByaW50Zl9jaGsgKDIgLSAxLCBf
X2ZtdCwgX19idWlsdGluX3ZhX2FyZ19wYWNrICgpKTsKfQoKCgoKCgoKZXh0ZXJuIF9faW5saW5l
IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fYXR0cmlidXRlX18gKChfX2Fy
dGlmaWNpYWxfXykpIGludAp2cHJpbnRmIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQs
IF9fZ251Y192YV9saXN0IF9fYXApCnsKCiAgcmV0dXJuIF9fdmZwcmludGZfY2hrIChzdGRvdXQs
IDIgLSAxLCBfX2ZtdCwgX19hcCk7CgoKCn0KCmV4dGVybiBfX2lubGluZSBfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fICgoX19hcnRpZmljaWFsX18pKSBp
bnQKdmZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sCiAgIF9fY29uc3QgY2hhciAq
X19yZXN0cmljdCBfX2ZtdCwgX19nbnVjX3ZhX2xpc3QgX19hcCkKewogIHJldHVybiBfX3ZmcHJp
bnRmX2NoayAoX19zdHJlYW0sIDIgLSAxLCBfX2ZtdCwgX19hcCk7Cn0KIyAyMjAgIi91c3IvaW5j
bHVkZS9iaXRzL3N0ZGlvMi5oIiAzIDQKZXh0ZXJuIGNoYXIgKl9fZ2V0c19jaGsgKGNoYXIgKl9f
c3RyLCBzaXplX3QpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CmV4
dGVybiBjaGFyICpfX2dldHNfd2FybiAoY2hhciAqX19zdHIpIF9fYXNtX18gKCIiICJnZXRzIikK
ICAgICBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIF9fYXR0cmlidXRl
X18oKF9fd2FybmluZ19fICgicGxlYXNlIHVzZSBmZ2V0cyBvciBnZXRsaW5lIGluc3RlYWQsIGdl
dHMgY2FuJ3QgIiAic3BlY2lmeSBidWZmZXIgc2l6ZSIpKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDsKCmV4dGVybiBfX2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fICgoX19hcnRpZmljaWFsX18pKSBfX2F0dHJpYnV0ZV9fICgo
X193YXJuX3VudXNlZF9yZXN1bHRfXykpIGNoYXIgKgpnZXRzIChjaGFyICpfX3N0cikKewogIGlm
IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fc3RyLCAyID4gMSkgIT0gKHNpemVfdCkgLTEpCiAg
ICByZXR1cm4gX19nZXRzX2NoayAoX19zdHIsIF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoX19zdHIs
IDIgPiAxKSk7CiAgcmV0dXJuIF9fZ2V0c193YXJuIChfX3N0cik7Cn0KCmV4dGVybiBjaGFyICpf
X2ZnZXRzX2NoayAoY2hhciAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX3NpemUsIGludCBfX24s
CiAgICAgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91
bnVzZWRfcmVzdWx0X18pKTsKZXh0ZXJuIGNoYXIgKl9fZmdldHNfYWxpYXMgKGNoYXIgKl9fcmVz
dHJpY3QgX19zLCBpbnQgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSBfX2FzbV9fICgi
IiAiZmdldHMiKQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYXR0
cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CmV4dGVybiBjaGFyICpfX2ZnZXRz
X2Noa193YXJuIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fc2l6ZSwgaW50IF9fbiwg
RklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgX19hc21fXyAoIiIgIl9fZmdldHNfY2hrIikKCgog
ICAgIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgX19hdHRyaWJ1dGVf
XygoX193YXJuaW5nX18gKCJmZ2V0cyBjYWxsZWQgd2l0aCBiaWdnZXIgc2l6ZSB0aGFuIGxlbmd0
aCAiICJvZiBkZXN0aW5hdGlvbiBidWZmZXIiKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDsKCmV4dGVybiBfX2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19hcnRpZmljaWFsX18pKSBfX2F0dHJpYnV0ZV9fICgoX193
YXJuX3VudXNlZF9yZXN1bHRfXykpIGNoYXIgKgpmZ2V0cyAoY2hhciAqX19yZXN0cmljdCBfX3Ms
IGludCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pCnsKICBpZiAoX19idWlsdGluX29i
amVjdF9zaXplIChfX3MsIDIgPiAxKSAhPSAoc2l6ZV90KSAtMSkKICAgIHsKICAgICAgaWYgKCFf
X2J1aWx0aW5fY29uc3RhbnRfcCAoX19uKSB8fCBfX24gPD0gMCkKIHJldHVybiBfX2ZnZXRzX2No
ayAoX19zLCBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fcywgMiA+IDEpLCBfX24sIF9fc3RyZWFt
KTsKCiAgICAgIGlmICgoc2l6ZV90KSBfX24gPiBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fcywg
MiA+IDEpKQogcmV0dXJuIF9fZmdldHNfY2hrX3dhcm4gKF9fcywgX19idWlsdGluX29iamVjdF9z
aXplIChfX3MsIDIgPiAxKSwgX19uLCBfX3N0cmVhbSk7CiAgICB9CiAgcmV0dXJuIF9fZmdldHNf
YWxpYXMgKF9fcywgX19uLCBfX3N0cmVhbSk7Cn0KCmV4dGVybiBzaXplX3QgX19mcmVhZF9jaGsg
KHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3B0cmxlbiwKICAgICAgc2l6ZV90IF9f
c2l6ZSwgc2l6ZV90IF9fbiwKICAgICAgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgX19hdHRy
aWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKZXh0ZXJuIHNpemVfdCBfX2ZyZWFk
X2FsaWFzICh2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLCBzaXplX3QgX19u
LCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSBfX2FzbV9fICgiIiAiZnJlYWQiKQoKCiAgICAg
ICAgICAgIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CmV4dGVybiBz
aXplX3QgX19mcmVhZF9jaGtfd2FybiAodm9pZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9f
cHRybGVuLCBzaXplX3QgX19zaXplLCBzaXplX3QgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3Ry
ZWFtKSBfX2FzbV9fICgiIiAiX19mcmVhZF9jaGsiKQoKCgoKICAgICBfX2F0dHJpYnV0ZV9fICgo
X193YXJuX3VudXNlZF9yZXN1bHRfXykpIF9fYXR0cmlidXRlX18oKF9fd2FybmluZ19fICgiZnJl
YWQgY2FsbGVkIHdpdGggYmlnZ2VyIHNpemUgKiBubWVtYiB0aGFuIGxlbmd0aCAiICJvZiBkZXN0
aW5hdGlvbiBidWZmZXIiKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKCmV4
dGVybiBfX2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fICgoX19hcnRpZmljaWFsX18pKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9y
ZXN1bHRfXykpIHNpemVfdApmcmVhZCAodm9pZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9f
c2l6ZSwgc2l6ZV90IF9fbiwKICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pCnsKICBp
ZiAoX19idWlsdGluX29iamVjdF9zaXplIChfX3B0ciwgMCkgIT0gKHNpemVfdCkgLTEpCiAgICB7
CiAgICAgIGlmICghX19idWlsdGluX2NvbnN0YW50X3AgKF9fc2l6ZSkKICAgfHwgIV9fYnVpbHRp
bl9jb25zdGFudF9wIChfX24pCiAgIHx8IChfX3NpemUgfCBfX24pID49ICgoKHNpemVfdCkgMSkg
PDwgKDggKiBzaXplb2YgKHNpemVfdCkgLyAyKSkpCiByZXR1cm4gX19mcmVhZF9jaGsgKF9fcHRy
LCBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fcHRyLCAwKSwgX19zaXplLCBfX24sIF9fc3RyZWFt
KTsKCiAgICAgIGlmIChfX3NpemUgKiBfX24gPiBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fcHRy
LCAwKSkKIHJldHVybiBfX2ZyZWFkX2Noa193YXJuIChfX3B0ciwgX19idWlsdGluX29iamVjdF9z
aXplIChfX3B0ciwgMCksIF9fc2l6ZSwgX19uLCBfX3N0cmVhbSk7CiAgICB9CiAgcmV0dXJuIF9f
ZnJlYWRfYWxpYXMgKF9fcHRyLCBfX3NpemUsIF9fbiwgX19zdHJlYW0pOwp9CiMgMzE5ICIvdXNy
L2luY2x1ZGUvYml0cy9zdGRpbzIuaCIgMyA0CmV4dGVybiBzaXplX3QgX19mcmVhZF91bmxvY2tl
ZF9jaGsgKHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3B0cmxlbiwKICAgICAgICBz
aXplX3QgX19zaXplLCBzaXplX3QgX19uLAogICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJl
YW0pIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CmV4dGVybiBzaXpl
X3QgX19mcmVhZF91bmxvY2tlZF9hbGlhcyAodm9pZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90
IF9fc2l6ZSwgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgX19hc21fXyAo
IiIgImZyZWFkX3VubG9ja2VkIikKCgogICAgICAgICAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9f
ICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwpleHRlcm4gc2l6ZV90IF9fZnJlYWRfdW5sb2Nr
ZWRfY2hrX3dhcm4gKHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3B0cmxlbiwgc2l6
ZV90IF9fc2l6ZSwgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgX19hc21f
XyAoIiIgIl9fZnJlYWRfdW5sb2NrZWRfY2hrIikKCgoKCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9f
d2Fybl91bnVzZWRfcmVzdWx0X18pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5pbmdfXyAoImZyZWFk
X3VubG9ja2VkIGNhbGxlZCB3aXRoIGJpZ2dlciBzaXplICogbm1lbWIgdGhhbiAiICJsZW5ndGgg
b2YgZGVzdGluYXRpb24gYnVmZmVyIikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOwoKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18gKChfX2FydGlmaWNpYWxfXykpIF9fYXR0cmlidXRlX18gKChf
X3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc2l6ZV90CmZyZWFkX3VubG9ja2VkICh2b2lkICpfX3Jl
c3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLCBzaXplX3QgX19uLAogIEZJTEUgKl9fcmVzdHJp
Y3QgX19zdHJlYW0pCnsKICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChfX3B0ciwgMCkgIT0g
KHNpemVfdCkgLTEpCiAgICB7CiAgICAgIGlmICghX19idWlsdGluX2NvbnN0YW50X3AgKF9fc2l6
ZSkKICAgfHwgIV9fYnVpbHRpbl9jb25zdGFudF9wIChfX24pCiAgIHx8IChfX3NpemUgfCBfX24p
ID49ICgoKHNpemVfdCkgMSkgPDwgKDggKiBzaXplb2YgKHNpemVfdCkgLyAyKSkpCiByZXR1cm4g
X19mcmVhZF91bmxvY2tlZF9jaGsgKF9fcHRyLCBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fcHRy
LCAwKSwgX19zaXplLCBfX24sCiAgICAgICAgIF9fc3RyZWFtKTsKCiAgICAgIGlmIChfX3NpemUg
KiBfX24gPiBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fcHRyLCAwKSkKIHJldHVybiBfX2ZyZWFk
X3VubG9ja2VkX2Noa193YXJuIChfX3B0ciwgX19idWlsdGluX29iamVjdF9zaXplIChfX3B0ciwg
MCksIF9fc2l6ZSwgX19uLAogICAgICAgX19zdHJlYW0pOwogICAgfQoKCiAgaWYgKF9fYnVpbHRp
bl9jb25zdGFudF9wIChfX3NpemUpCiAgICAgICYmIF9fYnVpbHRpbl9jb25zdGFudF9wIChfX24p
CiAgICAgICYmIChfX3NpemUgfCBfX24pIDwgKCgoc2l6ZV90KSAxKSA8PCAoOCAqIHNpemVvZiAo
c2l6ZV90KSAvIDIpKQogICAgICAmJiBfX3NpemUgKiBfX24gPD0gOCkKICAgIHsKICAgICAgc2l6
ZV90IF9fY250ID0gX19zaXplICogX19uOwogICAgICBjaGFyICpfX2NwdHIgPSAoY2hhciAqKSBf
X3B0cjsKICAgICAgaWYgKF9fY250ID09IDApCiByZXR1cm4gMDsKCiAgICAgIGZvciAoOyBfX2Nu
dCA+IDA7IC0tX19jbnQpCiB7CiAgIGludCBfX2MgPSAoX19idWlsdGluX2V4cGVjdCAoKChfX3N0
cmVhbSktPl9JT19yZWFkX3B0ciA+PSAoX19zdHJlYW0pLT5fSU9fcmVhZF9lbmQpLCAwKSA/IF9f
dWZsb3cgKF9fc3RyZWFtKSA6ICoodW5zaWduZWQgY2hhciAqKSAoX19zdHJlYW0pLT5fSU9fcmVh
ZF9wdHIrKyk7CiAgIGlmIChfX2MgPT0gKC0xKSkKICAgICBicmVhazsKICAgKl9fY3B0cisrID0g
X19jOwogfQogICAgICByZXR1cm4gKF9fY3B0ciAtIChjaGFyICopIF9fcHRyKSAvIF9fc2l6ZTsK
ICAgIH0KCiAgcmV0dXJuIF9fZnJlYWRfdW5sb2NrZWRfYWxpYXMgKF9fcHRyLCBfX3NpemUsIF9f
biwgX19zdHJlYW0pOwp9CiMgOTEzICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQKCgoKCgoK
IyAyMSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIuYyIgMgojIDEg
Ii91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMSAzIDQKIyAyOCAiL3Vzci9pbmNsdWRlL3N0cmluZy5o
IiAzIDQKCgoKCgojIDEgIi91c3IvbGliL2djYy9hcm0tYWx0LWxpbnV4LWdudWVhYmkvNC41LjEv
aW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKIyAzNCAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAyIDMg
NAoKCgoKCgoKCgpleHRlcm4gdm9pZCAqbWVtY3B5ICh2b2lkICpfX3Jlc3RyaWN0IF9fZGVzdCwK
ICAgICAgIF9fY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90IF9fbikKICAgICBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDEsIDIpKSk7CgoKZXh0ZXJuIHZvaWQgKm1lbW1vdmUgKHZvaWQgKl9fZGVzdCwgX19jb25zdCB2
b2lkICpfX3NyYywgc2l6ZV90IF9fbikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18p
KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7CgoKCgoKCmV4dGVybiB2b2lk
ICptZW1jY3B5ICh2b2lkICpfX3Jlc3RyaWN0IF9fZGVzdCwgX19jb25zdCB2b2lkICpfX3Jlc3Ry
aWN0IF9fc3JjLAogICAgICAgIGludCBfX2MsIHNpemVfdCBfX24pCiAgICAgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwoK
CgoKCmV4dGVybiB2b2lkICptZW1zZXQgKHZvaWQgKl9fcywgaW50IF9fYywgc2l6ZV90IF9fbikg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f
ICgxKSkpOwoKCmV4dGVybiBpbnQgbWVtY21wIChfX2NvbnN0IHZvaWQgKl9fczEsIF9fY29uc3Qg
dm9pZCAqX19zMiwgc2l6ZV90IF9fbikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18p
KSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDEsIDIpKSk7CiMgOTQgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0CmV4dGVybiB2b2lkICpt
ZW1jaHIgKF9fY29uc3Qgdm9pZCAqX19zLCBpbnQgX19jLCBzaXplX3QgX19uKQogICAgICBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7CgoKIyAxMjUgIi91c3IvaW5jbHVkZS9zdHJp
bmcuaCIgMyA0CgoKZXh0ZXJuIGNoYXIgKnN0cmNweSAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3Qs
IF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYykKICAgICBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7CgpleHRlcm4g
Y2hhciAqc3RybmNweSAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsCiAgICAgICAgX19jb25zdCBj
aGFyICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19uKQogICAgIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKCgpleHRl
cm4gY2hhciAqc3RyY2F0IChjaGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwgX19jb25zdCBjaGFyICpf
X3Jlc3RyaWN0IF9fc3JjKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0
cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKCmV4dGVybiBjaGFyICpzdHJuY2F0IChj
aGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjLAog
ICAgICAgIHNpemVfdCBfX24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmli
dXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKCgpleHRlcm4gaW50IHN0cmNtcCAoX19jb25z
dCBjaGFyICpfX3MxLCBfX2NvbnN0IGNoYXIgKl9fczIpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxLCAyKSkpOwoKZXh0ZXJuIGludCBzdHJuY21wIChfX2NvbnN0IGNoYXIgKl9f
czEsIF9fY29uc3QgY2hhciAqX19zMiwgc2l6ZV90IF9fbikKICAgICBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgo
X19ub25udWxsX18gKDEsIDIpKSk7CgoKZXh0ZXJuIGludCBzdHJjb2xsIChfX2NvbnN0IGNoYXIg
Kl9fczEsIF9fY29uc3QgY2hhciAqX19zMikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs
X18gKDEsIDIpKSk7CgpleHRlcm4gc2l6ZV90IHN0cnhmcm0gKGNoYXIgKl9fcmVzdHJpY3QgX19k
ZXN0LAogICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMsIHNpemVfdCBfX24p
CiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgyKSkpOwoKCgoKCgojIDEgIi91c3IvaW5jbHVkZS94bG9jYWxlLmgiIDEgMyA0CiMg
MjggIi91c3IvaW5jbHVkZS94bG9jYWxlLmgiIDMgNAp0eXBlZGVmIHN0cnVjdCBfX2xvY2FsZV9z
dHJ1Y3QKewoKICBzdHJ1Y3QgbG9jYWxlX2RhdGEgKl9fbG9jYWxlc1sxM107CgoKICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBpbnQgKl9fY3R5cGVfYjsKICBjb25zdCBpbnQgKl9fY3R5cGVfdG9sb3dl
cjsKICBjb25zdCBpbnQgKl9fY3R5cGVfdG91cHBlcjsKCgogIGNvbnN0IGNoYXIgKl9fbmFtZXNb
MTNdOwp9ICpfX2xvY2FsZV90OwoKCnR5cGVkZWYgX19sb2NhbGVfdCBsb2NhbGVfdDsKIyAxNjIg
Ii91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMiAzIDQKCgpleHRlcm4gaW50IHN0cmNvbGxfbCAoX19j
b25zdCBjaGFyICpfX3MxLCBfX2NvbnN0IGNoYXIgKl9fczIsIF9fbG9jYWxlX3QgX19sKQogICAg
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykp
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMiwgMykpKTsKCmV4dGVybiBzaXplX3Qg
c3RyeGZybV9sIChjaGFyICpfX2Rlc3QsIF9fY29uc3QgY2hhciAqX19zcmMsIHNpemVfdCBfX24s
CiAgICBfX2xvY2FsZV90IF9fbCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyLCA0KSkpOwoKCgoKZXh0ZXJuIGNoYXIgKnN0cmR1cCAo
X19jb25zdCBjaGFyICpfX3MpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEp
KSk7CgoKCgoKCmV4dGVybiBjaGFyICpzdHJuZHVwIChfX2NvbnN0IGNoYXIgKl9fc3RyaW5nLCBz
aXplX3QgX19uKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRl
X18gKChfX21hbGxvY19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwojIDIw
OCAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKCiMgMjMzICIvdXNyL2luY2x1ZGUvc3RyaW5n
LmgiIDMgNApleHRlcm4gY2hhciAqc3RyY2hyIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYykK
ICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJl
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7CiMgMjYwICIvdXNyL2luY2x1
ZGUvc3RyaW5nLmgiIDMgNApleHRlcm4gY2hhciAqc3RycmNociAoX19jb25zdCBjaGFyICpfX3Ms
IGludCBfX2MpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwoKCiMgMjc5
ICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAoKCgpleHRlcm4gc2l6ZV90IHN0cmNzcG4gKF9f
Y29uc3QgY2hhciAqX19zLCBfX2NvbnN0IGNoYXIgKl9fcmVqZWN0KQogICAgIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRl
X18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKCgpleHRlcm4gc2l6ZV90IHN0cnNwbiAoX19jb25z
dCBjaGFyICpfX3MsIF9fY29uc3QgY2hhciAqX19hY2NlcHQpCiAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAo
KF9fbm9ubnVsbF9fICgxLCAyKSkpOwojIDMxMiAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQK
ZXh0ZXJuIGNoYXIgKnN0cnBicmsgKF9fY29uc3QgY2hhciAqX19zLCBfX2NvbnN0IGNoYXIgKl9f
YWNjZXB0KQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18g
KChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKIyAzNDAg
Ii91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0CmV4dGVybiBjaGFyICpzdHJzdHIgKF9fY29uc3Qg
Y2hhciAqX19oYXlzdGFjaywgX19jb25zdCBjaGFyICpfX25lZWRsZSkKICAgICBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0
ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7CgoKCgpleHRlcm4gY2hhciAqc3RydG9rIChjaGFy
ICpfX3Jlc3RyaWN0IF9fcywgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZGVsaW0pCiAgICAg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f
ICgyKSkpOwoKCgoKZXh0ZXJuIGNoYXIgKl9fc3RydG9rX3IgKGNoYXIgKl9fcmVzdHJpY3QgX19z
LAogICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZGVsaW0sCiAgICBjaGFyICoqX19yZXN0
cmljdCBfX3NhdmVfcHRyKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0
cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgMykpKTsKCmV4dGVybiBjaGFyICpzdHJ0b2tfciAo
Y2hhciAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2RlbGltLAog
ICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX3NhdmVfcHRyKQogICAgIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgMykpKTsKIyAz
OTUgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0CgoKZXh0ZXJuIHNpemVfdCBzdHJsZW4gKF9f
Y29uc3QgY2hhciAqX19zKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0
cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsK
CgoKCgpleHRlcm4gc2l6ZV90IHN0cm5sZW4gKF9fY29uc3QgY2hhciAqX19zdHJpbmcsIHNpemVf
dCBfX21heGxlbikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0
ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7CgoKCgoK
ZXh0ZXJuIGNoYXIgKnN0cmVycm9yIChpbnQgX19lcnJudW0pIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXykpOwoKIyA0MjUgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0CmV4dGVybiBpbnQg
c3RyZXJyb3JfciAoaW50IF9fZXJybnVtLCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuKSBf
X2FzbV9fICgiIiAiX194cGdfc3RyZXJyb3JfciIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XykpCgogICAgICAgICAgICAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDIpKSk7CiMgNDQzICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNApleHRlcm4gY2hhciAqc3Ry
ZXJyb3JfbCAoaW50IF9fZXJybnVtLCBfX2xvY2FsZV90IF9fbCkgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fKSk7CgoKCgoKZXh0ZXJuIHZvaWQgX19iemVybyAodm9pZCAqX19zLCBzaXplX3Qg
X19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25u
dWxsX18gKDEpKSk7CgoKCmV4dGVybiB2b2lkIGJjb3B5IChfX2NvbnN0IHZvaWQgKl9fc3JjLCB2
b2lkICpfX2Rlc3QsIHNpemVfdCBfX24pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwoKCmV4dGVybiB2b2lkIGJ6
ZXJvICh2b2lkICpfX3MsIHNpemVfdCBfX24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykp
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKCgpleHRlcm4gaW50IGJjbXAgKF9f
Y29uc3Qgdm9pZCAqX19zMSwgX19jb25zdCB2b2lkICpfX3MyLCBzaXplX3QgX19uKQogICAgIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9f
YXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKIyA0ODcgIi91c3IvaW5jbHVkZS9z
dHJpbmcuaCIgMyA0CmV4dGVybiBjaGFyICppbmRleCAoX19jb25zdCBjaGFyICpfX3MsIGludCBf
X2MpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
cHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwojIDUxNSAiL3Vzci9p
bmNsdWRlL3N0cmluZy5oIiAzIDQKZXh0ZXJuIGNoYXIgKnJpbmRleCAoX19jb25zdCBjaGFyICpf
X3MsIGludCBfX2MpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1
dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwoKCgoK
ZXh0ZXJuIGludCBmZnMgKGludCBfX2kpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9f
YXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKIyA1MzQgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIg
MyA0CmV4dGVybiBpbnQgc3RyY2FzZWNtcCAoX19jb25zdCBjaGFyICpfX3MxLCBfX2NvbnN0IGNo
YXIgKl9fczIpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwoKCmV4
dGVybiBpbnQgc3RybmNhc2VjbXAgKF9fY29uc3QgY2hhciAqX19zMSwgX19jb25zdCBjaGFyICpf
X3MyLCBzaXplX3QgX19uKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0
cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikp
KTsKIyA1NTcgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0CmV4dGVybiBjaGFyICpzdHJzZXAg
KGNoYXIgKipfX3Jlc3RyaWN0IF9fc3RyaW5ncCwKICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0
cmljdCBfX2RlbGltKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmli
dXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKIyA1NjggIi91c3IvaW5jbHVkZS9zdHJpbmcu
aCIgMyA0CmV4dGVybiBzaXplX3Qgc3RybGNhdCAoY2hhciAqX19kc3QsIF9fY29uc3QgY2hhciAq
X19zcmMsIHNpemVfdCBfX24pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwoKCgoKCgpleHRlcm4gc2l6ZV90IHN0
cmxjcHkgKGNoYXIgKl9fZHN0LCBfX2NvbnN0IGNoYXIgKl9fc3JjLCBzaXplX3QgX19uKQogICAg
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf
XyAoMSwgMikpKTsKCgoKCmV4dGVybiBjaGFyICpzdHJzaWduYWwgKGludCBfX3NpZykgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CgoKZXh0ZXJuIGNoYXIgKl9fc3RwY3B5IChjaGFyICpf
X3Jlc3RyaWN0IF9fZGVzdCwgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjKQogICAgIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSwgMikpKTsKZXh0ZXJuIGNoYXIgKnN0cGNweSAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsIF9f
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYykKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7CgoKCmV4dGVybiBj
aGFyICpfX3N0cG5jcHkgKGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LAogICBfX2NvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19zcmMsIHNpemVfdCBfX24pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwpleHRlcm4gY2hh
ciAqc3RwbmNweSAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsCiAgICAgICAgX19jb25zdCBjaGFy
ICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19uKQogICAgIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKIyA2NTAgIi91
c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc3RyaW5nLmgi
IDEgMyA0CiMgNjUxICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDIgMyA0CgoKIyAxICIvdXNyL2lu
Y2x1ZGUvYml0cy9zdHJpbmcyLmgiIDEgMyA0CiMgODAgIi91c3IvaW5jbHVkZS9iaXRzL3N0cmlu
ZzIuaCIgMyA0CnR5cGVkZWYgc3RydWN0IHsgdW5zaWduZWQgY2hhciBfX2FyclsyXTsgfSBfX2F0
dHJpYnV0ZV9fICgoX19wYWNrZWRfXykpIF9fU1RSSU5HMl9DT1BZX0FSUjI7CnR5cGVkZWYgc3Ry
dWN0IHsgdW5zaWduZWQgY2hhciBfX2FyclszXTsgfSBfX2F0dHJpYnV0ZV9fICgoX19wYWNrZWRf
XykpIF9fU1RSSU5HMl9DT1BZX0FSUjM7CnR5cGVkZWYgc3RydWN0IHsgdW5zaWduZWQgY2hhciBf
X2Fycls0XTsgfSBfX2F0dHJpYnV0ZV9fICgoX19wYWNrZWRfXykpIF9fU1RSSU5HMl9DT1BZX0FS
UjQ7CnR5cGVkZWYgc3RydWN0IHsgdW5zaWduZWQgY2hhciBfX2Fycls1XTsgfSBfX2F0dHJpYnV0
ZV9fICgoX19wYWNrZWRfXykpIF9fU1RSSU5HMl9DT1BZX0FSUjU7CnR5cGVkZWYgc3RydWN0IHsg
dW5zaWduZWQgY2hhciBfX2Fycls2XTsgfSBfX2F0dHJpYnV0ZV9fICgoX19wYWNrZWRfXykpIF9f
U1RSSU5HMl9DT1BZX0FSUjY7CnR5cGVkZWYgc3RydWN0IHsgdW5zaWduZWQgY2hhciBfX2Fycls3
XTsgfSBfX2F0dHJpYnV0ZV9fICgoX19wYWNrZWRfXykpIF9fU1RSSU5HMl9DT1BZX0FSUjc7CnR5
cGVkZWYgc3RydWN0IHsgdW5zaWduZWQgY2hhciBfX2Fycls4XTsgfSBfX2F0dHJpYnV0ZV9fICgo
X19wYWNrZWRfXykpIF9fU1RSSU5HMl9DT1BZX0FSUjg7CiMgMzk0ICIvdXNyL2luY2x1ZGUvYml0
cy9zdHJpbmcyLmgiIDMgNApleHRlcm4gdm9pZCAqX19yYXdtZW1jaHIgKGNvbnN0IHZvaWQgKl9f
cywgaW50IF9fYyk7CiMgOTY5ICIvdXNyL2luY2x1ZGUvYml0cy9zdHJpbmcyLmgiIDMgNApleHRl
cm4gX19pbmxpbmUgc2l6ZV90IF9fc3RyY3Nwbl9jMSAoX19jb25zdCBjaGFyICpfX3MsIGludCBf
X3JlamVjdCk7CmV4dGVybiBfX2lubGluZSBzaXplX3QKX19zdHJjc3BuX2MxIChfX2NvbnN0IGNo
YXIgKl9fcywgaW50IF9fcmVqZWN0KQp7CiAgcmVnaXN0ZXIgc2l6ZV90IF9fcmVzdWx0ID0gMDsK
ICB3aGlsZSAoX19zW19fcmVzdWx0XSAhPSAnXDAnICYmIF9fc1tfX3Jlc3VsdF0gIT0gX19yZWpl
Y3QpCiAgICArK19fcmVzdWx0OwogIHJldHVybiBfX3Jlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5l
IHNpemVfdCBfX3N0cmNzcG5fYzIgKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19yZWplY3QxLAog
ICAgICAgICBpbnQgX19yZWplY3QyKTsKZXh0ZXJuIF9faW5saW5lIHNpemVfdApfX3N0cmNzcG5f
YzIgKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19yZWplY3QxLCBpbnQgX19yZWplY3QyKQp7CiAg
cmVnaXN0ZXIgc2l6ZV90IF9fcmVzdWx0ID0gMDsKICB3aGlsZSAoX19zW19fcmVzdWx0XSAhPSAn
XDAnICYmIF9fc1tfX3Jlc3VsdF0gIT0gX19yZWplY3QxCiAgJiYgX19zW19fcmVzdWx0XSAhPSBf
X3JlamVjdDIpCiAgICArK19fcmVzdWx0OwogIHJldHVybiBfX3Jlc3VsdDsKfQoKZXh0ZXJuIF9f
aW5saW5lIHNpemVfdCBfX3N0cmNzcG5fYzMgKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19yZWpl
Y3QxLAogICAgICAgICBpbnQgX19yZWplY3QyLCBpbnQgX19yZWplY3QzKTsKZXh0ZXJuIF9faW5s
aW5lIHNpemVfdApfX3N0cmNzcG5fYzMgKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19yZWplY3Qx
LCBpbnQgX19yZWplY3QyLAogICAgICAgaW50IF9fcmVqZWN0MykKewogIHJlZ2lzdGVyIHNpemVf
dCBfX3Jlc3VsdCA9IDA7CiAgd2hpbGUgKF9fc1tfX3Jlc3VsdF0gIT0gJ1wwJyAmJiBfX3NbX19y
ZXN1bHRdICE9IF9fcmVqZWN0MQogICYmIF9fc1tfX3Jlc3VsdF0gIT0gX19yZWplY3QyICYmIF9f
c1tfX3Jlc3VsdF0gIT0gX19yZWplY3QzKQogICAgKytfX3Jlc3VsdDsKICByZXR1cm4gX19yZXN1
bHQ7Cn0KIyAxMDQ1ICIvdXNyL2luY2x1ZGUvYml0cy9zdHJpbmcyLmgiIDMgNApleHRlcm4gX19p
bmxpbmUgc2l6ZV90IF9fc3Ryc3BuX2MxIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYWNjZXB0
KTsKZXh0ZXJuIF9faW5saW5lIHNpemVfdApfX3N0cnNwbl9jMSAoX19jb25zdCBjaGFyICpfX3Ms
IGludCBfX2FjY2VwdCkKewogIHJlZ2lzdGVyIHNpemVfdCBfX3Jlc3VsdCA9IDA7CgogIHdoaWxl
IChfX3NbX19yZXN1bHRdID09IF9fYWNjZXB0KQogICAgKytfX3Jlc3VsdDsKICByZXR1cm4gX19y
ZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBzaXplX3QgX19zdHJzcG5fYzIgKF9fY29uc3QgY2hh
ciAqX19zLCBpbnQgX19hY2NlcHQxLAogICAgICAgIGludCBfX2FjY2VwdDIpOwpleHRlcm4gX19p
bmxpbmUgc2l6ZV90Cl9fc3Ryc3BuX2MyIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYWNjZXB0
MSwgaW50IF9fYWNjZXB0MikKewogIHJlZ2lzdGVyIHNpemVfdCBfX3Jlc3VsdCA9IDA7CgogIHdo
aWxlIChfX3NbX19yZXN1bHRdID09IF9fYWNjZXB0MSB8fCBfX3NbX19yZXN1bHRdID09IF9fYWNj
ZXB0MikKICAgICsrX19yZXN1bHQ7CiAgcmV0dXJuIF9fcmVzdWx0Owp9CgpleHRlcm4gX19pbmxp
bmUgc2l6ZV90IF9fc3Ryc3BuX2MzIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYWNjZXB0MSwK
ICAgICAgICBpbnQgX19hY2NlcHQyLCBpbnQgX19hY2NlcHQzKTsKZXh0ZXJuIF9faW5saW5lIHNp
emVfdApfX3N0cnNwbl9jMyAoX19jb25zdCBjaGFyICpfX3MsIGludCBfX2FjY2VwdDEsIGludCBf
X2FjY2VwdDIsIGludCBfX2FjY2VwdDMpCnsKICByZWdpc3RlciBzaXplX3QgX19yZXN1bHQgPSAw
OwoKICB3aGlsZSAoX19zW19fcmVzdWx0XSA9PSBfX2FjY2VwdDEgfHwgX19zW19fcmVzdWx0XSA9
PSBfX2FjY2VwdDIKICB8fCBfX3NbX19yZXN1bHRdID09IF9fYWNjZXB0MykKICAgICsrX19yZXN1
bHQ7CiAgcmV0dXJuIF9fcmVzdWx0Owp9CiMgMTEyMSAiL3Vzci9pbmNsdWRlL2JpdHMvc3RyaW5n
Mi5oIiAzIDQKZXh0ZXJuIF9faW5saW5lIGNoYXIgKl9fc3RycGJya19jMiAoX19jb25zdCBjaGFy
ICpfX3MsIGludCBfX2FjY2VwdDEsCiAgICAgICAgIGludCBfX2FjY2VwdDIpOwpleHRlcm4gX19p
bmxpbmUgY2hhciAqCl9fc3RycGJya19jMiAoX19jb25zdCBjaGFyICpfX3MsIGludCBfX2FjY2Vw
dDEsIGludCBfX2FjY2VwdDIpCnsKCiAgd2hpbGUgKCpfX3MgIT0gJ1wwJyAmJiAqX19zICE9IF9f
YWNjZXB0MSAmJiAqX19zICE9IF9fYWNjZXB0MikKICAgICsrX19zOwogIHJldHVybiAqX19zID09
ICdcMCcgPyAoKHZvaWQgKikwKSA6IChjaGFyICopIChzaXplX3QpIF9fczsKfQoKZXh0ZXJuIF9f
aW5saW5lIGNoYXIgKl9fc3RycGJya19jMyAoX19jb25zdCBjaGFyICpfX3MsIGludCBfX2FjY2Vw
dDEsCiAgICAgICAgIGludCBfX2FjY2VwdDIsIGludCBfX2FjY2VwdDMpOwpleHRlcm4gX19pbmxp
bmUgY2hhciAqCl9fc3RycGJya19jMyAoX19jb25zdCBjaGFyICpfX3MsIGludCBfX2FjY2VwdDEs
IGludCBfX2FjY2VwdDIsCiAgICAgICBpbnQgX19hY2NlcHQzKQp7CgogIHdoaWxlICgqX19zICE9
ICdcMCcgJiYgKl9fcyAhPSBfX2FjY2VwdDEgJiYgKl9fcyAhPSBfX2FjY2VwdDIKICAmJiAqX19z
ICE9IF9fYWNjZXB0MykKICAgICsrX19zOwogIHJldHVybiAqX19zID09ICdcMCcgPyAoKHZvaWQg
KikwKSA6IChjaGFyICopIChzaXplX3QpIF9fczsKfQojIDExNzIgIi91c3IvaW5jbHVkZS9iaXRz
L3N0cmluZzIuaCIgMyA0CmV4dGVybiBfX2lubGluZSBjaGFyICpfX3N0cnRva19yXzFjIChjaGFy
ICpfX3MsIGNoYXIgX19zZXAsIGNoYXIgKipfX25leHRwKTsKZXh0ZXJuIF9faW5saW5lIGNoYXIg
KgpfX3N0cnRva19yXzFjIChjaGFyICpfX3MsIGNoYXIgX19zZXAsIGNoYXIgKipfX25leHRwKQp7
CiAgY2hhciAqX19yZXN1bHQ7CiAgaWYgKF9fcyA9PSAoKHZvaWQgKikwKSkKICAgIF9fcyA9ICpf
X25leHRwOwogIHdoaWxlICgqX19zID09IF9fc2VwKQogICAgKytfX3M7CiAgX19yZXN1bHQgPSAo
KHZvaWQgKikwKTsKICBpZiAoKl9fcyAhPSAnXDAnKQogICAgewogICAgICBfX3Jlc3VsdCA9IF9f
cysrOwogICAgICB3aGlsZSAoKl9fcyAhPSAnXDAnKQogaWYgKCpfX3MrKyA9PSBfX3NlcCkKICAg
ewogICAgIF9fc1stMV0gPSAnXDAnOwogICAgIGJyZWFrOwogICB9CiAgICB9CiAgKl9fbmV4dHAg
PSBfX3M7CiAgcmV0dXJuIF9fcmVzdWx0Owp9CiMgMTIwNCAiL3Vzci9pbmNsdWRlL2JpdHMvc3Ry
aW5nMi5oIiAzIDQKZXh0ZXJuIGNoYXIgKl9fc3Ryc2VwX2cgKGNoYXIgKipfX3N0cmluZ3AsIF9f
Y29uc3QgY2hhciAqX19kZWxpbSk7CiMgMTIyMiAiL3Vzci9pbmNsdWRlL2JpdHMvc3RyaW5nMi5o
IiAzIDQKZXh0ZXJuIF9faW5saW5lIGNoYXIgKl9fc3Ryc2VwXzFjIChjaGFyICoqX19zLCBjaGFy
IF9fcmVqZWN0KTsKZXh0ZXJuIF9faW5saW5lIGNoYXIgKgpfX3N0cnNlcF8xYyAoY2hhciAqKl9f
cywgY2hhciBfX3JlamVjdCkKewogIHJlZ2lzdGVyIGNoYXIgKl9fcmV0dmFsID0gKl9fczsKICBp
ZiAoX19yZXR2YWwgIT0gKCh2b2lkICopMCkgJiYgKCpfX3MgPSAoX19leHRlbnNpb25fXyAoX19i
dWlsdGluX2NvbnN0YW50X3AgKF9fcmVqZWN0KSAmJiAhX19idWlsdGluX2NvbnN0YW50X3AgKF9f
cmV0dmFsKSAmJiAoX19yZWplY3QpID09ICdcMCcgPyAoY2hhciAqKSBfX3Jhd21lbWNociAoX19y
ZXR2YWwsIF9fcmVqZWN0KSA6IF9fYnVpbHRpbl9zdHJjaHIgKF9fcmV0dmFsLCBfX3JlamVjdCkp
KSkgIT0gKCh2b2lkICopMCkpCiAgICAqKCpfX3MpKysgPSAnXDAnOwogIHJldHVybiBfX3JldHZh
bDsKfQoKZXh0ZXJuIF9faW5saW5lIGNoYXIgKl9fc3Ryc2VwXzJjIChjaGFyICoqX19zLCBjaGFy
IF9fcmVqZWN0MSwgY2hhciBfX3JlamVjdDIpOwpleHRlcm4gX19pbmxpbmUgY2hhciAqCl9fc3Ry
c2VwXzJjIChjaGFyICoqX19zLCBjaGFyIF9fcmVqZWN0MSwgY2hhciBfX3JlamVjdDIpCnsKICBy
ZWdpc3RlciBjaGFyICpfX3JldHZhbCA9ICpfX3M7CiAgaWYgKF9fcmV0dmFsICE9ICgodm9pZCAq
KTApKQogICAgewogICAgICByZWdpc3RlciBjaGFyICpfX2NwID0gX19yZXR2YWw7CiAgICAgIHdo
aWxlICgxKQogewogICBpZiAoKl9fY3AgPT0gJ1wwJykKICAgICB7CiAgICAgICBfX2NwID0gKCh2
b2lkICopMCk7CiAgIGJyZWFrOwogICAgIH0KICAgaWYgKCpfX2NwID09IF9fcmVqZWN0MSB8fCAq
X19jcCA9PSBfX3JlamVjdDIpCiAgICAgewogICAgICAgKl9fY3ArKyA9ICdcMCc7CiAgICAgICBi
cmVhazsKICAgICB9CiAgICsrX19jcDsKIH0KICAgICAgKl9fcyA9IF9fY3A7CiAgICB9CiAgcmV0
dXJuIF9fcmV0dmFsOwp9CgpleHRlcm4gX19pbmxpbmUgY2hhciAqX19zdHJzZXBfM2MgKGNoYXIg
KipfX3MsIGNoYXIgX19yZWplY3QxLCBjaGFyIF9fcmVqZWN0MiwKICAgICAgIGNoYXIgX19yZWpl
Y3QzKTsKZXh0ZXJuIF9faW5saW5lIGNoYXIgKgpfX3N0cnNlcF8zYyAoY2hhciAqKl9fcywgY2hh
ciBfX3JlamVjdDEsIGNoYXIgX19yZWplY3QyLCBjaGFyIF9fcmVqZWN0MykKewogIHJlZ2lzdGVy
IGNoYXIgKl9fcmV0dmFsID0gKl9fczsKICBpZiAoX19yZXR2YWwgIT0gKCh2b2lkICopMCkpCiAg
ICB7CiAgICAgIHJlZ2lzdGVyIGNoYXIgKl9fY3AgPSBfX3JldHZhbDsKICAgICAgd2hpbGUgKDEp
CiB7CiAgIGlmICgqX19jcCA9PSAnXDAnKQogICAgIHsKICAgICAgIF9fY3AgPSAoKHZvaWQgKikw
KTsKICAgYnJlYWs7CiAgICAgfQogICBpZiAoKl9fY3AgPT0gX19yZWplY3QxIHx8ICpfX2NwID09
IF9fcmVqZWN0MiB8fCAqX19jcCA9PSBfX3JlamVjdDMpCiAgICAgewogICAgICAgKl9fY3ArKyA9
ICdcMCc7CiAgICAgICBicmVhazsKICAgICB9CiAgICsrX19jcDsKIH0KICAgICAgKl9fcyA9IF9f
Y3A7CiAgICB9CiAgcmV0dXJuIF9fcmV0dmFsOwp9CiMgMTI5OCAiL3Vzci9pbmNsdWRlL2JpdHMv
c3RyaW5nMi5oIiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDEgMyA0CiMgMzMgIi91
c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0CiMgMSAiL3Vzci9saWIvZ2NjL2FybS1hbHQtbGludXgt
Z251ZWFiaS80LjUuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMgNAojIDM0ICIvdXNyL2luY2x1ZGUv
c3RkbGliLmgiIDIgMyA0CgoKIyA0NjkgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0CgoKZXh0
ZXJuIHZvaWQgKm1hbGxvYyAoc2l6ZV90IF9fc2l6ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKSBfX2F0dHJpYnV0ZV9fICgoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpOwoKZXh0ZXJuIHZvaWQgKmNhbGxvYyAoc2l6ZV90IF9fbm1lbWIs
IHNpemVfdCBfX3NpemUpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fbWFsbG9jX18pKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1
bHRfXykpOwoKIyA5NjQgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0CgojIDEyOTkgIi91c3Iv
aW5jbHVkZS9iaXRzL3N0cmluZzIuaCIgMiAzIDQKCgoKCmV4dGVybiBjaGFyICpfX3N0cmR1cCAo
X19jb25zdCBjaGFyICpfX3N0cmluZykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKTsKIyAxMzIyICIvdXNyL2luY2x1ZGUvYml0cy9zdHJp
bmcyLmgiIDMgNApleHRlcm4gY2hhciAqX19zdHJuZHVwIChfX2NvbnN0IGNoYXIgKl9fc3RyaW5n
LCBzaXplX3QgX19uKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmli
dXRlX18gKChfX21hbGxvY19fKSk7CiMgNjU0ICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDIgMyA0
CgoKCgojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3N0cmluZzMuaCIgMSAzIDQKIyAyMyAiL3Vzci9p
bmNsdWRlL2JpdHMvc3RyaW5nMy5oIiAzIDQKZXh0ZXJuIHZvaWQgX193YXJuX21lbXNldF96ZXJv
X2xlbiAodm9pZCkgX19hdHRyaWJ1dGVfXygoX193YXJuaW5nX18gKCJtZW1zZXQgdXNlZCB3aXRo
IGNvbnN0YW50IHplcm8gbGVuZ3RoIHBhcmFtZXRlcjsgdGhpcyBjb3VsZCBiZSBkdWUgdG8gdHJh
bnNwb3NlZCBwYXJhbWV0ZXJzIikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA7CiMgNDggIi91c3IvaW5jbHVkZS9iaXRzL3N0cmluZzMuaCIgMyA0CmV4dGVybiBf
X2lubGluZSBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
ICgoX19hcnRpZmljaWFsX18pKSB2b2lkICoKX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkg
bWVtY3B5ICh2b2lkICpfX3Jlc3RyaWN0IF9fZGVzdCwgX19jb25zdCB2b2lkICpfX3Jlc3RyaWN0
IF9fc3JjLCBzaXplX3QgX19sZW4pCgp7CiAgcmV0dXJuIF9fYnVpbHRpbl9fX21lbWNweV9jaGsg
KF9fZGVzdCwgX19zcmMsIF9fbGVuLCBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fZGVzdCwgMCkp
Owp9CgpleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXyAoKF9fYXJ0aWZpY2lhbF9fKSkgdm9pZCAqCl9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXykpIG1lbW1vdmUgKHZvaWQgKl9fZGVzdCwgX19jb25zdCB2b2lkICpfX3NyYywg
c2l6ZV90IF9fbGVuKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9fX21lbW1vdmVfY2hrIChfX2Rlc3Qs
IF9fc3JjLCBfX2xlbiwgX19idWlsdGluX29iamVjdF9zaXplIChfX2Rlc3QsIDApKTsKfQojIDc2
ICIvdXNyL2luY2x1ZGUvYml0cy9zdHJpbmczLmgiIDMgNApleHRlcm4gX19pbmxpbmUgX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fYXJ0aWZpY2lh
bF9fKSkgdm9pZCAqCl9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIG1lbXNldCAodm9pZCAq
X19kZXN0LCBpbnQgX19jaCwgc2l6ZV90IF9fbGVuKQp7CiAgaWYgKF9fYnVpbHRpbl9jb25zdGFu
dF9wIChfX2xlbikgJiYgX19sZW4gPT0gMAogICAgICAmJiAoIV9fYnVpbHRpbl9jb25zdGFudF9w
IChfX2NoKSB8fCBfX2NoICE9IDApKQogICAgewogICAgICBfX3dhcm5fbWVtc2V0X3plcm9fbGVu
ICgpOwogICAgICByZXR1cm4gX19kZXN0OwogICAgfQogIHJldHVybiBfX2J1aWx0aW5fX19tZW1z
ZXRfY2hrIChfX2Rlc3QsIF9fY2gsIF9fbGVuLCBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fZGVz
dCwgMCkpOwp9CgoKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18gKChfX2FydGlmaWNpYWxfXykpIHZvaWQKX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fKSkgYmNvcHkgKF9fY29uc3Qgdm9pZCAqX19zcmMsIHZvaWQgKl9fZGVz
dCwgc2l6ZV90IF9fbGVuKQp7CiAgKHZvaWQpIF9fYnVpbHRpbl9fX21lbW1vdmVfY2hrIChfX2Rl
c3QsIF9fc3JjLCBfX2xlbiwgX19idWlsdGluX29iamVjdF9zaXplIChfX2Rlc3QsIDApKTsKfQoK
ZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18gKChfX2FydGlmaWNpYWxfXykpIHZvaWQKX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fKSkgYnplcm8gKHZvaWQgKl9fZGVzdCwgc2l6ZV90IF9fbGVuKQp7CiAgKHZvaWQpIF9fYnVp
bHRpbl9fX21lbXNldF9jaGsgKF9fZGVzdCwgJ1wwJywgX19sZW4sIF9fYnVpbHRpbl9vYmplY3Rf
c2l6ZSAoX19kZXN0LCAwKSk7Cn0KCgpleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fYXJ0aWZpY2lhbF9fKSkgY2hhciAq
Cl9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIHN0cmNweSAoY2hhciAqX19yZXN0cmljdCBf
X2Rlc3QsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYykKewogIHJldHVybiBfX2J1aWx0
aW5fX19zdHJjcHlfY2hrIChfX2Rlc3QsIF9fc3JjLCBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9f
ZGVzdCwgMiA+IDEpKTsKfQojIDExNyAiL3Vzci9pbmNsdWRlL2JpdHMvc3RyaW5nMy5oIiAzIDQK
ZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18gKChfX2FydGlmaWNpYWxfXykpIGNoYXIgKgpfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18pKSBzdHJuY3B5IChjaGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwgX19jb25zdCBjaGFyICpf
X3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19sZW4pCgp7CiAgcmV0dXJuIF9fYnVpbHRpbl9fX3N0
cm5jcHlfY2hrIChfX2Rlc3QsIF9fc3JjLCBfX2xlbiwgX19idWlsdGluX29iamVjdF9zaXplIChf
X2Rlc3QsIDIgPiAxKSk7Cn0KCgpleHRlcm4gY2hhciAqX19zdHBuY3B5X2NoayAoY2hhciAqX19k
ZXN0LCBfX2NvbnN0IGNoYXIgKl9fc3JjLCBzaXplX3QgX19uLAogICAgICAgc2l6ZV90IF9fZGVz
dGxlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CmV4dGVybiBjaGFyICpfX3N0cG5j
cHlfYWxpYXMgKGNoYXIgKl9fZGVzdCwgX19jb25zdCBjaGFyICpfX3NyYywgc2l6ZV90IF9fbikg
X19hc21fXyAoIiIgInN0cG5jcHkiKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKQoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fYXR0cmlidXRlX18gKChfX2FydGlmaWNpYWxf
XykpIGNoYXIgKgpfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBzdHBuY3B5IChjaGFyICpf
X2Rlc3QsIF9fY29uc3QgY2hhciAqX19zcmMsIHNpemVfdCBfX24pCnsKICBpZiAoX19idWlsdGlu
X29iamVjdF9zaXplIChfX2Rlc3QsIDIgPiAxKSAhPSAoc2l6ZV90KSAtMQogICAgICAmJiAoIV9f
YnVpbHRpbl9jb25zdGFudF9wIChfX24pIHx8IF9fbiA8PSBfX2J1aWx0aW5fb2JqZWN0X3NpemUg
KF9fZGVzdCwgMiA+IDEpKSkKICAgIHJldHVybiBfX3N0cG5jcHlfY2hrIChfX2Rlc3QsIF9fc3Jj
LCBfX24sIF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoX19kZXN0LCAyID4gMSkpOwogIHJldHVybiBf
X3N0cG5jcHlfYWxpYXMgKF9fZGVzdCwgX19zcmMsIF9fbik7Cn0KCgpleHRlcm4gX19pbmxpbmUg
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fYXJ0
aWZpY2lhbF9fKSkgY2hhciAqCl9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIHN0cmNhdCAo
Y2hhciAqX19yZXN0cmljdCBfX2Rlc3QsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYykK
ewogIHJldHVybiBfX2J1aWx0aW5fX19zdHJjYXRfY2hrIChfX2Rlc3QsIF9fc3JjLCBfX2J1aWx0
aW5fb2JqZWN0X3NpemUgKF9fZGVzdCwgMiA+IDEpKTsKfQoKCmV4dGVybiBfX2lubGluZSBfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fICgoX19hcnRpZmlj
aWFsX18pKSBjaGFyICoKX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgc3RybmNhdCAoY2hh
ciAqX19yZXN0cmljdCBfX2Rlc3QsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYywgc2l6
ZV90IF9fbGVuKQoKewogIHJldHVybiBfX2J1aWx0aW5fX19zdHJuY2F0X2NoayAoX19kZXN0LCBf
X3NyYywgX19sZW4sIF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoX19kZXN0LCAyID4gMSkpOwp9CiMg
NjU5ICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDIgMyA0CgoKCgojIDIyICIvaG9tZS9waGlsL2hn
L3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5jIiAyCiMgMSAiL3Vzci9pbmNsdWRlL2Vycm5v
LmgiIDEgMyA0CiMgMzIgIi91c3IvaW5jbHVkZS9lcnJuby5oIiAzIDQKCgoKCiMgMSAiL3Vzci9p
bmNsdWRlL2JpdHMvZXJybm8uaCIgMSAzIDQKIyAyNSAiL3Vzci9pbmNsdWRlL2JpdHMvZXJybm8u
aCIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL2xpbnV4L2Vycm5vLmgiIDEgMyA0CgoKCiMgMSAiL3Vz
ci9pbmNsdWRlL2FzbS9lcnJuby5oIiAxIDMgNAoKCgojIDEgIi91c3IvaW5jbHVkZS9hc20tZ2Vu
ZXJpYy9lcnJuby5oIiAxIDMgNAoKCgojIDEgIi91c3IvaW5jbHVkZS9hc20tZ2VuZXJpYy9lcnJu
by1iYXNlLmgiIDEgMyA0CiMgNSAiL3Vzci9pbmNsdWRlL2FzbS1nZW5lcmljL2Vycm5vLmgiIDIg
MyA0CiMgNSAiL3Vzci9pbmNsdWRlL2FzbS9lcnJuby5oIiAyIDMgNAojIDUgIi91c3IvaW5jbHVk
ZS9saW51eC9lcnJuby5oIiAyIDMgNAojIDI2ICIvdXNyL2luY2x1ZGUvYml0cy9lcnJuby5oIiAy
IDMgNAojIDQzICIvdXNyL2luY2x1ZGUvYml0cy9lcnJuby5oIiAzIDQKZXh0ZXJuIGludCAqX19l
cnJub19sb2NhdGlvbiAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fY29uc3RfXykpOwojIDM3ICIvdXNyL2luY2x1ZGUvZXJybm8uaCIgMiAzIDQK
IyA1OSAiL3Vzci9pbmNsdWRlL2Vycm5vLmgiIDMgNAoKIyAyMyAiL2hvbWUvcGhpbC9oZy9zaXAv
c2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIuYyIgMgojIDEgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIg
MSAzIDQKIyAzMyAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKIyAxICIvdXNyL2xpYi9nY2Mv
YXJtLWFsdC1saW51eC1nbnVlYWJpLzQuNS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0CiMgMzIz
ICIvdXNyL2xpYi9nY2MvYXJtLWFsdC1saW51eC1nbnVlYWJpLzQuNS4xL2luY2x1ZGUvc3RkZGVm
LmgiIDMgNAp0eXBlZGVmIHVuc2lnbmVkIGludCB3Y2hhcl90OwojIDM0ICIvdXNyL2luY2x1ZGUv
c3RkbGliLmgiIDIgMyA0CgoKIyA5NiAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKCgp0eXBl
ZGVmIHN0cnVjdAogIHsKICAgIGludCBxdW90OwogICAgaW50IHJlbTsKICB9IGRpdl90OwoKCgp0
eXBlZGVmIHN0cnVjdAogIHsKICAgIGxvbmcgaW50IHF1b3Q7CiAgICBsb25nIGludCByZW07CiAg
fSBsZGl2X3Q7CgoKCgoKCgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgc3RydWN0CiAgewogICAgbG9u
ZyBsb25nIGludCBxdW90OwogICAgbG9uZyBsb25nIGludCByZW07CiAgfSBsbGRpdl90OwoKCiMg
MTQwICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNApleHRlcm4gc2l6ZV90IF9fY3R5cGVfZ2V0
X21iX2N1cl9tYXggKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmli
dXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CgoKCgpleHRlcm4gZG91YmxlIGF0b2Yg
KF9fY29uc3QgY2hhciAqX19ucHRyKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykp
IF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSkpKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKZXh0ZXJuIGlu
dCBhdG9pIChfX2NvbnN0IGNoYXIgKl9fbnB0cikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25u
dWxsX18gKDEpKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCmV4
dGVybiBsb25nIGludCBhdG9sIChfX2NvbnN0IGNoYXIgKl9fbnB0cikKICAgICBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0
ZV9fICgoX19ub25udWxsX18gKDEpKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVz
dWx0X18pKTsKCgoKCgpfX2V4dGVuc2lvbl9fIGV4dGVybiBsb25nIGxvbmcgaW50IGF0b2xsIChf
X2NvbnN0IGNoYXIgKl9fbnB0cikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBf
X2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEp
KSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCgoKCgpleHRlcm4g
ZG91YmxlIHN0cnRvZCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKICAgICAgICBj
aGFyICoqX19yZXN0cmljdCBfX2VuZHB0cikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgX19hdHRyaWJ1dGVfXyAoKF9f
d2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCgoKCgpleHRlcm4gZmxvYXQgc3RydG9mIChfX2NvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRw
dHIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51
bGxfXyAoMSkpKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKZXh0
ZXJuIGxvbmcgZG91YmxlIHN0cnRvbGQgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIs
CiAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0cikKICAgICBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgX19hdHRyaWJ1
dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCgoKCgpleHRlcm4gbG9uZyBpbnQgc3Ry
dG9sIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICBjaGFyICoqX19yZXN0cmlj
dCBfX2VuZHB0ciwgaW50IF9fYmFzZSkKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18p
KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fy
bl91bnVzZWRfcmVzdWx0X18pKTsKCmV4dGVybiB1bnNpZ25lZCBsb25nIGludCBzdHJ0b3VsIChf
X2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICBjaGFyICoqX19yZXN0cmljdCBf
X2VuZHB0ciwgaW50IF9fYmFzZSkKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBf
X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91
bnVzZWRfcmVzdWx0X18pKTsKCgoKCl9fZXh0ZW5zaW9uX18KZXh0ZXJuIGxvbmcgbG9uZyBpbnQg
c3RydG9xIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICAgIGNoYXIgKipf
X3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNlKQogICAgIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSBfX2F0dHJpYnV0ZV9f
ICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKX19leHRlbnNpb25fXwpleHRlcm4gdW5zaWdu
ZWQgbG9uZyBsb25nIGludCBzdHJ0b3VxIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRy
LAogICAgICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNlKQogICAg
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf
XyAoMSkpKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKCgoKCl9f
ZXh0ZW5zaW9uX18KZXh0ZXJuIGxvbmcgbG9uZyBpbnQgc3RydG9sbCAoX19jb25zdCBjaGFyICpf
X3Jlc3RyaWN0IF9fbnB0ciwKICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGlu
dCBfX2Jhc2UpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fbm9ubnVsbF9fICgxKSkpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSk7CgpfX2V4dGVuc2lvbl9fCmV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHN0cnRv
dWxsIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgIGNoYXIgKipfX3Jlc3Ry
aWN0IF9fZW5kcHRyLCBpbnQgX19iYXNlKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSBfX2F0dHJpYnV0ZV9fICgoX193
YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKIyAyNzcgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0
CgpleHRlcm4gX19pbmxpbmUgZG91YmxlCl9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIGF0
b2YgKF9fY29uc3QgY2hhciAqX19ucHRyKQp7CiAgcmV0dXJuIHN0cnRvZCAoX19ucHRyLCAoY2hh
ciAqKikgKCh2b2lkICopMCkpOwp9CmV4dGVybiBfX2lubGluZSBpbnQKX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fKSkgYXRvaSAoX19jb25zdCBjaGFyICpfX25wdHIpCnsKICByZXR1cm4gKGlu
dCkgc3RydG9sIChfX25wdHIsIChjaGFyICoqKSAoKHZvaWQgKikwKSwgMTApOwp9CmV4dGVybiBf
X2lubGluZSBsb25nIGludApfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBhdG9sIChfX2Nv
bnN0IGNoYXIgKl9fbnB0cikKewogIHJldHVybiBzdHJ0b2wgKF9fbnB0ciwgKGNoYXIgKiopICgo
dm9pZCAqKTApLCAxMCk7Cn0KCgoKCl9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGxvbmcg
bG9uZyBpbnQKX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgYXRvbGwgKF9fY29uc3QgY2hh
ciAqX19ucHRyKQp7CiAgcmV0dXJuIHN0cnRvbGwgKF9fbnB0ciwgKGNoYXIgKiopICgodm9pZCAq
KTApLCAxMCk7Cn0KCiMgMzExICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNApleHRlcm4gY2hh
ciAqbDY0YSAobG9uZyBpbnQgX19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0
dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKCmV4dGVybiBsb25nIGludCBh
NjRsIChfX2NvbnN0IGNoYXIgKl9fcykKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18p
KSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDEpKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCgoKCiMgMSAi
L3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAxIDMgNAojIDI5ICIvdXNyL2luY2x1ZGUvc3lzL3R5
cGVzLmgiIDMgNAoKCgoKCgp0eXBlZGVmIF9fdV9jaGFyIHVfY2hhcjsKdHlwZWRlZiBfX3Vfc2hv
cnQgdV9zaG9ydDsKdHlwZWRlZiBfX3VfaW50IHVfaW50Owp0eXBlZGVmIF9fdV9sb25nIHVfbG9u
ZzsKdHlwZWRlZiBfX3F1YWRfdCBxdWFkX3Q7CnR5cGVkZWYgX191X3F1YWRfdCB1X3F1YWRfdDsK
dHlwZWRlZiBfX2ZzaWRfdCBmc2lkX3Q7CgoKCgp0eXBlZGVmIF9fbG9mZl90IGxvZmZfdDsKCgoK
dHlwZWRlZiBfX2lub190IGlub190OwojIDYyICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMg
NAp0eXBlZGVmIF9fZGV2X3QgZGV2X3Q7CgoKCgp0eXBlZGVmIF9fZ2lkX3QgZ2lkX3Q7CgoKCgp0
eXBlZGVmIF9fbW9kZV90IG1vZGVfdDsKCgoKCnR5cGVkZWYgX19ubGlua190IG5saW5rX3Q7CgoK
Cgp0eXBlZGVmIF9fdWlkX3QgdWlkX3Q7CgoKCgoKdHlwZWRlZiBfX29mZl90IG9mZl90OwojIDEw
MCAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKdHlwZWRlZiBfX3BpZF90IHBpZF90OwoK
CgoKdHlwZWRlZiBfX2lkX3QgaWRfdDsKCgoKCnR5cGVkZWYgX19zc2l6ZV90IHNzaXplX3Q7CgoK
CgoKdHlwZWRlZiBfX2RhZGRyX3QgZGFkZHJfdDsKdHlwZWRlZiBfX2NhZGRyX3QgY2FkZHJfdDsK
CgoKCgp0eXBlZGVmIF9fa2V5X3Qga2V5X3Q7CiMgMTMzICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVz
LmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS90aW1lLmgiIDEgMyA0CiMgNzQgIi91c3IvaW5jbHVk
ZS90aW1lLmgiIDMgNAoKCnR5cGVkZWYgX190aW1lX3QgdGltZV90OwoKCgojIDkyICIvdXNyL2lu
Y2x1ZGUvdGltZS5oIiAzIDQKdHlwZWRlZiBfX2Nsb2NraWRfdCBjbG9ja2lkX3Q7CiMgMTA0ICIv
dXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKdHlwZWRlZiBfX3RpbWVyX3QgdGltZXJfdDsKIyAxMzQg
Ii91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzIDQKIyAxNDcgIi91c3IvaW5jbHVkZS9zeXMv
dHlwZXMuaCIgMyA0CiMgMSAiL3Vzci9saWIvZ2NjL2FybS1hbHQtbGludXgtZ251ZWFiaS80LjUu
MS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMgNAojIDE0OCAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5o
IiAyIDMgNAoKCgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IHVsb25nOwp0eXBlZGVmIHVuc2ln
bmVkIHNob3J0IGludCB1c2hvcnQ7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVpbnQ7CiMgMTk1ICIv
dXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAp0eXBlZGVmIGludCBpbnQ4X3QgX19hdHRyaWJ1
dGVfXyAoKF9fbW9kZV9fIChfX1FJX18pKSk7CnR5cGVkZWYgaW50IGludDE2X3QgX19hdHRyaWJ1
dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CnR5cGVkZWYgaW50IGludDMyX3QgX19hdHRyaWJ1
dGVfXyAoKF9fbW9kZV9fIChfX1NJX18pKSk7CnR5cGVkZWYgaW50IGludDY0X3QgX19hdHRyaWJ1
dGVfXyAoKF9fbW9kZV9fIChfX0RJX18pKSk7CgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQ4
X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1FJX18pKSk7CnR5cGVkZWYgdW5zaWduZWQg
aW50IHVfaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKdHlwZWRl
ZiB1bnNpZ25lZCBpbnQgdV9pbnQzMl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19TSV9f
KSkpOwp0eXBlZGVmIHVuc2lnbmVkIGludCB1X2ludDY0X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9k
ZV9fIChfX0RJX18pKSk7Cgp0eXBlZGVmIGludCByZWdpc3Rlcl90IF9fYXR0cmlidXRlX18gKChf
X21vZGVfXyAoX193b3JkX18pKSk7CiMgMjE3ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMg
NAojIDEgIi91c3IvaW5jbHVkZS9lbmRpYW4uaCIgMSAzIDQKIyAzNyAiL3Vzci9pbmNsdWRlL2Vu
ZGlhbi5oIiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvYml0cy9lbmRpYW4uaCIgMSAzIDQKIyAzOCAi
L3Vzci9pbmNsdWRlL2VuZGlhbi5oIiAyIDMgNAojIDYxICIvdXNyL2luY2x1ZGUvZW5kaWFuLmgi
IDMgNAojIDEgIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2FwLmgiIDEgMyA0CiMgNjIgIi91c3Iv
aW5jbHVkZS9lbmRpYW4uaCIgMiAzIDQKIyAyMTggIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIg
MiAzIDQKCgojIDEgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDEgMyA0CiMgMzEgIi91c3Iv
aW5jbHVkZS9zeXMvc2VsZWN0LmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3NlbGVjdC5o
IiAxIDMgNAojIDMyICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAyIDMgNAoKCiMgMSAiL3Vz
ci9pbmNsdWRlL2JpdHMvc2lnc2V0LmgiIDEgMyA0CiMgMjQgIi91c3IvaW5jbHVkZS9iaXRzL3Np
Z3NldC5oIiAzIDQKdHlwZWRlZiBpbnQgX19zaWdfYXRvbWljX3Q7CgoKCgp0eXBlZGVmIHN0cnVj
dAogIHsKICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fdmFsWygxMDI0IC8gKDggKiBzaXplb2YgKHVu
c2lnbmVkIGxvbmcgaW50KSkpXTsKICB9IF9fc2lnc2V0X3Q7CiMgMzUgIi91c3IvaW5jbHVkZS9z
eXMvc2VsZWN0LmgiIDIgMyA0CgoKCnR5cGVkZWYgX19zaWdzZXRfdCBzaWdzZXRfdDsKCgoKCgoj
IDEgIi91c3IvaW5jbHVkZS90aW1lLmgiIDEgMyA0CiMgMTIwICIvdXNyL2luY2x1ZGUvdGltZS5o
IiAzIDQKc3RydWN0IHRpbWVzcGVjCiAgewogICAgX190aW1lX3QgdHZfc2VjOwogICAgbG9uZyBp
bnQgdHZfbnNlYzsKICB9OwojIDQ1ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAyIDMgNAoK
IyAxICIvdXNyL2luY2x1ZGUvYml0cy90aW1lLmgiIDEgMyA0CiMgNjkgIi91c3IvaW5jbHVkZS9i
aXRzL3RpbWUuaCIgMyA0CnN0cnVjdCB0aW1ldmFsCiAgewogICAgX190aW1lX3QgdHZfc2VjOwog
ICAgX19zdXNlY29uZHNfdCB0dl91c2VjOwogIH07CiMgNDcgIi91c3IvaW5jbHVkZS9zeXMvc2Vs
ZWN0LmgiIDIgMyA0CgoKdHlwZWRlZiBfX3N1c2Vjb25kc190IHN1c2Vjb25kc190OwoKCgoKCnR5
cGVkZWYgbG9uZyBpbnQgX19mZF9tYXNrOwojIDY3ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5o
IiAzIDQKdHlwZWRlZiBzdHJ1Y3QKICB7CgoKCgoKCiAgICBfX2ZkX21hc2sgX19mZHNfYml0c1sx
MDI0IC8gKDggKiAoaW50KSBzaXplb2YgKF9fZmRfbWFzaykpXTsKCgogIH0gZmRfc2V0OwoKCgoK
Cgp0eXBlZGVmIF9fZmRfbWFzayBmZF9tYXNrOwojIDk5ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVj
dC5oIiAzIDQKCiMgMTA5ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzIDQKZXh0ZXJuIGlu
dCBzZWxlY3QgKGludCBfX25mZHMsIGZkX3NldCAqX19yZXN0cmljdCBfX3JlYWRmZHMsCiAgICAg
ZmRfc2V0ICpfX3Jlc3RyaWN0IF9fd3JpdGVmZHMsCiAgICAgZmRfc2V0ICpfX3Jlc3RyaWN0IF9f
ZXhjZXB0ZmRzLAogICAgIHN0cnVjdCB0aW1ldmFsICpfX3Jlc3RyaWN0IF9fdGltZW91dCk7CiMg
MTIxICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzIDQKZXh0ZXJuIGludCBwc2VsZWN0IChp
bnQgX19uZmRzLCBmZF9zZXQgKl9fcmVzdHJpY3QgX19yZWFkZmRzLAogICAgICBmZF9zZXQgKl9f
cmVzdHJpY3QgX193cml0ZWZkcywKICAgICAgZmRfc2V0ICpfX3Jlc3RyaWN0IF9fZXhjZXB0ZmRz
LAogICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVzdHJpY3QgX190aW1lb3V0LAogICAg
ICBjb25zdCBfX3NpZ3NldF90ICpfX3Jlc3RyaWN0IF9fc2lnbWFzayk7CgoKCiMgMjIxICIvdXNy
L2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMyA0CgoKIyAxICIvdXNyL2luY2x1ZGUvc3lzL3N5c21h
Y3Jvcy5oIiAxIDMgNAojIDMwICIvdXNyL2luY2x1ZGUvc3lzL3N5c21hY3Jvcy5oIiAzIDQKX19l
eHRlbnNpb25fXwpleHRlcm4gdW5zaWduZWQgaW50IGdudV9kZXZfbWFqb3IgKHVuc2lnbmVkIGxv
bmcgbG9uZyBpbnQgX19kZXYpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7Cl9f
ZXh0ZW5zaW9uX18KZXh0ZXJuIHVuc2lnbmVkIGludCBnbnVfZGV2X21pbm9yICh1bnNpZ25lZCBs
b25nIGxvbmcgaW50IF9fZGV2KQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpOwpf
X2V4dGVuc2lvbl9fCmV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IGdudV9kZXZfbWFrZWRl
diAodW5zaWduZWQgaW50IF9fbWFqb3IsCiAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX21pbm9y
KQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpOwoKCl9fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVuc2lnbmVkIGludApfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBn
bnVfZGV2X21ham9yICh1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9fZGV2KQp7CiAgcmV0dXJuICgo
X19kZXYgPj4gOCkgJiAweGZmZikgfCAoKHVuc2lnbmVkIGludCkgKF9fZGV2ID4+IDMyKSAmIH4w
eGZmZik7Cn0KCl9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVuc2lnbmVkIGludApfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBnbnVfZGV2X21pbm9yICh1bnNpZ25lZCBsb25nIGxv
bmcgaW50IF9fZGV2KQp7CiAgcmV0dXJuIChfX2RldiAmIDB4ZmYpIHwgKCh1bnNpZ25lZCBpbnQp
IChfX2RldiA+PiAxMikgJiB+MHhmZik7Cn0KCl9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQKX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgZ251
X2Rldl9tYWtlZGV2ICh1bnNpZ25lZCBpbnQgX19tYWpvciwgdW5zaWduZWQgaW50IF9fbWlub3Ip
CnsKICByZXR1cm4gKChfX21pbm9yICYgMHhmZikgfCAoKF9fbWFqb3IgJiAweGZmZikgPDwgOCkK
ICAgfCAoKCh1bnNpZ25lZCBsb25nIGxvbmcgaW50KSAoX19taW5vciAmIH4weGZmKSkgPDwgMTIp
CiAgIHwgKCgodW5zaWduZWQgbG9uZyBsb25nIGludCkgKF9fbWFqb3IgJiB+MHhmZmYpKSA8PCAz
MikpOwp9CiMgMjI0ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMyA0CiMgMjM1ICIvdXNy
L2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAp0eXBlZGVmIF9fYmxrY250X3QgYmxrY250X3Q7CgoK
CnR5cGVkZWYgX19mc2Jsa2NudF90IGZzYmxrY250X3Q7CgoKCnR5cGVkZWYgX19mc2ZpbGNudF90
IGZzZmlsY250X3Q7CiMgMjcwICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAojIDEgIi91
c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAxIDMgNAojIDM4ICIvdXNyL2luY2x1ZGUv
Yml0cy9wdGhyZWFkdHlwZXMuaCIgMyA0CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgcHRocmVh
ZF90OwoKCnR5cGVkZWYgdW5pb24KewogIGNoYXIgX19zaXplWzM2XTsKICBsb25nIGludCBfX2Fs
aWduOwp9IHB0aHJlYWRfYXR0cl90OwoKCnR5cGVkZWYgc3RydWN0IF9fcHRocmVhZF9pbnRlcm5h
bF9zbGlzdAp7CiAgc3RydWN0IF9fcHRocmVhZF9pbnRlcm5hbF9zbGlzdCAqX19uZXh0Owp9IF9f
cHRocmVhZF9zbGlzdF90OwoKCgoKdHlwZWRlZiB1bmlvbgp7CiAgc3RydWN0IF9fcHRocmVhZF9t
dXRleF9zCiAgewogICAgaW50IF9fbG9jazsKICAgIHVuc2lnbmVkIGludCBfX2NvdW50OwogICAg
aW50IF9fb3duZXI7CgoKICAgIGludCBfX2tpbmQ7CiAgICB1bnNpZ25lZCBpbnQgX19udXNlcnM7
CiAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCiAgICB7CiAgICAgIGludCBfX3NwaW5zOwogICAgICBf
X3B0aHJlYWRfc2xpc3RfdCBfX2xpc3Q7CiAgICB9OwogIH0gX19kYXRhOwogIGNoYXIgX19zaXpl
WzI0XTsKICBsb25nIGludCBfX2FsaWduOwp9IHB0aHJlYWRfbXV0ZXhfdDsKCnR5cGVkZWYgdW5p
b24KewogIGNoYXIgX19zaXplWzRdOwogIGxvbmcgaW50IF9fYWxpZ247Cn0gcHRocmVhZF9tdXRl
eGF0dHJfdDsKCgoKCnR5cGVkZWYgdW5pb24KewogIHN0cnVjdAogIHsKICAgIGludCBfX2xvY2s7
CiAgICB1bnNpZ25lZCBpbnQgX19mdXRleDsKICAgIF9fZXh0ZW5zaW9uX18gdW5zaWduZWQgbG9u
ZyBsb25nIGludCBfX3RvdGFsX3NlcTsKICAgIF9fZXh0ZW5zaW9uX18gdW5zaWduZWQgbG9uZyBs
b25nIGludCBfX3dha2V1cF9zZXE7CiAgICBfX2V4dGVuc2lvbl9fIHVuc2lnbmVkIGxvbmcgbG9u
ZyBpbnQgX193b2tlbl9zZXE7CiAgICB2b2lkICpfX211dGV4OwogICAgdW5zaWduZWQgaW50IF9f
bndhaXRlcnM7CiAgICB1bnNpZ25lZCBpbnQgX19icm9hZGNhc3Rfc2VxOwogIH0gX19kYXRhOwog
IGNoYXIgX19zaXplWzQ4XTsKICBfX2V4dGVuc2lvbl9fIGxvbmcgbG9uZyBpbnQgX19hbGlnbjsK
fSBwdGhyZWFkX2NvbmRfdDsKCnR5cGVkZWYgdW5pb24KewogIGNoYXIgX19zaXplWzRdOwogIGxv
bmcgaW50IF9fYWxpZ247Cn0gcHRocmVhZF9jb25kYXR0cl90OwoKCgp0eXBlZGVmIHVuc2lnbmVk
IGludCBwdGhyZWFkX2tleV90OwoKCgp0eXBlZGVmIGludCBwdGhyZWFkX29uY2VfdDsKCgoKCgp0
eXBlZGVmIHVuaW9uCnsKICBzdHJ1Y3QKICB7CiAgICBpbnQgX19sb2NrOwogICAgdW5zaWduZWQg
aW50IF9fbnJfcmVhZGVyczsKICAgIHVuc2lnbmVkIGludCBfX3JlYWRlcnNfd2FrZXVwOwogICAg
dW5zaWduZWQgaW50IF9fd3JpdGVyX3dha2V1cDsKICAgIHVuc2lnbmVkIGludCBfX25yX3JlYWRl
cnNfcXVldWVkOwogICAgdW5zaWduZWQgaW50IF9fbnJfd3JpdGVyc19xdWV1ZWQ7CiMgMTQxICIv
dXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMyA0CiAgICB1bnNpZ25lZCBjaGFyIF9f
ZmxhZ3M7CiAgICB1bnNpZ25lZCBjaGFyIF9fc2hhcmVkOwogICAgdW5zaWduZWQgY2hhciBfX3Bh
ZDE7CiAgICB1bnNpZ25lZCBjaGFyIF9fcGFkMjsKCiAgICBpbnQgX193cml0ZXI7CiAgfSBfX2Rh
dGE7CiAgY2hhciBfX3NpemVbMzJdOwogIGxvbmcgaW50IF9fYWxpZ247Cn0gcHRocmVhZF9yd2xv
Y2tfdDsKCnR5cGVkZWYgdW5pb24KewogIGNoYXIgX19zaXplWzhdOwogIGxvbmcgaW50IF9fYWxp
Z247Cn0gcHRocmVhZF9yd2xvY2thdHRyX3Q7CgoKCgoKdHlwZWRlZiB2b2xhdGlsZSBpbnQgcHRo
cmVhZF9zcGlubG9ja190OwoKCgoKdHlwZWRlZiB1bmlvbgp7CiAgY2hhciBfX3NpemVbMjBdOwog
IGxvbmcgaW50IF9fYWxpZ247Cn0gcHRocmVhZF9iYXJyaWVyX3Q7Cgp0eXBlZGVmIHVuaW9uCnsK
ICBjaGFyIF9fc2l6ZVs0XTsKICBpbnQgX19hbGlnbjsKfSBwdGhyZWFkX2JhcnJpZXJhdHRyX3Q7
CiMgMjcxICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMyA0CgoKCiMgMzIxICIvdXNyL2lu
Y2x1ZGUvc3RkbGliLmgiIDIgMyA0CgoKCgoKCmV4dGVybiBsb25nIGludCByYW5kb20gKHZvaWQp
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpOwoKCmV4dGVybiB2b2lkIHNyYW5kb20gKHVu
c2lnbmVkIGludCBfX3NlZWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpOwoKCgoKCmV4
dGVybiBjaGFyICppbml0c3RhdGUgKHVuc2lnbmVkIGludCBfX3NlZWQsIGNoYXIgKl9fc3RhdGVi
dWYsCiAgIHNpemVfdCBfX3N0YXRlbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBf
X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7CgoKCmV4dGVybiBjaGFyICpzZXRzdGF0
ZSAoY2hhciAqX19zdGF0ZWJ1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwoKCgoKCgoKc3RydWN0IHJhbmRvbV9kYXRhCiAg
ewogICAgaW50MzJfdCAqZnB0cjsKICAgIGludDMyX3QgKnJwdHI7CiAgICBpbnQzMl90ICpzdGF0
ZTsKICAgIGludCByYW5kX3R5cGU7CiAgICBpbnQgcmFuZF9kZWc7CiAgICBpbnQgcmFuZF9zZXA7
CiAgICBpbnQzMl90ICplbmRfcHRyOwogIH07CgpleHRlcm4gaW50IHJhbmRvbV9yIChzdHJ1Y3Qg
cmFuZG9tX2RhdGEgKl9fcmVzdHJpY3QgX19idWYsCiAgICAgICBpbnQzMl90ICpfX3Jlc3RyaWN0
IF9fcmVzdWx0KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgo
X19ub25udWxsX18gKDEsIDIpKSk7CgpleHRlcm4gaW50IHNyYW5kb21fciAodW5zaWduZWQgaW50
IF9fc2VlZCwgc3RydWN0IHJhbmRvbV9kYXRhICpfX2J1ZikKICAgICBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7CgpleHRlcm4g
aW50IGluaXRzdGF0ZV9yICh1bnNpZ25lZCBpbnQgX19zZWVkLCBjaGFyICpfX3Jlc3RyaWN0IF9f
c3RhdGVidWYsCiAgIHNpemVfdCBfX3N0YXRlbGVuLAogICBzdHJ1Y3QgcmFuZG9tX2RhdGEgKl9f
cmVzdHJpY3QgX19idWYpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyLCA0KSkpOwoKZXh0ZXJuIGludCBzZXRzdGF0ZV9yIChj
aGFyICpfX3Jlc3RyaWN0IF9fc3RhdGVidWYsCiAgICAgICAgIHN0cnVjdCByYW5kb21fZGF0YSAq
X19yZXN0cmljdCBfX2J1ZikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0
dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7CgoKCgoKCmV4dGVybiBpbnQgcmFuZCAo
dm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CgpleHRlcm4gdm9pZCBzcmFuZCAo
dW5zaWduZWQgaW50IF9fc2VlZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CgoKCgpl
eHRlcm4gaW50IHJhbmRfciAodW5zaWduZWQgaW50ICpfX3NlZWQpIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXykpOwoKCgoKCgoKZXh0ZXJuIGRvdWJsZSBkcmFuZDQ4ICh2b2lkKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18pKTsKZXh0ZXJuIGRvdWJsZSBlcmFuZDQ4ICh1bnNpZ25lZCBz
aG9ydCBpbnQgX194c3ViaVszXSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwoKCmV4dGVybiBsb25nIGludCBscmFuZDQ4ICh2
b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKZXh0ZXJuIGxvbmcgaW50IG5yYW5k
NDggKHVuc2lnbmVkIHNob3J0IGludCBfX3hzdWJpWzNdKQogICAgIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKCgpleHRlcm4g
bG9uZyBpbnQgbXJhbmQ0OCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CmV4
dGVybiBsb25nIGludCBqcmFuZDQ4ICh1bnNpZ25lZCBzaG9ydCBpbnQgX194c3ViaVszXSkKICAg
ICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs
X18gKDEpKSk7CgoKZXh0ZXJuIHZvaWQgc3JhbmQ0OCAobG9uZyBpbnQgX19zZWVkdmFsKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKZXh0ZXJuIHVuc2lnbmVkIHNob3J0IGludCAqc2Vl
ZDQ4ICh1bnNpZ25lZCBzaG9ydCBpbnQgX19zZWVkMTZ2WzNdKQogICAgIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKZXh0ZXJu
IHZvaWQgbGNvbmc0OCAodW5zaWduZWQgc2hvcnQgaW50IF9fcGFyYW1bN10pIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKCgoK
CgpzdHJ1Y3QgZHJhbmQ0OF9kYXRhCiAgewogICAgdW5zaWduZWQgc2hvcnQgaW50IF9feFszXTsK
ICAgIHVuc2lnbmVkIHNob3J0IGludCBfX29sZF94WzNdOwogICAgdW5zaWduZWQgc2hvcnQgaW50
IF9fYzsKICAgIHVuc2lnbmVkIHNob3J0IGludCBfX2luaXQ7CiAgICB1bnNpZ25lZCBsb25nIGxv
bmcgaW50IF9fYTsKICB9OwoKCmV4dGVybiBpbnQgZHJhbmQ0OF9yIChzdHJ1Y3QgZHJhbmQ0OF9k
YXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAogICAgICAgIGRvdWJsZSAqX19yZXN0cmljdCBfX3Jl
c3VsdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgxLCAyKSkpOwpleHRlcm4gaW50IGVyYW5kNDhfciAodW5zaWduZWQgc2hvcnQgaW50
IF9feHN1YmlbM10sCiAgICAgICAgc3RydWN0IGRyYW5kNDhfZGF0YSAqX19yZXN0cmljdCBfX2J1
ZmZlciwKICAgICAgICBkb3VibGUgKl9fcmVzdHJpY3QgX19yZXN1bHQpIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKCgpl
eHRlcm4gaW50IGxyYW5kNDhfciAoc3RydWN0IGRyYW5kNDhfZGF0YSAqX19yZXN0cmljdCBfX2J1
ZmZlciwKICAgICAgICBsb25nIGludCAqX19yZXN0cmljdCBfX3Jlc3VsdCkKICAgICBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIp
KSk7CmV4dGVybiBpbnQgbnJhbmQ0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX194c3ViaVszXSwK
ICAgICAgICBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAogICAgICAg
IGxvbmcgaW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KQogICAgIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKCgpleHRlcm4g
aW50IG1yYW5kNDhfciAoc3RydWN0IGRyYW5kNDhfZGF0YSAqX19yZXN0cmljdCBfX2J1ZmZlciwK
ICAgICAgICBsb25nIGludCAqX19yZXN0cmljdCBfX3Jlc3VsdCkKICAgICBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7CmV4
dGVybiBpbnQganJhbmQ0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX194c3ViaVszXSwKICAgICAg
ICBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAogICAgICAgIGxvbmcg
aW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKCgpleHRlcm4gaW50IHNy
YW5kNDhfciAobG9uZyBpbnQgX19zZWVkdmFsLCBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX2J1ZmZl
cikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19u
b25udWxsX18gKDIpKSk7CgpleHRlcm4gaW50IHNlZWQ0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQg
X19zZWVkMTZ2WzNdLAogICAgICAgc3RydWN0IGRyYW5kNDhfZGF0YSAqX19idWZmZXIpIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwg
MikpKTsKCmV4dGVybiBpbnQgbGNvbmc0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX19wYXJhbVs3
XSwKICAgICAgICBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX2J1ZmZlcikKICAgICBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7
CiMgNDc5ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAoKCgoKCgpleHRlcm4gdm9pZCAqcmVh
bGxvYyAodm9pZCAqX19wdHIsIHNpemVfdCBfX3NpemUpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCmV4
dGVybiB2b2lkIGZyZWUgKHZvaWQgKl9fcHRyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18p
KTsKCgoKCmV4dGVybiB2b2lkIGNmcmVlICh2b2lkICpfX3B0cikgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fKSk7CgoKCiMgMSAiL3Vzci9pbmNsdWRlL2FsbG9jYS5oIiAxIDMgNAojIDI1ICIv
dXNyL2luY2x1ZGUvYWxsb2NhLmgiIDMgNAojIDEgIi91c3IvbGliL2djYy9hcm0tYWx0LWxpbnV4
LWdudWVhYmkvNC41LjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKIyAyNiAiL3Vzci9pbmNsdWRl
L2FsbG9jYS5oIiAyIDMgNAoKCgoKCgoKZXh0ZXJuIHZvaWQgKmFsbG9jYSAoc2l6ZV90IF9fc2l6
ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CgoKCgoKCiMgNDk4ICIvdXNyL2luY2x1
ZGUvc3RkbGliLmgiIDIgMyA0CgoKCgpleHRlcm4gdm9pZCAqdmFsbG9jIChzaXplX3QgX19zaXpl
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2Nf
XykpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CgoKCgpleHRlcm4g
aW50IHBvc2l4X21lbWFsaWduICh2b2lkICoqX19tZW1wdHIsIHNpemVfdCBfX2FsaWdubWVudCwg
c2l6ZV90IF9fc2l6ZSkKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJp
YnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKTsKCgoKCmV4dGVybiB2b2lkIGFib3J0ICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub3JldHVybl9fKSk7CgoKCmV4dGVybiBp
bnQgYXRleGl0ICh2b2lkICgqX19mdW5jKSAodm9pZCkpIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKIyA1MzAgIi91c3IvaW5j
bHVkZS9zdGRsaWIuaCIgMyA0CgoKCgoKZXh0ZXJuIGludCBvbl9leGl0ICh2b2lkICgqX19mdW5j
KSAoaW50IF9fc3RhdHVzLCB2b2lkICpfX2FyZyksIHZvaWQgKl9fYXJnKQogICAgIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsK
CgoKCgoKZXh0ZXJuIHZvaWQgZXhpdCAoaW50IF9fc3RhdHVzKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub3JldHVybl9fKSk7CiMgNTUzICIvdXNyL2lu
Y2x1ZGUvc3RkbGliLmgiIDMgNAoKCgoKCgpleHRlcm4gdm9pZCBfRXhpdCAoaW50IF9fc3RhdHVz
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub3JldHVy
bl9fKSk7CgoKCgoKCmV4dGVybiBjaGFyICpnZXRlbnYgKF9fY29uc3QgY2hhciAqX19uYW1lKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDEpKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCgoKCmV4dGVy
biBjaGFyICpfX3NlY3VyZV9nZXRlbnYgKF9fY29uc3QgY2hhciAqX19uYW1lKQogICAgIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkp
KSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKCgoKZXh0ZXJuIGNo
YXIgKl9fbG9jYWxlX2dldGVudiAoX19jb25zdCBjaGFyICpfX25hbWUpCiAgICAgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIF9f
YXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CgoKCgoKZXh0ZXJuIGludCBw
dXRlbnYgKGNoYXIgKl9fc3RyaW5nKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0
dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7CgoKCgoKZXh0ZXJuIGludCBzZXRlbnYgKF9f
Y29uc3QgY2hhciAqX19uYW1lLCBfX2NvbnN0IGNoYXIgKl9fdmFsdWUsIGludCBfX3JlcGxhY2Up
CiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgyKSkpOwoKCmV4dGVybiBpbnQgdW5zZXRlbnYgKF9fY29uc3QgY2hhciAqX19uYW1l
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKCgoKCgoKZXh0ZXJuIGludCBjbGVhcmVu
diAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CiMgNjEwICIvdXNyL2luY2x1
ZGUvc3RkbGliLmgiIDMgNApleHRlcm4gY2hhciAqbWt0ZW1wIChjaGFyICpfX3RlbXBsYXRlKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDEpKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKIyA2MjEgIi91
c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0CmV4dGVybiBpbnQgbWtzdGVtcCAoY2hhciAqX190ZW1w
bGF0ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIF9fYXR0cmlidXRlX18gKChf
X3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CiMgNjQzICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMg
NApleHRlcm4gaW50IG1rc3RlbXBzIChjaGFyICpfX3RlbXBsYXRlLCBpbnQgX19zdWZmaXhsZW4p
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSBfX2F0dHJpYnV0ZV9fICgoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpOwojIDY2NCAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKZXh0
ZXJuIGNoYXIgKm1rZHRlbXAgKGNoYXIgKl9fdGVtcGxhdGUpIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSBfX2F0dHJpYnV0ZV9f
ICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwojIDcxMyAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5o
IiAzIDQKCgoKCgpleHRlcm4gaW50IHN5c3RlbSAoX19jb25zdCBjaGFyICpfX2NvbW1hbmQpIF9f
YXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CgojIDczNSAiL3Vzci9pbmNs
dWRlL3N0ZGxpYi5oIiAzIDQKZXh0ZXJuIGNoYXIgKnJlYWxwYXRoIChfX2NvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19uYW1lLAogICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fcmVzb2x2ZWQpIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2Vk
X3Jlc3VsdF9fKSk7CgoKCgoKCnR5cGVkZWYgaW50ICgqX19jb21wYXJfZm5fdCkgKF9fY29uc3Qg
dm9pZCAqLCBfX2NvbnN0IHZvaWQgKik7CiMgNzUzICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMg
NAoKCgpleHRlcm4gdm9pZCAqYnNlYXJjaCAoX19jb25zdCB2b2lkICpfX2tleSwgX19jb25zdCB2
b2lkICpfX2Jhc2UsCiAgICAgICAgc2l6ZV90IF9fbm1lbWIsIHNpemVfdCBfX3NpemUsIF9fY29t
cGFyX2ZuX3QgX19jb21wYXIpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAy
LCA1KSkpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CgoKCmV4dGVy
biB2b2lkIHFzb3J0ICh2b2lkICpfX2Jhc2UsIHNpemVfdCBfX25tZW1iLCBzaXplX3QgX19zaXpl
LAogICAgIF9fY29tcGFyX2ZuX3QgX19jb21wYXIpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf
XyAoMSwgNCkpKTsKIyA3NzIgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0CmV4dGVybiBpbnQg
YWJzIChpbnQgX194KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9f
ICgoX19jb25zdF9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsK
ZXh0ZXJuIGxvbmcgaW50IGxhYnMgKGxvbmcgaW50IF9feCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpIF9fYXR0cmlidXRlX18gKChfX3dh
cm5fdW51c2VkX3Jlc3VsdF9fKSk7CgoKCl9fZXh0ZW5zaW9uX18gZXh0ZXJuIGxvbmcgbG9uZyBp
bnQgbGxhYnMgKGxvbmcgbG9uZyBpbnQgX194KQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKSBfX2F0dHJpYnV0ZV9fICgoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpOwoKCgoKCgoKZXh0ZXJuIGRpdl90IGRpdiAoaW50IF9fbnVtZXIs
IGludCBfX2Rlbm9tKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmli
dXRlX18gKChfX2NvbnN0X18pKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRf
XykpOwpleHRlcm4gbGRpdl90IGxkaXYgKGxvbmcgaW50IF9fbnVtZXIsIGxvbmcgaW50IF9fZGVu
b20pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
Y29uc3RfXykpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CgoKCgpf
X2V4dGVuc2lvbl9fIGV4dGVybiBsbGRpdl90IGxsZGl2IChsb25nIGxvbmcgaW50IF9fbnVtZXIs
CiAgICAgICAgbG9uZyBsb25nIGludCBfX2Rlbm9tKQogICAgIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKSBfX2F0dHJpYnV0ZV9fICgoX193
YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKIyA4MDggIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0
CmV4dGVybiBjaGFyICplY3Z0IChkb3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LCBpbnQgKl9f
cmVzdHJpY3QgX19kZWNwdCwKICAgICBpbnQgKl9fcmVzdHJpY3QgX19zaWduKSBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMsIDQpKSkg
X19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCgoKCmV4dGVybiBjaGFy
ICpmY3Z0IChkb3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LCBpbnQgKl9fcmVzdHJpY3QgX19k
ZWNwdCwKICAgICBpbnQgKl9fcmVzdHJpY3QgX19zaWduKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMsIDQpKSkgX19hdHRyaWJ1dGVf
XyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCgoKCmV4dGVybiBjaGFyICpnY3Z0IChkb3Vi
bGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LCBjaGFyICpfX2J1ZikKICAgICBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMpKSkgX19hdHRy
aWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCgoKCmV4dGVybiBjaGFyICpxZWN2
dCAobG9uZyBkb3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LAogICAgICBpbnQgKl9fcmVzdHJp
Y3QgX19kZWNwdCwgaW50ICpfX3Jlc3RyaWN0IF9fc2lnbikKICAgICBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMsIDQpKSkgX19hdHRy
aWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKZXh0ZXJuIGNoYXIgKnFmY3Z0IChs
b25nIGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsCiAgICAgIGludCAqX19yZXN0cmljdCBf
X2RlY3B0LCBpbnQgKl9fcmVzdHJpY3QgX19zaWduKQogICAgIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMywgNCkpKSBfX2F0dHJpYnV0
ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwpleHRlcm4gY2hhciAqcWdjdnQgKGxvbmcg
ZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwgY2hhciAqX19idWYpCiAgICAgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzKSkpIF9f
YXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CgoKCgpleHRlcm4gaW50IGVj
dnRfciAoZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwgaW50ICpfX3Jlc3RyaWN0IF9fZGVj
cHQsCiAgICAgaW50ICpfX3Jlc3RyaWN0IF9fc2lnbiwgY2hhciAqX19yZXN0cmljdCBfX2J1ZiwK
ICAgICBzaXplX3QgX19sZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmli
dXRlX18gKChfX25vbm51bGxfXyAoMywgNCwgNSkpKTsKZXh0ZXJuIGludCBmY3Z0X3IgKGRvdWJs
ZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsIGludCAqX19yZXN0cmljdCBfX2RlY3B0LAogICAgIGlu
dCAqX19yZXN0cmljdCBfX3NpZ24sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCiAgICAgc2l6ZV90
IF9fbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19u
b25udWxsX18gKDMsIDQsIDUpKSk7CgpleHRlcm4gaW50IHFlY3Z0X3IgKGxvbmcgZG91YmxlIF9f
dmFsdWUsIGludCBfX25kaWdpdCwKICAgICAgaW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsIGludCAq
X19yZXN0cmljdCBfX3NpZ24sCiAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBf
X2xlbikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgo
X19ub25udWxsX18gKDMsIDQsIDUpKSk7CmV4dGVybiBpbnQgcWZjdnRfciAobG9uZyBkb3VibGUg
X192YWx1ZSwgaW50IF9fbmRpZ2l0LAogICAgICBpbnQgKl9fcmVzdHJpY3QgX19kZWNwdCwgaW50
ICpfX3Jlc3RyaWN0IF9fc2lnbiwKICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90
IF9fbGVuKQogICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmlidXRlX18g
KChfX25vbm51bGxfXyAoMywgNCwgNSkpKTsKCgoKCgoKCmV4dGVybiBpbnQgbWJsZW4gKF9fY29u
c3QgY2hhciAqX19zLCBzaXplX3QgX19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBf
X2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKCmV4dGVybiBpbnQgbWJ0
b3djICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcHdjLAogICAgIF9fY29uc3QgY2hhciAqX19yZXN0
cmljdCBfX3MsIHNpemVfdCBfX24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0
cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSk7CgoKZXh0ZXJuIGludCB3Y3RvbWIg
KGNoYXIgKl9fcywgd2NoYXJfdCBfX3djaGFyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18p
KSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwoKCgpleHRlcm4gc2l6
ZV90IG1ic3Rvd2NzICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcHdjcywKICAgX19jb25zdCBjaGFy
ICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
KSk7CgpleHRlcm4gc2l6ZV90IHdjc3RvbWJzIChjaGFyICpfX3Jlc3RyaWN0IF9fcywKICAgX19j
b25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcHdjcywgc2l6ZV90IF9fbikKICAgICBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18pKTsKCgoKCgoKCgpleHRlcm4gaW50IHJwbWF0Y2ggKF9fY29u
c3QgY2hhciAqX19yZXNwb25zZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2Vk
X3Jlc3VsdF9fKSk7CiMgOTEzICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNApleHRlcm4gaW50
IHBvc2l4X29wZW5wdCAoaW50IF9fb2ZsYWcpIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2Vk
X3Jlc3VsdF9fKSk7CiMgOTQ4ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNApleHRlcm4gaW50
IGdldGxvYWRhdmcgKGRvdWJsZSBfX2xvYWRhdmdbXSwgaW50IF9fbmVsZW0pCiAgICAgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkp
OwoKCgoKCiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc3RkbGliLmgiIDEgMyA0CiMgMjQgIi91c3Iv
aW5jbHVkZS9iaXRzL3N0ZGxpYi5oIiAzIDQKZXh0ZXJuIGNoYXIgKl9fcmVhbHBhdGhfY2hrIChf
X2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19uYW1lLAogICAgICAgIGNoYXIgKl9fcmVzdHJpY3Qg
X19yZXNvbHZlZCwKICAgICAgICBzaXplX3QgX19yZXNvbHZlZGxlbikgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsK
ZXh0ZXJuIGNoYXIgKl9fcmVhbHBhdGhfYWxpYXMgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X25hbWUsIGNoYXIgKl9fcmVzdHJpY3QgX19yZXNvbHZlZCkgX19hc21fXyAoIiIgInJlYWxwYXRo
IikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkKCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9y
ZXN1bHRfXykpOwpleHRlcm4gY2hhciAqX19yZWFscGF0aF9jaGtfd2FybiAoX19jb25zdCBjaGFy
ICpfX3Jlc3RyaWN0IF9fbmFtZSwgY2hhciAqX19yZXN0cmljdCBfX3Jlc29sdmVkLCBzaXplX3Qg
X19yZXNvbHZlZGxlbikgX19hc21fXyAoIiIgIl9fcmVhbHBhdGhfY2hrIikgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fKSkKCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpCiAgICAg
X19hdHRyaWJ1dGVfXygoX193YXJuaW5nX18gKCJzZWNvbmQgYXJndW1lbnQgb2YgcmVhbHBhdGgg
bXVzdCBiZSBlaXRoZXIgTlVMTCBvciBhdCAiICJsZWFzdCBQQVRIX01BWCBieXRlcyBsb25nIGJ1
ZmZlciIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CgpleHRlcm4g
X19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fYXJ0aWZpY2lhbF9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0
X18pKSBjaGFyICoKX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkgcmVhbHBhdGggKF9fY29u
c3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsIGNoYXIgKl9fcmVzdHJpY3QgX19yZXNvbHZlZCkK
ewogIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fcmVzb2x2ZWQsIDIgPiAxKSAhPSAoc2l6
ZV90KSAtMSkKICAgIHsKCgoKCiAgICAgIHJldHVybiBfX3JlYWxwYXRoX2NoayAoX19uYW1lLCBf
X3Jlc29sdmVkLCBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fcmVzb2x2ZWQsIDIgPiAxKSk7CiAg
ICB9CgogIHJldHVybiBfX3JlYWxwYXRoX2FsaWFzIChfX25hbWUsIF9fcmVzb2x2ZWQpOwp9CgoK
ZXh0ZXJuIGludCBfX3B0c25hbWVfcl9jaGsgKGludCBfX2ZkLCBjaGFyICpfX2J1Ziwgc2l6ZV90
IF9fYnVmbGVuLAogICAgICAgc2l6ZV90IF9fbnJlYWwpIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKZXh0ZXJuIGludCBfX3B0
c25hbWVfcl9hbGlhcyAoaW50IF9fZmQsIGNoYXIgKl9fYnVmLCBzaXplX3QgX19idWZsZW4pIF9f
YXNtX18gKCIiICJwdHNuYW1lX3IiKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKQoKICAg
ICBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7CmV4dGVybiBpbnQgX19wdHNuYW1l
X3JfY2hrX3dhcm4gKGludCBfX2ZkLCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLCBzaXpl
X3QgX19ucmVhbCkgX19hc21fXyAoIiIgIl9fcHRzbmFtZV9yX2NoayIpIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXykpCgoKICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSkg
X19hdHRyaWJ1dGVfXygoX193YXJuaW5nX18gKCJwdHNuYW1lX3IgY2FsbGVkIHdpdGggYnVmbGVu
IGJpZ2dlciB0aGFuICIgInNpemUgb2YgYnVmIikpKQogICAgICAgICAgICAgICAgICAgOwoKZXh0
ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18gKChfX2FydGlmaWNpYWxfXykpIGludApfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18p
KSBwdHNuYW1lX3IgKGludCBfX2ZkLCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuKQp7CiAg
aWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoX19idWYsIDIgPiAxKSAhPSAoc2l6ZV90KSAtMSkK
ICAgIHsKICAgICAgaWYgKCFfX2J1aWx0aW5fY29uc3RhbnRfcCAoX19idWZsZW4pKQogcmV0dXJu
IF9fcHRzbmFtZV9yX2NoayAoX19mZCwgX19idWYsIF9fYnVmbGVuLCBfX2J1aWx0aW5fb2JqZWN0
X3NpemUgKF9fYnVmLCAyID4gMSkpOwogICAgICBpZiAoX19idWZsZW4gPiBfX2J1aWx0aW5fb2Jq
ZWN0X3NpemUgKF9fYnVmLCAyID4gMSkpCiByZXR1cm4gX19wdHNuYW1lX3JfY2hrX3dhcm4gKF9f
ZmQsIF9fYnVmLCBfX2J1ZmxlbiwgX19idWlsdGluX29iamVjdF9zaXplIChfX2J1ZiwgMiA+IDEp
KTsKICAgIH0KICByZXR1cm4gX19wdHNuYW1lX3JfYWxpYXMgKF9fZmQsIF9fYnVmLCBfX2J1Zmxl
bik7Cn0KCgpleHRlcm4gaW50IF9fd2N0b21iX2NoayAoY2hhciAqX19zLCB3Y2hhcl90IF9fd2No
YXIsIHNpemVfdCBfX2J1ZmxlbikKICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0
dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwpleHRlcm4gaW50IF9fd2N0b21i
X2FsaWFzIChjaGFyICpfX3MsIHdjaGFyX3QgX193Y2hhcikgX19hc21fXyAoIiIgIndjdG9tYiIp
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpCiAgICAgICAgICAgICAgX19hdHRyaWJ1dGVf
XyAoKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKTsKCmV4dGVybiBfX2lubGluZSBfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fICgoX19hcnRpZmljaWFsX18p
KSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGludApfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18pKSB3Y3RvbWIgKGNoYXIgKl9fcywgd2NoYXJfdCBfX3djaGFyKQp7
CgoKCgoKCgogIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fcywgMiA+IDEpICE9IChzaXpl
X3QpIC0xICYmIDE2ID4gX19idWlsdGluX29iamVjdF9zaXplIChfX3MsIDIgPiAxKSkKICAgIHJl
dHVybiBfX3djdG9tYl9jaGsgKF9fcywgX193Y2hhciwgX19idWlsdGluX29iamVjdF9zaXplIChf
X3MsIDIgPiAxKSk7CiAgcmV0dXJuIF9fd2N0b21iX2FsaWFzIChfX3MsIF9fd2NoYXIpOwp9CgoK
ZXh0ZXJuIHNpemVfdCBfX21ic3Rvd2NzX2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX2RzdCwK
ICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjLAogICAgICAgICBzaXplX3Qg
X19sZW4sIHNpemVfdCBfX2RzdGxlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7CmV4
dGVybiBzaXplX3QgX19tYnN0b3djc19hbGlhcyAod2NoYXJfdCAqX19yZXN0cmljdCBfX2RzdCwg
X19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19sZW4pIF9fYXNtX18gKCIi
ICJtYnN0b3djcyIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpCgoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDsKZXh0ZXJuIHNpemVfdCBfX21ic3Rvd2NzX2Noa193YXJu
ICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZHN0LCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19z
cmMsIHNpemVfdCBfX2xlbiwgc2l6ZV90IF9fZHN0bGVuKSBfX2FzbV9fICgiIiAiX19tYnN0b3dj
c19jaGsiKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKQoKCgogICAgIF9fYXR0cmlidXRl
X18oKF9fd2FybmluZ19fICgibWJzdG93Y3MgY2FsbGVkIHdpdGggZHN0IGJ1ZmZlciBzbWFsbGVy
IHRoYW4gbGVuICIgIiogc2l6ZW9mICh3Y2hhcl90KSIpKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgOwoKZXh0ZXJuIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18gKChfX2FydGlmaWNpYWxfXykpIHNpemVfdApfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18pKSBtYnN0b3djcyAod2NoYXJfdCAqX19yZXN0cmljdCBfX2RzdCwgX19jb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19sZW4pCgp7CiAgaWYgKF9fYnVpbHRp
bl9vYmplY3Rfc2l6ZSAoX19kc3QsIDIgPiAxKSAhPSAoc2l6ZV90KSAtMSkKICAgIHsKICAgICAg
aWYgKCFfX2J1aWx0aW5fY29uc3RhbnRfcCAoX19sZW4pKQogcmV0dXJuIF9fbWJzdG93Y3NfY2hr
IChfX2RzdCwgX19zcmMsIF9fbGVuLAogICAgICAgICAgX19idWlsdGluX29iamVjdF9zaXplIChf
X2RzdCwgMiA+IDEpIC8gc2l6ZW9mICh3Y2hhcl90KSk7CgogICAgICBpZiAoX19sZW4gPiBfX2J1
aWx0aW5fb2JqZWN0X3NpemUgKF9fZHN0LCAyID4gMSkgLyBzaXplb2YgKHdjaGFyX3QpKQogcmV0
dXJuIF9fbWJzdG93Y3NfY2hrX3dhcm4gKF9fZHN0LCBfX3NyYywgX19sZW4sCiAgICAgICAgIF9f
YnVpbHRpbl9vYmplY3Rfc2l6ZSAoX19kc3QsIDIgPiAxKSAvIHNpemVvZiAod2NoYXJfdCkpOwog
ICAgfQogIHJldHVybiBfX21ic3Rvd2NzX2FsaWFzIChfX2RzdCwgX19zcmMsIF9fbGVuKTsKfQoK
CmV4dGVybiBzaXplX3QgX193Y3N0b21ic19jaGsgKGNoYXIgKl9fcmVzdHJpY3QgX19kc3QsCiAg
ICAgICAgIF9fY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYywKICAgICAgICAgc2l6ZV90
IF9fbGVuLCBzaXplX3QgX19kc3RsZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpOwpl
eHRlcm4gc2l6ZV90IF9fd2NzdG9tYnNfYWxpYXMgKGNoYXIgKl9fcmVzdHJpY3QgX19kc3QsIF9f
Y29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90IF9fbGVuKSBfX2FzbV9fICgi
IiAid2NzdG9tYnMiKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKQoKCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA7CmV4dGVybiBzaXplX3QgX193Y3N0b21ic19jaGtfd2Fy
biAoY2hhciAqX19yZXN0cmljdCBfX2RzdCwgX19jb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9f
c3JjLCBzaXplX3QgX19sZW4sIHNpemVfdCBfX2RzdGxlbikgX19hc21fXyAoIiIgIl9fd2NzdG9t
YnNfY2hrIikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSkKCgoKICAgICBfX2F0dHJpYnV0
ZV9fKChfX3dhcm5pbmdfXyAoIndjc3RvbWJzIGNhbGxlZCB3aXRoIGRzdCBidWZmZXIgc21hbGxl
ciB0aGFuIGxlbiIpKSk7CgpleHRlcm4gX19pbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fYXJ0aWZpY2lhbF9fKSkgc2l6ZV90Cl9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXykpIHdjc3RvbWJzIChjaGFyICpfX3Jlc3RyaWN0IF9fZHN0
LCBfX2NvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsIHNpemVfdCBfX2xlbikKCnsKICBp
ZiAoX19idWlsdGluX29iamVjdF9zaXplIChfX2RzdCwgMiA+IDEpICE9IChzaXplX3QpIC0xKQog
ICAgewogICAgICBpZiAoIV9fYnVpbHRpbl9jb25zdGFudF9wIChfX2xlbikpCiByZXR1cm4gX193
Y3N0b21ic19jaGsgKF9fZHN0LCBfX3NyYywgX19sZW4sIF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAo
X19kc3QsIDIgPiAxKSk7CiAgICAgIGlmIChfX2xlbiA+IF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAo
X19kc3QsIDIgPiAxKSkKIHJldHVybiBfX3djc3RvbWJzX2Noa193YXJuIChfX2RzdCwgX19zcmMs
IF9fbGVuLCBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKF9fZHN0LCAyID4gMSkpOwogICAgfQogIHJl
dHVybiBfX3djc3RvbWJzX2FsaWFzIChfX2RzdCwgX19zcmMsIF9fbGVuKTsKfQojIDk1NiAiL3Vz
ci9pbmNsdWRlL3N0ZGxpYi5oIiAyIDMgNAojIDk2NCAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAz
IDQKCiMgMjQgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmMiIDIK
IyA1MSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIuYyIKdHlwZWRl
ZiBzaWduZWQgY2hhciBmbGV4X2ludDhfdDsKdHlwZWRlZiBzaG9ydCBpbnQgZmxleF9pbnQxNl90
Owp0eXBlZGVmIGludCBmbGV4X2ludDMyX3Q7CnR5cGVkZWYgdW5zaWduZWQgY2hhciBmbGV4X3Vp
bnQ4X3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IGZsZXhfdWludDE2X3Q7CnR5cGVkZWYg
dW5zaWduZWQgaW50IGZsZXhfdWludDMyX3Q7CiMgMTYyICIvaG9tZS9waGlsL2hnL3NpcC9zaXAt
NC4xMi4zL3NpcGdlbi9sZXhlci5jIgp0eXBlZGVmIHN0cnVjdCB5eV9idWZmZXJfc3RhdGUgKllZ
X0JVRkZFUl9TVEFURTsKCgpleHRlcm4gaW50IHl5bGVuZzsKCmV4dGVybiBGSUxFICp5eWluLCAq
eXlvdXQ7CiMgMTkzICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5j
Igp0eXBlZGVmIHNpemVfdCB5eV9zaXplX3Q7CgoKCgpzdHJ1Y3QgeXlfYnVmZmVyX3N0YXRlCiB7
CiBGSUxFICp5eV9pbnB1dF9maWxlOwoKIGNoYXIgKnl5X2NoX2J1ZjsKIGNoYXIgKnl5X2J1Zl9w
b3M7CgoKCgogeXlfc2l6ZV90IHl5X2J1Zl9zaXplOwoKCgoKIGludCB5eV9uX2NoYXJzOwoKCgoK
CiBpbnQgeXlfaXNfb3VyX2J1ZmZlcjsKCgoKCgoKIGludCB5eV9pc19pbnRlcmFjdGl2ZTsKCgoK
CgogaW50IHl5X2F0X2JvbDsKCiAgICBpbnQgeXlfYnNfbGluZW5vOwogICAgaW50IHl5X2JzX2Nv
bHVtbjsKCgoKCiBpbnQgeXlfZmlsbF9idWZmZXI7CgogaW50IHl5X2J1ZmZlcl9zdGF0dXM7CiMg
MjU4ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5jIgogfTsKCgoK
c3RhdGljIHNpemVfdCB5eV9idWZmZXJfc3RhY2tfdG9wID0gMDsKc3RhdGljIHNpemVfdCB5eV9i
dWZmZXJfc3RhY2tfbWF4ID0gMDsKc3RhdGljIFlZX0JVRkZFUl9TVEFURSAqIHl5X2J1ZmZlcl9z
dGFjayA9IDA7CiMgMjgyICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhl
ci5jIgpzdGF0aWMgY2hhciB5eV9ob2xkX2NoYXI7CnN0YXRpYyBpbnQgeXlfbl9jaGFyczsKaW50
IHl5bGVuZzsKCgpzdGF0aWMgY2hhciAqeXlfY19idWZfcCA9IChjaGFyICopIDA7CnN0YXRpYyBp
bnQgeXlfaW5pdCA9IDA7CnN0YXRpYyBpbnQgeXlfc3RhcnQgPSAwOwoKCgoKc3RhdGljIGludCB5
eV9kaWRfYnVmZmVyX3N3aXRjaF9vbl9lb2Y7Cgp2b2lkIHl5cmVzdGFydCAoRklMRSAqaW5wdXRf
ZmlsZSApOwp2b2lkIHl5X3N3aXRjaF90b19idWZmZXIgKFlZX0JVRkZFUl9TVEFURSBuZXdfYnVm
ZmVyICk7CllZX0JVRkZFUl9TVEFURSB5eV9jcmVhdGVfYnVmZmVyIChGSUxFICpmaWxlLGludCBz
aXplICk7CnZvaWQgeXlfZGVsZXRlX2J1ZmZlciAoWVlfQlVGRkVSX1NUQVRFIGIgKTsKdm9pZCB5
eV9mbHVzaF9idWZmZXIgKFlZX0JVRkZFUl9TVEFURSBiICk7CnZvaWQgeXlwdXNoX2J1ZmZlcl9z
dGF0ZSAoWVlfQlVGRkVSX1NUQVRFIG5ld19idWZmZXIgKTsKdm9pZCB5eXBvcF9idWZmZXJfc3Rh
dGUgKHZvaWQgKTsKCnN0YXRpYyB2b2lkIHl5ZW5zdXJlX2J1ZmZlcl9zdGFjayAodm9pZCApOwpz
dGF0aWMgdm9pZCB5eV9sb2FkX2J1ZmZlcl9zdGF0ZSAodm9pZCApOwpzdGF0aWMgdm9pZCB5eV9p
bml0X2J1ZmZlciAoWVlfQlVGRkVSX1NUQVRFIGIsRklMRSAqZmlsZSApOwoKCgpZWV9CVUZGRVJf
U1RBVEUgeXlfc2Nhbl9idWZmZXIgKGNoYXIgKmJhc2UseXlfc2l6ZV90IHNpemUgKTsKWVlfQlVG
RkVSX1NUQVRFIHl5X3NjYW5fc3RyaW5nIChjb25zdCBjaGFyICp5eV9zdHIgKTsKWVlfQlVGRkVS
X1NUQVRFIHl5X3NjYW5fYnl0ZXMgKGNvbnN0IGNoYXIgKmJ5dGVzLGludCBsZW4gKTsKCnZvaWQg
Knl5YWxsb2MgKHl5X3NpemVfdCApOwp2b2lkICp5eXJlYWxsb2MgKHZvaWQgKix5eV9zaXplX3Qg
KTsKdm9pZCB5eWZyZWUgKHZvaWQgKiApOwojIDM0NCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQu
MTIuMy9zaXBnZW4vbGV4ZXIuYyIKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIFlZX0NIQVI7CgpGSUxF
ICp5eWluID0gKEZJTEUgKikgMCwgKnl5b3V0ID0gKEZJTEUgKikgMDsKCnR5cGVkZWYgaW50IHl5
X3N0YXRlX3R5cGU7CgpleHRlcm4gaW50IHl5bGluZW5vOwoKaW50IHl5bGluZW5vID0gMTsKCmV4
dGVybiBjaGFyICp5eXRleHQ7CgoKc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfZ2V0X3ByZXZpb3Vz
X3N0YXRlICh2b2lkICk7CnN0YXRpYyB5eV9zdGF0ZV90eXBlIHl5X3RyeV9OVUxfdHJhbnMgKHl5
X3N0YXRlX3R5cGUgY3VycmVudF9zdGF0ZSApOwpzdGF0aWMgaW50IHl5X2dldF9uZXh0X2J1ZmZl
ciAodm9pZCApOwpzdGF0aWMgdm9pZCB5eV9mYXRhbF9lcnJvciAoY29uc3QgY2hhciBtc2dbXSAp
OwojIDM3NiAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIuYyIKc3Ry
dWN0IHl5X3RyYW5zX2luZm8KIHsKIGZsZXhfaW50MzJfdCB5eV92ZXJpZnk7CiBmbGV4X2ludDMy
X3QgeXlfbnh0OwogfTsKc3RhdGljIGNvbnN0IGZsZXhfaW50MTZfdCB5eV9hY2NlcHRbMTAyN10g
PQogICAgeyAwLAogICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgICAgIDE1
MSwgMTQ5LCA5NSwgOTgsIDE0OSwgMTQ5LCAxNDksIDEwMSwgMTQ5LCAxMDAsCiAgICAgIDEwMCwg
MTQ5LCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywKICAgICAgMTAzLCAx
MDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLAogICAgICAxMDMsIDE0
OSwgOTUsIDE0OSwgMTQ4LCAxNDcsIDE0OCwgMTQ4LCAxMTAsIDEwOCwKICAgICAgMTEwLCA5Nywg
MTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsCiAgICAgIDEwMywgMTAzLCAx
MDMsIDEwMywgMTAzLCA5NSwgMTQ5LCA5NiwgOTUsIDE0OSwKICAgICAgICAwLCAxMDUsIDAsIDEw
NiwgMTAxLCAxMDAsIDAsIDEwNCwgMTAxLCAxMDQsCiAgICAgIDEwNCwgMTAxLCAxMDcsIDk5LCAx
MDEsIDAsIDU5LCAxMDMsIDEwMywgMTAzLAogICAgICAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywg
MTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsCgogICAgICAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywg
MTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsCiAgICAgIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCAx
MDMsIDEwMywgMTAzLCA2MCwgMCwKICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LAogICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgICAgICAgMCwgMTA5LCAx
MDMsIDEwMywgMTAzLCA3OSwgMTAzLCAxMDMsIDEwMywgMTAzLAogICAgICAxMDMsIDEwMywgMTAz
LCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCAwLAogICAgICAgIDAsIDAsIDAsIDAsIDAs
IDEwMSwgMCwgNzcsIDAsIDAsCiAgICAgIDEwMSwgOTksIDEwMiwgMTAzLCAxMDMsIDEwMywgMTAz
LCAxMDMsIDEwMywgMTAzLAogICAgICAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMzksIDEwMywg
MTAzLCAxMDMsIDEwMywKICAgICAgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCAx
MDMsIDEwMywgMTAzLAoKICAgICAgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsIDAsIDAsIDAsIDAs
IDAsCiAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTMsIDAsCiAgICAgICAgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDMs
IDEwMywgNzgsCiAgICAgIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgODcsIDEw
MywgMTAzLAogICAgICAxMDMsIDEwMywgMTAzLCAwLCAxMDEsIDUyLCAxMDMsIDEwMywgMTAzLCAz
NywKICAgICAgIDM1LCAxMDMsIDEwMywgMTAzLCA0NSwgMTAzLCAxMDMsIDEwMywgNDAsIDEwMywK
ICAgICAgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLAog
ICAgICAxMDMsIDUwLCAxMDMsIDEwMywgMTAzLCA0MywgMTAzLCAxLCAwLCAwLAogICAgICAgIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDE0MCwgOSwgMCwKCiAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwKICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogICAgICAg
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE0NiwgMTAzLCA5MywKICAgICAgMTAzLCAxMDMsIDEwMywg
ODMsIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCA5MCwKICAgICAgMTAzLCAxMDMsIDEwLCAxMDMs
IDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsCiAgICAgICAyNCwgNDgsIDEwMywgMTAzLCA1
MSwgNDEsIDEwMywgMTAzLCAxMDMsIDEwMywKICAgICAgMTAzLCAzOCwgMTAzLCAxMDMsIDMyLCAx
MDMsIDEwMywgMTAzLCA1NiwgMTAzLAogICAgICAxMDMsIDEwMywgMTAzLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLAogICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgICAgICAgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKCiAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwKICAgICAgICAwLCAwLCAwLCA5NCwgMTAzLCAxMDMsIDEwMywgMTAzLCA4NSwgMTAz
LAogICAgICAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMzQsIDEwMywgMTAzLCAxMDMsIDEwMywK
ICAgICAgMTAzLCAxMDMsIDEwMywgNDIsIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCAyNiwKICAg
ICAgMTAzLCA0NiwgNDksIDI1LCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMCwKICAgICAgICAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsCiAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgICAgICAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogICAgICAgIDAsIDEwMywgMTAzLCAxMDMsIDEw
MywgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsCgogICAgICAxMDMsIDMzLCAxMDMsIDEwMywgMTAz
LCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywKICAgICAgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMs
IDEwMywgMTAzLCAyOCwgMTAzLCAyOSwKICAgICAgMTAzLCA1MywgMTAzLCA0NCwgMzYsIDAsIDAs
IDAsIDAsIDAsCiAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgICAgICAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAxNCwgMCwgMCwKICAgICAgICAwLCAwLCAwLCAwLCAxOCwgMCwg
MCwgMCwgMjEsIDAsCiAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgICAg
ICAwLCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgOTIsCiAgICAgICAz
MSwgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywKICAgICAgMTAz
LCAxMDMsIDY5LCAxMDMsIDU3LCAxMDMsIDU1LCAxMDMsIDU4LCA0NywKCiAgICAgICAgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMywgMCwKICAgICAgICAwLCAwLCAxMTEsIDAsIDAsIDAsIDAsIDEx
NiwgMTIsIDAsCiAgICAgICAgMCwgMTQ0LCAxNSwgMCwgMTYsIDAsIDAsIDAsIDAsIDAsCiAgICAg
ICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQ1LCAwLAogICAgICAgIDAsIDAsIDAsIDAsIDAs
IDEwMywgODEsIDgyLCA4NCwgMTAzLAogICAgICAxMDMsIDEwMywgMTAzLCAzMCwgMTAzLCAxMDMs
IDEwMywgMTAzLCAxMDMsIDEwMywKICAgICAgMTAzLCAxMDMsIDEwMywgMTAzLCAxMDMsIDEwMywg
MTAzLCA1NCwgMjcsIDAsCiAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAg
ICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogICAgICAxNDIsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsCgogICAgICAgIDAsIDIyLCAwLCAyMywgMTI1LCAwLCAxMjIsIDAsIDAs
IDEwMywKICAgICAgMTAzLCA4OCwgODksIDEwMywgMTAzLCAxMDMsIDY0LCA2MywgMTAzLCAxMDMs
CiAgICAgIDEwMywgNjcsIDEwMywgMTAzLCA2OCwgMTAzLCAxMDMsIDEwMywgMCwgMCwKICAgICAg
ICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogICAgICAgIDAsIDAsIDAsIDEzOSwgMTEs
IDAsIDAsIDAsIDAsIDAsCiAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMjAsIDAsIDAsIDAsCiAg
ICAgIDEzOCwgMCwgMCwgMCwgMTAzLCAxMDMsIDEwMywgNzAsIDEwMywgMTAzLAogICAgICAgNjYs
IDYyLCA3NiwgMTAzLCAxMDMsIDEwMywgMTAzLCA3NSwgMTQzLCAyLAogICAgICAgIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MTcsCgogICAgICAxMjYsIDEyNCwgMCwgMCwgMTM2LCAwLCAwLCAwLCAwLCAwLAogICAgICAgIDAs
IDEwMywgMTAzLCAxMDMsIDEwMywgNjEsIDEwMywgMTAzLCA3MywgNzQsCiAgICAgICAgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgICAgICAwLCAwLCAwLCAwLCAxNDEsIDAsIDEyOSwg
MCwgMCwgMCwKICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDMsIDEwMywgMTAzLAogICAg
ICAxMDMsIDcxLCA3MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgICAgICAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLAogICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwMywgMTAz
LAogICAgICAxMDMsIDY1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogICAgICAgIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsCgogICAgICAgIDAsIDAsIDAsIDEzNywgMCwgMCwgMCwgMTAz
LCA4NiwgMTAzLAogICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgICAgICAg
MCwgMCwgMCwgMCwgMCwgMTI4LCAwLCAwLCAwLCAwLAogICAgICAgIDAsIDExOCwgMCwgMCwgMTAz
LCAxMDMsIDEzMCwgMCwgMCwgMCwKICAgICAgICAwLCAwLCA0LCAwLCAwLCAwLCAwLCA2LCA3LCAw
LAogICAgICAgIDAsIDAsIDAsIDE5LCAwLCAwLCAwLCAwLCAxMDMsIDEwMywKICAgICAgICAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4LAogICAgICAgIDAsIDAsIDExNywgMCwgMCwgMCwgMCwg
ODAsIDEwMywgMCwKICAgICAgICAwLCAxMzQsIDAsIDAsIDAsIDAsIDAsIDExMywgMCwgMCwKICAg
ICAgICAwLCAwLCAwLCAwLCA5MSwgMCwgMCwgMCwgMCwgNSwKCiAgICAgICAgMCwgMCwgMTE1LCAx
MjAsIDAsIDAsIDAsIDEyNywgMTM1LCAxMzIsCiAgICAgICAgMCwgMTMxLCAxMTIsIDAsIDAsIDAs
IDEyMywgMTMzLCAwLCAwLAogICAgICAgIDAsIDExNCwgMCwgMTE5LCAxMjEsIDAKICAgIH0gOwoK
c3RhdGljIGNvbnN0IGZsZXhfaW50MzJfdCB5eV9lY1syNTZdID0KICAgIHsgMCwKICAgICAgICAx
LCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAyLCAzLAogICAgICAgIDEsIDEsIDQsIDEsIDEsIDEsIDEs
IDEsIDEsIDEsCiAgICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwKICAgICAgICAx
LCAyLCAxLCA1LCAxLCAxLCA2LCAxLCA3LCA4LAogICAgICAgIDksIDEwLCAxMSwgMSwgMTIsIDEz
LCAxNCwgMTUsIDE2LCAxNiwKICAgICAgIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNywg
MSwgMSwKICAgICAgICAxLCAxLCAxLCAxLCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLAogICAgICAg
MjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsCiAgICAgICAzNCwgMzUsIDM2
LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywKICAgICAgICAxLCAxLCAxLCAxLCA0NCwgMSwg
NDUsIDQ2LCA0NywgNDgsCgogICAgICAgNDksIDUwLCA1MSwgNTIsIDUzLCAyOCwgNTQsIDU1LCA1
NiwgNTcsCiAgICAgICA1OCwgNTksIDI4LCA2MCwgNjEsIDYyLCA2MywgNjQsIDY1LCA2NiwKICAg
ICAgIDY3LCAyOCwgMSwgNjgsIDEsIDEsIDEsIDEsIDEsIDEsCiAgICAgICAgMSwgMSwgMSwgMSwg
MSwgMSwgMSwgMSwgMSwgMSwKICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLAog
ICAgICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsCiAgICAgICAgMSwgMSwgMSwgMSwg
MSwgMSwgMSwgMSwgMSwgMSwKICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLAog
ICAgICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsCiAgICAgICAgMSwgMSwgMSwgMSwg
MSwgMSwgMSwgMSwgMSwgMSwKCiAgICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwK
ICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLAogICAgICAgIDEsIDEsIDEsIDEs
IDEsIDEsIDEsIDEsIDEsIDEsCiAgICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwK
ICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLAogICAgICAgIDEsIDEsIDEsIDEs
IDEKICAgIH0gOwoKc3RhdGljIGNvbnN0IGZsZXhfaW50MzJfdCB5eV9tZXRhWzY5XSA9CiAgICB7
IDAsCiAgICAgICAgMSwgMSwgMiwgMSwgMSwgMSwgMSwgMSwgMSwgMSwKICAgICAgICAxLCAzLCAz
LCAzLCA0LCA0LCAxLCA0LCA0LCA0LAogICAgICAgIDQsIDQsIDQsIDMsIDMsIDMsIDMsIDMsIDMs
IDMsCiAgICAgICAgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywKICAgICAgICAzLCAzLCAz
LCAzLCA0LCA0LCA0LCA0LCA0LCA0LAogICAgICAgIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMs
IDMsCiAgICAgICAgMywgMywgMywgMywgMywgMywgMywgMQogICAgfSA7CgpzdGF0aWMgY29uc3Qg
ZmxleF9pbnQxNl90IHl5X2Jhc2VbMTAzNV0gPQogICAgeyAwLAogICAgICAgIDAsIDY3LCAyMzM5
LCA2OCwgNjksIDcyLCA3NCwgNzQsIDIzMzMsIDc5LAogICAgIDIzNDAsIDIzNDMsIDIzNDMsIDIz
NDMsIDgxLCA4NSwgNzgsIDkwLCA4NSwgOTQsCiAgICAgIDEwMywgMjMyMiwgMTA4LCAxMjksIDEz
MywgMTM2LCAxNDIsIDE1MSwgMTU2LCAxNDUsCiAgICAgIDE2MCwgMTY2LCAxNjksIDE3MiwgMTc1
LCAxNzgsIDE4NCwgMjA2LCAyMTIsIDIxNywKICAgICAgMTgxLCAyMjcwLCA5NCwgMjU4LCAyMzQz
LCAyMzQzLCAxNjksIDIzMTUsIDIzNDMsIDIzNDMsCiAgICAgMjMyMiwgMjM0MywgMjM4LCAyNDcs
IDI1MCwgMjg4LCAyOTEsIDI5NiwgMjk5LCAzMDIsCiAgICAgIDMwNiwgMzExLCAzMTYsIDMyMCwg
MzM4LCAyMDIsIDIzMTMsIDIzNDMsIDIxMCwgMjMxMiwKICAgICAgMTk2LCAyMzQzLCAyMzcsIDIz
NDMsIDM1NiwgMzY5LCAyMjEsIDIzNSwgMzg1LCAyMzEsCiAgICAgIDM5OCwgMjQyLCAyMzQzLCAw
LCAyMzQzLCAwLCAyMzQzLCAzMjUsIDM0NSwgMzM0LAogICAgICAzOTAsIDM4MSwgMzc2LCA0MDMs
IDQxMiwgNDE1LCA0MTgsIDQyNCwgNDI5LCA0MzIsCgogICAgICA0MzcsIDQ0MCwgNDQ0LCA0NDcs
IDQ1MCwgNDU4LCA0NTMsIDQ2MSwgNDczLCA0NzksCiAgICAgIDQ5MywgNTAxLCA1MDQsIDUwNywg
NTEzLCA1MTYsIDUyMCwgNTIzLCAyMzQzLCAyNTEsCiAgICAgICAgMCwgMjU5LCAyMzA3LCA5Mywg
NDAsIDU4LCAyMjgzLCA4MSwgMjE1LCAyMjc4LAogICAgICAyNDAsIDIyNzEsIDQ4NSwgMjI4NCwg
MjI3OSwgOTksIDIyNzAsIDIyNzMsIDMxNSwgMjMwMywKICAgICAyMjY3LCAyMzQzLCA1MzQsIDUz
OCwgNTQxLCA1NDQsIDU1MCwgNTU2LCA1NjUsIDU2OCwKICAgICAgNTcxLCA1NzQsIDU3OCwgNTgx
LCA1ODQsIDU5MiwgNTk1LCA2MDIsIDYxMywgMzI1LAogICAgIDIzMDEsIDIyNTYsIDQxNiwgMjI5
OSwgMTU2LCA2MTQsIDYyOSwgNDY1LCA2MiwgNjQxLAogICAgICA2NDYsIDAsIDAsIDY1MywgNjU4
LCA2NjIsIDY2NSwgNjc2LCA2NzksIDY4NSwKICAgICAgNjg4LCA2OTEsIDY5NSwgNjk4LCA3MDMs
IDcwOSwgNzEyLCA3MTUsIDcxOCwgNzI1LAogICAgICA3MjksIDczOSwgNzQyLCA3NDgsIDc1Mywg
NzU2LCA3NTksIDc2MiwgNzY3LCA3NzAsCgogICAgICA3NzQsIDc4MywgNzg2LCA3OTQsIDc5OCwg
MjI5NCwgMjI3MiwgMjI1NiwgMTg2LCAyMjU5LAogICAgICA0ODUsIDIyNjYsIDIyNjgsIDIyNjYs
IDYyMSwgMjI2OCwgMzA2LCAyMjUwLCAyMzQzLCAyMjUyLAogICAgICAgNjEsIDIyNjMsIDMyMSwg
MjI0NywgMjI2MCwgMjI0NSwgMjI1OSwgMjIzLCAyMjQ0LCAzNjIsCiAgICAgMjI1MSwgMjI0MSwg
MjI0NiwgMjI0MiwgMjI0NywgMjIzOSwgMjI1MCwgODE0LCA4MTcsIDgyMCwKICAgICAgODI1LCA4
MzIsIDgzNywgODQwLCA4NDMsIDg0NiwgODQ5LCA4NTUsIDg1OCwgODY0LAogICAgICA4NjcsIDg3
OSwgODg1LCAyMjQ5LCA4ODUsIDg5MCwgODk3LCA5MDUsIDkxNCwgOTE3LAogICAgICA5MjYsIDky
OSwgOTM5LCA5NDIsIDk0NSwgOTQ5LCA5NTQsIDk1NywgOTYwLCA5NjMsCiAgICAgIDk2NiwgOTY5
LCA5NzIsIDk3NSwgOTc5LCA5ODIsIDk4NiwgOTkyLCA5OTUsIDEwMDMsCiAgICAgMTAyMCwgMTAy
MywgMTAyNiwgMTAzNiwgMTAzOSwgMTA0MiwgMTA0NywgMjM0MywgMjI0NywgMjIzNywKICAgICAy
MjQ1LCAyMjQ0LCAyMjQ0LCAyMjMyLCAyOTIsIDIyMjMsIDIyNDQsIDIyMjcsIDIzNDMsIDIyMzgs
CgogICAgIDIyMjgsIDIyMjUsIDIyMjIsIDIyMjgsIDIyMjIsIDIyNjEsIDIyMjIsIDIyMjQsIDIy
MTYsIDIyMjgsCiAgICAgMjIyNywgMjIxNiwgMjIyMiwgMjIxMCwgMjIxOSwgMjIxNywgMjIwOCwg
MjIxOCwgMjIwNiwgMjQxLAogICAgIDIyMDgsIDIyMDUsIDIyNDUsIDIyMTUsIDIyMTQsIDIyMDAs
IDIxOTksIDIzNDMsIDEwNTAsIDEwNTMsCiAgICAgMTA1NiwgMTA1OSwgMTA2MywgMTA2NiwgMTA3
MCwgMTA3NiwgMTA3OSwgMTA4NCwgMTA5MSwgMTA5NiwKICAgICAxMTAzLCAxMTExLCAyMzQzLCAx
MDk5LCAxMTI1LCAxMTI4LCAxMTMzLCAxMTM3LCAxMTQxLCAxMTQ0LAogICAgIDExNTMsIDExNjQs
IDExNzEsIDExNzQsIDExNzcsIDExODAsIDExODMsIDExODYsIDExODksIDExOTIsCiAgICAgMTE5
NiwgMTE5OSwgMTIwMiwgMTIwNSwgMTIxMCwgMTIxMywgMTIxNiwgMTIxOSwgMTIyMiwgMTIzMiwK
ICAgICAxMjQyLCAxMjQ5LCAxMjUzLCAyMTk5LCAyMjI2LCAyMTk2LCAyMjAyLCAyMTkzLCAyMTk3
LCAyMTk2LAogICAgIDIyMDQsIDIxOTksIDIxODgsIDIxODgsIDIxOTAsIDIxODgsIDIyMDIsIDIx
ODMsIDIxOTYsIDIxOTksCiAgICAgMjE4NSwgMjE4MiwgMjE3OCwgMjE4NywgMjE4MiwgMjE4OCwg
MjE4OCwgMjE3OCwgMjE4MCwgMjE3NiwKCiAgICAgMjE3OCwgMjE4MiwgMjE3OCwgMjIwNCwgMjE3
MiwgMjE2MSwgMjE3OCwgMjE3NywgMjE2NywgMjE2OSwKICAgICAgNDY5LCA0MzUsIDIxNjAsIDEy
NTYsIDEyNTksIDEyNjIsIDEyNzAsIDEyNzMsIDEyNzYsIDEyNzksCiAgICAgMTI4OCwgMTI5MSwg
MTI5NiwgMTI5OSwgMTMwMiwgMTMwOSwgMTMxMiwgMTMyNiwgMTMyMiwgMTM0NywKICAgICAxMzUy
LCAxMzU1LCAxMzU4LCAxMzYxLCAxMzY4LCAxMzc3LCAxMzgwLCAxMzgzLCAxMzg2LCAxMzg5LAog
ICAgIDEzOTIsIDEzOTUsIDEzOTgsIDE0MDEsIDE0MDQsIDE0MTEsIDE0MTQsIDE0MTcsIDE0MjEs
IDIxNjEsCiAgICAgMjE1NCwgMTQyMCwgMjE3MSwgMjE2NCwgMjE1NywgMjE2MiwgMjE1NiwgMjE1
OCwgMjE1OSwgMjE1MywKICAgICAyMTUwLCAyMTQ5LCAyMTYzLCAyMTQ5LCAyMTYzLCAyMTQzLCAy
MTU4LCAyMTQzLCAyMTU2LCAyMTU4LAogICAgIDIxNDEsIDIxNDgsIDIxNTIsIDIxNTEsIDIxNDks
IDIxNDAsIDIxNDcsIDIxMzcsIDIxMzcsIDIxMzYsCiAgICAgMjEzOSwgMjEyOSwgMjEzMCwgMjE2
OSwgMjE0MCwgMjEzNCwgMjEyOCwgMjEzNiwgMjEyNiwgMjEyNSwKICAgICAyMTM3LCAxNDI5LCAx
NDMzLCAxNDM3LCAxNDQ1LCAxNDU1LCAxNDYxLCAxNDY2LCAxNDc1LCAxNDc5LAoKICAgICAxNDgz
LCAxNDg4LCAxNDkxLCAxNDk1LCAxNTAyLCAxNTA1LCAxNTIwLCAxNTA4LCAxNTI4LCAxNTMxLAog
ICAgIDE1MzQsIDE1MzcsIDE1NDIsIDE1NDcsIDE1NTAsIDE1NTksIDE1NjIsIDE1NjgsIDE1NzEs
IDE1NzQsCiAgICAgMTU3OSwgMTU4MiwgMTU4NSwgMTU4OCwgMTU5MSwgMjE2MSwgMjE0OSwgMjEx
NiwgMjEyNiwgMjEyOCwKICAgICAyMTI3LCAyMTE1LCAyMTI5LCAyMTI0LCAyMTE3LCAyMDk0LCAy
MDg0LCAyMDk0LCAyMDgyLCAyMDkwLAogICAgIDIwODksIDIwOTIsIDIwNzgsIDIwOTAsIDIwNzgs
IDIwODgsIDIwODYsIDIzNDMsIDIwODUsIDIwNzgsCiAgICAgMjA4MywgMjA3NSwgMjA5MCwgMjEw
NiwgNTQwLCAyMDgwLCAyMTA0LCAyMDYzLCAyMzQzLCAyMDY5LAogICAgIDIwNTksIDIwNjgsIDIw
NTcsIDIwNjAsIDIwNjgsIDIwNTksIDIwNjcsIDIwNjksIDIwNjQsIDIwNDksCiAgICAgMjA1NCwg
MTU5NSwgMTYwMSwgMTYwNCwgMTYxMSwgMTYxNywgMTYyMiwgMTYyOCwgMTYzMSwgMTYzNCwKICAg
ICAxNjQyLCAxNjQ1LCAxNjQ4LCAxNjUxLCAxNjU1LCAxNjczLCAxNjY3LCAxNjc2LCAxNjgzLCAx
Njg5LAogICAgIDE2OTIsIDE3MDAsIDE3MDgsIDE3MTEsIDE3MTQsIDE3MTcsIDE3MjIsIDE3MjUs
IDE3MjgsIDE3MzEsCgogICAgIDIwNTAsIDIwNTgsIDIwNTIsIDIwNDYsIDIwMzEsIDIwMjQsIDIw
MTMsIDIwMDQsIDIzNDMsIDE5NzYsCiAgICAgMTk4MiwgNDEwLCAyMzQzLCA2MTYsIDE5NjUsIDE5
NjMsIDE5NDYsIDIzNDMsIDIzNDMsIDE5NjksCiAgICAgMTkyOCwgMjM0MywgMjM0MywgMTkzMiwg
MjM0MywgMTkzNSwgMTkxMiwgMTkwOSwgMTg5NSwgMTkwMywKICAgICAxODk1LCAxODgxLCAxODgy
LCAxODc0LCAxODY0LCAxODQzLCAxODMyLCAxODQyLCAyMzQzLCAxODQwLAogICAgIDE4MzgsIDE4
MzgsIDE4MTksIDE3ODUsIDE4MjEsIDE3MzQsIDE3MzcsIDE3NDEsIDE3NDQsIDE3NDcsCiAgICAg
MTc1MCwgMTc1NSwgMTc2MiwgMTc1OCwgMTc2OCwgMTc3MiwgMTc3NSwgMTc3OCwgMTc4MSwgMTc5
MywKICAgICAxNzk2LCAxODA3LCAxODEwLCAxODE0LCAxODE5LCAxODIyLCAxODI1LCAxODMyLCAx
ODM3LCAxNzkyLAogICAgIDE3NjEsIDE3NjYsIDE3NTEsIDE3NTYsIDE3ODIsIDE3MzYsIDE3NDgs
IDE3MzQsIDE3MzMsIDE3MTcsCiAgICAgMTcwNywgMTY3NSwgMTY2OCwgMTY1MiwgMTY1OSwgMTY1
MSwgNDU1LCAxNjQ5LCAxNjM4LCAxNjM3LAogICAgIDIzNDMsIDE2MzMsIDE2MzUsIDE2MjgsIDE2
MzAsIDE2NDcsIDE2MjIsIDE1OTEsIDE1OTgsIDE2MDQsCgogICAgIDE1ODEsIDIzNDMsIDE1ODgs
IDIzNDMsIDIzNDMsIDE1ODMsIDIzNDMsIDE2MDEsIDE1ODEsIDE4NDAsCiAgICAgMTg0MywgMTg0
NywgMTg1MCwgMTg1MywgMTg1OCwgMTg2MSwgMTg2NCwgMTg2OCwgMTg3MSwgMTg4NCwKICAgICAx
ODkxLCAxODgwLCAxODk1LCAxODk4LCAxOTAyLCAxOTA4LCAxOTExLCAxOTE0LCAxNTcyLCAxNTcw
LAogICAgIDE1NjIsIDE1OTEsIDE1NzAsIDE1MjAsIDE1MjgsIDE1NTAsIDE1MzcsIDE1MDMsIDE0
OTksIDQ2NSwKICAgICAxNTA1LCAxNDc2LCAxNDc2LCAyMzQzLCAyMzQzLCAxNDcyLCAxNDgwLCAx
NDc3LCAxNDc0LCAxNDY1LAogICAgIDE0NTcsIDE0NDksIDE0NDUsIDE0MzcsIDE0MjUsIDE0MzIs
IDIzNDMsIDE0MzEsIDE0MTYsIDE0NTAsCiAgICAgMjM0MywgMTQwNSwgMTQwNywgMTQwMCwgMTkx
NywgMTkyMSwgMTkyOSwgMTkzMiwgMTkzNSwgMTk0MywKICAgICAxOTQ2LCAxOTQ5LCAxOTUyLCAx
OTU4LCAxOTYxLCAxOTY0LCAxOTY5LCAxOTc5LCAyMzQzLCAyMzQzLAogICAgIDEzOTQsIDEzODks
IDEzODEsIDEzNzQsIDE0MTcsIDEzNTcsIDEzNjEsIDEzMzksIDEzMzAsIDEzMjIsCiAgICAgMTMx
NiwgMTMyMCwgMTMzMiwgMTMwMywgMTMwNCwgMTMwNCwgMTI5OSwgMTMyNCwgMTI4MCwgMjM0MywK
CiAgICAgMjM0MywgMjM0MywgMTI4OCwgMTI4NiwgMjM0MywgMTI3NywgMTI3NiwgMTI2OSwgMTI5
OCwgMTI3MCwKICAgICAxMjU5LCAxOTg0LCAxOTg3LCAxOTkwLCAxOTk0LCAxOTk3LCAyMDAwLCAy
MDAzLCAyMDA2LCAyMDEyLAogICAgIDEyNzgsIDEyNDYsIDEyNDUsIDEyMjMsIDEyMTYsIDEyMjcs
IDEyMTEsIDEyMTAsIDEyMTUsIDEyMDQsCiAgICAgMTE5MCwgMTE5OSwgMTE3OSwgMTE4MCwgMjM0
MywgMTE5MCwgMjM0MywgMTE3OSwgMTE1NCwgMTEyMSwKICAgICAxMTI0LCAxMTIxLCAxMTExLCAx
MTIzLCAxMTEwLCAxMTA4LCAxMTA5LCAyMDE1LCAyMDIwLCAyMDIzLAogICAgIDIwMjksIDIwMzIs
IDIwMzYsIDExMDIsIDEwODUsIDEwODQsIDEwNzAsIDEwODEsIDEwNzYsIDEwNTgsCiAgICAgMTA4
OSwgMTA1MSwgMTA4NiwgMTA1MiwgMTA0NywgMTAyOCwgMTAzMiwgMTAzNywgMTAzMywgOTk5LAog
ICAgIDEwMjYsIDk4MSwgOTgyLCA5ODUsIDk4MCwgOTc4LCA5NjIsIDk3NCwgMjA0MSwgMjA0NCwK
ICAgICAyMDQ3LCAyMDUwLCA5NzQsIDk3MSwgOTY5LCA5OTMsIDk2MiwgOTYxLCA5MTAsIDkwNiwK
ICAgICAgOTAxLCA4OTAsIDkyNCwgODc5LCA4NzUsIDg2NiwgODY1LCA4NzUsIDg2NSwgODYyLAoK
ICAgICAgODY2LCA4NjcsIDg0NCwgMjM0MywgODU2LCA4NDYsIDgyOCwgMjA1NiwgMjA2MCwgMjA2
NiwKICAgICAgODM4LCA4MjUsIDgyNCwgODI0LCA4MjUsIDgxMywgODE2LCA4MTYsIDc5OCwgNzk2
LAogICAgICA3ODIsIDc4NCwgNzc1LCA3NjEsIDc5NywgMjM0MywgNzk2LCA3NjYsIDc2NCwgNzQ3
LAogICAgICA3NTEsIDIzNDMsIDc1NCwgNzgxLCAyMDY5LCAyMDcyLCAyMzQzLCA3NzMsIDc3Miwg
NzQyLAogICAgICA3MjUsIDc1NywgMjM0MywgNjk1LCA3MzcsIDY4OCwgNjk3LCAyMzQzLCAyMzQz
LCA2OTUsCiAgICAgIDY3NywgNjc1LCA2NzAsIDIzNDMsIDY2NSwgNjU2LCA2OTMsIDYzNywgMjA3
NSwgMjA4MCwKICAgICAgNjM2LCA2MjgsIDYzNiwgNjYxLCA2MDEsIDU5NSwgNTkxLCA1ODYsIDU5
MywgMjM0MywKICAgICAgNTkxLCA1ODQsIDIzNDMsIDU3MywgNTcxLCA1NjUsIDU3MywgMjA4NCwg
MjA4NywgNTcxLAogICAgICA1NzAsIDIzNDMsIDU1MywgNTYyLCA1NTMsIDU1MiwgNTc5LCAyMzQz
LCA1MjMsIDUyMiwKICAgICAgNTAyLCA1MDMsIDQ3NCwgNDYxLCAyMDkzLCA0NjAsIDQ0OSwgNDQ3
LCA0MzksIDIzNDMsCgogICAgICA0MzMsIDM4MiwgMjM0MywgMjM0MywgMzc4LCAzMjgsIDMxOCwg
MjM0MywgMjM0MywgMjM0MywKICAgICAgMjkzLCAyMzQzLCAyMzQzLCAyODcsIDE4NCwgMTg0LCAy
MzQzLCAyMzQzLCAxNTgsIDEyOCwKICAgICAgMTEyLCAyMzQzLCA4NCwgMjM0MywgMjM0MywgMjM0
MywgMjE0OCwgMjE1MiwgMjE1NiwgMjE2MCwKICAgICAyMTYyLCAyMTY0LCAyMTY4LCA4NgogICAg
fSA7CgpzdGF0aWMgY29uc3QgZmxleF9pbnQxNl90IHl5X2RlZlsxMDM1XSA9CiAgICB7IDAsCiAg
ICAgMTAyNiwgMSwgMTAyNywgMTAyNywgMTAyOCwgMTAyOCwgMSwgNywgMSwgMSwKICAgICAxMDI2
LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI5LCAxMDMwLCAxMDI2LCAxMDMxLCAxMDI2LCAxMDI2LAog
ICAgIDEwMjYsIDEwMjYsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIs
IDEwMzIsCiAgICAgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAz
MiwgMTAzMiwgMTAzMiwKICAgICAxMDMyLCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAx
MDI2LCAxMDI2LCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMzIsIDEwMzIsIDEwMzIs
IDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsCiAgICAgMTAzMiwgMTAzMiwgMTAzMiwgMTAz
MiwgMTAzMiwgMTAyNiwgNDQsIDEwMjYsIDEwMjYsIDQ0LAogICAgIDEwMjksIDEwMjYsIDEwMzAs
IDEwMjYsIDEwMjYsIDEwMjYsIDEwMzEsIDEwMzEsIDEwMzEsIDEwMzEsCiAgICAgMTAzMSwgMTAz
MSwgMTAyNiwgMTAzMywgMTAyNiwgMTAzNCwgMTAyNiwgMTAzMiwgMTAzMiwgMTAzMiwKICAgICAx
MDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMy
LAoKICAgICAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAx
MDMyLCAxMDMyLAogICAgIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIs
IDEwMzIsIDEwMjYsIDEwMjYsCiAgICAgICA0NCwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAy
NiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAx
MDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMzIs
IDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsCiAgICAgMTAzMiwgMTAz
MiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAyNiwKICAgICAg
IDQ0LCAxMDI2LCAxMDI2LCA0NCwgMTAyNiwgMTAyNiwgMTAyNiwgMTAzMSwgMTAyNiwgMTAzMSwK
ICAgICAxMDMxLCAxMDMzLCAxMDM0LCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMy
LCAxMDMyLAogICAgIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEw
MzIsIDEwMzIsIDEwMzIsCiAgICAgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwg
MTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwKCiAgICAgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAz
MiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAx
MDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEwMjYs
IDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAy
NiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAzMiwgMTAzMiwgMTAzMiwK
ICAgICAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMy
LCAxMDMyLAogICAgIDEwMzIsIDEwMzIsIDEwMzIsIDEwMjYsIDEwMjYsIDEwMzIsIDEwMzIsIDEw
MzIsIDEwMzIsIDEwMzIsCiAgICAgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwg
MTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwKICAgICAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMy
LCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLAogICAgIDEwMzIsIDEwMzIsIDEwMzIsIDEw
MzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNiwgMTAyNiwg
MTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKCiAgICAgMTAy
NiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwK
ICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2
LCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEw
MjYsIDEwMzIsIDEwMzIsCiAgICAgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwg
MTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwKICAgICAxMDMyLCAxMDMyLCAxMDI2LCAxMDMyLCAxMDMy
LCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLAogICAgIDEwMzIsIDEwMzIsIDEwMzIsIDEw
MzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsCiAgICAgMTAzMiwgMTAzMiwg
MTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwKICAgICAxMDMy
LCAxMDMyLCAxMDMyLCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LAog
ICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYs
IDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAy
NiwgMTAyNiwgMTAyNiwKCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwg
MTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDMyLCAxMDMy
LCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLAogICAgIDEwMzIsIDEwMzIsIDEwMzIsIDEw
MzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsCiAgICAgMTAzMiwgMTAzMiwg
MTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwKICAgICAxMDMy
LCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDI2LAog
ICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYs
IDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAy
NiwgMTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAx
MDI2LCAxMDI2LCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYs
IDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNiwgMTAzMiwgMTAzMiwgMTAz
MiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwKCiAgICAgMTAzMiwgMTAzMiwg
MTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwKICAgICAxMDMy
LCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLAog
ICAgIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYs
IDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAy
NiwgMTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAx
MDI2LCAxMDI2LCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYs
IDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAy
NiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDMyLCAx
MDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLAogICAgIDEwMzIs
IDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsCiAg
ICAgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwg
MTAzMiwKCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAy
NiwgMTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAx
MDI2LCAxMDI2LCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYs
IDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAy
NiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDI2LCAx
MDI2LCAxMDI2LCAxMDI2LCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLAogICAgIDEwMzIs
IDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsCiAg
ICAgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwg
MTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2
LCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEw
MjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwg
MTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAy
NiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAzMiwKICAgICAxMDMyLCAxMDMyLCAx
MDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLAogICAgIDEwMzIs
IDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMzIsIDEwMjYsIDEwMjYsCiAg
ICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwg
MTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2
LCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEw
MjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAzMiwg
MTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwgMTAzMiwKICAgICAxMDMyLCAxMDMyLCAxMDMyLCAxMDMy
LCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEw
MjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNiwg
MTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKCiAg
ICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwg
MTAyNiwKICAgICAxMDI2LCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMyLCAxMDMy
LCAxMDMyLCAxMDMyLAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEw
MjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwg
MTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2
LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDMyLCAxMDMyLCAxMDMyLAogICAgIDEwMzIsIDEwMzIsIDEw
MzIsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNiwg
MTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKICAg
ICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDMyLCAx
MDMyLAogICAgIDEwMzIsIDEwMzIsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYs
IDEwMjYsIDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAy
NiwgMTAyNiwgMTAyNiwgMTAyNiwKCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwg
MTAyNiwgMTAyNiwgMTAzMiwgMTAzMiwgMTAzMiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2
LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEw
MjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNiwg
MTAyNiwgMTAyNiwgMTAyNiwgMTAzMiwgMTAzMiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKICAg
ICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAx
MDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYs
IDEwMzIsIDEwMzIsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAy
NiwgMTAyNiwgMTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAx
MDI2LCAxMDI2LCAxMDMyLCAxMDMyLCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYs
IDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAy
NiwgMTAyNiwgMTAzMiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKCiAgICAgMTAyNiwg
MTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKICAg
ICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAx
MDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDAsIDEwMjYsIDEwMjYsIDEw
MjYsIDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNgogICAgfSA7CgpzdGF0aWMgY29u
c3QgZmxleF9pbnQxNl90IHl5X254dFsyNDEyXSA9CiAgICB7IDAsCiAgICAgICAxMiwgMTMsIDE0
LCAxMywgMTUsIDEyLCAxNiwgMTIsIDEyLCAxMiwKICAgICAgIDEyLCAxNywgMTgsIDE5LCAyMCwg
MjEsIDIyLCAyMywgMjMsIDIzLAogICAgICAgMjMsIDIzLCAyMywgMjMsIDIzLCAyMywgMjMsIDIz
LCAyMywgMjMsCiAgICAgICAyNCwgMjMsIDIzLCAyNSwgMjMsIDI2LCAyMywgMjMsIDIzLCAyMywK
ICAgICAgIDIzLCAyMywgMjMsIDIzLCAyMywgMjcsIDI4LCAyOSwgMzAsIDMxLAogICAgICAgMjMs
IDIzLCAzMiwgMjMsIDMzLCAyMywgMzQsIDM1LCAzNiwgMjMsCiAgICAgICAzNywgMzgsIDM5LCA0
MCwgNDEsIDIzLCAyMywgNDIsIDQzLCA0NywKICAgICAgIDQ2LCA1MCwgNDQsIDQ4LCA1MCwgNjYs
IDI1NSwgMjU1LCA1MSwgNjcsCiAgICAgICA2OSwgNTEsIDUyLCA3MiwgNzAsIDcyLCA2OCwgNzQs
IDIxMiwgMTczLAogICAgICAgNzUsIDc0LCA3NiwgNzYsIDgzLCAxMjAsIDUzLCAyMTMsIDg0LCAx
MjEsCgogICAgICAyMTcsIDc3LCA3OCwgNzcsIDc5LCA3OSwgNzUsIDMwOCwgNzYsIDc2LAogICAg
ICAgNTQsIDgxLCA4MiwgMzA5LCAyMTQsIDc1LCA4NSwgNzYsIDc2LCA3NywKICAgICAgIDgwLCA3
NywgMjEwLCAyMTUsIDU1LCA4NSwgNTYsIDU3LCA1OCwgMjE4LAogICAgICAgNTksIDYwLCAxMDI1
LCA2MSwgNjIsIDYzLCA2NCwgNjUsIDgxLCA4MiwKICAgICAgIDc3LCA4MCwgNzcsIDg1LCA3Nywg
ODAsIDc3LCA3NywgODAsIDc3LAogICAgICAyMTEsIDIzMywgODUsIDc3LCA4MCwgNzcsIDc3LCA4
MCwgNzcsIDg2LAogICAgIDEwMjQsIDkxLCA3NywgODAsIDc3LCAyMzQsIDg5LCA3NywgODAsIDc3
LAogICAgICAxMzksIDc3LCA4MCwgNzcsIDE0MCwgMTAyMywgOTAsIDc3LCA4MCwgNzcsCiAgICAg
ICA3NywgODAsIDc3LCA3NywgODAsIDc3LCA3NywgODAsIDc3LCA3NywKICAgICAgIDgwLCA3Nywg
NzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzIsIDkyLAoKICAgICAgIDcyLCA5NywgOTMsIDE2MCwg
OTksIDk0LCAxMDIyLCAxNjEsIDk1LCAyOTEsCiAgICAgICA5OCwgMTYzLCAyNTQsIDk2LCAxMDAs
IDE2NCwgMTAzLCA3NywgODAsIDc3LAogICAgICAyOTIsIDIxNSwgMTAxLCA3NywgODAsIDc3LCAx
MDIsIDExOCwgNzcsIDgwLAogICAgICAgNzcsIDEwMjEsIDc3LCAxMDQsIDc3LCAxMDcsIDEwOCwg
MTA1LCAxMDksIDc0LAogICAgICAxMDYsIDEwMjAsIDc3LCA3NCwgNzcsIDExMCwgNzcsIDE2OCwg
NzcsIDc3LAogICAgICAgODAsIDc3LCAxMjAsIDc3LCAxMTEsIDc3LCAxMjEsIDExMiwgNzcsIDgw
LAogICAgICAgNzcsIDc3LCA4MCwgNzcsIDIxOSwgMTEzLCA0MDUsIDMxNywgMTE1LCAxMTYsCiAg
ICAgIDIyMCwgMjIxLCAxMTQsIDQwNiwgMTE3LCAxMjIsIDEyMywgMTI0LCAxMjUsIDEyNiwKICAg
ICAgMTI3LCAxMjgsIDE0MywgMTI5LCAyMjMsIDMxOCwgMTMwLCAxMzEsIDIyNCwgMTMyLAogICAg
ICAxMzMsIDIwNiwgMTM0LCAxMzUsIDEzNiwgMTM3LCAxMzgsIDIyNSwgMTQ1LCA3NywKCiAgICAg
ICA4MCwgNzcsIDc3LCA4MCwgNzcsIDIwNywgMTQ0LCA3NywgODAsIDc3LAogICAgICAgNzcsIDgw
LCA3NywgNzcsIDgwLCA3NywgMTM5LCA3NywgODAsIDc3LAogICAgICAxNDAsIDIwOCwgNzcsIDgw
LCA3NywgMzA0LCAxNjAsIDc3LCA4MCwgNzcsCiAgICAgIDE2MSwgNzcsIDgwLCA3NywgMTAxOSwg
MTQ2LCA3NywgODAsIDc3LCAxNDcsCiAgICAgIDE0OCwgMTAxOCwgMzA1LCAxNTAsIDEwMSwgNzcs
IDgwLCA3NywgMTQ5LCA3NywKICAgICAgIDgwLCA3NywgMzgwLCAxMDIsIDE1MywgMzgxLCA3Nywg
ODAsIDc3LCAxNTQsCiAgICAgIDE1MSwgMTUyLCAxMDcsIDE1NSwgMTExLCAxMDksIDEwMTcsIDEx
MiwgMTU2LCAxNzUsCiAgICAgIDE2NiwgMTY2LCAxMTAsIDE3NCwgMzExLCAxMTMsIDExNSwgMTY3
LCA4NSwgMzEyLAogICAgICAxNTgsIDc1LCAxNTcsIDc2LCA3NiwgMTAxNiwgMTU5LCA3NywgODAs
IDc3LAogICAgICAxMTYsIDg1LCA3NywgODAsIDc3LCAxMTcsIDc3LCAxMDE1LCA3NywgNzksCgog
ICAgICAgNzksIDc3LCA4MCwgNzcsIDE2NywgODUsIDgxLCA4MiwgMTY5LCAxNzAsCiAgICAgIDMy
MCwgNzcsIDE3MSwgMTcxLCA3NywgODAsIDc3LCAxNjMsIDg1LCAzMjEsCiAgICAgIDE3OCwgMTY0
LCAxNzYsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsIDc3LAogICAgICAgODAsIDc3LCA2ODAsIDgx
LCA4MiwgNzcsIDgwLCA3NywgMTc3LCAxMDE0LAogICAgICAgNzcsIDgwLCA3NywgNzcsIDgwLCA3
NywgNjgxLCAxNzksIDc3LCA4MCwKICAgICAgIDc3LCA3NywgODAsIDc3LCA0ODksIDc3LCA4MCwg
NzcsIDc3LCA4MCwKICAgICAgIDc3LCA3NywgODAsIDc3LCA3NywgODAsIDc3LCA0OTAsIDE4MCwg
NzcsCiAgICAgICA4MCwgNzcsIDc3LCA4MCwgNzcsIDc0NiwgNzcsIDE4MSwgNzcsIDc0NywKICAg
ICAgMTgyLCAxMDEzLCAxODMsIDE4NCwgNzcsIDgwLCA3NywgMTAxMiwgNDg3LCAxODUsCiAgICAg
ICA3NywgODAsIDc3LCA0ODgsIDEwMTEsIDE4OSwgMTg3LCAxMDEwLCAxODYsIDE4OCwKCiAgICAg
IDc5MCwgNzkxLCAxOTAsIDE5MiwgNzcsIDgwLCA3NywgMTkxLCAxMDA5LCAxMDA4LAogICAgICAx
OTMsIDE5NCwgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsIDgwLAogICAgICAgNzcsIDEwMDcs
IDEwMDYsIDE5NiwgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywKICAgICAgMTk1LCA3NywgODAsIDc3
LCA3NywgODAsIDc3LCAyMjcsIDE5NywgMjI4LAogICAgICAyOTQsIDI5NSwgMjI5LCAyOTYsIDIz
MCwgNzcsIDgwLCA3NywgMTk4LCA3NywKICAgICAgIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsIDgw
LCA3NywgMTAwNSwgNjI5LAogICAgICAxOTksIDc3LCA4MCwgNzcsIDYzMCwgMjAxLCAyMDAsIDc3
LCA4MCwgNzcsCiAgICAgMTAwNCwgMTAwMywgMjA0LCAyMDIsIDIwNSwgMjAzLCA3NywgODAsIDc3
LCA3NywKICAgICAgIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgMjM4LCA3NywKICAg
ICAgIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgMTAwMiwgMTAwMSwKCiAgICAgIDIz
OSwgMTAwMCwgMjQwLCA3NywgODAsIDc3LCA3NywgODAsIDc3LCA5OTksCiAgICAgIDk5OCwgMjQz
LCAyNDIsIDc3LCA4MCwgNzcsIDI0MSwgOTk3LCA5OTYsIDE4OSwKICAgICAgOTk0LCAyNDYsIDk5
MywgMjQ0LCA3NywgODAsIDc3LCA5OTIsIDE2NiwgMTY2LAogICAgICA5OTEsIDk5MCwgMjQ1LCAy
NDcsIDI0OSwgMTY3LCA4NSwgNjgyLCA5ODksIDE2OSwKICAgICAgMTY5LCA5ODgsIDI0OCwgMjU1
LCAyNTUsIDY4MywgOTg3LCAyNTAsIDk4NiwgOTg1LAogICAgICAyNTIsIDY4NCwgNzcsIDI1MSwg
NzcsIDE3MSwgMTcxLCA3NywgOTg0LCA3NywKICAgICAgMTcxLCAxNzEsIDE2NywgODUsIDc3LCA4
MCwgNzcsIDMwMCwgODIsIDc3LAogICAgICAgODAsIDc3LCAyNTMsIDc3LCA4MCwgNzcsIDc3LCA4
MCwgNzcsIDMwMSwKICAgICAgOTgzLCAyNTYsIDMwMiwgMjU3LCA5ODIsIDk4MSwgMjU4LCA3Nywg
ODAsIDc3LAogICAgICAgNzcsIDgwLCA3NywgOTgwLCA5NzcsIDgyLCA3NywgODAsIDc3LCA3NywK
CiAgICAgICA4MCwgNzcsIDc3LCA4MCwgNzcsIDI1OSwgNzcsIDgwLCA3NywgNzcsCiAgICAgICA4
MCwgNzcsIDk3NiwgOTc1LCA3NywgODAsIDc3LCA5NzQsIDk3MywgMjYwLAogICAgICAgNzcsIDgw
LCA3NywgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsCiAgICAgICA4MCwgNzcsIDk3MiwgMjY0
LCA5NzEsIDI2MSwgNzcsIDgwLCA3NywgMjYyLAogICAgICAgNzcsIDgwLCA3NywgOTcwLCA5Njks
IDI2MywgMjY1LCAyNjgsIDk2OCwgMjY2LAogICAgICAgNzcsIDgwLCA3NywgNzcsIDgwLCA3Nywg
OTY3LCA5NjYsIDI2NywgNzcsCiAgICAgICA4MCwgNzcsIDI2OSwgMjcwLCA3NywgODAsIDc3LCA3
NywgODAsIDc3LAogICAgICAgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgOTY1LCAyNzEsIDc3LCA4
MCwKICAgICAgIDc3LCA3NywgODAsIDc3LCA5NjQsIDc3LCA4MCwgNzcsIDI3MiwgOTYzLAogICAg
ICAyNzMsIDk2MiwgOTYxLCAyNzQsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsCgogICAgICA5NTgs
IDI3NSwgOTU3LCA5NTYsIDI3NiwgNzcsIDgwLCA3NywgOTU1LCA3NywKICAgICAgIDgwLCA3Nywg
OTU0LCA5NTMsIDI3NywgOTUyLCA5NTEsIDI3OCwgMjgyLCA5NTAsCiAgICAgIDI4MCwgMjc5LCAy
ODMsIDk0OSwgMjgxLCA3NywgODAsIDc3LCA3NywgODAsCiAgICAgICA3NywgNzcsIDgwLCA3Nywg
OTQ4LCAyODQsIDc3LCA4MCwgNzcsIDk0NywKICAgICAgOTQ2LCAyODYsIDI4NywgNzcsIDgwLCA3
NywgOTQ1LCAyODUsIDc3LCA4MCwKICAgICAgIDc3LCA3NywgODAsIDc3LCA3NywgODAsIDc3LCA3
NywgODAsIDc3LAogICAgICAgNzcsIDgwLCA3NywgOTQ0LCA5NDMsIDMzMCwgNzcsIDgwLCA3Nywg
NzcsCiAgICAgICA4MCwgNzcsIDk0MiwgOTQxLCAzMjksIDc3LCA4MCwgNzcsIDc3LCA4MCwKICAg
ICAgIDc3LCA5NDAsIDMzMiwgOTM5LCA5MzgsIDMzMywgOTM3LCA5MzQsIDMzNCwgMzMxLAogICAg
ICAgNzcsIDgwLCA3NywgOTMzLCAzMzYsIDMzNSwgNzcsIDgwLCA3NywgMjU1LAoKICAgICAgMjU1
LCA3NywgODAsIDc3LCA5MzIsIDkzMSwgMzM3LCA4NSwgNzcsIDgwLAogICAgICAgNzcsIDkzMCwg
MzM5LCA5MjksIDMzOCwgMzQwLCA3NywgODAsIDc3LCA5MjgsCiAgICAgIDM0NCwgOTI3LCAzNDEs
IDkyNiwgOTI1LCA3NywgODAsIDc3LCA3NywgODAsCiAgICAgICA3NywgMzQ2LCA5MjQsIDkyMywg
ODUsIDkyMiwgMzQ1LCA3NywgODAsIDc3LAogICAgICAgNzcsIDgwLCA3NywgOTIxLCA5MjAsIDM0
MiwgMzQ3LCAzNDgsIDM0OSwgMzUwLAogICAgICAgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzcs
IDgwLCA3NywgOTE5LAogICAgICAgNzcsIDgwLCA3NywgOTE4LCA5MTcsIDc3LCA4MCwgNzcsIDc3
LCA4MCwKICAgICAgIDc3LCA3NywgODAsIDc3LCA3NywgODAsIDc3LCA3NywgODAsIDc3LAogICAg
ICAgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgMzUxLAogICAgICAgNzcsIDgw
LCA3NywgNzcsIDgwLCA3NywgMzUzLCA3NywgODAsIDc3LAoKICAgICAgMzUyLCAzNTQsIDM1NSwg
NzcsIDgwLCA3NywgNzcsIDgwLCA3NywgOTE2LAogICAgICAzNTgsIDkxNSwgOTE0LCAzNTksIDc3
LCA4MCwgNzcsIDkxMywgMzU2LCA5MTIsCiAgICAgIDM2MCwgOTExLCA5MDcsIDM1NywgOTA2LCA5
MDUsIDM2MywgMzYxLCA5MDQsIDkwMywKICAgICAgMzY0LCA3NywgODAsIDc3LCA3NywgODAsIDc3
LCA3NywgODAsIDc3LAogICAgICAzNjIsIDM2NywgOTAyLCA5MDEsIDM2NiwgOTAwLCAzNjUsIDc3
LCA4MCwgNzcsCiAgICAgICA3NywgODAsIDc3LCA3NywgODAsIDc3LCA4OTksIDM2OCwgNzcsIDgw
LAogICAgICAgNzcsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsCiAgICAgICA3
NywgODAsIDc3LCAzNzAsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsCiAgICAgIDg5OCwgNzcsIDgw
LCA3NywgMzY5LCA4OTcsIDM3MSwgNzcsIDgwLCA3NywKICAgICAgIDc3LCA4MCwgNzcsIDg5Niwg
ODk1LCA3NywgODAsIDc3LCA0MTQsIDg5NCwKCiAgICAgIDg5MywgMzcyLCA3NywgODAsIDc3LCA4
OTIsIDM3MywgNzcsIDgwLCA3NywKICAgICAgIDc3LCA4MCwgNzcsIDQxNSwgNzcsIDgwLCA3Nywg
ODkxLCA4OTAsIDQxNywKICAgICAgODg5LCA0MTYsIDc3LCA4MCwgNzcsIDg4OCwgMzU3LCA0MTgs
IDQyMSwgNDI1LAogICAgICA4ODcsIDg4NiwgMzY0LCA4ODUsIDg4NCwgNDE5LCA3NywgODAsIDc3
LCA3NywKICAgICAgIDgwLCA3NywgNDIwLCAzNzAsIDc3LCA4MCwgNzcsIDQyMywgNzcsIDgwLAog
ICAgICAgNzcsIDQyMiwgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNDI3LCA4ODMsCiAgICAgIDg3
OCwgNDI2LCA4NzcsIDQyNCwgNzcsIDgwLCA3NywgODc2LCA0MjksIDQzMSwKICAgICAgODc1LCA4
NzQsIDQzMiwgODczLCA0MjgsIDc3LCA4MCwgNzcsIDg3MiwgNDMzLAogICAgICA4NzEsIDQzMCwg
NzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsIDgwLAogICAgICAgNzcsIDc3LCA4MCwgNzcsIDc3
LCA4MCwgNzcsIDc3LCA4MCwgNzcsCgogICAgICAgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgODcw
LCA3NywgODAsIDc3LAogICAgICAgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsIDgwLCA3Nywg
NDM0LAogICAgICA0MzUsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsCiAgICAg
ICA3NywgODAsIDc3LCA3NywgODAsIDc3LCA4NjksIDg2OCwgNDM5LCA4NjcsCiAgICAgIDg2Niwg
NDM2LCA0NDAsIDc3LCA4MCwgNzcsIDg2NSwgNDM3LCA4NjQsIDg2MywKICAgICAgNDM4LCA4NjIs
IDQ0MiwgNzcsIDgwLCA3NywgNDQxLCA4NjEsIDg2MCwgNDQzLAogICAgICAgNzcsIDgwLCA3Nywg
NDQ1LCA3NywgODAsIDc3LCA3NywgODAsIDc3LAogICAgICAgNzcsIDgwLCA3NywgNzcsIDgwLCA3
NywgODU5LCA0NDQsIDg1OCwgODU3LAogICAgICA0NDYsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcs
IDc3LCA4MCwgNzcsCiAgICAgICA3NywgODAsIDc3LCA0NDgsIDg1NiwgODU1LCA0NDksIDg1NCwg
NDQ3LCA3NywKCiAgICAgICA4MCwgNzcsIDc3LCA4MCwgNzcsIDg0NywgNDkzLCA3NywgODAsIDc3
LAogICAgICAgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgODQ2LCA4NDUsIDQ5MiwgNTAxLAogICAg
ICAgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgODQ0LCA0OTYsIDg0MywgNDk1LAogICAgICA0OTQs
IDg0MiwgODQxLCA3NywgODAsIDc3LCA4NDAsIDc3LCA4MCwgNzcsCiAgICAgIDUxMCwgODM5LCA0
NDEsIDgzOCwgNTAyLCA1MDQsIDUwNSwgODM3LCA4MzYsIDQ5NywKICAgICAgODM1LCA4MzQsIDQ5
OCwgNTAzLCA1MDYsIDQ5OSwgNTAwLCA1MDcsIDc3LCA4MCwKICAgICAgIDc3LCA1MDgsIDUwOSwg
NzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsCiAgICAgICA4MCwgNzcsIDc3LCA4MCwgNzcsIDUx
MiwgODMzLCA4MzIsIDUxMSwgNzcsCiAgICAgICA4MCwgNzcsIDgzMSwgNTE0LCA4MzAsIDgyOSwg
NTEzLCA4MjgsIDc3LCA4MCwKICAgICAgIDc3LCA3NywgODAsIDc3LCA3NywgODAsIDc3LCA3Nywg
ODAsIDc3LAoKICAgICAgIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsIDc3LAog
ICAgICAgODAsIDc3LCA3NywgODAsIDc3LCA3NywgODAsIDc3LCA4MjcsIDgyNiwKICAgICAgNTE1
LCA1MTYsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsIDc3LCA4MCwKICAgICAgIDc3LCA1MTgsIDc3
LCA4MCwgNzcsIDgyNSwgODI0LCA1MTcsIDUyOCwgNTI5LAogICAgICAgNzcsIDgwLCA3NywgODIz
LCA3NywgODAsIDc3LCA1MTksIDc3LCA4MCwKICAgICAgIDc3LCA4MjIsIDUyMCwgODIxLCA1MzAs
IDUzMSwgNzcsIDgwLCA3NywgNTMyLAogICAgICA1MjIsIDgxMSwgNTIzLCA4MTAsIDgwOSwgNTIx
LCA3NywgODAsIDc3LCA4MDgsCiAgICAgIDgwNywgNTI0LCA3NywgODAsIDc3LCA4MDYsIDU3Miwg
NzcsIDgwLCA3NywKICAgICAgODA1LCA4MDQsIDUyNSwgNTczLCA4MDMsIDU3NCwgNzcsIDgwLCA3
NywgNTc1LAogICAgICAgNzcsIDgwLCA3NywgODAyLCA3NywgODAsIDc3LCA4MDEsIDU3NiwgNzcs
CgogICAgICAgODAsIDc3LCA3NywgODAsIDc3LCA4MDAsIDc3LCA4MCwgNzcsIDc5OSwKICAgICAg
NTc4LCA1ODEsIDU4MywgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsCiAgICAgICA4MCwgNzcs
IDc5OCwgNTc3LCA3OTcsIDU3OSwgNTgyLCA1ODQsIDc5NiwgNzk1LAogICAgICA1ODUsIDc3LCA4
MCwgNzcsIDc5NCwgNTgwLCA1ODcsIDc5MywgNTg2LCA3NywKICAgICAgIDgwLCA3NywgNzcsIDgw
LCA3NywgNzcsIDgwLCA3NywgNzcsIDgwLAogICAgICAgNzcsIDc5MiwgNTkxLCA3NywgODAsIDc3
LCA3ODksIDU5MCwgNzcsIDgwLAogICAgICAgNzcsIDc3LCA4MCwgNzcsIDc4OCwgNTg4LCA3ODcs
IDU5MiwgNzg2LCA1ODksCiAgICAgICA3NywgODAsIDc3LCA3NywgODAsIDc3LCA3ODUsIDc4NCwg
NTkzLCA3NywKICAgICAgIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzgzLCA1OTQs
CiAgICAgICA3NywgODAsIDc3LCA3NywgODAsIDc3LCA3NywgODAsIDc3LCA3NywKCiAgICAgICA4
MCwgNzcsIDc3LCA4MCwgNzcsIDU5NiwgNzcsIDgwLCA3NywgNzgyLAogICAgICA3ODEsIDU5NSwg
NzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzgwLCA1OTgsCiAgICAgIDc3OSwgNTk3LCA3NywgODAs
IDc3LCA3NjQsIDc2MywgNTk5LCA3NywgODAsCiAgICAgICA3NywgNzYyLCA2MDAsIDc3LCA4MCwg
NzcsIDc2MSwgNzYwLCA2NDYsIDc3LAogICAgICAgODAsIDc3LCA3NywgODAsIDc3LCA3NywgODAs
IDc3LCA3NTksIDY0NywKICAgICAgNzU4LCA3NTcsIDY0OCwgNzcsIDgwLCA3NywgNzcsIDgwLCA3
NywgNzcsCiAgICAgICA4MCwgNzcsIDc3LCA4MCwgNzcsIDY0OSwgNzcsIDgwLCA3NywgNzU2LAog
ICAgICA2NTcsIDY1MCwgNzU1LCA2NTUsIDc1NCwgNzUzLCA2NTYsIDY1NCwgNzcsIDgwLAogICAg
ICAgNzcsIDY1MSwgNzUyLCA2NTIsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsCiAgICAgIDY1OCwg
NzUxLCA2NjAsIDY1MywgNzcsIDgwLCA3NywgNzUwLCA3NDksIDY1OSwKCiAgICAgICA3NywgODAs
IDc3LCA3NywgODAsIDc3LCA3NDgsIDc0NSwgNjYxLCA3NDQsCiAgICAgIDY2MywgNzcsIDgwLCA3
NywgNzQzLCA2NjIsIDc0MiwgNjY1LCA2NjQsIDc3LAogICAgICAgODAsIDc3LCA3NywgODAsIDc3
LCA3NywgODAsIDc3LCA3NywgODAsCiAgICAgICA3NywgNzQxLCA2NjcsIDc3LCA4MCwgNzcsIDc3
LCA4MCwgNzcsIDc3LAogICAgICAgODAsIDc3LCA3NywgODAsIDc3LCA3NywgODAsIDc3LCA3Nywg
ODAsCiAgICAgICA3NywgNjY2LCA3NywgODAsIDc3LCA3NywgODAsIDc3LCA3NywgODAsCiAgICAg
ICA3NywgNzcsIDgwLCA3NywgNzQwLCA2NjgsIDc3LCA4MCwgNzcsIDc3LAogICAgICAgODAsIDc3
LCA2NjksIDc3LCA4MCwgNzcsIDczOSwgNzM4LCA3MTAsIDc3LAogICAgICAgODAsIDc3LCA3Mzcs
IDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsIDc3LAogICAgICAgODAsIDc3LCA3NywgODAsIDc3LCA3
MTEsIDczNiwgNzM1LCA3MTIsIDcxNSwKCiAgICAgIDcxNiwgNzM0LCA3MTksIDczMywgNzcsIDgw
LCA3NywgNzcsIDgwLCA3NywKICAgICAgNzMyLCA3MTcsIDcyMCwgNzEzLCA3MTgsIDczMSwgNzMw
LCA3MTQsIDc3LCA4MCwKICAgICAgIDc3LCA3NywgODAsIDc3LCA3MjEsIDc3LCA4MCwgNzcsIDcy
MiwgNzIzLAogICAgICAgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzI5LAog
ICAgICA3MDksIDcyNiwgNzI3LCA3NywgODAsIDc3LCA3MDgsIDcyNSwgNzcsIDgwLAogICAgICAg
NzcsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsIDcyNCwgNzcsIDgwLAogICAgICAgNzcsIDc3LCA4
MCwgNzcsIDc3LCA4MCwgNzcsIDcwNywgNzI4LCA3NywKICAgICAgIDgwLCA3NywgNzcsIDgwLCA3
NywgNzcsIDgwLCA3NywgNzY5LCA3NywKICAgICAgIDgwLCA3NywgNzcsIDgwLCA3NywgNzA2LCA3
MDUsIDc2NiwgNzA0LCA3MDMsCiAgICAgIDc3MCwgNzcsIDgwLCA3NywgNzY4LCA3NywgODAsIDc3
LCA3MDIsIDc2NSwKCiAgICAgIDcwMSwgNzY3LCA3NywgODAsIDc3LCA3NzEsIDc3LCA4MCwgNzcs
IDc3LAogICAgICAgODAsIDc3LCA3NzIsIDc3LCA4MCwgNzcsIDcwMCwgNzc0LCA3NzUsIDc3LAog
ICAgICAgODAsIDc3LCA3NywgODAsIDc3LCA3NywgODAsIDc3LCA3NywgODAsCiAgICAgICA3Nywg
NzczLCA3NywgODAsIDc3LCA2OTksIDc3NywgNjk4LCA2OTcsIDc3NiwKICAgICAgIDc3LCA4MCwg
NzcsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcsIDY5NiwKICAgICAgNzc4LCA2OTUsIDY5NCwgODE1
LCA3NywgODAsIDc3LCA3NywgODAsIDc3LAogICAgICAgNzcsIDgwLCA3NywgNzcsIDgwLCA3Nywg
NjkzLCA4MTIsIDgxMywgNzcsCiAgICAgICA4MCwgNzcsIDc3LCA4MCwgNzcsIDc3LCA4MCwgNzcs
IDY5MiwgODE2LAogICAgICAgNzcsIDgwLCA3NywgNjkxLCA2OTAsIDgxNCwgODE4LCA2ODksIDY4
OCwgODE3LAogICAgICAgNzcsIDgwLCA3NywgNjg3LCA4MTksIDc3LCA4MCwgNzcsIDc3LCA4MCwK
CiAgICAgICA3NywgNzcsIDgwLCA3NywgODIwLCA3NywgODAsIDc3LCA3NywgODAsCiAgICAgICA3
NywgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywKICAgICAgNjg2LCA2ODUsIDg1
MSwgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNjc5LAogICAgICA4NTIsIDc3LCA4MCwgNzcsIDc3
LCA4MCwgNzcsIDY3OCwgODUzLCA4NDksCiAgICAgICA3NywgODAsIDc3LCA3NywgODAsIDc3LCA4
NDgsIDc3LCA4MCwgNzcsCiAgICAgIDg4MiwgODUwLCA3NywgODAsIDc3LCA3NywgODAsIDc3LCA3
NywgODAsCiAgICAgICA3NywgNzcsIDgwLCA3NywgNjc3LCA2NzYsIDg4MSwgNzcsIDgwLCA3NywK
ICAgICAgODc5LCA3NywgODAsIDc3LCA2NzUsIDY3NCwgODgwLCA3NywgODAsIDc3LAogICAgICAg
NzcsIDgwLCA3NywgNzcsIDgwLCA3NywgNzcsIDgwLCA3NywgOTA4LAogICAgICA2NzMsIDc3LCA4
MCwgNzcsIDkwOSwgNzcsIDgwLCA3NywgNzcsIDgwLAoKICAgICAgIDc3LCA2NzIsIDY3MSwgOTEw
LCA3NywgODAsIDc3LCA2NzAsIDY0NSwgNjQ0LAogICAgICA5MzYsIDY0MywgOTM1LCA2NDIsIDY0
MSwgNjQwLCA2MzksIDYzOCwgNjM3LCA2MzYsCiAgICAgIDYzNSwgNjM0LCA2MzMsIDYzMiwgNjMx
LCA2MjgsIDYyNywgOTYwLCA5NzksIDYyNiwKICAgICAgOTU5LCA2MjUsIDYyNCwgNjIzLCA2MjIs
IDk3OCwgNjIxLCA2MjAsIDYxOSwgNjE4LAogICAgICA2MTcsIDYxNiwgNjE1LCA2MTQsIDYxMywg
NjEyLCA2MTEsIDk5NSwgNDUsIDQ1LAogICAgICAgNDUsIDQ1LCA0OSwgNDksIDQ5LCA0OSwgNzEs
IDcxLCA3MSwgNzEsCiAgICAgICA3MywgNzMsIDczLCA3MywgODAsIDgwLCA4OCwgODgsIDE3Miwg
NjEwLAogICAgICAxNzIsIDE3MiwgNjA5LCA2MDgsIDYwNywgNjA2LCA2MDUsIDYwNCwgNjAzLCA2
MDIsCiAgICAgIDYwMSwgNTcxLCA1NzAsIDU2OSwgNTY4LCA1NjcsIDU2NiwgNTY1LCA1NjQsIDU2
MywKICAgICAgNTYyLCA1NjEsIDU2MCwgNTU5LCA1NTgsIDU1NywgNTU2LCA1NTUsIDU1NCwgNTUz
LAoKICAgICAgNTUyLCA1NTEsIDU1MCwgNTQ5LCA1NDgsIDU0NywgNTQ2LCA1NDUsIDU0NCwgNTQz
LAogICAgICA1NDIsIDU0MSwgNTQwLCA1MzksIDUzOCwgNTM3LCA1MzYsIDUzNSwgNTM0LCA1MzMs
CiAgICAgIDUyNywgNTI2LCA0OTEsIDQ4NiwgNDg1LCA0ODQsIDQ4MywgNDgyLCA0ODEsIDQ4MCwK
ICAgICAgNDc5LCA0NzgsIDQ3NywgNDc2LCA0NzUsIDQ3NCwgNDczLCA0NzIsIDQ3MSwgNDcwLAog
ICAgICA0NjksIDQ2OCwgNDY3LCA0NjYsIDQ2NSwgNDY0LCA0NjMsIDQ2MiwgNDYxLCA0NjAsCiAg
ICAgIDQ1OSwgNDU4LCA0NTcsIDQ1NiwgNDU1LCA0NTQsIDQ1MywgNDUyLCA0NTEsIDQ1MCwKICAg
ICAgNDEzLCA0MTIsIDQxMSwgNDEwLCA0MDksIDQwOCwgNDA3LCA0MDQsIDQwMywgNDAyLAogICAg
ICA0MDEsIDQwMCwgMzk5LCAzOTgsIDM5NywgMzk2LCAzOTUsIDM5NCwgMzkzLCAzOTIsCiAgICAg
IDM5MSwgMzkwLCAzODksIDM4OCwgMzg3LCAzODYsIDM4NSwgMzg0LCAzODMsIDM4MiwKICAgICAg
Mzc5LCAzNzgsIDM3NywgMzc2LCAzNzUsIDM3NCwgMzQzLCAzMjgsIDMyNywgMzI2LAoKICAgICAg
MzI1LCAzMjQsIDMyMywgMzIyLCAzMTksIDMxNiwgMzE1LCAzMTQsIDMxMywgMzEwLAogICAgICAz
MDcsIDMwNiwgMzAzLCAyOTksIDI5OCwgMjk3LCAyOTMsIDI5MCwgMjg5LCAyODgsCiAgICAgIDE2
NSwgMjE1LCAxNjIsIDIzNywgMTQxLCAyMzYsIDIzNSwgMjMyLCAyMzEsIDIyNiwKICAgICAgMjIy
LCAyMTYsIDIwOSwgMTY1LCAxNjIsIDE0MiwgMTQxLCAxMTksIDg3LCAxMDI2LAogICAgICAgNjgs
IDQ2LCAxMSwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKICAgICAx
MDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2
LAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEw
MjYsIDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwg
MTAyNiwgMTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2
LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEw
MjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsCgogICAgIDEwMjYsIDEwMjYsIDEwMjYs
IDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNgogICAg
fSA7CgpzdGF0aWMgY29uc3QgZmxleF9pbnQxNl90IHl5X2Noa1syNDEyXSA9CiAgICB7IDAsCiAg
ICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwKICAgICAgICAxLCAxLCAxLCAxLCAx
LCAxLCAxLCAxLCAxLCAxLAogICAgICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsCiAg
ICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwKICAgICAgICAxLCAxLCAxLCAxLCAx
LCAxLCAxLCAxLCAxLCAxLAogICAgICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsCiAg
ICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMiwgNCwKICAgICAgICA0LCA1LCAyLCA0LCA2
LCA4LCAxNjksIDE2OSwgNSwgOCwKICAgICAgIDEwLCA2LCA3LCAxNSwgMTAsIDE1LCAxMCwgMTYs
IDEyNSwgMTAzNCwKICAgICAgIDE3LCAxNiwgMTcsIDE3LCAxOSwgNDMsIDcsIDEyNSwgMTksIDQz
LAoKICAgICAgMTI4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDIwLCAyMjEsIDIwLCAyMCwKICAgICAg
ICA3LCAxOCwgMTgsIDIyMSwgMTI2LCAyMSwgMjAsIDIxLCAyMSwgMjMsCiAgICAgICAyMywgMjMs
IDEyNCwgMTI2LCA3LCAyMSwgNywgNywgNywgMTI4LAogICAgICAgIDcsIDcsIDEwMjMsIDcsIDcs
IDcsIDcsIDcsIDE4LCAxOCwKICAgICAgIDI0LCAyNCwgMjQsIDIwLCAyNSwgMjUsIDI1LCAyNiwg
MjYsIDI2LAogICAgICAxMjQsIDEzNiwgMjEsIDI3LCAyNywgMjcsIDMwLCAzMCwgMzAsIDIwLAog
ICAgIDEwMjEsIDI2LCAyOCwgMjgsIDI4LCAxMzYsIDI0LCAyOSwgMjksIDI5LAogICAgICAgNDcs
IDMxLCAzMSwgMzEsIDQ3LCAxMDIwLCAyNSwgMzIsIDMyLCAzMiwKICAgICAgIDMzLCAzMywgMzMs
IDM0LCAzNCwgMzQsIDM1LCAzNSwgMzUsIDM2LAogICAgICAgMzYsIDM2LCA0MSwgNDEsIDQxLCAz
NywgMzcsIDM3LCA3MSwgMjcsCgogICAgICAgNzEsIDMwLCAyOCwgNjYsIDMxLCAyOCwgMTAxOSwg
NjYsIDI4LCAyMDksCiAgICAgICAzMCwgNjksIDE2NSwgMjksIDMxLCA2OSwgMzQsIDM4LCAzOCwg
MzgsCiAgICAgIDIwOSwgMTY1LCAzMiwgMzksIDM5LCAzOSwgMzMsIDQxLCA0MCwgNDAsCiAgICAg
ICA0MCwgMTAxNiwgNzcsIDM1LCA3NywgMzcsIDM3LCAzNiwgMzcsIDczLAogICAgICAgMzYsIDEw
MTUsIDgwLCA3MywgODAsIDM3LCA3OCwgNzgsIDc4LCA1MywKICAgICAgIDUzLCA1MywgMTIwLCA4
MiwgMzgsIDgyLCAxMjAsIDM4LCA1NCwgNTQsCiAgICAgICA1NCwgNTUsIDU1LCA1NSwgMTI5LCAz
OCwgMzIwLCAyMjgsIDM5LCA0MCwKICAgICAgMTI5LCAxMjksIDM4LCAzMjAsIDQwLCA0NCwgNDQs
IDQ0LCA0NCwgNDQsCiAgICAgICA0NCwgNDQsIDUzLCA0NCwgMTMxLCAyMjgsIDQ0LCA0NCwgMTMx
LCA0NCwKICAgICAgIDQ0LCAxMjIsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgMTMxLCA1NSwgNTYsCgog
ICAgICAgNTYsIDU2LCA1NywgNTcsIDU3LCAxMjIsIDU0LCA1OCwgNTgsIDU4LAogICAgICAgNTks
IDU5LCA1OSwgNjAsIDYwLCA2MCwgMTM5LCA2MSwgNjEsIDYxLAogICAgICAxMzksIDEyMiwgNjIs
IDYyLCA2MiwgMjE3LCAxNjAsIDYzLCA2MywgNjMsCiAgICAgIDE2MCwgNjQsIDY0LCA2NCwgMTAx
NCwgNTYsIDg4LCA4OCwgODgsIDU3LAogICAgICAgNTgsIDEwMTEsIDIxNywgNTksIDU2LCA5MCwg
OTAsIDkwLCA1OCwgNjUsCiAgICAgICA2NSwgNjUsIDI5NSwgNTgsIDYxLCAyOTUsIDg5LCA4OSwg
ODksIDYyLAogICAgICAgNjAsIDYwLCA2MiwgNjIsIDYzLCA2MiwgMTAwNywgNjMsIDYzLCA5MCwK
ICAgICAgIDc1LCA3NSwgNjIsIDg5LCAyMjMsIDYzLCA2NCwgNzUsIDc1LCAyMjMsCiAgICAgICA2
NCwgNzYsIDYzLCA3NiwgNzYsIDEwMDYsIDY1LCA5MywgOTMsIDkzLAogICAgICAgNjUsIDc2LCA5
MiwgOTIsIDkyLCA2NSwgNzksIDEwMDUsIDc5LCA3OSwKCiAgICAgICA3OSwgOTEsIDkxLCA5MSwg
NzUsIDc1LCA3OSwgNzksIDgxLCA4MSwKICAgICAgMjMwLCA4MSwgODEsIDgxLCA5NCwgOTQsIDk0
LCAxNjMsIDc2LCAyMzAsCiAgICAgICA5MywgMTYzLCA5MSwgOTUsIDk1LCA5NSwgOTYsIDk2LCA5
NiwgOTcsCiAgICAgICA5NywgOTcsIDYxMiwgNzksIDc5LCA5OCwgOTgsIDk4LCA5MiwgMTAwMiwK
ICAgICAgIDk5LCA5OSwgOTksIDEwMCwgMTAwLCAxMDAsIDYxMiwgOTQsIDEwMSwgMTAxLAogICAg
ICAxMDEsIDEwMiwgMTAyLCAxMDIsIDQxMiwgMTAzLCAxMDMsIDEwMywgMTA0LCAxMDQsCiAgICAg
IDEwNCwgMTA1LCAxMDUsIDEwNSwgMTA3LCAxMDcsIDEwNywgNDEyLCA5NSwgMTA2LAogICAgICAx
MDYsIDEwNiwgMTA4LCAxMDgsIDEwOCwgNjg3LCAxNjgsIDk2LCAxNjgsIDY4NywKICAgICAgIDk3
LCAxMDAxLCA5OCwgOTksIDEwOSwgMTA5LCAxMDksIDk5OSwgNDExLCAxMDAsCiAgICAgIDExMCwg
MTEwLCAxMTAsIDQxMSwgOTk4LCAxMDQsIDEwMiwgOTk3LCAxMDEsIDEwMywKCiAgICAgIDc0MCwg
NzQwLCAxMDUsIDEwNiwgMTExLCAxMTEsIDExMSwgMTA1LCA5OTYsIDk5NCwKICAgICAgMTA3LCAx
MDgsIDExMiwgMTEyLCAxMTIsIDExMywgMTEzLCAxMTMsIDExNCwgMTE0LAogICAgICAxMTQsIDk5
MywgOTkyLCAxMTAsIDExNSwgMTE1LCAxMTUsIDExNiwgMTE2LCAxMTYsCiAgICAgIDEwOSwgMTE3
LCAxMTcsIDExNywgMTE4LCAxMTgsIDExOCwgMTMzLCAxMTAsIDEzMywKICAgICAgMjExLCAyMTEs
IDEzMywgMjExLCAxMzMsIDE0MywgMTQzLCAxNDMsIDExMSwgMTQ0LAogICAgICAxNDQsIDE0NCwg
MTQ1LCAxNDUsIDE0NSwgMTQ2LCAxNDYsIDE0NiwgOTkxLCA1NTUsCiAgICAgIDExMiwgMTQ3LCAx
NDcsIDE0NywgNTU1LCAxMTQsIDExMywgMTQ4LCAxNDgsIDE0OCwKICAgICAgOTkwLCA5ODksIDEx
NywgMTE1LCAxMTgsIDExNiwgMTQ5LCAxNDksIDE0OSwgMTUwLAogICAgICAxNTAsIDE1MCwgMTUx
LCAxNTEsIDE1MSwgMTUyLCAxNTIsIDE1MiwgMTQzLCAxNTMsCiAgICAgIDE1MywgMTUzLCAxNTQs
IDE1NCwgMTU0LCAxNTUsIDE1NSwgMTU1LCA5ODcsIDk4NiwKCiAgICAgIDE0NCwgOTg1LCAxNDUs
IDE1NiwgMTU2LCAxNTYsIDE1NywgMTU3LCAxNTcsIDk4NCwKICAgICAgOTgzLCAxNDksIDE0OCwg
MTU4LCAxNTgsIDE1OCwgMTQ3LCA5ODEsIDk4MCwgMTUxLAogICAgICA5NzcsIDE1MiwgOTc2LCAx
NTAsIDE1OSwgMTU5LCAxNTksIDk3NSwgMTY2LCAxNjYsCiAgICAgIDk3NCwgOTcyLCAxNTEsIDE1
MywgMTU1LCAxNjYsIDE2NiwgNjE0LCA5NzEsIDE2NywKICAgICAgMTY3LCA5NjksIDE1NCwgMTY3
LCAxNjcsIDYxNCwgOTY4LCAxNTYsIDk2NywgOTY2LAogICAgICAxNTgsIDYxNCwgMTcwLCAxNTcs
IDE3MCwgMTcwLCAxNzAsIDE3MSwgOTY1LCAxNzEsCiAgICAgIDE3MSwgMTcxLCAxNjYsIDE2Niwg
MTc0LCAxNzQsIDE3NCwgMjE1LCAxNzEsIDE3NSwKICAgICAgMTc1LCAxNzUsIDE1OSwgMTc2LCAx
NzYsIDE3NiwgMTc3LCAxNzcsIDE3NywgMjE1LAogICAgICA5NjQsIDE3NCwgMjE1LCAxNzUsIDk2
MywgOTYyLCAxNzUsIDE3OCwgMTc4LCAxNzgsCiAgICAgIDE3OSwgMTc5LCAxNzksIDk2MSwgOTU4
LCAxNzEsIDE4MCwgMTgwLCAxODAsIDE4MSwKCiAgICAgIDE4MSwgMTgxLCAxODIsIDE4MiwgMTgy
LCAxNzYsIDE4MywgMTgzLCAxODMsIDE4NCwKICAgICAgMTg0LCAxODQsIDk1NywgOTU2LCAxODUs
IDE4NSwgMTg1LCA5NTUsIDk1MywgMTc3LAogICAgICAxODYsIDE4NiwgMTg2LCAxODcsIDE4Nywg
MTg3LCAxODgsIDE4OCwgMTg4LCAxODksCiAgICAgIDE4OSwgMTg5LCA5NTIsIDE4MSwgOTUxLCAx
NzgsIDE5MCwgMTkwLCAxOTAsIDE3OSwKICAgICAgMTkxLCAxOTEsIDE5MSwgOTUwLCA5NDcsIDE4
MCwgMTgyLCAxODUsIDk0NiwgMTgzLAogICAgICAxOTIsIDE5MiwgMTkyLCAxOTMsIDE5MywgMTkz
LCA5NDUsIDk0NCwgMTg0LCAxOTQsCiAgICAgIDE5NCwgMTk0LCAxODcsIDE4OCwgMTk1LCAxOTUs
IDE5NSwgMTk2LCAxOTYsIDE5NiwKICAgICAgMTk3LCAxOTcsIDE5NywgMTk4LCAxOTgsIDE5OCwg
OTQyLCAxODksIDE5OSwgMTk5LAogICAgICAxOTksIDIwMCwgMjAwLCAyMDAsIDk0MSwgMjAxLCAy
MDEsIDIwMSwgMTkwLCA5NDAsCiAgICAgIDE5MSwgOTM5LCA5MzgsIDE5MiwgMjAyLCAyMDIsIDIw
MiwgMjAzLCAyMDMsIDIwMywKCiAgICAgIDkzNCwgMTkzLCA5MzMsIDkzMSwgMTk0LCAyMDQsIDIw
NCwgMjA0LCA5MzAsIDIwNSwKICAgICAgMjA1LCAyMDUsIDkyOSwgOTI4LCAxOTUsIDkyNywgOTI1
LCAxOTYsIDIwMCwgOTI0LAogICAgICAxOTgsIDE5NywgMjAxLCA5MjMsIDE5OSwgMjM4LCAyMzgs
IDIzOCwgMjM5LCAyMzksCiAgICAgIDIzOSwgMjQwLCAyNDAsIDI0MCwgOTIyLCAyMDIsIDI0MSwg
MjQxLCAyNDEsIDkyMSwKICAgICAgOTIwLCAyMDQsIDIwNSwgMjQyLCAyNDIsIDI0MiwgOTE5LCAy
MDMsIDI0MywgMjQzLAogICAgICAyNDMsIDI0NCwgMjQ0LCAyNDQsIDI0NSwgMjQ1LCAyNDUsIDI0
NiwgMjQ2LCAyNDYsCiAgICAgIDI0NywgMjQ3LCAyNDcsIDkxOCwgOTE3LCAyMzksIDI0OCwgMjQ4
LCAyNDgsIDI0OSwKICAgICAgMjQ5LCAyNDksIDkxNiwgOTE1LCAyMzgsIDI1MCwgMjUwLCAyNTAs
IDI1MSwgMjUxLAogICAgICAyNTEsIDkxNCwgMjQyLCA5MTMsIDkxMiwgMjQzLCA5MTEsIDkwNywg
MjQ0LCAyNDEsCiAgICAgIDI1MiwgMjUyLCAyNTIsIDkwNiwgMjQ2LCAyNDUsIDI1MywgMjUzLCAy
NTMsIDI1NSwKCiAgICAgIDI1NSwgMjU2LCAyNTYsIDI1NiwgOTA1LCA5MDMsIDI0NywgMjU1LCAy
NTcsIDI1NywKICAgICAgMjU3LCA5MDIsIDI1MCwgOTAxLCAyNDksIDI1MSwgMjU4LCAyNTgsIDI1
OCwgOTAwLAogICAgICAyNTcsIDg5OSwgMjUyLCA4OTgsIDg5NywgMjU5LCAyNTksIDI1OSwgMjYw
LCAyNjAsCiAgICAgIDI2MCwgMjU5LCA4OTYsIDg5NSwgMjU1LCA4OTQsIDI1OCwgMjYxLCAyNjEs
IDI2MSwKICAgICAgMjYyLCAyNjIsIDI2MiwgODkzLCA4OTIsIDI1MywgMjU5LCAyNTksIDI1OSwg
MjU5LAogICAgICAyNjMsIDI2MywgMjYzLCAyNjQsIDI2NCwgMjY0LCAyNjUsIDI2NSwgMjY1LCA4
OTEsCiAgICAgIDI2NiwgMjY2LCAyNjYsIDg5MCwgODg5LCAyNjcsIDI2NywgMjY3LCAyNjgsIDI2
OCwKICAgICAgMjY4LCAyNjksIDI2OSwgMjY5LCAyNzAsIDI3MCwgMjcwLCAyNzEsIDI3MSwgMjcx
LAogICAgICAyNzIsIDI3MiwgMjcyLCAyNzMsIDI3MywgMjczLCAyNzQsIDI3NCwgMjc0LCAyNjIs
CiAgICAgIDI3NSwgMjc1LCAyNzUsIDI3NiwgMjc2LCAyNzYsIDI2NCwgMjc3LCAyNzcsIDI3NywK
CiAgICAgIDI2MywgMjY2LCAyNjcsIDI3OCwgMjc4LCAyNzgsIDI3OSwgMjc5LCAyNzksIDg4OCwK
ICAgICAgMjcxLCA4ODcsIDg4NiwgMjcyLCAyODAsIDI4MCwgMjgwLCA4ODUsIDI2OCwgODg0LAog
ICAgICAyNzMsIDg4MywgODc4LCAyNzAsIDg3NywgODc2LCAyNzYsIDI3NCwgODc1LCA4NzQsCiAg
ICAgIDI3NiwgMjgxLCAyODEsIDI4MSwgMjgyLCAyODIsIDI4MiwgMjgzLCAyODMsIDI4MywKICAg
ICAgMjc1LCAyNzksIDg3MywgODcyLCAyNzgsIDg3MSwgMjc3LCAyODQsIDI4NCwgMjg0LAogICAg
ICAyODUsIDI4NSwgMjg1LCAyODYsIDI4NiwgMjg2LCA4NzAsIDI4MCwgMjg3LCAyODcsCiAgICAg
IDI4NywgMzI5LCAzMjksIDMyOSwgMzMwLCAzMzAsIDMzMCwgMzMxLCAzMzEsIDMzMSwKICAgICAg
MzMyLCAzMzIsIDMzMiwgMjgzLCAzMzMsIDMzMywgMzMzLCAzMzQsIDMzNCwgMzM0LAogICAgICA4
NjksIDMzNSwgMzM1LCAzMzUsIDI4MSwgODY4LCAyODQsIDMzNiwgMzM2LCAzMzYsCiAgICAgIDMz
NywgMzM3LCAzMzcsIDg2NywgODY2LCAzMzgsIDMzOCwgMzM4LCAzMjksIDg2NSwKCiAgICAgIDg2
NCwgMjg1LCAzMzksIDMzOSwgMzM5LCA4NjMsIDI4NywgMzQwLCAzNDAsIDM0MCwKICAgICAgMzQ0
LCAzNDQsIDM0NCwgMzMxLCAzNDEsIDM0MSwgMzQxLCA4NjIsIDg2MSwgMzMzLAogICAgICA4NjAs
IDMzMiwgMzQyLCAzNDIsIDM0MiwgODU5LCAzMzQsIDMzNSwgMzM4LCAzNDQsCiAgICAgIDg1OCwg
ODU3LCAzMzgsIDg1NiwgODU1LCAzMzYsIDM0NSwgMzQ1LCAzNDUsIDM0NiwKICAgICAgMzQ2LCAz
NDYsIDMzNywgMzQwLCAzNDcsIDM0NywgMzQ3LCAzNDEsIDM0OCwgMzQ4LAogICAgICAzNDgsIDMz
OSwgMzQ5LCAzNDksIDM0OSwgMzUwLCAzNTAsIDM1MCwgMzQ2LCA4NTQsCiAgICAgIDg0NywgMzQ1
LCA4NDYsIDM0MiwgMzUxLCAzNTEsIDM1MSwgODQ1LCAzNDgsIDM1MCwKICAgICAgODQ0LCA4NDMs
IDM1MCwgODQyLCAzNDcsIDM1MiwgMzUyLCAzNTIsIDg0MSwgMzUwLAogICAgICA4NDAsIDM0OSwg
MzUzLCAzNTMsIDM1MywgMzU0LCAzNTQsIDM1NCwgMzU1LCAzNTUsCiAgICAgIDM1NSwgMzU2LCAz
NTYsIDM1NiwgMzU3LCAzNTcsIDM1NywgMzU4LCAzNTgsIDM1OCwKCiAgICAgIDM1OSwgMzU5LCAz
NTksIDM2MCwgMzYwLCAzNjAsIDgzOSwgMzYxLCAzNjEsIDM2MSwKICAgICAgMzYyLCAzNjIsIDM2
MiwgMzYzLCAzNjMsIDM2MywgMzY0LCAzNjQsIDM2NCwgMzUzLAogICAgICAzNTQsIDM2NSwgMzY1
LCAzNjUsIDM2NiwgMzY2LCAzNjYsIDM2NywgMzY3LCAzNjcsCiAgICAgIDM2OCwgMzY4LCAzNjgs
IDM2OSwgMzY5LCAzNjksIDgzOCwgODM2LCAzNjAsIDgzNCwKICAgICAgODMzLCAzNTcsIDM2MSwg
MzcwLCAzNzAsIDM3MCwgODMyLCAzNTgsIDgzMSwgODMwLAogICAgICAzNTksIDgyOSwgMzY0LCAz
NzEsIDM3MSwgMzcxLCAzNjMsIDgyOCwgODI3LCAzNjYsCiAgICAgIDM3MiwgMzcyLCAzNzIsIDM2
OCwgMzczLCAzNzMsIDM3MywgNDE0LCA0MTQsIDQxNCwKICAgICAgNDE1LCA0MTUsIDQxNSwgNDE2
LCA0MTYsIDQxNiwgODI2LCAzNjcsIDgyNSwgODI0LAogICAgICAzNzAsIDQxNywgNDE3LCA0MTcs
IDQxOCwgNDE4LCA0MTgsIDQxOSwgNDE5LCA0MTksCiAgICAgIDQyMCwgNDIwLCA0MjAsIDM3Miwg
ODIzLCA4MjIsIDM3MywgODIxLCAzNzEsIDQyMSwKCiAgICAgIDQyMSwgNDIxLCA0MjIsIDQyMiwg
NDIyLCA4MTEsIDQxNiwgNDIzLCA0MjMsIDQyMywKICAgICAgNDI0LCA0MjQsIDQyNCwgNDI1LCA0
MjUsIDQyNSwgODEwLCA4MDksIDQxNSwgNDI1LAogICAgICA0MjYsIDQyNiwgNDI2LCA0MjcsIDQy
NywgNDI3LCA4MDgsIDQyMCwgODA3LCA0MTgsCiAgICAgIDQxNywgODA2LCA4MDQsIDQyOSwgNDI5
LCA0MjksIDgwMywgNDI4LCA0MjgsIDQyOCwKICAgICAgNDI5LCA3OTksIDQyMSwgNzk4LCA0MjYs
IDQyOCwgNDI4LCA3OTcsIDc5NiwgNDIxLAogICAgICA3OTUsIDc5NCwgNDIyLCA0MjcsIDQyOCwg
NDIzLCA0MjQsIDQyOCwgNDMwLCA0MzAsCiAgICAgIDQzMCwgNDI4LCA0MjgsIDQzMSwgNDMxLCA0
MzEsIDQzMiwgNDMyLCA0MzIsIDQzMywKICAgICAgNDMzLCA0MzMsIDQzNCwgNDM0LCA0MzQsIDQz
MSwgNzkzLCA3OTIsIDQzMCwgNDM1LAogICAgICA0MzUsIDQzNSwgNzkxLCA0MzMsIDc5MCwgNzg5
LCA0MzIsIDc4OCwgNDM2LCA0MzYsCiAgICAgIDQzNiwgNDM3LCA0MzcsIDQzNywgNDM4LCA0Mzgs
IDQzOCwgNDM5LCA0MzksIDQzOSwKCiAgICAgIDQ0MCwgNDQwLCA0NDAsIDQ0MSwgNDQxLCA0NDEs
IDQ0MiwgNDQyLCA0NDIsIDQ0MywKICAgICAgNDQzLCA0NDMsIDQ0NCwgNDQ0LCA0NDQsIDQ0NSwg
NDQ1LCA0NDUsIDc4NywgNzg2LAogICAgICA0MzUsIDQzNiwgNDQ2LCA0NDYsIDQ0NiwgNDQ3LCA0
NDcsIDQ0NywgNDQ4LCA0NDgsCiAgICAgIDQ0OCwgNDM4LCA0NDksIDQ0OSwgNDQ5LCA3ODUsIDc4
NCwgNDM3LCA0NTIsIDQ1MiwKICAgICAgNDkyLCA0OTIsIDQ5MiwgNzgzLCA0OTMsIDQ5MywgNDkz
LCA0MzksIDQ5NCwgNDk0LAogICAgICA0OTQsIDc4MiwgNDQxLCA3ODEsIDQ1MiwgNDUyLCA0OTUs
IDQ5NSwgNDk1LCA0NTIsCiAgICAgIDQ0NiwgNzY0LCA0NDcsIDc2MywgNzYyLCA0NDUsIDQ5Niwg
NDk2LCA0OTYsIDc2MCwKICAgICAgNzU5LCA0NDgsIDQ5NywgNDk3LCA0OTcsIDc1OCwgNDkyLCA0
OTgsIDQ5OCwgNDk4LAogICAgICA3NTYsIDc1NSwgNDQ5LCA0OTMsIDc1NCwgNDk0LCA0OTksIDQ5
OSwgNDk5LCA0OTUsCiAgICAgIDUwMCwgNTAwLCA1MDAsIDc1MywgNTAxLCA1MDEsIDUwMSwgNzUy
LCA0OTYsIDUwMiwKCiAgICAgIDUwMiwgNTAyLCA1MDMsIDUwMywgNTAzLCA3NTEsIDUwNCwgNTA0
LCA1MDQsIDc1MCwKICAgICAgNDk4LCA1MDEsIDUwNCwgNTA1LCA1MDUsIDUwNSwgNTA2LCA1MDYs
IDUwNiwgNTA4LAogICAgICA1MDgsIDUwOCwgNzQ5LCA0OTcsIDc0OCwgNDk5LCA1MDMsIDUwNSwg
NzQ3LCA3NDYsCiAgICAgIDUwNiwgNTA3LCA1MDcsIDUwNywgNzQzLCA1MDAsIDUwOCwgNzQyLCA1
MDcsIDUwOSwKICAgICAgNTA5LCA1MDksIDUxMCwgNTEwLCA1MTAsIDUxMSwgNTExLCA1MTEsIDUx
MiwgNTEyLAogICAgICA1MTIsIDc0MSwgNTExLCA1MTMsIDUxMywgNTEzLCA3MzksIDUxMCwgNTE0
LCA1MTQsCiAgICAgIDUxNCwgNTE1LCA1MTUsIDUxNSwgNzM4LCA1MDksIDczNywgNTEyLCA3MzYs
IDUwOSwKICAgICAgNTE2LCA1MTYsIDUxNiwgNTE3LCA1MTcsIDUxNywgNzM1LCA3MzQsIDUxMywg
NTE4LAogICAgICA1MTgsIDUxOCwgNTE5LCA1MTksIDUxOSwgNTIwLCA1MjAsIDUyMCwgNzMzLCA1
MTQsCiAgICAgIDUyMSwgNTIxLCA1MjEsIDUyMiwgNTIyLCA1MjIsIDUyMywgNTIzLCA1MjMsIDUy
NCwKCiAgICAgIDUyNCwgNTI0LCA1MjUsIDUyNSwgNTI1LCA1MTYsIDU3MiwgNTcyLCA1NzIsIDcz
MiwKICAgICAgNzMxLCA1MTUsIDU3MywgNTczLCA1NzMsIDU3NCwgNTc0LCA1NzQsIDczMCwgNTE5
LAogICAgICA3MjksIDUxNywgNTc1LCA1NzUsIDU3NSwgNzA5LCA3MDgsIDUyMSwgNTc2LCA1NzYs
CiAgICAgIDU3NiwgNzA2LCA1MjMsIDU3NywgNTc3LCA1NzcsIDcwMywgNzAxLCA1NzIsIDU3OCwK
ICAgICAgNTc4LCA1NzgsIDU3OSwgNTc5LCA1NzksIDU4MCwgNTgwLCA1ODAsIDcwMCwgNTczLAog
ICAgICA2OTksIDY5OCwgNTc0LCA1ODEsIDU4MSwgNTgxLCA1ODIsIDU4MiwgNTgyLCA1ODMsCiAg
ICAgIDU4MywgNTgzLCA1ODQsIDU4NCwgNTg0LCA1NzUsIDU4NSwgNTg1LCA1ODUsIDY5NywKICAg
ICAgNTg0LCA1NzYsIDY5NiwgNTgyLCA2OTUsIDY5NCwgNTgzLCA1ODEsIDU4NywgNTg3LAogICAg
ICA1ODcsIDU3NywgNjkzLCA1NzgsIDU4NiwgNTg2LCA1ODYsIDU4OCwgNTg4LCA1ODgsCiAgICAg
IDU4NSwgNjkyLCA1ODcsIDU3OSwgNTg5LCA1ODksIDU4OSwgNjkwLCA2ODksIDU4NiwKCiAgICAg
IDU5MCwgNTkwLCA1OTAsIDU5MSwgNTkxLCA1OTEsIDY4OCwgNjg2LCA1ODgsIDY4NSwKICAgICAg
NTkwLCA1OTIsIDU5MiwgNTkyLCA2ODQsIDU4OSwgNjgzLCA1OTIsIDU5MSwgNTkzLAogICAgICA1
OTMsIDU5MywgNTk0LCA1OTQsIDU5NCwgNTk1LCA1OTUsIDU5NSwgNTk2LCA1OTYsCiAgICAgIDU5
NiwgNjgyLCA1OTQsIDU5NywgNTk3LCA1OTcsIDU5OCwgNTk4LCA1OTgsIDU5OSwKICAgICAgNTk5
LCA1OTksIDYwMCwgNjAwLCA2MDAsIDY0NiwgNjQ2LCA2NDYsIDY0NywgNjQ3LAogICAgICA2NDcs
IDU5MywgNjQ4LCA2NDgsIDY0OCwgNjQ5LCA2NDksIDY0OSwgNjUwLCA2NTAsCiAgICAgIDY1MCwg
NjUxLCA2NTEsIDY1MSwgNjgxLCA1OTYsIDY1MiwgNjUyLCA2NTIsIDY1NCwKICAgICAgNjU0LCA2
NTQsIDU5OCwgNjUzLCA2NTMsIDY1MywgNjgwLCA2NzksIDY0NiwgNjU1LAogICAgICA2NTUsIDY1
NSwgNjc4LCA2NTYsIDY1NiwgNjU2LCA2NTcsIDY1NywgNjU3LCA2NTgsCiAgICAgIDY1OCwgNjU4
LCA2NTksIDY1OSwgNjU5LCA2NTAsIDY3NywgNjc2LCA2NTEsIDY1NSwKCiAgICAgIDY1NiwgNjc1
LCA2NTksIDY3NCwgNjYwLCA2NjAsIDY2MCwgNjYxLCA2NjEsIDY2MSwKICAgICAgNjczLCA2NTcs
IDY2MCwgNjUyLCA2NTgsIDY3MiwgNjcxLCA2NTMsIDY2MiwgNjYyLAogICAgICA2NjIsIDY2Mywg
NjYzLCA2NjMsIDY2MSwgNjY0LCA2NjQsIDY2NCwgNjYyLCA2NjMsCiAgICAgIDY2NSwgNjY1LCA2
NjUsIDY2NiwgNjY2LCA2NjYsIDY2NywgNjY3LCA2NjcsIDY3MCwKICAgICAgNjQ1LCA2NjYsIDY2
NiwgNjY4LCA2NjgsIDY2OCwgNjQ0LCA2NjUsIDY2OSwgNjY5LAogICAgICA2NjksIDcxMCwgNzEw
LCA3MTAsIDcxMSwgNzExLCA3MTEsIDY2NCwgNzEyLCA3MTIsCiAgICAgIDcxMiwgNzEzLCA3MTMs
IDcxMywgNzE0LCA3MTQsIDcxNCwgNjQzLCA2NjcsIDcxNSwKICAgICAgNzE1LCA3MTUsIDcxNiwg
NzE2LCA3MTYsIDcxNywgNzE3LCA3MTcsIDcxNiwgNzE4LAogICAgICA3MTgsIDcxOCwgNzE5LCA3
MTksIDcxOSwgNjQyLCA2NDEsIDcxMSwgNjQwLCA2MzgsCiAgICAgIDcxOSwgNzIyLCA3MjIsIDcy
MiwgNzE1LCA3MjAsIDcyMCwgNzIwLCA2MzcsIDcxMCwKCiAgICAgIDYzNiwgNzE0LCA3MjEsIDcy
MSwgNzIxLCA3MjAsIDcyMywgNzIzLCA3MjMsIDcyNCwKICAgICAgNzI0LCA3MjQsIDcyMSwgNzI1
LCA3MjUsIDcyNSwgNjM1LCA3MjQsIDcyNCwgNzI2LAogICAgICA3MjYsIDcyNiwgNzI3LCA3Mjcs
IDcyNywgNzI4LCA3MjgsIDcyOCwgNzY1LCA3NjUsCiAgICAgIDc2NSwgNzIzLCA3NjYsIDc2Niwg
NzY2LCA2MzQsIDcyNywgNjMzLCA2MzIsIDcyNiwKICAgICAgNzY3LCA3NjcsIDc2NywgNzY4LCA3
NjgsIDc2OCwgNzY5LCA3NjksIDc2OSwgNjMxLAogICAgICA3MjgsIDYzMCwgNjI5LCA3NjksIDc3
MCwgNzcwLCA3NzAsIDc3MSwgNzcxLCA3NzEsCiAgICAgIDc3MiwgNzcyLCA3NzIsIDc3MywgNzcz
LCA3NzMsIDYyOCwgNzY1LCA3NjYsIDc3NCwKICAgICAgNzc0LCA3NzQsIDc3NSwgNzc1LCA3NzUs
IDc3NiwgNzc2LCA3NzYsIDYyNywgNzcwLAogICAgICA3NzcsIDc3NywgNzc3LCA2MjYsIDYyNCwg
NzY3LCA3NzUsIDYyMSwgNjIwLCA3NzQsCiAgICAgIDc3OCwgNzc4LCA3NzgsIDYxNywgNzc2LCA4
MTIsIDgxMiwgODEyLCA4MTMsIDgxMywKCiAgICAgIDgxMywgODE0LCA4MTQsIDgxNCwgNzc3LCA4
MTUsIDgxNSwgODE1LCA4MTYsIDgxNiwKICAgICAgODE2LCA4MTcsIDgxNywgODE3LCA4MTgsIDgx
OCwgODE4LCA4MTksIDgxOSwgODE5LAogICAgICA2MTYsIDYxNSwgODE1LCA4MjAsIDgyMCwgODIw
LCA4NDgsIDg0OCwgODQ4LCA2MTEsCiAgICAgIDgxNywgODQ5LCA4NDksIDg0OSwgODUwLCA4NTAs
IDg1MCwgNjEwLCA4MTgsIDgxMywKICAgICAgODUxLCA4NTEsIDg1MSwgODUyLCA4NTIsIDg1Miwg
ODEyLCA4NTMsIDg1MywgODUzLAogICAgICA4NTEsIDgxNCwgODc5LCA4NzksIDg3OSwgODgwLCA4
ODAsIDg4MCwgODgxLCA4ODEsCiAgICAgIDg4MSwgODgyLCA4ODIsIDg4MiwgNjA4LCA2MDcsIDg1
MCwgOTA4LCA5MDgsIDkwOCwKICAgICAgODQ4LCA5MDksIDkwOSwgOTA5LCA2MDYsIDYwNSwgODQ5
LCA5MTAsIDkxMCwgOTEwLAogICAgICA5MzUsIDkzNSwgOTM1LCA5MzYsIDkzNiwgOTM2LCA5NTks
IDk1OSwgOTU5LCA4NzksCiAgICAgIDYwNCwgOTYwLCA5NjAsIDk2MCwgODgwLCA5NzgsIDk3OCwg
OTc4LCA5NzksIDk3OSwKCiAgICAgIDk3OSwgNjAzLCA2MDIsIDg4MSwgOTk1LCA5OTUsIDk5NSwg
NjAxLCA1NzEsIDU3MCwKICAgICAgOTEwLCA1NjksIDkwOCwgNTY4LCA1NjcsIDU2NiwgNTY1LCA1
NjQsIDU2MywgNTYyLAogICAgICA1NjEsIDU2MCwgNTU4LCA1NTcsIDU1NiwgNTU0LCA1NTMsIDkz
NiwgOTYwLCA1NTIsCiAgICAgIDkzNSwgNTUxLCA1NTAsIDU0OSwgNTQ3LCA5NTksIDU0NiwgNTQ1
LCA1NDQsIDU0MywKICAgICAgNTQyLCA1NDEsIDU0MCwgNTM5LCA1MzgsIDUzNywgNTM2LCA5Nzks
IDEwMjcsIDEwMjcsCiAgICAgMTAyNywgMTAyNywgMTAyOCwgMTAyOCwgMTAyOCwgMTAyOCwgMTAy
OSwgMTAyOSwgMTAyOSwgMTAyOSwKICAgICAxMDMwLCAxMDMwLCAxMDMwLCAxMDMwLCAxMDMxLCAx
MDMxLCAxMDMyLCAxMDMyLCAxMDMzLCA1MzUsCiAgICAgMTAzMywgMTAzMywgNTM0LCA1MzMsIDUz
MiwgNTMxLCA1MzAsIDUyOSwgNTI4LCA1MjcsCiAgICAgIDUyNiwgNDkxLCA0OTAsIDQ4OSwgNDg4
LCA0ODcsIDQ4NiwgNDg1LCA0ODQsIDQ4MywKICAgICAgNDgyLCA0ODEsIDQ4MCwgNDc5LCA0Nzgs
IDQ3NywgNDc2LCA0NzUsIDQ3NCwgNDczLAoKICAgICAgNDcyLCA0NzEsIDQ3MCwgNDY5LCA0Njgs
IDQ2NywgNDY2LCA0NjUsIDQ2NCwgNDYzLAogICAgICA0NjIsIDQ2MSwgNDYwLCA0NTksIDQ1OCwg
NDU3LCA0NTYsIDQ1NSwgNDU0LCA0NTMsCiAgICAgIDQ1MSwgNDUwLCA0MTMsIDQxMCwgNDA5LCA0
MDgsIDQwNywgNDA2LCA0MDUsIDQwNCwKICAgICAgNDAzLCA0MDIsIDQwMSwgNDAwLCAzOTksIDM5
OCwgMzk3LCAzOTYsIDM5NSwgMzk0LAogICAgICAzOTMsIDM5MiwgMzkxLCAzOTAsIDM4OSwgMzg4
LCAzODcsIDM4NiwgMzg1LCAzODQsCiAgICAgIDM4MywgMzgyLCAzODEsIDM4MCwgMzc5LCAzNzgs
IDM3NywgMzc2LCAzNzUsIDM3NCwKICAgICAgMzI3LCAzMjYsIDMyNSwgMzI0LCAzMjMsIDMyMiwg
MzIxLCAzMTksIDMxOCwgMzE3LAogICAgICAzMTYsIDMxNSwgMzE0LCAzMTMsIDMxMiwgMzExLCAz
MTAsIDMwOSwgMzA4LCAzMDcsCiAgICAgIDMwNiwgMzA1LCAzMDQsIDMwMywgMzAyLCAzMDEsIDMw
MCwgMjk4LCAyOTcsIDI5NiwKICAgICAgMjk0LCAyOTMsIDI5MiwgMjkxLCAyOTAsIDI4OSwgMjU0
LCAyMzcsIDIzNiwgMjM1LAoKICAgICAgMjM0LCAyMzMsIDIzMiwgMjMxLCAyMjksIDIyNywgMjI2
LCAyMjUsIDIyNCwgMjIyLAogICAgICAyMjAsIDIxOCwgMjE2LCAyMTQsIDIxMywgMjEyLCAyMTAs
IDIwOCwgMjA3LCAyMDYsCiAgICAgIDE2NCwgMTYyLCAxNjEsIDE0MSwgMTQwLCAxMzgsIDEzNywg
MTM1LCAxMzQsIDEzMiwKICAgICAgMTMwLCAxMjcsIDEyMywgNzAsIDY3LCA1MSwgNDgsIDQyLCAy
MiwgMTEsCiAgICAgICAgOSwgMywgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwg
MTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2
LCAxMDI2LCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEw
MjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsCiAgICAgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwg
MTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwgMTAyNiwKICAgICAxMDI2LCAxMDI2LCAxMDI2
LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LCAxMDI2LAogICAgIDEwMjYsIDEw
MjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsCgogICAg
IDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEwMjYsIDEw
MjYsCiAgICAgMTAyNgogICAgfSA7CgpzdGF0aWMgeXlfc3RhdGVfdHlwZSB5eV9sYXN0X2FjY2Vw
dGluZ19zdGF0ZTsKc3RhdGljIGNoYXIgKnl5X2xhc3RfYWNjZXB0aW5nX2Nwb3M7CgpleHRlcm4g
aW50IHl5X2ZsZXhfZGVidWc7CmludCB5eV9mbGV4X2RlYnVnID0gMDsKIyAxMzMwICIvaG9tZS9w
aGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5jIgpjaGFyICp5eXRleHQ7CiMgMSAi
L2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKIyAyMCAiL2hvbWUv
cGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKCgoKIyAxICIvdXNyL2luY2x1
ZGUvZXJybm8uaCIgMSAzIDQKIyAyNCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBn
ZW4vbGV4ZXIubCIgMgoKIyAxICJzaXAuaCIgMQojIDQzOCAic2lwLmgiCnR5cGVkZWYgZW51bSB7
CiAgICBQYXJzZXJXYXJuaW5nLAogICAgRGVwcmVjYXRpb25XYXJuaW5nCn0gV2FybmluZzsKCgoK
dHlwZWRlZiBlbnVtIHsKICAgIE5vS3dBcmdzID0gMCwKICAgIEFsbEt3QXJncywKICAgIE9wdGlv
bmFsS3dBcmdzCn0gS3dBcmdzOwoKCgp0eXBlZGVmIGVudW0gewogICAgc3RyX3Nsb3QsCiAgICB1
bmljb2RlX3Nsb3QsCiAgICBpbnRfc2xvdCwKICAgIGxvbmdfc2xvdCwKICAgIGZsb2F0X3Nsb3Qs
CiAgICBsZW5fc2xvdCwKICAgIGNvbnRhaW5zX3Nsb3QsCiAgICBhZGRfc2xvdCwKICAgIGNvbmNh
dF9zbG90LAogICAgc3ViX3Nsb3QsCiAgICBtdWxfc2xvdCwKICAgIHJlcGVhdF9zbG90LAogICAg
ZGl2X3Nsb3QsCiAgICBtb2Rfc2xvdCwKICAgIGZsb29yZGl2X3Nsb3QsCiAgICB0cnVlZGl2X3Ns
b3QsCiAgICBhbmRfc2xvdCwKICAgIG9yX3Nsb3QsCiAgICB4b3Jfc2xvdCwKICAgIGxzaGlmdF9z
bG90LAogICAgcnNoaWZ0X3Nsb3QsCiAgICBpYWRkX3Nsb3QsCiAgICBpY29uY2F0X3Nsb3QsCiAg
ICBpc3ViX3Nsb3QsCiAgICBpbXVsX3Nsb3QsCiAgICBpcmVwZWF0X3Nsb3QsCiAgICBpZGl2X3Ns
b3QsCiAgICBpbW9kX3Nsb3QsCiAgICBpZmxvb3JkaXZfc2xvdCwKICAgIGl0cnVlZGl2X3Nsb3Qs
CiAgICBpYW5kX3Nsb3QsCiAgICBpb3Jfc2xvdCwKICAgIGl4b3Jfc2xvdCwKICAgIGlsc2hpZnRf
c2xvdCwKICAgIGlyc2hpZnRfc2xvdCwKICAgIGludmVydF9zbG90LAogICAgY2FsbF9zbG90LAog
ICAgZ2V0aXRlbV9zbG90LAogICAgc2V0aXRlbV9zbG90LAogICAgZGVsaXRlbV9zbG90LAogICAg
bHRfc2xvdCwKICAgIGxlX3Nsb3QsCiAgICBlcV9zbG90LAogICAgbmVfc2xvdCwKICAgIGd0X3Ns
b3QsCiAgICBnZV9zbG90LAogICAgY21wX3Nsb3QsCiAgICBib29sX3Nsb3QsCiAgICBuZWdfc2xv
dCwKICAgIHBvc19zbG90LAogICAgYWJzX3Nsb3QsCiAgICByZXByX3Nsb3QsCiAgICBoYXNoX3Ns
b3QsCiAgICBpbmRleF9zbG90LAogICAgaXRlcl9zbG90LAogICAgbmV4dF9zbG90LAogICAgc2V0
YXR0cl9zbG90LAogICAgZGVsYXR0cl9zbG90LAogICAgbm9fc2xvdAp9IHNsb3RUeXBlOwoKCgoK
Cgp0eXBlZGVmIGVudW0gewogICAgbm9fdHlwZSwKICAgIGRlZmluZWRfdHlwZSwKICAgIGNsYXNz
X3R5cGUsCiAgICBzdHJ1Y3RfdHlwZSwKICAgIHZvaWRfdHlwZSwKICAgIGVudW1fdHlwZSwKICAg
IHRlbXBsYXRlX3R5cGUsCiAgICBzaWduYWxfdHlwZSwKICAgIHNsb3RfdHlwZSwKICAgIHJ4Y29u
X3R5cGUsCiAgICByeGRpc190eXBlLAogICAgc2xvdGNvbl90eXBlLAogICAgc2xvdGRpc190eXBl
LAogICAgdXN0cmluZ190eXBlLAogICAgc3RyaW5nX3R5cGUsCiAgICBzaG9ydF90eXBlLAogICAg
dXNob3J0X3R5cGUsCiAgICBjaW50X3R5cGUsCiAgICBpbnRfdHlwZSwKICAgIHVpbnRfdHlwZSwK
ICAgIGxvbmdfdHlwZSwKICAgIHVsb25nX3R5cGUsCiAgICBmbG9hdF90eXBlLAogICAgY2Zsb2F0
X3R5cGUsCiAgICBkb3VibGVfdHlwZSwKICAgIGNkb3VibGVfdHlwZSwKICAgIGJvb2xfdHlwZSwK
ICAgIG1hcHBlZF90eXBlLAogICAgcHlvYmplY3RfdHlwZSwKICAgIHB5dHVwbGVfdHlwZSwKICAg
IHB5bGlzdF90eXBlLAogICAgcHlkaWN0X3R5cGUsCiAgICBweWNhbGxhYmxlX3R5cGUsCiAgICBw
eXNsaWNlX3R5cGUsCiAgICBxb2JqZWN0X3R5cGUsCiAgICBmdW5jdGlvbl90eXBlLAogICAgcHl0
eXBlX3R5cGUsCiAgICBlbGxpcHNpc190eXBlLAogICAgbG9uZ2xvbmdfdHlwZSwKICAgIHVsb25n
bG9uZ190eXBlLAogICAgYW55c2xvdF90eXBlLAogICAgY2Jvb2xfdHlwZSwKICAgIHNzdHJpbmdf
dHlwZSwKICAgIHdzdHJpbmdfdHlwZSwKICAgIGZha2Vfdm9pZF90eXBlLAogICAgc3NpemVfdHlw
ZSwKICAgIGFzY2lpX3N0cmluZ190eXBlLAogICAgbGF0aW4xX3N0cmluZ190eXBlLAogICAgdXRm
OF9zdHJpbmdfdHlwZSwKICAgIGJ5dGVfdHlwZSwKICAgIHNieXRlX3R5cGUsCiAgICB1Ynl0ZV90
eXBlCn0gYXJnVHlwZTsKCgoKCnR5cGVkZWYgZW51bSB7CiAgICBxY2hhcl92YWx1ZSwKICAgIHN0
cmluZ192YWx1ZSwKICAgIG51bWVyaWNfdmFsdWUsCiAgICByZWFsX3ZhbHVlLAogICAgc2NvcGVk
X3ZhbHVlLAogICAgZmNhbGxfdmFsdWUKfSB2YWx1ZVR5cGU7CgoKCgp0eXBlZGVmIGVudW0gewog
ICAgdGltZV9xdWFsaWZpZXIsCiAgICBwbGF0Zm9ybV9xdWFsaWZpZXIsCiAgICBmZWF0dXJlX3F1
YWxpZmllcgp9IHF1YWxUeXBlOwoKCgoKdHlwZWRlZiBlbnVtIHsKICAgIGV4Y2VwdGlvbl9pZmFj
ZSwKICAgIG1hcHBlZHR5cGVfaWZhY2UsCiAgICBuYW1lc3BhY2VfaWZhY2UsCiAgICBjbGFzc19p
ZmFjZQp9IGlmYWNlRmlsZVR5cGU7CgoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBjb25zdCBjaGFy
ICp0eXBlOwogICAgY29uc3QgY2hhciAqbGljZW5zZWU7CiAgICBjb25zdCBjaGFyICp0aW1lc3Rh
bXA7CiAgICBjb25zdCBjaGFyICpzaWc7Cn0gbGljZW5zZURlZjsKCgoKCnR5cGVkZWYgc3RydWN0
IF9xdWFsRGVmIHsKICAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgICBxdWFsVHlwZSBxdHlwZTsKICAg
IHN0cnVjdCBfbW9kdWxlRGVmICptb2R1bGU7CiAgICBpbnQgbGluZTsKICAgIGludCBvcmRlcjsK
ICAgIHN0cnVjdCBfcXVhbERlZiAqbmV4dDsKfSBxdWFsRGVmOwoKCgoKdHlwZWRlZiBzdHJ1Y3Qg
X3Njb3BlZE5hbWVEZWYgewogICAgY2hhciAqbmFtZTsKICAgIHN0cnVjdCBfc2NvcGVkTmFtZURl
ZiAqbmV4dDsKfSBzY29wZWROYW1lRGVmOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgX25hbWVEZWYgewog
ICAgaW50IG5hbWVmbGFnczsKICAgIGNvbnN0IGNoYXIgKnRleHQ7CiAgICBzaXplX3QgbGVuOwog
ICAgc2l6ZV90IG9mZnNldDsKICAgIHN0cnVjdCBfbmFtZURlZiAqbmV4dDsKfSBuYW1lRGVmOwoK
CgoKdHlwZWRlZiBzdHJ1Y3QgX2NvZGVCbG9jayB7CiAgICBjaGFyICpmcmFnOwogICAgY29uc3Qg
Y2hhciAqZmlsZW5hbWU7CiAgICBpbnQgbGluZW5yOwp9IGNvZGVCbG9jazsKCgoKCnR5cGVkZWYg
c3RydWN0IF9jb2RlQmxvY2tMaXN0IHsKICAgIGNvZGVCbG9jayAqYmxvY2s7CiAgICBzdHJ1Y3Qg
X2NvZGVCbG9ja0xpc3QgKm5leHQ7Cn0gY29kZUJsb2NrTGlzdDsKCgoKCnR5cGVkZWYgc3RydWN0
IF90aHJvd0FyZ3MgewogICAgaW50IG5yQXJnczsKICAgIHN0cnVjdCBfZXhjZXB0aW9uRGVmICph
cmdzWzIwXTsKfSB0aHJvd0FyZ3M7CgoKCgp0eXBlZGVmIHN0cnVjdCBfZXhjZXB0aW9uRGVmIHsK
ICAgIGludCBleGNlcHRpb25ucjsKICAgIHN0cnVjdCBfaWZhY2VGaWxlRGVmICppZmY7CiAgICBj
b25zdCBjaGFyICpweW5hbWU7CiAgICBzdHJ1Y3QgX2NsYXNzRGVmICpjZDsKICAgIGNoYXIgKmJp
YmFzZTsKICAgIHN0cnVjdCBfZXhjZXB0aW9uRGVmICpiYXNlOwogICAgY29kZUJsb2NrTGlzdCAq
cmFpc2Vjb2RlOwogICAgc3RydWN0IF9leGNlcHRpb25EZWYgKm5leHQ7Cn0gZXhjZXB0aW9uRGVm
OwoKCgoKdHlwZWRlZiBzdHJ1Y3QgX3ZhbHVlRGVmIHsKICAgIHZhbHVlVHlwZSB2dHlwZTsKICAg
IGNoYXIgdnVub3A7CiAgICBjaGFyIHZiaW5vcDsKICAgIHVuaW9uIHsKICAgICAgICBjaGFyIHZx
Y2hhcjsKICAgICAgICBsb25nIHZudW07CiAgICAgICAgZG91YmxlIHZyZWFsOwogICAgICAgIGNo
YXIgKnZzdHI7CiAgICAgICAgc2NvcGVkTmFtZURlZiAqdnNjcDsKICAgICAgICBzdHJ1Y3QgX2Zj
YWxsRGVmICpmY2Q7CiAgICB9IHU7CiAgICBzdHJ1Y3QgX3ZhbHVlRGVmICpuZXh0Owp9IHZhbHVl
RGVmOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgYXJnVHlwZSBhdHlwZTsKICAgIG5hbWVEZWYg
Km5hbWU7CiAgICBjb25zdCBjaGFyICpkb2N0eXBlOwogICAgaW50IGFyZ2ZsYWdzOwogICAgaW50
IG5yZGVyZWZzOwogICAgdmFsdWVEZWYgKmRlZnZhbDsKICAgIGNvbnN0IGNoYXIgKmRvY3ZhbDsK
ICAgIGludCBrZXk7CiAgICBzdHJ1Y3QgX3R5cGVkZWZEZWYgKm9yaWdpbmFsX3R5cGU7CiAgICB1
bmlvbiB7CiAgICAgICAgc3RydWN0IF9zaWduYXR1cmVEZWYgKnNhOwogICAgICAgIHN0cnVjdCBf
dGVtcGxhdGVEZWYgKnRkOwogICAgICAgIHN0cnVjdCBfc2NvcGVkTmFtZURlZiAqc25kOwogICAg
ICAgIHN0cnVjdCBfY2xhc3NEZWYgKmNkOwogICAgICAgIHN0cnVjdCBfZW51bURlZiAqZWQ7CiAg
ICAgICAgc3RydWN0IF9zY29wZWROYW1lRGVmICpzbmFtZTsKICAgICAgICBzdHJ1Y3QgX21hcHBl
ZFR5cGVEZWYgKm10ZDsKICAgIH0gdTsKfSBhcmdEZWY7CgoKCgp0eXBlZGVmIHN0cnVjdCBfYXJn
TGlzdCB7CiAgICBhcmdEZWYgYXJnOwogICAgc3RydWN0IF9hcmdMaXN0ICpuZXh0Owp9IGFyZ0xp
c3Q7CgoKCgp0eXBlZGVmIHN0cnVjdCBfZmNhbGxEZWYgewogICAgYXJnRGVmIHR5cGU7CiAgICBp
bnQgbnJBcmdzOwogICAgc3RydWN0IF92YWx1ZURlZiAqYXJnc1syMF07Cn0gZmNhbGxEZWY7CgoK
CnR5cGVkZWYgc3RydWN0IF9hcGlWZXJzaW9uUmFuZ2VEZWYgewogICAgbmFtZURlZiAqYXBpX25h
bWU7CiAgICBpbnQgZnJvbTsKICAgIGludCB0bzsKICAgIGludCBpbmRleDsKICAgIHN0cnVjdCBf
YXBpVmVyc2lvblJhbmdlRGVmICpuZXh0Owp9IGFwaVZlcnNpb25SYW5nZURlZjsKCgoKdHlwZWRl
ZiBzdHJ1Y3QgX21vZHVsZURlZiB7CiAgICBuYW1lRGVmICpmdWxsbmFtZTsKICAgIGNvbnN0IGNo
YXIgKm5hbWU7CiAgICBpbnQgdmVyc2lvbjsKICAgIGFwaVZlcnNpb25SYW5nZURlZiAqYXBpX3Zl
cnNpb25zOwogICAgYXBpVmVyc2lvblJhbmdlRGVmICphcGlfcmFuZ2VzOwogICAgaW50IG1vZGZs
YWdzOwogICAgS3dBcmdzIGt3YXJnczsKICAgIGludCBxb2JqY2xhc3M7CiAgICBzdHJ1Y3QgX21l
bWJlckRlZiAqb3RoZnVuY3M7CiAgICBzdHJ1Y3QgX292ZXJEZWYgKm92ZXJzOwogICAgYXJnVHlw
ZSBlbmNvZGluZzsKICAgIG5hbWVEZWYgKmRlZm1ldGF0eXBlOwogICAgbmFtZURlZiAqZGVmc3Vw
ZXJ0eXBlOwogICAgc3RydWN0IF9leGNlcHRpb25EZWYgKmRlZmV4Y2VwdGlvbjsKICAgIGNvZGVC
bG9ja0xpc3QgKmhkcmNvZGU7CiAgICBjb2RlQmxvY2tMaXN0ICpjcHBjb2RlOwogICAgY29kZUJs
b2NrTGlzdCAqY29weWluZzsKICAgIGNvZGVCbG9ja0xpc3QgKnByZWluaXRjb2RlOwogICAgY29k
ZUJsb2NrTGlzdCAqaW5pdGNvZGU7CiAgICBjb2RlQmxvY2tMaXN0ICpwb3N0aW5pdGNvZGU7CiAg
ICBjb2RlQmxvY2tMaXN0ICp1bml0Y29kZTsKICAgIGNvZGVCbG9ja0xpc3QgKnVuaXRwb3N0aW5j
Y29kZTsKICAgIGNvZGVCbG9ja0xpc3QgKmRvY3N0cmluZzsKICAgIGludCBwYXJ0czsKICAgIGNv
bnN0IGNoYXIgKmZpbGU7CiAgICBxdWFsRGVmICpxdWFsaWZpZXJzOwogICAgYXJnRGVmICp0eXBl
czsKICAgIGludCBucnR5cGVzOwogICAgaW50IG5ydGltZWxpbmVzOwogICAgaW50IG5yZXhjZXB0
aW9uczsKICAgIGludCBucnR5cGVkZWZzOwogICAgaW50IG5ydmlydGhhbmRsZXJzOwogICAgaW50
IG5leHRfa2V5OwogICAgc3RydWN0IF92aXJ0SGFuZGxlckRlZiAqdmlydGhhbmRsZXJzOwogICAg
bGljZW5zZURlZiAqbGljZW5zZTsKICAgIHN0cnVjdCBfY2xhc3NEZWYgKnByb3hpZXM7CiAgICBz
dHJ1Y3QgX21vZHVsZURlZiAqY29udGFpbmVyOwogICAgc3RydWN0IF9pZmFjZUZpbGVMaXN0ICp1
c2VkOwogICAgc3RydWN0IF9tb2R1bGVMaXN0RGVmICphbGxpbXBvcnRzOwogICAgc3RydWN0IF9t
b2R1bGVMaXN0RGVmICppbXBvcnRzOwogICAgc3RydWN0IF9hdXRvUHlOYW1lRGVmICphdXRvcHlu
YW1lOwogICAgc3RydWN0IF9tb2R1bGVEZWYgKm5leHQ7Cn0gbW9kdWxlRGVmOwoKCgp0eXBlZGVm
IHN0cnVjdCBfbW9kdWxlTGlzdERlZiB7CiAgICBtb2R1bGVEZWYgKm1vZHVsZTsKICAgIHN0cnVj
dCBfbW9kdWxlTGlzdERlZiAqbmV4dDsKfSBtb2R1bGVMaXN0RGVmOwoKCgoKdHlwZWRlZiBzdHJ1
Y3QgX2lmYWNlRmlsZURlZiB7CiAgICBuYW1lRGVmICpuYW1lOwogICAgYXBpVmVyc2lvblJhbmdl
RGVmICphcGlfcmFuZ2U7CiAgICBzdHJ1Y3QgX2lmYWNlRmlsZURlZiAqZmlyc3RfYWx0OwogICAg
c3RydWN0IF9pZmFjZUZpbGVEZWYgKm5leHRfYWx0OwogICAgaWZhY2VGaWxlVHlwZSB0eXBlOwog
ICAgaW50IGlmYWNlbnI7CiAgICBzY29wZWROYW1lRGVmICpmcWNuYW1lOwogICAgbW9kdWxlRGVm
ICptb2R1bGU7CiAgICBjb2RlQmxvY2tMaXN0ICpoZHJjb2RlOwogICAgc3RydWN0IF9pZmFjZUZp
bGVMaXN0ICp1c2VkOwogICAgc3RydWN0IF9pZmFjZUZpbGVEZWYgKm5leHQ7Cn0gaWZhY2VGaWxl
RGVmOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgX2lmYWNlRmlsZUxpc3QgewogICAgaWZhY2VGaWxlRGVm
ICppZmY7CiAgICBzdHJ1Y3QgX2lmYWNlRmlsZUxpc3QgKm5leHQ7Cn0gaWZhY2VGaWxlTGlzdDsK
CgoKCnR5cGVkZWYgc3RydWN0IF9tYXBwZWRUeXBlRGVmIHsKICAgIGludCBtdGZsYWdzOwogICAg
YXJnRGVmIHR5cGU7CiAgICBuYW1lRGVmICpweW5hbWU7CiAgICBuYW1lRGVmICpjbmFtZTsKICAg
IGNvbnN0IGNoYXIgKmRvY3R5cGU7CiAgICBpZmFjZUZpbGVEZWYgKmlmZjsKICAgIHN0cnVjdCBf
bWVtYmVyRGVmICptZW1iZXJzOwogICAgc3RydWN0IF9vdmVyRGVmICpvdmVyczsKICAgIGNvZGVC
bG9ja0xpc3QgKnR5cGVjb2RlOwogICAgY29kZUJsb2NrTGlzdCAqY29udmZyb21jb2RlOwogICAg
Y29kZUJsb2NrTGlzdCAqY29udnRvY29kZTsKICAgIHN0cnVjdCBfbWFwcGVkVHlwZURlZiAqbmV4
dDsKfSBtYXBwZWRUeXBlRGVmOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgX3NpZ25hdHVyZURlZiB7CiAg
ICBhcmdEZWYgcmVzdWx0OwogICAgaW50IG5yQXJnczsKICAgIGFyZ0RlZiBhcmdzWzIwXTsKfSBz
aWduYXR1cmVEZWY7CgoKCgp0eXBlZGVmIHN0cnVjdCBfc2lnbmF0dXJlTGlzdCB7CiAgICBzdHJ1
Y3QgX3NpZ25hdHVyZURlZiAqc2Q7CiAgICBzdHJ1Y3QgX3NpZ25hdHVyZUxpc3QgKm5leHQ7Cn0g
c2lnbmF0dXJlTGlzdDsKCgoKCnR5cGVkZWYgc3RydWN0IF90ZW1wbGF0ZURlZiB7CiAgICBzY29w
ZWROYW1lRGVmICpmcW5hbWU7CiAgICBzaWduYXR1cmVEZWYgdHlwZXM7Cn0gdGVtcGxhdGVEZWY7
CgoKCgp0eXBlZGVmIHN0cnVjdCBfdmlydEhhbmRsZXJEZWYgewogICAgaW50IHZpcnRoYW5kbGVy
bnI7CiAgICBpbnQgdmhmbGFnczsKICAgIHNpZ25hdHVyZURlZiAqcHlzaWc7CiAgICBzaWduYXR1
cmVEZWYgKmNwcHNpZzsKICAgIHN0cnVjdCBfbW9kdWxlRGVmICptb2R1bGU7CiAgICBjb2RlQmxv
Y2tMaXN0ICp2aXJ0Y29kZTsKICAgIHN0cnVjdCBfdmlydEhhbmRsZXJEZWYgKm5leHQ7Cn0gdmly
dEhhbmRsZXJEZWY7CgoKCgp0eXBlZGVmIHN0cnVjdCBfdHlwZWRlZkRlZiB7CiAgICBpbnQgdGRm
bGFnczsKICAgIHNjb3BlZE5hbWVEZWYgKmZxbmFtZTsKICAgIHN0cnVjdCBfY2xhc3NEZWYgKmVj
ZDsKICAgIG1vZHVsZURlZiAqbW9kdWxlOwogICAgYXJnRGVmIHR5cGU7CiAgICBzdHJ1Y3QgX3R5
cGVkZWZEZWYgKm5leHQ7Cn0gdHlwZWRlZkRlZjsKCgoKCnR5cGVkZWYgc3RydWN0IF92YXJEZWYg
ewogICAgbmFtZURlZiAqcHluYW1lOwogICAgc2NvcGVkTmFtZURlZiAqZnFjbmFtZTsKICAgIHN0
cnVjdCBfY2xhc3NEZWYgKmVjZDsKICAgIG1vZHVsZURlZiAqbW9kdWxlOwogICAgaW50IHZhcmZs
YWdzOwogICAgYXJnRGVmIHR5cGU7CiAgICBjb2RlQmxvY2tMaXN0ICphY2Nlc3NmdW5jOwogICAg
Y29kZUJsb2NrTGlzdCAqZ2V0Y29kZTsKICAgIGNvZGVCbG9ja0xpc3QgKnNldGNvZGU7CiAgICBz
dHJ1Y3QgX3ZhckRlZiAqbmV4dDsKfSB2YXJEZWY7CgoKCgp0eXBlZGVmIHN0cnVjdCBfcHJvcGVy
dHlEZWYgewogICAgbmFtZURlZiAqbmFtZTsKICAgIGNvbnN0IGNoYXIgKmdldDsKICAgIGNvbnN0
IGNoYXIgKnNldDsKICAgIGNvZGVCbG9ja0xpc3QgKmRvY3N0cmluZzsKICAgIHN0cnVjdCBfcHJv
cGVydHlEZWYgKm5leHQ7Cn0gcHJvcGVydHlEZWY7CgoKCgp0eXBlZGVmIHN0cnVjdCBfb3ZlckRl
ZiB7CiAgICBjaGFyICpjcHBuYW1lOwogICAgaW50IG92ZXJmbGFnczsKICAgIEt3QXJncyBrd2Fy
Z3M7CiAgICBzdHJ1Y3QgX21lbWJlckRlZiAqY29tbW9uOwogICAgYXBpVmVyc2lvblJhbmdlRGVm
ICphcGlfcmFuZ2U7CiAgICBzaWduYXR1cmVEZWYgcHlzaWc7CiAgICBzaWduYXR1cmVEZWYgKmNw
cHNpZzsKICAgIHRocm93QXJncyAqZXhjZXB0aW9uczsKICAgIGNvZGVCbG9ja0xpc3QgKm1ldGhv
ZGNvZGU7CiAgICB2aXJ0SGFuZGxlckRlZiAqdmlydGhhbmRsZXI7CiAgICBjaGFyICpwcmVob29r
OwogICAgY2hhciAqcG9zdGhvb2s7CiAgICBzdHJ1Y3QgX292ZXJEZWYgKm5leHQ7Cn0gb3ZlckRl
ZjsKCgoKCnR5cGVkZWYgc3RydWN0IF9jdG9yRGVmIHsKICAgIGludCBjdG9yZmxhZ3M7CiAgICBL
d0FyZ3Mga3dhcmdzOwogICAgYXBpVmVyc2lvblJhbmdlRGVmICphcGlfcmFuZ2U7CiAgICBzaWdu
YXR1cmVEZWYgcHlzaWc7CiAgICBzaWduYXR1cmVEZWYgKmNwcHNpZzsKICAgIHRocm93QXJncyAq
ZXhjZXB0aW9uczsKICAgIGNvZGVCbG9ja0xpc3QgKm1ldGhvZGNvZGU7CiAgICBjaGFyICpwcmVo
b29rOwogICAgY2hhciAqcG9zdGhvb2s7CiAgICBzdHJ1Y3QgX2N0b3JEZWYgKm5leHQ7Cn0gY3Rv
ckRlZjsKCgoKCnR5cGVkZWYgc3RydWN0IF9lbnVtTWVtYmVyRGVmIHsKICAgIG5hbWVEZWYgKnB5
bmFtZTsKICAgIGNoYXIgKmNuYW1lOwogICAgc3RydWN0IF9lbnVtRGVmICplZDsKICAgIHN0cnVj
dCBfZW51bU1lbWJlckRlZiAqbmV4dDsKfSBlbnVtTWVtYmVyRGVmOwoKCgoKdHlwZWRlZiBzdHJ1
Y3QgX2VudW1EZWYgewogICAgaW50IGVudW1mbGFnczsKICAgIG5hbWVEZWYgKnB5bmFtZTsKICAg
IHNjb3BlZE5hbWVEZWYgKmZxY25hbWU7CiAgICBuYW1lRGVmICpjbmFtZTsKICAgIHN0cnVjdCBf
ZW51bURlZiAqZmlyc3RfYWx0OwogICAgc3RydWN0IF9lbnVtRGVmICpuZXh0X2FsdDsKICAgIGlu
dCBlbnVtbnI7CiAgICBpbnQgZW51bV9pZHg7CiAgICBzdHJ1Y3QgX2NsYXNzRGVmICplY2Q7CiAg
ICBzdHJ1Y3QgX21hcHBlZFR5cGVEZWYgKmVtdGQ7CiAgICBtb2R1bGVEZWYgKm1vZHVsZTsKICAg
IGVudW1NZW1iZXJEZWYgKm1lbWJlcnM7CiAgICBzdHJ1Y3QgX21lbWJlckRlZiAqc2xvdHM7CiAg
ICBzdHJ1Y3QgX292ZXJEZWYgKm92ZXJzOwogICAgc3RydWN0IF9lbnVtRGVmICpuZXh0Owp9IGVu
dW1EZWY7CgoKCgp0eXBlZGVmIHN0cnVjdCBfbWVtYmVyRGVmIHsKICAgIG5hbWVEZWYgKnB5bmFt
ZTsKICAgIGludCBtZW1iZXJmbGFnczsKICAgIGludCBtZW1iZXJucjsKICAgIHNsb3RUeXBlIHNs
b3Q7CiAgICBtb2R1bGVEZWYgKm1vZHVsZTsKICAgIGNvZGVCbG9ja0xpc3QgKmRvY3N0cmluZzsK
ICAgIHN0cnVjdCBfbWVtYmVyRGVmICpuZXh0Owp9IG1lbWJlckRlZjsKCgoKCnR5cGVkZWYgc3Ry
dWN0IF92aXNpYmxlTGlzdCB7CiAgICBtZW1iZXJEZWYgKm07CiAgICBzdHJ1Y3QgX2NsYXNzRGVm
ICpjZDsKICAgIHN0cnVjdCBfdmlzaWJsZUxpc3QgKm5leHQ7Cn0gdmlzaWJsZUxpc3Q7CgoKCgp0
eXBlZGVmIHN0cnVjdCBfY2xhc3NMaXN0IHsKICAgIHN0cnVjdCBfY2xhc3NEZWYgKmNkOwogICAg
c3RydWN0IF9jbGFzc0xpc3QgKm5leHQ7Cn0gY2xhc3NMaXN0OwoKCgoKdHlwZWRlZiBzdHJ1Y3Qg
X3ZpcnRPdmVyRGVmIHsKICAgIG92ZXJEZWYgbzsKICAgIHN0cnVjdCBfY2xhc3NEZWYgKnNjb3Bl
OwogICAgc3RydWN0IF92aXJ0T3ZlckRlZiAqbmV4dDsKfSB2aXJ0T3ZlckRlZjsKCgoKCnR5cGVk
ZWYgc3RydWN0IF9tcm9EZWYgewogICAgc3RydWN0IF9jbGFzc0RlZiAqY2Q7CiAgICBpbnQgbXJv
ZmxhZ3M7CiAgICBzdHJ1Y3QgX21yb0RlZiAqbmV4dDsKfSBtcm9EZWY7CgoKCgp0eXBlZGVmIHN0
cnVjdCBfY2xhc3NEZWYgewogICAgdW5zaWduZWQgY2xhc3NmbGFnczsKICAgIGludCBweXF0NF9m
bGFnczsKICAgIG5hbWVEZWYgKnB5bmFtZTsKICAgIGlmYWNlRmlsZURlZiAqaWZmOwogICAgc3Ry
dWN0IF9jbGFzc0RlZiAqZWNkOwogICAgc3RydWN0IF9jbGFzc0RlZiAqcmVhbDsKICAgIGNsYXNz
TGlzdCAqc3VwZXJzOwogICAgbXJvRGVmICptcm87CiAgICBuYW1lRGVmICptZXRhdHlwZTsKICAg
IG5hbWVEZWYgKnN1cGVydHlwZTsKICAgIHRlbXBsYXRlRGVmICp0ZDsKICAgIGN0b3JEZWYgKmN0
b3JzOwogICAgY3RvckRlZiAqZGVmY3RvcjsKICAgIGNvZGVCbG9ja0xpc3QgKmRlYWxsb2Njb2Rl
OwogICAgY29kZUJsb2NrTGlzdCAqZHRvcmNvZGU7CiAgICB0aHJvd0FyZ3MgKmR0b3JleGNlcHRp
b25zOwogICAgbWVtYmVyRGVmICptZW1iZXJzOwogICAgb3ZlckRlZiAqb3ZlcnM7CiAgICBhcmdM
aXN0ICpjYXN0czsKICAgIHZpcnRPdmVyRGVmICp2bWVtYmVyczsKICAgIHZpc2libGVMaXN0ICp2
aXNpYmxlOwogICAgY29kZUJsb2NrTGlzdCAqY3BwY29kZTsKICAgIGNvZGVCbG9ja0xpc3QgKmNv
bnZ0b3N1YmNvZGU7CiAgICBzdHJ1Y3QgX2NsYXNzRGVmICpzdWJiYXNlOwogICAgY29kZUJsb2Nr
TGlzdCAqZG9jc3RyaW5nOwogICAgY29kZUJsb2NrTGlzdCAqY29udnRvY29kZTsKICAgIGNvZGVC
bG9ja0xpc3QgKnRyYXZjb2RlOwogICAgY29kZUJsb2NrTGlzdCAqY2xlYXJjb2RlOwogICAgY29k
ZUJsb2NrTGlzdCAqZ2V0YnVmY29kZTsKICAgIGNvZGVCbG9ja0xpc3QgKnJlbGVhc2VidWZjb2Rl
OwogICAgY29kZUJsb2NrTGlzdCAqcmVhZGJ1ZmNvZGU7CiAgICBjb2RlQmxvY2tMaXN0ICp3cml0
ZWJ1ZmNvZGU7CiAgICBjb2RlQmxvY2tMaXN0ICpzZWdjb3VudGNvZGU7CiAgICBjb2RlQmxvY2tM
aXN0ICpjaGFyYnVmY29kZTsKICAgIGNvZGVCbG9ja0xpc3QgKnBpY2tsZWNvZGU7CiAgICBwcm9w
ZXJ0eURlZiAqcHJvcGVydGllczsKICAgIHN0cnVjdCBfY2xhc3NEZWYgKm5leHQ7Cn0gY2xhc3NE
ZWY7CgoKCgp0eXBlZGVmIHN0cnVjdCBfY2xhc3NUbXBsRGVmIHsKICAgIHNpZ25hdHVyZURlZiBz
aWc7CiAgICBjbGFzc0RlZiAqY2Q7CiAgICBzdHJ1Y3QgX2NsYXNzVG1wbERlZiAqbmV4dDsKfSBj
bGFzc1RtcGxEZWY7CgoKCgp0eXBlZGVmIHN0cnVjdCBfbWFwcGVkVHlwZVRtcGxEZWYgewogICAg
c2lnbmF0dXJlRGVmIHNpZzsKICAgIG1hcHBlZFR5cGVEZWYgKm10OwogICAgc3RydWN0IF9tYXBw
ZWRUeXBlVG1wbERlZiAqbmV4dDsKfSBtYXBwZWRUeXBlVG1wbERlZjsKCgoKCnR5cGVkZWYgc3Ry
dWN0IF9leHRyYWN0RGVmIHsKICAgIGNvbnN0IGNoYXIgKmlkOwogICAgc3RydWN0IF9leHRyYWN0
UGFydERlZiAqcGFydHM7CiAgICBzdHJ1Y3QgX2V4dHJhY3REZWYgKm5leHQ7Cn0gZXh0cmFjdERl
ZjsKCgoKCnR5cGVkZWYgc3RydWN0IF9leHRyYWN0UGFydERlZiB7CiAgICBpbnQgb3JkZXI7CiAg
ICBjb2RlQmxvY2sgKnBhcnQ7CiAgICBzdHJ1Y3QgX2V4dHJhY3RQYXJ0RGVmICpuZXh0Owp9IGV4
dHJhY3RQYXJ0RGVmOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgX2F1dG9QeU5hbWVEZWYgewogICAgY29u
c3QgY2hhciAqcmVtb3ZlX2xlYWRpbmc7CiAgICBzdHJ1Y3QgX2F1dG9QeU5hbWVEZWYgKm5leHQ7
Cn0gYXV0b1B5TmFtZURlZjsKCgoKCnR5cGVkZWYgc3RydWN0IHsKICAgIG1vZHVsZURlZiAqbW9k
dWxlOwogICAgbW9kdWxlRGVmICptb2R1bGVzOwogICAgbmFtZURlZiAqbmFtZWNhY2hlOwogICAg
aWZhY2VGaWxlRGVmICppZmFjZWZpbGVzOwogICAgY2xhc3NEZWYgKmNsYXNzZXM7CiAgICBjbGFz
c1RtcGxEZWYgKmNsYXNzdGVtcGxhdGVzOwogICAgZXhjZXB0aW9uRGVmICpleGNlcHRpb25zOwog
ICAgbWFwcGVkVHlwZURlZiAqbWFwcGVkdHlwZXM7CiAgICBtYXBwZWRUeXBlVG1wbERlZiAqbWFw
cGVkdHlwZXRlbXBsYXRlczsKICAgIGVudW1EZWYgKmVudW1zOwogICAgdmFyRGVmICp2YXJzOwog
ICAgdHlwZWRlZkRlZiAqdHlwZWRlZnM7CiAgICBjb2RlQmxvY2tMaXN0ICpleHBoZHJjb2RlOwog
ICAgY29kZUJsb2NrTGlzdCAqZG9jczsKICAgIGludCBzaWdzbG90czsKICAgIGludCBnZW5jOwog
ICAgc3RydWN0IF9zdHJpbmdMaXN0ICpwbHVnaW5zOwogICAgc3RydWN0IF9leHRyYWN0RGVmICpl
eHRyYWN0czsKfSBzaXBTcGVjOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgX3N0cmluZ0xpc3QgewogICAg
Y29uc3QgY2hhciAqczsKICAgIHN0cnVjdCBfc3RyaW5nTGlzdCAqbmV4dDsKfSBzdHJpbmdMaXN0
OwoKCgoKdHlwZWRlZiBzdHJ1Y3QgX3BhcnNlckNvbnRleHQgewogICAgY29uc3QgY2hhciAqZmls
ZW5hbWU7CiAgICBpbnQgaWZkZXB0aDsKICAgIG1vZHVsZURlZiAqcHJldm1vZDsKfSBwYXJzZXJD
b250ZXh0OwoKCmV4dGVybiBjaGFyICpzaXBWZXJzaW9uOwpleHRlcm4gc3RyaW5nTGlzdCAqaW5j
bHVkZURpckxpc3Q7CgoKdm9pZCBwYXJzZShzaXBTcGVjICosIEZJTEUgKiwgY2hhciAqLCBzdHJp
bmdMaXN0ICosIHN0cmluZ0xpc3QgKiwgS3dBcmdzLCBpbnQpOwp2b2lkIHBhcnNlckVPRihjaGFy
ICoscGFyc2VyQ29udGV4dCAqKTsKdm9pZCB0cmFuc2Zvcm0oc2lwU3BlYyAqKTsKdm9pZCBnZW5l
cmF0ZUNvZGUoc2lwU3BlYyAqLCBjaGFyICosIGNoYXIgKiwgY2hhciAqLCBjb25zdCBjaGFyICos
IGludCwgaW50LAogICAgICAgIGludCwgaW50LCBzdHJpbmdMaXN0ICosIGNvbnN0IGNoYXIgKiwg
aW50LCBpbnQpOwp2b2lkIGdlbmVyYXRlRXh0cmFjdHMoc2lwU3BlYyAqcHQsIGNvbnN0IHN0cmlu
Z0xpc3QgKmV4dHJhY3RzKTsKdm9pZCBhZGRFeHRyYWN0UGFydChzaXBTcGVjICpwdCwgY29uc3Qg
Y2hhciAqaWQsIGludCBvcmRlciwgY29kZUJsb2NrICpwYXJ0KTsKdm9pZCBnZW5lcmF0ZUFQSShz
aXBTcGVjICpwdCwgbW9kdWxlRGVmICptb2QsIGNvbnN0IGNoYXIgKmFwaUZpbGUpOwp2b2lkIGdl
bmVyYXRlWE1MKHNpcFNwZWMgKnB0LCBtb2R1bGVEZWYgKm1vZCwgY29uc3QgY2hhciAqeG1sRmls
ZSk7CnZvaWQgZ2VuZXJhdGVFeHByZXNzaW9uKHZhbHVlRGVmICp2ZCwgaW50IGluX3N0ciwgRklM
RSAqZnApOwp2b2lkIHdhcm5pbmcoV2FybmluZyB3LCBjb25zdCBjaGFyICpmbXQsIC4uLik7CnZv
aWQgZGVwcmVjYXRlZChjb25zdCBjaGFyICptc2cpOwp2b2lkIGZhdGFsKGNoYXIgKiwuLi4pOwp2
b2lkIGZhdGFsU2NvcGVkTmFtZShzY29wZWROYW1lRGVmICopOwppbnQgc2V0SW5wdXRGaWxlKEZJ
TEUgKm9wZW5fZnAsIHBhcnNlckNvbnRleHQgKnBjLCBpbnQgb3B0aW9uYWwpOwp2b2lkIHJlc2V0
TGV4ZXJTdGF0ZSgpOwp2b2lkICpzaXBNYWxsb2Moc2l6ZV90IG4pOwp2b2lkICpzaXBDYWxsb2Mo
c2l6ZV90IG5yLCBzaXplX3Qgbik7CmNoYXIgKnNpcFN0cmR1cChjb25zdCBjaGFyICopOwpjaGFy
ICpjb25jYXQoY29uc3QgY2hhciAqLCAuLi4pOwp2b2lkIGFwcGVuZChjaGFyICoqLCBjb25zdCBj
aGFyICopOwp2b2lkIGFkZFRvVXNlZExpc3QoaWZhY2VGaWxlTGlzdCAqKiwgaWZhY2VGaWxlRGVm
ICopOwppbnQgZXhjbHVkZWRGZWF0dXJlKHN0cmluZ0xpc3QgKixxdWFsRGVmICopOwppbnQgc2Ft
ZVNpZ25hdHVyZShzaWduYXR1cmVEZWYgKixzaWduYXR1cmVEZWYgKixpbnQpOwppbnQgc2FtZVRl
bXBsYXRlU2lnbmF0dXJlKHNpZ25hdHVyZURlZiAqdG1wbF9zZCwgc2lnbmF0dXJlRGVmICphcmdz
X3NkLAogICAgICAgIGludCBkZWVwKTsKaW50IGNvbXBhcmVTY29wZWROYW1lcyhzY29wZWROYW1l
RGVmICpzbmQxLCBzY29wZWROYW1lRGVmICpzbmQyKTsKaW50IHNhbWVCYXNlVHlwZShhcmdEZWYg
KixhcmdEZWYgKik7CmNoYXIgKnNjb3BlZE5hbWVUYWlsKHNjb3BlZE5hbWVEZWYgKik7CnNjb3Bl
ZE5hbWVEZWYgKmNvcHlTY29wZWROYW1lKHNjb3BlZE5hbWVEZWYgKik7CnZvaWQgYXBwZW5kU2Nv
cGVkTmFtZShzY29wZWROYW1lRGVmICoqLHNjb3BlZE5hbWVEZWYgKik7CnZvaWQgZnJlZVNjb3Bl
ZE5hbWUoc2NvcGVkTmFtZURlZiAqKTsKdm9pZCBhcHBlbmRUb0NsYXNzTGlzdChjbGFzc0xpc3Qg
KiosY2xhc3NEZWYgKik7CnZvaWQgYXBwZW5kQ29kZUJsb2NrTGlzdChjb2RlQmxvY2tMaXN0ICoq
aGVhZHAsIGNvZGVCbG9ja0xpc3QgKmNibCk7CnZvaWQgcHJjb2RlKEZJTEUgKmZwLCBjb25zdCBj
aGFyICpmbXQsIC4uLik7CnZvaWQgcHJPdmVybG9hZE5hbWUoRklMRSAqZnAsIG92ZXJEZWYgKm9k
KTsKdm9pZCBwck92ZXJsb2FkRGVjbChGSUxFICpmcCwgaWZhY2VGaWxlRGVmICpzY29wZSwgb3Zl
ckRlZiAqb2QsIGludCBkZWZ2YWwpOwp2b2lkIHByU2NvcGVkUHl0aG9uTmFtZShGSUxFICpmcCwg
Y2xhc3NEZWYgKnNjb3BlLCBjb25zdCBjaGFyICpweW5hbWUpOwppbnQgcHJQeXRob25TaWduYXR1
cmUoc2lwU3BlYyAqcHQsIEZJTEUgKmZwLCBzaWduYXR1cmVEZWYgKnNkLCBpbnQgc2VjLAogICAg
ICAgIGludCBuYW1lcywgaW50IGRlZmF1bHRzLCBpbnQgaW5fc3RyLCBpbnQgaXNfc2lnbmFsKTsK
dm9pZCBzZWFyY2hUeXBlZGVmcyhzaXBTcGVjICpwdCwgc2NvcGVkTmFtZURlZiAqc25kLCBhcmdE
ZWYgKmFkKTsKaW50IGlzWmVyb0FyZ1Nsb3QobWVtYmVyRGVmICptZCk7CmludCBpc0ludFJldHVy
blNsb3QobWVtYmVyRGVmICptZCk7CmludCBpc1NTaXplUmV0dXJuU2xvdChtZW1iZXJEZWYgKm1k
KTsKaW50IGlzTG9uZ1JldHVyblNsb3QobWVtYmVyRGVmICptZCk7CmludCBpc1ZvaWRSZXR1cm5T
bG90KG1lbWJlckRlZiAqbWQpOwppbnQgaXNOdW1iZXJTbG90KG1lbWJlckRlZiAqbWQpOwppbnQg
aXNSaWNoQ29tcGFyZVNsb3QobWVtYmVyRGVmICptZCk7Cm1hcHBlZFR5cGVEZWYgKmFsbG9jTWFw
cGVkVHlwZShzaXBTcGVjICpwdCwgYXJnRGVmICp0eXBlKTsKdm9pZCBhcHBlbmRTdHJpbmcoc3Ry
aW5nTGlzdCAqKmhlYWRwLCBjb25zdCBjaGFyICpzKTsKdm9pZCBhcHBlbmRUeXBlU3RyaW5ncyhz
Y29wZWROYW1lRGVmICplbmFtZSwgc2lnbmF0dXJlRGVmICpwYXR0LCBzaWduYXR1cmVEZWYgKnNy
Yywgc2lnbmF0dXJlRGVmICprbm93biwgc2NvcGVkTmFtZURlZiAqKm5hbWVzLCBzY29wZWROYW1l
RGVmICoqdmFsdWVzKTsKY29kZUJsb2NrTGlzdCAqdGVtcGxhdGVDb2RlKHNpcFNwZWMgKnB0LCBp
ZmFjZUZpbGVMaXN0ICoqdXNlZCwKICAgICAgICBjb2RlQmxvY2tMaXN0ICpvY2JsLCBzY29wZWRO
YW1lRGVmICpuYW1lcywgc2NvcGVkTmFtZURlZiAqdmFsdWVzKTsKaWZhY2VGaWxlRGVmICpmaW5k
SWZhY2VGaWxlKHNpcFNwZWMgKnB0LCBtb2R1bGVEZWYgKm1vZCwKICAgICAgICBzY29wZWROYW1l
RGVmICpmcW5hbWUsIGlmYWNlRmlsZVR5cGUgaWZ0eXBlLAogICAgICAgIGFwaVZlcnNpb25SYW5n
ZURlZiAqYXBpX3JhbmdlLCBhcmdEZWYgKmFkKTsKaW50IHBsdWdpblB5UXQzKHNpcFNwZWMgKnB0
KTsKaW50IHBsdWdpblB5UXQ0KHNpcFNwZWMgKnB0KTsKdm9pZCB5eXdhcm5pbmcoY2hhciAqKTsK
bmFtZURlZiAqY2FjaGVOYW1lKHNpcFNwZWMgKnB0LCBjb25zdCBjaGFyICpuYW1lKTsKc2NvcGVk
TmFtZURlZiAqZW5jb2RlZFRlbXBsYXRlTmFtZSh0ZW1wbGF0ZURlZiAqdGQpOwphcGlWZXJzaW9u
UmFuZ2VEZWYgKmZpbmRBUEkoc2lwU3BlYyAqcHQsIGNvbnN0IGNoYXIgKm5hbWUpOwptZW1iZXJE
ZWYgKmZpbmRNZXRob2QoY2xhc3NEZWYgKmNkLCBjb25zdCBjaGFyICpuYW1lKTsKIyAxMjQ3ICJz
aXAuaCIKdHlwZWRlZiBlbnVtIHsKICAgIGJvb2xfZmxhZywKICAgIHN0cmluZ19mbGFnLAogICAg
bmFtZV9mbGFnLAogICAgb3B0X25hbWVfZmxhZywKICAgIGRvdHRlZF9uYW1lX2ZsYWcsCiAgICBp
bnRlZ2VyX2ZsYWcsCiAgICBvcHRfaW50ZWdlcl9mbGFnLAogICAgYXBpX3JhbmdlX2ZsYWcKfSBm
bGFnVHlwZTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGNvbnN0IGNoYXIgKmZuYW1lOwogICAgZmxh
Z1R5cGUgZnR5cGU7CiAgICB1bmlvbiB7CiAgICAgICAgY2hhciAqc3ZhbDsKICAgICAgICBsb25n
IGl2YWw7CiAgICAgICAgYXBpVmVyc2lvblJhbmdlRGVmICphdmFsOwogICAgfSBmdmFsdWU7Cn0g
b3B0RmxhZzsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGludCBuckZsYWdzOwogICAgb3B0RmxhZyBm
bGFnc1s1XTsKfSBvcHRGbGFnczsKCgoKCgp0eXBlZGVmIHN0cnVjdCBfYXBpQ2ZnIHsKICAgIGlu
dCB0b2tlbjsKICAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgICBpbnQgdmVyc2lvbjsKfSBhcGlDZmc7
CgoKdHlwZWRlZiBzdHJ1Y3QgX2F1dG9QeU5hbWVDZmcgewogICAgaW50IHRva2VuOwogICAgY29u
c3QgY2hhciAqcmVtb3ZlX2xlYWRpbmc7Cn0gYXV0b1B5TmFtZUNmZzsKCgp0eXBlZGVmIHN0cnVj
dCBfY29tcE1vZHVsZUNmZyB7CiAgICBpbnQgdG9rZW47CiAgICBjb25zdCBjaGFyICpuYW1lOwog
ICAgY29kZUJsb2NrICpkb2NzdHJpbmc7Cn0gY29tcE1vZHVsZUNmZzsKCgp0eXBlZGVmIHN0cnVj
dCBfY29uc01vZHVsZUNmZyB7CiAgICBpbnQgdG9rZW47CiAgICBjb25zdCBjaGFyICpuYW1lOwog
ICAgY29kZUJsb2NrICpkb2NzdHJpbmc7Cn0gY29uc01vZHVsZUNmZzsKCgp0eXBlZGVmIHN0cnVj
dCBfZGVmRW5jb2RpbmdDZmcgewogICAgaW50IHRva2VuOwogICAgY29uc3QgY2hhciAqbmFtZTsK
fSBkZWZFbmNvZGluZ0NmZzsKCgp0eXBlZGVmIHN0cnVjdCBfZGVmTWV0YXR5cGVDZmcgewogICAg
aW50IHRva2VuOwogICAgY29uc3QgY2hhciAqbmFtZTsKfSBkZWZNZXRhdHlwZUNmZzsKCgp0eXBl
ZGVmIHN0cnVjdCBfZGVmU3VwZXJ0eXBlQ2ZnIHsKICAgIGludCB0b2tlbjsKICAgIGNvbnN0IGNo
YXIgKm5hbWU7Cn0gZGVmU3VwZXJ0eXBlQ2ZnOwoKCnR5cGVkZWYgc3RydWN0IF9leGNlcHRpb25D
ZmcgewogICAgaW50IHRva2VuOwogICAgY29kZUJsb2NrICp0eXBlX2hlYWRlcl9jb2RlOwogICAg
Y29kZUJsb2NrICpyYWlzZV9jb2RlOwp9IGV4Y2VwdGlvbkNmZzsKCgp0eXBlZGVmIHN0cnVjdCBf
ZXh0cmFjdENmZyB7CiAgICBpbnQgdG9rZW47CiAgICBjb25zdCBjaGFyICppZDsKICAgIGludCBv
cmRlcjsKfSBleHRyYWN0Q2ZnOwoKCnR5cGVkZWYgc3RydWN0IF9mZWF0dXJlQ2ZnIHsKICAgIGlu
dCB0b2tlbjsKICAgIGNvbnN0IGNoYXIgKm5hbWU7Cn0gZmVhdHVyZUNmZzsKCgp0eXBlZGVmIHN0
cnVjdCBfaW1wb3J0Q2ZnIHsKICAgIGludCB0b2tlbjsKICAgIGNvbnN0IGNoYXIgKm5hbWU7Cn0g
aW1wb3J0Q2ZnOwoKCnR5cGVkZWYgc3RydWN0IF9pbmNsdWRlQ2ZnIHsKICAgIGludCB0b2tlbjsK
ICAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgICBpbnQgb3B0aW9uYWw7Cn0gaW5jbHVkZUNmZzsKCgp0
eXBlZGVmIHN0cnVjdCBfbGljZW5zZUNmZyB7CiAgICBpbnQgdG9rZW47CiAgICBjb25zdCBjaGFy
ICp0eXBlOwogICAgY29uc3QgY2hhciAqbGljZW5zZWU7CiAgICBjb25zdCBjaGFyICpzaWduYXR1
cmU7CiAgICBjb25zdCBjaGFyICp0aW1lc3RhbXA7Cn0gbGljZW5zZUNmZzsKCgp0eXBlZGVmIHN0
cnVjdCBfbW9kdWxlQ2ZnIHsKICAgIGludCB0b2tlbjsKICAgIGludCBjX21vZHVsZTsKICAgIEt3
QXJncyBrd2FyZ3M7CiAgICBjb25zdCBjaGFyICpuYW1lOwogICAgaW50IHVzZV9hcmdfbmFtZXM7
CiAgICBpbnQgdmVyc2lvbjsKICAgIGNvZGVCbG9jayAqZG9jc3RyaW5nOwp9IG1vZHVsZUNmZzsK
Cgp0eXBlZGVmIHN0cnVjdCBfcGx1Z2luQ2ZnIHsKICAgIGludCB0b2tlbjsKICAgIGNvbnN0IGNo
YXIgKm5hbWU7Cn0gcGx1Z2luQ2ZnOwoKCnR5cGVkZWYgc3RydWN0IF9wcm9wZXJ0eUNmZyB7CiAg
ICBpbnQgdG9rZW47CiAgICBjb25zdCBjaGFyICpnZXQ7CiAgICBjb25zdCBjaGFyICpuYW1lOwog
ICAgY29uc3QgY2hhciAqc2V0OwogICAgY29kZUJsb2NrICpkb2NzdHJpbmc7Cn0gcHJvcGVydHlD
Zmc7CgoKdHlwZWRlZiBzdHJ1Y3QgX3ZhcmlhYmxlQ2ZnIHsKICAgIGludCB0b2tlbjsKICAgIGNv
ZGVCbG9jayAqYWNjZXNzX2NvZGU7CiAgICBjb2RlQmxvY2sgKmdldF9jb2RlOwogICAgY29kZUJs
b2NrICpzZXRfY29kZTsKfSB2YXJpYWJsZUNmZzsKIyAyNiAiL2hvbWUvcGhpbC9oZy9zaXAvc2lw
LTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIgMgojIDEgInBhcnNlci5oIiAxCiMgNDEgInBhcnNlci5o
IgogICBlbnVtIHl5dG9rZW50eXBlIHsKICAgICBUS19BUEkgPSAyNTgsCiAgICAgVEtfQVVUT1BZ
TkFNRSA9IDI1OSwKICAgICBUS19ERUZFTkNPRElORyA9IDI2MCwKICAgICBUS19QTFVHSU4gPSAy
NjEsCiAgICAgVEtfRE9DU1RSSU5HID0gMjYyLAogICAgIFRLX0RPQyA9IDI2MywKICAgICBUS19F
WFBPUlRFRERPQyA9IDI2NCwKICAgICBUS19FWFRSQUNUID0gMjY1LAogICAgIFRLX01BS0VGSUxF
ID0gMjY2LAogICAgIFRLX0FDQ0VTU0NPREUgPSAyNjcsCiAgICAgVEtfR0VUQ09ERSA9IDI2OCwK
ICAgICBUS19TRVRDT0RFID0gMjY5LAogICAgIFRLX1BSRUlOSVRDT0RFID0gMjcwLAogICAgIFRL
X0lOSVRDT0RFID0gMjcxLAogICAgIFRLX1BPU1RJTklUQ09ERSA9IDI3MiwKICAgICBUS19VTklU
Q09ERSA9IDI3MywKICAgICBUS19VTklUUE9TVElOQ0xVREVDT0RFID0gMjc0LAogICAgIFRLX01P
RENPREUgPSAyNzUsCiAgICAgVEtfVFlQRUNPREUgPSAyNzYsCiAgICAgVEtfUFJFUFlDT0RFID0g
Mjc3LAogICAgIFRLX0NPUFlJTkcgPSAyNzgsCiAgICAgVEtfTUFQUEVEVFlQRSA9IDI3OSwKICAg
ICBUS19DT0RFTElORSA9IDI4MCwKICAgICBUS19JRiA9IDI4MSwKICAgICBUS19FTkQgPSAyODIs
CiAgICAgVEtfTkFNRV9WQUxVRSA9IDI4MywKICAgICBUS19QQVRIX1ZBTFVFID0gMjg0LAogICAg
IFRLX1NUUklOR19WQUxVRSA9IDI4NSwKICAgICBUS19WSVJUVUFMQ0FUQ0hFUkNPREUgPSAyODYs
CiAgICAgVEtfVFJBVkVSU0VDT0RFID0gMjg3LAogICAgIFRLX0NMRUFSQ09ERSA9IDI4OCwKICAg
ICBUS19HRVRCVUZGRVJDT0RFID0gMjg5LAogICAgIFRLX1JFTEVBU0VCVUZGRVJDT0RFID0gMjkw
LAogICAgIFRLX1JFQURCVUZGRVJDT0RFID0gMjkxLAogICAgIFRLX1dSSVRFQlVGRkVSQ09ERSA9
IDI5MiwKICAgICBUS19TRUdDT1VOVENPREUgPSAyOTMsCiAgICAgVEtfQ0hBUkJVRkZFUkNPREUg
PSAyOTQsCiAgICAgVEtfUElDS0xFQ09ERSA9IDI5NSwKICAgICBUS19NRVRIT0RDT0RFID0gMjk2
LAogICAgIFRLX0ZST01UWVBFID0gMjk3LAogICAgIFRLX1RPVFlQRSA9IDI5OCwKICAgICBUS19U
T1NVQkNMQVNTID0gMjk5LAogICAgIFRLX0lOQ0xVREUgPSAzMDAsCiAgICAgVEtfT1BUSU5DTFVE
RSA9IDMwMSwKICAgICBUS19JTVBPUlQgPSAzMDIsCiAgICAgVEtfRVhQSEVBREVSQ09ERSA9IDMw
MywKICAgICBUS19NT0RIRUFERVJDT0RFID0gMzA0LAogICAgIFRLX1RZUEVIRUFERVJDT0RFID0g
MzA1LAogICAgIFRLX01PRFVMRSA9IDMwNiwKICAgICBUS19DTU9EVUxFID0gMzA3LAogICAgIFRL
X0NPTlNNT0RVTEUgPSAzMDgsCiAgICAgVEtfQ09NUE9NT0RVTEUgPSAzMDksCiAgICAgVEtfQ0xB
U1MgPSAzMTAsCiAgICAgVEtfU1RSVUNUID0gMzExLAogICAgIFRLX1BVQkxJQyA9IDMxMiwKICAg
ICBUS19QUk9URUNURUQgPSAzMTMsCiAgICAgVEtfUFJJVkFURSA9IDMxNCwKICAgICBUS19TSUdO
QUxTID0gMzE1LAogICAgIFRLX1NJR05BTF9NRVRIT0QgPSAzMTYsCiAgICAgVEtfU0xPVFMgPSAz
MTcsCiAgICAgVEtfU0xPVF9NRVRIT0QgPSAzMTgsCiAgICAgVEtfQk9PTCA9IDMxOSwKICAgICBU
S19TSE9SVCA9IDMyMCwKICAgICBUS19JTlQgPSAzMjEsCiAgICAgVEtfTE9ORyA9IDMyMiwKICAg
ICBUS19GTE9BVCA9IDMyMywKICAgICBUS19ET1VCTEUgPSAzMjQsCiAgICAgVEtfQ0hBUiA9IDMy
NSwKICAgICBUS19XQ0hBUl9UID0gMzI2LAogICAgIFRLX1ZPSUQgPSAzMjcsCiAgICAgVEtfUFlP
QkpFQ1QgPSAzMjgsCiAgICAgVEtfUFlUVVBMRSA9IDMyOSwKICAgICBUS19QWUxJU1QgPSAzMzAs
CiAgICAgVEtfUFlESUNUID0gMzMxLAogICAgIFRLX1BZQ0FMTEFCTEUgPSAzMzIsCiAgICAgVEtf
UFlTTElDRSA9IDMzMywKICAgICBUS19QWVRZUEUgPSAzMzQsCiAgICAgVEtfVklSVFVBTCA9IDMz
NSwKICAgICBUS19FTlVNID0gMzM2LAogICAgIFRLX1NJR05FRCA9IDMzNywKICAgICBUS19VTlNJ
R05FRCA9IDMzOCwKICAgICBUS19TQ09QRSA9IDMzOSwKICAgICBUS19MT0dJQ0FMX09SID0gMzQw
LAogICAgIFRLX0NPTlNUID0gMzQxLAogICAgIFRLX1NUQVRJQyA9IDM0MiwKICAgICBUS19TSVBT
SUdOQUwgPSAzNDMsCiAgICAgVEtfU0lQU0xPVCA9IDM0NCwKICAgICBUS19TSVBBTllTTE9UID0g
MzQ1LAogICAgIFRLX1NJUFJYQ09OID0gMzQ2LAogICAgIFRLX1NJUFJYRElTID0gMzQ3LAogICAg
IFRLX1NJUFNMT1RDT04gPSAzNDgsCiAgICAgVEtfU0lQU0xPVERJUyA9IDM0OSwKICAgICBUS19T
SVBTU0laRVQgPSAzNTAsCiAgICAgVEtfTlVNQkVSX1ZBTFVFID0gMzUxLAogICAgIFRLX1JFQUxf
VkFMVUUgPSAzNTIsCiAgICAgVEtfVFlQRURFRiA9IDM1MywKICAgICBUS19OQU1FU1BBQ0UgPSAz
NTQsCiAgICAgVEtfVElNRUxJTkUgPSAzNTUsCiAgICAgVEtfUExBVEZPUk1TID0gMzU2LAogICAg
IFRLX0ZFQVRVUkUgPSAzNTcsCiAgICAgVEtfTElDRU5TRSA9IDM1OCwKICAgICBUS19RQ0hBUl9W
QUxVRSA9IDM1OSwKICAgICBUS19UUlVFX1ZBTFVFID0gMzYwLAogICAgIFRLX0ZBTFNFX1ZBTFVF
ID0gMzYxLAogICAgIFRLX05VTExfVkFMVUUgPSAzNjIsCiAgICAgVEtfT1BFUkFUT1IgPSAzNjMs
CiAgICAgVEtfVEhST1cgPSAzNjQsCiAgICAgVEtfUU9CSkVDVCA9IDM2NSwKICAgICBUS19FWENF
UFRJT04gPSAzNjYsCiAgICAgVEtfUkFJU0VDT0RFID0gMzY3LAogICAgIFRLX0VYUExJQ0lUID0g
MzY4LAogICAgIFRLX1RFTVBMQVRFID0gMzY5LAogICAgIFRLX0VMTElQU0lTID0gMzcwLAogICAg
IFRLX0RFRk1FVEFUWVBFID0gMzcxLAogICAgIFRLX0RFRlNVUEVSVFlQRSA9IDM3MiwKICAgICBU
S19QUk9QRVJUWSA9IDM3MywKICAgICBUS19HRVQgPSAzNzQsCiAgICAgVEtfSUQgPSAzNzUsCiAg
ICAgVEtfS1dBUkdTID0gMzc2LAogICAgIFRLX0xBTkdVQUdFID0gMzc3LAogICAgIFRLX0xJQ0VO
U0VFID0gMzc4LAogICAgIFRLX05BTUUgPSAzNzksCiAgICAgVEtfT1BUSU9OQUwgPSAzODAsCiAg
ICAgVEtfT1JERVIgPSAzODEsCiAgICAgVEtfUkVNT1ZFTEVBRElORyA9IDM4MiwKICAgICBUS19T
RVQgPSAzODMsCiAgICAgVEtfU0lHTkFUVVJFID0gMzg0LAogICAgIFRLX1RJTUVTVEFNUCA9IDM4
NSwKICAgICBUS19UWVBFID0gMzg2LAogICAgIFRLX1VTRUFSR05BTUVTID0gMzg3LAogICAgIFRL
X1ZFUlNJT04gPSAzODgKICAgfTsKIyAzMTIgInBhcnNlci5oIgp0eXBlZGVmIHVuaW9uIFlZU1RZ
UEUKewojIDE3MCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vcGFyc2VyLnki
CgogICAgY2hhciBxY2hhcjsKICAgIGNoYXIgKnRleHQ7CiAgICBsb25nIG51bWJlcjsKICAgIGRv
dWJsZSByZWFsOwogICAgYXJnRGVmIG1lbUFyZzsKICAgIHNpZ25hdHVyZURlZiBzaWduYXR1cmU7
CiAgICBzaWduYXR1cmVEZWYgKm9wdHNpZ25hdHVyZTsKICAgIHRocm93QXJncyAqdGhyb3dsaXN0
OwogICAgY29kZUJsb2NrICpjb2RlYjsKICAgIHZhbHVlRGVmIHZhbHVlOwogICAgdmFsdWVEZWYg
KnZhbHA7CiAgICBvcHRGbGFncyBvcHRmbGFnczsKICAgIG9wdEZsYWcgZmxhZzsKICAgIHNjb3Bl
ZE5hbWVEZWYgKnNjcHZhbHA7CiAgICBmY2FsbERlZiBmY2FsbDsKICAgIGludCBib29sZWFuOwog
ICAgZXhjZXB0aW9uRGVmIGV4Y2VwdGlvbmJhc2U7CiAgICBjbGFzc0RlZiAqa2xhc3M7CiAgICBh
cGlDZmcgYXBpOwogICAgYXV0b1B5TmFtZUNmZyBhdXRvcHluYW1lOwogICAgY29tcE1vZHVsZUNm
ZyBjb21wbW9kdWxlOwogICAgY29uc01vZHVsZUNmZyBjb25zbW9kdWxlOwogICAgZGVmRW5jb2Rp
bmdDZmcgZGVmZW5jb2Rpbmc7CiAgICBkZWZNZXRhdHlwZUNmZyBkZWZtZXRhdHlwZTsKICAgIGRl
ZlN1cGVydHlwZUNmZyBkZWZzdXBlcnR5cGU7CiAgICBleGNlcHRpb25DZmcgZXhjZXB0aW9uOwog
ICAgZXh0cmFjdENmZyBleHRyYWN0OwogICAgZmVhdHVyZUNmZyBmZWF0dXJlOwogICAgbGljZW5z
ZUNmZyBsaWNlbnNlOwogICAgaW1wb3J0Q2ZnIGltcG9ydDsKICAgIGluY2x1ZGVDZmcgaW5jbHVk
ZTsKICAgIG1vZHVsZUNmZyBtb2R1bGU7CiAgICBwbHVnaW5DZmcgcGx1Z2luOwogICAgcHJvcGVy
dHlDZmcgcHJvcGVydHk7CiAgICB2YXJpYWJsZUNmZyB2YXJpYWJsZTsKIyAzNTggIi9ob21lL3Bo
aWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL3BhcnNlci5oIgp9IFlZU1RZUEU7CgoKCgoKZXh0
ZXJuIFlZU1RZUEUgeXlsdmFsOwojIDI3ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3Np
cGdlbi9sZXhlci5sIiAyCiMgNDEgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2Vu
L2xleGVyLmwiCnN0YXRpYyBzdHJ1Y3QgaW5wdXRGaWxlIHsKICAgIGludCBsaW5lbm87CiAgICBZ
WV9CVUZGRVJfU1RBVEUgYnM7CiAgICBjaGFyICpuYW1lOwogICAgY2hhciAqY3dkOwogICAgcGFy
c2VyQ29udGV4dCBwYzsKfSBpbnB1dEZpbGVTdGFja1sxMF07CgpzdGF0aWMgaW50IGN1cnJlbnRG
aWxlID0gLTE7CnN0YXRpYyBjaGFyIGNvZGVMaW5lWzEwMDAgKyAyXTsKc3RhdGljIGludCBjb2Rl
SWR4ID0gLTE7CnN0YXRpYyBpbnQgcGFyZW5EZXB0aCA9IDA7CgpzdGF0aWMgRklMRSAqb3BlbkZp
bGUoY29uc3QgY2hhciAqKTsKc3RhdGljIHZvaWQgZmF0YWxsZXgoY2hhciAqKTsKIyAxMzkxICIv
aG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5jIgojIDE0MTAgIi9ob21l
L3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmMiCnN0YXRpYyBpbnQgeXlfaW5p
dF9nbG9iYWxzICh2b2lkICk7CgoKCgppbnQgeXlsZXhfZGVzdHJveSAodm9pZCApOwoKaW50IHl5
Z2V0X2RlYnVnICh2b2lkICk7Cgp2b2lkIHl5c2V0X2RlYnVnIChpbnQgZGVidWdfZmxhZyApOwoK
dm9pZCAqIHl5Z2V0X2V4dHJhICh2b2lkICk7Cgp2b2lkIHl5c2V0X2V4dHJhICh2b2lkICogdXNl
cl9kZWZpbmVkICk7CgpGSUxFICp5eWdldF9pbiAodm9pZCApOwoKdm9pZCB5eXNldF9pbiAoRklM
RSAqIGluX3N0ciApOwoKRklMRSAqeXlnZXRfb3V0ICh2b2lkICk7Cgp2b2lkIHl5c2V0X291dCAo
RklMRSAqIG91dF9zdHIgKTsKCmludCB5eWdldF9sZW5nICh2b2lkICk7CgpjaGFyICp5eWdldF90
ZXh0ICh2b2lkICk7CgppbnQgeXlnZXRfbGluZW5vICh2b2lkICk7Cgp2b2lkIHl5c2V0X2xpbmVu
byAoaW50IGxpbmVfbnVtYmVyICk7CiMgMTQ0OSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIu
My9zaXBnZW4vbGV4ZXIuYyIKZXh0ZXJuIGludCB5eXdyYXAgKHZvaWQgKTsKCgoKICAgIHN0YXRp
YyB2b2lkIHl5dW5wdXQgKGludCBjLGNoYXIgKmJ1Zl9wdHIgKTsKIyAxNDY4ICIvaG9tZS9waGls
L2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5jIgpzdGF0aWMgaW50IGlucHV0ICh2b2lk
ICk7CgoKCgogICAgICAgIHN0YXRpYyBpbnQgeXlfc3RhcnRfc3RhY2tfcHRyID0gMDsKICAgICAg
ICBzdGF0aWMgaW50IHl5X3N0YXJ0X3N0YWNrX2RlcHRoID0gMDsKICAgICAgICBzdGF0aWMgaW50
ICp5eV9zdGFydF9zdGFjayA9ICgodm9pZCAqKTApOwoKICAgIHN0YXRpYyB2b2lkIHl5X3B1c2hf
c3RhdGUgKGludCBuZXdfc3RhdGUgKTsKCiAgICBzdGF0aWMgdm9pZCB5eV9wb3Bfc3RhdGUgKHZv
aWQgKTsKCiAgICBzdGF0aWMgaW50IHl5X3RvcF9zdGF0ZSAodm9pZCApOwojIDE1NjMgIi9ob21l
L3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmMiCmV4dGVybiBpbnQgeXlsZXgg
KHZvaWQpOwojIDE1ODggIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVy
LmMiCmludCB5eWxleCAodm9pZCkKewogcmVnaXN0ZXIgeXlfc3RhdGVfdHlwZSB5eV9jdXJyZW50
X3N0YXRlOwogcmVnaXN0ZXIgY2hhciAqeXlfY3AsICp5eV9icDsKIHJlZ2lzdGVyIGludCB5eV9h
Y3Q7CiMgNjUgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCiMg
MTU5OCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIuYyIKCiBpZiAo
ICEoeXlfaW5pdCkgKQogIHsKICAoeXlfaW5pdCkgPSAxOwoKCgoKCiAgaWYgKCAhICh5eV9zdGFy
dCkgKQogICAoeXlfc3RhcnQpID0gMTsKCiAgaWYgKCAhIHl5aW4gKQogICB5eWluID0gc3RkaW47
CgogIGlmICggISB5eW91dCApCiAgIHl5b3V0ID0gc3Rkb3V0OwoKICBpZiAoICEgKCAoeXlfYnVm
ZmVyX3N0YWNrKSA/ICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0gOiAo
KHZvaWQgKikwKSkgKSB7CiAgIHl5ZW5zdXJlX2J1ZmZlcl9zdGFjayAoKTsKICAgKHl5X2J1ZmZl
cl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXSA9CiAgICB5eV9jcmVhdGVfYnVmZmVyKHl5
aW4sMTYzODQgKTsKICB9CgogIHl5X2xvYWRfYnVmZmVyX3N0YXRlKCApOwogIH0KCiB3aGlsZSAo
IDEgKQogIHsKICB5eV9jcCA9ICh5eV9jX2J1Zl9wKTsKCgogICp5eV9jcCA9ICh5eV9ob2xkX2No
YXIpOwoKCgoKICB5eV9icCA9IHl5X2NwOwoKICB5eV9jdXJyZW50X3N0YXRlID0gKHl5X3N0YXJ0
KTsKICB5eV9jdXJyZW50X3N0YXRlICs9ICgoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0
YWNrX3RvcCldLT55eV9hdF9ib2wpOwp5eV9tYXRjaDoKICBkbwogICB7CiAgIHJlZ2lzdGVyIFlZ
X0NIQVIgeXlfYyA9IHl5X2VjWygodW5zaWduZWQgaW50KSAodW5zaWduZWQgY2hhcikgKnl5X2Nw
KV07CiAgIGlmICggeXlfYWNjZXB0W3l5X2N1cnJlbnRfc3RhdGVdICkKICAgIHsKICAgICh5eV9s
YXN0X2FjY2VwdGluZ19zdGF0ZSkgPSB5eV9jdXJyZW50X3N0YXRlOwogICAgKHl5X2xhc3RfYWNj
ZXB0aW5nX2Nwb3MpID0geXlfY3A7CiAgICB9CiAgIHdoaWxlICggeXlfY2hrW3l5X2Jhc2VbeXlf
Y3VycmVudF9zdGF0ZV0gKyB5eV9jXSAhPSB5eV9jdXJyZW50X3N0YXRlICkKICAgIHsKICAgIHl5
X2N1cnJlbnRfc3RhdGUgPSAoaW50KSB5eV9kZWZbeXlfY3VycmVudF9zdGF0ZV07CiAgICBpZiAo
IHl5X2N1cnJlbnRfc3RhdGUgPj0gMTAyNyApCiAgICAgeXlfYyA9IHl5X21ldGFbKHVuc2lnbmVk
IGludCkgeXlfY107CiAgICB9CiAgIHl5X2N1cnJlbnRfc3RhdGUgPSB5eV9ueHRbeXlfYmFzZVt5
eV9jdXJyZW50X3N0YXRlXSArICh1bnNpZ25lZCBpbnQpIHl5X2NdOwogICArK3l5X2NwOwogICB9
CiAgd2hpbGUgKCB5eV9iYXNlW3l5X2N1cnJlbnRfc3RhdGVdICE9IDIzNDMgKTsKCnl5X2ZpbmRf
YWN0aW9uOgogIHl5X2FjdCA9IHl5X2FjY2VwdFt5eV9jdXJyZW50X3N0YXRlXTsKICBpZiAoIHl5
X2FjdCA9PSAwICkKICAgewogICB5eV9jcCA9ICh5eV9sYXN0X2FjY2VwdGluZ19jcG9zKTsKICAg
eXlfY3VycmVudF9zdGF0ZSA9ICh5eV9sYXN0X2FjY2VwdGluZ19zdGF0ZSk7CiAgIHl5X2FjdCA9
IHl5X2FjY2VwdFt5eV9jdXJyZW50X3N0YXRlXTsKICAgfQoKICAoeXl0ZXh0KSA9IHl5X2JwOyB5
eWxlbmcgPSAoc2l6ZV90KSAoeXlfY3AgLSB5eV9icCk7ICh5eV9ob2xkX2NoYXIpID0gKnl5X2Nw
OyAqeXlfY3AgPSAnXDAnOyAoeXlfY19idWZfcCkgPSB5eV9jcDs7Cgpkb19hY3Rpb246CgogIHN3
aXRjaCAoIHl5X2FjdCApCiB7CiAgIGNhc2UgMDoKCiAgICp5eV9jcCA9ICh5eV9ob2xkX2NoYXIp
OwogICB5eV9jcCA9ICh5eV9sYXN0X2FjY2VwdGluZ19jcG9zKTsKICAgeXlfY3VycmVudF9zdGF0
ZSA9ICh5eV9sYXN0X2FjY2VwdGluZ19zdGF0ZSk7CiAgIGdvdG8geXlfZmluZF9hY3Rpb247Cgpj
YXNlIDE6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3Rh
Y2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgNjcg
Ii9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsoeXlfc3RhcnQp
ID0gMSArIDIgKiA0OyByZXR1cm4gMjU4O30KIGJyZWFrOwpjYXNlIDI6CmlmICggeXlsZW5nID4g
MCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9
ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgNjggIi9ob21lL3BoaWwvaGcvc2lwL3Np
cC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsoeXlfc3RhcnQpID0gMSArIDIgKiA0OyByZXR1cm4g
MjU5O30KIGJyZWFrOwpjYXNlIDM6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2sp
Wyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0g
PT0gJ1xuJyk7CiMgNjkgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVy
LmwiCntyZXR1cm4gMzA3O30KIGJyZWFrOwpjYXNlIDQ6CmlmICggeXlsZW5nID4gMCApICh5eV9i
dWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRb
eXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgNzAgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMv
c2lwZ2VuL2xleGVyLmwiCnsoeXlfc3RhcnQpID0gMSArIDIgKiA0OyByZXR1cm4gMzA5O30KIGJy
ZWFrOwpjYXNlIDU6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZm
ZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7
CiMgNzEgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsoeXlf
c3RhcnQpID0gMSArIDIgKiA0OyByZXR1cm4gMzA4O30KIGJyZWFrOwpjYXNlIDY6CmlmICggeXls
ZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0
X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgNzIgIi9ob21lL3BoaWwvaGcv
c2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsoeXlfc3RhcnQpID0gMSArIDIgKiA0OyBy
ZXR1cm4gMjYwO30KIGJyZWFrOwpjYXNlIDc6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJf
c3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5n
IC0gMV0gPT0gJ1xuJyk7CiMgNzMgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2Vu
L2xleGVyLmwiCnsoeXlfc3RhcnQpID0gMSArIDIgKiA0OyByZXR1cm4gMzcxO30KIGJyZWFrOwpj
YXNlIDg6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3Rh
Y2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgNzQg
Ii9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsoeXlfc3RhcnQp
ID0gMSArIDIgKiA0OyByZXR1cm4gMzcyO30KIGJyZWFrOwpjYXNlIDk6CmlmICggeXlsZW5nID4g
MCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9
ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgNzUgIi9ob21lL3BoaWwvaGcvc2lwL3Np
cC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMjgyO30KIGJyZWFrOwpjYXNlIDEwOgpp
ZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCld
LT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDc2ICIvaG9tZS9w
aGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7KHl5X3N0YXJ0KSA9IDEgKyAy
ICogMDsgcmV0dXJuIDI4Mjt9CiBicmVhazsKY2FzZSAxMToKaWYgKCB5eWxlbmcgPiAwICkgKHl5
X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4
dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyA3NyAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIu
My9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzNjY7fQogYnJlYWs7CmNhc2UgMTI6CmlmICggeXls
ZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0
X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgNzggIi9ob21lL3BoaWwvaGcv
c2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsoeXlfc3RhcnQpID0gMSArIDIgKiA0OyBy
ZXR1cm4gMzU3O30KIGJyZWFrOwpjYXNlIDEzOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVy
X3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVu
ZyAtIDFdID09ICdcbicpOwojIDc5ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdl
bi9sZXhlci5sIgp7cmV0dXJuIDI4MTt9CiBicmVhazsKY2FzZSAxNDoKaWYgKCB5eWxlbmcgPiAw
ICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0g
KHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyA4MCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lw
LTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKeyh5eV9zdGFydCkgPSAxICsgMiAqIDQ7IHJldHVybiAz
MDI7fQogYnJlYWs7CmNhc2UgMTU6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2sp
Wyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0g
PT0gJ1xuJyk7CiMgODEgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVy
LmwiCnsoeXlfc3RhcnQpID0gMSArIDIgKiA0OyByZXR1cm4gMzAwO30KIGJyZWFrOwpjYXNlIDE2
OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3Rv
cCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDgyICIvaG9t
ZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7KHl5X3N0YXJ0KSA9IDEg
KyAyICogNDsgcmV0dXJuIDM1ODt9CiBicmVhazsKY2FzZSAxNzoKaWYgKCB5eWxlbmcgPiAwICkg
KHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5
dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyA4MyAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQu
MTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAyNzk7fQogYnJlYWs7CmNhc2UgMTg6CmlmICgg
eXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5
X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgODQgIi9ob21lL3BoaWwv
aGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsoeXlfc3RhcnQpID0gMSArIDIgKiA0
OyByZXR1cm4gMzA2O30KIGJyZWFrOwpjYXNlIDE5OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVm
ZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5
bGVuZyAtIDFdID09ICdcbicpOwojIDg1ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3Np
cGdlbi9sZXhlci5sIgp7cmV0dXJuIDMwMTt9CiBicmVhazsKY2FzZSAyMDoKaWYgKCB5eWxlbmcg
PiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9s
ID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyA4NiAiL2hvbWUvcGhpbC9oZy9zaXAv
c2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzNTY7fQogYnJlYWs7CmNhc2UgMjE6
CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9w
KV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgODcgIi9ob21l
L3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsoeXlfc3RhcnQpID0gMSAr
IDIgKiA0OyByZXR1cm4gMjYxO30KIGJyZWFrOwpjYXNlIDIyOgppZiAoIHl5bGVuZyA+IDAgKSAo
eXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0
ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDg4ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4x
Mi4zL3NpcGdlbi9sZXhlci5sIgp7KHl5X3N0YXJ0KSA9IDEgKyAyICogNDsgcmV0dXJuIDM3Mzt9
CiBicmVhazsKY2FzZSAyMzoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5
X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAn
XG4nKTsKIyA4OSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIK
e3JldHVybiAzNTU7fQogYnJlYWs7CmNhc2UgMjQ6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZm
ZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXls
ZW5nIC0gMV0gPT0gJ1xuJyk7CiMgOTEgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lw
Z2VuL2xleGVyLmwiCntyZXR1cm4gMzEwO30KIGJyZWFrOwpjYXNlIDI1OgppZiAoIHl5bGVuZyA+
IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wg
PSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDkyICIvaG9tZS9waGlsL2hnL3NpcC9z
aXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDMxMTt9CiBicmVhazsKY2FzZSAyNjoK
aWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3Ap
XS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyA5MyAiL2hvbWUv
cGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzMTI7fQogYnJl
YWs7CmNhc2UgMjc6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZm
ZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7
CiMgOTQgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1
cm4gMzEzO30KIGJyZWFrOwpjYXNlIDI4OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0
YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAt
IDFdID09ICdcbicpOwojIDk1ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9s
ZXhlci5sIgp7cmV0dXJuIDMxNDt9CiBicmVhazsKY2FzZSAyOToKaWYgKCB5eWxlbmcgPiAwICkg
KHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5
dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyA5NiAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQu
MTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzMTU7fQogYnJlYWs7CmNhc2UgMzA6CmlmICgg
eXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5
X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgOTcgIi9ob21lL3BoaWwv
aGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzE1O30KIGJyZWFrOwpj
YXNlIDMxOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0
YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDk4
ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDMx
Njt9CiBicmVhazsKY2FzZSAzMjoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylb
KHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9
PSAnXG4nKTsKIyA5OSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIu
bCIKe3JldHVybiAzMTc7fQogYnJlYWs7CmNhc2UgMzM6CmlmICggeXlsZW5nID4gMCApICh5eV9i
dWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRb
eXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTAwICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4z
L3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDMxNzt9CiBicmVhazsKY2FzZSAzNDoKaWYgKCB5eWxl
bmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRf
Ym9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxMDEgIi9ob21lL3BoaWwvaGcv
c2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzE4O30KIGJyZWFrOwpjYXNl
IDM1OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNr
X3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDEwMiAi
L2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzMjU7
fQogYnJlYWs7CmNhc2UgMzY6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5
eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0g
J1xuJyk7CiMgMTAzICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5s
Igp7cmV0dXJuIDMyNjt9CiBicmVhazsKY2FzZSAzNzoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1
ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5
eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxMDQgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMv
c2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzE5O30KIGJyZWFrOwpjYXNlIDM4OgppZiAoIHl5bGVu
ZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9i
b2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDEwNSAiL2hvbWUvcGhpbC9oZy9z
aXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzMjA7fQogYnJlYWs7CmNhc2Ug
Mzk6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tf
dG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTA2ICIv
aG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDMyMTt9
CiBicmVhazsKY2FzZSA0MDoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5
X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAn
XG4nKTsKIyAxMDcgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwi
CntyZXR1cm4gMzIyO30KIGJyZWFrOwpjYXNlIDQxOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVm
ZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5
bGVuZyAtIDFdID09ICdcbicpOwojIDEwOCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9z
aXBnZW4vbGV4ZXIubCIKe3JldHVybiAzMjM7fQogYnJlYWs7CmNhc2UgNDI6CmlmICggeXlsZW5n
ID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2Jv
bCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTA5ICIvaG9tZS9waGlsL2hnL3Np
cC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDMyNDt9CiBicmVhazsKY2FzZSA0
MzoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190
b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxMTAgIi9o
b21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzI3O30K
IGJyZWFrOwpjYXNlIDQ0OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlf
YnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdc
bicpOwojIDExMSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIK
e3JldHVybiAzMzU7fQogYnJlYWs7CmNhc2UgNDU6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZm
ZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXls
ZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTEyICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3Np
cGdlbi9sZXhlci5sIgp7cmV0dXJuIDMzNjt9CiBicmVhazsKY2FzZSA0NjoKaWYgKCB5eWxlbmcg
PiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9s
ID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxMTMgIi9ob21lL3BoaWwvaGcvc2lw
L3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzM3O30KIGJyZWFrOwpjYXNlIDQ3
OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3Rv
cCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDExNCAiL2hv
bWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzMzg7fQog
YnJlYWs7CmNhc2UgNDg6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9i
dWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xu
Jyk7CiMgMTE1ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7
cmV0dXJuIDM0MTt9CiBicmVhazsKY2FzZSA0OToKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZl
cl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxl
bmcgLSAxXSA9PSAnXG4nKTsKIyAxMTYgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lw
Z2VuL2xleGVyLmwiCntyZXR1cm4gMzQyO30KIGJyZWFrOwpjYXNlIDUwOgppZiAoIHl5bGVuZyA+
IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wg
PSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDExNyAiL2hvbWUvcGhpbC9oZy9zaXAv
c2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzNjA7fQogYnJlYWs7CmNhc2UgNTE6
CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9w
KV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTE4ICIvaG9t
ZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDM2MTt9CiBi
cmVhazsKY2FzZSA1MjoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1
ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4n
KTsKIyAxMTkgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnty
ZXR1cm4gMzYyO30KIGJyZWFrOwpjYXNlIDUzOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVy
X3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVu
ZyAtIDFdID09ICdcbicpOwojIDEyMCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBn
ZW4vbGV4ZXIubCIKe3JldHVybiAzNTM7fQogYnJlYWs7CmNhc2UgNTQ6CmlmICggeXlsZW5nID4g
MCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9
ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTIxICIvaG9tZS9waGlsL2hnL3NpcC9z
aXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDM1NDt9CiBicmVhazsKY2FzZSA1NToK
aWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3Ap
XS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxMjIgIi9ob21l
L3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzYzO30KIGJy
ZWFrOwpjYXNlIDU2OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVm
ZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicp
OwojIDEyMyAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3Jl
dHVybiAzNjQ7fQogYnJlYWs7CmNhc2UgNTc6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJf
c3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5n
IC0gMV0gPT0gJ1xuJyk7CiMgMTI0ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdl
bi9sZXhlci5sIgp7cmV0dXJuIDM2ODt9CiBicmVhazsKY2FzZSA1ODoKaWYgKCB5eWxlbmcgPiAw
ICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0g
KHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxMjUgIi9ob21lL3BoaWwvaGcvc2lwL3Np
cC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzY5O30KIGJyZWFrOwpjYXNlIDU5Ogpp
ZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCld
LT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDEyNiAiL2hvbWUv
cGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzMzk7fQogYnJl
YWs7CmNhc2UgNjA6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZm
ZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7
CiMgMTI3ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0
dXJuIDM0MDt9CiBicmVhazsKY2FzZSA2MToKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9z
dGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcg
LSAxXSA9PSAnXG4nKTsKIyAxMjggIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2Vu
L2xleGVyLmwiCntyZXR1cm4gMzI4O30KIGJyZWFrOwpjYXNlIDYyOgppZiAoIHl5bGVuZyA+IDAg
KSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAo
eXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDEyOSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lw
LTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzMjk7fQogYnJlYWs7CmNhc2UgNjM6Cmlm
ICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0t
Pnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTMwICIvaG9tZS9w
aGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDMzMDt9CiBicmVh
azsKY2FzZSA2NDoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZl
cl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsK
IyAxMzEgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1
cm4gMzMxO30KIGJyZWFrOwpjYXNlIDY1OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0
YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAt
IDFdID09ICdcbicpOwojIDEzMiAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4v
bGV4ZXIubCIKe3JldHVybiAzMzI7fQogYnJlYWs7CmNhc2UgNjY6CmlmICggeXlsZW5nID4gMCAp
ICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5
eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTMzICIvaG9tZS9waGlsL2hnL3NpcC9zaXAt
NC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDMzMzt9CiBicmVhazsKY2FzZSA2NzoKaWYg
KCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+
eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxMzQgIi9ob21lL3Bo
aWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzM0O30KIGJyZWFr
OwpjYXNlIDY4OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVy
X3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwoj
IDEzNSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVy
biAzNDM7fQogYnJlYWs7CmNhc2UgNjk6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3Rh
Y2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0g
MV0gPT0gJ1xuJyk7CiMgMTM2ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9s
ZXhlci5sIgp7cmV0dXJuIDM0NDt9CiBicmVhazsKY2FzZSA3MDoKaWYgKCB5eWxlbmcgPiAwICkg
KHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5
dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxMzcgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00
LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzQ1O30KIGJyZWFrOwpjYXNlIDcxOgppZiAo
IHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55
eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDEzOCAiL2hvbWUvcGhp
bC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzNDY7fQogYnJlYWs7
CmNhc2UgNzI6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJf
c3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMg
MTM5ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJu
IDM0Nzt9CiBicmVhazsKY2FzZSA3MzoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFj
aylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAx
XSA9PSAnXG4nKTsKIyAxNDAgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xl
eGVyLmwiCntyZXR1cm4gMzQ4O30KIGJyZWFrOwpjYXNlIDc0OgppZiAoIHl5bGVuZyA+IDAgKSAo
eXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0
ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDE0MSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQu
MTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzNDk7fQogYnJlYWs7CmNhc2UgNzU6CmlmICgg
eXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5
X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTQyICIvaG9tZS9waGls
L2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDM1MDt9CiBicmVhazsK
Y2FzZSA3NjoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9z
dGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAx
NDMgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4g
MzY1O30KIGJyZWFrOwpjYXNlIDc3OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNr
KVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFd
ID09ICdcbicpOwojIDE0NCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4
ZXIubCIKe3JldHVybiAzNzA7fQogYnJlYWs7CmNhc2UgNzg6CmlmICggeXlsZW5nID4gMCApICh5
eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRl
eHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTQ2ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4x
Mi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDM3NDt9CiBicmVhazsKY2FzZSA3OToKaWYgKCB5
eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlf
YXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxNDcgIi9ob21lL3BoaWwv
aGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzc1O30KIGJyZWFrOwpj
YXNlIDgwOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0
YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDE0
OCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAz
NzY7fQogYnJlYWs7CmNhc2UgODE6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2sp
Wyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0g
PT0gJ1xuJyk7CiMgMTQ5ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhl
ci5sIgp7cmV0dXJuIDM3Nzt9CiBicmVhazsKY2FzZSA4MjoKaWYgKCB5eWxlbmcgPiAwICkgKHl5
X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4
dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxNTAgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEy
LjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzc4O30KIGJyZWFrOwpjYXNlIDgzOgppZiAoIHl5
bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9h
dF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDE1MSAiL2hvbWUvcGhpbC9o
Zy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzNzk7fQogYnJlYWs7CmNh
c2UgODQ6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3Rh
Y2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTUy
ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDM4
MDt9CiBicmVhazsKY2FzZSA4NToKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylb
KHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9
PSAnXG4nKTsKIyAxNTMgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVy
LmwiCntyZXR1cm4gMzgxO30KIGJyZWFrOwpjYXNlIDg2OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlf
YnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0
W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDE1NCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIu
My9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzODI7fQogYnJlYWs7CmNhc2UgODc6CmlmICggeXls
ZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0
X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTU1ICIvaG9tZS9waGlsL2hn
L3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDM4Mzt9CiBicmVhazsKY2Fz
ZSA4ODoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFj
a190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxNTYg
Ii9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzg0
O30KIGJyZWFrOwpjYXNlIDg5OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVso
eXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09
ICdcbicpOwojIDE1NyAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIu
bCIKe3JldHVybiAzODU7fQogYnJlYWs7CmNhc2UgOTA6CmlmICggeXlsZW5nID4gMCApICh5eV9i
dWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRb
eXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTU4ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4z
L3NpcGdlbi9sZXhlci5sIgp7cmV0dXJuIDM4Njt9CiBicmVhazsKY2FzZSA5MToKaWYgKCB5eWxl
bmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRf
Ym9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxNTkgIi9ob21lL3BoaWwvaGcv
c2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzg3O30KIGJyZWFrOwpjYXNl
IDkyOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNr
X3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDE2MCAi
L2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKe3JldHVybiAzODg7
fQogYnJlYWs7CmNhc2UgOTM6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5
eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0g
J1xuJyk7CiMgMTYyICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5s
Igp7cmV0dXJuIDM2MDt9CiBicmVhazsKY2FzZSA5NDoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1
ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5
eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAxNjMgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMv
c2lwZ2VuL2xleGVyLmwiCntyZXR1cm4gMzYxO30KIGJyZWFrOwpjYXNlIDk1OgppZiAoIHl5bGVu
ZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9i
b2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDE2NiAiL2hvbWUvcGhpbC9oZy9z
aXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIDsKfQogYnJlYWs7CmNhc2UgOTY6
CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9w
KV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMTcxICIvaG9t
ZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7CgoKCgogICAgKytwYXJl
bkRlcHRoOwoKICAgICh5eV9zdGFydCkgPSAxICsgMiAqIDM7CgogICAgcmV0dXJuICcoJzsKfQog
YnJlYWs7CmNhc2UgOTc6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9i
dWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xu
Jyk7CiMgMTgzICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7
CgogICAgLS1wYXJlbkRlcHRoOwoKICAgICh5eV9zdGFydCkgPSAxICsgMiAqIDA7CgogICAgcmV0
dXJuICcpJzsKfQogYnJlYWs7CmNhc2UgOTg6CgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVy
X3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVu
ZyAtIDFdID09ICdcbicpOwojIDE5MiAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBn
ZW4vbGV4ZXIubCIKewoKICAgICsraW5wdXRGaWxlU3RhY2tbY3VycmVudEZpbGVdLmxpbmVubzsK
CiAgICBpZiAoY29kZUlkeCA9PSAwICYmIHBhcmVuRGVwdGggPT0gMCkKICAgIHsKICAgICAgICAo
eXlfc3RhcnQpID0gMSArIDIgKiAxOwogICAgfQp9CiBicmVhazsKY2FzZSA5OToKaWYgKCB5eWxl
bmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRf
Ym9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAyMDIgIi9ob21lL3BoaWwvaGcv
c2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsKCiAgICA7Cn0KIGJyZWFrOwpjYXNlIDEw
MDoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190
b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAyMDggIi9o
b21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsKCiAgICB5eWx2YWwu
bnVtYmVyID0gc3RydG9sKHl5dGV4dCwoKHZvaWQgKikwKSwwKTsKICAgIHJldHVybiAzNTE7Cn0K
IGJyZWFrOwpjYXNlIDEwMToKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5
X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAn
XG4nKTsKIyAyMTUgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwi
CnsKCiAgICB5eWx2YWwucmVhbCA9IHN0cnRvZCh5eXRleHQsKCh2b2lkICopMCkpOwogICAgcmV0
dXJuIDM1MjsKfQogYnJlYWs7CmNhc2UgMTAyOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVy
X3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVu
ZyAtIDFdID09ICdcbicpOwojIDIyMiAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBn
ZW4vbGV4ZXIubCIKewoKICAgIHl5bHZhbC5udW1iZXIgPSBzdHJ0b2woeXl0ZXh0LCgodm9pZCAq
KTApLDE2KTsKICAgIHJldHVybiAzNTE7Cn0KIGJyZWFrOwpjYXNlIDEwMzoKaWYgKCB5eWxlbmcg
PiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9s
ID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAyMjkgIi9ob21lL3BoaWwvaGcvc2lw
L3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsKCiAgICB5eWx2YWwudGV4dCA9IHNpcFN0cmR1
cCh5eXRleHQpOwogICAgcmV0dXJuIDI4MzsKfQogYnJlYWs7CmNhc2UgMTA0OgppZiAoIHl5bGVu
ZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9i
b2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDIzNiAiL2hvbWUvcGhpbC9oZy9z
aXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIHl5bHZhbC50ZXh0ID0gc2lwU3Ry
ZHVwKHl5dGV4dCk7CiAgICByZXR1cm4gMjg0Owp9CiBicmVhazsKY2FzZSAxMDU6CgppZiAoIHl5
bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9h
dF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDI0MyAiL2hvbWUvcGhpbC9o
Zy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNoYXIgKmRwLCAqc3A7CgoK
CiAgICB5eWx2YWwudGV4dCA9IHNpcE1hbGxvYyhzdHJsZW4oeXl0ZXh0KSArIDEpOwoKICAgIGRw
ID0geXlsdmFsLnRleHQ7CiAgICBzcCA9IHl5dGV4dDsKCiAgICB3aGlsZSAoKnNwICE9ICdcMCcp
CiAgICB7CiAgICAgICAgaWYgKCpzcCAhPSAnIicpCiAgICAgICAgICAgICpkcCsrID0gKnNwOwoK
ICAgICAgICArK3NwOwogICAgfQoKICAgICpkcCA9ICdcMCc7CgogICAgcmV0dXJuIDI4NTsKfQog
YnJlYWs7CmNhc2UgMTA2OgoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5
X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAn
XG4nKTsKIyAyNjggIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwi
CnsKCiAgICBpZiAoc3RybGVuKHl5dGV4dCkgIT0gMykKICAgICAgICBmYXRhbGxleCgiRXhhY3Rs
eSBvbmUgY2hhcmFjdGVyIGV4cGVjdGVkIGJldHdlZW4gc2luZ2xlIHF1b3RlcyIpOwoKICAgIHl5
bHZhbC5xY2hhciA9IHl5dGV4dFsxXTsKCiAgICByZXR1cm4gMzU5Owp9CiBicmVhazsKY2FzZSAx
MDc6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tf
dG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgMjc5ICIv
aG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7CgogICAgeXlfcHVz
aF9zdGF0ZSgyKTsKfQogYnJlYWs7CmNhc2UgMTA4OgoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1
ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5
eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAyODMgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMv
c2lwZ2VuL2xleGVyLmwiCnsKICAgICsraW5wdXRGaWxlU3RhY2tbY3VycmVudEZpbGVdLmxpbmVu
bzsKfQogYnJlYWs7CmNhc2UgMTA5OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNr
KVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFd
ID09ICdcbicpOwojIDI4NiAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4
ZXIubCIKewogICAgeXlfcG9wX3N0YXRlKCk7Cn0KIGJyZWFrOwpjYXNlIDExMDoKaWYgKCB5eWxl
bmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRf
Ym9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyAyODkgIi9ob21lL3BoaWwvaGcv
c2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsKICAgIDsKfQogYnJlYWs7CmNhc2UgMTEx
OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3Rv
cCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDI5NCAiL2hv
bWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHgg
PSAwOwogICAgcmV0dXJuIDI3ODsKfQogYnJlYWs7CmNhc2UgMTEyOgppZiAoIHl5bGVuZyA+IDAg
KSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAo
eXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDMwMCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lw
LTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDI5
NzsKfQogYnJlYWs7CmNhc2UgMTEzOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNr
KVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFd
ID09ICdcbicpOwojIDMwNiAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4
ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDI5ODsKfQogYnJlYWs7CmNhc2Ug
MTE0OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNr
X3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDMxMiAi
L2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJ
ZHggPSAwOwogICAgcmV0dXJuIDI5OTsKfQogYnJlYWs7CmNhc2UgMTE1OgppZiAoIHl5bGVuZyA+
IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wg
PSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDMxOCAiL2hvbWUvcGhpbC9oZy9zaXAv
c2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJu
IDMwMzsKfQogYnJlYWs7CmNhc2UgMTE2OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0
YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAt
IDFdID09ICdcbicpOwojIDMyNCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4v
bGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwoKICAgICh5eV9zdGFydCkgPSAxICsgMiAqIDQ7
CgogICAgcmV0dXJuIDI2NTsKfQogYnJlYWs7CmNhc2UgMTE3OgppZiAoIHl5bGVuZyA+IDAgKSAo
eXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0
ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDMzMyAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQu
MTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDMwNDsK
fQogYnJlYWs7CmNhc2UgMTE4OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVso
eXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09
ICdcbicpOwojIDMzOSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIu
bCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDMwNTsKfQogYnJlYWs7CmNhc2UgMTE5
OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3Rv
cCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDM0NSAiL2hv
bWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHgg
PSAwOwogICAgcmV0dXJuIDI3MDsKfQogYnJlYWs7CmNhc2UgMTIwOgppZiAoIHl5bGVuZyA+IDAg
KSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAo
eXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDM1MSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lw
LTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDI3
MTsKfQogYnJlYWs7CmNhc2UgMTIxOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNr
KVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFd
ID09ICdcbicpOwojIDM1NyAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4
ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDI3MjsKfQogYnJlYWs7CmNhc2Ug
MTIyOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNr
X3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDM2MyAi
L2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJ
ZHggPSAwOwogICAgcmV0dXJuIDI3MzsKfQogYnJlYWs7CmNhc2UgMTIzOgppZiAoIHl5bGVuZyA+
IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wg
PSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDM2OSAiL2hvbWUvcGhpbC9oZy9zaXAv
c2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJu
IDI3NDsKfQogYnJlYWs7CmNhc2UgMTI0OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0
YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAt
IDFdID09ICdcbicpOwojIDM3NSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4v
bGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDI3NTsKfQogYnJlYWs7CmNh
c2UgMTI1OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0
YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDM4
MSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNv
ZGVJZHggPSAwOwogICAgcmV0dXJuIDI3NjsKfQogYnJlYWs7CmNhc2UgMTI2OgppZiAoIHl5bGVu
ZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9i
b2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDM4NyAiL2hvbWUvcGhpbC9oZy9z
aXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0
dXJuIDI5NjsKfQogYnJlYWs7CmNhc2UgMTI3OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVy
X3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVu
ZyAtIDFdID09ICdcbicpOwojIDM5MyAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBn
ZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDI4NjsKfQogYnJlYWs7
CmNhc2UgMTI4OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVy
X3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwoj
IDM5OSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAg
IGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDI4NzsKfQogYnJlYWs7CmNhc2UgMTI5OgppZiAoIHl5
bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9h
dF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDQwNSAiL2hvbWUvcGhpbC9o
Zy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAg
cmV0dXJuIDI4ODsKfQogYnJlYWs7CmNhc2UgMTMwOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVm
ZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5
bGVuZyAtIDFdID09ICdcbicpOwojIDQxMSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9z
aXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDI4OTsKfQogYnJl
YWs7CmNhc2UgMTMxOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVm
ZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicp
OwojIDQxNyAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoK
ICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDI5MDsKfQogYnJlYWs7CmNhc2UgMTMyOgppZiAo
IHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55
eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDQyMyAiL2hvbWUvcGhp
bC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwog
ICAgcmV0dXJuIDI5MTsKfQogYnJlYWs7CmNhc2UgMTMzOgppZiAoIHl5bGVuZyA+IDAgKSAoeXlf
YnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0
W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDQyOSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIu
My9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDI5MjsKfQog
YnJlYWs7CmNhc2UgMTM0OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlf
YnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdc
bicpOwojIDQzNSAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIK
ewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDI5MzsKfQogYnJlYWs7CmNhc2UgMTM1Ogpp
ZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCld
LT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDQ0MSAiL2hvbWUv
cGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAw
OwogICAgcmV0dXJuIDI5NDsKfQogYnJlYWs7CmNhc2UgMTM2OgppZiAoIHl5bGVuZyA+IDAgKSAo
eXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0
ZXh0W3l5bGVuZyAtIDFdID09ICdcbicpOwojIDQ0NyAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQu
MTIuMy9zaXBnZW4vbGV4ZXIubCIKewoKICAgIGNvZGVJZHggPSAwOwogICAgcmV0dXJuIDI5NTsK
fQogYnJlYWs7CmNhc2UgMTM3OgppZiAoIHl5bGVuZyA+IDAgKSAoeXlfYnVmZmVyX3N0YWNrKVso
eXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9hdF9ib2wgPSAoeXl0ZXh0W3l5bGVuZyAtIDFdID09
ICdcbicpOwojIDQ1MyAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIuMy9zaXBnZW4vbGV4ZXIu
bCIKewoKICAgIGRlcHJlY2F0ZWQoIiVQcmVQeXRob25Db2RlIGlzIGRlcHJlY2F0ZWQiKTsKCiAg
ICBjb2RlSWR4ID0gMDsKICAgIHJldHVybiAyNzc7Cn0KIGJyZWFrOwpjYXNlIDEzODoKaWYgKCB5
eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlf
YXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyA0NjEgIi9ob21lL3BoaWwv
aGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsKCiAgICBjb2RlSWR4ID0gMDsKICAg
IHJldHVybiAzNjc7Cn0KIGJyZWFrOwpjYXNlIDEzOToKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1
ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5
eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyA0NjcgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMv
c2lwZ2VuL2xleGVyLmwiCnsKCiAgICBjb2RlSWR4ID0gMDsKICAgIHJldHVybiAyNjI7Cn0KIGJy
ZWFrOwpjYXNlIDE0MDoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1
ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4n
KTsKIyA0NzMgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsK
CiAgICBkZXByZWNhdGVkKCIlRG9jIGlzIGRlcHJlY2F0ZWQsIHVzZSAlRXh0cmFjdCBpbnN0ZWFk
Iik7CgogICAgY29kZUlkeCA9IDA7CiAgICByZXR1cm4gMjYzOwp9CiBicmVhazsKY2FzZSAxNDE6
CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9w
KV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgNDgxICIvaG9t
ZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7CgogICAgZGVwcmVjYXRl
ZCgiJUV4cG9ydGVkRG9jIGlzIGRlcHJlY2F0ZWQsIHVzZSAlRXh0cmFjdCBpbnN0ZWFkIik7Cgog
ICAgY29kZUlkeCA9IDA7CiAgICByZXR1cm4gMjY0Owp9CiBicmVhazsKY2FzZSAxNDI6CmlmICgg
eXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5
X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgNDg5ICIvaG9tZS9waGls
L2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7CgogICAgZGVwcmVjYXRlZCgiJU1h
a2VmaWxlIGlzIGRlcHJlY2F0ZWQiKTsKCiAgICBjb2RlSWR4ID0gMDsKICAgIHJldHVybiAyNjY7
Cn0KIGJyZWFrOwpjYXNlIDE0MzoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylb
KHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9
PSAnXG4nKTsKIyA0OTcgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVy
LmwiCnsKCiAgICBjb2RlSWR4ID0gMDsKICAgIHJldHVybiAyNjc7Cn0KIGJyZWFrOwpjYXNlIDE0
NDoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190
b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyA1MDMgIi9o
b21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsKCiAgICBjb2RlSWR4
ID0gMDsKICAgIHJldHVybiAyNjg7Cn0KIGJyZWFrOwpjYXNlIDE0NToKaWYgKCB5eWxlbmcgPiAw
ICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0g
KHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyA1MDkgIi9ob21lL3BoaWwvaGcvc2lwL3Np
cC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsKCiAgICBjb2RlSWR4ID0gMDsKICAgIHJldHVybiAy
Njk7Cn0KIGJyZWFrOwpjYXNlIDE0NjoKaWYgKCB5eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFj
aylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAx
XSA9PSAnXG4nKTsKIyA1MTUgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xl
eGVyLmwiCnsKCiAgICAoeXlfc3RhcnQpID0gMSArIDIgKiAwOwogICAgY29kZUlkeCA9IC0xOwog
ICAgcmV0dXJuIDI4MjsKfQogYnJlYWs7CmNhc2UgMTQ3OgoKaWYgKCB5eWxlbmcgPiAwICkgKHl5
X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYXRfYm9sID0gKHl5dGV4
dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyA1MjIgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEy
LjMvc2lwZ2VuL2xleGVyLmwiCnsKCiAgICBzdHJ1Y3QgaW5wdXRGaWxlICppZnA7CgogICAgY29k
ZUxpbmVbY29kZUlkeF0gPSAnXG4nOwogICAgY29kZUxpbmVbY29kZUlkeCArIDFdID0gJ1wwJzsK
ICAgIGNvZGVJZHggPSAwOwoKICAgIGlmcCA9ICZpbnB1dEZpbGVTdGFja1tjdXJyZW50RmlsZV07
CgogICAgeXlsdmFsLmNvZGViID0gc2lwTWFsbG9jKHNpemVvZiAoY29kZUJsb2NrKSk7CgogICAg
eXlsdmFsLmNvZGViLT5mcmFnID0gc2lwU3RyZHVwKGNvZGVMaW5lKTsKICAgIHl5bHZhbC5jb2Rl
Yi0+bGluZW5yID0gaWZwLT5saW5lbm8rKzsKICAgIHl5bHZhbC5jb2RlYi0+ZmlsZW5hbWUgPSBz
aXBTdHJkdXAoaWZwLT5uYW1lKTsKCiAgICByZXR1cm4gMjgwOwp9CiBicmVhazsKY2FzZSAxNDg6
CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9w
KV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0gPT0gJ1xuJyk7CiMgNTQxICIvaG9t
ZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5sIgp7CgogICAgaWYgKGNvZGVJ
ZHggPT0gMTAwMCkKICAgICAgICBmYXRhbGxleCgiTGluZSBpcyB0b28gbG9uZyIpOwoKICAgIGNv
ZGVMaW5lW2NvZGVJZHgrK10gPSB5eXRleHRbMF07Cn0KIGJyZWFrOwpjYXNlIDE0OToKaWYgKCB5
eWxlbmcgPiAwICkgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlf
YXRfYm9sID0gKHl5dGV4dFt5eWxlbmcgLSAxXSA9PSAnXG4nKTsKIyA1NDkgIi9ob21lL3BoaWwv
aGcvc2lwL3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmwiCnsKCiAgICByZXR1cm4geXl0ZXh0WzBd
Owp9CiBicmVhazsKY2FzZSAxNTA6CmlmICggeXlsZW5nID4gMCApICh5eV9idWZmZXJfc3RhY2sp
Wyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9ICh5eXRleHRbeXlsZW5nIC0gMV0g
PT0gJ1xuJyk7CiMgNTU0ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhl
ci5sIgpkbyB7IGlmIChmd3JpdGUoIHl5dGV4dCwgeXlsZW5nLCAxLCB5eW91dCApKSB7fSB9IHdo
aWxlICgwKTsKIGJyZWFrOwojIDI3MDkgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEyLjMvc2lw
Z2VuL2xleGVyLmMiCmNhc2UgKDE1MSArIDAgKyAxKToKY2FzZSAoMTUxICsgMSArIDEpOgpjYXNl
ICgxNTEgKyAyICsgMSk6CmNhc2UgKDE1MSArIDMgKyAxKToKY2FzZSAoMTUxICsgNCArIDEpOgog
cmV0dXJuIDA7CgogY2FzZSAxNTE6CiAgewoKICBpbnQgeXlfYW1vdW50X29mX21hdGNoZWRfdGV4
dCA9IChpbnQpICh5eV9jcCAtICh5eXRleHQpKSAtIDE7CgoKICAqeXlfY3AgPSAoeXlfaG9sZF9j
aGFyKTsKIAoKICBpZiAoICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0t
Pnl5X2J1ZmZlcl9zdGF0dXMgPT0gMCApCiAgIHsKIyAyNzM2ICIvaG9tZS9waGlsL2hnL3NpcC9z
aXAtNC4xMi4zL3NpcGdlbi9sZXhlci5jIgogICAoeXlfbl9jaGFycykgPSAoeXlfYnVmZmVyX3N0
YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9uX2NoYXJzOwogICAoeXlfYnVmZmVyX3N0
YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9pbnB1dF9maWxlID0geXlpbjsKICAgKHl5
X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYnVmZmVyX3N0YXR1cyA9
IDE7CiAgIH0KIyAyNzQ4ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhl
ci5jIgogIGlmICggKHl5X2NfYnVmX3ApIDw9ICYoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVy
X3N0YWNrX3RvcCldLT55eV9jaF9idWZbKHl5X25fY2hhcnMpXSApCiAgIHsKICAgeXlfc3RhdGVf
dHlwZSB5eV9uZXh0X3N0YXRlOwoKICAgKHl5X2NfYnVmX3ApID0gKHl5dGV4dCkgKyB5eV9hbW91
bnRfb2ZfbWF0Y2hlZF90ZXh0OwoKICAgeXlfY3VycmVudF9zdGF0ZSA9IHl5X2dldF9wcmV2aW91
c19zdGF0ZSggKTsKIyAyNzY1ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9s
ZXhlci5jIgogICB5eV9uZXh0X3N0YXRlID0geXlfdHJ5X05VTF90cmFucyggeXlfY3VycmVudF9z
dGF0ZSApOwoKICAgeXlfYnAgPSAoeXl0ZXh0KSArIDA7CgogICBpZiAoIHl5X25leHRfc3RhdGUg
KQogICAgewoKICAgIHl5X2NwID0gKysoeXlfY19idWZfcCk7CiAgICB5eV9jdXJyZW50X3N0YXRl
ID0geXlfbmV4dF9zdGF0ZTsKICAgIGdvdG8geXlfbWF0Y2g7CiAgICB9CgogICBlbHNlCiAgICB7
CiAgICB5eV9jcCA9ICh5eV9jX2J1Zl9wKTsKICAgIGdvdG8geXlfZmluZF9hY3Rpb247CiAgICB9
CiAgIH0KCiAgZWxzZSBzd2l0Y2ggKCB5eV9nZXRfbmV4dF9idWZmZXIoICkgKQogICB7CiAgIGNh
c2UgMToKICAgIHsKICAgICh5eV9kaWRfYnVmZmVyX3N3aXRjaF9vbl9lb2YpID0gMDsKCiAgICBp
ZiAoIHl5d3JhcCggKSApCiAgICAgewojIDI4MDEgIi9ob21lL3BoaWwvaGcvc2lwL3NpcC00LjEy
LjMvc2lwZ2VuL2xleGVyLmMiCiAgICAgKHl5X2NfYnVmX3ApID0gKHl5dGV4dCkgKyAwOwoKICAg
ICB5eV9hY3QgPSAoMTUxICsgKCgoeXlfc3RhcnQpIC0gMSkgLyAyKSArIDEpOwogICAgIGdvdG8g
ZG9fYWN0aW9uOwogICAgIH0KCiAgICBlbHNlCiAgICAgewogICAgIGlmICggISAoeXlfZGlkX2J1
ZmZlcl9zd2l0Y2hfb25fZW9mKSApCiAgICAgIHl5cmVzdGFydCh5eWluICk7CiAgICAgfQogICAg
YnJlYWs7CiAgICB9CgogICBjYXNlIDA6CiAgICAoeXlfY19idWZfcCkgPQogICAgICh5eXRleHQp
ICsgeXlfYW1vdW50X29mX21hdGNoZWRfdGV4dDsKCiAgICB5eV9jdXJyZW50X3N0YXRlID0geXlf
Z2V0X3ByZXZpb3VzX3N0YXRlKCApOwoKICAgIHl5X2NwID0gKHl5X2NfYnVmX3ApOwogICAgeXlf
YnAgPSAoeXl0ZXh0KSArIDA7CiAgICBnb3RvIHl5X21hdGNoOwoKICAgY2FzZSAyOgogICAgKHl5
X2NfYnVmX3ApID0KICAgICYoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCld
LT55eV9jaF9idWZbKHl5X25fY2hhcnMpXTsKCiAgICB5eV9jdXJyZW50X3N0YXRlID0geXlfZ2V0
X3ByZXZpb3VzX3N0YXRlKCApOwoKICAgIHl5X2NwID0gKHl5X2NfYnVmX3ApOwogICAgeXlfYnAg
PSAoeXl0ZXh0KSArIDA7CiAgICBnb3RvIHl5X2ZpbmRfYWN0aW9uOwogICB9CiAgYnJlYWs7CiAg
fQoKIGRlZmF1bHQ6CiAgZmF0YWxsZXgoImZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJv
ci0tbm8gYWN0aW9uIGZvdW5kIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOwogfQogIH0KfQojIDI4NTIgIi9ob21lL3BoaWwvaGcvc2lw
L3NpcC00LjEyLjMvc2lwZ2VuL2xleGVyLmMiCnN0YXRpYyBpbnQgeXlfZ2V0X25leHRfYnVmZmVy
ICh2b2lkKQp7CiAgICAgcmVnaXN0ZXIgY2hhciAqZGVzdCA9ICh5eV9idWZmZXJfc3RhY2spWyh5
eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2NoX2J1ZjsKIHJlZ2lzdGVyIGNoYXIgKnNvdXJjZSA9
ICh5eXRleHQpOwogcmVnaXN0ZXIgaW50IG51bWJlcl90b19tb3ZlLCBpOwogaW50IHJldF92YWw7
CgogaWYgKCAoeXlfY19idWZfcCkgPiAmKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFj
a190b3ApXS0+eXlfY2hfYnVmWyh5eV9uX2NoYXJzKSArIDFdICkKICBmYXRhbGxleCgiZmF0YWwg
ZmxleCBzY2FubmVyIGludGVybmFsIGVycm9yLS1lbmQgb2YgYnVmZmVyIG1pc3NlZCIpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7
CgogaWYgKCAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9maWxs
X2J1ZmZlciA9PSAwICkKICB7CiAgaWYgKCAoeXlfY19idWZfcCkgLSAoeXl0ZXh0KSAtIDAgPT0g
MSApCiAgIHsKCgoKICAgcmV0dXJuIDE7CiAgIH0KCiAgZWxzZQogICB7CgoKCiAgIHJldHVybiAy
OwogICB9CiAgfQoKCgoKIG51bWJlcl90b19tb3ZlID0gKGludCkgKCh5eV9jX2J1Zl9wKSAtICh5
eXRleHQpKSAtIDE7CgogZm9yICggaSA9IDA7IGkgPCBudW1iZXJfdG9fbW92ZTsgKytpICkKICAq
KGRlc3QrKykgPSAqKHNvdXJjZSsrKTsKCiBpZiAoICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZm
ZXJfc3RhY2tfdG9wKV0tPnl5X2J1ZmZlcl9zdGF0dXMgPT0gMiApCgoKCiAgKHl5X2J1ZmZlcl9z
dGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfbl9jaGFycyA9ICh5eV9uX2NoYXJzKSA9
IDA7CgogZWxzZQogIHsKICAgaW50IG51bV90b19yZWFkID0KICAgKHl5X2J1ZmZlcl9zdGFjaylb
KHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYnVmX3NpemUgLSBudW1iZXJfdG9fbW92ZSAtIDE7
CgogIHdoaWxlICggbnVtX3RvX3JlYWQgPD0gMCApCiAgIHsKCgogICBZWV9CVUZGRVJfU1RBVEUg
YiA9ICggKHl5X2J1ZmZlcl9zdGFjaykgPyAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0
YWNrX3RvcCldIDogKCh2b2lkICopMCkpOwoKICAgaW50IHl5X2NfYnVmX3Bfb2Zmc2V0ID0KICAg
IChpbnQpICgoeXlfY19idWZfcCkgLSBiLT55eV9jaF9idWYpOwoKICAgaWYgKCBiLT55eV9pc19v
dXJfYnVmZmVyICkKICAgIHsKICAgIGludCBuZXdfc2l6ZSA9IGItPnl5X2J1Zl9zaXplICogMjsK
CiAgICBpZiAoIG5ld19zaXplIDw9IDAgKQogICAgIGItPnl5X2J1Zl9zaXplICs9IGItPnl5X2J1
Zl9zaXplIC8gODsKICAgIGVsc2UKICAgICBiLT55eV9idWZfc2l6ZSAqPSAyOwoKICAgIGItPnl5
X2NoX2J1ZiA9IChjaGFyICopCgogICAgIHl5cmVhbGxvYygodm9pZCAqKSBiLT55eV9jaF9idWYs
Yi0+eXlfYnVmX3NpemUgKyAyICk7CiAgICB9CiAgIGVsc2UKCiAgICBiLT55eV9jaF9idWYgPSAw
OwoKICAgaWYgKCAhIGItPnl5X2NoX2J1ZiApCiAgICBmYXRhbGxleCgiZmF0YWwgZXJyb3IgLSBz
Y2FubmVyIGlucHV0IGJ1ZmZlciBvdmVyZmxvdyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDsKCiAgICh5eV9jX2J1Zl9wKSA9ICZiLT55eV9jaF9i
dWZbeXlfY19idWZfcF9vZmZzZXRdOwoKICAgbnVtX3RvX3JlYWQgPSAoeXlfYnVmZmVyX3N0YWNr
KVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9idWZfc2l6ZSAtCiAgICAgIG51bWJlcl90b19t
b3ZlIC0gMTsKCiAgIH0KCiAgaWYgKCBudW1fdG9fcmVhZCA+IDgxOTIgKQogICBudW1fdG9fcmVh
ZCA9IDgxOTI7CgoKICBpZiAoICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9w
KV0tPnl5X2lzX2ludGVyYWN0aXZlICkgeyBpbnQgYyA9ICcqJzsgc2l6ZV90IG47IGZvciAoIG4g
PSAwOyBuIDwgKHNpemVfdCkgbnVtX3RvX3JlYWQgJiYgKGMgPSBfSU9fZ2V0YyAoeXlpbikpICE9
ICgtMSkgJiYgYyAhPSAnXG4nOyArK24gKSAoJih5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJf
c3RhY2tfdG9wKV0tPnl5X2NoX2J1ZltudW1iZXJfdG9fbW92ZV0pW25dID0gKGNoYXIpIGM7IGlm
ICggYyA9PSAnXG4nICkgKCYoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCld
LT55eV9jaF9idWZbbnVtYmVyX3RvX21vdmVdKVtuKytdID0gKGNoYXIpIGM7IGlmICggYyA9PSAo
LTEpICYmIGZlcnJvciggeXlpbiApICkgZmF0YWxsZXgoImlucHV0IGluIGZsZXggc2Nhbm5lciBm
YWlsZWQiKTsgKHl5X25fY2hhcnMpID0gbjsgfSBlbHNlIHsgKCpfX2Vycm5vX2xvY2F0aW9uICgp
KT0wOyB3aGlsZSAoICgoeXlfbl9jaGFycykgPSBmcmVhZCgoJih5eV9idWZmZXJfc3RhY2spWyh5
eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2NoX2J1ZltudW1iZXJfdG9fbW92ZV0pLCAxLCAoc2l6
ZV90KSBudW1fdG9fcmVhZCwgeXlpbikpPT0wICYmIGZlcnJvcih5eWluKSkgeyBpZiggKCpfX2Vy
cm5vX2xvY2F0aW9uICgpKSAhPSA0KSB7IGZhdGFsbGV4KCJpbnB1dCBpbiBmbGV4IHNjYW5uZXIg
ZmFpbGVkIik7IGJyZWFrOyB9ICgqX19lcnJub19sb2NhdGlvbiAoKSk9MDsgY2xlYXJlcnIoeXlp
bik7IH0gfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CgogICh5eV9i
dWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X25fY2hhcnMgPSAoeXlfbl9j
aGFycyk7CiAgfQoKIGlmICggKHl5X25fY2hhcnMpID09IDAgKQogIHsKICBpZiAoIG51bWJlcl90
b19tb3ZlID09IDAgKQogICB7CiAgIHJldF92YWwgPSAxOwogICB5eXJlc3RhcnQoeXlpbiApOwog
ICB9CgogIGVsc2UKICAgewogICByZXRfdmFsID0gMjsKICAgKHl5X2J1ZmZlcl9zdGFjaylbKHl5
X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfYnVmZmVyX3N0YXR1cyA9CiAgICAyOwogICB9CiAgfQoK
IGVsc2UKICByZXRfdmFsID0gMDsKCiBpZiAoKHl5X3NpemVfdCkgKCh5eV9uX2NoYXJzKSArIG51
bWJlcl90b19tb3ZlKSA+ICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0t
Pnl5X2J1Zl9zaXplKSB7CgogIHl5X3NpemVfdCBuZXdfc2l6ZSA9ICh5eV9uX2NoYXJzKSArIG51
bWJlcl90b19tb3ZlICsgKCh5eV9uX2NoYXJzKSA+PiAxKTsKICAoeXlfYnVmZmVyX3N0YWNrKVso
eXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9jaF9idWYgPSAoY2hhciAqKSB5eXJlYWxsb2MoKHZv
aWQgKikgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfY2hfYnVm
LG5ld19zaXplICk7CiAgaWYgKCAhICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tf
dG9wKV0tPnl5X2NoX2J1ZiApCiAgIGZhdGFsbGV4KCJvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4g
eXlfZ2V0X25leHRfYnVmZmVyKCkiKTsKIH0KCiAoeXlfbl9jaGFycykgKz0gbnVtYmVyX3RvX21v
dmU7CiAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9jaF9idWZb
KHl5X25fY2hhcnMpXSA9IDA7CiAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3Rv
cCldLT55eV9jaF9idWZbKHl5X25fY2hhcnMpICsgMV0gPSAwOwoKICh5eXRleHQpID0gJih5eV9i
dWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2NoX2J1ZlswXTsKCiByZXR1
cm4gcmV0X3ZhbDsKfQoKCgogICAgc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfZ2V0X3ByZXZpb3Vz
X3N0YXRlICh2b2lkKQp7CiByZWdpc3RlciB5eV9zdGF0ZV90eXBlIHl5X2N1cnJlbnRfc3RhdGU7
CiByZWdpc3RlciBjaGFyICp5eV9jcDsKCiB5eV9jdXJyZW50X3N0YXRlID0gKHl5X3N0YXJ0KTsK
IHl5X2N1cnJlbnRfc3RhdGUgKz0gKCh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tf
dG9wKV0tPnl5X2F0X2JvbCk7CgogZm9yICggeXlfY3AgPSAoeXl0ZXh0KSArIDA7IHl5X2NwIDwg
KHl5X2NfYnVmX3ApOyArK3l5X2NwICkKICB7CiAgcmVnaXN0ZXIgWVlfQ0hBUiB5eV9jID0gKCp5
eV9jcCA/IHl5X2VjWygodW5zaWduZWQgaW50KSAodW5zaWduZWQgY2hhcikgKnl5X2NwKV0gOiAx
KTsKICBpZiAoIHl5X2FjY2VwdFt5eV9jdXJyZW50X3N0YXRlXSApCiAgIHsKICAgKHl5X2xhc3Rf
YWNjZXB0aW5nX3N0YXRlKSA9IHl5X2N1cnJlbnRfc3RhdGU7CiAgICh5eV9sYXN0X2FjY2VwdGlu
Z19jcG9zKSA9IHl5X2NwOwogICB9CiAgd2hpbGUgKCB5eV9jaGtbeXlfYmFzZVt5eV9jdXJyZW50
X3N0YXRlXSArIHl5X2NdICE9IHl5X2N1cnJlbnRfc3RhdGUgKQogICB7CiAgIHl5X2N1cnJlbnRf
c3RhdGUgPSAoaW50KSB5eV9kZWZbeXlfY3VycmVudF9zdGF0ZV07CiAgIGlmICggeXlfY3VycmVu
dF9zdGF0ZSA+PSAxMDI3ICkKICAgIHl5X2MgPSB5eV9tZXRhWyh1bnNpZ25lZCBpbnQpIHl5X2Nd
OwogICB9CiAgeXlfY3VycmVudF9zdGF0ZSA9IHl5X254dFt5eV9iYXNlW3l5X2N1cnJlbnRfc3Rh
dGVdICsgKHVuc2lnbmVkIGludCkgeXlfY107CiAgfQoKIHJldHVybiB5eV9jdXJyZW50X3N0YXRl
Owp9CgoKCgoKCiAgICBzdGF0aWMgeXlfc3RhdGVfdHlwZSB5eV90cnlfTlVMX3RyYW5zICh5eV9z
dGF0ZV90eXBlIHl5X2N1cnJlbnRfc3RhdGUgKQp7CiByZWdpc3RlciBpbnQgeXlfaXNfamFtOwog
ICAgIHJlZ2lzdGVyIGNoYXIgKnl5X2NwID0gKHl5X2NfYnVmX3ApOwoKIHJlZ2lzdGVyIFlZX0NI
QVIgeXlfYyA9IDE7CiBpZiAoIHl5X2FjY2VwdFt5eV9jdXJyZW50X3N0YXRlXSApCiAgewogICh5
eV9sYXN0X2FjY2VwdGluZ19zdGF0ZSkgPSB5eV9jdXJyZW50X3N0YXRlOwogICh5eV9sYXN0X2Fj
Y2VwdGluZ19jcG9zKSA9IHl5X2NwOwogIH0KIHdoaWxlICggeXlfY2hrW3l5X2Jhc2VbeXlfY3Vy
cmVudF9zdGF0ZV0gKyB5eV9jXSAhPSB5eV9jdXJyZW50X3N0YXRlICkKICB7CiAgeXlfY3VycmVu
dF9zdGF0ZSA9IChpbnQpIHl5X2RlZlt5eV9jdXJyZW50X3N0YXRlXTsKICBpZiAoIHl5X2N1cnJl
bnRfc3RhdGUgPj0gMTAyNyApCiAgIHl5X2MgPSB5eV9tZXRhWyh1bnNpZ25lZCBpbnQpIHl5X2Nd
OwogIH0KIHl5X2N1cnJlbnRfc3RhdGUgPSB5eV9ueHRbeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRl
XSArICh1bnNpZ25lZCBpbnQpIHl5X2NdOwogeXlfaXNfamFtID0gKHl5X2N1cnJlbnRfc3RhdGUg
PT0gMTAyNik7CgogcmV0dXJuIHl5X2lzX2phbSA/IDAgOiB5eV9jdXJyZW50X3N0YXRlOwp9Cgog
ICAgc3RhdGljIHZvaWQgeXl1bnB1dCAoaW50IGMsIHJlZ2lzdGVyIGNoYXIgKiB5eV9icCApCnsK
IHJlZ2lzdGVyIGNoYXIgKnl5X2NwOwoKICAgIHl5X2NwID0gKHl5X2NfYnVmX3ApOwoKCiAqeXlf
Y3AgPSAoeXlfaG9sZF9jaGFyKTsKCiBpZiAoIHl5X2NwIDwgKHl5X2J1ZmZlcl9zdGFjaylbKHl5
X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfY2hfYnVmICsgMiApCiAgewoKICByZWdpc3RlciBpbnQg
bnVtYmVyX3RvX21vdmUgPSAoeXlfbl9jaGFycykgKyAyOwogIHJlZ2lzdGVyIGNoYXIgKmRlc3Qg
PSAmKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfY2hfYnVmWwog
ICAgICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2J1Zl9zaXpl
ICsgMl07CiAgcmVnaXN0ZXIgY2hhciAqc291cmNlID0KICAgICYoeXlfYnVmZmVyX3N0YWNrKVso
eXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9jaF9idWZbbnVtYmVyX3RvX21vdmVdOwoKICB3aGls
ZSAoIHNvdXJjZSA+ICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5
X2NoX2J1ZiApCiAgICotLWRlc3QgPSAqLS1zb3VyY2U7CgogIHl5X2NwICs9IChpbnQpIChkZXN0
IC0gc291cmNlKTsKICB5eV9icCArPSAoaW50KSAoZGVzdCAtIHNvdXJjZSk7CiAgKHl5X2J1ZmZl
cl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlfbl9jaGFycyA9CiAgICh5eV9uX2No
YXJzKSA9ICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2J1Zl9z
aXplOwoKICBpZiAoIHl5X2NwIDwgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190
b3ApXS0+eXlfY2hfYnVmICsgMiApCiAgIGZhdGFsbGV4KCJmbGV4IHNjYW5uZXIgcHVzaC1iYWNr
IG92ZXJmbG93Iik7CiAgfQoKICotLXl5X2NwID0gKGNoYXIpIGM7CgogKHl5dGV4dCkgPSB5eV9i
cDsKICh5eV9ob2xkX2NoYXIpID0gKnl5X2NwOwogKHl5X2NfYnVmX3ApID0geXlfY3A7Cn0KCgoK
CgogICAgc3RhdGljIGludCBpbnB1dCAodm9pZCkKCgp7CiBpbnQgYzsKCiAqKHl5X2NfYnVmX3Ap
ID0gKHl5X2hvbGRfY2hhcik7CgogaWYgKCAqKHl5X2NfYnVmX3ApID09IDAgKQogIHsKCgoKCiAg
aWYgKCAoeXlfY19idWZfcCkgPCAmKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190
b3ApXS0+eXlfY2hfYnVmWyh5eV9uX2NoYXJzKV0gKQoKICAgKih5eV9jX2J1Zl9wKSA9ICdcMCc7
CgogIGVsc2UKICAgewogICBpbnQgb2Zmc2V0ID0gKHl5X2NfYnVmX3ApIC0gKHl5dGV4dCk7CiAg
ICsrKHl5X2NfYnVmX3ApOwoKICAgc3dpdGNoICggeXlfZ2V0X25leHRfYnVmZmVyKCApICkKICAg
IHsKICAgIGNhc2UgMjoKIyAzMTIwICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdl
bi9sZXhlci5jIgogICAgIHl5cmVzdGFydCh5eWluICk7CgoKCiAgICBjYXNlIDE6CiAgICAgewog
ICAgIGlmICggeXl3cmFwKCApICkKICAgICAgcmV0dXJuICgtMSk7CgogICAgIGlmICggISAoeXlf
ZGlkX2J1ZmZlcl9zd2l0Y2hfb25fZW9mKSApCiAgICAgIHl5cmVzdGFydCh5eWluICk7CgoKCiAg
ICAgcmV0dXJuIGlucHV0KCk7CgogICAgIH0KCiAgICBjYXNlIDA6CiAgICAgKHl5X2NfYnVmX3Ap
ID0gKHl5dGV4dCkgKyBvZmZzZXQ7CiAgICAgYnJlYWs7CiAgICB9CiAgIH0KICB9CgogYyA9ICoo
dW5zaWduZWQgY2hhciAqKSAoeXlfY19idWZfcCk7CiAqKHl5X2NfYnVmX3ApID0gJ1wwJzsKICh5
eV9ob2xkX2NoYXIpID0gKisrKHl5X2NfYnVmX3ApOwoKICh5eV9idWZmZXJfc3RhY2spWyh5eV9i
dWZmZXJfc3RhY2tfdG9wKV0tPnl5X2F0X2JvbCA9IChjID09ICdcbicpOwoKIHJldHVybiBjOwp9
CgoKCgoKCgogICAgdm9pZCB5eXJlc3RhcnQgKEZJTEUgKiBpbnB1dF9maWxlICkKewoKIGlmICgg
ISAoICh5eV9idWZmZXJfc3RhY2spID8gKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFj
a190b3ApXSA6ICgodm9pZCAqKTApKSApewogICAgICAgIHl5ZW5zdXJlX2J1ZmZlcl9zdGFjayAo
KTsKICAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldID0KICAgICAgICAg
ICAgeXlfY3JlYXRlX2J1ZmZlcih5eWluLDE2Mzg0ICk7CiB9CgogeXlfaW5pdF9idWZmZXIoKCAo
eXlfYnVmZmVyX3N0YWNrKSA/ICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9w
KV0gOiAoKHZvaWQgKikwKSksaW5wdXRfZmlsZSApOwogeXlfbG9hZF9idWZmZXJfc3RhdGUoICk7
Cn0KCgoKCgogICAgdm9pZCB5eV9zd2l0Y2hfdG9fYnVmZmVyIChZWV9CVUZGRVJfU1RBVEUgbmV3
X2J1ZmZlciApCnsKCgoKCgoKIHl5ZW5zdXJlX2J1ZmZlcl9zdGFjayAoKTsKIGlmICggKCAoeXlf
YnVmZmVyX3N0YWNrKSA/ICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0g
OiAoKHZvaWQgKikwKSkgPT0gbmV3X2J1ZmZlciApCiAgcmV0dXJuOwoKIGlmICggKCAoeXlfYnVm
ZmVyX3N0YWNrKSA/ICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0gOiAo
KHZvaWQgKikwKSkgKQogIHsKCiAgKih5eV9jX2J1Zl9wKSA9ICh5eV9ob2xkX2NoYXIpOwogICh5
eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2J1Zl9wb3MgPSAoeXlf
Y19idWZfcCk7CiAgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXS0+eXlf
bl9jaGFycyA9ICh5eV9uX2NoYXJzKTsKICB9CgogKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZl
cl9zdGFja190b3ApXSA9IG5ld19idWZmZXI7CiB5eV9sb2FkX2J1ZmZlcl9zdGF0ZSggKTsKCgoK
CgoKICh5eV9kaWRfYnVmZmVyX3N3aXRjaF9vbl9lb2YpID0gMTsKfQoKc3RhdGljIHZvaWQgeXlf
bG9hZF9idWZmZXJfc3RhdGUgKHZvaWQpCnsKICAgICAoeXlfbl9jaGFycykgPSAoeXlfYnVmZmVy
X3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55eV9uX2NoYXJzOwogKHl5dGV4dCkgPSAo
eXlfY19idWZfcCkgPSAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldLT55
eV9idWZfcG9zOwogeXlpbiA9ICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9w
KV0tPnl5X2lucHV0X2ZpbGU7CiAoeXlfaG9sZF9jaGFyKSA9ICooeXlfY19idWZfcCk7Cn0KCgoK
CgoKCiAgICBZWV9CVUZGRVJfU1RBVEUgeXlfY3JlYXRlX2J1ZmZlciAoRklMRSAqIGZpbGUsIGlu
dCBzaXplICkKewogWVlfQlVGRkVSX1NUQVRFIGI7CgogYiA9IChZWV9CVUZGRVJfU1RBVEUpIHl5
YWxsb2Moc2l6ZW9mKCBzdHJ1Y3QgeXlfYnVmZmVyX3N0YXRlICkgKTsKIGlmICggISBiICkKICBm
YXRhbGxleCgib3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2NyZWF0ZV9idWZmZXIoKSIpOwoK
IGItPnl5X2J1Zl9zaXplID0gc2l6ZTsKCgoKCiBiLT55eV9jaF9idWYgPSAoY2hhciAqKSB5eWFs
bG9jKGItPnl5X2J1Zl9zaXplICsgMiApOwogaWYgKCAhIGItPnl5X2NoX2J1ZiApCiAgZmF0YWxs
ZXgoIm91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eV9jcmVhdGVfYnVmZmVyKCkiKTsKCiBiLT55
eV9pc19vdXJfYnVmZmVyID0gMTsKCiB5eV9pbml0X2J1ZmZlcihiLGZpbGUgKTsKCiByZXR1cm4g
YjsKfQoKCgoKCiAgICB2b2lkIHl5X2RlbGV0ZV9idWZmZXIgKFlZX0JVRkZFUl9TVEFURSBiICkK
ewoKIGlmICggISBiICkKICByZXR1cm47CgogaWYgKCBiID09ICggKHl5X2J1ZmZlcl9zdGFjaykg
PyAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldIDogKCh2b2lkICopMCkp
ICkKICAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldID0gKFlZX0JVRkZF
Ul9TVEFURSkgMDsKCiBpZiAoIGItPnl5X2lzX291cl9idWZmZXIgKQogIHl5ZnJlZSgodm9pZCAq
KSBiLT55eV9jaF9idWYgKTsKCiB5eWZyZWUoKHZvaWQgKikgYiApOwp9CgoKZXh0ZXJuIGludCBp
c2F0dHkgKGludCApOwoKCgoKCgogICAgc3RhdGljIHZvaWQgeXlfaW5pdF9idWZmZXIgKFlZX0JV
RkZFUl9TVEFURSBiLCBGSUxFICogZmlsZSApCgp7CiBpbnQgb2Vycm5vID0gKCpfX2Vycm5vX2xv
Y2F0aW9uICgpKTsKCiB5eV9mbHVzaF9idWZmZXIoYiApOwoKIGItPnl5X2lucHV0X2ZpbGUgPSBm
aWxlOwogYi0+eXlfZmlsbF9idWZmZXIgPSAxOwoKCgoKCiAgICBpZiAoYiAhPSAoICh5eV9idWZm
ZXJfc3RhY2spID8gKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXSA6ICgo
dm9pZCAqKTApKSl7CiAgICAgICAgYi0+eXlfYnNfbGluZW5vID0gMTsKICAgICAgICBiLT55eV9i
c19jb2x1bW4gPSAwOwogICAgfQoKICAgICAgICBiLT55eV9pc19pbnRlcmFjdGl2ZSA9IGZpbGUg
PyAoaXNhdHR5KCBmaWxlbm8oZmlsZSkgKSA+IDApIDogMDsKCiAoKl9fZXJybm9fbG9jYXRpb24g
KCkpID0gb2Vycm5vOwp9CgoKCgoKICAgIHZvaWQgeXlfZmx1c2hfYnVmZmVyIChZWV9CVUZGRVJf
U1RBVEUgYiApCnsKICAgICBpZiAoICEgYiApCiAgcmV0dXJuOwoKIGItPnl5X25fY2hhcnMgPSAw
OwoKCgoKCiBiLT55eV9jaF9idWZbMF0gPSAwOwogYi0+eXlfY2hfYnVmWzFdID0gMDsKCiBiLT55
eV9idWZfcG9zID0gJmItPnl5X2NoX2J1ZlswXTsKCiBiLT55eV9hdF9ib2wgPSAxOwogYi0+eXlf
YnVmZmVyX3N0YXR1cyA9IDA7CgogaWYgKCBiID09ICggKHl5X2J1ZmZlcl9zdGFjaykgPyAoeXlf
YnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCldIDogKCh2b2lkICopMCkpICkKICB5
eV9sb2FkX2J1ZmZlcl9zdGF0ZSggKTsKfQoKCgoKCgoKdm9pZCB5eXB1c2hfYnVmZmVyX3N0YXRl
IChZWV9CVUZGRVJfU1RBVEUgbmV3X2J1ZmZlciApCnsKICAgICBpZiAobmV3X2J1ZmZlciA9PSAo
KHZvaWQgKikwKSkKICByZXR1cm47CgogeXllbnN1cmVfYnVmZmVyX3N0YWNrKCk7CgoKIGlmICgg
KCAoeXlfYnVmZmVyX3N0YWNrKSA/ICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tf
dG9wKV0gOiAoKHZvaWQgKikwKSkgKQogIHsKCiAgKih5eV9jX2J1Zl9wKSA9ICh5eV9ob2xkX2No
YXIpOwogICh5eV9idWZmZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0tPnl5X2J1Zl9w
b3MgPSAoeXlfY19idWZfcCk7CiAgKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190
b3ApXS0+eXlfbl9jaGFycyA9ICh5eV9uX2NoYXJzKTsKICB9CgoKIGlmICgoICh5eV9idWZmZXJf
c3RhY2spID8gKHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXSA6ICgodm9p
ZCAqKTApKSkKICAoeXlfYnVmZmVyX3N0YWNrX3RvcCkrKzsKICh5eV9idWZmZXJfc3RhY2spWyh5
eV9idWZmZXJfc3RhY2tfdG9wKV0gPSBuZXdfYnVmZmVyOwoKCiB5eV9sb2FkX2J1ZmZlcl9zdGF0
ZSggKTsKICh5eV9kaWRfYnVmZmVyX3N3aXRjaF9vbl9lb2YpID0gMTsKfQoKCgoKCnZvaWQgeXlw
b3BfYnVmZmVyX3N0YXRlICh2b2lkKQp7CiAgICAgaWYgKCEoICh5eV9idWZmZXJfc3RhY2spID8g
KHl5X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXSA6ICgodm9pZCAqKTApKSkK
ICByZXR1cm47CgogeXlfZGVsZXRlX2J1ZmZlcigoICh5eV9idWZmZXJfc3RhY2spID8gKHl5X2J1
ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXSA6ICgodm9pZCAqKTApKSApOwogKHl5
X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXSA9ICgodm9pZCAqKTApOwogaWYg
KCh5eV9idWZmZXJfc3RhY2tfdG9wKSA+IDApCiAgLS0oeXlfYnVmZmVyX3N0YWNrX3RvcCk7Cgog
aWYgKCggKHl5X2J1ZmZlcl9zdGFjaykgPyAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0
YWNrX3RvcCldIDogKCh2b2lkICopMCkpKSB7CiAgeXlfbG9hZF9idWZmZXJfc3RhdGUoICk7CiAg
KHl5X2RpZF9idWZmZXJfc3dpdGNoX29uX2VvZikgPSAxOwogfQp9CgoKCgpzdGF0aWMgdm9pZCB5
eWVuc3VyZV9idWZmZXJfc3RhY2sgKHZvaWQpCnsKIGludCBudW1fdG9fYWxsb2M7CgogaWYgKCEo
eXlfYnVmZmVyX3N0YWNrKSkgewoKCgoKCiAgbnVtX3RvX2FsbG9jID0gMTsKICAoeXlfYnVmZmVy
X3N0YWNrKSA9IChzdHJ1Y3QgeXlfYnVmZmVyX3N0YXRlKiopeXlhbGxvYwogICAgICAgIChudW1f
dG9fYWxsb2MgKiBzaXplb2Yoc3RydWN0IHl5X2J1ZmZlcl9zdGF0ZSopCiAgICAgICAgKTsKICBp
ZiAoICEgKHl5X2J1ZmZlcl9zdGFjaykgKQogICBmYXRhbGxleCgib3V0IG9mIGR5bmFtaWMgbWVt
b3J5IGluIHl5ZW5zdXJlX2J1ZmZlcl9zdGFjaygpIik7CgogIG1lbXNldCgoeXlfYnVmZmVyX3N0
YWNrKSwgMCwgbnVtX3RvX2FsbG9jICogc2l6ZW9mKHN0cnVjdCB5eV9idWZmZXJfc3RhdGUqKSk7
CgogICh5eV9idWZmZXJfc3RhY2tfbWF4KSA9IG51bV90b19hbGxvYzsKICAoeXlfYnVmZmVyX3N0
YWNrX3RvcCkgPSAwOwogIHJldHVybjsKIH0KCiBpZiAoKHl5X2J1ZmZlcl9zdGFja190b3ApID49
ICgoeXlfYnVmZmVyX3N0YWNrX21heCkpIC0gMSl7CgoKICBpbnQgZ3Jvd19zaXplID0gOCA7Cgog
IG51bV90b19hbGxvYyA9ICh5eV9idWZmZXJfc3RhY2tfbWF4KSArIGdyb3dfc2l6ZTsKICAoeXlf
YnVmZmVyX3N0YWNrKSA9IChzdHJ1Y3QgeXlfYnVmZmVyX3N0YXRlKiopeXlyZWFsbG9jCiAgICAg
ICAgKCh5eV9idWZmZXJfc3RhY2spLAogICAgICAgIG51bV90b19hbGxvYyAqIHNpemVvZihzdHJ1
Y3QgeXlfYnVmZmVyX3N0YXRlKikKICAgICAgICApOwogIGlmICggISAoeXlfYnVmZmVyX3N0YWNr
KSApCiAgIGZhdGFsbGV4KCJvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXllbnN1cmVfYnVmZmVy
X3N0YWNrKCkiKTsKCgogIG1lbXNldCgoeXlfYnVmZmVyX3N0YWNrKSArICh5eV9idWZmZXJfc3Rh
Y2tfbWF4KSwgMCwgZ3Jvd19zaXplICogc2l6ZW9mKHN0cnVjdCB5eV9idWZmZXJfc3RhdGUqKSk7
CiAgKHl5X2J1ZmZlcl9zdGFja19tYXgpID0gbnVtX3RvX2FsbG9jOwogfQp9CgoKCgoKCgpZWV9C
VUZGRVJfU1RBVEUgeXlfc2Nhbl9idWZmZXIgKGNoYXIgKiBiYXNlLCB5eV9zaXplX3Qgc2l6ZSAp
CnsKIFlZX0JVRkZFUl9TVEFURSBiOwoKIGlmICggc2l6ZSA8IDIgfHwKICAgICAgYmFzZVtzaXpl
LTJdICE9IDAgfHwKICAgICAgYmFzZVtzaXplLTFdICE9IDAgKQoKICByZXR1cm4gMDsKCiBiID0g
KFlZX0JVRkZFUl9TVEFURSkgeXlhbGxvYyhzaXplb2YoIHN0cnVjdCB5eV9idWZmZXJfc3RhdGUg
KSApOwogaWYgKCAhIGIgKQogIGZhdGFsbGV4KCJvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlf
c2Nhbl9idWZmZXIoKSIpOwoKIGItPnl5X2J1Zl9zaXplID0gc2l6ZSAtIDI7CiBiLT55eV9idWZf
cG9zID0gYi0+eXlfY2hfYnVmID0gYmFzZTsKIGItPnl5X2lzX291cl9idWZmZXIgPSAwOwogYi0+
eXlfaW5wdXRfZmlsZSA9IDA7CiBiLT55eV9uX2NoYXJzID0gYi0+eXlfYnVmX3NpemU7CiBiLT55
eV9pc19pbnRlcmFjdGl2ZSA9IDA7CiBiLT55eV9hdF9ib2wgPSAxOwogYi0+eXlfZmlsbF9idWZm
ZXIgPSAwOwogYi0+eXlfYnVmZmVyX3N0YXR1cyA9IDA7CgogeXlfc3dpdGNoX3RvX2J1ZmZlcihi
ICk7CgogcmV0dXJuIGI7Cn0KIyAzNDY1ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3Np
cGdlbi9sZXhlci5jIgpZWV9CVUZGRVJfU1RBVEUgeXlfc2Nhbl9zdHJpbmcgKGNvbnN0IGNoYXIg
KiB5eXN0ciApCnsKCiByZXR1cm4geXlfc2Nhbl9ieXRlcyh5eXN0cixzdHJsZW4oeXlzdHIpICk7
Cn0KIyAzNDc4ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5jIgpZ
WV9CVUZGRVJfU1RBVEUgeXlfc2Nhbl9ieXRlcyAoY29uc3QgY2hhciAqIHl5Ynl0ZXMsIGludCBf
eXlieXRlc19sZW4gKQp7CiBZWV9CVUZGRVJfU1RBVEUgYjsKIGNoYXIgKmJ1ZjsKIHl5X3NpemVf
dCBuOwogaW50IGk7CgoKIG4gPSBfeXlieXRlc19sZW4gKyAyOwogYnVmID0gKGNoYXIgKikgeXlh
bGxvYyhuICk7CiBpZiAoICEgYnVmICkKICBmYXRhbGxleCgib3V0IG9mIGR5bmFtaWMgbWVtb3J5
IGluIHl5X3NjYW5fYnl0ZXMoKSIpOwoKIGZvciAoIGkgPSAwOyBpIDwgX3l5Ynl0ZXNfbGVuOyAr
K2kgKQogIGJ1ZltpXSA9IHl5Ynl0ZXNbaV07CgogYnVmW195eWJ5dGVzX2xlbl0gPSBidWZbX3l5
Ynl0ZXNfbGVuKzFdID0gMDsKCiBiID0geXlfc2Nhbl9idWZmZXIoYnVmLG4gKTsKIGlmICggISBi
ICkKICBmYXRhbGxleCgiYmFkIGJ1ZmZlciBpbiB5eV9zY2FuX2J5dGVzKCkiKTsKCgoKCiBiLT55
eV9pc19vdXJfYnVmZmVyID0gMTsKCiByZXR1cm4gYjsKfQoKICAgIHN0YXRpYyB2b2lkIHl5X3B1
c2hfc3RhdGUgKGludCBuZXdfc3RhdGUgKQp7CiAgICAgaWYgKCAoeXlfc3RhcnRfc3RhY2tfcHRy
KSA+PSAoeXlfc3RhcnRfc3RhY2tfZGVwdGgpICkKICB7CiAgeXlfc2l6ZV90IG5ld19zaXplOwoK
ICAoeXlfc3RhcnRfc3RhY2tfZGVwdGgpICs9IDI1OwogIG5ld19zaXplID0gKHl5X3N0YXJ0X3N0
YWNrX2RlcHRoKSAqIHNpemVvZiggaW50ICk7CgogIGlmICggISAoeXlfc3RhcnRfc3RhY2spICkK
ICAgKHl5X3N0YXJ0X3N0YWNrKSA9IChpbnQgKikgeXlhbGxvYyhuZXdfc2l6ZSApOwoKICBlbHNl
CiAgICh5eV9zdGFydF9zdGFjaykgPSAoaW50ICopIHl5cmVhbGxvYygodm9pZCAqKSAoeXlfc3Rh
cnRfc3RhY2spLG5ld19zaXplICk7CgogIGlmICggISAoeXlfc3RhcnRfc3RhY2spICkKICAgZmF0
YWxsZXgoIm91dCBvZiBtZW1vcnkgZXhwYW5kaW5nIHN0YXJ0LWNvbmRpdGlvbiBzdGFjayIpOwog
IH0KCiAoeXlfc3RhcnRfc3RhY2spWyh5eV9zdGFydF9zdGFja19wdHIpKytdID0gKCgoeXlfc3Rh
cnQpIC0gMSkgLyAyKTsKCiAoeXlfc3RhcnQpID0gMSArIDIgKihuZXdfc3RhdGUpOwp9CgogICAg
c3RhdGljIHZvaWQgeXlfcG9wX3N0YXRlICh2b2lkKQp7CiAgICAgaWYgKCAtLSh5eV9zdGFydF9z
dGFja19wdHIpIDwgMCApCiAgZmF0YWxsZXgoInN0YXJ0LWNvbmRpdGlvbiBzdGFjayB1bmRlcmZs
b3ciKTsKCiAoeXlfc3RhcnQpID0gMSArIDIgKigoeXlfc3RhcnRfc3RhY2spWyh5eV9zdGFydF9z
dGFja19wdHIpXSk7Cn0KCiAgICBzdGF0aWMgaW50IHl5X3RvcF9zdGF0ZSAodm9pZCkKewogICAg
IHJldHVybiAoeXlfc3RhcnRfc3RhY2spWyh5eV9zdGFydF9zdGFja19wdHIpIC0gMV07Cn0KCgoK
CgpzdGF0aWMgdm9pZCB5eV9mYXRhbF9lcnJvciAoY29uc3QgY2hhciogbXNnICkKewogICAgICh2
b2lkKSBmcHJpbnRmKCBzdGRlcnIsICIlc1xuIiwgbXNnICk7CiBleGl0KCAyICk7Cn0KIyAzNTc3
ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3NpcGdlbi9sZXhlci5jIgppbnQgeXlnZXRf
bGluZW5vICh2b2lkKQp7CgogICAgcmV0dXJuIHl5bGluZW5vOwp9CgoKCgpGSUxFICp5eWdldF9p
biAodm9pZCkKewogICAgICAgIHJldHVybiB5eWluOwp9CgoKCgpGSUxFICp5eWdldF9vdXQgKHZv
aWQpCnsKICAgICAgICByZXR1cm4geXlvdXQ7Cn0KCgoKCmludCB5eWdldF9sZW5nICh2b2lkKQp7
CiAgICAgICAgcmV0dXJuIHl5bGVuZzsKfQoKCgoKCmNoYXIgKnl5Z2V0X3RleHQgKHZvaWQpCnsK
ICAgICAgICByZXR1cm4geXl0ZXh0Owp9CgoKCgoKdm9pZCB5eXNldF9saW5lbm8gKGludCBsaW5l
X251bWJlciApCnsKCiAgICB5eWxpbmVubyA9IGxpbmVfbnVtYmVyOwp9CgoKCgoKCgp2b2lkIHl5
c2V0X2luIChGSUxFICogaW5fc3RyICkKewogICAgICAgIHl5aW4gPSBpbl9zdHIgOwp9Cgp2b2lk
IHl5c2V0X291dCAoRklMRSAqIG91dF9zdHIgKQp7CiAgICAgICAgeXlvdXQgPSBvdXRfc3RyIDsK
fQoKaW50IHl5Z2V0X2RlYnVnICh2b2lkKQp7CiAgICAgICAgcmV0dXJuIHl5X2ZsZXhfZGVidWc7
Cn0KCnZvaWQgeXlzZXRfZGVidWcgKGludCBiZGVidWcgKQp7CiAgICAgICAgeXlfZmxleF9kZWJ1
ZyA9IGJkZWJ1ZyA7Cn0KCnN0YXRpYyBpbnQgeXlfaW5pdF9nbG9iYWxzICh2b2lkKQp7CgoKCgog
ICAgKHl5X2J1ZmZlcl9zdGFjaykgPSAwOwogICAgKHl5X2J1ZmZlcl9zdGFja190b3ApID0gMDsK
ICAgICh5eV9idWZmZXJfc3RhY2tfbWF4KSA9IDA7CiAgICAoeXlfY19idWZfcCkgPSAoY2hhciAq
KSAwOwogICAgKHl5X2luaXQpID0gMDsKICAgICh5eV9zdGFydCkgPSAwOwoKICAgICh5eV9zdGFy
dF9zdGFja19wdHIpID0gMDsKICAgICh5eV9zdGFydF9zdGFja19kZXB0aCkgPSAwOwogICAgKHl5
X3N0YXJ0X3N0YWNrKSA9ICgodm9pZCAqKTApOwoKCgoKCgogICAgeXlpbiA9IChGSUxFICopIDA7
CiAgICB5eW91dCA9IChGSUxFICopIDA7CgoKCgoKICAgIHJldHVybiAwOwp9CgoKaW50IHl5bGV4
X2Rlc3Ryb3kgKHZvaWQpCnsKCgogd2hpbGUoKCAoeXlfYnVmZmVyX3N0YWNrKSA/ICh5eV9idWZm
ZXJfc3RhY2spWyh5eV9idWZmZXJfc3RhY2tfdG9wKV0gOiAoKHZvaWQgKikwKSkpewogIHl5X2Rl
bGV0ZV9idWZmZXIoKCAoeXlfYnVmZmVyX3N0YWNrKSA/ICh5eV9idWZmZXJfc3RhY2spWyh5eV9i
dWZmZXJfc3RhY2tfdG9wKV0gOiAoKHZvaWQgKikwKSkgKTsKICAoeXlfYnVmZmVyX3N0YWNrKVso
eXlfYnVmZmVyX3N0YWNrX3RvcCldID0gKCh2b2lkICopMCk7CiAgeXlwb3BfYnVmZmVyX3N0YXRl
KCk7CiB9CgoKIHl5ZnJlZSgoeXlfYnVmZmVyX3N0YWNrKSApOwogKHl5X2J1ZmZlcl9zdGFjaykg
PSAoKHZvaWQgKikwKTsKCgogICAgICAgIHl5ZnJlZSgoeXlfc3RhcnRfc3RhY2spICk7CiAgICAg
ICAgKHl5X3N0YXJ0X3N0YWNrKSA9ICgodm9pZCAqKTApOwoKCgogICAgeXlfaW5pdF9nbG9iYWxz
KCApOwoKICAgIHJldHVybiAwOwp9CiMgMzczNCAiL2hvbWUvcGhpbC9oZy9zaXAvc2lwLTQuMTIu
My9zaXBnZW4vbGV4ZXIuYyIKdm9pZCAqeXlhbGxvYyAoeXlfc2l6ZV90IHNpemUgKQp7CiByZXR1
cm4gKHZvaWQgKikgbWFsbG9jKCBzaXplICk7Cn0KCnZvaWQgKnl5cmVhbGxvYyAodm9pZCAqIHB0
ciwgeXlfc2l6ZV90IHNpemUgKQp7CgoKCgoKCgogcmV0dXJuICh2b2lkICopIHJlYWxsb2MoIChj
aGFyICopIHB0ciwgc2l6ZSApOwp9Cgp2b2lkIHl5ZnJlZSAodm9pZCAqIHB0ciApCnsKIGZyZWUo
IChjaGFyICopIHB0ciApOwp9CiMgNTU0ICIvaG9tZS9waGlsL2hnL3NpcC9zaXAtNC4xMi4zL3Np
cGdlbi9sZXhlci5sIgoKCgoKCgoKaW50IHl5d3JhcCgpCnsKICAgIGNoYXIgKmN3ZDsKICAgIHN0
cnVjdCBpbnB1dEZpbGUgKmlmcDsKCiAgICBpZiAoKGN3ZCA9IGlucHV0RmlsZVN0YWNrW2N1cnJl
bnRGaWxlXS5jd2QpICE9ICgodm9pZCAqKTApKQogICAgICAgIGZyZWUoY3dkKTsKCiAgICBpZnAg
PSAmaW5wdXRGaWxlU3RhY2tbY3VycmVudEZpbGUtLV07CgoKCiAgICBwYXJzZXJFT0YoaWZwIC0+
IG5hbWUsICZpZnAgLT4gcGMpOwoKCgogICAgZmNsb3NlKHl5aW4pOwogICAgZnJlZShpZnAgLT4g
bmFtZSk7CgoKCiAgICBpZiAoY3VycmVudEZpbGUgPCAwKQogICAgICAgIHJldHVybiAxOwoKICAg
IHl5X2RlbGV0ZV9idWZmZXIoKCAoeXlfYnVmZmVyX3N0YWNrKSA/ICh5eV9idWZmZXJfc3RhY2sp
Wyh5eV9idWZmZXJfc3RhY2tfdG9wKV0gOiAoKHZvaWQgKikwKSkpOwogICAgeXlfc3dpdGNoX3Rv
X2J1ZmZlcihpZnAgLT4gYnMpOwoKICAgIHJldHVybiAwOwp9CgoKCgoKCmludCBzZXRJbnB1dEZp
bGUoRklMRSAqb3Blbl9mcCwgcGFyc2VyQ29udGV4dCAqcGMsIGludCBvcHRpb25hbCkKewogICAg
c3RhdGljIHN0cmluZ0xpc3QgKmFsbCA9ICgodm9pZCAqKTApOwogICAgY2hhciAqY3dkLCAqZnVs
bG5hbWUgPSAoKHZvaWQgKikwKTsKICAgIEZJTEUgKmZwID0gb3Blbl9mcDsKCiAgICBpZiAoY3Vy
cmVudEZpbGUgPj0gMTAgLSAxKQogICAgICAgIGZhdGFsKCJUb28gbWFueSBuZXN0ZWQgJSVJbmNs
dWRlLCAlJU9wdGlvbmFsSW5jbHVkZSBvciAlJUltcG9ydCBzdGF0ZW1lbnRzXG4iKTsKCiAgICBp
ZiAoZnAgIT0gKCh2b2lkICopMCkgfHwgKGZwID0gb3BlbkZpbGUocGMtPmZpbGVuYW1lKSkgIT0g
KCh2b2lkICopMCkpCiAgICAgICAgZnVsbG5hbWUgPSBzaXBTdHJkdXAocGMtPmZpbGVuYW1lKTsK
ICAgIGVsc2UKICAgIHsKICAgICAgICBjaGFyICpjd2Q7CgoKICAgICAgICBpZiAoY3VycmVudEZp
bGUgPj0gMCAmJiAoY3dkID0gaW5wdXRGaWxlU3RhY2tbY3VycmVudEZpbGVdLmN3ZCkgIT0gKCh2
b2lkICopMCkpCiAgICAgICAgewogICAgICAgICAgICBmdWxsbmFtZSA9IGNvbmNhdChjd2QsICIv
IiwgcGMtPmZpbGVuYW1lLCAoKHZvaWQgKikwKSk7CgogICAgICAgICAgICBpZiAoKGZwID0gb3Bl
bkZpbGUoZnVsbG5hbWUpKSA9PSAoKHZvaWQgKikwKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgZnJlZShmdWxsbmFtZSk7CiAgICAgICAgICAgICAgICBmdWxsbmFtZSA9ICgodm9pZCAq
KTApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCiAgICBpZiAoZnVsbG5hbWUgPT0g
KCh2b2lkICopMCkpCiAgICB7CiAgICAgICAgc3RyaW5nTGlzdCAqc2w7CgogICAgICAgIGZ1bGxu
YW1lID0gKCh2b2lkICopMCk7CgogICAgICAgIGZvciAoc2wgPSBpbmNsdWRlRGlyTGlzdDsgc2wg
IT0gKCh2b2lkICopMCk7IHNsID0gc2wgLT4gbmV4dCkKICAgICAgICB7CiAgICAgICAgICAgIGlm
IChmdWxsbmFtZSAhPSAoKHZvaWQgKikwKSkKICAgICAgICAgICAgICAgIGZyZWUoZnVsbG5hbWUp
OwoKICAgICAgICAgICAgZnVsbG5hbWUgPSBjb25jYXQoc2wtPnMsICIvIiwgcGMtPmZpbGVuYW1l
LCAoKHZvaWQgKikwKSk7CgogICAgICAgICAgICBpZiAoKGZwID0gb3BlbkZpbGUoZnVsbG5hbWUp
KSAhPSAoKHZvaWQgKikwKSkKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAg
ICAgaWYgKGZwID09ICgodm9pZCAqKTApKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKG9wdGlv
bmFsKQogICAgICAgICAgICAgICAgcmV0dXJuIDA7CgogICAgICAgICAgICBmYXRhbCgiVW5hYmxl
IHRvIGZpbmQgZmlsZSBcIiVzXCJcbiIsIHBjLT5maWxlbmFtZSk7CiAgICAgICAgfQogICAgfQoK
CgoKCgoKICAgIGlmIChvcGVuX2ZwID09ICgodm9pZCAqKTApKQogICAgewogICAgICAgIHN0cmlu
Z0xpc3QgKnNsOwoKICAgICAgICBmb3IgKHNsID0gYWxsOyBzbCAhPSAoKHZvaWQgKikwKTsgc2wg
PSBzbC0+bmV4dCkKICAgICAgICAgICAgaWYgKF9fZXh0ZW5zaW9uX18gKHsgc2l6ZV90IF9fczFf
bGVuLCBfX3MyX2xlbjsgKF9fYnVpbHRpbl9jb25zdGFudF9wIChzbC0+cykgJiYgX19idWlsdGlu
X2NvbnN0YW50X3AgKGZ1bGxuYW1lKSAmJiAoX19zMV9sZW4gPSBzdHJsZW4gKHNsLT5zKSwgX19z
Ml9sZW4gPSBzdHJsZW4gKGZ1bGxuYW1lKSwgKCEoKHNpemVfdCkoY29uc3Qgdm9pZCAqKSgoc2wt
PnMpICsgMSkgLSAoc2l6ZV90KShjb25zdCB2b2lkICopKHNsLT5zKSA9PSAxKSB8fCBfX3MxX2xl
biA+PSA0KSAmJiAoISgoc2l6ZV90KShjb25zdCB2b2lkICopKChmdWxsbmFtZSkgKyAxKSAtIChz
aXplX3QpKGNvbnN0IHZvaWQgKikoZnVsbG5hbWUpID09IDEpIHx8IF9fczJfbGVuID49IDQpKSA/
IF9fYnVpbHRpbl9zdHJjbXAgKHNsLT5zLCBmdWxsbmFtZSkgOiAoX19idWlsdGluX2NvbnN0YW50
X3AgKHNsLT5zKSAmJiAoKHNpemVfdCkoY29uc3Qgdm9pZCAqKSgoc2wtPnMpICsgMSkgLSAoc2l6
ZV90KShjb25zdCB2b2lkICopKHNsLT5zKSA9PSAxKSAmJiAoX19zMV9sZW4gPSBzdHJsZW4gKHNs
LT5zKSwgX19zMV9sZW4gPCA0KSA/IChfX2J1aWx0aW5fY29uc3RhbnRfcCAoZnVsbG5hbWUpICYm
ICgoc2l6ZV90KShjb25zdCB2b2lkICopKChmdWxsbmFtZSkgKyAxKSAtIChzaXplX3QpKGNvbnN0
IHZvaWQgKikoZnVsbG5hbWUpID09IDEpID8gX19idWlsdGluX3N0cmNtcCAoc2wtPnMsIGZ1bGxu
YW1lKSA6IChfX2V4dGVuc2lvbl9fICh7IF9fY29uc3QgdW5zaWduZWQgY2hhciAqX19zMiA9IChf
X2NvbnN0IHVuc2lnbmVkIGNoYXIgKikgKF9fY29uc3QgY2hhciAqKSAoZnVsbG5hbWUpOyByZWdp
c3RlciBpbnQgX19yZXN1bHQgPSAoKChfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKikgKF9fY29uc3Qg
Y2hhciAqKSAoc2wtPnMpKVswXSAtIF9fczJbMF0pOyBpZiAoX19zMV9sZW4gPiAwICYmIF9fcmVz
dWx0ID09IDApIHsgX19yZXN1bHQgPSAoKChfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKikgKF9fY29u
c3QgY2hhciAqKSAoc2wtPnMpKVsxXSAtIF9fczJbMV0pOyBpZiAoX19zMV9sZW4gPiAxICYmIF9f
cmVzdWx0ID09IDApIHsgX19yZXN1bHQgPSAoKChfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKikgKF9f
Y29uc3QgY2hhciAqKSAoc2wtPnMpKVsyXSAtIF9fczJbMl0pOyBpZiAoX19zMV9sZW4gPiAyICYm
IF9fcmVzdWx0ID09IDApIF9fcmVzdWx0ID0gKCgoX19jb25zdCB1bnNpZ25lZCBjaGFyICopIChf
X2NvbnN0IGNoYXIgKikgKHNsLT5zKSlbM10gLSBfX3MyWzNdKTsgfSB9IF9fcmVzdWx0OyB9KSkp
IDogKF9fYnVpbHRpbl9jb25zdGFudF9wIChmdWxsbmFtZSkgJiYgKChzaXplX3QpKGNvbnN0IHZv
aWQgKikoKGZ1bGxuYW1lKSArIDEpIC0gKHNpemVfdCkoY29uc3Qgdm9pZCAqKShmdWxsbmFtZSkg
PT0gMSkgJiYgKF9fczJfbGVuID0gc3RybGVuIChmdWxsbmFtZSksIF9fczJfbGVuIDwgNCkgPyAo
X19idWlsdGluX2NvbnN0YW50X3AgKHNsLT5zKSAmJiAoKHNpemVfdCkoY29uc3Qgdm9pZCAqKSgo
c2wtPnMpICsgMSkgLSAoc2l6ZV90KShjb25zdCB2b2lkICopKHNsLT5zKSA9PSAxKSA/IF9fYnVp
bHRpbl9zdHJjbXAgKHNsLT5zLCBmdWxsbmFtZSkgOiAoX19leHRlbnNpb25fXyAoeyBfX2NvbnN0
IHVuc2lnbmVkIGNoYXIgKl9fczEgPSAoX19jb25zdCB1bnNpZ25lZCBjaGFyICopIChfX2NvbnN0
IGNoYXIgKikgKHNsLT5zKTsgcmVnaXN0ZXIgaW50IF9fcmVzdWx0ID0gX19zMVswXSAtICgoX19j
b25zdCB1bnNpZ25lZCBjaGFyICopIChfX2NvbnN0IGNoYXIgKikgKGZ1bGxuYW1lKSlbMF07IGlm
IChfX3MyX2xlbiA+IDAgJiYgX19yZXN1bHQgPT0gMCkgeyBfX3Jlc3VsdCA9IChfX3MxWzFdIC0g
KChfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKikgKF9fY29uc3QgY2hhciAqKSAoZnVsbG5hbWUpKVsx
XSk7IGlmIChfX3MyX2xlbiA+IDEgJiYgX19yZXN1bHQgPT0gMCkgeyBfX3Jlc3VsdCA9IChfX3Mx
WzJdIC0gKChfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKikgKF9fY29uc3QgY2hhciAqKSAoZnVsbG5h
bWUpKVsyXSk7IGlmIChfX3MyX2xlbiA+IDIgJiYgX19yZXN1bHQgPT0gMCkgX19yZXN1bHQgPSAo
X19zMVszXSAtICgoX19jb25zdCB1bnNpZ25lZCBjaGFyICopIChfX2NvbnN0IGNoYXIgKikgKGZ1
bGxuYW1lKSlbM10pOyB9IH0gX19yZXN1bHQ7IH0pKSkgOiBfX2J1aWx0aW5fc3RyY21wIChzbC0+
cywgZnVsbG5hbWUpKSkpOyB9KSA9PSAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBm
Y2xvc2UoZnApOwogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgIH0KICAgIH0K
CgogICAgYXBwZW5kU3RyaW5nKCZhbGwsIHNpcFN0cmR1cChmdWxsbmFtZSkpOwoKICAgIHl5aW4g
PSBmcDsKCiAgICArK2N1cnJlbnRGaWxlOwoKCiAgICBpZiAoKGN3ZCA9IChfX2V4dGVuc2lvbl9f
IChfX2J1aWx0aW5fY29uc3RhbnRfcCAoJy8nKSAmJiAhX19idWlsdGluX2NvbnN0YW50X3AgKGZ1
bGxuYW1lKSAmJiAoJy8nKSA9PSAnXDAnID8gKGNoYXIgKikgX19yYXdtZW1jaHIgKGZ1bGxuYW1l
LCAnLycpIDogX19idWlsdGluX3N0cmNociAoZnVsbG5hbWUsICcvJykpKSkgIT0gKCh2b2lkICop
MCkpCiAgICB7CiAgICAgICAgY3dkID0gc2lwU3RyZHVwKGZ1bGxuYW1lKTsKICAgICAgICAqc3Ry
cmNocihjd2QsJy8nKSA9ICdcMCc7CiAgICB9CgogICAgaW5wdXRGaWxlU3RhY2tbY3VycmVudEZp
bGVdLmxpbmVubyA9IDE7CiAgICBpbnB1dEZpbGVTdGFja1tjdXJyZW50RmlsZV0ubmFtZSA9IGZ1
bGxuYW1lOwogICAgaW5wdXRGaWxlU3RhY2tbY3VycmVudEZpbGVdLnBjID0gKnBjOwogICAgaW5w
dXRGaWxlU3RhY2tbY3VycmVudEZpbGVdLmN3ZCA9IGN3ZDsKCiAgICBpZiAoY3VycmVudEZpbGUg
PiAwKQogICAgewogICAgICAgIGlucHV0RmlsZVN0YWNrW2N1cnJlbnRGaWxlXS5icyA9ICggKHl5
X2J1ZmZlcl9zdGFjaykgPyAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCld
IDogKCh2b2lkICopMCkpOwogICAgICAgIHl5X3N3aXRjaF90b19idWZmZXIoeXlfY3JlYXRlX2J1
ZmZlcih5eWluLDE2Mzg0KSk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCgoKCgoKc3RhdGljIEZJ
TEUgKm9wZW5GaWxlKGNvbnN0IGNoYXIgKm5hbWUpCnsKICAgIEZJTEUgKmZwOwoKICAgIGlmICgo
ZnAgPSBmb3BlbihuYW1lLCJyIikpID09ICgodm9pZCAqKTApICYmICgqX19lcnJub19sb2NhdGlv
biAoKSkgIT0gMikKICAgICAgICBmYXRhbCgiRXJyb3IgaW4gb3BlbmluZyBmaWxlICVzXG4iLG5h
bWUpOwoKICAgIHJldHVybiBmcDsKfQoKCgoKCnZvaWQgeXllcnJvcihjaGFyICpzKQp7CiAgICBp
ZiAoY3VycmVudEZpbGUgPCAwKQogICAgICAgIGZhdGFsKCIlc1xuIiwgcyk7CgogICAgZmF0YWwo
IiVzOiVkOiAlc1xuIiwKICAgICAgICBpbnB1dEZpbGVTdGFja1tjdXJyZW50RmlsZV0ubmFtZSwK
ICAgICAgICBpbnB1dEZpbGVTdGFja1tjdXJyZW50RmlsZV0ubGluZW5vLAogICAgICAgIHMpOwp9
CgoKCgoKdm9pZCB5eXdhcm5pbmcoY2hhciAqcykKewogICAgd2FybmluZyhQYXJzZXJXYXJuaW5n
LCAiJXM6JWQ6ICVzXG4iLCBpbnB1dEZpbGVTdGFja1tjdXJyZW50RmlsZV0ubmFtZSwKICAgICAg
ICAgICAgaW5wdXRGaWxlU3RhY2tbY3VycmVudEZpbGVdLmxpbmVubywgcyk7Cn0KCgoKCgp2b2lk
IGRlcHJlY2F0ZWQoY29uc3QgY2hhciAqbXNnKQp7CiAgICB3YXJuaW5nKERlcHJlY2F0aW9uV2Fy
bmluZywgIiVzOiVkOiAlc1xuIiwKICAgICAgICAgICAgaW5wdXRGaWxlU3RhY2tbY3VycmVudEZp
bGVdLm5hbWUsCiAgICAgICAgICAgIGlucHV0RmlsZVN0YWNrW2N1cnJlbnRGaWxlXS5saW5lbm8s
IG1zZyk7Cn0KCgoKCgpzdGF0aWMgdm9pZCBmYXRhbGxleChjaGFyICpzKQp7CiAgICBmYXRhbCgi
JXM6JWQ6IExleGljYWwgYW5hbHlzZXIgZXJyb3I6ICVzXG4iLAogICAgICAgIGlucHV0RmlsZVN0
YWNrW2N1cnJlbnRGaWxlXS5uYW1lLAogICAgICAgIGlucHV0RmlsZVN0YWNrW2N1cnJlbnRGaWxl
XS5saW5lbm8sCiAgICAgICAgcyk7Cn0KCgoKCgoKCnZvaWQgcmVzZXRMZXhlclN0YXRlKCkKewog
ICAgKHl5X3N0YXJ0KSA9IDEgKyAyICogMDsKfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>