public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* middle-end/8611: Internal compiler error
@ 2002-11-22 11:16 mnordine
  0 siblings, 0 replies; 2+ messages in thread
From: mnordine @ 2002-11-22 11:16 UTC (permalink / raw)
  To: gcc-gnats


>Number:         8611
>Category:       middle-end
>Synopsis:       Internal compiler error
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Nov 16 17:16:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     mnordine@wanadoo.fr
>Release:        unknown-1.0
>Organization:
>Environment:
SunOS nunuhome 5.8 Generic_108529-15 i86pc i386 i86pc
>Description:
In compiling mesa-4.1:

nunuhome% gcc -v
Reading specs from /usr/local/lib/gcc-lib/i386-pc-solaris2.8/3.1/specs
Configured with: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls
Thread model: posix
gcc version 3.1

nunuhome% gcc -c -I. -I../include -save-temps -O3 -march=i486 -fPIC -I/usr/openwin/include -DUSE_XSHM image.c -o image.o
image.c: In function `_mesa_unpack_chan_color_span':
image.c:2944: could not find a spill register
(insn 1627 1625 1628 (set (subreg:SF (reg:QI 275) 0)
        (plus:SF (reg:SF 8 st(0) [276])
            (reg:SF 9 st(1) [280]))) 525 {*fop_sf_comm_nosse} (insn_list 1618 (nil))
    (expr_list:REG_DEAD (reg:SF 8 st(0) [276])
        (nil)))
image.c:2944: Internal compiler error in failed_reload, at reload1.c:5050
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
make[2]: *** [image.o] Error 1
make[2]: Leaving directory `/opt/source/Mesa-4.1/src'
make[1]: *** [solaris-x86-gcc] Error 2
make[1]: Leaving directory `/opt/source/Mesa-4.1/src'
make: *** [solaris-x86-gcc] Error 2
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="image.i"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="image.i"

IyAxICJpbWFnZS5jIgojIDEgIjxidWlsdC1pbj4iCiMgMSAiPGNvbW1hbmQgbGluZT4iCiMgMSAi
aW1hZ2UuYyIKIyAyNyAiaW1hZ2UuYyIKIyAxICJnbGhlYWRlci5oIiAxCiMgNTIgImdsaGVhZGVy
LmgiCiMgMSAiL3Vzci9sb2NhbC9pMzg2LXBjLXNvbGFyaXMyLjgvaW5jbHVkZS9hc3NlcnQuaCIg
MSAzCiMgMzAgIi91c3IvbG9jYWwvaTM4Ni1wYy1zb2xhcmlzMi44L2luY2x1ZGUvYXNzZXJ0Lmgi
IDMKZXh0ZXJuIHZvaWQgX19lcHJpbnRmIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgdW5z
aWduZWQsIGNvbnN0IGNoYXIgKikKICAgIF9fYXR0cmlidXRlX18gKChub3JldHVybikpOwojIDUz
ICJnbGhlYWRlci5oIiAyCiMgMSAiL3Vzci9pbmNsdWRlL2N0eXBlLmgiIDEgMyA0CiMgMTYgIi91
c3IvaW5jbHVkZS9jdHlwZS5oIiAzIDQKI3ByYWdtYSBpZGVudCAiQCgjKWN0eXBlLmgJMS4zMwk5
OS8wOC8xMCBTTUkiIAoKIyAxICIvdXNyL2luY2x1ZGUvaXNvL2N0eXBlX2lzby5oIiAxIDMgNAoj
IDI4ICIvdXNyL2luY2x1ZGUvaXNvL2N0eXBlX2lzby5oIiAzIDQKI3ByYWdtYSBpZGVudCAiQCgj
KWN0eXBlX2lzby5oCTEuMQk5OS8wOC8wOSBTTUkiIAoKIyAxICIvdXNyL2luY2x1ZGUvc3lzL2Zl
YXR1cmVfdGVzdHMuaCIgMSAzIDQKIyAxMyAiL3Vzci9pbmNsdWRlL3N5cy9mZWF0dXJlX3Rlc3Rz
LmgiIDMgNAojcHJhZ21hIGlkZW50ICJAKCMpZmVhdHVyZV90ZXN0cy5oCTEuMTgJOTkvMDcvMjYg
U01JIgoKIyAxICIvdXNyL2luY2x1ZGUvc3lzL2lzYV9kZWZzLmgiIDEgMyA0CiMgOSAiL3Vzci9p
bmNsdWRlL3N5cy9pc2FfZGVmcy5oIiAzIDQKI3ByYWdtYSBpZGVudCAiQCgjKWlzYV9kZWZzLmgJ
MS4yMAk5OS8wNS8wNCBTTUkiCiMgMTYgIi91c3IvaW5jbHVkZS9zeXMvZmVhdHVyZV90ZXN0cy5o
IiAyIDMgNAojIDMxICIvdXNyL2luY2x1ZGUvaXNvL2N0eXBlX2lzby5oIiAyIDMgNAojIDYzICIv
dXNyL2luY2x1ZGUvaXNvL2N0eXBlX2lzby5oIiAzIDQKZXh0ZXJuIGludCBpc2FsbnVtKGludCk7
CmV4dGVybiBpbnQgaXNhbHBoYShpbnQpOwpleHRlcm4gaW50IGlzY250cmwoaW50KTsKZXh0ZXJu
IGludCBpc2RpZ2l0KGludCk7CmV4dGVybiBpbnQgaXNncmFwaChpbnQpOwpleHRlcm4gaW50IGlz
bG93ZXIoaW50KTsKZXh0ZXJuIGludCBpc3ByaW50KGludCk7CmV4dGVybiBpbnQgaXNwdW5jdChp
bnQpOwpleHRlcm4gaW50IGlzc3BhY2UoaW50KTsKZXh0ZXJuIGludCBpc3VwcGVyKGludCk7CmV4
dGVybiBpbnQgaXN4ZGlnaXQoaW50KTsKCgoKCgoKCmV4dGVybiBpbnQgdG9sb3dlcihpbnQpOwpl
eHRlcm4gaW50IHRvdXBwZXIoaW50KTsKCgoKCgpleHRlcm4gdW5zaWduZWQgY2hhciBfX2N0eXBl
W107CmV4dGVybiB1bnNpZ25lZCBpbnQgKl9fY3R5cGVfbWFzazsKZXh0ZXJuIGludCAqX190cmFu
c191cHBlcjsKZXh0ZXJuIGludCAqX190cmFuc19sb3dlcjsKIyAxOSAiL3Vzci9pbmNsdWRlL2N0
eXBlLmgiIDIgMyA0CiMgNDkgIi91c3IvaW5jbHVkZS9jdHlwZS5oIiAzIDQKZXh0ZXJuIGludCBp
c2FzY2lpKGludCk7CmV4dGVybiBpbnQgdG9hc2NpaShpbnQpOwpleHRlcm4gaW50IF90b2xvd2Vy
KGludCk7CmV4dGVybiBpbnQgX3RvdXBwZXIoaW50KTsKIyA1NCAiZ2xoZWFkZXIuaCIgMgoKCgoK
IyAxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVk
ZS9tYXRoLmgiIDEgMyA0CiMgMjMgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xh
cmlzMi44LzMuMS9pbmNsdWRlL21hdGguaCIgMyA0CiNwcmFnbWEgaWRlbnQgIkAoIyltYXRoLmgJ
Mi4xMAk5OS8wNy8yOSBTTUkiCgojIDEgIi91c3IvaW5jbHVkZS9pc28vbWF0aF9pc28uaCIgMSAz
IDQKCgoKCgoKCiNwcmFnbWEgaWRlbnQgIkAoIyltYXRoX2lzby5oCTEuMQk5OS8wNy8zMCBTTUki
CiMgMjAgIi91c3IvaW5jbHVkZS9pc28vbWF0aF9pc28uaCIgMyA0CnR5cGVkZWYgdW5pb24gX2hf
dmFsIHsKICAgICAgICB1bnNpZ25lZCBsb25nIF9pW3NpemVvZihkb3VibGUpIC8gc2l6ZW9mKHVu
c2lnbmVkIGxvbmcpXTsKICAgICAgICBkb3VibGUgX2Q7Cn0gX2hfdmFsOwoKCmV4dGVybiBjb25z
dCBfaF92YWwgX19odWdlX3ZhbDsKIyAzNyAiL3Vzci9pbmNsdWRlL2lzby9tYXRoX2lzby5oIiAz
IDQKZXh0ZXJuIGRvdWJsZSBhY29zIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGFzaW4gKGRvdWJs
ZSk7CmV4dGVybiBkb3VibGUgYXRhbiAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBhdGFuMiAoZG91
YmxlLCBkb3VibGUpOwpleHRlcm4gZG91YmxlIGNvcyAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBz
aW4gKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgdGFuIChkb3VibGUpOwoKZXh0ZXJuIGRvdWJsZSBj
b3NoIChkb3VibGUpOwpleHRlcm4gZG91YmxlIHNpbmggKGRvdWJsZSk7CmV4dGVybiBkb3VibGUg
dGFuaCAoZG91YmxlKTsKCmV4dGVybiBkb3VibGUgZXhwIChkb3VibGUpOwpleHRlcm4gZG91Ymxl
IGZyZXhwIChkb3VibGUsIGludCAqKTsKZXh0ZXJuIGRvdWJsZSBsZGV4cCAoZG91YmxlLCBpbnQp
OwpleHRlcm4gZG91YmxlIGxvZyAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBsb2cxMCAoZG91Ymxl
KTsKZXh0ZXJuIGRvdWJsZSBtb2RmIChkb3VibGUsIGRvdWJsZSAqKTsKCmV4dGVybiBkb3VibGUg
cG93IChkb3VibGUsIGRvdWJsZSk7CmV4dGVybiBkb3VibGUgc3FydCAoZG91YmxlKTsKCmV4dGVy
biBkb3VibGUgY2VpbCAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBmYWJzIChkb3VibGUpOwpleHRl
cm4gZG91YmxlIGZsb29yIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGZtb2QgKGRvdWJsZSwgZG91
YmxlKTsKIyAyNiAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4x
L2luY2x1ZGUvbWF0aC5oIiAyIDMgNAojIDg5ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2kzODYt
cGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9tYXRoLmgiIDMgNApleHRlcm4gaW50IHNpZ25nYW07
CgoKCgoKCgplbnVtIHZlcnNpb24ge2xpYm1faWVlZSA9IC0xLCBjX2lzc3VlXzQsIGFuc2lfMSwg
c3RyaWN0X2Fuc2l9OwoKCmV4dGVybiBjb25zdCBlbnVtIHZlcnNpb24gX2xpYl92ZXJzaW9uOwoK
CgoKc3RydWN0IGV4Y2VwdGlvbiB7CiAgICAgICAgaW50IHR5cGU7CiAgICAgICAgY2hhciAqbmFt
ZTsKICAgICAgICBkb3VibGUgYXJnMTsKICAgICAgICBkb3VibGUgYXJnMjsKICAgICAgICBkb3Vi
bGUgcmV0dmFsOwp9OwojIDE0NSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFy
aXMyLjgvMy4xL2luY2x1ZGUvbWF0aC5oIiAzIDQKZXh0ZXJuIGRvdWJsZSBlcmYgKGRvdWJsZSk7
CmV4dGVybiBkb3VibGUgZXJmYyAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBnYW1tYSAoZG91Ymxl
KTsKZXh0ZXJuIGRvdWJsZSBoeXBvdCAoZG91YmxlLCBkb3VibGUpOwpleHRlcm4gaW50IGlzbmFu
IChkb3VibGUpOwpleHRlcm4gZG91YmxlIGowIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGoxIChk
b3VibGUpOwpleHRlcm4gZG91YmxlIGpuIChpbnQsIGRvdWJsZSk7CmV4dGVybiBkb3VibGUgbGdh
bW1hIChkb3VibGUpOwpleHRlcm4gZG91YmxlIHkwIChkb3VibGUpOwpleHRlcm4gZG91YmxlIHkx
IChkb3VibGUpOwpleHRlcm4gZG91YmxlIHluIChpbnQsIGRvdWJsZSk7CiMgMTcyICIvdXNyL2xv
Y2FsL2xpYi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9tYXRoLmgiIDMg
NApleHRlcm4gZG91YmxlIGFjb3NoIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGFzaW5oIChkb3Vi
bGUpOwpleHRlcm4gZG91YmxlIGF0YW5oIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGNicnQgKGRv
dWJsZSk7CmV4dGVybiBkb3VibGUgbG9nYiAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBuZXh0YWZ0
ZXIgKGRvdWJsZSwgZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSByZW1haW5kZXIgKGRvdWJsZSwgZG91
YmxlKTsKZXh0ZXJuIGRvdWJsZSBzY2FsYiAoZG91YmxlLCBkb3VibGUpOwojIDE5MiAiL3Vzci9s
b2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUvbWF0aC5oIiAz
IDQKZXh0ZXJuIGRvdWJsZSBleHBtMSAoZG91YmxlKTsKZXh0ZXJuIGludCBpbG9nYiAoZG91Ymxl
KTsKZXh0ZXJuIGRvdWJsZSBsb2cxcCAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSByaW50IChkb3Vi
bGUpOwojIDIwOCAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4x
L2luY2x1ZGUvbWF0aC5oIiAzIDQKZXh0ZXJuIGludCBtYXRoZXJyIChzdHJ1Y3QgZXhjZXB0aW9u
ICopOwoKCgoKZXh0ZXJuIGRvdWJsZSBzaWduaWZpY2FuZCAoZG91YmxlKTsKCgoKCmV4dGVybiBk
b3VibGUgY29weXNpZ24gKGRvdWJsZSwgZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBzY2FsYm4gKGRv
dWJsZSwgaW50KTsKIyAyNDMgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlz
Mi44LzMuMS9pbmNsdWRlL21hdGguaCIgMyA0CmV4dGVybiBmbG9hdCBtb2RmZiAoZmxvYXQsIGZs
b2F0ICopOwoKCgoKCgojIDEgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlz
Mi44LzMuMS9pbmNsdWRlL2Zsb2F0aW5ncG9pbnQuaCIgMSAzIDQKIyAyMCAiL3Vzci9sb2NhbC9s
aWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUvZmxvYXRpbmdwb2ludC5o
IiAzIDQKI3ByYWdtYSBpZGVudCAiQCgjKWZsb2F0aW5ncG9pbnQuaAkyLjUJOTkvMDYvMjIgU01J
IgoKCiMgMSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2lu
Y2x1ZGUvc3RkaW9fdGFnLmgiIDEgMyA0CiMgMTggIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4
Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N0ZGlvX3RhZy5oIiAzIDQKI3ByYWdtYSBpZGVu
dCAiQCgjKXN0ZGlvX3RhZy5oCTEuMwk5OC8wNC8yMCBTTUkiCiMgMzAgIi91c3IvbG9jYWwvbGli
L2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N0ZGlvX3RhZy5oIiAzIDQK
dHlwZWRlZiBzdHJ1Y3QgX19GSUxFIF9fRklMRTsKIyAyNCAiL3Vzci9sb2NhbC9saWIvZ2NjLWxp
Yi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUvZmxvYXRpbmdwb2ludC5oIiAyIDMgNAoK
IyAxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVk
ZS9zeXMvaWVlZWZwLmgiIDEgMyA0CiMgMTcgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1w
Yy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N5cy9pZWVlZnAuaCIgMyA0CiNwcmFnbWEgaWRlbnQg
IkAoIylpZWVlZnAuaAkyLjggOTkvMTAvMjkiCiMgNTkgIi91c3IvbG9jYWwvbGliL2djYy1saWIv
aTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N5cy9pZWVlZnAuaCIgMyA0CmVudW0gZnBf
ZGlyZWN0aW9uX3R5cGUgewogICAgICAgIGZwX25lYXJlc3QgPSAwLAogICAgICAgIGZwX25lZ2F0
aXZlID0gMSwKICAgICAgICBmcF9wb3NpdGl2ZSA9IDIsCiAgICAgICAgZnBfdG96ZXJvID0gMwp9
OwoKZW51bSBmcF9wcmVjaXNpb25fdHlwZSB7CiAgICAgICAgZnBfc2luZ2xlID0gMCwKICAgICAg
ICBmcF9wcmVjaXNpb25fMyA9IDEsCiAgICAgICAgZnBfZG91YmxlID0gMiwKICAgICAgICBmcF9l
eHRlbmRlZCA9IDMKfTsKCmVudW0gZnBfZXhjZXB0aW9uX3R5cGUgewogICAgICAgIGZwX2ludmFs
aWQgPSAwLAogICAgICAgIGZwX2Rlbm9ybWFsaXplZCA9IDEsCiAgICAgICAgZnBfZGl2aXNpb24g
PSAyLAogICAgICAgIGZwX292ZXJmbG93ID0gMywKICAgICAgICBmcF91bmRlcmZsb3cgPSA0LAog
ICAgICAgIGZwX2luZXhhY3QgPSA1Cn07CgplbnVtIGZwX3RyYXBfZW5hYmxlX3R5cGUgewogICAg
ICAgIGZwX3RyYXBfaW52YWxpZCA9IDAsCiAgICAgICAgZnBfdHJhcF9kZW5vcm1hbGl6ZWQgPSAx
LAogICAgICAgIGZwX3RyYXBfZGl2aXNpb24gPSAyLAogICAgICAgIGZwX3RyYXBfb3ZlcmZsb3cg
PSAzLAogICAgICAgIGZwX3RyYXBfdW5kZXJmbG93ID0gNCwKICAgICAgICBmcF90cmFwX2luZXhh
Y3QgPSA1Cn07CiMgMTMzICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIu
OC8zLjEvaW5jbHVkZS9zeXMvaWVlZWZwLmgiIDMgNAplbnVtIGZwX2NsYXNzX3R5cGUgewogICAg
ICAgIGZwX3plcm8gPSAwLAogICAgICAgIGZwX3N1Ym5vcm1hbCA9IDEsCiAgICAgICAgZnBfbm9y
bWFsID0gMiwKICAgICAgICBmcF9pbmZpbml0eSA9IDMsCiAgICAgICAgZnBfcXVpZXQgPSA0LAog
ICAgICAgIGZwX3NpZ25hbGluZyA9IDUKfTsKIyAyNiAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9p
Mzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUvZmxvYXRpbmdwb2ludC5oIiAyIDMgNAojIDUy
ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9m
bG9hdGluZ3BvaW50LmgiIDMgNAp0eXBlZGVmIF9fRklMRSBGSUxFOwojIDYyICIvdXNyL2xvY2Fs
L2xpYi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9mbG9hdGluZ3BvaW50
LmgiIDMgNAp0eXBlZGVmIGludCBzaWdmcGVfY29kZV90eXBlOwoKdHlwZWRlZiB2b2lkICgqc2ln
ZnBlX2hhbmRsZXJfdHlwZSkoKTsKCgoKCgpleHRlcm4gc2lnZnBlX2hhbmRsZXJfdHlwZSBzaWdm
cGUgKHNpZ2ZwZV9jb2RlX3R5cGUsIHNpZ2ZwZV9oYW5kbGVyX3R5cGUpOwoKCgoKdHlwZWRlZiBm
bG9hdCBzaW5nbGU7CgoKCnR5cGVkZWYgdW5zaWduZWQgZXh0ZW5kZWRbM107CgoKdHlwZWRlZiBs
b25nIGRvdWJsZSBxdWFkcnVwbGU7Cgp0eXBlZGVmIHVuc2lnbmVkIGZwX2V4Y2VwdGlvbl9maWVs
ZF90eXBlOwojIDk0ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8z
LjEvaW5jbHVkZS9mbG9hdGluZ3BvaW50LmgiIDMgNAp0eXBlZGVmIGNoYXIgZGVjaW1hbF9zdHJp
bmdbNTEyXTsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZW51bSBmcF9jbGFzc190eXBlIGZw
Y2xhc3M7CiAgICAgICAgaW50IHNpZ247CiAgICAgICAgaW50IGV4cG9uZW50OwogICAgICAgIGRl
Y2ltYWxfc3RyaW5nIGRzOwoKCiAgICAgICAgaW50IG1vcmU7CgoKICAgICAgICBpbnQgbmRpZ2l0
czsKCgp9IGRlY2ltYWxfcmVjb3JkOwoKZW51bSBkZWNpbWFsX2Zvcm0gewogICAgICAgIGZpeGVk
X2Zvcm0sCgoKICAgICAgICBmbG9hdGluZ19mb3JtCgp9OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg
ICAgIGVudW0gZnBfZGlyZWN0aW9uX3R5cGUgcmQ7CgogICAgICAgIGVudW0gZGVjaW1hbF9mb3Jt
IGRmOwoKICAgICAgICBpbnQgbmRpZ2l0czsKfSBkZWNpbWFsX21vZGU7CgplbnVtIGRlY2ltYWxf
c3RyaW5nX2Zvcm0gewogICAgICAgIGludmFsaWRfZm9ybSwKICAgICAgICB3aGl0ZXNwYWNlX2Zv
cm0sCiAgICAgICAgZml4ZWRfaW50X2Zvcm0sCiAgICAgICAgZml4ZWRfaW50ZG90X2Zvcm0sCiAg
ICAgICAgZml4ZWRfZG90ZnJhY19mb3JtLAogICAgICAgIGZpeGVkX2ludGRvdGZyYWNfZm9ybSwK
ICAgICAgICBmbG9hdGluZ19pbnRfZm9ybSwKICAgICAgICBmbG9hdGluZ19pbnRkb3RfZm9ybSwK
ICAgICAgICBmbG9hdGluZ19kb3RmcmFjX2Zvcm0sCiAgICAgICAgZmxvYXRpbmdfaW50ZG90ZnJh
Y19mb3JtLAogICAgICAgIGluZl9mb3JtLAogICAgICAgIGluZmluaXR5X2Zvcm0sCiAgICAgICAg
bmFuX2Zvcm0sCiAgICAgICAgbmFuc3RyaW5nX2Zvcm0KfTsKCmV4dGVybiB2b2lkIHNpbmdsZV90
b19kZWNpbWFsIChzaW5nbGUgKiwgZGVjaW1hbF9tb2RlICosIGRlY2ltYWxfcmVjb3JkICosIGZw
X2V4Y2VwdGlvbl9maWVsZF90eXBlICopOwoKZXh0ZXJuIHZvaWQgZG91YmxlX3RvX2RlY2ltYWwg
KGRvdWJsZSAqLCBkZWNpbWFsX21vZGUgKiwgZGVjaW1hbF9yZWNvcmQgKiwgZnBfZXhjZXB0aW9u
X2ZpZWxkX3R5cGUgKik7CgpleHRlcm4gdm9pZCBleHRlbmRlZF90b19kZWNpbWFsIChleHRlbmRl
ZCAqLCBkZWNpbWFsX21vZGUgKiwgZGVjaW1hbF9yZWNvcmQgKiwgZnBfZXhjZXB0aW9uX2ZpZWxk
X3R5cGUgKik7CgpleHRlcm4gdm9pZCBxdWFkcnVwbGVfdG9fZGVjaW1hbCAocXVhZHJ1cGxlICos
IGRlY2ltYWxfbW9kZSAqLCBkZWNpbWFsX3JlY29yZCAqLCBmcF9leGNlcHRpb25fZmllbGRfdHlw
ZSAqKTsKCgpleHRlcm4gdm9pZCBkZWNpbWFsX3RvX3NpbmdsZSAoc2luZ2xlICosIGRlY2ltYWxf
bW9kZSAqLCBkZWNpbWFsX3JlY29yZCAqLCBmcF9leGNlcHRpb25fZmllbGRfdHlwZSAqKTsKCmV4
dGVybiB2b2lkIGRlY2ltYWxfdG9fZG91YmxlIChkb3VibGUgKiwgZGVjaW1hbF9tb2RlICosIGRl
Y2ltYWxfcmVjb3JkICosIGZwX2V4Y2VwdGlvbl9maWVsZF90eXBlICopOwoKZXh0ZXJuIHZvaWQg
ZGVjaW1hbF90b19leHRlbmRlZCAoZXh0ZW5kZWQgKiwgZGVjaW1hbF9tb2RlICosIGRlY2ltYWxf
cmVjb3JkICosIGZwX2V4Y2VwdGlvbl9maWVsZF90eXBlICopOwoKZXh0ZXJuIHZvaWQgZGVjaW1h
bF90b19xdWFkcnVwbGUgKHF1YWRydXBsZSAqLCBkZWNpbWFsX21vZGUgKiwgZGVjaW1hbF9yZWNv
cmQgKiwgZnBfZXhjZXB0aW9uX2ZpZWxkX3R5cGUgKik7CgoKZXh0ZXJuIHZvaWQgc3RyaW5nX3Rv
X2RlY2ltYWwgKGNoYXIgKiosIGludCwgaW50LCBkZWNpbWFsX3JlY29yZCAqLCBlbnVtIGRlY2lt
YWxfc3RyaW5nX2Zvcm0gKiwgY2hhciAqKik7CgpleHRlcm4gdm9pZCBmdW5jX3RvX2RlY2ltYWwg
KGNoYXIgKiosIGludCwgaW50LCBkZWNpbWFsX3JlY29yZCAqLCBlbnVtIGRlY2ltYWxfc3RyaW5n
X2Zvcm0gKiwgY2hhciAqKiwgaW50ICgqKSh2b2lkKSwgaW50ICosIGludCAoKikoaW50KSk7CgoK
ZXh0ZXJuIHZvaWQgZmlsZV90b19kZWNpbWFsIChjaGFyICoqLCBpbnQsIGludCwgZGVjaW1hbF9y
ZWNvcmQgKiwgZW51bSBkZWNpbWFsX3N0cmluZ19mb3JtICosIGNoYXIgKiosIEZJTEUgKiwgaW50
ICopOwoKCgpleHRlcm4gY2hhciAqc2Vjb252ZXJ0IChzaW5nbGUgKiwgaW50LCBpbnQgKiwgaW50
ICosIGNoYXIgKik7CmV4dGVybiBjaGFyICpzZmNvbnZlcnQgKHNpbmdsZSAqLCBpbnQsIGludCAq
LCBpbnQgKiwgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKnNnY29udmVydCAoc2luZ2xlICosIGludCwg
aW50LCBjaGFyICopOwpleHRlcm4gY2hhciAqZWNvbnZlcnQgKGRvdWJsZSwgaW50LCBpbnQgKiwg
aW50ICosIGNoYXIgKik7CmV4dGVybiBjaGFyICpmY29udmVydCAoZG91YmxlLCBpbnQsIGludCAq
LCBpbnQgKiwgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKmdjb252ZXJ0IChkb3VibGUsIGludCwgaW50
LCBjaGFyICopOwpleHRlcm4gY2hhciAqcWVjb252ZXJ0IChxdWFkcnVwbGUgKiwgaW50LCBpbnQg
KiwgaW50ICosIGNoYXIgKik7CmV4dGVybiBjaGFyICpxZmNvbnZlcnQgKHF1YWRydXBsZSAqLCBp
bnQsIGludCAqLCBpbnQgKiwgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKnFnY29udmVydCAocXVhZHJ1
cGxlICosIGludCwgaW50LCBjaGFyICopOwoKZXh0ZXJuIGNoYXIgKmVjdnQgKGRvdWJsZSwgaW50
LCBpbnQgKiwgaW50ICopOwpleHRlcm4gY2hhciAqZmN2dCAoZG91YmxlLCBpbnQsIGludCAqLCBp
bnQgKik7CmV4dGVybiBjaGFyICpnY3Z0IChkb3VibGUsIGludCwgY2hhciAqKTsKCgoKCgpleHRl
cm4gZG91YmxlIGF0b2YgKGNvbnN0IGNoYXIgKik7CmV4dGVybiBkb3VibGUgc3RydG9kIChjb25z
dCBjaGFyICosIGNoYXIgKiopOwojIDI1MSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBj
LXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUvbWF0aC5oIiAyIDMgNAojIDU5ICJnbGhlYWRlci5oIiAy
CgojIDEgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNs
dWRlL2xpbWl0cy5oIiAxIDMgNAojIDExICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2kzODYtcGMt
c29sYXJpczIuOC8zLjEvaW5jbHVkZS9saW1pdHMuaCIgMyA0CiMgMSAiL3Vzci9sb2NhbC9saWIv
Z2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUvc3lzbGltaXRzLmgiIDEgMyA0
CiMgMjUgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNs
dWRlL3N5c2xpbWl0cy5oIiAzIDQKI3ByYWdtYSBpZGVudCAiQCgjKWxpbWl0cy5oCTEuNTEJOTkv
MTAvMDggU01JIiAKCgoKIyAxICIvdXNyL2luY2x1ZGUvaXNvL2xpbWl0c19pc28uaCIgMSAzIDQK
IyAyOCAiL3Vzci9pbmNsdWRlL2lzby9saW1pdHNfaXNvLmgiIDMgNAojcHJhZ21hIGlkZW50ICJA
KCMpbGltaXRzX2lzby5oCTEuMQk5OS8wOC8wOSBTTUkiIAojIDMwICIvdXNyL2xvY2FsL2xpYi9n
Y2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9zeXNsaW1pdHMuaCIgMiAzIDQK
IyA0MSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1
ZGUvc3lzbGltaXRzLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9zeXMvaW50X2xpbWl0cy5oIiAx
IDMgNAojIDkgIi91c3IvaW5jbHVkZS9zeXMvaW50X2xpbWl0cy5oIiAzIDQKI3ByYWdtYSBpZGVu
dCAiQCgjKWludF9saW1pdHMuaAkxLjYJOTkvMDgvMDYgU01JIgojIDQyICIvdXNyL2xvY2FsL2xp
Yi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9zeXNsaW1pdHMuaCIgMiAz
IDQKIyAyNDMgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9p
bmNsdWRlL3N5c2xpbWl0cy5oIiAzIDQKdHlwZWRlZiBsb25nIGNsb2NrX3Q7CgoKZXh0ZXJuIGxv
bmcgX3N5c2NvbmYoaW50KTsKIyAxMiAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNv
bGFyaXMyLjgvMy4xL2luY2x1ZGUvbGltaXRzLmgiIDIgMyA0CiMgNjEgImdsaGVhZGVyLmgiIDIK
IyAxICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDEgMyA0CiMgMTYgIi91c3IvaW5jbHVkZS9zdGRs
aWIuaCIgMyA0CiNwcmFnbWEgaWRlbnQgIkAoIylzdGRsaWIuaAkxLjQ3CTk5LzExLzAzIFNNSSIg
CgojIDEgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNs
dWRlL2lzby9zdGRsaWJfaXNvLmgiIDEgMyA0CiMgMzcgIi91c3IvbG9jYWwvbGliL2djYy1saWIv
aTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL2lzby9zdGRsaWJfaXNvLmgiIDMgNAojcHJh
Z21hIGlkZW50ICJAKCMpc3RkbGliX2lzby5oCTEuMQk5OS8wOC8wOSBTTUkiIAojIDQ5ICIvdXNy
L2xvY2FsL2xpYi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9pc28vc3Rk
bGliX2lzby5oIiAzIDQKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGludCBxdW90OwogICAgICAg
IGludCByZW07Cn0gZGl2X3Q7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgbG9uZyBxdW90Owog
ICAgICAgIGxvbmcgcmVtOwp9IGxkaXZfdDsKCgoKCgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6
ZV90OwojIDg4ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEv
aW5jbHVkZS9pc28vc3RkbGliX2lzby5oIiAzIDQKdHlwZWRlZiBsb25nIHdjaGFyX3Q7CgoKCgoK
CmV4dGVybiB1bnNpZ25lZCBjaGFyIF9fY3R5cGVbXTsKCgpleHRlcm4gdm9pZCBhYm9ydCh2b2lk
KTsKZXh0ZXJuIGludCBhYnMoaW50KTsKZXh0ZXJuIGludCBhdGV4aXQodm9pZCAoKikodm9pZCkp
OwpleHRlcm4gZG91YmxlIGF0b2YoY29uc3QgY2hhciAqKTsKZXh0ZXJuIGludCBhdG9pKGNvbnN0
IGNoYXIgKik7CmV4dGVybiBsb25nIGludCBhdG9sKGNvbnN0IGNoYXIgKik7CmV4dGVybiB2b2lk
ICpic2VhcmNoKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIHNpemVfdCwKICAg
ICAgICBpbnQgKCopKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqKSk7CmV4dGVybiB2b2lkICpj
YWxsb2Moc2l6ZV90LCBzaXplX3QpOwpleHRlcm4gZGl2X3QgZGl2KGludCwgaW50KTsKZXh0ZXJu
IHZvaWQgZXhpdChpbnQpOwpleHRlcm4gdm9pZCBmcmVlKHZvaWQgKik7CmV4dGVybiBjaGFyICpn
ZXRlbnYoY29uc3QgY2hhciAqKTsKZXh0ZXJuIGxvbmcgaW50IGxhYnMobG9uZyk7CmV4dGVybiBs
ZGl2X3QgbGRpdihsb25nLCBsb25nKTsKZXh0ZXJuIHZvaWQgKm1hbGxvYyhzaXplX3QpOwpleHRl
cm4gaW50IG1ibGVuKGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsKZXh0ZXJuIHNpemVfdCBtYnN0b3dj
cyh3Y2hhcl90ICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsKZXh0ZXJuIGludCBtYnRvd2Mod2No
YXJfdCAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CmV4dGVybiB2b2lkIHFzb3J0KHZvaWQgKiwg
c2l6ZV90LCBzaXplX3QsCiAgICAgICAgaW50ICgqKShjb25zdCB2b2lkICosIGNvbnN0IHZvaWQg
KikpOwpleHRlcm4gaW50IHJhbmQodm9pZCk7CmV4dGVybiB2b2lkICpyZWFsbG9jKHZvaWQgKiwg
c2l6ZV90KTsKZXh0ZXJuIHZvaWQgc3JhbmQodW5zaWduZWQgaW50KTsKZXh0ZXJuIGRvdWJsZSBz
dHJ0b2QoY29uc3QgY2hhciAqLCBjaGFyICoqKTsKZXh0ZXJuIGxvbmcgaW50IHN0cnRvbChjb25z
dCBjaGFyICosIGNoYXIgKiosIGludCk7CmV4dGVybiB1bnNpZ25lZCBsb25nIGludCBzdHJ0b3Vs
KGNvbnN0IGNoYXIgKiwgY2hhciAqKiwgaW50KTsKZXh0ZXJuIGludCBzeXN0ZW0oY29uc3QgY2hh
ciAqKTsKZXh0ZXJuIGludCB3Y3RvbWIoY2hhciAqLCB3Y2hhcl90KTsKZXh0ZXJuIHNpemVfdCB3
Y3N0b21icyhjaGFyICosIGNvbnN0IHdjaGFyX3QgKiwgc2l6ZV90KTsKIyAxOSAiL3Vzci9pbmNs
dWRlL3N0ZGxpYi5oIiAyIDMgNAojIDY4ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAp0eXBl
ZGVmIHN0cnVjdCB7CiAgICAgICAgbG9uZyBsb25nIHF1b3Q7CiAgICAgICAgbG9uZyBsb25nIHJl
bTsKfSBsbGRpdl90OwoKCgoKCgoKdHlwZWRlZiBsb25nIHVpZF90OwojIDExMiAiL3Vzci9pbmNs
dWRlL3N0ZGxpYi5oIiAzIDQKZXh0ZXJuIHZvaWQgX2V4aXRoYW5kbGUodm9pZCk7CgoKCgpleHRl
cm4gZG91YmxlIGRyYW5kNDgodm9pZCk7CmV4dGVybiBkb3VibGUgZXJhbmQ0OCh1bnNpZ25lZCBz
aG9ydCAqKTsKZXh0ZXJuIGxvbmcganJhbmQ0OCh1bnNpZ25lZCBzaG9ydCAqKTsKZXh0ZXJuIHZv
aWQgbGNvbmc0OCh1bnNpZ25lZCBzaG9ydCAqKTsKZXh0ZXJuIGxvbmcgbHJhbmQ0OCh2b2lkKTsK
ZXh0ZXJuIGxvbmcgbXJhbmQ0OCh2b2lkKTsKZXh0ZXJuIGxvbmcgbnJhbmQ0OCh1bnNpZ25lZCBz
aG9ydCAqKTsKZXh0ZXJuIHVuc2lnbmVkIHNob3J0ICpzZWVkNDgodW5zaWduZWQgc2hvcnQgKik7
CmV4dGVybiB2b2lkIHNyYW5kNDgobG9uZyk7CmV4dGVybiBpbnQgcHV0ZW52KGNoYXIgKik7CmV4
dGVybiB2b2lkIHNldGtleShjb25zdCBjaGFyICopOwojIDE0MCAiL3Vzci9pbmNsdWRlL3N0ZGxp
Yi5oIiAzIDQKdHlwZWRlZiBpbnQgc3NpemVfdDsKCgoKZXh0ZXJuIHZvaWQgc3dhYihjb25zdCBj
aGFyICosIGNoYXIgKiwgc3NpemVfdCk7CgoKCgoKZXh0ZXJuIGludCBta3N0ZW1wKGNoYXIgKik7
CgoKCgpleHRlcm4gaW50IG1rc3RlbXA2NChjaGFyICopOwoKCgoKCmV4dGVybiBsb25nIGE2NGwo
Y29uc3QgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKmVjdnQoZG91YmxlLCBpbnQsIGludCAqLCBpbnQg
Kik7CmV4dGVybiBjaGFyICpmY3Z0KGRvdWJsZSwgaW50LCBpbnQgKiwgaW50ICopOwpleHRlcm4g
Y2hhciAqZ2N2dChkb3VibGUsIGludCwgY2hhciAqKTsKZXh0ZXJuIGludCBnZXRzdWJvcHQoY2hh
ciAqKiwgY2hhciAqY29uc3QgKiwgY2hhciAqKik7CmV4dGVybiBpbnQgZ3JhbnRwdChpbnQpOwpl
eHRlcm4gY2hhciAqaW5pdHN0YXRlKHVuc2lnbmVkLCBjaGFyICosIHNpemVfdCk7CmV4dGVybiBj
aGFyICpsNjRhKGxvbmcpOwpleHRlcm4gY2hhciAqbWt0ZW1wKGNoYXIgKik7CmV4dGVybiBjaGFy
ICpwdHNuYW1lKGludCk7CmV4dGVybiBsb25nIHJhbmRvbSh2b2lkKTsKZXh0ZXJuIGNoYXIgKnJl
YWxwYXRoKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKnNldHN0YXRlKGNvbnN0
IGNoYXIgKik7CmV4dGVybiB2b2lkIHNyYW5kb20odW5zaWduZWQpOwpleHRlcm4gaW50IHR0eXNs
b3Qodm9pZCk7CmV4dGVybiBpbnQgdW5sb2NrcHQoaW50KTsKZXh0ZXJuIHZvaWQgKnZhbGxvYyhz
aXplX3QpOwoKCgoKZXh0ZXJuIGludCBkdXAyKGludCwgaW50KTsKZXh0ZXJuIGNoYXIgKnFlY3Z0
KGxvbmcgZG91YmxlLCBpbnQsIGludCAqLCBpbnQgKik7CmV4dGVybiBjaGFyICpxZmN2dChsb25n
IGRvdWJsZSwgaW50LCBpbnQgKiwgaW50ICopOwpleHRlcm4gY2hhciAqcWdjdnQobG9uZyBkb3Vi
bGUsIGludCwgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKmdldGN3ZChjaGFyICosIHNpemVfdCk7CmV4
dGVybiBjb25zdCBjaGFyICpnZXRleGVjbmFtZSh2b2lkKTsKZXh0ZXJuIGNoYXIgKmdldGxvZ2lu
KHZvaWQpOwpleHRlcm4gaW50IGdldG9wdChpbnQsIGNoYXIgKmNvbnN0ICosIGNvbnN0IGNoYXIg
Kik7CmV4dGVybiBjaGFyICpvcHRhcmc7CmV4dGVybiBpbnQgb3B0aW5kLCBvcHRlcnIsIG9wdG9w
dDsKZXh0ZXJuIGNoYXIgKmdldHBhc3MoY29uc3QgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKmdldHBh
c3NwaHJhc2UoY29uc3QgY2hhciAqKTsKZXh0ZXJuIGludCBnZXRwdyh1aWRfdCwgY2hhciAqKTsK
ZXh0ZXJuIGludCBpc2F0dHkoaW50KTsKZXh0ZXJuIHZvaWQgKm1lbWFsaWduKHNpemVfdCwgc2l6
ZV90KTsKZXh0ZXJuIGNoYXIgKnR0eW5hbWUoaW50KTsKCgpleHRlcm4gbG9uZyBsb25nIGF0b2xs
KGNvbnN0IGNoYXIgKik7CmV4dGVybiBsb25nIGxvbmcgbGxhYnMobG9uZyBsb25nKTsKZXh0ZXJu
IGxsZGl2X3QgbGxkaXYobG9uZyBsb25nLCBsb25nIGxvbmcpOwpleHRlcm4gY2hhciAqbGx0b3N0
cihsb25nIGxvbmcsIGNoYXIgKik7CmV4dGVybiBsb25nIGxvbmcgc3RydG9sbChjb25zdCBjaGFy
ICosIGNoYXIgKiosIGludCk7CmV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgc3RydG91bGwoY29u
c3QgY2hhciAqLCBjaGFyICoqLCBpbnQpOwpleHRlcm4gY2hhciAqdWxsdG9zdHIodW5zaWduZWQg
bG9uZyBsb25nLCBjaGFyICopOwojIDYyICJnbGhlYWRlci5oIiAyCiMgMSAiL3Vzci9sb2NhbC9s
aWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUvc3RkaW8uaCIgMSAzIDQK
IyAxNCAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1
ZGUvc3RkaW8uaCIgMyA0CiMgMSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFy
aXMyLjgvMy4xL2luY2x1ZGUvc3RkYXJnLmgiIDEgMyA0CiMgNDMgIi91c3IvbG9jYWwvbGliL2dj
Yy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N0ZGFyZy5oIiAzIDQKdHlwZWRl
ZiBfX2J1aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKIyAxNSAiL3Vzci9sb2NhbC9saWIv
Z2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQKIyAz
NCAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUv
c3RkaW8uaCIgMyA0CiNwcmFnbWEgaWRlbnQgIkAoIylzdGRpby5oCTEuNzgJOTkvMTIvMDggU01J
IiAKCiMgMSAiL3Vzci9pbmNsdWRlL2lzby9zdGRpb19pc28uaCIgMSAzIDQKIyAzMiAiL3Vzci9p
bmNsdWRlL2lzby9zdGRpb19pc28uaCIgMyA0CiNwcmFnbWEgaWRlbnQgIkAoIylzdGRpb19pc28u
aAkxLjIJOTkvMTAvMjUgU01JIgoKCgojIDEgIi91c3IvaW5jbHVkZS9zeXMvdmFfbGlzdC5oIiAx
IDMgNAojIDkgIi91c3IvaW5jbHVkZS9zeXMvdmFfbGlzdC5oIiAzIDQKI3ByYWdtYSBpZGVudCAi
QCgjKXZhX2xpc3QuaAkxLjEyCTk5LzA1LzA0IFNNSSIKIyAyNiAiL3Vzci9pbmNsdWRlL3N5cy92
YV9saXN0LmgiIDMgNAp0eXBlZGVmIHZvaWQgKl9fdmFfbGlzdDsKIyAzNyAiL3Vzci9pbmNsdWRl
L2lzby9zdGRpb19pc28uaCIgMiAzIDQKCiMgMSAiL3Vzci9pbmNsdWRlL3N0ZGlvX2ltcGwuaCIg
MSAzIDQKIyA5ICIvdXNyL2luY2x1ZGUvc3RkaW9faW1wbC5oIiAzIDQKI3ByYWdtYSBpZGVudCAi
QCgjKXN0ZGlvX2ltcGwuaAkxLjgJOTkvMDYvMTAgU01JIgojIDM4ICIvdXNyL2luY2x1ZGUvc3Rk
aW9faW1wbC5oIiAzIDQKc3RydWN0IF9fRklMRQp7CgoKCgogICAgICAgIHNzaXplX3QgX2NudDsK
ICAgICAgICB1bnNpZ25lZCBjaGFyICpfcHRyOwoKICAgICAgICB1bnNpZ25lZCBjaGFyICpfYmFz
ZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIF9mbGFnOwogICAgICAgIHVuc2lnbmVkIGNoYXIgX2Zp
bGU7CiAgICAgICAgdW5zaWduZWQgX19vcmllbnRhdGlvbjoyOwogICAgICAgIHVuc2lnbmVkIF9f
aW9ub2xvY2s6MTsKICAgICAgICB1bnNpZ25lZCBfX2ZpbGxlcjo1Owp9OwojIDM5ICIvdXNyL2lu
Y2x1ZGUvaXNvL3N0ZGlvX2lzby5oIiAyIDMgNAojIDU5ICIvdXNyL2luY2x1ZGUvaXNvL3N0ZGlv
X2lzby5oIiAzIDQKdHlwZWRlZiBsb25nIGxvbmcgX19sb25nbG9uZ190OwojIDg4ICIvdXNyL2lu
Y2x1ZGUvaXNvL3N0ZGlvX2lzby5oIiAzIDQKdHlwZWRlZiBsb25nIGZwb3NfdDsKIyAxNDcgIi91
c3IvaW5jbHVkZS9pc28vc3RkaW9faXNvLmgiIDMgNApleHRlcm4gX19GSUxFIF9faW9iWzYwXTsK
IyAxNjQgIi91c3IvaW5jbHVkZS9pc28vc3RkaW9faXNvLmgiIDMgNApleHRlcm4gaW50IHJlbW92
ZShjb25zdCBjaGFyICopOwpleHRlcm4gaW50IHJlbmFtZShjb25zdCBjaGFyICosIGNvbnN0IGNo
YXIgKik7CmV4dGVybiBGSUxFICp0bXBmaWxlKHZvaWQpOwpleHRlcm4gY2hhciAqdG1wbmFtKGNo
YXIgKik7CmV4dGVybiBpbnQgZmNsb3NlKEZJTEUgKik7CmV4dGVybiBpbnQgZmZsdXNoKEZJTEUg
Kik7CmV4dGVybiBGSUxFICpmb3Blbihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVy
biBGSUxFICpmcmVvcGVuKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBGSUxFICopOwpleHRl
cm4gdm9pZCBzZXRidWYoRklMRSAqLCBjaGFyICopOwpleHRlcm4gaW50IHNldHZidWYoRklMRSAq
LCBjaGFyICosIGludCwgc2l6ZV90KTsKCmV4dGVybiBpbnQgZnByaW50ZihGSUxFICosIGNvbnN0
IGNoYXIgKiwgLi4uKTsKCmV4dGVybiBpbnQgZnNjYW5mKEZJTEUgKiwgY29uc3QgY2hhciAqLCAu
Li4pOwoKZXh0ZXJuIGludCBwcmludGYoY29uc3QgY2hhciAqLCAuLi4pOwoKZXh0ZXJuIGludCBz
Y2FuZihjb25zdCBjaGFyICosIC4uLik7CgpleHRlcm4gaW50IHNwcmludGYoY2hhciAqLCBjb25z
dCBjaGFyICosIC4uLik7CgpleHRlcm4gaW50IHNzY2FuZihjb25zdCBjaGFyICosIGNvbnN0IGNo
YXIgKiwgLi4uKTsKZXh0ZXJuIGludCB2ZnByaW50ZihGSUxFICosIGNvbnN0IGNoYXIgKiwgX192
YV9saXN0KTsKZXh0ZXJuIGludCB2cHJpbnRmKGNvbnN0IGNoYXIgKiwgX192YV9saXN0KTsKZXh0
ZXJuIGludCB2c3ByaW50ZihjaGFyICosIGNvbnN0IGNoYXIgKiwgX192YV9saXN0KTsKZXh0ZXJu
IGludCBmZ2V0YyhGSUxFICopOwpleHRlcm4gY2hhciAqZmdldHMoY2hhciAqLCBpbnQsIEZJTEUg
Kik7CmV4dGVybiBpbnQgZnB1dGMoaW50LCBGSUxFICopOwpleHRlcm4gaW50IGZwdXRzKGNvbnN0
IGNoYXIgKiwgRklMRSAqKTsKCgpleHRlcm4gaW50IGdldGMoRklMRSAqKTsKZXh0ZXJuIGludCBw
dXRjKGludCwgRklMRSAqKTsKCgoKZXh0ZXJuIGludCBnZXRjaGFyKHZvaWQpOwpleHRlcm4gaW50
IHB1dGNoYXIoaW50KTsKCmV4dGVybiBjaGFyICpnZXRzKGNoYXIgKik7CmV4dGVybiBpbnQgcHV0
cyhjb25zdCBjaGFyICopOwpleHRlcm4gaW50IHVuZ2V0YyhpbnQsIEZJTEUgKik7CmV4dGVybiBz
aXplX3QgZnJlYWQodm9pZCAqLCBzaXplX3QsIHNpemVfdCwgRklMRSAqKTsKZXh0ZXJuIHNpemVf
dCBmd3JpdGUoY29uc3Qgdm9pZCAqLCBzaXplX3QsIHNpemVfdCwgRklMRSAqKTsKZXh0ZXJuIGlu
dCBmZ2V0cG9zKEZJTEUgKiwgZnBvc190ICopOwpleHRlcm4gaW50IGZzZWVrKEZJTEUgKiwgbG9u
ZywgaW50KTsKZXh0ZXJuIGludCBmc2V0cG9zKEZJTEUgKiwgY29uc3QgZnBvc190ICopOwpleHRl
cm4gbG9uZyBmdGVsbChGSUxFICopOwpleHRlcm4gdm9pZCByZXdpbmQoRklMRSAqKTsKCgpleHRl
cm4gdm9pZCBjbGVhcmVycihGSUxFICopOwpleHRlcm4gaW50IGZlb2YoRklMRSAqKTsKZXh0ZXJu
IGludCBmZXJyb3IoRklMRSAqKTsKCmV4dGVybiB2b2lkIHBlcnJvcihjb25zdCBjaGFyICopOwoK
CmV4dGVybiBpbnQgX19maWxidWYoRklMRSAqKTsKZXh0ZXJuIGludCBfX2Zsc2J1ZihpbnQsIEZJ
TEUgKik7CiMgMzcgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMu
MS9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0CiMgMTA1ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2kz
ODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9zdGRpby5oIiAzIDQKdHlwZWRlZiBsb25nIG9m
Zl90OwoKCgoKCgoKdHlwZWRlZiBfX2xvbmdsb25nX3Qgb2ZmNjRfdDsKIyAxMjMgIi91c3IvbG9j
YWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N0ZGlvLmgiIDMg
NAp0eXBlZGVmIF9fbG9uZ2xvbmdfdCBmcG9zNjRfdDsKIyAxNTEgIi91c3IvbG9jYWwvbGliL2dj
Yy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4g
dW5zaWduZWQgY2hhciBfc2lidWZbXSwgX3NvYnVmW107CiMgMTkzICIvdXNyL2xvY2FsL2xpYi9n
Y2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0ZXJu
IHVuc2lnbmVkIGNoYXIgKl9idWZlbmR0YWJbXTsKZXh0ZXJuIEZJTEUgKl9sYXN0YnVmOwojIDIy
OSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUv
c3RkaW8uaCIgMyA0CmV4dGVybiB2b2lkIHNldGJ1ZmZlcihGSUxFICosIGNoYXIgKiwgc2l6ZV90
KTsKZXh0ZXJuIGludCBzZXRsaW5lYnVmKEZJTEUgKik7CgoKCgoKZXh0ZXJuIGludCBzbnByaW50
ZihjaGFyICosIHNpemVfdCwgY29uc3QgY2hhciAqLCAuLi4pOwoKCgoKZXh0ZXJuIGludCB2c25w
cmludGYoY2hhciAqLCBzaXplX3QsIGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOwojIDI1
MCAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUv
c3RkaW8uaCIgMyA0CmV4dGVybiBGSUxFICpmZG9wZW4oaW50LCBjb25zdCBjaGFyICopOwpleHRl
cm4gY2hhciAqY3Rlcm1pZChjaGFyICopOwpleHRlcm4gaW50IGZpbGVubyhGSUxFICopOwojIDI3
NiAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUv
c3RkaW8uaCIgMyA0CmV4dGVybiBGSUxFICpwb3Blbihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg
Kik7CmV4dGVybiBjaGFyICpjdXNlcmlkKGNoYXIgKik7CmV4dGVybiBjaGFyICp0ZW1wbmFtKGNv
bnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIGludCBnZXRvcHQoaW50LCBjaGFyICpj
b25zdCAqLCBjb25zdCBjaGFyICopOwoKZXh0ZXJuIGludCBnZXRzdWJvcHQoY2hhciAqKiwgY2hh
ciAqY29uc3QgKiwgY2hhciAqKik7CgpleHRlcm4gY2hhciAqb3B0YXJnOwpleHRlcm4gaW50IG9w
dGluZCwgb3B0ZXJyLCBvcHRvcHQ7CmV4dGVybiBpbnQgZ2V0dyhGSUxFICopOwpleHRlcm4gaW50
IHB1dHcoaW50LCBGSUxFICopOwpleHRlcm4gaW50IHBjbG9zZShGSUxFICopOwoKCgoKCgoKZXh0
ZXJuIGludCBmc2Vla28oRklMRSAqLCBvZmZfdCwgaW50KTsKZXh0ZXJuIG9mZl90IGZ0ZWxsbyhG
SUxFICopOwojIDMwNSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgv
My4xL2luY2x1ZGUvc3RkaW8uaCIgMyA0CmV4dGVybiBGSUxFICpmb3BlbjY0KGNvbnN0IGNoYXIg
KiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIEZJTEUgKmZyZW9wZW42NChjb25zdCBjaGFyICosIGNv
bnN0IGNoYXIgKiwgRklMRSAqKTsKZXh0ZXJuIEZJTEUgKnRtcGZpbGU2NCh2b2lkKTsKZXh0ZXJu
IGludCBmZ2V0cG9zNjQoRklMRSAqLCBmcG9zNjRfdCAqKTsKZXh0ZXJuIGludCBmc2V0cG9zNjQo
RklMRSAqLCBjb25zdCBmcG9zNjRfdCAqKTsKZXh0ZXJuIGludCBmc2Vla282NChGSUxFICosIG9m
ZjY0X3QsIGludCk7CmV4dGVybiBvZmY2NF90IGZ0ZWxsbzY0KEZJTEUgKik7CiMgNjMgImdsaGVh
ZGVyLmgiIDIKIyAxICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDEgMyA0CiMgMTYgIi91c3IvaW5j
bHVkZS9zdHJpbmcuaCIgMyA0CiNwcmFnbWEgaWRlbnQgIkAoIylzdHJpbmcuaAkxLjI0CTk5LzA4
LzEwIFNNSSIgCgojIDEgIi91c3IvaW5jbHVkZS9pc28vc3RyaW5nX2lzby5oIiAxIDMgNAojIDI4
ICIvdXNyL2luY2x1ZGUvaXNvL3N0cmluZ19pc28uaCIgMyA0CiNwcmFnbWEgaWRlbnQgIkAoIylz
dHJpbmdfaXNvLmgJMS4yCTk5LzExLzA5IFNNSSIKIyA2MCAiL3Vzci9pbmNsdWRlL2lzby9zdHJp
bmdfaXNvLmgiIDMgNApleHRlcm4gaW50IG1lbWNtcChjb25zdCB2b2lkICosIGNvbnN0IHZvaWQg
Kiwgc2l6ZV90KTsKZXh0ZXJuIHZvaWQgKm1lbWNweSh2b2lkICosIGNvbnN0IHZvaWQgKiwgc2l6
ZV90KTsKZXh0ZXJuIHZvaWQgKm1lbW1vdmUodm9pZCAqLCBjb25zdCB2b2lkICosIHNpemVfdCk7
CmV4dGVybiB2b2lkICptZW1zZXQodm9pZCAqLCBpbnQsIHNpemVfdCk7CmV4dGVybiBjaGFyICpz
dHJjYXQoY2hhciAqLCBjb25zdCBjaGFyICopOwpleHRlcm4gaW50IHN0cmNtcChjb25zdCBjaGFy
ICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBjaGFyICpzdHJjcHkoY2hhciAqLCBjb25zdCBjaGFy
ICopOwpleHRlcm4gaW50IHN0cmNvbGwoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwpleHRl
cm4gc2l6ZV90IHN0cmNzcG4oY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwpleHRlcm4gY2hh
ciAqc3RyZXJyb3IoaW50KTsKZXh0ZXJuIHNpemVfdCBzdHJsZW4oY29uc3QgY2hhciAqKTsKZXh0
ZXJuIGNoYXIgKnN0cm5jYXQoY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CmV4dGVybiBp
bnQgc3RybmNtcChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsKZXh0ZXJuIGNo
YXIgKnN0cm5jcHkoY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CmV4dGVybiBzaXplX3Qg
c3Ryc3BuKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKnN0cnRvayhj
aGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBzaXplX3Qgc3RyeGZybShjaGFyICosIGNvbnN0
IGNoYXIgKiwgc2l6ZV90KTsKIyAxMTIgIi91c3IvaW5jbHVkZS9pc28vc3RyaW5nX2lzby5oIiAz
IDQKZXh0ZXJuIHZvaWQgKm1lbWNocihjb25zdCB2b2lkICosIGludCwgc2l6ZV90KTsKZXh0ZXJu
IGNoYXIgKnN0cmNocihjb25zdCBjaGFyICosIGludCk7CmV4dGVybiBjaGFyICpzdHJwYnJrKGNv
bnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKnN0cnJjaHIoY29uc3QgY2hh
ciAqLCBpbnQpOwpleHRlcm4gY2hhciAqc3Ryc3RyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAq
KTsKIyAxOSAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAyIDMgNAojIDYzICIvdXNyL2luY2x1ZGUv
c3RyaW5nLmgiIDMgNApleHRlcm4gdm9pZCAqbWVtY2NweSh2b2lkICosIGNvbnN0IHZvaWQgKiwg
aW50LCBzaXplX3QpOwoKCgoKZXh0ZXJuIGNoYXIgKnN0cnNpZ25hbChpbnQpOwpleHRlcm4gaW50
IGZmcyhpbnQpOwpleHRlcm4gaW50IHN0cmNhc2VjbXAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFy
ICopOwpleHRlcm4gaW50IHN0cm5jYXNlY21wKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBz
aXplX3QpOwpleHRlcm4gc2l6ZV90IHN0cmxjcHkoY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVf
dCk7CmV4dGVybiBzaXplX3Qgc3RybGNhdChjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsK
CgoKCgpleHRlcm4gY2hhciAqc3RyZHVwKGNvbnN0IGNoYXIgKik7CiMgNjQgImdsaGVhZGVyLmgi
IDIKCgoKCiMgMSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4x
L2luY2x1ZGUvZmxvYXQuaCIgMSAzIDQKIyA2OSAiZ2xoZWFkZXIuaCIgMgojIDEgIi91c3IvbG9j
YWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N0ZGFyZy5oIiAx
IDMgNAojIDkwICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEv
aW5jbHVkZS9zdGRhcmcuaCIgMyA0CnR5cGVkZWYgX19nbnVjX3ZhX2xpc3QgdmFfbGlzdDsKIyA3
MCAiZ2xoZWFkZXIuaCIgMgojIDE5MyAiZ2xoZWFkZXIuaCIKIyAxICIuLi9pbmNsdWRlL0dML2ds
LmgiIDEKIyAxMjQgIi4uL2luY2x1ZGUvR0wvZ2wuaCIKdHlwZWRlZiB1bnNpZ25lZCBpbnQgR0xl
bnVtOwp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgR0xib29sZWFuOwp0eXBlZGVmIHVuc2lnbmVkIGlu
dCBHTGJpdGZpZWxkOwp0eXBlZGVmIHZvaWQgR0x2b2lkOwp0eXBlZGVmIHNpZ25lZCBjaGFyIEdM
Ynl0ZTsKdHlwZWRlZiBzaG9ydCBHTHNob3J0Owp0eXBlZGVmIGludCBHTGludDsKdHlwZWRlZiB1
bnNpZ25lZCBjaGFyIEdMdWJ5dGU7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgR0x1c2hvcnQ7CnR5
cGVkZWYgdW5zaWduZWQgaW50IEdMdWludDsKdHlwZWRlZiBpbnQgR0xzaXplaTsKdHlwZWRlZiBm
bG9hdCBHTGZsb2F0Owp0eXBlZGVmIGZsb2F0IEdMY2xhbXBmOwp0eXBlZGVmIGRvdWJsZSBHTGRv
dWJsZTsKdHlwZWRlZiBkb3VibGUgR0xjbGFtcGQ7CiMgNzUxICIuLi9pbmNsdWRlL0dML2dsLmgi
CmV4dGVybiB2b2lkIGdsQ2xlYXJJbmRleCggR0xmbG9hdCBjICk7CgpleHRlcm4gdm9pZCBnbENs
ZWFyQ29sb3IoIEdMY2xhbXBmIHJlZCwgR0xjbGFtcGYgZ3JlZW4sIEdMY2xhbXBmIGJsdWUsIEdM
Y2xhbXBmIGFscGhhICk7CgpleHRlcm4gdm9pZCBnbENsZWFyKCBHTGJpdGZpZWxkIG1hc2sgKTsK
CmV4dGVybiB2b2lkIGdsSW5kZXhNYXNrKCBHTHVpbnQgbWFzayApOwoKZXh0ZXJuIHZvaWQgZ2xD
b2xvck1hc2soIEdMYm9vbGVhbiByZWQsIEdMYm9vbGVhbiBncmVlbiwgR0xib29sZWFuIGJsdWUs
IEdMYm9vbGVhbiBhbHBoYSApOwoKZXh0ZXJuIHZvaWQgZ2xBbHBoYUZ1bmMoIEdMZW51bSBmdW5j
LCBHTGNsYW1wZiByZWYgKTsKCmV4dGVybiB2b2lkIGdsQmxlbmRGdW5jKCBHTGVudW0gc2ZhY3Rv
ciwgR0xlbnVtIGRmYWN0b3IgKTsKCmV4dGVybiB2b2lkIGdsTG9naWNPcCggR0xlbnVtIG9wY29k
ZSApOwoKZXh0ZXJuIHZvaWQgZ2xDdWxsRmFjZSggR0xlbnVtIG1vZGUgKTsKCmV4dGVybiB2b2lk
IGdsRnJvbnRGYWNlKCBHTGVudW0gbW9kZSApOwoKZXh0ZXJuIHZvaWQgZ2xQb2ludFNpemUoIEdM
ZmxvYXQgc2l6ZSApOwoKZXh0ZXJuIHZvaWQgZ2xMaW5lV2lkdGgoIEdMZmxvYXQgd2lkdGggKTsK
CmV4dGVybiB2b2lkIGdsTGluZVN0aXBwbGUoIEdMaW50IGZhY3RvciwgR0x1c2hvcnQgcGF0dGVy
biApOwoKZXh0ZXJuIHZvaWQgZ2xQb2x5Z29uTW9kZSggR0xlbnVtIGZhY2UsIEdMZW51bSBtb2Rl
ICk7CgpleHRlcm4gdm9pZCBnbFBvbHlnb25PZmZzZXQoIEdMZmxvYXQgZmFjdG9yLCBHTGZsb2F0
IHVuaXRzICk7CgpleHRlcm4gdm9pZCBnbFBvbHlnb25TdGlwcGxlKCBjb25zdCBHTHVieXRlICpt
YXNrICk7CgpleHRlcm4gdm9pZCBnbEdldFBvbHlnb25TdGlwcGxlKCBHTHVieXRlICptYXNrICk7
CgpleHRlcm4gdm9pZCBnbEVkZ2VGbGFnKCBHTGJvb2xlYW4gZmxhZyApOwoKZXh0ZXJuIHZvaWQg
Z2xFZGdlRmxhZ3YoIGNvbnN0IEdMYm9vbGVhbiAqZmxhZyApOwoKZXh0ZXJuIHZvaWQgZ2xTY2lz
c29yKCBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7Cgpl
eHRlcm4gdm9pZCBnbENsaXBQbGFuZSggR0xlbnVtIHBsYW5lLCBjb25zdCBHTGRvdWJsZSAqZXF1
YXRpb24gKTsKCmV4dGVybiB2b2lkIGdsR2V0Q2xpcFBsYW5lKCBHTGVudW0gcGxhbmUsIEdMZG91
YmxlICplcXVhdGlvbiApOwoKZXh0ZXJuIHZvaWQgZ2xEcmF3QnVmZmVyKCBHTGVudW0gbW9kZSAp
OwoKZXh0ZXJuIHZvaWQgZ2xSZWFkQnVmZmVyKCBHTGVudW0gbW9kZSApOwoKZXh0ZXJuIHZvaWQg
Z2xFbmFibGUoIEdMZW51bSBjYXAgKTsKCmV4dGVybiB2b2lkIGdsRGlzYWJsZSggR0xlbnVtIGNh
cCApOwoKZXh0ZXJuIEdMYm9vbGVhbiBnbElzRW5hYmxlZCggR0xlbnVtIGNhcCApOwoKCmV4dGVy
biB2b2lkIGdsRW5hYmxlQ2xpZW50U3RhdGUoIEdMZW51bSBjYXAgKTsKCmV4dGVybiB2b2lkIGds
RGlzYWJsZUNsaWVudFN0YXRlKCBHTGVudW0gY2FwICk7CgoKZXh0ZXJuIHZvaWQgZ2xHZXRCb29s
ZWFudiggR0xlbnVtIHBuYW1lLCBHTGJvb2xlYW4gKnBhcmFtcyApOwoKZXh0ZXJuIHZvaWQgZ2xH
ZXREb3VibGV2KCBHTGVudW0gcG5hbWUsIEdMZG91YmxlICpwYXJhbXMgKTsKCmV4dGVybiB2b2lk
IGdsR2V0RmxvYXR2KCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgKnBhcmFtcyApOwoKZXh0ZXJuIHZv
aWQgZ2xHZXRJbnRlZ2VydiggR0xlbnVtIHBuYW1lLCBHTGludCAqcGFyYW1zICk7CgoKZXh0ZXJu
IHZvaWQgZ2xQdXNoQXR0cmliKCBHTGJpdGZpZWxkIG1hc2sgKTsKCmV4dGVybiB2b2lkIGdsUG9w
QXR0cmliKCB2b2lkICk7CgoKZXh0ZXJuIHZvaWQgZ2xQdXNoQ2xpZW50QXR0cmliKCBHTGJpdGZp
ZWxkIG1hc2sgKTsKCmV4dGVybiB2b2lkIGdsUG9wQ2xpZW50QXR0cmliKCB2b2lkICk7CgoKZXh0
ZXJuIEdMaW50IGdsUmVuZGVyTW9kZSggR0xlbnVtIG1vZGUgKTsKCmV4dGVybiBHTGVudW0gZ2xH
ZXRFcnJvciggdm9pZCApOwoKZXh0ZXJuIGNvbnN0IEdMdWJ5dGUqIGdsR2V0U3RyaW5nKCBHTGVu
dW0gbmFtZSApOwoKZXh0ZXJuIHZvaWQgZ2xGaW5pc2goIHZvaWQgKTsKCmV4dGVybiB2b2lkIGds
Rmx1c2goIHZvaWQgKTsKCmV4dGVybiB2b2lkIGdsSGludCggR0xlbnVtIHRhcmdldCwgR0xlbnVt
IG1vZGUgKTsKCgoKCgoKZXh0ZXJuIHZvaWQgZ2xDbGVhckRlcHRoKCBHTGNsYW1wZCBkZXB0aCAp
OwoKZXh0ZXJuIHZvaWQgZ2xEZXB0aEZ1bmMoIEdMZW51bSBmdW5jICk7CgpleHRlcm4gdm9pZCBn
bERlcHRoTWFzayggR0xib29sZWFuIGZsYWcgKTsKCmV4dGVybiB2b2lkIGdsRGVwdGhSYW5nZSgg
R0xjbGFtcGQgbmVhcl92YWwsIEdMY2xhbXBkIGZhcl92YWwgKTsKCgoKCgoKZXh0ZXJuIHZvaWQg
Z2xDbGVhckFjY3VtKCBHTGZsb2F0IHJlZCwgR0xmbG9hdCBncmVlbiwgR0xmbG9hdCBibHVlLCBH
TGZsb2F0IGFscGhhICk7CgpleHRlcm4gdm9pZCBnbEFjY3VtKCBHTGVudW0gb3AsIEdMZmxvYXQg
dmFsdWUgKTsKCgoKCgoKZXh0ZXJuIHZvaWQgZ2xNYXRyaXhNb2RlKCBHTGVudW0gbW9kZSApOwoK
ZXh0ZXJuIHZvaWQgZ2xPcnRobyggR0xkb3VibGUgbGVmdCwgR0xkb3VibGUgcmlnaHQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZG91YmxlIGJvdHRvbSwgR0xkb3VibGUgdG9w
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGRvdWJsZSBuZWFyX3ZhbCwgR0xk
b3VibGUgZmFyX3ZhbCApOwoKZXh0ZXJuIHZvaWQgZ2xGcnVzdHVtKCBHTGRvdWJsZSBsZWZ0LCBH
TGRvdWJsZSByaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGRvdWJs
ZSBib3R0b20sIEdMZG91YmxlIHRvcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHTGRvdWJsZSBuZWFyX3ZhbCwgR0xkb3VibGUgZmFyX3ZhbCApOwoKZXh0ZXJuIHZvaWQgZ2xW
aWV3cG9ydCggR0xpbnQgeCwgR0xpbnQgeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQgKTsKCmV4dGVybiB2b2lkIGdsUHVz
aE1hdHJpeCggdm9pZCApOwoKZXh0ZXJuIHZvaWQgZ2xQb3BNYXRyaXgoIHZvaWQgKTsKCmV4dGVy
biB2b2lkIGdsTG9hZElkZW50aXR5KCB2b2lkICk7CgpleHRlcm4gdm9pZCBnbExvYWRNYXRyaXhk
KCBjb25zdCBHTGRvdWJsZSAqbSApOwpleHRlcm4gdm9pZCBnbExvYWRNYXRyaXhmKCBjb25zdCBH
TGZsb2F0ICptICk7CgpleHRlcm4gdm9pZCBnbE11bHRNYXRyaXhkKCBjb25zdCBHTGRvdWJsZSAq
bSApOwpleHRlcm4gdm9pZCBnbE11bHRNYXRyaXhmKCBjb25zdCBHTGZsb2F0ICptICk7CgpleHRl
cm4gdm9pZCBnbFJvdGF0ZWQoIEdMZG91YmxlIGFuZ2xlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdMZG91YmxlIHgsIEdMZG91YmxlIHksIEdMZG91YmxlIHogKTsKZXh0ZXJu
IHZvaWQgZ2xSb3RhdGVmKCBHTGZsb2F0IGFuZ2xlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0IHogKTsKCmV4dGVybiB2b2lk
IGdsU2NhbGVkKCBHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRvdWJsZSB6ICk7CmV4dGVybiB2
b2lkIGdsU2NhbGVmKCBHTGZsb2F0IHgsIEdMZmxvYXQgeSwgR0xmbG9hdCB6ICk7CgpleHRlcm4g
dm9pZCBnbFRyYW5zbGF0ZWQoIEdMZG91YmxlIHgsIEdMZG91YmxlIHksIEdMZG91YmxlIHogKTsK
ZXh0ZXJuIHZvaWQgZ2xUcmFuc2xhdGVmKCBHTGZsb2F0IHgsIEdMZmxvYXQgeSwgR0xmbG9hdCB6
ICk7CgoKCgoKCmV4dGVybiBHTGJvb2xlYW4gZ2xJc0xpc3QoIEdMdWludCBsaXN0ICk7CgpleHRl
cm4gdm9pZCBnbERlbGV0ZUxpc3RzKCBHTHVpbnQgbGlzdCwgR0xzaXplaSByYW5nZSApOwoKZXh0
ZXJuIEdMdWludCBnbEdlbkxpc3RzKCBHTHNpemVpIHJhbmdlICk7CgpleHRlcm4gdm9pZCBnbE5l
d0xpc3QoIEdMdWludCBsaXN0LCBHTGVudW0gbW9kZSApOwoKZXh0ZXJuIHZvaWQgZ2xFbmRMaXN0
KCB2b2lkICk7CgpleHRlcm4gdm9pZCBnbENhbGxMaXN0KCBHTHVpbnQgbGlzdCApOwoKZXh0ZXJu
IHZvaWQgZ2xDYWxsTGlzdHMoIEdMc2l6ZWkgbiwgR0xlbnVtIHR5cGUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHTHZvaWQgKmxpc3RzICk7CgpleHRlcm4gdm9p
ZCBnbExpc3RCYXNlKCBHTHVpbnQgYmFzZSApOwoKCgoKCgpleHRlcm4gdm9pZCBnbEJlZ2luKCBH
TGVudW0gbW9kZSApOwoKZXh0ZXJuIHZvaWQgZ2xFbmQoIHZvaWQgKTsKCgpleHRlcm4gdm9pZCBn
bFZlcnRleDJkKCBHTGRvdWJsZSB4LCBHTGRvdWJsZSB5ICk7CmV4dGVybiB2b2lkIGdsVmVydGV4
MmYoIEdMZmxvYXQgeCwgR0xmbG9hdCB5ICk7CmV4dGVybiB2b2lkIGdsVmVydGV4MmkoIEdMaW50
IHgsIEdMaW50IHkgKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXgycyggR0xzaG9ydCB4LCBHTHNob3J0
IHkgKTsKCmV4dGVybiB2b2lkIGdsVmVydGV4M2QoIEdMZG91YmxlIHgsIEdMZG91YmxlIHksIEdM
ZG91YmxlIHogKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXgzZiggR0xmbG9hdCB4LCBHTGZsb2F0IHks
IEdMZmxvYXQgeiApOwpleHRlcm4gdm9pZCBnbFZlcnRleDNpKCBHTGludCB4LCBHTGludCB5LCBH
TGludCB6ICk7CmV4dGVybiB2b2lkIGdsVmVydGV4M3MoIEdMc2hvcnQgeCwgR0xzaG9ydCB5LCBH
THNob3J0IHogKTsKCmV4dGVybiB2b2lkIGdsVmVydGV4NGQoIEdMZG91YmxlIHgsIEdMZG91Ymxl
IHksIEdMZG91YmxlIHosIEdMZG91YmxlIHcgKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXg0ZiggR0xm
bG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeiwgR0xmbG9hdCB3ICk7CmV4dGVybiB2b2lkIGds
VmVydGV4NGkoIEdMaW50IHgsIEdMaW50IHksIEdMaW50IHosIEdMaW50IHcgKTsKZXh0ZXJuIHZv
aWQgZ2xWZXJ0ZXg0cyggR0xzaG9ydCB4LCBHTHNob3J0IHksIEdMc2hvcnQgeiwgR0xzaG9ydCB3
ICk7CgpleHRlcm4gdm9pZCBnbFZlcnRleDJkdiggY29uc3QgR0xkb3VibGUgKnYgKTsKZXh0ZXJu
IHZvaWQgZ2xWZXJ0ZXgyZnYoIGNvbnN0IEdMZmxvYXQgKnYgKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0
ZXgyaXYoIGNvbnN0IEdMaW50ICp2ICk7CmV4dGVybiB2b2lkIGdsVmVydGV4MnN2KCBjb25zdCBH
THNob3J0ICp2ICk7CgpleHRlcm4gdm9pZCBnbFZlcnRleDNkdiggY29uc3QgR0xkb3VibGUgKnYg
KTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXgzZnYoIGNvbnN0IEdMZmxvYXQgKnYgKTsKZXh0ZXJuIHZv
aWQgZ2xWZXJ0ZXgzaXYoIGNvbnN0IEdMaW50ICp2ICk7CmV4dGVybiB2b2lkIGdsVmVydGV4M3N2
KCBjb25zdCBHTHNob3J0ICp2ICk7CgpleHRlcm4gdm9pZCBnbFZlcnRleDRkdiggY29uc3QgR0xk
b3VibGUgKnYgKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXg0ZnYoIGNvbnN0IEdMZmxvYXQgKnYgKTsK
ZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXg0aXYoIGNvbnN0IEdMaW50ICp2ICk7CmV4dGVybiB2b2lkIGds
VmVydGV4NHN2KCBjb25zdCBHTHNob3J0ICp2ICk7CgoKZXh0ZXJuIHZvaWQgZ2xOb3JtYWwzYigg
R0xieXRlIG54LCBHTGJ5dGUgbnksIEdMYnl0ZSBueiApOwpleHRlcm4gdm9pZCBnbE5vcm1hbDNk
KCBHTGRvdWJsZSBueCwgR0xkb3VibGUgbnksIEdMZG91YmxlIG56ICk7CmV4dGVybiB2b2lkIGds
Tm9ybWFsM2YoIEdMZmxvYXQgbngsIEdMZmxvYXQgbnksIEdMZmxvYXQgbnogKTsKZXh0ZXJuIHZv
aWQgZ2xOb3JtYWwzaSggR0xpbnQgbngsIEdMaW50IG55LCBHTGludCBueiApOwpleHRlcm4gdm9p
ZCBnbE5vcm1hbDNzKCBHTHNob3J0IG54LCBHTHNob3J0IG55LCBHTHNob3J0IG56ICk7CgpleHRl
cm4gdm9pZCBnbE5vcm1hbDNidiggY29uc3QgR0xieXRlICp2ICk7CmV4dGVybiB2b2lkIGdsTm9y
bWFsM2R2KCBjb25zdCBHTGRvdWJsZSAqdiApOwpleHRlcm4gdm9pZCBnbE5vcm1hbDNmdiggY29u
c3QgR0xmbG9hdCAqdiApOwpleHRlcm4gdm9pZCBnbE5vcm1hbDNpdiggY29uc3QgR0xpbnQgKnYg
KTsKZXh0ZXJuIHZvaWQgZ2xOb3JtYWwzc3YoIGNvbnN0IEdMc2hvcnQgKnYgKTsKCgpleHRlcm4g
dm9pZCBnbEluZGV4ZCggR0xkb3VibGUgYyApOwpleHRlcm4gdm9pZCBnbEluZGV4ZiggR0xmbG9h
dCBjICk7CmV4dGVybiB2b2lkIGdsSW5kZXhpKCBHTGludCBjICk7CmV4dGVybiB2b2lkIGdsSW5k
ZXhzKCBHTHNob3J0IGMgKTsKZXh0ZXJuIHZvaWQgZ2xJbmRleHViKCBHTHVieXRlIGMgKTsKCmV4
dGVybiB2b2lkIGdsSW5kZXhkdiggY29uc3QgR0xkb3VibGUgKmMgKTsKZXh0ZXJuIHZvaWQgZ2xJ
bmRleGZ2KCBjb25zdCBHTGZsb2F0ICpjICk7CmV4dGVybiB2b2lkIGdsSW5kZXhpdiggY29uc3Qg
R0xpbnQgKmMgKTsKZXh0ZXJuIHZvaWQgZ2xJbmRleHN2KCBjb25zdCBHTHNob3J0ICpjICk7CmV4
dGVybiB2b2lkIGdsSW5kZXh1YnYoIGNvbnN0IEdMdWJ5dGUgKmMgKTsKCmV4dGVybiB2b2lkIGds
Q29sb3IzYiggR0xieXRlIHJlZCwgR0xieXRlIGdyZWVuLCBHTGJ5dGUgYmx1ZSApOwpleHRlcm4g
dm9pZCBnbENvbG9yM2QoIEdMZG91YmxlIHJlZCwgR0xkb3VibGUgZ3JlZW4sIEdMZG91YmxlIGJs
dWUgKTsKZXh0ZXJuIHZvaWQgZ2xDb2xvcjNmKCBHTGZsb2F0IHJlZCwgR0xmbG9hdCBncmVlbiwg
R0xmbG9hdCBibHVlICk7CmV4dGVybiB2b2lkIGdsQ29sb3IzaSggR0xpbnQgcmVkLCBHTGludCBn
cmVlbiwgR0xpbnQgYmx1ZSApOwpleHRlcm4gdm9pZCBnbENvbG9yM3MoIEdMc2hvcnQgcmVkLCBH
THNob3J0IGdyZWVuLCBHTHNob3J0IGJsdWUgKTsKZXh0ZXJuIHZvaWQgZ2xDb2xvcjN1YiggR0x1
Ynl0ZSByZWQsIEdMdWJ5dGUgZ3JlZW4sIEdMdWJ5dGUgYmx1ZSApOwpleHRlcm4gdm9pZCBnbENv
bG9yM3VpKCBHTHVpbnQgcmVkLCBHTHVpbnQgZ3JlZW4sIEdMdWludCBibHVlICk7CmV4dGVybiB2
b2lkIGdsQ29sb3IzdXMoIEdMdXNob3J0IHJlZCwgR0x1c2hvcnQgZ3JlZW4sIEdMdXNob3J0IGJs
dWUgKTsKCmV4dGVybiB2b2lkIGdsQ29sb3I0YiggR0xieXRlIHJlZCwgR0xieXRlIGdyZWVuLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMYnl0ZSBibHVlLCBHTGJ5dGUgYWxw
aGEgKTsKZXh0ZXJuIHZvaWQgZ2xDb2xvcjRkKCBHTGRvdWJsZSByZWQsIEdMZG91YmxlIGdyZWVu
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZG91YmxlIGJsdWUsIEdMZG91
YmxlIGFscGhhICk7CmV4dGVybiB2b2lkIGdsQ29sb3I0ZiggR0xmbG9hdCByZWQsIEdMZmxvYXQg
Z3JlZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xmbG9hdCBibHVlLCBH
TGZsb2F0IGFscGhhICk7CmV4dGVybiB2b2lkIGdsQ29sb3I0aSggR0xpbnQgcmVkLCBHTGludCBn
cmVlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCBibHVlLCBHTGlu
dCBhbHBoYSApOwpleHRlcm4gdm9pZCBnbENvbG9yNHMoIEdMc2hvcnQgcmVkLCBHTHNob3J0IGdy
ZWVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2hvcnQgYmx1ZSwgR0xz
aG9ydCBhbHBoYSApOwpleHRlcm4gdm9pZCBnbENvbG9yNHViKCBHTHVieXRlIHJlZCwgR0x1Ynl0
ZSBncmVlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0x1Ynl0ZSBibHVl
LCBHTHVieXRlIGFscGhhICk7CmV4dGVybiB2b2lkIGdsQ29sb3I0dWkoIEdMdWludCByZWQsIEdM
dWludCBncmVlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0x1aW50IGJs
dWUsIEdMdWludCBhbHBoYSApOwpleHRlcm4gdm9pZCBnbENvbG9yNHVzKCBHTHVzaG9ydCByZWQs
IEdMdXNob3J0IGdyZWVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHVz
aG9ydCBibHVlLCBHTHVzaG9ydCBhbHBoYSApOwoKCmV4dGVybiB2b2lkIGdsQ29sb3IzYnYoIGNv
bnN0IEdMYnl0ZSAqdiApOwpleHRlcm4gdm9pZCBnbENvbG9yM2R2KCBjb25zdCBHTGRvdWJsZSAq
diApOwpleHRlcm4gdm9pZCBnbENvbG9yM2Z2KCBjb25zdCBHTGZsb2F0ICp2ICk7CmV4dGVybiB2
b2lkIGdsQ29sb3IzaXYoIGNvbnN0IEdMaW50ICp2ICk7CmV4dGVybiB2b2lkIGdsQ29sb3Izc3Yo
IGNvbnN0IEdMc2hvcnQgKnYgKTsKZXh0ZXJuIHZvaWQgZ2xDb2xvcjN1YnYoIGNvbnN0IEdMdWJ5
dGUgKnYgKTsKZXh0ZXJuIHZvaWQgZ2xDb2xvcjN1aXYoIGNvbnN0IEdMdWludCAqdiApOwpleHRl
cm4gdm9pZCBnbENvbG9yM3VzdiggY29uc3QgR0x1c2hvcnQgKnYgKTsKCmV4dGVybiB2b2lkIGds
Q29sb3I0YnYoIGNvbnN0IEdMYnl0ZSAqdiApOwpleHRlcm4gdm9pZCBnbENvbG9yNGR2KCBjb25z
dCBHTGRvdWJsZSAqdiApOwpleHRlcm4gdm9pZCBnbENvbG9yNGZ2KCBjb25zdCBHTGZsb2F0ICp2
ICk7CmV4dGVybiB2b2lkIGdsQ29sb3I0aXYoIGNvbnN0IEdMaW50ICp2ICk7CmV4dGVybiB2b2lk
IGdsQ29sb3I0c3YoIGNvbnN0IEdMc2hvcnQgKnYgKTsKZXh0ZXJuIHZvaWQgZ2xDb2xvcjR1YnYo
IGNvbnN0IEdMdWJ5dGUgKnYgKTsKZXh0ZXJuIHZvaWQgZ2xDb2xvcjR1aXYoIGNvbnN0IEdMdWlu
dCAqdiApOwpleHRlcm4gdm9pZCBnbENvbG9yNHVzdiggY29uc3QgR0x1c2hvcnQgKnYgKTsKCgpl
eHRlcm4gdm9pZCBnbFRleENvb3JkMWQoIEdMZG91YmxlIHMgKTsKZXh0ZXJuIHZvaWQgZ2xUZXhD
b29yZDFmKCBHTGZsb2F0IHMgKTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDFpKCBHTGludCBzICk7
CmV4dGVybiB2b2lkIGdsVGV4Q29vcmQxcyggR0xzaG9ydCBzICk7CgpleHRlcm4gdm9pZCBnbFRl
eENvb3JkMmQoIEdMZG91YmxlIHMsIEdMZG91YmxlIHQgKTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29y
ZDJmKCBHTGZsb2F0IHMsIEdMZmxvYXQgdCApOwpleHRlcm4gdm9pZCBnbFRleENvb3JkMmkoIEdM
aW50IHMsIEdMaW50IHQgKTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDJzKCBHTHNob3J0IHMsIEdM
c2hvcnQgdCApOwoKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDNkKCBHTGRvdWJsZSBzLCBHTGRvdWJs
ZSB0LCBHTGRvdWJsZSByICk7CmV4dGVybiB2b2lkIGdsVGV4Q29vcmQzZiggR0xmbG9hdCBzLCBH
TGZsb2F0IHQsIEdMZmxvYXQgciApOwpleHRlcm4gdm9pZCBnbFRleENvb3JkM2koIEdMaW50IHMs
IEdMaW50IHQsIEdMaW50IHIgKTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDNzKCBHTHNob3J0IHMs
IEdMc2hvcnQgdCwgR0xzaG9ydCByICk7CgpleHRlcm4gdm9pZCBnbFRleENvb3JkNGQoIEdMZG91
YmxlIHMsIEdMZG91YmxlIHQsIEdMZG91YmxlIHIsIEdMZG91YmxlIHEgKTsKZXh0ZXJuIHZvaWQg
Z2xUZXhDb29yZDRmKCBHTGZsb2F0IHMsIEdMZmxvYXQgdCwgR0xmbG9hdCByLCBHTGZsb2F0IHEg
KTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDRpKCBHTGludCBzLCBHTGludCB0LCBHTGludCByLCBH
TGludCBxICk7CmV4dGVybiB2b2lkIGdsVGV4Q29vcmQ0cyggR0xzaG9ydCBzLCBHTHNob3J0IHQs
IEdMc2hvcnQgciwgR0xzaG9ydCBxICk7CgpleHRlcm4gdm9pZCBnbFRleENvb3JkMWR2KCBjb25z
dCBHTGRvdWJsZSAqdiApOwpleHRlcm4gdm9pZCBnbFRleENvb3JkMWZ2KCBjb25zdCBHTGZsb2F0
ICp2ICk7CmV4dGVybiB2b2lkIGdsVGV4Q29vcmQxaXYoIGNvbnN0IEdMaW50ICp2ICk7CmV4dGVy
biB2b2lkIGdsVGV4Q29vcmQxc3YoIGNvbnN0IEdMc2hvcnQgKnYgKTsKCmV4dGVybiB2b2lkIGds
VGV4Q29vcmQyZHYoIGNvbnN0IEdMZG91YmxlICp2ICk7CmV4dGVybiB2b2lkIGdsVGV4Q29vcmQy
ZnYoIGNvbnN0IEdMZmxvYXQgKnYgKTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDJpdiggY29uc3Qg
R0xpbnQgKnYgKTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDJzdiggY29uc3QgR0xzaG9ydCAqdiAp
OwoKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDNkdiggY29uc3QgR0xkb3VibGUgKnYgKTsKZXh0ZXJu
IHZvaWQgZ2xUZXhDb29yZDNmdiggY29uc3QgR0xmbG9hdCAqdiApOwpleHRlcm4gdm9pZCBnbFRl
eENvb3JkM2l2KCBjb25zdCBHTGludCAqdiApOwpleHRlcm4gdm9pZCBnbFRleENvb3JkM3N2KCBj
b25zdCBHTHNob3J0ICp2ICk7CgpleHRlcm4gdm9pZCBnbFRleENvb3JkNGR2KCBjb25zdCBHTGRv
dWJsZSAqdiApOwpleHRlcm4gdm9pZCBnbFRleENvb3JkNGZ2KCBjb25zdCBHTGZsb2F0ICp2ICk7
CmV4dGVybiB2b2lkIGdsVGV4Q29vcmQ0aXYoIGNvbnN0IEdMaW50ICp2ICk7CmV4dGVybiB2b2lk
IGdsVGV4Q29vcmQ0c3YoIGNvbnN0IEdMc2hvcnQgKnYgKTsKCgpleHRlcm4gdm9pZCBnbFJhc3Rl
clBvczJkKCBHTGRvdWJsZSB4LCBHTGRvdWJsZSB5ICk7CmV4dGVybiB2b2lkIGdsUmFzdGVyUG9z
MmYoIEdMZmxvYXQgeCwgR0xmbG9hdCB5ICk7CmV4dGVybiB2b2lkIGdsUmFzdGVyUG9zMmkoIEdM
aW50IHgsIEdMaW50IHkgKTsKZXh0ZXJuIHZvaWQgZ2xSYXN0ZXJQb3MycyggR0xzaG9ydCB4LCBH
THNob3J0IHkgKTsKCmV4dGVybiB2b2lkIGdsUmFzdGVyUG9zM2QoIEdMZG91YmxlIHgsIEdMZG91
YmxlIHksIEdMZG91YmxlIHogKTsKZXh0ZXJuIHZvaWQgZ2xSYXN0ZXJQb3MzZiggR0xmbG9hdCB4
LCBHTGZsb2F0IHksIEdMZmxvYXQgeiApOwpleHRlcm4gdm9pZCBnbFJhc3RlclBvczNpKCBHTGlu
dCB4LCBHTGludCB5LCBHTGludCB6ICk7CmV4dGVybiB2b2lkIGdsUmFzdGVyUG9zM3MoIEdMc2hv
cnQgeCwgR0xzaG9ydCB5LCBHTHNob3J0IHogKTsKCmV4dGVybiB2b2lkIGdsUmFzdGVyUG9zNGQo
IEdMZG91YmxlIHgsIEdMZG91YmxlIHksIEdMZG91YmxlIHosIEdMZG91YmxlIHcgKTsKZXh0ZXJu
IHZvaWQgZ2xSYXN0ZXJQb3M0ZiggR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeiwgR0xm
bG9hdCB3ICk7CmV4dGVybiB2b2lkIGdsUmFzdGVyUG9zNGkoIEdMaW50IHgsIEdMaW50IHksIEdM
aW50IHosIEdMaW50IHcgKTsKZXh0ZXJuIHZvaWQgZ2xSYXN0ZXJQb3M0cyggR0xzaG9ydCB4LCBH
THNob3J0IHksIEdMc2hvcnQgeiwgR0xzaG9ydCB3ICk7CgpleHRlcm4gdm9pZCBnbFJhc3RlclBv
czJkdiggY29uc3QgR0xkb3VibGUgKnYgKTsKZXh0ZXJuIHZvaWQgZ2xSYXN0ZXJQb3MyZnYoIGNv
bnN0IEdMZmxvYXQgKnYgKTsKZXh0ZXJuIHZvaWQgZ2xSYXN0ZXJQb3MyaXYoIGNvbnN0IEdMaW50
ICp2ICk7CmV4dGVybiB2b2lkIGdsUmFzdGVyUG9zMnN2KCBjb25zdCBHTHNob3J0ICp2ICk7Cgpl
eHRlcm4gdm9pZCBnbFJhc3RlclBvczNkdiggY29uc3QgR0xkb3VibGUgKnYgKTsKZXh0ZXJuIHZv
aWQgZ2xSYXN0ZXJQb3MzZnYoIGNvbnN0IEdMZmxvYXQgKnYgKTsKZXh0ZXJuIHZvaWQgZ2xSYXN0
ZXJQb3MzaXYoIGNvbnN0IEdMaW50ICp2ICk7CmV4dGVybiB2b2lkIGdsUmFzdGVyUG9zM3N2KCBj
b25zdCBHTHNob3J0ICp2ICk7CgpleHRlcm4gdm9pZCBnbFJhc3RlclBvczRkdiggY29uc3QgR0xk
b3VibGUgKnYgKTsKZXh0ZXJuIHZvaWQgZ2xSYXN0ZXJQb3M0ZnYoIGNvbnN0IEdMZmxvYXQgKnYg
KTsKZXh0ZXJuIHZvaWQgZ2xSYXN0ZXJQb3M0aXYoIGNvbnN0IEdMaW50ICp2ICk7CmV4dGVybiB2
b2lkIGdsUmFzdGVyUG9zNHN2KCBjb25zdCBHTHNob3J0ICp2ICk7CgoKZXh0ZXJuIHZvaWQgZ2xS
ZWN0ZCggR0xkb3VibGUgeDEsIEdMZG91YmxlIHkxLCBHTGRvdWJsZSB4MiwgR0xkb3VibGUgeTIg
KTsKZXh0ZXJuIHZvaWQgZ2xSZWN0ZiggR0xmbG9hdCB4MSwgR0xmbG9hdCB5MSwgR0xmbG9hdCB4
MiwgR0xmbG9hdCB5MiApOwpleHRlcm4gdm9pZCBnbFJlY3RpKCBHTGludCB4MSwgR0xpbnQgeTEs
IEdMaW50IHgyLCBHTGludCB5MiApOwpleHRlcm4gdm9pZCBnbFJlY3RzKCBHTHNob3J0IHgxLCBH
THNob3J0IHkxLCBHTHNob3J0IHgyLCBHTHNob3J0IHkyICk7CgoKZXh0ZXJuIHZvaWQgZ2xSZWN0
ZHYoIGNvbnN0IEdMZG91YmxlICp2MSwgY29uc3QgR0xkb3VibGUgKnYyICk7CmV4dGVybiB2b2lk
IGdsUmVjdGZ2KCBjb25zdCBHTGZsb2F0ICp2MSwgY29uc3QgR0xmbG9hdCAqdjIgKTsKZXh0ZXJu
IHZvaWQgZ2xSZWN0aXYoIGNvbnN0IEdMaW50ICp2MSwgY29uc3QgR0xpbnQgKnYyICk7CmV4dGVy
biB2b2lkIGdsUmVjdHN2KCBjb25zdCBHTHNob3J0ICp2MSwgY29uc3QgR0xzaG9ydCAqdjIgKTsK
CgoKCgoKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhQb2ludGVyKCBHTGludCBzaXplLCBHTGVudW0gdHlw
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBzdHJpZGUs
IGNvbnN0IEdMdm9pZCAqcHRyICk7CgpleHRlcm4gdm9pZCBnbE5vcm1hbFBvaW50ZXIoIEdMZW51
bSB0eXBlLCBHTHNpemVpIHN0cmlkZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgR0x2b2lkICpwdHIgKTsKCmV4dGVybiB2b2lkIGdsQ29sb3JQb2ludGVyKCBH
TGludCBzaXplLCBHTGVudW0gdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHTHNpemVpIHN0cmlkZSwgY29uc3QgR0x2b2lkICpwdHIgKTsKCmV4dGVybiB2b2lkIGds
SW5kZXhQb2ludGVyKCBHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR0x2b2lkICpwdHIgKTsKCmV4dGVybiB2b2lk
IGdsVGV4Q29vcmRQb2ludGVyKCBHTGludCBzaXplLCBHTGVudW0gdHlwZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHN0cmlkZSwgY29uc3QgR0x2b2lk
ICpwdHIgKTsKCmV4dGVybiB2b2lkIGdsRWRnZUZsYWdQb2ludGVyKCBHTHNpemVpIHN0cmlkZSwg
Y29uc3QgR0x2b2lkICpwdHIgKTsKCmV4dGVybiB2b2lkIGdsR2V0UG9pbnRlcnYoIEdMZW51bSBw
bmFtZSwgR0x2b2lkICoqcGFyYW1zICk7CgpleHRlcm4gdm9pZCBnbEFycmF5RWxlbWVudCggR0xp
bnQgaSApOwoKZXh0ZXJuIHZvaWQgZ2xEcmF3QXJyYXlzKCBHTGVudW0gbW9kZSwgR0xpbnQgZmly
c3QsIEdMc2l6ZWkgY291bnQgKTsKCmV4dGVybiB2b2lkIGdsRHJhd0VsZW1lbnRzKCBHTGVudW0g
bW9kZSwgR0xzaXplaSBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICppbmRpY2VzICk7CgpleHRlcm4gdm9pZCBnbElu
dGVybGVhdmVkQXJyYXlzKCBHTGVudW0gZm9ybWF0LCBHTHNpemVpIHN0cmlkZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdMdm9pZCAqcG9pbnRlciAp
OwoKCgoKCmV4dGVybiB2b2lkIGdsU2hhZGVNb2RlbCggR0xlbnVtIG1vZGUgKTsKCmV4dGVybiB2
b2lkIGdsTGlnaHRmKCBHTGVudW0gbGlnaHQsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCBwYXJhbSAp
OwpleHRlcm4gdm9pZCBnbExpZ2h0aSggR0xlbnVtIGxpZ2h0LCBHTGVudW0gcG5hbWUsIEdMaW50
IHBhcmFtICk7CmV4dGVybiB2b2lkIGdsTGlnaHRmdiggR0xlbnVtIGxpZ2h0LCBHTGVudW0gcG5h
bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdMZmxvYXQgKnBhcmFt
cyApOwpleHRlcm4gdm9pZCBnbExpZ2h0aXYoIEdMZW51bSBsaWdodCwgR0xlbnVtIHBuYW1lLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHTGludCAqcGFyYW1zICk7Cgpl
eHRlcm4gdm9pZCBnbEdldExpZ2h0ZnYoIEdMZW51bSBsaWdodCwgR0xlbnVtIHBuYW1lLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGZsb2F0ICpwYXJhbXMgKTsKZXh0ZXJu
IHZvaWQgZ2xHZXRMaWdodGl2KCBHTGVudW0gbGlnaHQsIEdMZW51bSBwbmFtZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgKnBhcmFtcyApOwoKZXh0ZXJuIHZvaWQg
Z2xMaWdodE1vZGVsZiggR0xlbnVtIHBuYW1lLCBHTGZsb2F0IHBhcmFtICk7CmV4dGVybiB2b2lk
IGdsTGlnaHRNb2RlbGkoIEdMZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0gKTsKZXh0ZXJuIHZvaWQg
Z2xMaWdodE1vZGVsZnYoIEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqcGFyYW1zICk7CmV4
dGVybiB2b2lkIGdsTGlnaHRNb2RlbGl2KCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMaW50ICpwYXJh
bXMgKTsKCmV4dGVybiB2b2lkIGdsTWF0ZXJpYWxmKCBHTGVudW0gZmFjZSwgR0xlbnVtIHBuYW1l
LCBHTGZsb2F0IHBhcmFtICk7CmV4dGVybiB2b2lkIGdsTWF0ZXJpYWxpKCBHTGVudW0gZmFjZSwg
R0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSApOwpleHRlcm4gdm9pZCBnbE1hdGVyaWFsZnYoIEdM
ZW51bSBmYWNlLCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMZmxvYXQgKnBhcmFtcyApOwpleHRlcm4g
dm9pZCBnbE1hdGVyaWFsaXYoIEdMZW51bSBmYWNlLCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMaW50
ICpwYXJhbXMgKTsKCmV4dGVybiB2b2lkIGdsR2V0TWF0ZXJpYWxmdiggR0xlbnVtIGZhY2UsIEdM
ZW51bSBwbmFtZSwgR0xmbG9hdCAqcGFyYW1zICk7CmV4dGVybiB2b2lkIGdsR2V0TWF0ZXJpYWxp
diggR0xlbnVtIGZhY2UsIEdMZW51bSBwbmFtZSwgR0xpbnQgKnBhcmFtcyApOwoKZXh0ZXJuIHZv
aWQgZ2xDb2xvck1hdGVyaWFsKCBHTGVudW0gZmFjZSwgR0xlbnVtIG1vZGUgKTsKCgoKCgoKZXh0
ZXJuIHZvaWQgZ2xQaXhlbFpvb20oIEdMZmxvYXQgeGZhY3RvciwgR0xmbG9hdCB5ZmFjdG9yICk7
CgpleHRlcm4gdm9pZCBnbFBpeGVsU3RvcmVmKCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0g
KTsKZXh0ZXJuIHZvaWQgZ2xQaXhlbFN0b3JlaSggR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSAp
OwoKZXh0ZXJuIHZvaWQgZ2xQaXhlbFRyYW5zZmVyZiggR0xlbnVtIHBuYW1lLCBHTGZsb2F0IHBh
cmFtICk7CmV4dGVybiB2b2lkIGdsUGl4ZWxUcmFuc2ZlcmkoIEdMZW51bSBwbmFtZSwgR0xpbnQg
cGFyYW0gKTsKCmV4dGVybiB2b2lkIGdsUGl4ZWxNYXBmdiggR0xlbnVtIG1hcCwgR0xpbnQgbWFw
c2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR0xmbG9hdCAq
dmFsdWVzICk7CmV4dGVybiB2b2lkIGdsUGl4ZWxNYXB1aXYoIEdMZW51bSBtYXAsIEdMaW50IG1h
cHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHTHVpbnQg
KnZhbHVlcyApOwpleHRlcm4gdm9pZCBnbFBpeGVsTWFwdXN2KCBHTGVudW0gbWFwLCBHTGludCBt
YXBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR0x1c2hv
cnQgKnZhbHVlcyApOwoKZXh0ZXJuIHZvaWQgZ2xHZXRQaXhlbE1hcGZ2KCBHTGVudW0gbWFwLCBH
TGZsb2F0ICp2YWx1ZXMgKTsKZXh0ZXJuIHZvaWQgZ2xHZXRQaXhlbE1hcHVpdiggR0xlbnVtIG1h
cCwgR0x1aW50ICp2YWx1ZXMgKTsKZXh0ZXJuIHZvaWQgZ2xHZXRQaXhlbE1hcHVzdiggR0xlbnVt
IG1hcCwgR0x1c2hvcnQgKnZhbHVlcyApOwoKZXh0ZXJuIHZvaWQgZ2xCaXRtYXAoIEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
ZmxvYXQgeG9yaWcsIEdMZmxvYXQgeW9yaWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xmbG9hdCB4bW92ZSwgR0xmbG9hdCB5bW92ZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBHTHVieXRlICpiaXRtYXAgKTsKCmV4dGVybiB2b2lkIGdsUmVhZFBpeGVs
cyggR0xpbnQgeCwgR0xpbnQgeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHTHZvaWQgKnBpeGVscyApOwoKZXh0ZXJuIHZvaWQgZ2xEcmF3UGl4
ZWxzKCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdMdm9pZCAqcGl4ZWxzICk7CgpleHRlcm4gdm9p
ZCBnbENvcHlQaXhlbHMoIEdMaW50IHgsIEdMaW50IHksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gdHlwZSApOwoKCgoKCmV4dGVybiB2b2lkIGds
U3RlbmNpbEZ1bmMoIEdMZW51bSBmdW5jLCBHTGludCByZWYsIEdMdWludCBtYXNrICk7CgpleHRl
cm4gdm9pZCBnbFN0ZW5jaWxNYXNrKCBHTHVpbnQgbWFzayApOwoKZXh0ZXJuIHZvaWQgZ2xTdGVu
Y2lsT3AoIEdMZW51bSBmYWlsLCBHTGVudW0gemZhaWwsIEdMZW51bSB6cGFzcyApOwoKZXh0ZXJu
IHZvaWQgZ2xDbGVhclN0ZW5jaWwoIEdMaW50IHMgKTsKCgoKCgoKCmV4dGVybiB2b2lkIGdsVGV4
R2VuZCggR0xlbnVtIGNvb3JkLCBHTGVudW0gcG5hbWUsIEdMZG91YmxlIHBhcmFtICk7CmV4dGVy
biB2b2lkIGdsVGV4R2VuZiggR0xlbnVtIGNvb3JkLCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFy
YW0gKTsKZXh0ZXJuIHZvaWQgZ2xUZXhHZW5pKCBHTGVudW0gY29vcmQsIEdMZW51bSBwbmFtZSwg
R0xpbnQgcGFyYW0gKTsKCmV4dGVybiB2b2lkIGdsVGV4R2VuZHYoIEdMZW51bSBjb29yZCwgR0xl
bnVtIHBuYW1lLCBjb25zdCBHTGRvdWJsZSAqcGFyYW1zICk7CmV4dGVybiB2b2lkIGdsVGV4R2Vu
ZnYoIEdMZW51bSBjb29yZCwgR0xlbnVtIHBuYW1lLCBjb25zdCBHTGZsb2F0ICpwYXJhbXMgKTsK
ZXh0ZXJuIHZvaWQgZ2xUZXhHZW5pdiggR0xlbnVtIGNvb3JkLCBHTGVudW0gcG5hbWUsIGNvbnN0
IEdMaW50ICpwYXJhbXMgKTsKCmV4dGVybiB2b2lkIGdsR2V0VGV4R2VuZHYoIEdMZW51bSBjb29y
ZCwgR0xlbnVtIHBuYW1lLCBHTGRvdWJsZSAqcGFyYW1zICk7CmV4dGVybiB2b2lkIGdsR2V0VGV4
R2VuZnYoIEdMZW51bSBjb29yZCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0ICpwYXJhbXMgKTsKZXh0
ZXJuIHZvaWQgZ2xHZXRUZXhHZW5pdiggR0xlbnVtIGNvb3JkLCBHTGVudW0gcG5hbWUsIEdMaW50
ICpwYXJhbXMgKTsKCgpleHRlcm4gdm9pZCBnbFRleEVudmYoIEdMZW51bSB0YXJnZXQsIEdMZW51
bSBwbmFtZSwgR0xmbG9hdCBwYXJhbSApOwpleHRlcm4gdm9pZCBnbFRleEVudmkoIEdMZW51bSB0
YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0gKTsKCmV4dGVybiB2b2lkIGdsVGV4RW52
ZnYoIEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqcGFyYW1zICk7
CmV4dGVybiB2b2lkIGdsVGV4RW52aXYoIEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgY29u
c3QgR0xpbnQgKnBhcmFtcyApOwoKZXh0ZXJuIHZvaWQgZ2xHZXRUZXhFbnZmdiggR0xlbnVtIHRh
cmdldCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0ICpwYXJhbXMgKTsKZXh0ZXJuIHZvaWQgZ2xHZXRU
ZXhFbnZpdiggR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGludCAqcGFyYW1zICk7CgoK
ZXh0ZXJuIHZvaWQgZ2xUZXhQYXJhbWV0ZXJmKCBHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUs
IEdMZmxvYXQgcGFyYW0gKTsKZXh0ZXJuIHZvaWQgZ2xUZXhQYXJhbWV0ZXJpKCBHTGVudW0gdGFy
Z2V0LCBHTGVudW0gcG5hbWUsIEdMaW50IHBhcmFtICk7CgpleHRlcm4gdm9pZCBnbFRleFBhcmFt
ZXRlcmZ2KCBHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdMZmxvYXQgKnBhcmFtcyApOwpleHRlcm4gdm9p
ZCBnbFRleFBhcmFtZXRlcml2KCBHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdMaW50ICpwYXJhbXMgKTsK
CmV4dGVybiB2b2lkIGdsR2V0VGV4UGFyYW1ldGVyZnYoIEdMZW51bSB0YXJnZXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gcG5hbWUsIEdMZmxvYXQg
KnBhcmFtcyk7CmV4dGVybiB2b2lkIGdsR2V0VGV4UGFyYW1ldGVyaXYoIEdMZW51bSB0YXJnZXQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gcG5hbWUs
IEdMaW50ICpwYXJhbXMgKTsKCmV4dGVybiB2b2lkIGdsR2V0VGV4TGV2ZWxQYXJhbWV0ZXJmdigg
R0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdMZW51bSBwbmFtZSwgR0xmbG9hdCAqcGFyYW1zICk7CmV4dGVy
biB2b2lkIGdsR2V0VGV4TGV2ZWxQYXJhbWV0ZXJpdiggR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2
ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51
bSBwbmFtZSwgR0xpbnQgKnBhcmFtcyApOwoKCmV4dGVybiB2b2lkIGdsVGV4SW1hZ2UxRCggR0xl
bnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdMaW50IGludGVybmFsRm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHTHNpemVpIHdpZHRoLCBHTGludCBib3JkZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBHTHZvaWQgKnBpeGVscyApOwoKZXh0ZXJuIHZvaWQg
Z2xUZXhJbWFnZTJEKCBHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0xpbnQgaW50ZXJuYWxGb3JtYXQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCBib3JkZXIsIEdMZW51bSBmb3Jt
YXQsIEdMZW51bSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBHTHZvaWQgKnBpeGVscyApOwoKZXh0ZXJuIHZvaWQgZ2xHZXRUZXhJbWFnZSggR0xlbnVtIHRh
cmdldCwgR0xpbnQgbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
TGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdMdm9pZCAqcGl4ZWxzICk7CgoKCgpleHRlcm4gdm9pZCBnbEdlblRleHR1cmVzKCBH
THNpemVpIG4sIEdMdWludCAqdGV4dHVyZXMgKTsKCmV4dGVybiB2b2lkIGdsRGVsZXRlVGV4dHVy
ZXMoIEdMc2l6ZWkgbiwgY29uc3QgR0x1aW50ICp0ZXh0dXJlcyk7CgpleHRlcm4gdm9pZCBnbEJp
bmRUZXh0dXJlKCBHTGVudW0gdGFyZ2V0LCBHTHVpbnQgdGV4dHVyZSApOwoKZXh0ZXJuIHZvaWQg
Z2xQcmlvcml0aXplVGV4dHVyZXMoIEdMc2l6ZWkgbiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBHTHVpbnQgKnRleHR1cmVzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdMY2xhbXBmICpwcmlvcml0aWVz
ICk7CgpleHRlcm4gR0xib29sZWFuIGdsQXJlVGV4dHVyZXNSZXNpZGVudCggR0xzaXplaSBuLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdM
dWludCAqdGV4dHVyZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0xib29sZWFuICpyZXNpZGVuY2VzICk7CgpleHRlcm4gR0xib29sZWFuIGdsSXNU
ZXh0dXJlKCBHTHVpbnQgdGV4dHVyZSApOwoKCmV4dGVybiB2b2lkIGdsVGV4U3ViSW1hZ2UxRCgg
R0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdMaW50IHhvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMZW51bSBmb3JtYXQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQgKnBpeGVscyApOwoK
CmV4dGVybiB2b2lkIGdsVGV4U3ViSW1hZ2UyRCggR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWws
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IHhvZmZzZXQsIEdM
aW50IHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6
ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgR0x2b2lkICpwaXhlbHMgKTsKCgpleHRlcm4gdm9pZCBn
bENvcHlUZXhJbWFnZTFEKCBHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IHgsIEdMaW50IHksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBHTGludCBi
b3JkZXIgKTsKCgpleHRlcm4gdm9pZCBnbENvcHlUZXhJbWFnZTJEKCBHTGVudW0gdGFyZ2V0LCBH
TGludCBsZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51
bSBpbnRlcm5hbGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdMaW50IHgsIEdMaW50IHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMaW50IGJvcmRlciApOwoKCmV4dGVybiB2b2lkIGdsQ29weVRleFN1
YkltYWdlMUQoIEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgeG9mZnNldCwgR0xpbnQgeCwgR0xpbnQgeSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgg
KTsKCgpleHRlcm4gdm9pZCBnbENvcHlUZXhTdWJJbWFnZTJEKCBHTGVudW0gdGFyZ2V0LCBHTGlu
dCBsZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50
IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHTGludCB4LCBHTGludCB5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQgKTsKCgoKCgoKZXh0
ZXJuIHZvaWQgZ2xNYXAxZCggR0xlbnVtIHRhcmdldCwgR0xkb3VibGUgdTEsIEdMZG91YmxlIHUy
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgc3RyaWRlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0xpbnQgb3JkZXIsIGNvbnN0IEdMZG91YmxlICpwb2ludHMg
KTsKZXh0ZXJuIHZvaWQgZ2xNYXAxZiggR0xlbnVtIHRhcmdldCwgR0xmbG9hdCB1MSwgR0xmbG9h
dCB1MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IHN0cmlkZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IG9yZGVyLCBjb25zdCBHTGZsb2F0ICpwb2lu
dHMgKTsKCmV4dGVybiB2b2lkIGdsTWFwMmQoIEdMZW51bSB0YXJnZXQsCiAgICAgICAgICAgICAg
ICAgICAgIEdMZG91YmxlIHUxLCBHTGRvdWJsZSB1MiwgR0xpbnQgdXN0cmlkZSwgR0xpbnQgdW9y
ZGVyLAogICAgICAgICAgICAgICAgICAgICBHTGRvdWJsZSB2MSwgR0xkb3VibGUgdjIsIEdMaW50
IHZzdHJpZGUsIEdMaW50IHZvcmRlciwKICAgICAgICAgICAgICAgICAgICAgY29uc3QgR0xkb3Vi
bGUgKnBvaW50cyApOwpleHRlcm4gdm9pZCBnbE1hcDJmKCBHTGVudW0gdGFyZ2V0LAogICAgICAg
ICAgICAgICAgICAgICBHTGZsb2F0IHUxLCBHTGZsb2F0IHUyLCBHTGludCB1c3RyaWRlLCBHTGlu
dCB1b3JkZXIsCiAgICAgICAgICAgICAgICAgICAgIEdMZmxvYXQgdjEsIEdMZmxvYXQgdjIsIEdM
aW50IHZzdHJpZGUsIEdMaW50IHZvcmRlciwKICAgICAgICAgICAgICAgICAgICAgY29uc3QgR0xm
bG9hdCAqcG9pbnRzICk7CgpleHRlcm4gdm9pZCBnbEdldE1hcGR2KCBHTGVudW0gdGFyZ2V0LCBH
TGVudW0gcXVlcnksIEdMZG91YmxlICp2ICk7CmV4dGVybiB2b2lkIGdsR2V0TWFwZnYoIEdMZW51
bSB0YXJnZXQsIEdMZW51bSBxdWVyeSwgR0xmbG9hdCAqdiApOwpleHRlcm4gdm9pZCBnbEdldE1h
cGl2KCBHTGVudW0gdGFyZ2V0LCBHTGVudW0gcXVlcnksIEdMaW50ICp2ICk7CgpleHRlcm4gdm9p
ZCBnbEV2YWxDb29yZDFkKCBHTGRvdWJsZSB1ICk7CmV4dGVybiB2b2lkIGdsRXZhbENvb3JkMWYo
IEdMZmxvYXQgdSApOwoKZXh0ZXJuIHZvaWQgZ2xFdmFsQ29vcmQxZHYoIGNvbnN0IEdMZG91Ymxl
ICp1ICk7CmV4dGVybiB2b2lkIGdsRXZhbENvb3JkMWZ2KCBjb25zdCBHTGZsb2F0ICp1ICk7Cgpl
eHRlcm4gdm9pZCBnbEV2YWxDb29yZDJkKCBHTGRvdWJsZSB1LCBHTGRvdWJsZSB2ICk7CmV4dGVy
biB2b2lkIGdsRXZhbENvb3JkMmYoIEdMZmxvYXQgdSwgR0xmbG9hdCB2ICk7CgpleHRlcm4gdm9p
ZCBnbEV2YWxDb29yZDJkdiggY29uc3QgR0xkb3VibGUgKnUgKTsKZXh0ZXJuIHZvaWQgZ2xFdmFs
Q29vcmQyZnYoIGNvbnN0IEdMZmxvYXQgKnUgKTsKCmV4dGVybiB2b2lkIGdsTWFwR3JpZDFkKCBH
TGludCB1biwgR0xkb3VibGUgdTEsIEdMZG91YmxlIHUyICk7CmV4dGVybiB2b2lkIGdsTWFwR3Jp
ZDFmKCBHTGludCB1biwgR0xmbG9hdCB1MSwgR0xmbG9hdCB1MiApOwoKZXh0ZXJuIHZvaWQgZ2xN
YXBHcmlkMmQoIEdMaW50IHVuLCBHTGRvdWJsZSB1MSwgR0xkb3VibGUgdTIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgdm4sIEdMZG91YmxlIHYxLCBHTGRvdWJsZSB2
MiApOwpleHRlcm4gdm9pZCBnbE1hcEdyaWQyZiggR0xpbnQgdW4sIEdMZmxvYXQgdTEsIEdMZmxv
YXQgdTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgdm4sIEdMZmxv
YXQgdjEsIEdMZmxvYXQgdjIgKTsKCmV4dGVybiB2b2lkIGdsRXZhbFBvaW50MSggR0xpbnQgaSAp
OwoKZXh0ZXJuIHZvaWQgZ2xFdmFsUG9pbnQyKCBHTGludCBpLCBHTGludCBqICk7CgpleHRlcm4g
dm9pZCBnbEV2YWxNZXNoMSggR0xlbnVtIG1vZGUsIEdMaW50IGkxLCBHTGludCBpMiApOwoKZXh0
ZXJuIHZvaWQgZ2xFdmFsTWVzaDIoIEdMZW51bSBtb2RlLCBHTGludCBpMSwgR0xpbnQgaTIsIEdM
aW50IGoxLCBHTGludCBqMiApOwoKCgoKCgpleHRlcm4gdm9pZCBnbEZvZ2YoIEdMZW51bSBwbmFt
ZSwgR0xmbG9hdCBwYXJhbSApOwoKZXh0ZXJuIHZvaWQgZ2xGb2dpKCBHTGVudW0gcG5hbWUsIEdM
aW50IHBhcmFtICk7CgpleHRlcm4gdm9pZCBnbEZvZ2Z2KCBHTGVudW0gcG5hbWUsIGNvbnN0IEdM
ZmxvYXQgKnBhcmFtcyApOwoKZXh0ZXJuIHZvaWQgZ2xGb2dpdiggR0xlbnVtIHBuYW1lLCBjb25z
dCBHTGludCAqcGFyYW1zICk7CgoKCgoKCmV4dGVybiB2b2lkIGdsRmVlZGJhY2tCdWZmZXIoIEdM
c2l6ZWkgc2l6ZSwgR0xlbnVtIHR5cGUsIEdMZmxvYXQgKmJ1ZmZlciApOwoKZXh0ZXJuIHZvaWQg
Z2xQYXNzVGhyb3VnaCggR0xmbG9hdCB0b2tlbiApOwoKZXh0ZXJuIHZvaWQgZ2xTZWxlY3RCdWZm
ZXIoIEdMc2l6ZWkgc2l6ZSwgR0x1aW50ICpidWZmZXIgKTsKCmV4dGVybiB2b2lkIGdsSW5pdE5h
bWVzKCB2b2lkICk7CgpleHRlcm4gdm9pZCBnbExvYWROYW1lKCBHTHVpbnQgbmFtZSApOwoKZXh0
ZXJuIHZvaWQgZ2xQdXNoTmFtZSggR0x1aW50IG5hbWUgKTsKCmV4dGVybiB2b2lkIGdsUG9wTmFt
ZSggdm9pZCApOwojIDE0OTYgIi4uL2luY2x1ZGUvR0wvZ2wuaCIKZXh0ZXJuIHZvaWQgZ2xEcmF3
UmFuZ2VFbGVtZW50cyggR0xlbnVtIG1vZGUsIEdMdWludCBzdGFydCwKICAgICAgICBHTHVpbnQg
ZW5kLCBHTHNpemVpIGNvdW50LCBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICppbmRpY2VzICk7
CgpleHRlcm4gdm9pZCBnbFRleEltYWdlM0QoIEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGludGVybmFsRm9ybWF0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdM
c2l6ZWkgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6
ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBHTHZvaWQgKnBpeGVscyApOwoKZXh0ZXJuIHZvaWQgZ2xUZXhT
dWJJbWFnZTNEKCBHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IHpvZmZzZXQsIEdMc2l6
ZWkgd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXpl
aSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0xlbnVtIGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICpwaXhlbHMpOwoKZXh0ZXJuIHZvaWQg
Z2xDb3B5VGV4U3ViSW1hZ2UzRCggR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IHhvZmZzZXQsIEdMaW50
IHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
aW50IHpvZmZzZXQsIEdMaW50IHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgaGVpZ2h0ICk7Cgp0eXBlZGVmIHZvaWQgKCAq
IFBGTkdMRFJBV1JBTkdFRUxFTUVOVFNQUk9DKSAoR0xlbnVtIG1vZGUsIEdMdWludCBzdGFydCwg
R0x1aW50IGVuZCwgR0xzaXplaSBjb3VudCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9pZCAqaW5k
aWNlcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xURVhJTUFHRTNEUFJPQykgKEdMZW51bSB0YXJn
ZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xz
aXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwg
R0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9pZCAqcGl4ZWxzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TFRFWFNVQklNQUdFM0RQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhv
ZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50IHpvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6
ZWkgaGVpZ2h0LCBHTHNpemVpIGRlcHRoLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgY29u
c3QgR0x2b2lkICpwaXhlbHMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09QWVRFWFNVQklNQUdF
M0RQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50
IHlvZmZzZXQsIEdMaW50IHpvZmZzZXQsIEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgs
IEdMc2l6ZWkgaGVpZ2h0KTsKIyAxNjA2ICIuLi9pbmNsdWRlL0dML2dsLmgiCmV4dGVybiB2b2lk
IGdsQ29sb3JUYWJsZSggR0xlbnVtIHRhcmdldCwgR0xlbnVtIGludGVybmFsZm9ybWF0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBHTGVudW0gZm9y
bWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gdHlwZSwgY29u
c3QgR0x2b2lkICp0YWJsZSApOwoKZXh0ZXJuIHZvaWQgZ2xDb2xvclN1YlRhYmxlKCBHTGVudW0g
dGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHN0
YXJ0LCBHTHNpemVpIGNvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgR0x2b2lkICpkYXRhICk7CgpleHRlcm4gdm9pZCBnbENvbG9yVGFi
bGVQYXJhbWV0ZXJpdihHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHTGludCAqcGFyYW1zKTsKCmV4
dGVybiB2b2lkIGdsQ29sb3JUYWJsZVBhcmFtZXRlcmZ2KEdMZW51bSB0YXJnZXQsIEdMZW51bSBw
bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IEdMZmxvYXQgKnBhcmFtcyk7CgpleHRlcm4gdm9pZCBnbENvcHlDb2xvclN1YlRhYmxlKCBHTGVu
dW0gdGFyZ2V0LCBHTHNpemVpIHN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCApOwoKZXh0ZXJuIHZv
aWQgZ2xDb3B5Q29sb3JUYWJsZSggR0xlbnVtIHRhcmdldCwgR0xlbnVtIGludGVybmFsZm9ybWF0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgeCwgR0xpbnQg
eSwgR0xzaXplaSB3aWR0aCApOwoKZXh0ZXJuIHZvaWQgZ2xHZXRDb2xvclRhYmxlKCBHTGVudW0g
dGFyZ2V0LCBHTGVudW0gZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHTGVudW0gdHlwZSwgR0x2b2lkICp0YWJsZSApOwoKZXh0ZXJuIHZvaWQgZ2xHZXRDb2xv
clRhYmxlUGFyYW1ldGVyZnYoIEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGZsb2F0ICpwYXJhbXMg
KTsKCmV4dGVybiB2b2lkIGdsR2V0Q29sb3JUYWJsZVBhcmFtZXRlcml2KCBHTGVudW0gdGFyZ2V0
LCBHTGVudW0gcG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0xpbnQgKnBhcmFtcyApOwoKZXh0ZXJuIHZvaWQgZ2xCbGVuZEVxdWF0aW9uKCBH
TGVudW0gbW9kZSApOwoKZXh0ZXJuIHZvaWQgZ2xCbGVuZENvbG9yKCBHTGNsYW1wZiByZWQsIEdM
Y2xhbXBmIGdyZWVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGNsYW1w
ZiBibHVlLCBHTGNsYW1wZiBhbHBoYSApOwoKZXh0ZXJuIHZvaWQgZ2xIaXN0b2dyYW0oIEdMZW51
bSB0YXJnZXQsIEdMc2l6ZWkgd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTGJvb2xlYW4gc2luayApOwoKZXh0ZXJuIHZvaWQg
Z2xSZXNldEhpc3RvZ3JhbSggR0xlbnVtIHRhcmdldCApOwoKZXh0ZXJuIHZvaWQgZ2xHZXRIaXN0
b2dyYW0oIEdMZW51bSB0YXJnZXQsIEdMYm9vbGVhbiByZXNldCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHZvaWQgKnZhbHVlcyApOwoKZXh0ZXJuIHZv
aWQgZ2xHZXRIaXN0b2dyYW1QYXJhbWV0ZXJmdiggR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1l
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xmbG9h
dCAqcGFyYW1zICk7CgpleHRlcm4gdm9pZCBnbEdldEhpc3RvZ3JhbVBhcmFtZXRlcml2KCBHTGVu
dW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHTGludCAqcGFyYW1zICk7CgpleHRlcm4gdm9pZCBnbE1pbm1heCgg
R0xlbnVtIHRhcmdldCwgR0xlbnVtIGludGVybmFsZm9ybWF0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdMYm9vbGVhbiBzaW5rICk7CgpleHRlcm4gdm9pZCBnbFJlc2V0TWlubWF4
KCBHTGVudW0gdGFyZ2V0ICk7CgpleHRlcm4gdm9pZCBnbEdldE1pbm1heCggR0xlbnVtIHRhcmdl
dCwgR0xib29sZWFuIHJlc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
ZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHTHZvaWQgKnZhbHVlcyApOwoKZXh0ZXJuIHZvaWQgZ2xHZXRNaW5tYXhQYXJhbWV0ZXJm
diggR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0xmbG9hdCAqcGFyYW1zICk7CgpleHRlcm4gdm9pZCBnbEdl
dE1pbm1heFBhcmFtZXRlcml2KCBHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCAqcGFyYW1zICk7Cgpl
eHRlcm4gdm9pZCBnbENvbnZvbHV0aW9uRmlsdGVyMUQoIEdMZW51bSB0YXJnZXQsCiAgICAgICAg
R0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTGVudW0gZm9ybWF0LCBHTGVu
dW0gdHlwZSwKICAgICAgICBjb25zdCBHTHZvaWQgKmltYWdlICk7CgpleHRlcm4gdm9pZCBnbENv
bnZvbHV0aW9uRmlsdGVyMkQoIEdMZW51bSB0YXJnZXQsCiAgICAgICAgR0xlbnVtIGludGVybmFs
Zm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwKICAg
ICAgICBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICppbWFnZSApOwoKZXh0ZXJuIHZvaWQgZ2xD
b252b2x1dGlvblBhcmFtZXRlcmYoIEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwKICAgICAg
ICBHTGZsb2F0IHBhcmFtcyApOwoKZXh0ZXJuIHZvaWQgZ2xDb252b2x1dGlvblBhcmFtZXRlcmZ2
KCBHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsCiAgICAgICAgY29uc3QgR0xmbG9hdCAqcGFy
YW1zICk7CgpleHRlcm4gdm9pZCBnbENvbnZvbHV0aW9uUGFyYW1ldGVyaSggR0xlbnVtIHRhcmdl
dCwgR0xlbnVtIHBuYW1lLAogICAgICAgIEdMaW50IHBhcmFtcyApOwoKZXh0ZXJuIHZvaWQgZ2xD
b252b2x1dGlvblBhcmFtZXRlcml2KCBHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsCiAgICAg
ICAgY29uc3QgR0xpbnQgKnBhcmFtcyApOwoKZXh0ZXJuIHZvaWQgZ2xDb3B5Q29udm9sdXRpb25G
aWx0ZXIxRCggR0xlbnVtIHRhcmdldCwKICAgICAgICBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdM
aW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGggKTsKCmV4dGVybiB2b2lkIGdsQ29weUNvbnZv
bHV0aW9uRmlsdGVyMkQoIEdMZW51bSB0YXJnZXQsCiAgICAgICAgR0xlbnVtIGludGVybmFsZm9y
bWF0LCBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLAogICAgICAgIEdMc2l6ZWkgaGVp
Z2h0KTsKCmV4dGVybiB2b2lkIGdsR2V0Q29udm9sdXRpb25GaWx0ZXIoIEdMZW51bSB0YXJnZXQs
IEdMZW51bSBmb3JtYXQsCiAgICAgICAgR0xlbnVtIHR5cGUsIEdMdm9pZCAqaW1hZ2UgKTsKCmV4
dGVybiB2b2lkIGdsR2V0Q29udm9sdXRpb25QYXJhbWV0ZXJmdiggR0xlbnVtIHRhcmdldCwgR0xl
bnVtIHBuYW1lLAogICAgICAgIEdMZmxvYXQgKnBhcmFtcyApOwoKZXh0ZXJuIHZvaWQgZ2xHZXRD
b252b2x1dGlvblBhcmFtZXRlcml2KCBHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsCiAgICAg
ICAgR0xpbnQgKnBhcmFtcyApOwoKZXh0ZXJuIHZvaWQgZ2xTZXBhcmFibGVGaWx0ZXIyRCggR0xl
bnVtIHRhcmdldCwKICAgICAgICBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgs
IEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LAogICAgICAgIEdMZW51bSB0eXBlLCBjb25z
dCBHTHZvaWQgKnJvdywgY29uc3QgR0x2b2lkICpjb2x1bW4gKTsKCmV4dGVybiB2b2lkIGdsR2V0
U2VwYXJhYmxlRmlsdGVyKCBHTGVudW0gdGFyZ2V0LCBHTGVudW0gZm9ybWF0LAogICAgICAgIEdM
ZW51bSB0eXBlLCBHTHZvaWQgKnJvdywgR0x2b2lkICpjb2x1bW4sIEdMdm9pZCAqc3BhbiApOwoK
dHlwZWRlZiB2b2lkICggKiBQRk5HTEJMRU5EQ09MT1JQUk9DKSAoR0xjbGFtcGYgcmVkLCBHTGNs
YW1wZiBncmVlbiwgR0xjbGFtcGYgYmx1ZSwgR0xjbGFtcGYgYWxwaGEpOwp0eXBlZGVmIHZvaWQg
KCAqIFBGTkdMQkxFTkRFUVVBVElPTlBST0MpIChHTGVudW0gbW9kZSk7CnR5cGVkZWYgdm9pZCAo
ICogUEZOR0xDT0xPUlRBQkxFUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBpbnRlcm5hbGZv
cm1hdCwgR0xzaXplaSB3aWR0aCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdM
dm9pZCAqdGFibGUpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09MT1JUQUJMRVBBUkFNRVRFUkZW
UFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqcGFyYW1z
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTENPTE9SVEFCTEVQQVJBTUVURVJJVlBST0MpIChHTGVu
dW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMaW50ICpwYXJhbXMpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMQ09QWUNPTE9SVEFCTEVQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGlu
dGVybmFsZm9ybWF0LCBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTEdFVENPTE9SVEFCTEVQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGZv
cm1hdCwgR0xlbnVtIHR5cGUsIEdMdm9pZCAqdGFibGUpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
R0VUQ09MT1JUQUJMRVBBUkFNRVRFUkZWUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFt
ZSwgR0xmbG9hdCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVENPTE9SVEFCTEVQ
QVJBTUVURVJJVlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMaW50ICpwYXJh
bXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09MT1JTVUJUQUJMRVBST0MpIChHTGVudW0gdGFy
Z2V0LCBHTHNpemVpIHN0YXJ0LCBHTHNpemVpIGNvdW50LCBHTGVudW0gZm9ybWF0LCBHTGVudW0g
dHlwZSwgY29uc3QgR0x2b2lkICpkYXRhKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTENPUFlDT0xP
UlNVQlRBQkxFUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWkgc3RhcnQsIEdMaW50IHgsIEdM
aW50IHksIEdMc2l6ZWkgd2lkdGgpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09OVk9MVVRJT05G
SUxURVIxRFBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6
ZWkgd2lkdGgsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQgKmltYWdl
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTENPTlZPTFVUSU9ORklMVEVSMkRQUk9DKSAoR0xlbnVt
IHRhcmdldCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhl
aWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9pZCAqaW1hZ2UpOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09OVk9MVVRJT05QQVJBTUVURVJGUFJPQykgKEdMZW51bSB0
YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCBwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMQ09OVk9MVVRJT05QQVJBTUVURVJGVlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5h
bWUsIGNvbnN0IEdMZmxvYXQgKnBhcmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT05WT0xV
VElPTlBBUkFNRVRFUklQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGludCBw
YXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09OVk9MVVRJT05QQVJBTUVURVJJVlBST0Mp
IChHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMaW50ICpwYXJhbXMpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMQ09QWUNPTlZPTFVUSU9ORklMVEVSMURQUk9DKSAoR0xlbnVtIHRh
cmdldCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdp
ZHRoKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTENPUFlDT05WT0xVVElPTkZJTFRFUjJEUFJPQykg
KEdMZW51bSB0YXJnZXQsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xpbnQgeCwgR0xpbnQgeSwg
R0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VU
Q09OVk9MVVRJT05GSUxURVJQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGZvcm1hdCwgR0xl
bnVtIHR5cGUsIEdMdm9pZCAqaW1hZ2UpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUQ09OVk9M
VVRJT05QQVJBTUVURVJGVlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMZmxv
YXQgKnBhcmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRDT05WT0xVVElPTlBBUkFNRVRF
UklWUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xpbnQgKnBhcmFtcyk7CnR5
cGVkZWYgdm9pZCAoICogUEZOR0xHRVRTRVBBUkFCTEVGSUxURVJQUk9DKSAoR0xlbnVtIHRhcmdl
dCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEdMdm9pZCAqcm93LCBHTHZvaWQgKmNvbHVt
biwgR0x2b2lkICpzcGFuKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNFUEFSQUJMRUZJTFRFUjJE
UFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0
aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZv
aWQgKnJvdywgY29uc3QgR0x2b2lkICpjb2x1bW4pOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VU
SElTVE9HUkFNUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMYm9vbGVhbiByZXNldCwgR0xlbnVtIGZv
cm1hdCwgR0xlbnVtIHR5cGUsIEdMdm9pZCAqdmFsdWVzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TEdFVEhJU1RPR1JBTVBBUkFNRVRFUkZWUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFt
ZSwgR0xmbG9hdCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVEhJU1RPR1JBTVBB
UkFNRVRFUklWUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xpbnQgKnBhcmFt
cyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRNSU5NQVhQUk9DKSAoR0xlbnVtIHRhcmdldCwg
R0xib29sZWFuIHJlc2V0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgR0x2b2lkICp2YWx1
ZXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUTUlOTUFYUEFSQU1FVEVSRlZQUk9DKSAoR0xl
bnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQg
KCAqIFBGTkdMR0VUTUlOTUFYUEFSQU1FVEVSSVZQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVt
IHBuYW1lLCBHTGludCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEhJU1RPR1JBTVBS
T0MpIChHTGVudW0gdGFyZ2V0LCBHTHNpemVpIHdpZHRoLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQs
IEdMYm9vbGVhbiBzaW5rKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1JTk1BWFBST0MpIChHTGVu
dW0gdGFyZ2V0LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMYm9vbGVhbiBzaW5rKTsKdHlwZWRl
ZiB2b2lkICggKiBQRk5HTFJFU0VUSElTVE9HUkFNUFJPQykgKEdMZW51bSB0YXJnZXQpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMUkVTRVRNSU5NQVhQUk9DKSAoR0xlbnVtIHRhcmdldCk7CiMgMTg2
MCAiLi4vaW5jbHVkZS9HTC9nbC5oIgpleHRlcm4gdm9pZCBnbEFjdGl2ZVRleHR1cmUoIEdMZW51
bSB0ZXh0dXJlICk7CgpleHRlcm4gdm9pZCBnbENsaWVudEFjdGl2ZVRleHR1cmUoIEdMZW51bSB0
ZXh0dXJlICk7CgpleHRlcm4gdm9pZCBnbENvbXByZXNzZWRUZXhJbWFnZTFEKCBHTGVudW0gdGFy
Z2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBH
TGludCBib3JkZXIsIEdMc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCBHTHZvaWQgKmRhdGEgKTsKCmV4
dGVybiB2b2lkIGdsQ29tcHJlc3NlZFRleEltYWdlMkQoIEdMZW51bSB0YXJnZXQsIEdMaW50IGxl
dmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0
LCBHTGludCBib3JkZXIsIEdMc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCBHTHZvaWQgKmRhdGEgKTsK
CmV4dGVybiB2b2lkIGdsQ29tcHJlc3NlZFRleEltYWdlM0QoIEdMZW51bSB0YXJnZXQsIEdMaW50
IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVp
Z2h0LCBHTHNpemVpIGRlcHRoLCBHTGludCBib3JkZXIsIEdMc2l6ZWkgaW1hZ2VTaXplLCBjb25z
dCBHTHZvaWQgKmRhdGEgKTsKCmV4dGVybiB2b2lkIGdsQ29tcHJlc3NlZFRleFN1YkltYWdlMUQo
IEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTHNpemVpIHdpZHRo
LCBHTGVudW0gZm9ybWF0LCBHTHNpemVpIGltYWdlU2l6ZSwgY29uc3QgR0x2b2lkICpkYXRhICk7
CgpleHRlcm4gdm9pZCBnbENvbXByZXNzZWRUZXhTdWJJbWFnZTJEKCBHTGVudW0gdGFyZ2V0LCBH
TGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xzaXplaSB3aWR0aCwg
R0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCBH
THZvaWQgKmRhdGEgKTsKCmV4dGVybiB2b2lkIGdsQ29tcHJlc3NlZFRleFN1YkltYWdlM0QoIEdM
ZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBH
TGludCB6b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0
aCwgR0xlbnVtIGZvcm1hdCwgR0xzaXplaSBpbWFnZVNpemUsIGNvbnN0IEdMdm9pZCAqZGF0YSAp
OwoKZXh0ZXJuIHZvaWQgZ2xHZXRDb21wcmVzc2VkVGV4SW1hZ2UoIEdMZW51bSB0YXJnZXQsIEdM
aW50IGxvZCwgR0x2b2lkICppbWcgKTsKCmV4dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDFkKCBH
TGVudW0gdGFyZ2V0LCBHTGRvdWJsZSBzICk7CgpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQx
ZHYoIEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMZG91YmxlICp2ICk7CgpleHRlcm4gdm9pZCBnbE11
bHRpVGV4Q29vcmQxZiggR0xlbnVtIHRhcmdldCwgR0xmbG9hdCBzICk7CgpleHRlcm4gdm9pZCBn
bE11bHRpVGV4Q29vcmQxZnYoIEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMZmxvYXQgKnYgKTsKCmV4
dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDFpKCBHTGVudW0gdGFyZ2V0LCBHTGludCBzICk7Cgpl
eHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQxaXYoIEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMaW50
ICp2ICk7CgpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQxcyggR0xlbnVtIHRhcmdldCwgR0xz
aG9ydCBzICk7CgpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQxc3YoIEdMZW51bSB0YXJnZXQs
IGNvbnN0IEdMc2hvcnQgKnYgKTsKCmV4dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDJkKCBHTGVu
dW0gdGFyZ2V0LCBHTGRvdWJsZSBzLCBHTGRvdWJsZSB0ICk7CgpleHRlcm4gdm9pZCBnbE11bHRp
VGV4Q29vcmQyZHYoIEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMZG91YmxlICp2ICk7CgpleHRlcm4g
dm9pZCBnbE11bHRpVGV4Q29vcmQyZiggR0xlbnVtIHRhcmdldCwgR0xmbG9hdCBzLCBHTGZsb2F0
IHQgKTsKCmV4dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDJmdiggR0xlbnVtIHRhcmdldCwgY29u
c3QgR0xmbG9hdCAqdiApOwoKZXh0ZXJuIHZvaWQgZ2xNdWx0aVRleENvb3JkMmkoIEdMZW51bSB0
YXJnZXQsIEdMaW50IHMsIEdMaW50IHQgKTsKCmV4dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDJp
diggR0xlbnVtIHRhcmdldCwgY29uc3QgR0xpbnQgKnYgKTsKCmV4dGVybiB2b2lkIGdsTXVsdGlU
ZXhDb29yZDJzKCBHTGVudW0gdGFyZ2V0LCBHTHNob3J0IHMsIEdMc2hvcnQgdCApOwoKZXh0ZXJu
IHZvaWQgZ2xNdWx0aVRleENvb3JkMnN2KCBHTGVudW0gdGFyZ2V0LCBjb25zdCBHTHNob3J0ICp2
ICk7CgpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQzZCggR0xlbnVtIHRhcmdldCwgR0xkb3Vi
bGUgcywgR0xkb3VibGUgdCwgR0xkb3VibGUgciApOwoKZXh0ZXJuIHZvaWQgZ2xNdWx0aVRleENv
b3JkM2R2KCBHTGVudW0gdGFyZ2V0LCBjb25zdCBHTGRvdWJsZSAqdiApOwoKZXh0ZXJuIHZvaWQg
Z2xNdWx0aVRleENvb3JkM2YoIEdMZW51bSB0YXJnZXQsIEdMZmxvYXQgcywgR0xmbG9hdCB0LCBH
TGZsb2F0IHIgKTsKCmV4dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDNmdiggR0xlbnVtIHRhcmdl
dCwgY29uc3QgR0xmbG9hdCAqdiApOwoKZXh0ZXJuIHZvaWQgZ2xNdWx0aVRleENvb3JkM2koIEdM
ZW51bSB0YXJnZXQsIEdMaW50IHMsIEdMaW50IHQsIEdMaW50IHIgKTsKCmV4dGVybiB2b2lkIGds
TXVsdGlUZXhDb29yZDNpdiggR0xlbnVtIHRhcmdldCwgY29uc3QgR0xpbnQgKnYgKTsKCmV4dGVy
biB2b2lkIGdsTXVsdGlUZXhDb29yZDNzKCBHTGVudW0gdGFyZ2V0LCBHTHNob3J0IHMsIEdMc2hv
cnQgdCwgR0xzaG9ydCByICk7CgpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQzc3YoIEdMZW51
bSB0YXJnZXQsIGNvbnN0IEdMc2hvcnQgKnYgKTsKCmV4dGVybiB2b2lkIGdsTXVsdGlUZXhDb29y
ZDRkKCBHTGVudW0gdGFyZ2V0LCBHTGRvdWJsZSBzLCBHTGRvdWJsZSB0LCBHTGRvdWJsZSByLCBH
TGRvdWJsZSBxICk7CgpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQ0ZHYoIEdMZW51bSB0YXJn
ZXQsIGNvbnN0IEdMZG91YmxlICp2ICk7CgpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQ0Zigg
R0xlbnVtIHRhcmdldCwgR0xmbG9hdCBzLCBHTGZsb2F0IHQsIEdMZmxvYXQgciwgR0xmbG9hdCBx
ICk7CgpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQ0ZnYoIEdMZW51bSB0YXJnZXQsIGNvbnN0
IEdMZmxvYXQgKnYgKTsKCmV4dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDRpKCBHTGVudW0gdGFy
Z2V0LCBHTGludCBzLCBHTGludCB0LCBHTGludCByLCBHTGludCBxICk7CgpleHRlcm4gdm9pZCBn
bE11bHRpVGV4Q29vcmQ0aXYoIEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMaW50ICp2ICk7CgpleHRl
cm4gdm9pZCBnbE11bHRpVGV4Q29vcmQ0cyggR0xlbnVtIHRhcmdldCwgR0xzaG9ydCBzLCBHTHNo
b3J0IHQsIEdMc2hvcnQgciwgR0xzaG9ydCBxICk7CgpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29v
cmQ0c3YoIEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMc2hvcnQgKnYgKTsKCgpleHRlcm4gdm9pZCBn
bExvYWRUcmFuc3Bvc2VNYXRyaXhkKCBjb25zdCBHTGRvdWJsZSBtWzE2XSApOwoKZXh0ZXJuIHZv
aWQgZ2xMb2FkVHJhbnNwb3NlTWF0cml4ZiggY29uc3QgR0xmbG9hdCBtWzE2XSApOwoKZXh0ZXJu
IHZvaWQgZ2xNdWx0VHJhbnNwb3NlTWF0cml4ZCggY29uc3QgR0xkb3VibGUgbVsxNl0gKTsKCmV4
dGVybiB2b2lkIGdsTXVsdFRyYW5zcG9zZU1hdHJpeGYoIGNvbnN0IEdMZmxvYXQgbVsxNl0gKTsK
CmV4dGVybiB2b2lkIGdsU2FtcGxlQ292ZXJhZ2UoIEdMY2xhbXBmIHZhbHVlLCBHTGJvb2xlYW4g
aW52ZXJ0ICk7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQUNUSVZFVEVYVFVSRVBST0MpIChHTGVu
dW0gdGV4dHVyZSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDTElFTlRBQ1RJVkVURVhUVVJFUFJP
QykgKEdMZW51bSB0ZXh0dXJlKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVYQ09PUkQx
RFBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGRvdWJsZSBzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TE1VTFRJVEVYQ09PUkQxRFZQUk9DKSAoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xkb3VibGUgKnYp
Owp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDFGUFJPQykgKEdMZW51bSB0YXJn
ZXQsIEdMZmxvYXQgcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xNVUxUSVRFWENPT1JEMUZWUFJP
QykgKEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMTVVMVElURVhDT09SRDFJUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMaW50IHMpOwp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDFJVlBST0MpIChHTGVudW0gdGFyZ2V0LCBjb25z
dCBHTGludCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xNVUxUSVRFWENPT1JEMVNQUk9DKSAo
R0xlbnVtIHRhcmdldCwgR0xzaG9ydCBzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVY
Q09PUkQxU1ZQUk9DKSAoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xzaG9ydCAqdik7CnR5cGVkZWYg
dm9pZCAoICogUEZOR0xNVUxUSVRFWENPT1JEMkRQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xkb3Vi
bGUgcywgR0xkb3VibGUgdCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xNVUxUSVRFWENPT1JEMkRW
UFJPQykgKEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMZG91YmxlICp2KTsKdHlwZWRlZiB2b2lkICgg
KiBQRk5HTE1VTFRJVEVYQ09PUkQyRlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGZsb2F0IHMsIEdM
ZmxvYXQgdCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xNVUxUSVRFWENPT1JEMkZWUFJPQykgKEdM
ZW51bSB0YXJnZXQsIGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVM
VElURVhDT09SRDJJUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMaW50IHMsIEdMaW50IHQpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDJJVlBST0MpIChHTGVudW0gdGFyZ2V0LCBj
b25zdCBHTGludCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xNVUxUSVRFWENPT1JEMlNQUk9D
KSAoR0xlbnVtIHRhcmdldCwgR0xzaG9ydCBzLCBHTHNob3J0IHQpOwp0eXBlZGVmIHZvaWQgKCAq
IFBGTkdMTVVMVElURVhDT09SRDJTVlBST0MpIChHTGVudW0gdGFyZ2V0LCBjb25zdCBHTHNob3J0
ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVYQ09PUkQzRFBST0MpIChHTGVudW0g
dGFyZ2V0LCBHTGRvdWJsZSBzLCBHTGRvdWJsZSB0LCBHTGRvdWJsZSByKTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTE1VTFRJVEVYQ09PUkQzRFZQUk9DKSAoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xk
b3VibGUgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDNGUFJPQykgKEdM
ZW51bSB0YXJnZXQsIEdMZmxvYXQgcywgR0xmbG9hdCB0LCBHTGZsb2F0IHIpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDNGVlBST0MpIChHTGVudW0gdGFyZ2V0LCBjb25zdCBH
TGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVYQ09PUkQzSVBST0MpIChH
TGVudW0gdGFyZ2V0LCBHTGludCBzLCBHTGludCB0LCBHTGludCByKTsKdHlwZWRlZiB2b2lkICgg
KiBQRk5HTE1VTFRJVEVYQ09PUkQzSVZQUk9DKSAoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xpbnQg
KnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDNTUFJPQykgKEdMZW51bSB0
YXJnZXQsIEdMc2hvcnQgcywgR0xzaG9ydCB0LCBHTHNob3J0IHIpOwp0eXBlZGVmIHZvaWQgKCAq
IFBGTkdMTVVMVElURVhDT09SRDNTVlBST0MpIChHTGVudW0gdGFyZ2V0LCBjb25zdCBHTHNob3J0
ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVYQ09PUkQ0RFBST0MpIChHTGVudW0g
dGFyZ2V0LCBHTGRvdWJsZSBzLCBHTGRvdWJsZSB0LCBHTGRvdWJsZSByLCBHTGRvdWJsZSBxKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVYQ09PUkQ0RFZQUk9DKSAoR0xlbnVtIHRhcmdl
dCwgY29uc3QgR0xkb3VibGUgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09S
RDRGUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZmxvYXQgcywgR0xmbG9hdCB0LCBHTGZsb2F0IHIs
IEdMZmxvYXQgcSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xNVUxUSVRFWENPT1JENEZWUFJPQykg
KEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
TVVMVElURVhDT09SRDRJUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMaW50IHMsIEdMaW50IHQsIEdM
aW50IHIsIEdMaW50IHEpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDRJVlBS
T0MpIChHTGVudW0gdGFyZ2V0LCBjb25zdCBHTGludCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZO
R0xNVUxUSVRFWENPT1JENFNQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xzaG9ydCBzLCBHTHNob3J0
IHQsIEdMc2hvcnQgciwgR0xzaG9ydCBxKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVY
Q09PUkQ0U1ZQUk9DKSAoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xzaG9ydCAqdik7CnR5cGVkZWYg
dm9pZCAoICogUEZOR0xMT0FEVFJBTlNQT1NFTUFUUklYRlBST0MpIChjb25zdCBHTGZsb2F0ICpt
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTExPQURUUkFOU1BPU0VNQVRSSVhEUFJPQykgKGNvbnN0
IEdMZG91YmxlICptKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRUUkFOU1BPU0VNQVRSSVhG
UFJPQykgKGNvbnN0IEdMZmxvYXQgKm0pOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVFRSQU5T
UE9TRU1BVFJJWERQUk9DKSAoY29uc3QgR0xkb3VibGUgKm0pOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMU0FNUExFQ09WRVJBR0VQUk9DKSAoR0xjbGFtcGYgdmFsdWUsIEdMYm9vbGVhbiBpbnZlcnQp
Owp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09NUFJFU1NFRFRFWElNQUdFM0RQUk9DKSAoR0xlbnVt
IHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0
aCwgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgR0xzaXplaSBp
bWFnZVNpemUsIGNvbnN0IEdMdm9pZCAqZGF0YSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT01Q
UkVTU0VEVEVYSU1BR0UyRFBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVt
IGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9y
ZGVyLCBHTHNpemVpIGltYWdlU2l6ZSwgY29uc3QgR0x2b2lkICpkYXRhKTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTENPTVBSRVNTRURURVhJTUFHRTFEUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMaW50
IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMaW50IGJvcmRl
ciwgR0xzaXplaSBpbWFnZVNpemUsIGNvbnN0IEdMdm9pZCAqZGF0YSk7CnR5cGVkZWYgdm9pZCAo
ICogUEZOR0xDT01QUkVTU0VEVEVYU1VCSU1BR0UzRFBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGlu
dCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xpbnQgem9mZnNldCwgR0xz
aXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgsIEdMZW51bSBmb3JtYXQs
IEdMc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCBHTHZvaWQgKmRhdGEpOwp0eXBlZGVmIHZvaWQgKCAq
IFBGTkdMQ09NUFJFU1NFRFRFWFNVQklNQUdFMkRQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xpbnQg
bGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6
ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTHNpemVpIGltYWdlU2l6ZSwgY29uc3QgR0x2b2lk
ICpkYXRhKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTENPTVBSRVNTRURURVhTVUJJTUFHRTFEUFJP
QykgKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTHNpemVpIHdp
ZHRoLCBHTGVudW0gZm9ybWF0LCBHTHNpemVpIGltYWdlU2l6ZSwgY29uc3QgR0x2b2lkICpkYXRh
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVENPTVBSRVNTRURURVhJTUFHRVBST0MpIChHTGVu
dW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgdm9pZCAqaW1nKTsKIyAyMDQzICIuLi9pbmNsdWRlL0dM
L2dsLmgiCmV4dGVybiB2b2lkIGdsQWN0aXZlVGV4dHVyZUFSQihHTGVudW0gdGV4dHVyZSk7CmV4
dGVybiB2b2lkIGdsQ2xpZW50QWN0aXZlVGV4dHVyZUFSQihHTGVudW0gdGV4dHVyZSk7CmV4dGVy
biB2b2lkIGdsTXVsdGlUZXhDb29yZDFkQVJCKEdMZW51bSB0YXJnZXQsIEdMZG91YmxlIHMpOwpl
eHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQxZHZBUkIoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xk
b3VibGUgKnYpOwpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQxZkFSQihHTGVudW0gdGFyZ2V0
LCBHTGZsb2F0IHMpOwpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQxZnZBUkIoR0xlbnVtIHRh
cmdldCwgY29uc3QgR0xmbG9hdCAqdik7CmV4dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDFpQVJC
KEdMZW51bSB0YXJnZXQsIEdMaW50IHMpOwpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQxaXZB
UkIoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xpbnQgKnYpOwpleHRlcm4gdm9pZCBnbE11bHRpVGV4
Q29vcmQxc0FSQihHTGVudW0gdGFyZ2V0LCBHTHNob3J0IHMpOwpleHRlcm4gdm9pZCBnbE11bHRp
VGV4Q29vcmQxc3ZBUkIoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xzaG9ydCAqdik7CmV4dGVybiB2
b2lkIGdsTXVsdGlUZXhDb29yZDJkQVJCKEdMZW51bSB0YXJnZXQsIEdMZG91YmxlIHMsIEdMZG91
YmxlIHQpOwpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQyZHZBUkIoR0xlbnVtIHRhcmdldCwg
Y29uc3QgR0xkb3VibGUgKnYpOwpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQyZkFSQihHTGVu
dW0gdGFyZ2V0LCBHTGZsb2F0IHMsIEdMZmxvYXQgdCk7CmV4dGVybiB2b2lkIGdsTXVsdGlUZXhD
b29yZDJmdkFSQihHTGVudW0gdGFyZ2V0LCBjb25zdCBHTGZsb2F0ICp2KTsKZXh0ZXJuIHZvaWQg
Z2xNdWx0aVRleENvb3JkMmlBUkIoR0xlbnVtIHRhcmdldCwgR0xpbnQgcywgR0xpbnQgdCk7CmV4
dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDJpdkFSQihHTGVudW0gdGFyZ2V0LCBjb25zdCBHTGlu
dCAqdik7CmV4dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDJzQVJCKEdMZW51bSB0YXJnZXQsIEdM
c2hvcnQgcywgR0xzaG9ydCB0KTsKZXh0ZXJuIHZvaWQgZ2xNdWx0aVRleENvb3JkMnN2QVJCKEdM
ZW51bSB0YXJnZXQsIGNvbnN0IEdMc2hvcnQgKnYpOwpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29v
cmQzZEFSQihHTGVudW0gdGFyZ2V0LCBHTGRvdWJsZSBzLCBHTGRvdWJsZSB0LCBHTGRvdWJsZSBy
KTsKZXh0ZXJuIHZvaWQgZ2xNdWx0aVRleENvb3JkM2R2QVJCKEdMZW51bSB0YXJnZXQsIGNvbnN0
IEdMZG91YmxlICp2KTsKZXh0ZXJuIHZvaWQgZ2xNdWx0aVRleENvb3JkM2ZBUkIoR0xlbnVtIHRh
cmdldCwgR0xmbG9hdCBzLCBHTGZsb2F0IHQsIEdMZmxvYXQgcik7CmV4dGVybiB2b2lkIGdsTXVs
dGlUZXhDb29yZDNmdkFSQihHTGVudW0gdGFyZ2V0LCBjb25zdCBHTGZsb2F0ICp2KTsKZXh0ZXJu
IHZvaWQgZ2xNdWx0aVRleENvb3JkM2lBUkIoR0xlbnVtIHRhcmdldCwgR0xpbnQgcywgR0xpbnQg
dCwgR0xpbnQgcik7CmV4dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDNpdkFSQihHTGVudW0gdGFy
Z2V0LCBjb25zdCBHTGludCAqdik7CmV4dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDNzQVJCKEdM
ZW51bSB0YXJnZXQsIEdMc2hvcnQgcywgR0xzaG9ydCB0LCBHTHNob3J0IHIpOwpleHRlcm4gdm9p
ZCBnbE11bHRpVGV4Q29vcmQzc3ZBUkIoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xzaG9ydCAqdik7
CmV4dGVybiB2b2lkIGdsTXVsdGlUZXhDb29yZDRkQVJCKEdMZW51bSB0YXJnZXQsIEdMZG91Ymxl
IHMsIEdMZG91YmxlIHQsIEdMZG91YmxlIHIsIEdMZG91YmxlIHEpOwpleHRlcm4gdm9pZCBnbE11
bHRpVGV4Q29vcmQ0ZHZBUkIoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xkb3VibGUgKnYpOwpleHRl
cm4gdm9pZCBnbE11bHRpVGV4Q29vcmQ0ZkFSQihHTGVudW0gdGFyZ2V0LCBHTGZsb2F0IHMsIEdM
ZmxvYXQgdCwgR0xmbG9hdCByLCBHTGZsb2F0IHEpOwpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29v
cmQ0ZnZBUkIoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xmbG9hdCAqdik7CmV4dGVybiB2b2lkIGds
TXVsdGlUZXhDb29yZDRpQVJCKEdMZW51bSB0YXJnZXQsIEdMaW50IHMsIEdMaW50IHQsIEdMaW50
IHIsIEdMaW50IHEpOwpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQ0aXZBUkIoR0xlbnVtIHRh
cmdldCwgY29uc3QgR0xpbnQgKnYpOwpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQ0c0FSQihH
TGVudW0gdGFyZ2V0LCBHTHNob3J0IHMsIEdMc2hvcnQgdCwgR0xzaG9ydCByLCBHTHNob3J0IHEp
OwpleHRlcm4gdm9pZCBnbE11bHRpVGV4Q29vcmQ0c3ZBUkIoR0xlbnVtIHRhcmdldCwgY29uc3Qg
R0xzaG9ydCAqdik7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQUNUSVZFVEVYVFVSRUFSQlBST0Mp
IChHTGVudW0gdGV4dHVyZSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDTElFTlRBQ1RJVkVURVhU
VVJFQVJCUFJPQykgKEdMZW51bSB0ZXh0dXJlKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJ
VEVYQ09PUkQxREFSQlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGRvdWJsZSBzKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTE1VTFRJVEVYQ09PUkQxRFZBUkJQUk9DKSAoR0xlbnVtIHRhcmdldCwgY29u
c3QgR0xkb3VibGUgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDFGQVJC
UFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZmxvYXQgcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xN
VUxUSVRFWENPT1JEMUZWQVJCUFJPQykgKEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMZmxvYXQgKnYp
Owp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDFJQVJCUFJPQykgKEdMZW51bSB0
YXJnZXQsIEdMaW50IHMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDFJVkFS
QlBST0MpIChHTGVudW0gdGFyZ2V0LCBjb25zdCBHTGludCAqdik7CnR5cGVkZWYgdm9pZCAoICog
UEZOR0xNVUxUSVRFWENPT1JEMVNBUkJQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xzaG9ydCBzKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVYQ09PUkQxU1ZBUkJQUk9DKSAoR0xlbnVtIHRh
cmdldCwgY29uc3QgR0xzaG9ydCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xNVUxUSVRFWENP
T1JEMkRBUkJQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xkb3VibGUgcywgR0xkb3VibGUgdCk7CnR5
cGVkZWYgdm9pZCAoICogUEZOR0xNVUxUSVRFWENPT1JEMkRWQVJCUFJPQykgKEdMZW51bSB0YXJn
ZXQsIGNvbnN0IEdMZG91YmxlICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVYQ09P
UkQyRkFSQlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGZsb2F0IHMsIEdMZmxvYXQgdCk7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xNVUxUSVRFWENPT1JEMkZWQVJCUFJPQykgKEdMZW51bSB0YXJnZXQs
IGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDJJ
QVJCUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMaW50IHMsIEdMaW50IHQpOwp0eXBlZGVmIHZvaWQg
KCAqIFBGTkdMTVVMVElURVhDT09SRDJJVkFSQlBST0MpIChHTGVudW0gdGFyZ2V0LCBjb25zdCBH
TGludCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xNVUxUSVRFWENPT1JEMlNBUkJQUk9DKSAo
R0xlbnVtIHRhcmdldCwgR0xzaG9ydCBzLCBHTHNob3J0IHQpOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMTVVMVElURVhDT09SRDJTVkFSQlBST0MpIChHTGVudW0gdGFyZ2V0LCBjb25zdCBHTHNob3J0
ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVYQ09PUkQzREFSQlBST0MpIChHTGVu
dW0gdGFyZ2V0LCBHTGRvdWJsZSBzLCBHTGRvdWJsZSB0LCBHTGRvdWJsZSByKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTE1VTFRJVEVYQ09PUkQzRFZBUkJQUk9DKSAoR0xlbnVtIHRhcmdldCwgY29u
c3QgR0xkb3VibGUgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDNGQVJC
UFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZmxvYXQgcywgR0xmbG9hdCB0LCBHTGZsb2F0IHIpOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDNGVkFSQlBST0MpIChHTGVudW0gdGFy
Z2V0LCBjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVYQ09P
UkQzSUFSQlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGludCBzLCBHTGludCB0LCBHTGludCByKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVYQ09PUkQzSVZBUkJQUk9DKSAoR0xlbnVtIHRh
cmdldCwgY29uc3QgR0xpbnQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09S
RDNTQVJCUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMc2hvcnQgcywgR0xzaG9ydCB0LCBHTHNob3J0
IHIpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDNTVkFSQlBST0MpIChHTGVu
dW0gdGFyZ2V0LCBjb25zdCBHTHNob3J0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJ
VEVYQ09PUkQ0REFSQlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGRvdWJsZSBzLCBHTGRvdWJsZSB0
LCBHTGRvdWJsZSByLCBHTGRvdWJsZSBxKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVY
Q09PUkQ0RFZBUkJQUk9DKSAoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xkb3VibGUgKnYpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDRGQVJCUFJPQykgKEdMZW51bSB0YXJnZXQs
IEdMZmxvYXQgcywgR0xmbG9hdCB0LCBHTGZsb2F0IHIsIEdMZmxvYXQgcSk7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xNVUxUSVRFWENPT1JENEZWQVJCUFJPQykgKEdMZW51bSB0YXJnZXQsIGNvbnN0
IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDRJQVJCUFJP
QykgKEdMZW51bSB0YXJnZXQsIEdMaW50IHMsIEdMaW50IHQsIEdMaW50IHIsIEdMaW50IHEpOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElURVhDT09SRDRJVkFSQlBST0MpIChHTGVudW0gdGFy
Z2V0LCBjb25zdCBHTGludCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xNVUxUSVRFWENPT1JE
NFNBUkJQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xzaG9ydCBzLCBHTHNob3J0IHQsIEdMc2hvcnQg
ciwgR0xzaG9ydCBxKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJVEVYQ09PUkQ0U1ZBUkJQ
Uk9DKSAoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xzaG9ydCAqdik7CiMgMjU1NyAiLi4vaW5jbHVk
ZS9HTC9nbC5oIgojIDEgIi4uL2luY2x1ZGUvR0wvZ2xleHQuaCIgMQojIDI2MTIgIi4uL2luY2x1
ZGUvR0wvZ2xleHQuaCIKZXh0ZXJuIHZvaWQgZ2xCbGVuZEZ1bmNTZXBhcmF0ZSAoR0xlbnVtLCBH
TGVudW0sIEdMZW51bSwgR0xlbnVtKTsKZXh0ZXJuIHZvaWQgZ2xGb2dDb29yZGYgKEdMZmxvYXQp
OwpleHRlcm4gdm9pZCBnbEZvZ0Nvb3JkZnYgKGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lk
IGdsRm9nQ29vcmRkIChHTGRvdWJsZSk7CmV4dGVybiB2b2lkIGdsRm9nQ29vcmRkdiAoY29uc3Qg
R0xkb3VibGUgKik7CmV4dGVybiB2b2lkIGdsRm9nQ29vcmRQb2ludGVyIChHTGVudW0sIEdMc2l6
ZWksIGNvbnN0IEdMdm9pZCAqKTsKZXh0ZXJuIHZvaWQgZ2xNdWx0aURyYXdBcnJheXMgKEdMZW51
bSwgR0xpbnQgKiwgR0xzaXplaSAqLCBHTHNpemVpKTsKZXh0ZXJuIHZvaWQgZ2xNdWx0aURyYXdF
bGVtZW50cyAoR0xlbnVtLCBjb25zdCBHTHNpemVpICosIEdMZW51bSwgY29uc3QgR0x2b2lkKiAq
LCBHTHNpemVpKTsKZXh0ZXJuIHZvaWQgZ2xQb2ludFBhcmFtZXRlcmYgKEdMZW51bSwgR0xmbG9h
dCk7CmV4dGVybiB2b2lkIGdsUG9pbnRQYXJhbWV0ZXJmdiAoR0xlbnVtLCBjb25zdCBHTGZsb2F0
ICopOwpleHRlcm4gdm9pZCBnbFBvaW50UGFyYW1ldGVyaSAoR0xlbnVtLCBHTGludCk7CmV4dGVy
biB2b2lkIGdsUG9pbnRQYXJhbWV0ZXJpdiAoR0xlbnVtLCBjb25zdCBHTGludCAqKTsKZXh0ZXJu
IHZvaWQgZ2xTZWNvbmRhcnlDb2xvcjNiIChHTGJ5dGUsIEdMYnl0ZSwgR0xieXRlKTsKZXh0ZXJu
IHZvaWQgZ2xTZWNvbmRhcnlDb2xvcjNidiAoY29uc3QgR0xieXRlICopOwpleHRlcm4gdm9pZCBn
bFNlY29uZGFyeUNvbG9yM2QgKEdMZG91YmxlLCBHTGRvdWJsZSwgR0xkb3VibGUpOwpleHRlcm4g
dm9pZCBnbFNlY29uZGFyeUNvbG9yM2R2IChjb25zdCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQg
Z2xTZWNvbmRhcnlDb2xvcjNmIChHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0KTsKZXh0ZXJuIHZv
aWQgZ2xTZWNvbmRhcnlDb2xvcjNmdiAoY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xT
ZWNvbmRhcnlDb2xvcjNpIChHTGludCwgR0xpbnQsIEdMaW50KTsKZXh0ZXJuIHZvaWQgZ2xTZWNv
bmRhcnlDb2xvcjNpdiAoY29uc3QgR0xpbnQgKik7CmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5Q29s
b3IzcyAoR0xzaG9ydCwgR0xzaG9ydCwgR0xzaG9ydCk7CmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5
Q29sb3Izc3YgKGNvbnN0IEdMc2hvcnQgKik7CmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5Q29sb3Iz
dWIgKEdMdWJ5dGUsIEdMdWJ5dGUsIEdMdWJ5dGUpOwpleHRlcm4gdm9pZCBnbFNlY29uZGFyeUNv
bG9yM3VidiAoY29uc3QgR0x1Ynl0ZSAqKTsKZXh0ZXJuIHZvaWQgZ2xTZWNvbmRhcnlDb2xvcjN1
aSAoR0x1aW50LCBHTHVpbnQsIEdMdWludCk7CmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5Q29sb3Iz
dWl2IChjb25zdCBHTHVpbnQgKik7CmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5Q29sb3IzdXMgKEdM
dXNob3J0LCBHTHVzaG9ydCwgR0x1c2hvcnQpOwpleHRlcm4gdm9pZCBnbFNlY29uZGFyeUNvbG9y
M3VzdiAoY29uc3QgR0x1c2hvcnQgKik7CmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5Q29sb3JQb2lu
dGVyIChHTGludCwgR0xlbnVtLCBHTHNpemVpLCBjb25zdCBHTHZvaWQgKik7CmV4dGVybiB2b2lk
IGdsV2luZG93UG9zMmQgKEdMZG91YmxlLCBHTGRvdWJsZSk7CmV4dGVybiB2b2lkIGdsV2luZG93
UG9zMmR2IChjb25zdCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3MyZiAoR0xm
bG9hdCwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsV2luZG93UG9zMmZ2IChjb25zdCBHTGZsb2F0
ICopOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczJpIChHTGludCwgR0xpbnQpOwpleHRlcm4gdm9p
ZCBnbFdpbmRvd1BvczJpdiAoY29uc3QgR0xpbnQgKik7CmV4dGVybiB2b2lkIGdsV2luZG93UG9z
MnMgKEdMc2hvcnQsIEdMc2hvcnQpOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczJzdiAoY29uc3Qg
R0xzaG9ydCAqKTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3MzZCAoR0xkb3VibGUsIEdMZG91Ymxl
LCBHTGRvdWJsZSk7CmV4dGVybiB2b2lkIGdsV2luZG93UG9zM2R2IChjb25zdCBHTGRvdWJsZSAq
KTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3MzZiAoR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCk7
CmV4dGVybiB2b2lkIGdsV2luZG93UG9zM2Z2IChjb25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9p
ZCBnbFdpbmRvd1BvczNpIChHTGludCwgR0xpbnQsIEdMaW50KTsKZXh0ZXJuIHZvaWQgZ2xXaW5k
b3dQb3MzaXYgKGNvbnN0IEdMaW50ICopOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczNzIChHTHNo
b3J0LCBHTHNob3J0LCBHTHNob3J0KTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3Mzc3YgKGNvbnN0
IEdMc2hvcnQgKik7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQkxFTkRGVU5DU0VQQVJBVEVQUk9D
KSAoR0xlbnVtIHNmYWN0b3JSR0IsIEdMZW51bSBkZmFjdG9yUkdCLCBHTGVudW0gc2ZhY3RvckFs
cGhhLCBHTGVudW0gZGZhY3RvckFscGhhKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEZPR0NPT1JE
RlBST0MpIChHTGZsb2F0IGNvb3JkKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEZPR0NPT1JERlZQ
Uk9DKSAoY29uc3QgR0xmbG9hdCAqY29vcmQpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMRk9HQ09P
UkREUFJPQykgKEdMZG91YmxlIGNvb3JkKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEZPR0NPT1JE
RFZQUk9DKSAoY29uc3QgR0xkb3VibGUgKmNvb3JkKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEZP
R0NPT1JEUE9JTlRFUlBST0MpIChHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUsIGNvbnN0IEdM
dm9pZCAqcG9pbnRlcik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xNVUxUSURSQVdBUlJBWVNQUk9D
KSAoR0xlbnVtIG1vZGUsIEdMaW50ICpmaXJzdCwgR0xzaXplaSAqY291bnQsIEdMc2l6ZWkgcHJp
bWNvdW50KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJRFJBV0VMRU1FTlRTUFJPQykgKEdM
ZW51bSBtb2RlLCBjb25zdCBHTHNpemVpICpjb3VudCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9p
ZCogKmluZGljZXMsIEdMc2l6ZWkgcHJpbWNvdW50KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFBP
SU5UUEFSQU1FVEVSRlBST0MpIChHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOwp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMUE9JTlRQQVJBTUVURVJGVlBST0MpIChHTGVudW0gcG5hbWUsIGNvbnN0
IEdMZmxvYXQgKnBhcmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xQT0lOVFBBUkFNRVRFUklQ
Uk9DKSAoR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xQ
T0lOVFBBUkFNRVRFUklWUFJPQykgKEdMZW51bSBwbmFtZSwgY29uc3QgR0xpbnQgKnBhcmFtcyk7
CnR5cGVkZWYgdm9pZCAoICogUEZOR0xTRUNPTkRBUllDT0xPUjNCUFJPQykgKEdMYnl0ZSByZWQs
IEdMYnl0ZSBncmVlbiwgR0xieXRlIGJsdWUpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMU0VDT05E
QVJZQ09MT1IzQlZQUk9DKSAoY29uc3QgR0xieXRlICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TFNFQ09OREFSWUNPTE9SM0RQUk9DKSAoR0xkb3VibGUgcmVkLCBHTGRvdWJsZSBncmVlbiwgR0xk
b3VibGUgYmx1ZSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xTRUNPTkRBUllDT0xPUjNEVlBST0Mp
IChjb25zdCBHTGRvdWJsZSAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xTRUNPTkRBUllDT0xP
UjNGUFJPQykgKEdMZmxvYXQgcmVkLCBHTGZsb2F0IGdyZWVuLCBHTGZsb2F0IGJsdWUpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMU0VDT05EQVJZQ09MT1IzRlZQUk9DKSAoY29uc3QgR0xmbG9hdCAq
dik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xTRUNPTkRBUllDT0xPUjNJUFJPQykgKEdMaW50IHJl
ZCwgR0xpbnQgZ3JlZW4sIEdMaW50IGJsdWUpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMU0VDT05E
QVJZQ09MT1IzSVZQUk9DKSAoY29uc3QgR0xpbnQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
U0VDT05EQVJZQ09MT1IzU1BST0MpIChHTHNob3J0IHJlZCwgR0xzaG9ydCBncmVlbiwgR0xzaG9y
dCBibHVlKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNFQ09OREFSWUNPTE9SM1NWUFJPQykgKGNv
bnN0IEdMc2hvcnQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMU0VDT05EQVJZQ09MT1IzVUJQ
Uk9DKSAoR0x1Ynl0ZSByZWQsIEdMdWJ5dGUgZ3JlZW4sIEdMdWJ5dGUgYmx1ZSk7CnR5cGVkZWYg
dm9pZCAoICogUEZOR0xTRUNPTkRBUllDT0xPUjNVQlZQUk9DKSAoY29uc3QgR0x1Ynl0ZSAqdik7
CnR5cGVkZWYgdm9pZCAoICogUEZOR0xTRUNPTkRBUllDT0xPUjNVSVBST0MpIChHTHVpbnQgcmVk
LCBHTHVpbnQgZ3JlZW4sIEdMdWludCBibHVlKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNFQ09O
REFSWUNPTE9SM1VJVlBST0MpIChjb25zdCBHTHVpbnQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMU0VDT05EQVJZQ09MT1IzVVNQUk9DKSAoR0x1c2hvcnQgcmVkLCBHTHVzaG9ydCBncmVlbiwg
R0x1c2hvcnQgYmx1ZSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xTRUNPTkRBUllDT0xPUjNVU1ZQ
Uk9DKSAoY29uc3QgR0x1c2hvcnQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMU0VDT05EQVJZ
Q09MT1JQT0lOVEVSUFJPQykgKEdMaW50IHNpemUsIEdMZW51bSB0eXBlLCBHTHNpemVpIHN0cmlk
ZSwgY29uc3QgR0x2b2lkICpwb2ludGVyKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFdJTkRPV1BP
UzJEUFJPQykgKEdMZG91YmxlIHgsIEdMZG91YmxlIHkpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
V0lORE9XUE9TMkRWUFJPQykgKGNvbnN0IEdMZG91YmxlICp2KTsKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTFdJTkRPV1BPUzJGUFJPQykgKEdMZmxvYXQgeCwgR0xmbG9hdCB5KTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTFdJTkRPV1BPUzJGVlBST0MpIChjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTFdJTkRPV1BPUzJJUFJPQykgKEdMaW50IHgsIEdMaW50IHkpOwp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMV0lORE9XUE9TMklWUFJPQykgKGNvbnN0IEdMaW50ICp2KTsKdHlwZWRl
ZiB2b2lkICggKiBQRk5HTFdJTkRPV1BPUzJTUFJPQykgKEdMc2hvcnQgeCwgR0xzaG9ydCB5KTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTFdJTkRPV1BPUzJTVlBST0MpIChjb25zdCBHTHNob3J0ICp2
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFdJTkRPV1BPUzNEUFJPQykgKEdMZG91YmxlIHgsIEdM
ZG91YmxlIHksIEdMZG91YmxlIHopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMV0lORE9XUE9TM0RW
UFJPQykgKGNvbnN0IEdMZG91YmxlICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFdJTkRPV1BP
UzNGUFJPQykgKEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0IHopOwp0eXBlZGVmIHZvaWQg
KCAqIFBGTkdMV0lORE9XUE9TM0ZWUFJPQykgKGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMV0lORE9XUE9TM0lQUk9DKSAoR0xpbnQgeCwgR0xpbnQgeSwgR0xpbnQgeik7
CnR5cGVkZWYgdm9pZCAoICogUEZOR0xXSU5ET1dQT1MzSVZQUk9DKSAoY29uc3QgR0xpbnQgKnYp
Owp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMV0lORE9XUE9TM1NQUk9DKSAoR0xzaG9ydCB4LCBHTHNo
b3J0IHksIEdMc2hvcnQgeik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xXSU5ET1dQT1MzU1ZQUk9D
KSAoY29uc3QgR0xzaG9ydCAqdik7CiMgMjc4MiAiLi4vaW5jbHVkZS9HTC9nbGV4dC5oIgpleHRl
cm4gdm9pZCBnbExvYWRUcmFuc3Bvc2VNYXRyaXhmQVJCIChjb25zdCBHTGZsb2F0ICopOwpleHRl
cm4gdm9pZCBnbExvYWRUcmFuc3Bvc2VNYXRyaXhkQVJCIChjb25zdCBHTGRvdWJsZSAqKTsKZXh0
ZXJuIHZvaWQgZ2xNdWx0VHJhbnNwb3NlTWF0cml4ZkFSQiAoY29uc3QgR0xmbG9hdCAqKTsKZXh0
ZXJuIHZvaWQgZ2xNdWx0VHJhbnNwb3NlTWF0cml4ZEFSQiAoY29uc3QgR0xkb3VibGUgKik7Cgp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMTE9BRFRSQU5TUE9TRU1BVFJJWEZBUkJQUk9DKSAoY29uc3Qg
R0xmbG9hdCAqbSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xMT0FEVFJBTlNQT1NFTUFUUklYREFS
QlBST0MpIChjb25zdCBHTGRvdWJsZSAqbSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xNVUxUVFJB
TlNQT1NFTUFUUklYRkFSQlBST0MpIChjb25zdCBHTGZsb2F0ICptKTsKdHlwZWRlZiB2b2lkICgg
KiBQRk5HTE1VTFRUUkFOU1BPU0VNQVRSSVhEQVJCUFJPQykgKGNvbnN0IEdMZG91YmxlICptKTsK
CgoKCgpleHRlcm4gdm9pZCBnbFNhbXBsZUNvdmVyYWdlQVJCIChHTGNsYW1wZiwgR0xib29sZWFu
KTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xTQU1QTEVDT1ZFUkFHRUFSQlBST0MpIChHTGNsYW1w
ZiB2YWx1ZSwgR0xib29sZWFuIGludmVydCk7CiMgMjgxMiAiLi4vaW5jbHVkZS9HTC9nbGV4dC5o
IgpleHRlcm4gdm9pZCBnbENvbXByZXNzZWRUZXhJbWFnZTNEQVJCIChHTGVudW0sIEdMaW50LCBH
TGVudW0sIEdMc2l6ZWksIEdMc2l6ZWksIEdMc2l6ZWksIEdMaW50LCBHTHNpemVpLCBjb25zdCBH
THZvaWQgKik7CmV4dGVybiB2b2lkIGdsQ29tcHJlc3NlZFRleEltYWdlMkRBUkIgKEdMZW51bSwg
R0xpbnQsIEdMZW51bSwgR0xzaXplaSwgR0xzaXplaSwgR0xpbnQsIEdMc2l6ZWksIGNvbnN0IEdM
dm9pZCAqKTsKZXh0ZXJuIHZvaWQgZ2xDb21wcmVzc2VkVGV4SW1hZ2UxREFSQiAoR0xlbnVtLCBH
TGludCwgR0xlbnVtLCBHTHNpemVpLCBHTGludCwgR0xzaXplaSwgY29uc3QgR0x2b2lkICopOwpl
eHRlcm4gdm9pZCBnbENvbXByZXNzZWRUZXhTdWJJbWFnZTNEQVJCIChHTGVudW0sIEdMaW50LCBH
TGludCwgR0xpbnQsIEdMaW50LCBHTHNpemVpLCBHTHNpemVpLCBHTHNpemVpLCBHTGVudW0sIEdM
c2l6ZWksIGNvbnN0IEdMdm9pZCAqKTsKZXh0ZXJuIHZvaWQgZ2xDb21wcmVzc2VkVGV4U3ViSW1h
Z2UyREFSQiAoR0xlbnVtLCBHTGludCwgR0xpbnQsIEdMaW50LCBHTHNpemVpLCBHTHNpemVpLCBH
TGVudW0sIEdMc2l6ZWksIGNvbnN0IEdMdm9pZCAqKTsKZXh0ZXJuIHZvaWQgZ2xDb21wcmVzc2Vk
VGV4U3ViSW1hZ2UxREFSQiAoR0xlbnVtLCBHTGludCwgR0xpbnQsIEdMc2l6ZWksIEdMZW51bSwg
R0xzaXplaSwgY29uc3QgR0x2b2lkICopOwpleHRlcm4gdm9pZCBnbEdldENvbXByZXNzZWRUZXhJ
bWFnZUFSQiAoR0xlbnVtLCBHTGludCwgdm9pZCAqKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xD
T01QUkVTU0VEVEVYSU1BR0UzREFSQlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwg
R0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xz
aXplaSBkZXB0aCwgR0xpbnQgYm9yZGVyLCBHTHNpemVpIGltYWdlU2l6ZSwgY29uc3QgR0x2b2lk
ICpkYXRhKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTENPTVBSRVNTRURURVhJTUFHRTJEQVJCUFJP
QykgKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdM
c2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGludCBib3JkZXIsIEdMc2l6ZWkgaW1hZ2VT
aXplLCBjb25zdCBHTHZvaWQgKmRhdGEpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09NUFJFU1NF
RFRFWElNQUdFMURBUkJQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xpbnQgYm9yZGVyLCBHTHNpemVpIGltYWdl
U2l6ZSwgY29uc3QgR0x2b2lkICpkYXRhKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTENPTVBSRVNT
RURURVhTVUJJTUFHRTNEQVJCUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGlu
dCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTGludCB6b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBH
THNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xlbnVtIGZvcm1hdCwgR0xzaXplaSBpbWFn
ZVNpemUsIGNvbnN0IEdMdm9pZCAqZGF0YSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT01QUkVT
U0VEVEVYU1VCSU1BR0UyREFSQlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xp
bnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQs
IEdMZW51bSBmb3JtYXQsIEdMc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCBHTHZvaWQgKmRhdGEpOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09NUFJFU1NFRFRFWFNVQklNQUdFMURBUkJQUk9DKSAoR0xl
bnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsIEdM
ZW51bSBmb3JtYXQsIEdMc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCBHTHZvaWQgKmRhdGEpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMR0VUQ09NUFJFU1NFRFRFWElNQUdFQVJCUFJPQykgKEdMZW51bSB0
YXJnZXQsIEdMaW50IGxldmVsLCB2b2lkICppbWcpOwojIDI4MzYgIi4uL2luY2x1ZGUvR0wvZ2xl
eHQuaCIKZXh0ZXJuIHZvaWQgZ2xQb2ludFBhcmFtZXRlcmZBUkIgKEdMZW51bSwgR0xmbG9hdCk7
CmV4dGVybiB2b2lkIGdsUG9pbnRQYXJhbWV0ZXJmdkFSQiAoR0xlbnVtLCBjb25zdCBHTGZsb2F0
ICopOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTFBPSU5UUEFSQU1FVEVSRkFSQlBST0MpIChHTGVu
dW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMUE9JTlRQQVJB
TUVURVJGVkFSQlBST0MpIChHTGVudW0gcG5hbWUsIGNvbnN0IEdMZmxvYXQgKnBhcmFtcyk7CgoK
CgoKZXh0ZXJuIHZvaWQgZ2xXZWlnaHRidkFSQiAoR0xpbnQsIGNvbnN0IEdMYnl0ZSAqKTsKZXh0
ZXJuIHZvaWQgZ2xXZWlnaHRzdkFSQiAoR0xpbnQsIGNvbnN0IEdMc2hvcnQgKik7CmV4dGVybiB2
b2lkIGdsV2VpZ2h0aXZBUkIgKEdMaW50LCBjb25zdCBHTGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xX
ZWlnaHRmdkFSQiAoR0xpbnQsIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsV2VpZ2h0
ZHZBUkIgKEdMaW50LCBjb25zdCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQgZ2xXZWlnaHR1YnZB
UkIgKEdMaW50LCBjb25zdCBHTHVieXRlICopOwpleHRlcm4gdm9pZCBnbFdlaWdodHVzdkFSQiAo
R0xpbnQsIGNvbnN0IEdMdXNob3J0ICopOwpleHRlcm4gdm9pZCBnbFdlaWdodHVpdkFSQiAoR0xp
bnQsIGNvbnN0IEdMdWludCAqKTsKZXh0ZXJuIHZvaWQgZ2xXZWlnaHRQb2ludGVyQVJCIChHTGlu
dCwgR0xlbnVtLCBHTHNpemVpLCBjb25zdCBHTHZvaWQgKik7CmV4dGVybiB2b2lkIGdsVmVydGV4
QmxlbmRBUkIgKEdMaW50KTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xXRUlHSFRCVkFSQlBST0Mp
IChHTGludCBzaXplLCBjb25zdCBHTGJ5dGUgKndlaWdodHMpOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMV0VJR0hUU1ZBUkJQUk9DKSAoR0xpbnQgc2l6ZSwgY29uc3QgR0xzaG9ydCAqd2VpZ2h0cyk7
CnR5cGVkZWYgdm9pZCAoICogUEZOR0xXRUlHSFRJVkFSQlBST0MpIChHTGludCBzaXplLCBjb25z
dCBHTGludCAqd2VpZ2h0cyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xXRUlHSFRGVkFSQlBST0Mp
IChHTGludCBzaXplLCBjb25zdCBHTGZsb2F0ICp3ZWlnaHRzKTsKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTFdFSUdIVERWQVJCUFJPQykgKEdMaW50IHNpemUsIGNvbnN0IEdMZG91YmxlICp3ZWlnaHRz
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFdFSUdIVFVCVkFSQlBST0MpIChHTGludCBzaXplLCBj
b25zdCBHTHVieXRlICp3ZWlnaHRzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFdFSUdIVFVTVkFS
QlBST0MpIChHTGludCBzaXplLCBjb25zdCBHTHVzaG9ydCAqd2VpZ2h0cyk7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xXRUlHSFRVSVZBUkJQUk9DKSAoR0xpbnQgc2l6ZSwgY29uc3QgR0x1aW50ICp3
ZWlnaHRzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFdFSUdIVFBPSU5URVJBUkJQUk9DKSAoR0xp
bnQgc2l6ZSwgR0xlbnVtIHR5cGUsIEdMc2l6ZWkgc3RyaWRlLCBjb25zdCBHTHZvaWQgKnBvaW50
ZXIpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYQkxFTkRBUkJQUk9DKSAoR0xpbnQgY291
bnQpOwoKCgoKCmV4dGVybiB2b2lkIGdsQ3VycmVudFBhbGV0dGVNYXRyaXhBUkIgKEdMaW50KTsK
ZXh0ZXJuIHZvaWQgZ2xNYXRyaXhJbmRleHVidkFSQiAoR0xpbnQsIGNvbnN0IEdMdWJ5dGUgKik7
CmV4dGVybiB2b2lkIGdsTWF0cml4SW5kZXh1c3ZBUkIgKEdMaW50LCBjb25zdCBHTHVzaG9ydCAq
KTsKZXh0ZXJuIHZvaWQgZ2xNYXRyaXhJbmRleHVpdkFSQiAoR0xpbnQsIGNvbnN0IEdMdWludCAq
KTsKZXh0ZXJuIHZvaWQgZ2xNYXRyaXhJbmRleFBvaW50ZXJBUkIgKEdMaW50LCBHTGVudW0sIEdM
c2l6ZWksIGNvbnN0IEdMdm9pZCAqKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xDVVJSRU5UUEFM
RVRURU1BVFJJWEFSQlBST0MpIChHTGludCBpbmRleCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xN
QVRSSVhJTkRFWFVCVkFSQlBST0MpIChHTGludCBzaXplLCBjb25zdCBHTHVieXRlICppbmRpY2Vz
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1BVFJJWElOREVYVVNWQVJCUFJPQykgKEdMaW50IHNp
emUsIGNvbnN0IEdMdXNob3J0ICppbmRpY2VzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1BVFJJ
WElOREVYVUlWQVJCUFJPQykgKEdMaW50IHNpemUsIGNvbnN0IEdMdWludCAqaW5kaWNlcyk7CnR5
cGVkZWYgdm9pZCAoICogUEZOR0xNQVRSSVhJTkRFWFBPSU5URVJBUkJQUk9DKSAoR0xpbnQgc2l6
ZSwgR0xlbnVtIHR5cGUsIEdMc2l6ZWkgc3RyaWRlLCBjb25zdCBHTHZvaWQgKnBvaW50ZXIpOwoj
IDI5MTYgIi4uL2luY2x1ZGUvR0wvZ2xleHQuaCIKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3MyZEFS
QiAoR0xkb3VibGUsIEdMZG91YmxlKTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3MyZHZBUkIgKGNv
bnN0IEdMZG91YmxlICopOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczJmQVJCIChHTGZsb2F0LCBH
TGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3MyZnZBUkIgKGNvbnN0IEdMZmxvYXQgKik7
CmV4dGVybiB2b2lkIGdsV2luZG93UG9zMmlBUkIgKEdMaW50LCBHTGludCk7CmV4dGVybiB2b2lk
IGdsV2luZG93UG9zMml2QVJCIChjb25zdCBHTGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQ
b3Myc0FSQiAoR0xzaG9ydCwgR0xzaG9ydCk7CmV4dGVybiB2b2lkIGdsV2luZG93UG9zMnN2QVJC
IChjb25zdCBHTHNob3J0ICopOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczNkQVJCIChHTGRvdWJs
ZSwgR0xkb3VibGUsIEdMZG91YmxlKTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3MzZHZBUkIgKGNv
bnN0IEdMZG91YmxlICopOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczNmQVJCIChHTGZsb2F0LCBH
TGZsb2F0LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3MzZnZBUkIgKGNvbnN0IEdM
ZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsV2luZG93UG9zM2lBUkIgKEdMaW50LCBHTGludCwgR0xp
bnQpOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczNpdkFSQiAoY29uc3QgR0xpbnQgKik7CmV4dGVy
biB2b2lkIGdsV2luZG93UG9zM3NBUkIgKEdMc2hvcnQsIEdMc2hvcnQsIEdMc2hvcnQpOwpleHRl
cm4gdm9pZCBnbFdpbmRvd1BvczNzdkFSQiAoY29uc3QgR0xzaG9ydCAqKTsKCnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xXSU5ET1dQT1MyREFSQlBST0MpIChHTGRvdWJsZSB4LCBHTGRvdWJsZSB5KTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTFdJTkRPV1BPUzJEVkFSQlBST0MpIChjb25zdCBHTGRvdWJs
ZSAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xXSU5ET1dQT1MyRkFSQlBST0MpIChHTGZsb2F0
IHgsIEdMZmxvYXQgeSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xXSU5ET1dQT1MyRlZBUkJQUk9D
KSAoY29uc3QgR0xmbG9hdCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xXSU5ET1dQT1MySUFS
QlBST0MpIChHTGludCB4LCBHTGludCB5KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFdJTkRPV1BP
UzJJVkFSQlBST0MpIChjb25zdCBHTGludCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xXSU5E
T1dQT1MyU0FSQlBST0MpIChHTHNob3J0IHgsIEdMc2hvcnQgeSk7CnR5cGVkZWYgdm9pZCAoICog
UEZOR0xXSU5ET1dQT1MyU1ZBUkJQUk9DKSAoY29uc3QgR0xzaG9ydCAqdik7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xXSU5ET1dQT1MzREFSQlBST0MpIChHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBH
TGRvdWJsZSB6KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFdJTkRPV1BPUzNEVkFSQlBST0MpIChj
b25zdCBHTGRvdWJsZSAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xXSU5ET1dQT1MzRkFSQlBS
T0MpIChHTGZsb2F0IHgsIEdMZmxvYXQgeSwgR0xmbG9hdCB6KTsKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTFdJTkRPV1BPUzNGVkFSQlBST0MpIChjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTFdJTkRPV1BPUzNJQVJCUFJPQykgKEdMaW50IHgsIEdMaW50IHksIEdMaW50IHop
Owp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMV0lORE9XUE9TM0lWQVJCUFJPQykgKGNvbnN0IEdMaW50
ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFdJTkRPV1BPUzNTQVJCUFJPQykgKEdMc2hvcnQg
eCwgR0xzaG9ydCB5LCBHTHNob3J0IHopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMV0lORE9XUE9T
M1NWQVJCUFJPQykgKGNvbnN0IEdMc2hvcnQgKnYpOwoKCgoKCmV4dGVybiB2b2lkIGdsVmVydGV4
QXR0cmliMWRBUkIgKEdMdWludCwgR0xkb3VibGUpOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJp
YjFkdkFSQiAoR0x1aW50LCBjb25zdCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhB
dHRyaWIxZkFSQiAoR0x1aW50LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWIx
ZnZBUkIgKEdMdWludCwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRy
aWIxc0FSQiAoR0x1aW50LCBHTHNob3J0KTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWIxc3ZB
UkIgKEdMdWludCwgY29uc3QgR0xzaG9ydCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWIy
ZEFSQiAoR0x1aW50LCBHTGRvdWJsZSwgR0xkb3VibGUpOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0
dHJpYjJkdkFSQiAoR0x1aW50LCBjb25zdCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0
ZXhBdHRyaWIyZkFSQiAoR0x1aW50LCBHTGZsb2F0LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xW
ZXJ0ZXhBdHRyaWIyZnZBUkIgKEdMdWludCwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQg
Z2xWZXJ0ZXhBdHRyaWIyc0FSQiAoR0x1aW50LCBHTHNob3J0LCBHTHNob3J0KTsKZXh0ZXJuIHZv
aWQgZ2xWZXJ0ZXhBdHRyaWIyc3ZBUkIgKEdMdWludCwgY29uc3QgR0xzaG9ydCAqKTsKZXh0ZXJu
IHZvaWQgZ2xWZXJ0ZXhBdHRyaWIzZEFSQiAoR0x1aW50LCBHTGRvdWJsZSwgR0xkb3VibGUsIEdM
ZG91YmxlKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWIzZHZBUkIgKEdMdWludCwgY29uc3Qg
R0xkb3VibGUgKik7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmliM2ZBUkIgKEdMdWludCwgR0xm
bG9hdCwgR0xmbG9hdCwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmliM2Z2QVJC
IChHTHVpbnQsIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmliM3NB
UkIgKEdMdWludCwgR0xzaG9ydCwgR0xzaG9ydCwgR0xzaG9ydCk7CmV4dGVybiB2b2lkIGdsVmVy
dGV4QXR0cmliM3N2QVJCIChHTHVpbnQsIGNvbnN0IEdMc2hvcnQgKik7CmV4dGVybiB2b2lkIGds
VmVydGV4QXR0cmliNE5idkFSQiAoR0x1aW50LCBjb25zdCBHTGJ5dGUgKik7CmV4dGVybiB2b2lk
IGdsVmVydGV4QXR0cmliNE5pdkFSQiAoR0x1aW50LCBjb25zdCBHTGludCAqKTsKZXh0ZXJuIHZv
aWQgZ2xWZXJ0ZXhBdHRyaWI0TnN2QVJCIChHTHVpbnQsIGNvbnN0IEdMc2hvcnQgKik7CmV4dGVy
biB2b2lkIGdsVmVydGV4QXR0cmliNE51YkFSQiAoR0x1aW50LCBHTHVieXRlLCBHTHVieXRlLCBH
THVieXRlLCBHTHVieXRlKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWI0TnVidkFSQiAoR0x1
aW50LCBjb25zdCBHTHVieXRlICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYjROdWl2QVJC
IChHTHVpbnQsIGNvbnN0IEdMdWludCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWI0TnVz
dkFSQiAoR0x1aW50LCBjb25zdCBHTHVzaG9ydCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRy
aWI0YnZBUkIgKEdMdWludCwgY29uc3QgR0xieXRlICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0
dHJpYjRkQVJCIChHTHVpbnQsIEdMZG91YmxlLCBHTGRvdWJsZSwgR0xkb3VibGUsIEdMZG91Ymxl
KTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWI0ZHZBUkIgKEdMdWludCwgY29uc3QgR0xkb3Vi
bGUgKik7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmliNGZBUkIgKEdMdWludCwgR0xmbG9hdCwg
R0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmliNGZ2
QVJCIChHTHVpbnQsIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmli
NGl2QVJCIChHTHVpbnQsIGNvbnN0IEdMaW50ICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJp
YjRzQVJCIChHTHVpbnQsIEdMc2hvcnQsIEdMc2hvcnQsIEdMc2hvcnQsIEdMc2hvcnQpOwpleHRl
cm4gdm9pZCBnbFZlcnRleEF0dHJpYjRzdkFSQiAoR0x1aW50LCBjb25zdCBHTHNob3J0ICopOwpl
eHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYjR1YnZBUkIgKEdMdWludCwgY29uc3QgR0x1Ynl0ZSAq
KTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWI0dWl2QVJCIChHTHVpbnQsIGNvbnN0IEdMdWlu
dCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWI0dXN2QVJCIChHTHVpbnQsIGNvbnN0IEdM
dXNob3J0ICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYlBvaW50ZXJBUkIgKEdMdWludCwg
R0xpbnQsIEdMZW51bSwgR0xib29sZWFuLCBHTHNpemVpLCBjb25zdCBHTHZvaWQgKik7CmV4dGVy
biB2b2lkIGdsRW5hYmxlVmVydGV4QXR0cmliQXJyYXlBUkIgKEdMdWludCk7CmV4dGVybiB2b2lk
IGdsRGlzYWJsZVZlcnRleEF0dHJpYkFycmF5QVJCIChHTHVpbnQpOwpleHRlcm4gdm9pZCBnbFBy
b2dyYW1TdHJpbmdBUkIgKEdMZW51bSwgR0xlbnVtLCBHTHNpemVpLCBjb25zdCBHTHZvaWQgKik7
CmV4dGVybiB2b2lkIGdsQmluZFByb2dyYW1BUkIgKEdMZW51bSwgR0x1aW50KTsKZXh0ZXJuIHZv
aWQgZ2xEZWxldGVQcm9ncmFtc0FSQiAoR0xzaXplaSwgY29uc3QgR0x1aW50ICopOwpleHRlcm4g
dm9pZCBnbEdlblByb2dyYW1zQVJCIChHTHNpemVpLCBHTHVpbnQgKik7CmV4dGVybiB2b2lkIGds
UHJvZ3JhbUVudlBhcmFtZXRlcjRkQVJCIChHTGVudW0sIEdMdWludCwgR0xkb3VibGUsIEdMZG91
YmxlLCBHTGRvdWJsZSwgR0xkb3VibGUpOwpleHRlcm4gdm9pZCBnbFByb2dyYW1FbnZQYXJhbWV0
ZXI0ZHZBUkIgKEdMZW51bSwgR0x1aW50LCBjb25zdCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQg
Z2xQcm9ncmFtRW52UGFyYW1ldGVyNGZBUkIgKEdMZW51bSwgR0x1aW50LCBHTGZsb2F0LCBHTGZs
b2F0LCBHTGZsb2F0LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xQcm9ncmFtRW52UGFyYW1ldGVy
NGZ2QVJCIChHTGVudW0sIEdMdWludCwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xQ
cm9ncmFtTG9jYWxQYXJhbWV0ZXI0ZEFSQiAoR0xlbnVtLCBHTHVpbnQsIEdMZG91YmxlLCBHTGRv
dWJsZSwgR0xkb3VibGUsIEdMZG91YmxlKTsKZXh0ZXJuIHZvaWQgZ2xQcm9ncmFtTG9jYWxQYXJh
bWV0ZXI0ZHZBUkIgKEdMZW51bSwgR0x1aW50LCBjb25zdCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZv
aWQgZ2xQcm9ncmFtTG9jYWxQYXJhbWV0ZXI0ZkFSQiAoR0xlbnVtLCBHTHVpbnQsIEdMZmxvYXQs
IEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQpOwpleHRlcm4gdm9pZCBnbFByb2dyYW1Mb2NhbFBh
cmFtZXRlcjRmdkFSQiAoR0xlbnVtLCBHTHVpbnQsIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2
b2lkIGdsR2V0UHJvZ3JhbUVudlBhcmFtZXRlcmR2QVJCIChHTGVudW0sIEdMdWludCwgR0xkb3Vi
bGUgKik7CmV4dGVybiB2b2lkIGdsR2V0UHJvZ3JhbUVudlBhcmFtZXRlcmZ2QVJCIChHTGVudW0s
IEdMdWludCwgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRQcm9ncmFtTG9jYWxQYXJhbWV0
ZXJkdkFSQiAoR0xlbnVtLCBHTHVpbnQsIEdMZG91YmxlICopOwpleHRlcm4gdm9pZCBnbEdldFBy
b2dyYW1Mb2NhbFBhcmFtZXRlcmZ2QVJCIChHTGVudW0sIEdMdWludCwgR0xmbG9hdCAqKTsKZXh0
ZXJuIHZvaWQgZ2xHZXRQcm9ncmFtaXZBUkIgKEdMZW51bSwgR0xlbnVtLCBHTGludCAqKTsKZXh0
ZXJuIHZvaWQgZ2xHZXRQcm9ncmFtU3RyaW5nQVJCIChHTGVudW0sIEdMZW51bSwgR0x2b2lkICop
OwpleHRlcm4gdm9pZCBnbEdldFZlcnRleEF0dHJpYmR2QVJCIChHTHVpbnQsIEdMZW51bSwgR0xk
b3VibGUgKik7CmV4dGVybiB2b2lkIGdsR2V0VmVydGV4QXR0cmliZnZBUkIgKEdMdWludCwgR0xl
bnVtLCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbEdldFZlcnRleEF0dHJpYml2QVJCIChHTHVp
bnQsIEdMZW51bSwgR0xpbnQgKik7CmV4dGVybiB2b2lkIGdsR2V0VmVydGV4QXR0cmliUG9pbnRl
cnZBUkIgKEdMdWludCwgR0xlbnVtLCBHTHZvaWQqICopOwpleHRlcm4gR0xib29sZWFuIGdsSXNQ
cm9ncmFtQVJCIChHTHVpbnQpOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjFE
QVJCUFJPQykgKEdMdWludCBpbmRleCwgR0xkb3VibGUgeCk7CnR5cGVkZWYgdm9pZCAoICogUEZO
R0xWRVJURVhBVFRSSUIxRFZBUkJQUk9DKSAoR0x1aW50IGluZGV4LCBjb25zdCBHTGRvdWJsZSAq
dik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUIxRkFSQlBST0MpIChHTHVpbnQg
aW5kZXgsIEdMZmxvYXQgeCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUIxRlZB
UkJQUk9DKSAoR0x1aW50IGluZGV4LCBjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICgg
KiBQRk5HTFZFUlRFWEFUVFJJQjFTQVJCUFJPQykgKEdMdWludCBpbmRleCwgR0xzaG9ydCB4KTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjFTVkFSQlBST0MpIChHTHVpbnQgaW5k
ZXgsIGNvbnN0IEdMc2hvcnQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklC
MkRBUkJQUk9DKSAoR0x1aW50IGluZGV4LCBHTGRvdWJsZSB4LCBHTGRvdWJsZSB5KTsKdHlwZWRl
ZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjJEVkFSQlBST0MpIChHTHVpbnQgaW5kZXgsIGNv
bnN0IEdMZG91YmxlICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjJGQVJC
UFJPQykgKEdMdWludCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHkpOwp0eXBlZGVmIHZvaWQg
KCAqIFBGTkdMVkVSVEVYQVRUUklCMkZWQVJCUFJPQykgKEdMdWludCBpbmRleCwgY29uc3QgR0xm
bG9hdCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUIyU0FSQlBST0MpIChH
THVpbnQgaW5kZXgsIEdMc2hvcnQgeCwgR0xzaG9ydCB5KTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TFZFUlRFWEFUVFJJQjJTVkFSQlBST0MpIChHTHVpbnQgaW5kZXgsIGNvbnN0IEdMc2hvcnQgKnYp
Owp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklCM0RBUkJQUk9DKSAoR0x1aW50IGlu
ZGV4LCBHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRvdWJsZSB6KTsKdHlwZWRlZiB2b2lkICgg
KiBQRk5HTFZFUlRFWEFUVFJJQjNEVkFSQlBST0MpIChHTHVpbnQgaW5kZXgsIGNvbnN0IEdMZG91
YmxlICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjNGQVJCUFJPQykgKEdM
dWludCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeik7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xWRVJURVhBVFRSSUIzRlZBUkJQUk9DKSAoR0x1aW50IGluZGV4LCBjb25zdCBH
TGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjNTQVJCUFJPQykg
KEdMdWludCBpbmRleCwgR0xzaG9ydCB4LCBHTHNob3J0IHksIEdMc2hvcnQgeik7CnR5cGVkZWYg
dm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUIzU1ZBUkJQUk9DKSAoR0x1aW50IGluZGV4LCBjb25z
dCBHTHNob3J0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjROQlZBUkJQ
Uk9DKSAoR0x1aW50IGluZGV4LCBjb25zdCBHTGJ5dGUgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMVkVSVEVYQVRUUklCNE5JVkFSQlBST0MpIChHTHVpbnQgaW5kZXgsIGNvbnN0IEdMaW50ICp2
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjROU1ZBUkJQUk9DKSAoR0x1aW50
IGluZGV4LCBjb25zdCBHTHNob3J0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFU
VFJJQjROVUJBUkJQUk9DKSAoR0x1aW50IGluZGV4LCBHTHVieXRlIHgsIEdMdWJ5dGUgeSwgR0x1
Ynl0ZSB6LCBHTHVieXRlIHcpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklCNE5V
QlZBUkJQUk9DKSAoR0x1aW50IGluZGV4LCBjb25zdCBHTHVieXRlICp2KTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTFZFUlRFWEFUVFJJQjROVUlWQVJCUFJPQykgKEdMdWludCBpbmRleCwgY29uc3Qg
R0x1aW50ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjROVVNWQVJCUFJP
QykgKEdMdWludCBpbmRleCwgY29uc3QgR0x1c2hvcnQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMVkVSVEVYQVRUUklCNEJWQVJCUFJPQykgKEdMdWludCBpbmRleCwgY29uc3QgR0xieXRlICp2
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjREQVJCUFJPQykgKEdMdWludCBp
bmRleCwgR0xkb3VibGUgeCwgR0xkb3VibGUgeSwgR0xkb3VibGUgeiwgR0xkb3VibGUgdyk7CnR5
cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUI0RFZBUkJQUk9DKSAoR0x1aW50IGluZGV4
LCBjb25zdCBHTGRvdWJsZSAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUI0
RkFSQlBST0MpIChHTHVpbnQgaW5kZXgsIEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0IHos
IEdMZmxvYXQgdyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUI0RlZBUkJQUk9D
KSAoR0x1aW50IGluZGV4LCBjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TFZFUlRFWEFUVFJJQjRJVkFSQlBST0MpIChHTHVpbnQgaW5kZXgsIGNvbnN0IEdMaW50ICp2KTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjRTQVJCUFJPQykgKEdMdWludCBpbmRl
eCwgR0xzaG9ydCB4LCBHTHNob3J0IHksIEdMc2hvcnQgeiwgR0xzaG9ydCB3KTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjRTVkFSQlBST0MpIChHTHVpbnQgaW5kZXgsIGNvbnN0
IEdMc2hvcnQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklCNFVCVkFSQlBS
T0MpIChHTHVpbnQgaW5kZXgsIGNvbnN0IEdMdWJ5dGUgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMVkVSVEVYQVRUUklCNFVJVkFSQlBST0MpIChHTHVpbnQgaW5kZXgsIGNvbnN0IEdMdWludCAq
dik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUI0VVNWQVJCUFJPQykgKEdMdWlu
dCBpbmRleCwgY29uc3QgR0x1c2hvcnQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVY
QVRUUklCUE9JTlRFUkFSQlBST0MpIChHTHVpbnQgaW5kZXgsIEdMaW50IHNpemUsIEdMZW51bSB0
eXBlLCBHTGJvb2xlYW4gbm9ybWFsaXplZCwgR0xzaXplaSBzdHJpZGUsIGNvbnN0IEdMdm9pZCAq
cG9pbnRlcik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xFTkFCTEVWRVJURVhBVFRSSUJBUlJBWUFS
QlBST0MpIChHTHVpbnQgaW5kZXgpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMRElTQUJMRVZFUlRF
WEFUVFJJQkFSUkFZQVJCUFJPQykgKEdMdWludCBpbmRleCk7CnR5cGVkZWYgdm9pZCAoICogUEZO
R0xQUk9HUkFNU1RSSU5HQVJCUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBmb3JtYXQsIEdM
c2l6ZWkgbGVuLCBjb25zdCBHTHZvaWQgKnN0cmluZyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xC
SU5EUFJPR1JBTUFSQlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTHVpbnQgcHJvZ3JhbSk7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xERUxFVEVQUk9HUkFNU0FSQlBST0MpIChHTHNpemVpIG4sIGNvbnN0
IEdMdWludCAqcHJvZ3JhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VOUFJPR1JBTVNBUkJQ
Uk9DKSAoR0xzaXplaSBuLCBHTHVpbnQgKnByb2dyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TFBST0dSQU1FTlZQQVJBTUVURVI0REFSQlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaW5k
ZXgsIEdMZG91YmxlIHgsIEdMZG91YmxlIHksIEdMZG91YmxlIHosIEdMZG91YmxlIHcpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMUFJPR1JBTUVOVlBBUkFNRVRFUjREVkFSQlBST0MpIChHTGVudW0g
dGFyZ2V0LCBHTHVpbnQgaW5kZXgsIGNvbnN0IEdMZG91YmxlICpwYXJhbXMpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMUFJPR1JBTUVOVlBBUkFNRVRFUjRGQVJCUFJPQykgKEdMZW51bSB0YXJnZXQs
IEdMdWludCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeiwgR0xmbG9hdCB3
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFBST0dSQU1FTlZQQVJBTUVURVI0RlZBUkJQUk9DKSAo
R0xlbnVtIHRhcmdldCwgR0x1aW50IGluZGV4LCBjb25zdCBHTGZsb2F0ICpwYXJhbXMpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMUFJPR1JBTUxPQ0FMUEFSQU1FVEVSNERBUkJQUk9DKSAoR0xlbnVt
IHRhcmdldCwgR0x1aW50IGluZGV4LCBHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRvdWJsZSB6
LCBHTGRvdWJsZSB3KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFBST0dSQU1MT0NBTFBBUkFNRVRF
UjREVkFSQlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaW5kZXgsIGNvbnN0IEdMZG91Ymxl
ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMUFJPR1JBTUxPQ0FMUEFSQU1FVEVSNEZB
UkJQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0x1aW50IGluZGV4LCBHTGZsb2F0IHgsIEdMZmxvYXQg
eSwgR0xmbG9hdCB6LCBHTGZsb2F0IHcpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMUFJPR1JBTUxP
Q0FMUEFSQU1FVEVSNEZWQVJCUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMdWludCBpbmRleCwgY29u
c3QgR0xmbG9hdCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVFBST0dSQU1FTlZQ
QVJBTUVURVJEVkFSQlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaW5kZXgsIEdMZG91Ymxl
ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUUFJPR1JBTUVOVlBBUkFNRVRFUkZW
QVJCUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMdWludCBpbmRleCwgR0xmbG9hdCAqcGFyYW1zKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVFBST0dSQU1MT0NBTFBBUkFNRVRFUkRWQVJCUFJPQykg
KEdMZW51bSB0YXJnZXQsIEdMdWludCBpbmRleCwgR0xkb3VibGUgKnBhcmFtcyk7CnR5cGVkZWYg
dm9pZCAoICogUEZOR0xHRVRQUk9HUkFNTE9DQUxQQVJBTUVURVJGVkFSQlBST0MpIChHTGVudW0g
dGFyZ2V0LCBHTHVpbnQgaW5kZXgsIEdMZmxvYXQgKnBhcmFtcyk7CnR5cGVkZWYgdm9pZCAoICog
UEZOR0xHRVRQUk9HUkFNSVZBUkJQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBH
TGludCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVFBST0dSQU1TVFJJTkdBUkJQ
Uk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTHZvaWQgKnN0cmluZyk7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xHRVRWRVJURVhBVFRSSUJEVkFSQlBST0MpIChHTHVpbnQgaW5kZXgs
IEdMZW51bSBwbmFtZSwgR0xkb3VibGUgKnBhcmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xH
RVRWRVJURVhBVFRSSUJGVkFSQlBST0MpIChHTHVpbnQgaW5kZXgsIEdMZW51bSBwbmFtZSwgR0xm
bG9hdCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVFZFUlRFWEFUVFJJQklWQVJC
UFJPQykgKEdMdWludCBpbmRleCwgR0xlbnVtIHBuYW1lLCBHTGludCAqcGFyYW1zKTsKdHlwZWRl
ZiB2b2lkICggKiBQRk5HTEdFVFZFUlRFWEFUVFJJQlBPSU5URVJWQVJCUFJPQykgKEdMdWludCBp
bmRleCwgR0xlbnVtIHBuYW1lLCBHTHZvaWQqICpwb2ludGVyKTsKdHlwZWRlZiBHTGJvb2xlYW4g
KCAqIFBGTkdMSVNQUk9HUkFNQVJCUFJPQykgKEdMdWludCBwcm9ncmFtKTsKIyAzMDg4ICIuLi9p
bmNsdWRlL0dML2dsZXh0LmgiCmV4dGVybiB2b2lkIGdsQmxlbmRDb2xvckVYVCAoR0xjbGFtcGYs
IEdMY2xhbXBmLCBHTGNsYW1wZiwgR0xjbGFtcGYpOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTEJM
RU5EQ09MT1JFWFRQUk9DKSAoR0xjbGFtcGYgcmVkLCBHTGNsYW1wZiBncmVlbiwgR0xjbGFtcGYg
Ymx1ZSwgR0xjbGFtcGYgYWxwaGEpOwoKCgoKCmV4dGVybiB2b2lkIGdsUG9seWdvbk9mZnNldEVY
VCAoR0xmbG9hdCwgR0xmbG9hdCk7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMUE9MWUdPTk9GRlNF
VEVYVFBST0MpIChHTGZsb2F0IGZhY3RvciwgR0xmbG9hdCBiaWFzKTsKIyAzMTA4ICIuLi9pbmNs
dWRlL0dML2dsZXh0LmgiCmV4dGVybiB2b2lkIGdsVGV4SW1hZ2UzREVYVCAoR0xlbnVtLCBHTGlu
dCwgR0xlbnVtLCBHTHNpemVpLCBHTHNpemVpLCBHTHNpemVpLCBHTGludCwgR0xlbnVtLCBHTGVu
dW0sIGNvbnN0IEdMdm9pZCAqKTsKZXh0ZXJuIHZvaWQgZ2xUZXhTdWJJbWFnZTNERVhUIChHTGVu
dW0sIEdMaW50LCBHTGludCwgR0xpbnQsIEdMaW50LCBHTHNpemVpLCBHTHNpemVpLCBHTHNpemVp
LCBHTGVudW0sIEdMZW51bSwgY29uc3QgR0x2b2lkICopOwoKdHlwZWRlZiB2b2lkICggKiBQRk5H
TFRFWElNQUdFM0RFWFRQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVw
dGgsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9p
ZCAqcGl4ZWxzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFRFWFNVQklNQUdFM0RFWFRQUk9DKSAo
R0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQs
IEdMaW50IHpvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTHNpemVpIGRl
cHRoLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICpwaXhlbHMpOwoK
CgoKCmV4dGVybiB2b2lkIGdsR2V0VGV4RmlsdGVyRnVuY1NHSVMgKEdMZW51bSwgR0xlbnVtLCBH
TGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbFRleEZpbHRlckZ1bmNTR0lTIChHTGVudW0sIEdMZW51
bSwgR0xzaXplaSwgY29uc3QgR0xmbG9hdCAqKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRU
RVhGSUxURVJGVU5DU0dJU1BST0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gZmlsdGVyLCBHTGZs
b2F0ICp3ZWlnaHRzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFRFWEZJTFRFUkZVTkNTR0lTUFJP
QykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBmaWx0ZXIsIEdMc2l6ZWkgbiwgY29uc3QgR0xmbG9h
dCAqd2VpZ2h0cyk7CgoKCgoKZXh0ZXJuIHZvaWQgZ2xUZXhTdWJJbWFnZTFERVhUIChHTGVudW0s
IEdMaW50LCBHTGludCwgR0xzaXplaSwgR0xlbnVtLCBHTGVudW0sIGNvbnN0IEdMdm9pZCAqKTsK
ZXh0ZXJuIHZvaWQgZ2xUZXhTdWJJbWFnZTJERVhUIChHTGVudW0sIEdMaW50LCBHTGludCwgR0xp
bnQsIEdMc2l6ZWksIEdMc2l6ZWksIEdMZW51bSwgR0xlbnVtLCBjb25zdCBHTHZvaWQgKik7Cgp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMVEVYU1VCSU1BR0UxREVYVFBST0MpIChHTGVudW0gdGFyZ2V0
LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xzaXplaSB3aWR0aCwgR0xlbnVtIGZvcm1h
dCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9pZCAqcGl4ZWxzKTsKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTFRFWFNVQklNQUdFMkRFWFRQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdM
aW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0
LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICpwaXhlbHMpOwoKCgoK
CmV4dGVybiB2b2lkIGdsQ29weVRleEltYWdlMURFWFQgKEdMZW51bSwgR0xpbnQsIEdMZW51bSwg
R0xpbnQsIEdMaW50LCBHTHNpemVpLCBHTGludCk7CmV4dGVybiB2b2lkIGdsQ29weVRleEltYWdl
MkRFWFQgKEdMZW51bSwgR0xpbnQsIEdMZW51bSwgR0xpbnQsIEdMaW50LCBHTHNpemVpLCBHTHNp
emVpLCBHTGludCk7CmV4dGVybiB2b2lkIGdsQ29weVRleFN1YkltYWdlMURFWFQgKEdMZW51bSwg
R0xpbnQsIEdMaW50LCBHTGludCwgR0xpbnQsIEdMc2l6ZWkpOwpleHRlcm4gdm9pZCBnbENvcHlU
ZXhTdWJJbWFnZTJERVhUIChHTGVudW0sIEdMaW50LCBHTGludCwgR0xpbnQsIEdMaW50LCBHTGlu
dCwgR0xzaXplaSwgR0xzaXplaSk7CmV4dGVybiB2b2lkIGdsQ29weVRleFN1YkltYWdlM0RFWFQg
KEdMZW51bSwgR0xpbnQsIEdMaW50LCBHTGludCwgR0xpbnQsIEdMaW50LCBHTGludCwgR0xzaXpl
aSwgR0xzaXplaSk7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09QWVRFWElNQUdFMURFWFRQUk9D
KSAoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xp
bnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xpbnQgYm9yZGVyKTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTENPUFlURVhJTUFHRTJERVhUUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMaW50IGxl
dmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lk
dGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGludCBib3JkZXIpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
Q09QWVRFWFNVQklNQUdFMURFWFRQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdM
aW50IHhvZmZzZXQsIEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMQ09QWVRFWFNVQklNQUdFMkRFWFRQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xp
bnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50IHgsIEdMaW50IHks
IEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTENP
UFlURVhTVUJJTUFHRTNERVhUUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGlu
dCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTGludCB6b2Zmc2V0LCBHTGludCB4LCBHTGludCB5
LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7CgoKCgoKZXh0ZXJuIHZvaWQgZ2xHZXRI
aXN0b2dyYW1FWFQgKEdMZW51bSwgR0xib29sZWFuLCBHTGVudW0sIEdMZW51bSwgR0x2b2lkICop
OwpleHRlcm4gdm9pZCBnbEdldEhpc3RvZ3JhbVBhcmFtZXRlcmZ2RVhUIChHTGVudW0sIEdMZW51
bSwgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRIaXN0b2dyYW1QYXJhbWV0ZXJpdkVYVCAo
R0xlbnVtLCBHTGVudW0sIEdMaW50ICopOwpleHRlcm4gdm9pZCBnbEdldE1pbm1heEVYVCAoR0xl
bnVtLCBHTGJvb2xlYW4sIEdMZW51bSwgR0xlbnVtLCBHTHZvaWQgKik7CmV4dGVybiB2b2lkIGds
R2V0TWlubWF4UGFyYW1ldGVyZnZFWFQgKEdMZW51bSwgR0xlbnVtLCBHTGZsb2F0ICopOwpleHRl
cm4gdm9pZCBnbEdldE1pbm1heFBhcmFtZXRlcml2RVhUIChHTGVudW0sIEdMZW51bSwgR0xpbnQg
Kik7CmV4dGVybiB2b2lkIGdsSGlzdG9ncmFtRVhUIChHTGVudW0sIEdMc2l6ZWksIEdMZW51bSwg
R0xib29sZWFuKTsKZXh0ZXJuIHZvaWQgZ2xNaW5tYXhFWFQgKEdMZW51bSwgR0xlbnVtLCBHTGJv
b2xlYW4pOwpleHRlcm4gdm9pZCBnbFJlc2V0SGlzdG9ncmFtRVhUIChHTGVudW0pOwpleHRlcm4g
dm9pZCBnbFJlc2V0TWlubWF4RVhUIChHTGVudW0pOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdF
VEhJU1RPR1JBTUVYVFBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGJvb2xlYW4gcmVzZXQsIEdMZW51
bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBHTHZvaWQgKnZhbHVlcyk7CnR5cGVkZWYgdm9pZCAoICog
UEZOR0xHRVRISVNUT0dSQU1QQVJBTUVURVJGVkVYVFBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGVu
dW0gcG5hbWUsIEdMZmxvYXQgKnBhcmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRISVNU
T0dSQU1QQVJBTUVURVJJVkVYVFBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdM
aW50ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUTUlOTUFYRVhUUFJPQykgKEdM
ZW51bSB0YXJnZXQsIEdMYm9vbGVhbiByZXNldCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUs
IEdMdm9pZCAqdmFsdWVzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVE1JTk1BWFBBUkFNRVRF
UkZWRVhUUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCAqcGFyYW1z
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVE1JTk1BWFBBUkFNRVRFUklWRVhUUFJPQykgKEdM
ZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xpbnQgKnBhcmFtcyk7CnR5cGVkZWYgdm9pZCAo
ICogUEZOR0xISVNUT0dSQU1FWFRQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xzaXplaSB3aWR0aCwg
R0xlbnVtIGludGVybmFsZm9ybWF0LCBHTGJvb2xlYW4gc2luayk7CnR5cGVkZWYgdm9pZCAoICog
UEZOR0xNSU5NQVhFWFRQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGludGVybmFsZm9ybWF0
LCBHTGJvb2xlYW4gc2luayk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xSRVNFVEhJU1RPR1JBTUVY
VFBST0MpIChHTGVudW0gdGFyZ2V0KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFJFU0VUTUlOTUFY
RVhUUFJPQykgKEdMZW51bSB0YXJnZXQpOwoKCgoKCmV4dGVybiB2b2lkIGdsQ29udm9sdXRpb25G
aWx0ZXIxREVYVCAoR0xlbnVtLCBHTGVudW0sIEdMc2l6ZWksIEdMZW51bSwgR0xlbnVtLCBjb25z
dCBHTHZvaWQgKik7CmV4dGVybiB2b2lkIGdsQ29udm9sdXRpb25GaWx0ZXIyREVYVCAoR0xlbnVt
LCBHTGVudW0sIEdMc2l6ZWksIEdMc2l6ZWksIEdMZW51bSwgR0xlbnVtLCBjb25zdCBHTHZvaWQg
Kik7CmV4dGVybiB2b2lkIGdsQ29udm9sdXRpb25QYXJhbWV0ZXJmRVhUIChHTGVudW0sIEdMZW51
bSwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsQ29udm9sdXRpb25QYXJhbWV0ZXJmdkVYVCAoR0xl
bnVtLCBHTGVudW0sIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsQ29udm9sdXRpb25Q
YXJhbWV0ZXJpRVhUIChHTGVudW0sIEdMZW51bSwgR0xpbnQpOwpleHRlcm4gdm9pZCBnbENvbnZv
bHV0aW9uUGFyYW1ldGVyaXZFWFQgKEdMZW51bSwgR0xlbnVtLCBjb25zdCBHTGludCAqKTsKZXh0
ZXJuIHZvaWQgZ2xDb3B5Q29udm9sdXRpb25GaWx0ZXIxREVYVCAoR0xlbnVtLCBHTGVudW0sIEdM
aW50LCBHTGludCwgR0xzaXplaSk7CmV4dGVybiB2b2lkIGdsQ29weUNvbnZvbHV0aW9uRmlsdGVy
MkRFWFQgKEdMZW51bSwgR0xlbnVtLCBHTGludCwgR0xpbnQsIEdMc2l6ZWksIEdMc2l6ZWkpOwpl
eHRlcm4gdm9pZCBnbEdldENvbnZvbHV0aW9uRmlsdGVyRVhUIChHTGVudW0sIEdMZW51bSwgR0xl
bnVtLCBHTHZvaWQgKik7CmV4dGVybiB2b2lkIGdsR2V0Q29udm9sdXRpb25QYXJhbWV0ZXJmdkVY
VCAoR0xlbnVtLCBHTGVudW0sIEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsR2V0Q29udm9sdXRp
b25QYXJhbWV0ZXJpdkVYVCAoR0xlbnVtLCBHTGVudW0sIEdMaW50ICopOwpleHRlcm4gdm9pZCBn
bEdldFNlcGFyYWJsZUZpbHRlckVYVCAoR0xlbnVtLCBHTGVudW0sIEdMZW51bSwgR0x2b2lkICos
IEdMdm9pZCAqLCBHTHZvaWQgKik7CmV4dGVybiB2b2lkIGdsU2VwYXJhYmxlRmlsdGVyMkRFWFQg
KEdMZW51bSwgR0xlbnVtLCBHTHNpemVpLCBHTHNpemVpLCBHTGVudW0sIEdMZW51bSwgY29uc3Qg
R0x2b2lkICosIGNvbnN0IEdMdm9pZCAqKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT05WT0xV
VElPTkZJTFRFUjFERVhUUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBpbnRlcm5hbGZvcm1h
dCwgR0xzaXplaSB3aWR0aCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9p
ZCAqaW1hZ2UpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09OVk9MVVRJT05GSUxURVIyREVYVFBS
T0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgs
IEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lk
ICppbWFnZSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT05WT0xVVElPTlBBUkFNRVRFUkZFWFRQ
Uk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0IHBhcmFtcyk7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xDT05WT0xVVElPTlBBUkFNRVRFUkZWRVhUUFJPQykgKEdMZW51bSB0
YXJnZXQsIEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTENPTlZPTFVUSU9OUEFSQU1FVEVSSUVYVFBST0MpIChHTGVudW0gdGFyZ2V0LCBH
TGVudW0gcG5hbWUsIEdMaW50IHBhcmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT05WT0xV
VElPTlBBUkFNRVRFUklWRVhUUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgY29u
c3QgR0xpbnQgKnBhcmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT1BZQ09OVk9MVVRJT05G
SUxURVIxREVYVFBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdM
aW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09Q
WUNPTlZPTFVUSU9ORklMVEVSMkRFWFRQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGludGVy
bmFsZm9ybWF0LCBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRDT05WT0xVVElPTkZJTFRFUkVYVFBST0MpIChH
TGVudW0gdGFyZ2V0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgR0x2b2lkICppbWFnZSk7
CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRDT05WT0xVVElPTlBBUkFNRVRFUkZWRVhUUFJPQykg
KEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCAqcGFyYW1zKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTEdFVENPTlZPTFVUSU9OUEFSQU1FVEVSSVZFWFRQUk9DKSAoR0xlbnVtIHRh
cmdldCwgR0xlbnVtIHBuYW1lLCBHTGludCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TEdFVFNFUEFSQUJMRUZJTFRFUkVYVFBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gZm9ybWF0
LCBHTGVudW0gdHlwZSwgR0x2b2lkICpyb3csIEdMdm9pZCAqY29sdW1uLCBHTHZvaWQgKnNwYW4p
Owp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMU0VQQVJBQkxFRklMVEVSMkRFWFRQUk9DKSAoR0xlbnVt
IHRhcmdldCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhl
aWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9pZCAqcm93LCBjb25z
dCBHTHZvaWQgKmNvbHVtbik7CiMgMzIxNiAiLi4vaW5jbHVkZS9HTC9nbGV4dC5oIgpleHRlcm4g
dm9pZCBnbENvbG9yVGFibGVTR0kgKEdMZW51bSwgR0xlbnVtLCBHTHNpemVpLCBHTGVudW0sIEdM
ZW51bSwgY29uc3QgR0x2b2lkICopOwpleHRlcm4gdm9pZCBnbENvbG9yVGFibGVQYXJhbWV0ZXJm
dlNHSSAoR0xlbnVtLCBHTGVudW0sIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsQ29s
b3JUYWJsZVBhcmFtZXRlcml2U0dJIChHTGVudW0sIEdMZW51bSwgY29uc3QgR0xpbnQgKik7CmV4
dGVybiB2b2lkIGdsQ29weUNvbG9yVGFibGVTR0kgKEdMZW51bSwgR0xlbnVtLCBHTGludCwgR0xp
bnQsIEdMc2l6ZWkpOwpleHRlcm4gdm9pZCBnbEdldENvbG9yVGFibGVTR0kgKEdMZW51bSwgR0xl
bnVtLCBHTGVudW0sIEdMdm9pZCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRDb2xvclRhYmxlUGFyYW1l
dGVyZnZTR0kgKEdMZW51bSwgR0xlbnVtLCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbEdldENv
bG9yVGFibGVQYXJhbWV0ZXJpdlNHSSAoR0xlbnVtLCBHTGVudW0sIEdMaW50ICopOwoKdHlwZWRl
ZiB2b2lkICggKiBQRk5HTENPTE9SVEFCTEVTR0lQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVt
IGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlw
ZSwgY29uc3QgR0x2b2lkICp0YWJsZSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT0xPUlRBQkxF
UEFSQU1FVEVSRlZTR0lQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBjb25zdCBH
TGZsb2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09MT1JUQUJMRVBBUkFNRVRF
UklWU0dJUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgY29uc3QgR0xpbnQgKnBh
cmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT1BZQ09MT1JUQUJMRVNHSVBST0MpIChHTGVu
dW0gdGFyZ2V0LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMaW50IHgsIEdMaW50IHksIEdMc2l6
ZWkgd2lkdGgpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUQ09MT1JUQUJMRVNHSVBST0MpIChH
TGVudW0gdGFyZ2V0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgR0x2b2lkICp0YWJsZSk7
CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRDT0xPUlRBQkxFUEFSQU1FVEVSRlZTR0lQUk9DKSAo
R0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMR0VUQ09MT1JUQUJMRVBBUkFNRVRFUklWU0dJUFJPQykgKEdMZW51bSB0YXJn
ZXQsIEdMZW51bSBwbmFtZSwgR0xpbnQgKnBhcmFtcyk7CgoKCgoKZXh0ZXJuIHZvaWQgZ2xQaXhl
bFRleEdlblNHSVggKEdMZW51bSk7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMUElYRUxURVhHRU5T
R0lYUFJPQykgKEdMZW51bSBtb2RlKTsKCgoKCgpleHRlcm4gdm9pZCBnbFBpeGVsVGV4R2VuUGFy
YW1ldGVyaVNHSVMgKEdMZW51bSwgR0xpbnQpOwpleHRlcm4gdm9pZCBnbFBpeGVsVGV4R2VuUGFy
YW1ldGVyaXZTR0lTIChHTGVudW0sIGNvbnN0IEdMaW50ICopOwpleHRlcm4gdm9pZCBnbFBpeGVs
VGV4R2VuUGFyYW1ldGVyZlNHSVMgKEdMZW51bSwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsUGl4
ZWxUZXhHZW5QYXJhbWV0ZXJmdlNHSVMgKEdMZW51bSwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJu
IHZvaWQgZ2xHZXRQaXhlbFRleEdlblBhcmFtZXRlcml2U0dJUyAoR0xlbnVtLCBHTGludCAqKTsK
ZXh0ZXJuIHZvaWQgZ2xHZXRQaXhlbFRleEdlblBhcmFtZXRlcmZ2U0dJUyAoR0xlbnVtLCBHTGZs
b2F0ICopOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTFBJWEVMVEVYR0VOUEFSQU1FVEVSSVNHSVNQ
Uk9DKSAoR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xQ
SVhFTFRFWEdFTlBBUkFNRVRFUklWU0dJU1BST0MpIChHTGVudW0gcG5hbWUsIGNvbnN0IEdMaW50
ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMUElYRUxURVhHRU5QQVJBTUVURVJGU0dJ
U1BST0MpIChHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMUElYRUxURVhHRU5QQVJBTUVURVJGVlNHSVNQUk9DKSAoR0xlbnVtIHBuYW1lLCBjb25zdCBH
TGZsb2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUUElYRUxURVhHRU5QQVJB
TUVURVJJVlNHSVNQUk9DKSAoR0xlbnVtIHBuYW1lLCBHTGludCAqcGFyYW1zKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTEdFVFBJWEVMVEVYR0VOUEFSQU1FVEVSRlZTR0lTUFJPQykgKEdMZW51bSBw
bmFtZSwgR0xmbG9hdCAqcGFyYW1zKTsKCgoKCgpleHRlcm4gdm9pZCBnbFRleEltYWdlNERTR0lT
IChHTGVudW0sIEdMaW50LCBHTGVudW0sIEdMc2l6ZWksIEdMc2l6ZWksIEdMc2l6ZWksIEdMc2l6
ZWksIEdMaW50LCBHTGVudW0sIEdMZW51bSwgY29uc3QgR0x2b2lkICopOwpleHRlcm4gdm9pZCBn
bFRleFN1YkltYWdlNERTR0lTIChHTGVudW0sIEdMaW50LCBHTGludCwgR0xpbnQsIEdMaW50LCBH
TGludCwgR0xzaXplaSwgR0xzaXplaSwgR0xzaXplaSwgR0xzaXplaSwgR0xlbnVtLCBHTGVudW0s
IGNvbnN0IEdMdm9pZCAqKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xURVhJTUFHRTREU0dJU1BS
T0MpIChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBH
THNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xzaXplaSBzaXpl
NGQsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9p
ZCAqcGl4ZWxzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFRFWFNVQklNQUdFNERTR0lTUFJPQykg
KEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0
LCBHTGludCB6b2Zmc2V0LCBHTGludCB3b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhl
aWdodCwgR0xzaXplaSBkZXB0aCwgR0xzaXplaSBzaXplNGQsIEdMZW51bSBmb3JtYXQsIEdMZW51
bSB0eXBlLCBjb25zdCBHTHZvaWQgKnBpeGVscyk7CiMgMzI4MCAiLi4vaW5jbHVkZS9HTC9nbGV4
dC5oIgpleHRlcm4gR0xib29sZWFuIGdsQXJlVGV4dHVyZXNSZXNpZGVudEVYVCAoR0xzaXplaSwg
Y29uc3QgR0x1aW50ICosIEdMYm9vbGVhbiAqKTsKZXh0ZXJuIHZvaWQgZ2xCaW5kVGV4dHVyZUVY
VCAoR0xlbnVtLCBHTHVpbnQpOwpleHRlcm4gdm9pZCBnbERlbGV0ZVRleHR1cmVzRVhUIChHTHNp
emVpLCBjb25zdCBHTHVpbnQgKik7CmV4dGVybiB2b2lkIGdsR2VuVGV4dHVyZXNFWFQgKEdMc2l6
ZWksIEdMdWludCAqKTsKZXh0ZXJuIEdMYm9vbGVhbiBnbElzVGV4dHVyZUVYVCAoR0x1aW50KTsK
ZXh0ZXJuIHZvaWQgZ2xQcmlvcml0aXplVGV4dHVyZXNFWFQgKEdMc2l6ZWksIGNvbnN0IEdMdWlu
dCAqLCBjb25zdCBHTGNsYW1wZiAqKTsKCnR5cGVkZWYgR0xib29sZWFuICggKiBQRk5HTEFSRVRF
WFRVUkVTUkVTSURFTlRFWFRQUk9DKSAoR0xzaXplaSBuLCBjb25zdCBHTHVpbnQgKnRleHR1cmVz
LCBHTGJvb2xlYW4gKnJlc2lkZW5jZXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQklORFRFWFRV
UkVFWFRQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0x1aW50IHRleHR1cmUpOwp0eXBlZGVmIHZvaWQg
KCAqIFBGTkdMREVMRVRFVEVYVFVSRVNFWFRQUk9DKSAoR0xzaXplaSBuLCBjb25zdCBHTHVpbnQg
KnRleHR1cmVzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFTlRFWFRVUkVTRVhUUFJPQykgKEdM
c2l6ZWkgbiwgR0x1aW50ICp0ZXh0dXJlcyk7CnR5cGVkZWYgR0xib29sZWFuICggKiBQRk5HTElT
VEVYVFVSRUVYVFBST0MpIChHTHVpbnQgdGV4dHVyZSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xQ
UklPUklUSVpFVEVYVFVSRVNFWFRQUk9DKSAoR0xzaXplaSBuLCBjb25zdCBHTHVpbnQgKnRleHR1
cmVzLCBjb25zdCBHTGNsYW1wZiAqcHJpb3JpdGllcyk7CgoKCgoKZXh0ZXJuIHZvaWQgZ2xEZXRh
aWxUZXhGdW5jU0dJUyAoR0xlbnVtLCBHTHNpemVpLCBjb25zdCBHTGZsb2F0ICopOwpleHRlcm4g
dm9pZCBnbEdldERldGFpbFRleEZ1bmNTR0lTIChHTGVudW0sIEdMZmxvYXQgKik7Cgp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMREVUQUlMVEVYRlVOQ1NHSVNQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xz
aXplaSBuLCBjb25zdCBHTGZsb2F0ICpwb2ludHMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VU
REVUQUlMVEVYRlVOQ1NHSVNQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xmbG9hdCAqcG9pbnRzKTsK
CgoKCgpleHRlcm4gdm9pZCBnbFNoYXJwZW5UZXhGdW5jU0dJUyAoR0xlbnVtLCBHTHNpemVpLCBj
b25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbEdldFNoYXJwZW5UZXhGdW5jU0dJUyAoR0xl
bnVtLCBHTGZsb2F0ICopOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNIQVJQRU5URVhGVU5DU0dJ
U1BST0MpIChHTGVudW0gdGFyZ2V0LCBHTHNpemVpIG4sIGNvbnN0IEdMZmxvYXQgKnBvaW50cyk7
CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRTSEFSUEVOVEVYRlVOQ1NHSVNQUk9DKSAoR0xlbnVt
IHRhcmdldCwgR0xmbG9hdCAqcG9pbnRzKTsKIyAzMzI2ICIuLi9pbmNsdWRlL0dML2dsZXh0Lmgi
CmV4dGVybiB2b2lkIGdsU2FtcGxlTWFza1NHSVMgKEdMY2xhbXBmLCBHTGJvb2xlYW4pOwpleHRl
cm4gdm9pZCBnbFNhbXBsZVBhdHRlcm5TR0lTIChHTGVudW0pOwoKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTFNBTVBMRU1BU0tTR0lTUFJPQykgKEdMY2xhbXBmIHZhbHVlLCBHTGJvb2xlYW4gaW52ZXJ0
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNBTVBMRVBBVFRFUk5TR0lTUFJPQykgKEdMZW51bSBw
YXR0ZXJuKTsKIyAzMzQwICIuLi9pbmNsdWRlL0dML2dsZXh0LmgiCmV4dGVybiB2b2lkIGdsQXJy
YXlFbGVtZW50RVhUIChHTGludCk7CmV4dGVybiB2b2lkIGdsQ29sb3JQb2ludGVyRVhUIChHTGlu
dCwgR0xlbnVtLCBHTHNpemVpLCBHTHNpemVpLCBjb25zdCBHTHZvaWQgKik7CmV4dGVybiB2b2lk
IGdsRHJhd0FycmF5c0VYVCAoR0xlbnVtLCBHTGludCwgR0xzaXplaSk7CmV4dGVybiB2b2lkIGds
RWRnZUZsYWdQb2ludGVyRVhUIChHTHNpemVpLCBHTHNpemVpLCBjb25zdCBHTGJvb2xlYW4gKik7
CmV4dGVybiB2b2lkIGdsR2V0UG9pbnRlcnZFWFQgKEdMZW51bSwgR0x2b2lkKiAqKTsKZXh0ZXJu
IHZvaWQgZ2xJbmRleFBvaW50ZXJFWFQgKEdMZW51bSwgR0xzaXplaSwgR0xzaXplaSwgY29uc3Qg
R0x2b2lkICopOwpleHRlcm4gdm9pZCBnbE5vcm1hbFBvaW50ZXJFWFQgKEdMZW51bSwgR0xzaXpl
aSwgR0xzaXplaSwgY29uc3QgR0x2b2lkICopOwpleHRlcm4gdm9pZCBnbFRleENvb3JkUG9pbnRl
ckVYVCAoR0xpbnQsIEdMZW51bSwgR0xzaXplaSwgR0xzaXplaSwgY29uc3QgR0x2b2lkICopOwpl
eHRlcm4gdm9pZCBnbFZlcnRleFBvaW50ZXJFWFQgKEdMaW50LCBHTGVudW0sIEdMc2l6ZWksIEdM
c2l6ZWksIGNvbnN0IEdMdm9pZCAqKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xBUlJBWUVMRU1F
TlRFWFRQUk9DKSAoR0xpbnQgaSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT0xPUlBPSU5URVJF
WFRQUk9DKSAoR0xpbnQgc2l6ZSwgR0xlbnVtIHR5cGUsIEdMc2l6ZWkgc3RyaWRlLCBHTHNpemVp
IGNvdW50LCBjb25zdCBHTHZvaWQgKnBvaW50ZXIpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMRFJB
V0FSUkFZU0VYVFBST0MpIChHTGVudW0gbW9kZSwgR0xpbnQgZmlyc3QsIEdMc2l6ZWkgY291bnQp
Owp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMRURHRUZMQUdQT0lOVEVSRVhUUFJPQykgKEdMc2l6ZWkg
c3RyaWRlLCBHTHNpemVpIGNvdW50LCBjb25zdCBHTGJvb2xlYW4gKnBvaW50ZXIpOwp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMR0VUUE9JTlRFUlZFWFRQUk9DKSAoR0xlbnVtIHBuYW1lLCBHTHZvaWQq
ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMSU5ERVhQT0lOVEVSRVhUUFJPQykgKEdM
ZW51bSB0eXBlLCBHTHNpemVpIHN0cmlkZSwgR0xzaXplaSBjb3VudCwgY29uc3QgR0x2b2lkICpw
b2ludGVyKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE5PUk1BTFBPSU5URVJFWFRQUk9DKSAoR0xl
bnVtIHR5cGUsIEdMc2l6ZWkgc3RyaWRlLCBHTHNpemVpIGNvdW50LCBjb25zdCBHTHZvaWQgKnBv
aW50ZXIpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVEVYQ09PUkRQT0lOVEVSRVhUUFJPQykgKEdM
aW50IHNpemUsIEdMZW51bSB0eXBlLCBHTHNpemVpIHN0cmlkZSwgR0xzaXplaSBjb3VudCwgY29u
c3QgR0x2b2lkICpwb2ludGVyKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWFBPSU5URVJF
WFRQUk9DKSAoR0xpbnQgc2l6ZSwgR0xlbnVtIHR5cGUsIEdMc2l6ZWkgc3RyaWRlLCBHTHNpemVp
IGNvdW50LCBjb25zdCBHTHZvaWQgKnBvaW50ZXIpOwojIDMzODggIi4uL2luY2x1ZGUvR0wvZ2xl
eHQuaCIKZXh0ZXJuIHZvaWQgZ2xCbGVuZEVxdWF0aW9uRVhUIChHTGVudW0pOwoKdHlwZWRlZiB2
b2lkICggKiBQRk5HTEJMRU5ERVFVQVRJT05FWFRQUk9DKSAoR0xlbnVtIG1vZGUpOwojIDM0MTYg
Ii4uL2luY2x1ZGUvR0wvZ2xleHQuaCIKZXh0ZXJuIHZvaWQgZ2xTcHJpdGVQYXJhbWV0ZXJmU0dJ
WCAoR0xlbnVtLCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xTcHJpdGVQYXJhbWV0ZXJmdlNHSVgg
KEdMZW51bSwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xTcHJpdGVQYXJhbWV0ZXJp
U0dJWCAoR0xlbnVtLCBHTGludCk7CmV4dGVybiB2b2lkIGdsU3ByaXRlUGFyYW1ldGVyaXZTR0lY
IChHTGVudW0sIGNvbnN0IEdMaW50ICopOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNQUklURVBB
UkFNRVRFUkZTR0lYUFJPQykgKEdMZW51bSBwbmFtZSwgR0xmbG9hdCBwYXJhbSk7CnR5cGVkZWYg
dm9pZCAoICogUEZOR0xTUFJJVEVQQVJBTUVURVJGVlNHSVhQUk9DKSAoR0xlbnVtIHBuYW1lLCBj
b25zdCBHTGZsb2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMU1BSSVRFUEFSQU1F
VEVSSVNHSVhQUk9DKSAoR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSk7CnR5cGVkZWYgdm9pZCAo
ICogUEZOR0xTUFJJVEVQQVJBTUVURVJJVlNHSVhQUk9DKSAoR0xlbnVtIHBuYW1lLCBjb25zdCBH
TGludCAqcGFyYW1zKTsKIyAzNDM0ICIuLi9pbmNsdWRlL0dML2dsZXh0LmgiCmV4dGVybiB2b2lk
IGdsUG9pbnRQYXJhbWV0ZXJmRVhUIChHTGVudW0sIEdMZmxvYXQpOwpleHRlcm4gdm9pZCBnbFBv
aW50UGFyYW1ldGVyZnZFWFQgKEdMZW51bSwgY29uc3QgR0xmbG9hdCAqKTsKCnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xQT0lOVFBBUkFNRVRFUkZFWFRQUk9DKSAoR0xlbnVtIHBuYW1lLCBHTGZsb2F0
IHBhcmFtKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFBPSU5UUEFSQU1FVEVSRlZFWFRQUk9DKSAo
R0xlbnVtIHBuYW1lLCBjb25zdCBHTGZsb2F0ICpwYXJhbXMpOwoKCgoKCmV4dGVybiB2b2lkIGds
UG9pbnRQYXJhbWV0ZXJmU0dJUyAoR0xlbnVtLCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xQb2lu
dFBhcmFtZXRlcmZ2U0dJUyAoR0xlbnVtLCBjb25zdCBHTGZsb2F0ICopOwoKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTFBPSU5UUEFSQU1FVEVSRlNHSVNQUk9DKSAoR0xlbnVtIHBuYW1lLCBHTGZsb2F0
IHBhcmFtKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFBPSU5UUEFSQU1FVEVSRlZTR0lTUFJPQykg
KEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqcGFyYW1zKTsKCgoKCgpleHRlcm4gR0xpbnQg
Z2xHZXRJbnN0cnVtZW50c1NHSVggKHZvaWQpOwpleHRlcm4gdm9pZCBnbEluc3RydW1lbnRzQnVm
ZmVyU0dJWCAoR0xzaXplaSwgR0xpbnQgKik7CmV4dGVybiBHTGludCBnbFBvbGxJbnN0cnVtZW50
c1NHSVggKEdMaW50ICopOwpleHRlcm4gdm9pZCBnbFJlYWRJbnN0cnVtZW50c1NHSVggKEdMaW50
KTsKZXh0ZXJuIHZvaWQgZ2xTdGFydEluc3RydW1lbnRzU0dJWCAodm9pZCk7CmV4dGVybiB2b2lk
IGdsU3RvcEluc3RydW1lbnRzU0dJWCAoR0xpbnQpOwoKdHlwZWRlZiBHTGludCAoICogUEZOR0xH
RVRJTlNUUlVNRU5UU1NHSVhQUk9DKSAodm9pZCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xJTlNU
UlVNRU5UU0JVRkZFUlNHSVhQUk9DKSAoR0xzaXplaSBzaXplLCBHTGludCAqYnVmZmVyKTsKdHlw
ZWRlZiBHTGludCAoICogUEZOR0xQT0xMSU5TVFJVTUVOVFNTR0lYUFJPQykgKEdMaW50ICptYXJr
ZXJfcCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xSRUFESU5TVFJVTUVOVFNTR0lYUFJPQykgKEdM
aW50IG1hcmtlcik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xTVEFSVElOU1RSVU1FTlRTU0dJWFBS
T0MpICh2b2lkKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNUT1BJTlNUUlVNRU5UU1NHSVhQUk9D
KSAoR0xpbnQgbWFya2VyKTsKIyAzNDc2ICIuLi9pbmNsdWRlL0dML2dsZXh0LmgiCmV4dGVybiB2
b2lkIGdsRnJhbWVab29tU0dJWCAoR0xpbnQpOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTEZSQU1F
Wk9PTVNHSVhQUk9DKSAoR0xpbnQgZmFjdG9yKTsKCgoKCgpleHRlcm4gdm9pZCBnbFRhZ1NhbXBs
ZUJ1ZmZlclNHSVggKHZvaWQpOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTFRBR1NBTVBMRUJVRkZF
UlNHSVhQUk9DKSAodm9pZCk7CgoKCgoKZXh0ZXJuIHZvaWQgZ2xEZWZvcm1hdGlvbk1hcDNkU0dJ
WCAoR0xlbnVtLCBHTGRvdWJsZSwgR0xkb3VibGUsIEdMaW50LCBHTGludCwgR0xkb3VibGUsIEdM
ZG91YmxlLCBHTGludCwgR0xpbnQsIEdMZG91YmxlLCBHTGRvdWJsZSwgR0xpbnQsIEdMaW50LCBj
b25zdCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQgZ2xEZWZvcm1hdGlvbk1hcDNmU0dJWCAoR0xl
bnVtLCBHTGZsb2F0LCBHTGZsb2F0LCBHTGludCwgR0xpbnQsIEdMZmxvYXQsIEdMZmxvYXQsIEdM
aW50LCBHTGludCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xpbnQsIEdMaW50LCBjb25zdCBHTGZsb2F0
ICopOwpleHRlcm4gdm9pZCBnbERlZm9ybVNHSVggKEdMYml0ZmllbGQpOwpleHRlcm4gdm9pZCBn
bExvYWRJZGVudGl0eURlZm9ybWF0aW9uTWFwU0dJWCAoR0xiaXRmaWVsZCk7Cgp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMREVGT1JNQVRJT05NQVAzRFNHSVhQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xk
b3VibGUgdTEsIEdMZG91YmxlIHUyLCBHTGludCB1c3RyaWRlLCBHTGludCB1b3JkZXIsIEdMZG91
YmxlIHYxLCBHTGRvdWJsZSB2MiwgR0xpbnQgdnN0cmlkZSwgR0xpbnQgdm9yZGVyLCBHTGRvdWJs
ZSB3MSwgR0xkb3VibGUgdzIsIEdMaW50IHdzdHJpZGUsIEdMaW50IHdvcmRlciwgY29uc3QgR0xk
b3VibGUgKnBvaW50cyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xERUZPUk1BVElPTk1BUDNGU0dJ
WFBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGZsb2F0IHUxLCBHTGZsb2F0IHUyLCBHTGludCB1c3Ry
aWRlLCBHTGludCB1b3JkZXIsIEdMZmxvYXQgdjEsIEdMZmxvYXQgdjIsIEdMaW50IHZzdHJpZGUs
IEdMaW50IHZvcmRlciwgR0xmbG9hdCB3MSwgR0xmbG9hdCB3MiwgR0xpbnQgd3N0cmlkZSwgR0xp
bnQgd29yZGVyLCBjb25zdCBHTGZsb2F0ICpwb2ludHMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
REVGT1JNU0dJWFBST0MpIChHTGJpdGZpZWxkIG1hc2spOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
TE9BRElERU5USVRZREVGT1JNQVRJT05NQVBTR0lYUFJPQykgKEdMYml0ZmllbGQgbWFzayk7CgoK
CgoKZXh0ZXJuIHZvaWQgZ2xSZWZlcmVuY2VQbGFuZVNHSVggKGNvbnN0IEdMZG91YmxlICopOwoK
dHlwZWRlZiB2b2lkICggKiBQRk5HTFJFRkVSRU5DRVBMQU5FU0dJWFBST0MpIChjb25zdCBHTGRv
dWJsZSAqZXF1YXRpb24pOwoKCgoKCmV4dGVybiB2b2lkIGdsRmx1c2hSYXN0ZXJTR0lYICh2b2lk
KTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xGTFVTSFJBU1RFUlNHSVhQUk9DKSAodm9pZCk7CiMg
MzUyNiAiLi4vaW5jbHVkZS9HTC9nbGV4dC5oIgpleHRlcm4gdm9pZCBnbEZvZ0Z1bmNTR0lTIChH
THNpemVpLCBjb25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbEdldEZvZ0Z1bmNTR0lTIChH
TGZsb2F0ICopOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTEZPR0ZVTkNTR0lTUFJPQykgKEdMc2l6
ZWkgbiwgY29uc3QgR0xmbG9hdCAqcG9pbnRzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVEZP
R0ZVTkNTR0lTUFJPQykgKEdMZmxvYXQgKnBvaW50cyk7CiMgMzU0MCAiLi4vaW5jbHVkZS9HTC9n
bGV4dC5oIgpleHRlcm4gdm9pZCBnbEltYWdlVHJhbnNmb3JtUGFyYW1ldGVyaUhQIChHTGVudW0s
IEdMZW51bSwgR0xpbnQpOwpleHRlcm4gdm9pZCBnbEltYWdlVHJhbnNmb3JtUGFyYW1ldGVyZkhQ
IChHTGVudW0sIEdMZW51bSwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsSW1hZ2VUcmFuc2Zvcm1Q
YXJhbWV0ZXJpdkhQIChHTGVudW0sIEdMZW51bSwgY29uc3QgR0xpbnQgKik7CmV4dGVybiB2b2lk
IGdsSW1hZ2VUcmFuc2Zvcm1QYXJhbWV0ZXJmdkhQIChHTGVudW0sIEdMZW51bSwgY29uc3QgR0xm
bG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRJbWFnZVRyYW5zZm9ybVBhcmFtZXRlcml2SFAgKEdM
ZW51bSwgR0xlbnVtLCBHTGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRJbWFnZVRyYW5zZm9ybVBh
cmFtZXRlcmZ2SFAgKEdMZW51bSwgR0xlbnVtLCBHTGZsb2F0ICopOwoKdHlwZWRlZiB2b2lkICgg
KiBQRk5HTElNQUdFVFJBTlNGT1JNUEFSQU1FVEVSSUhQUFJPQykgKEdMZW51bSB0YXJnZXQsIEdM
ZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0pOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMSU1BR0VUUkFO
U0ZPUk1QQVJBTUVURVJGSFBQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGZs
b2F0IHBhcmFtKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTElNQUdFVFJBTlNGT1JNUEFSQU1FVEVS
SVZIUFBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMaW50ICpwYXJh
bXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMSU1BR0VUUkFOU0ZPUk1QQVJBTUVURVJGVkhQUFJP
QykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqcGFyYW1zKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVElNQUdFVFJBTlNGT1JNUEFSQU1FVEVSSVZIUFBST0Mp
IChHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMaW50ICpwYXJhbXMpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMR0VUSU1BR0VUUkFOU0ZPUk1QQVJBTUVURVJGVkhQUFJPQykgKEdMZW51bSB0
YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCAqcGFyYW1zKTsKIyAzNTY2ICIuLi9pbmNsdWRl
L0dML2dsZXh0LmgiCmV4dGVybiB2b2lkIGdsQ29sb3JTdWJUYWJsZUVYVCAoR0xlbnVtLCBHTHNp
emVpLCBHTHNpemVpLCBHTGVudW0sIEdMZW51bSwgY29uc3QgR0x2b2lkICopOwpleHRlcm4gdm9p
ZCBnbENvcHlDb2xvclN1YlRhYmxlRVhUIChHTGVudW0sIEdMc2l6ZWksIEdMaW50LCBHTGludCwg
R0xzaXplaSk7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09MT1JTVUJUQUJMRUVYVFBST0MpIChH
TGVudW0gdGFyZ2V0LCBHTHNpemVpIHN0YXJ0LCBHTHNpemVpIGNvdW50LCBHTGVudW0gZm9ybWF0
LCBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICpkYXRhKTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TENPUFlDT0xPUlNVQlRBQkxFRVhUUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWkgc3RhcnQs
IEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgpOwojIDM1ODAgIi4uL2luY2x1ZGUvR0wv
Z2xleHQuaCIKZXh0ZXJuIHZvaWQgZ2xIaW50UEdJIChHTGVudW0sIEdMaW50KTsKCnR5cGVkZWYg
dm9pZCAoICogUEZOR0xISU5UUEdJUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMaW50IG1vZGUpOwoK
CgoKCmV4dGVybiB2b2lkIGdsQ29sb3JUYWJsZUVYVCAoR0xlbnVtLCBHTGVudW0sIEdMc2l6ZWks
IEdMZW51bSwgR0xlbnVtLCBjb25zdCBHTHZvaWQgKik7CmV4dGVybiB2b2lkIGdsR2V0Q29sb3JU
YWJsZUVYVCAoR0xlbnVtLCBHTGVudW0sIEdMZW51bSwgR0x2b2lkICopOwpleHRlcm4gdm9pZCBn
bEdldENvbG9yVGFibGVQYXJhbWV0ZXJpdkVYVCAoR0xlbnVtLCBHTGVudW0sIEdMaW50ICopOwpl
eHRlcm4gdm9pZCBnbEdldENvbG9yVGFibGVQYXJhbWV0ZXJmdkVYVCAoR0xlbnVtLCBHTGVudW0s
IEdMZmxvYXQgKik7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09MT1JUQUJMRUVYVFBST0MpIChH
TGVudW0gdGFyZ2V0LCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMZW51
bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQgKnRhYmxlKTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTEdFVENPTE9SVEFCTEVFWFRQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGZv
cm1hdCwgR0xlbnVtIHR5cGUsIEdMdm9pZCAqZGF0YSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xH
RVRDT0xPUlRBQkxFUEFSQU1FVEVSSVZFWFRQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBu
YW1lLCBHTGludCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVENPTE9SVEFCTEVQ
QVJBTUVURVJGVkVYVFBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQg
KnBhcmFtcyk7CiMgMzYwNiAiLi4vaW5jbHVkZS9HTC9nbGV4dC5oIgpleHRlcm4gdm9pZCBnbEdl
dExpc3RQYXJhbWV0ZXJmdlNHSVggKEdMdWludCwgR0xlbnVtLCBHTGZsb2F0ICopOwpleHRlcm4g
dm9pZCBnbEdldExpc3RQYXJhbWV0ZXJpdlNHSVggKEdMdWludCwgR0xlbnVtLCBHTGludCAqKTsK
ZXh0ZXJuIHZvaWQgZ2xMaXN0UGFyYW1ldGVyZlNHSVggKEdMdWludCwgR0xlbnVtLCBHTGZsb2F0
KTsKZXh0ZXJuIHZvaWQgZ2xMaXN0UGFyYW1ldGVyZnZTR0lYIChHTHVpbnQsIEdMZW51bSwgY29u
c3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xMaXN0UGFyYW1ldGVyaVNHSVggKEdMdWludCwg
R0xlbnVtLCBHTGludCk7CmV4dGVybiB2b2lkIGdsTGlzdFBhcmFtZXRlcml2U0dJWCAoR0x1aW50
LCBHTGVudW0sIGNvbnN0IEdMaW50ICopOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVExJU1RQ
QVJBTUVURVJGVlNHSVhQUk9DKSAoR0x1aW50IGxpc3QsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCAq
cGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVExJU1RQQVJBTUVURVJJVlNHSVhQUk9D
KSAoR0x1aW50IGxpc3QsIEdMZW51bSBwbmFtZSwgR0xpbnQgKnBhcmFtcyk7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xMSVNUUEFSQU1FVEVSRlNHSVhQUk9DKSAoR0x1aW50IGxpc3QsIEdMZW51bSBw
bmFtZSwgR0xmbG9hdCBwYXJhbSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xMSVNUUEFSQU1FVEVS
RlZTR0lYUFJPQykgKEdMdWludCBsaXN0LCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMZmxvYXQgKnBh
cmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xMSVNUUEFSQU1FVEVSSVNHSVhQUk9DKSAoR0x1
aW50IGxpc3QsIEdMZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0pOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMTElTVFBBUkFNRVRFUklWU0dJWFBST0MpIChHTHVpbnQgbGlzdCwgR0xlbnVtIHBuYW1lLCBj
b25zdCBHTGludCAqcGFyYW1zKTsKIyAzNjQ0ICIuLi9pbmNsdWRlL0dML2dsZXh0LmgiCmV4dGVy
biB2b2lkIGdsSW5kZXhNYXRlcmlhbEVYVCAoR0xlbnVtLCBHTGVudW0pOwoKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTElOREVYTUFURVJJQUxFWFRQUk9DKSAoR0xlbnVtIGZhY2UsIEdMZW51bSBtb2Rl
KTsKCgoKCgpleHRlcm4gdm9pZCBnbEluZGV4RnVuY0VYVCAoR0xlbnVtLCBHTGNsYW1wZik7Cgp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMSU5ERVhGVU5DRVhUUFJPQykgKEdMZW51bSBmdW5jLCBHTGNs
YW1wZiByZWYpOwojIDM2NjQgIi4uL2luY2x1ZGUvR0wvZ2xleHQuaCIKZXh0ZXJuIHZvaWQgZ2xM
b2NrQXJyYXlzRVhUIChHTGludCwgR0xzaXplaSk7CmV4dGVybiB2b2lkIGdsVW5sb2NrQXJyYXlz
RVhUICh2b2lkKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xMT0NLQVJSQVlTRVhUUFJPQykgKEdM
aW50IGZpcnN0LCBHTHNpemVpIGNvdW50KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFVOTE9DS0FS
UkFZU0VYVFBST0MpICh2b2lkKTsKCgoKCgpleHRlcm4gdm9pZCBnbEN1bGxQYXJhbWV0ZXJkdkVY
VCAoR0xlbnVtLCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQgZ2xDdWxsUGFyYW1ldGVyZnZFWFQg
KEdMZW51bSwgR0xmbG9hdCAqKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xDVUxMUEFSQU1FVEVS
RFZFWFRQUk9DKSAoR0xlbnVtIHBuYW1lLCBHTGRvdWJsZSAqcGFyYW1zKTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTENVTExQQVJBTUVURVJGVkVYVFBST0MpIChHTGVudW0gcG5hbWUsIEdMZmxvYXQg
KnBhcmFtcyk7CiMgMzY4OCAiLi4vaW5jbHVkZS9HTC9nbGV4dC5oIgpleHRlcm4gdm9pZCBnbEZy
YWdtZW50Q29sb3JNYXRlcmlhbFNHSVggKEdMZW51bSwgR0xlbnVtKTsKZXh0ZXJuIHZvaWQgZ2xG
cmFnbWVudExpZ2h0ZlNHSVggKEdMZW51bSwgR0xlbnVtLCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQg
Z2xGcmFnbWVudExpZ2h0ZnZTR0lYIChHTGVudW0sIEdMZW51bSwgY29uc3QgR0xmbG9hdCAqKTsK
ZXh0ZXJuIHZvaWQgZ2xGcmFnbWVudExpZ2h0aVNHSVggKEdMZW51bSwgR0xlbnVtLCBHTGludCk7
CmV4dGVybiB2b2lkIGdsRnJhZ21lbnRMaWdodGl2U0dJWCAoR0xlbnVtLCBHTGVudW0sIGNvbnN0
IEdMaW50ICopOwpleHRlcm4gdm9pZCBnbEZyYWdtZW50TGlnaHRNb2RlbGZTR0lYIChHTGVudW0s
IEdMZmxvYXQpOwpleHRlcm4gdm9pZCBnbEZyYWdtZW50TGlnaHRNb2RlbGZ2U0dJWCAoR0xlbnVt
LCBjb25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbEZyYWdtZW50TGlnaHRNb2RlbGlTR0lY
IChHTGVudW0sIEdMaW50KTsKZXh0ZXJuIHZvaWQgZ2xGcmFnbWVudExpZ2h0TW9kZWxpdlNHSVgg
KEdMZW51bSwgY29uc3QgR0xpbnQgKik7CmV4dGVybiB2b2lkIGdsRnJhZ21lbnRNYXRlcmlhbGZT
R0lYIChHTGVudW0sIEdMZW51bSwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsRnJhZ21lbnRNYXRl
cmlhbGZ2U0dJWCAoR0xlbnVtLCBHTGVudW0sIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lk
IGdsRnJhZ21lbnRNYXRlcmlhbGlTR0lYIChHTGVudW0sIEdMZW51bSwgR0xpbnQpOwpleHRlcm4g
dm9pZCBnbEZyYWdtZW50TWF0ZXJpYWxpdlNHSVggKEdMZW51bSwgR0xlbnVtLCBjb25zdCBHTGlu
dCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRGcmFnbWVudExpZ2h0ZnZTR0lYIChHTGVudW0sIEdMZW51
bSwgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRGcmFnbWVudExpZ2h0aXZTR0lYIChHTGVu
dW0sIEdMZW51bSwgR0xpbnQgKik7CmV4dGVybiB2b2lkIGdsR2V0RnJhZ21lbnRNYXRlcmlhbGZ2
U0dJWCAoR0xlbnVtLCBHTGVudW0sIEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsR2V0RnJhZ21l
bnRNYXRlcmlhbGl2U0dJWCAoR0xlbnVtLCBHTGVudW0sIEdMaW50ICopOwpleHRlcm4gdm9pZCBn
bExpZ2h0RW52aVNHSVggKEdMZW51bSwgR0xpbnQpOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTEZS
QUdNRU5UQ09MT1JNQVRFUklBTFNHSVhQUk9DKSAoR0xlbnVtIGZhY2UsIEdMZW51bSBtb2RlKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTEZSQUdNRU5UTElHSFRGU0dJWFBST0MpIChHTGVudW0gbGln
aHQsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCBwYXJhbSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xG
UkFHTUVOVExJR0hURlZTR0lYUFJPQykgKEdMZW51bSBsaWdodCwgR0xlbnVtIHBuYW1lLCBjb25z
dCBHTGZsb2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMRlJBR01FTlRMSUdIVElT
R0lYUFJPQykgKEdMZW51bSBsaWdodCwgR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSk7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xGUkFHTUVOVExJR0hUSVZTR0lYUFJPQykgKEdMZW51bSBsaWdodCwg
R0xlbnVtIHBuYW1lLCBjb25zdCBHTGludCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TEZSQUdNRU5UTElHSFRNT0RFTEZTR0lYUFJPQykgKEdMZW51bSBwbmFtZSwgR0xmbG9hdCBwYXJh
bSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xGUkFHTUVOVExJR0hUTU9ERUxGVlNHSVhQUk9DKSAo
R0xlbnVtIHBuYW1lLCBjb25zdCBHTGZsb2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMRlJBR01FTlRMSUdIVE1PREVMSVNHSVhQUk9DKSAoR0xlbnVtIHBuYW1lLCBHTGludCBwYXJh
bSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xGUkFHTUVOVExJR0hUTU9ERUxJVlNHSVhQUk9DKSAo
R0xlbnVtIHBuYW1lLCBjb25zdCBHTGludCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TEZSQUdNRU5UTUFURVJJQUxGU0dJWFBST0MpIChHTGVudW0gZmFjZSwgR0xlbnVtIHBuYW1lLCBH
TGZsb2F0IHBhcmFtKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEZSQUdNRU5UTUFURVJJQUxGVlNH
SVhQUk9DKSAoR0xlbnVtIGZhY2UsIEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqcGFyYW1z
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEZSQUdNRU5UTUFURVJJQUxJU0dJWFBST0MpIChHTGVu
dW0gZmFjZSwgR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSk7CnR5cGVkZWYgdm9pZCAoICogUEZO
R0xGUkFHTUVOVE1BVEVSSUFMSVZTR0lYUFJPQykgKEdMZW51bSBmYWNlLCBHTGVudW0gcG5hbWUs
IGNvbnN0IEdMaW50ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VURlJBR01FTlRM
SUdIVEZWU0dJWFBST0MpIChHTGVudW0gbGlnaHQsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCAqcGFy
YW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVEZSQUdNRU5UTElHSFRJVlNHSVhQUk9DKSAo
R0xlbnVtIGxpZ2h0LCBHTGVudW0gcG5hbWUsIEdMaW50ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQg
KCAqIFBGTkdMR0VURlJBR01FTlRNQVRFUklBTEZWU0dJWFBST0MpIChHTGVudW0gZmFjZSwgR0xl
bnVtIHBuYW1lLCBHTGZsb2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VURlJB
R01FTlRNQVRFUklBTElWU0dJWFBST0MpIChHTGVudW0gZmFjZSwgR0xlbnVtIHBuYW1lLCBHTGlu
dCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTExJR0hURU5WSVNHSVhQUk9DKSAoR0xl
bnVtIHBuYW1lLCBHTGludCBwYXJhbSk7CiMgMzczOCAiLi4vaW5jbHVkZS9HTC9nbGV4dC5oIgpl
eHRlcm4gdm9pZCBnbERyYXdSYW5nZUVsZW1lbnRzRVhUIChHTGVudW0sIEdMdWludCwgR0x1aW50
LCBHTHNpemVpLCBHTGVudW0sIGNvbnN0IEdMdm9pZCAqKTsKCnR5cGVkZWYgdm9pZCAoICogUEZO
R0xEUkFXUkFOR0VFTEVNRU5UU0VYVFBST0MpIChHTGVudW0gbW9kZSwgR0x1aW50IHN0YXJ0LCBH
THVpbnQgZW5kLCBHTHNpemVpIGNvdW50LCBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICppbmRp
Y2VzKTsKIyAzNzU0ICIuLi9pbmNsdWRlL0dML2dsZXh0LmgiCmV4dGVybiB2b2lkIGdsQXBwbHlU
ZXh0dXJlRVhUIChHTGVudW0pOwpleHRlcm4gdm9pZCBnbFRleHR1cmVMaWdodEVYVCAoR0xlbnVt
KTsKZXh0ZXJuIHZvaWQgZ2xUZXh0dXJlTWF0ZXJpYWxFWFQgKEdMZW51bSwgR0xlbnVtKTsKCnR5
cGVkZWYgdm9pZCAoICogUEZOR0xBUFBMWVRFWFRVUkVFWFRQUk9DKSAoR0xlbnVtIG1vZGUpOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMVEVYVFVSRUxJR0hURVhUUFJPQykgKEdMZW51bSBwbmFtZSk7
CnR5cGVkZWYgdm9pZCAoICogUEZOR0xURVhUVVJFTUFURVJJQUxFWFRQUk9DKSAoR0xlbnVtIGZh
Y2UsIEdMZW51bSBtb2RlKTsKIyAzNzc0ICIuLi9pbmNsdWRlL0dML2dsZXh0LmgiCmV4dGVybiB2
b2lkIGdsQXN5bmNNYXJrZXJTR0lYIChHTHVpbnQpOwpleHRlcm4gR0xpbnQgZ2xGaW5pc2hBc3lu
Y1NHSVggKEdMdWludCAqKTsKZXh0ZXJuIEdMaW50IGdsUG9sbEFzeW5jU0dJWCAoR0x1aW50ICop
OwpleHRlcm4gR0x1aW50IGdsR2VuQXN5bmNNYXJrZXJzU0dJWCAoR0xzaXplaSk7CmV4dGVybiB2
b2lkIGdsRGVsZXRlQXN5bmNNYXJrZXJzU0dJWCAoR0x1aW50LCBHTHNpemVpKTsKZXh0ZXJuIEdM
Ym9vbGVhbiBnbElzQXN5bmNNYXJrZXJTR0lYIChHTHVpbnQpOwoKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTEFTWU5DTUFSS0VSU0dJWFBST0MpIChHTHVpbnQgbWFya2VyKTsKdHlwZWRlZiBHTGludCAo
ICogUEZOR0xGSU5JU0hBU1lOQ1NHSVhQUk9DKSAoR0x1aW50ICptYXJrZXJwKTsKdHlwZWRlZiBH
TGludCAoICogUEZOR0xQT0xMQVNZTkNTR0lYUFJPQykgKEdMdWludCAqbWFya2VycCk7CnR5cGVk
ZWYgR0x1aW50ICggKiBQRk5HTEdFTkFTWU5DTUFSS0VSU1NHSVhQUk9DKSAoR0xzaXplaSByYW5n
ZSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xERUxFVEVBU1lOQ01BUktFUlNTR0lYUFJPQykgKEdM
dWludCBtYXJrZXIsIEdMc2l6ZWkgcmFuZ2UpOwp0eXBlZGVmIEdMYm9vbGVhbiAoICogUEZOR0xJ
U0FTWU5DTUFSS0VSU0dJWFBST0MpIChHTHVpbnQgbWFya2VyKTsKIyAzODAwICIuLi9pbmNsdWRl
L0dML2dsZXh0LmgiCmV4dGVybiB2b2lkIGdsVmVydGV4UG9pbnRlcnZJTlRFTCAoR0xpbnQsIEdM
ZW51bSwgY29uc3QgR0x2b2lkKiAqKTsKZXh0ZXJuIHZvaWQgZ2xOb3JtYWxQb2ludGVydklOVEVM
IChHTGVudW0sIGNvbnN0IEdMdm9pZCogKik7CmV4dGVybiB2b2lkIGdsQ29sb3JQb2ludGVydklO
VEVMIChHTGludCwgR0xlbnVtLCBjb25zdCBHTHZvaWQqICopOwpleHRlcm4gdm9pZCBnbFRleENv
b3JkUG9pbnRlcnZJTlRFTCAoR0xpbnQsIEdMZW51bSwgY29uc3QgR0x2b2lkKiAqKTsKCnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xWRVJURVhQT0lOVEVSVklOVEVMUFJPQykgKEdMaW50IHNpemUsIEdM
ZW51bSB0eXBlLCBjb25zdCBHTHZvaWQqICpwb2ludGVyKTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TE5PUk1BTFBPSU5URVJWSU5URUxQUk9DKSAoR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9pZCogKnBv
aW50ZXIpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09MT1JQT0lOVEVSVklOVEVMUFJPQykgKEdM
aW50IHNpemUsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQqICpwb2ludGVyKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTFRFWENPT1JEUE9JTlRFUlZJTlRFTFBST0MpIChHTGludCBzaXplLCBHTGVu
dW0gdHlwZSwgY29uc3QgR0x2b2lkKiAqcG9pbnRlcik7CiMgMzgxOCAiLi4vaW5jbHVkZS9HTC9n
bGV4dC5oIgpleHRlcm4gdm9pZCBnbFBpeGVsVHJhbnNmb3JtUGFyYW1ldGVyaUVYVCAoR0xlbnVt
LCBHTGVudW0sIEdMaW50KTsKZXh0ZXJuIHZvaWQgZ2xQaXhlbFRyYW5zZm9ybVBhcmFtZXRlcmZF
WFQgKEdMZW51bSwgR0xlbnVtLCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xQaXhlbFRyYW5zZm9y
bVBhcmFtZXRlcml2RVhUIChHTGVudW0sIEdMZW51bSwgY29uc3QgR0xpbnQgKik7CmV4dGVybiB2
b2lkIGdsUGl4ZWxUcmFuc2Zvcm1QYXJhbWV0ZXJmdkVYVCAoR0xlbnVtLCBHTGVudW0sIGNvbnN0
IEdMZmxvYXQgKik7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMUElYRUxUUkFOU0ZPUk1QQVJBTUVU
RVJJRVhUUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0pOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMUElYRUxUUkFOU0ZPUk1QQVJBTUVURVJGRVhUUFJPQykgKEdM
ZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCBwYXJhbSk7CnR5cGVkZWYgdm9pZCAo
ICogUEZOR0xQSVhFTFRSQU5TRk9STVBBUkFNRVRFUklWRVhUUFJPQykgKEdMZW51bSB0YXJnZXQs
IEdMZW51bSBwbmFtZSwgY29uc3QgR0xpbnQgKnBhcmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZO
R0xQSVhFTFRSQU5TRk9STVBBUkFNRVRFUkZWRVhUUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMZW51
bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqcGFyYW1zKTsKIyAzODQ0ICIuLi9pbmNsdWRlL0dML2ds
ZXh0LmgiCmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5Q29sb3IzYkVYVCAoR0xieXRlLCBHTGJ5dGUs
IEdMYnl0ZSk7CmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5Q29sb3IzYnZFWFQgKGNvbnN0IEdMYnl0
ZSAqKTsKZXh0ZXJuIHZvaWQgZ2xTZWNvbmRhcnlDb2xvcjNkRVhUIChHTGRvdWJsZSwgR0xkb3Vi
bGUsIEdMZG91YmxlKTsKZXh0ZXJuIHZvaWQgZ2xTZWNvbmRhcnlDb2xvcjNkdkVYVCAoY29uc3Qg
R0xkb3VibGUgKik7CmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5Q29sb3IzZkVYVCAoR0xmbG9hdCwg
R0xmbG9hdCwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5Q29sb3IzZnZFWFQgKGNv
bnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5Q29sb3IzaUVYVCAoR0xpbnQs
IEdMaW50LCBHTGludCk7CmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5Q29sb3IzaXZFWFQgKGNvbnN0
IEdMaW50ICopOwpleHRlcm4gdm9pZCBnbFNlY29uZGFyeUNvbG9yM3NFWFQgKEdMc2hvcnQsIEdM
c2hvcnQsIEdMc2hvcnQpOwpleHRlcm4gdm9pZCBnbFNlY29uZGFyeUNvbG9yM3N2RVhUIChjb25z
dCBHTHNob3J0ICopOwpleHRlcm4gdm9pZCBnbFNlY29uZGFyeUNvbG9yM3ViRVhUIChHTHVieXRl
LCBHTHVieXRlLCBHTHVieXRlKTsKZXh0ZXJuIHZvaWQgZ2xTZWNvbmRhcnlDb2xvcjN1YnZFWFQg
KGNvbnN0IEdMdWJ5dGUgKik7CmV4dGVybiB2b2lkIGdsU2Vjb25kYXJ5Q29sb3IzdWlFWFQgKEdM
dWludCwgR0x1aW50LCBHTHVpbnQpOwpleHRlcm4gdm9pZCBnbFNlY29uZGFyeUNvbG9yM3VpdkVY
VCAoY29uc3QgR0x1aW50ICopOwpleHRlcm4gdm9pZCBnbFNlY29uZGFyeUNvbG9yM3VzRVhUIChH
THVzaG9ydCwgR0x1c2hvcnQsIEdMdXNob3J0KTsKZXh0ZXJuIHZvaWQgZ2xTZWNvbmRhcnlDb2xv
cjN1c3ZFWFQgKGNvbnN0IEdMdXNob3J0ICopOwpleHRlcm4gdm9pZCBnbFNlY29uZGFyeUNvbG9y
UG9pbnRlckVYVCAoR0xpbnQsIEdMZW51bSwgR0xzaXplaSwgY29uc3QgR0x2b2lkICopOwoKdHlw
ZWRlZiB2b2lkICggKiBQRk5HTFNFQ09OREFSWUNPTE9SM0JFWFRQUk9DKSAoR0xieXRlIHJlZCwg
R0xieXRlIGdyZWVuLCBHTGJ5dGUgYmx1ZSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xTRUNPTkRB
UllDT0xPUjNCVkVYVFBST0MpIChjb25zdCBHTGJ5dGUgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMU0VDT05EQVJZQ09MT1IzREVYVFBST0MpIChHTGRvdWJsZSByZWQsIEdMZG91YmxlIGdyZWVu
LCBHTGRvdWJsZSBibHVlKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNFQ09OREFSWUNPTE9SM0RW
RVhUUFJPQykgKGNvbnN0IEdMZG91YmxlICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNFQ09O
REFSWUNPTE9SM0ZFWFRQUk9DKSAoR0xmbG9hdCByZWQsIEdMZmxvYXQgZ3JlZW4sIEdMZmxvYXQg
Ymx1ZSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xTRUNPTkRBUllDT0xPUjNGVkVYVFBST0MpIChj
b25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNFQ09OREFSWUNPTE9SM0lF
WFRQUk9DKSAoR0xpbnQgcmVkLCBHTGludCBncmVlbiwgR0xpbnQgYmx1ZSk7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xTRUNPTkRBUllDT0xPUjNJVkVYVFBST0MpIChjb25zdCBHTGludCAqdik7CnR5
cGVkZWYgdm9pZCAoICogUEZOR0xTRUNPTkRBUllDT0xPUjNTRVhUUFJPQykgKEdMc2hvcnQgcmVk
LCBHTHNob3J0IGdyZWVuLCBHTHNob3J0IGJsdWUpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMU0VD
T05EQVJZQ09MT1IzU1ZFWFRQUk9DKSAoY29uc3QgR0xzaG9ydCAqdik7CnR5cGVkZWYgdm9pZCAo
ICogUEZOR0xTRUNPTkRBUllDT0xPUjNVQkVYVFBST0MpIChHTHVieXRlIHJlZCwgR0x1Ynl0ZSBn
cmVlbiwgR0x1Ynl0ZSBibHVlKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNFQ09OREFSWUNPTE9S
M1VCVkVYVFBST0MpIChjb25zdCBHTHVieXRlICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNF
Q09OREFSWUNPTE9SM1VJRVhUUFJPQykgKEdMdWludCByZWQsIEdMdWludCBncmVlbiwgR0x1aW50
IGJsdWUpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMU0VDT05EQVJZQ09MT1IzVUlWRVhUUFJPQykg
KGNvbnN0IEdMdWludCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xTRUNPTkRBUllDT0xPUjNV
U0VYVFBST0MpIChHTHVzaG9ydCByZWQsIEdMdXNob3J0IGdyZWVuLCBHTHVzaG9ydCBibHVlKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTFNFQ09OREFSWUNPTE9SM1VTVkVYVFBST0MpIChjb25zdCBH
THVzaG9ydCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xTRUNPTkRBUllDT0xPUlBPSU5URVJF
WFRQUk9DKSAoR0xpbnQgc2l6ZSwgR0xlbnVtIHR5cGUsIEdMc2l6ZWkgc3RyaWRlLCBjb25zdCBH
THZvaWQgKnBvaW50ZXIpOwoKCgoKCmV4dGVybiB2b2lkIGdsVGV4dHVyZU5vcm1hbEVYVCAoR0xl
bnVtKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xURVhUVVJFTk9STUFMRVhUUFJPQykgKEdMZW51
bSBtb2RlKTsKCgoKCgpleHRlcm4gdm9pZCBnbE11bHRpRHJhd0FycmF5c0VYVCAoR0xlbnVtLCBH
TGludCAqLCBHTHNpemVpICosIEdMc2l6ZWkpOwpleHRlcm4gdm9pZCBnbE11bHRpRHJhd0VsZW1l
bnRzRVhUIChHTGVudW0sIGNvbnN0IEdMc2l6ZWkgKiwgR0xlbnVtLCBjb25zdCBHTHZvaWQqICos
IEdMc2l6ZWkpOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJRFJBV0FSUkFZU0VYVFBST0Mp
IChHTGVudW0gbW9kZSwgR0xpbnQgKmZpcnN0LCBHTHNpemVpICpjb3VudCwgR0xzaXplaSBwcmlt
Y291bnQpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTVVMVElEUkFXRUxFTUVOVFNFWFRQUk9DKSAo
R0xlbnVtIG1vZGUsIGNvbnN0IEdMc2l6ZWkgKmNvdW50LCBHTGVudW0gdHlwZSwgY29uc3QgR0x2
b2lkKiAqaW5kaWNlcywgR0xzaXplaSBwcmltY291bnQpOwoKCgoKCmV4dGVybiB2b2lkIGdsRm9n
Q29vcmRmRVhUIChHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xGb2dDb29yZGZ2RVhUIChjb25zdCBH
TGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbEZvZ0Nvb3JkZEVYVCAoR0xkb3VibGUpOwpleHRlcm4g
dm9pZCBnbEZvZ0Nvb3JkZHZFWFQgKGNvbnN0IEdMZG91YmxlICopOwpleHRlcm4gdm9pZCBnbEZv
Z0Nvb3JkUG9pbnRlckVYVCAoR0xlbnVtLCBHTHNpemVpLCBjb25zdCBHTHZvaWQgKik7Cgp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMRk9HQ09PUkRGRVhUUFJPQykgKEdMZmxvYXQgY29vcmQpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMRk9HQ09PUkRGVkVYVFBST0MpIChjb25zdCBHTGZsb2F0ICpjb29y
ZCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xGT0dDT09SRERFWFRQUk9DKSAoR0xkb3VibGUgY29v
cmQpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMRk9HQ09PUkREVkVYVFBST0MpIChjb25zdCBHTGRv
dWJsZSAqY29vcmQpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMRk9HQ09PUkRQT0lOVEVSRVhUUFJP
QykgKEdMZW51bSB0eXBlLCBHTHNpemVpIHN0cmlkZSwgY29uc3QgR0x2b2lkICpwb2ludGVyKTsK
IyAzOTIyICIuLi9pbmNsdWRlL0dML2dsZXh0LmgiCmV4dGVybiB2b2lkIGdsVGFuZ2VudDNiRVhU
IChHTGJ5dGUsIEdMYnl0ZSwgR0xieXRlKTsKZXh0ZXJuIHZvaWQgZ2xUYW5nZW50M2J2RVhUIChj
b25zdCBHTGJ5dGUgKik7CmV4dGVybiB2b2lkIGdsVGFuZ2VudDNkRVhUIChHTGRvdWJsZSwgR0xk
b3VibGUsIEdMZG91YmxlKTsKZXh0ZXJuIHZvaWQgZ2xUYW5nZW50M2R2RVhUIChjb25zdCBHTGRv
dWJsZSAqKTsKZXh0ZXJuIHZvaWQgZ2xUYW5nZW50M2ZFWFQgKEdMZmxvYXQsIEdMZmxvYXQsIEdM
ZmxvYXQpOwpleHRlcm4gdm9pZCBnbFRhbmdlbnQzZnZFWFQgKGNvbnN0IEdMZmxvYXQgKik7CmV4
dGVybiB2b2lkIGdsVGFuZ2VudDNpRVhUIChHTGludCwgR0xpbnQsIEdMaW50KTsKZXh0ZXJuIHZv
aWQgZ2xUYW5nZW50M2l2RVhUIChjb25zdCBHTGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xUYW5nZW50
M3NFWFQgKEdMc2hvcnQsIEdMc2hvcnQsIEdMc2hvcnQpOwpleHRlcm4gdm9pZCBnbFRhbmdlbnQz
c3ZFWFQgKGNvbnN0IEdMc2hvcnQgKik7CmV4dGVybiB2b2lkIGdsQmlub3JtYWwzYkVYVCAoR0xi
eXRlLCBHTGJ5dGUsIEdMYnl0ZSk7CmV4dGVybiB2b2lkIGdsQmlub3JtYWwzYnZFWFQgKGNvbnN0
IEdMYnl0ZSAqKTsKZXh0ZXJuIHZvaWQgZ2xCaW5vcm1hbDNkRVhUIChHTGRvdWJsZSwgR0xkb3Vi
bGUsIEdMZG91YmxlKTsKZXh0ZXJuIHZvaWQgZ2xCaW5vcm1hbDNkdkVYVCAoY29uc3QgR0xkb3Vi
bGUgKik7CmV4dGVybiB2b2lkIGdsQmlub3JtYWwzZkVYVCAoR0xmbG9hdCwgR0xmbG9hdCwgR0xm
bG9hdCk7CmV4dGVybiB2b2lkIGdsQmlub3JtYWwzZnZFWFQgKGNvbnN0IEdMZmxvYXQgKik7CmV4
dGVybiB2b2lkIGdsQmlub3JtYWwzaUVYVCAoR0xpbnQsIEdMaW50LCBHTGludCk7CmV4dGVybiB2
b2lkIGdsQmlub3JtYWwzaXZFWFQgKGNvbnN0IEdMaW50ICopOwpleHRlcm4gdm9pZCBnbEJpbm9y
bWFsM3NFWFQgKEdMc2hvcnQsIEdMc2hvcnQsIEdMc2hvcnQpOwpleHRlcm4gdm9pZCBnbEJpbm9y
bWFsM3N2RVhUIChjb25zdCBHTHNob3J0ICopOwpleHRlcm4gdm9pZCBnbFRhbmdlbnRQb2ludGVy
RVhUIChHTGVudW0sIEdMc2l6ZWksIGNvbnN0IEdMdm9pZCAqKTsKZXh0ZXJuIHZvaWQgZ2xCaW5v
cm1hbFBvaW50ZXJFWFQgKEdMZW51bSwgR0xzaXplaSwgY29uc3QgR0x2b2lkICopOwoKdHlwZWRl
ZiB2b2lkICggKiBQRk5HTFRBTkdFTlQzQkVYVFBST0MpIChHTGJ5dGUgdHgsIEdMYnl0ZSB0eSwg
R0xieXRlIHR6KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFRBTkdFTlQzQlZFWFRQUk9DKSAoY29u
c3QgR0xieXRlICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFRBTkdFTlQzREVYVFBST0MpIChH
TGRvdWJsZSB0eCwgR0xkb3VibGUgdHksIEdMZG91YmxlIHR6KTsKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTFRBTkdFTlQzRFZFWFRQUk9DKSAoY29uc3QgR0xkb3VibGUgKnYpOwp0eXBlZGVmIHZvaWQg
KCAqIFBGTkdMVEFOR0VOVDNGRVhUUFJPQykgKEdMZmxvYXQgdHgsIEdMZmxvYXQgdHksIEdMZmxv
YXQgdHopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVEFOR0VOVDNGVkVYVFBST0MpIChjb25zdCBH
TGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFRBTkdFTlQzSUVYVFBST0MpIChHTGlu
dCB0eCwgR0xpbnQgdHksIEdMaW50IHR6KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFRBTkdFTlQz
SVZFWFRQUk9DKSAoY29uc3QgR0xpbnQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVEFOR0VO
VDNTRVhUUFJPQykgKEdMc2hvcnQgdHgsIEdMc2hvcnQgdHksIEdMc2hvcnQgdHopOwp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMVEFOR0VOVDNTVkVYVFBST0MpIChjb25zdCBHTHNob3J0ICp2KTsKdHlw
ZWRlZiB2b2lkICggKiBQRk5HTEJJTk9STUFMM0JFWFRQUk9DKSAoR0xieXRlIGJ4LCBHTGJ5dGUg
YnksIEdMYnl0ZSBieik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xCSU5PUk1BTDNCVkVYVFBST0Mp
IChjb25zdCBHTGJ5dGUgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQklOT1JNQUwzREVYVFBS
T0MpIChHTGRvdWJsZSBieCwgR0xkb3VibGUgYnksIEdMZG91YmxlIGJ6KTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTEJJTk9STUFMM0RWRVhUUFJPQykgKGNvbnN0IEdMZG91YmxlICp2KTsKdHlwZWRl
ZiB2b2lkICggKiBQRk5HTEJJTk9STUFMM0ZFWFRQUk9DKSAoR0xmbG9hdCBieCwgR0xmbG9hdCBi
eSwgR0xmbG9hdCBieik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xCSU5PUk1BTDNGVkVYVFBST0Mp
IChjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEJJTk9STUFMM0lFWFRQ
Uk9DKSAoR0xpbnQgYngsIEdMaW50IGJ5LCBHTGludCBieik7CnR5cGVkZWYgdm9pZCAoICogUEZO
R0xCSU5PUk1BTDNJVkVYVFBST0MpIChjb25zdCBHTGludCAqdik7CnR5cGVkZWYgdm9pZCAoICog
UEZOR0xCSU5PUk1BTDNTRVhUUFJPQykgKEdMc2hvcnQgYngsIEdMc2hvcnQgYnksIEdMc2hvcnQg
YnopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQklOT1JNQUwzU1ZFWFRQUk9DKSAoY29uc3QgR0xz
aG9ydCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xUQU5HRU5UUE9JTlRFUkVYVFBST0MpIChH
TGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUsIGNvbnN0IEdMdm9pZCAqcG9pbnRlcik7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xCSU5PUk1BTFBPSU5URVJFWFRQUk9DKSAoR0xlbnVtIHR5cGUsIEdM
c2l6ZWkgc3RyaWRlLCBjb25zdCBHTHZvaWQgKnBvaW50ZXIpOwojIDM5ODggIi4uL2luY2x1ZGUv
R0wvZ2xleHQuaCIKZXh0ZXJuIHZvaWQgZ2xGaW5pc2hUZXh0dXJlU1VOWCAodm9pZCk7Cgp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMRklOSVNIVEVYVFVSRVNVTlhQUk9DKSAodm9pZCk7CgoKCgoKZXh0
ZXJuIHZvaWQgZ2xHbG9iYWxBbHBoYUZhY3RvcmJTVU4gKEdMYnl0ZSk7CmV4dGVybiB2b2lkIGds
R2xvYmFsQWxwaGFGYWN0b3JzU1VOIChHTHNob3J0KTsKZXh0ZXJuIHZvaWQgZ2xHbG9iYWxBbHBo
YUZhY3RvcmlTVU4gKEdMaW50KTsKZXh0ZXJuIHZvaWQgZ2xHbG9iYWxBbHBoYUZhY3RvcmZTVU4g
KEdMZmxvYXQpOwpleHRlcm4gdm9pZCBnbEdsb2JhbEFscGhhRmFjdG9yZFNVTiAoR0xkb3VibGUp
OwpleHRlcm4gdm9pZCBnbEdsb2JhbEFscGhhRmFjdG9ydWJTVU4gKEdMdWJ5dGUpOwpleHRlcm4g
dm9pZCBnbEdsb2JhbEFscGhhRmFjdG9ydXNTVU4gKEdMdXNob3J0KTsKZXh0ZXJuIHZvaWQgZ2xH
bG9iYWxBbHBoYUZhY3RvcnVpU1VOIChHTHVpbnQpOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdM
T0JBTEFMUEhBRkFDVE9SQlNVTlBST0MpIChHTGJ5dGUgZmFjdG9yKTsKdHlwZWRlZiB2b2lkICgg
KiBQRk5HTEdMT0JBTEFMUEhBRkFDVE9SU1NVTlBST0MpIChHTHNob3J0IGZhY3Rvcik7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xHTE9CQUxBTFBIQUZBQ1RPUklTVU5QUk9DKSAoR0xpbnQgZmFjdG9y
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdMT0JBTEFMUEhBRkFDVE9SRlNVTlBST0MpIChHTGZs
b2F0IGZhY3Rvcik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHTE9CQUxBTFBIQUZBQ1RPUkRTVU5Q
Uk9DKSAoR0xkb3VibGUgZmFjdG9yKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdMT0JBTEFMUEhB
RkFDVE9SVUJTVU5QUk9DKSAoR0x1Ynl0ZSBmYWN0b3IpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
R0xPQkFMQUxQSEFGQUNUT1JVU1NVTlBST0MpIChHTHVzaG9ydCBmYWN0b3IpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMR0xPQkFMQUxQSEFGQUNUT1JVSVNVTlBST0MpIChHTHVpbnQgZmFjdG9yKTsK
CgoKCgpleHRlcm4gdm9pZCBnbFJlcGxhY2VtZW50Q29kZXVpU1VOIChHTHVpbnQpOwpleHRlcm4g
dm9pZCBnbFJlcGxhY2VtZW50Q29kZXVzU1VOIChHTHVzaG9ydCk7CmV4dGVybiB2b2lkIGdsUmVw
bGFjZW1lbnRDb2RldWJTVU4gKEdMdWJ5dGUpOwpleHRlcm4gdm9pZCBnbFJlcGxhY2VtZW50Q29k
ZXVpdlNVTiAoY29uc3QgR0x1aW50ICopOwpleHRlcm4gdm9pZCBnbFJlcGxhY2VtZW50Q29kZXVz
dlNVTiAoY29uc3QgR0x1c2hvcnQgKik7CmV4dGVybiB2b2lkIGdsUmVwbGFjZW1lbnRDb2RldWJ2
U1VOIChjb25zdCBHTHVieXRlICopOwpleHRlcm4gdm9pZCBnbFJlcGxhY2VtZW50Q29kZVBvaW50
ZXJTVU4gKEdMZW51bSwgR0xzaXplaSwgY29uc3QgR0x2b2lkKiAqKTsKCnR5cGVkZWYgdm9pZCAo
ICogUEZOR0xSRVBMQUNFTUVOVENPREVVSVNVTlBST0MpIChHTHVpbnQgY29kZSk7CnR5cGVkZWYg
dm9pZCAoICogUEZOR0xSRVBMQUNFTUVOVENPREVVU1NVTlBST0MpIChHTHVzaG9ydCBjb2RlKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTFJFUExBQ0VNRU5UQ09ERVVCU1VOUFJPQykgKEdMdWJ5dGUg
Y29kZSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xSRVBMQUNFTUVOVENPREVVSVZTVU5QUk9DKSAo
Y29uc3QgR0x1aW50ICpjb2RlKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFJFUExBQ0VNRU5UQ09E
RVVTVlNVTlBST0MpIChjb25zdCBHTHVzaG9ydCAqY29kZSk7CnR5cGVkZWYgdm9pZCAoICogUEZO
R0xSRVBMQUNFTUVOVENPREVVQlZTVU5QUk9DKSAoY29uc3QgR0x1Ynl0ZSAqY29kZSk7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xSRVBMQUNFTUVOVENPREVQT0lOVEVSU1VOUFJPQykgKEdMZW51bSB0
eXBlLCBHTHNpemVpIHN0cmlkZSwgY29uc3QgR0x2b2lkKiAqcG9pbnRlcik7CgoKCgoKZXh0ZXJu
IHZvaWQgZ2xDb2xvcjR1YlZlcnRleDJmU1VOIChHTHVieXRlLCBHTHVieXRlLCBHTHVieXRlLCBH
THVieXRlLCBHTGZsb2F0LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xDb2xvcjR1YlZlcnRleDJm
dlNVTiAoY29uc3QgR0x1Ynl0ZSAqLCBjb25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbENv
bG9yNHViVmVydGV4M2ZTVU4gKEdMdWJ5dGUsIEdMdWJ5dGUsIEdMdWJ5dGUsIEdMdWJ5dGUsIEdM
ZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQpOwpleHRlcm4gdm9pZCBnbENvbG9yNHViVmVydGV4M2Z2
U1VOIChjb25zdCBHTHVieXRlICosIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsQ29s
b3IzZlZlcnRleDNmU1VOIChHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZs
b2F0LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xDb2xvcjNmVmVydGV4M2Z2U1VOIChjb25zdCBH
TGZsb2F0ICosIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsTm9ybWFsM2ZWZXJ0ZXgz
ZlNVTiAoR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9h
dCk7CmV4dGVybiB2b2lkIGdsTm9ybWFsM2ZWZXJ0ZXgzZnZTVU4gKGNvbnN0IEdMZmxvYXQgKiwg
Y29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xDb2xvcjRmTm9ybWFsM2ZWZXJ0ZXgzZlNV
TiAoR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwg
R0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsQ29sb3I0
Zk5vcm1hbDNmVmVydGV4M2Z2U1VOIChjb25zdCBHTGZsb2F0ICosIGNvbnN0IEdMZmxvYXQgKiwg
Y29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDJmVmVydGV4M2ZTVU4gKEdM
ZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQpOwpleHRlcm4gdm9pZCBn
bFRleENvb3JkMmZWZXJ0ZXgzZnZTVU4gKGNvbnN0IEdMZmxvYXQgKiwgY29uc3QgR0xmbG9hdCAq
KTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDRmVmVydGV4NGZTVU4gKEdMZmxvYXQsIEdMZmxvYXQs
IEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQpOwpl
eHRlcm4gdm9pZCBnbFRleENvb3JkNGZWZXJ0ZXg0ZnZTVU4gKGNvbnN0IEdMZmxvYXQgKiwgY29u
c3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDJmQ29sb3I0dWJWZXJ0ZXgzZlNV
TiAoR0xmbG9hdCwgR0xmbG9hdCwgR0x1Ynl0ZSwgR0x1Ynl0ZSwgR0x1Ynl0ZSwgR0x1Ynl0ZSwg
R0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsVGV4Q29vcmQyZkNvbG9y
NHViVmVydGV4M2Z2U1VOIChjb25zdCBHTGZsb2F0ICosIGNvbnN0IEdMdWJ5dGUgKiwgY29uc3Qg
R0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDJmQ29sb3IzZlZlcnRleDNmU1VOIChH
TGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZs
b2F0LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDJmQ29sb3IzZlZlcnRleDNmdlNV
TiAoY29uc3QgR0xmbG9hdCAqLCBjb25zdCBHTGZsb2F0ICosIGNvbnN0IEdMZmxvYXQgKik7CmV4
dGVybiB2b2lkIGdsVGV4Q29vcmQyZk5vcm1hbDNmVmVydGV4M2ZTVU4gKEdMZmxvYXQsIEdMZmxv
YXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQp
OwpleHRlcm4gdm9pZCBnbFRleENvb3JkMmZOb3JtYWwzZlZlcnRleDNmdlNVTiAoY29uc3QgR0xm
bG9hdCAqLCBjb25zdCBHTGZsb2F0ICosIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGds
VGV4Q29vcmQyZkNvbG9yNGZOb3JtYWwzZlZlcnRleDNmU1VOIChHTGZsb2F0LCBHTGZsb2F0LCBH
TGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZs
b2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xUZXhDb29yZDJm
Q29sb3I0Zk5vcm1hbDNmVmVydGV4M2Z2U1VOIChjb25zdCBHTGZsb2F0ICosIGNvbnN0IEdMZmxv
YXQgKiwgY29uc3QgR0xmbG9hdCAqLCBjb25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbFRl
eENvb3JkNGZDb2xvcjRmTm9ybWFsM2ZWZXJ0ZXg0ZlNVTiAoR0xmbG9hdCwgR0xmbG9hdCwgR0xm
bG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9h
dCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCk7
CmV4dGVybiB2b2lkIGdsVGV4Q29vcmQ0ZkNvbG9yNGZOb3JtYWwzZlZlcnRleDRmdlNVTiAoY29u
c3QgR0xmbG9hdCAqLCBjb25zdCBHTGZsb2F0ICosIGNvbnN0IEdMZmxvYXQgKiwgY29uc3QgR0xm
bG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xSZXBsYWNlbWVudENvZGV1aVZlcnRleDNmU1VOIChHTHVp
bnQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQpOwpleHRlcm4gdm9pZCBnbFJlcGxhY2VtZW50
Q29kZXVpVmVydGV4M2Z2U1VOIChjb25zdCBHTHVpbnQgKiwgY29uc3QgR0xmbG9hdCAqKTsKZXh0
ZXJuIHZvaWQgZ2xSZXBsYWNlbWVudENvZGV1aUNvbG9yNHViVmVydGV4M2ZTVU4gKEdMdWludCwg
R0x1Ynl0ZSwgR0x1Ynl0ZSwgR0x1Ynl0ZSwgR0x1Ynl0ZSwgR0xmbG9hdCwgR0xmbG9hdCwgR0xm
bG9hdCk7CmV4dGVybiB2b2lkIGdsUmVwbGFjZW1lbnRDb2RldWlDb2xvcjR1YlZlcnRleDNmdlNV
TiAoY29uc3QgR0x1aW50ICosIGNvbnN0IEdMdWJ5dGUgKiwgY29uc3QgR0xmbG9hdCAqKTsKZXh0
ZXJuIHZvaWQgZ2xSZXBsYWNlbWVudENvZGV1aUNvbG9yM2ZWZXJ0ZXgzZlNVTiAoR0x1aW50LCBH
TGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0KTsKZXh0
ZXJuIHZvaWQgZ2xSZXBsYWNlbWVudENvZGV1aUNvbG9yM2ZWZXJ0ZXgzZnZTVU4gKGNvbnN0IEdM
dWludCAqLCBjb25zdCBHTGZsb2F0ICosIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGds
UmVwbGFjZW1lbnRDb2RldWlOb3JtYWwzZlZlcnRleDNmU1VOIChHTHVpbnQsIEdMZmxvYXQsIEdM
ZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQpOwpleHRlcm4gdm9pZCBn
bFJlcGxhY2VtZW50Q29kZXVpTm9ybWFsM2ZWZXJ0ZXgzZnZTVU4gKGNvbnN0IEdMdWludCAqLCBj
b25zdCBHTGZsb2F0ICosIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsUmVwbGFjZW1l
bnRDb2RldWlDb2xvcjRmTm9ybWFsM2ZWZXJ0ZXgzZlNVTiAoR0x1aW50LCBHTGZsb2F0LCBHTGZs
b2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0
LCBHTGZsb2F0LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xSZXBsYWNlbWVudENvZGV1aUNvbG9y
NGZOb3JtYWwzZlZlcnRleDNmdlNVTiAoY29uc3QgR0x1aW50ICosIGNvbnN0IEdMZmxvYXQgKiwg
Y29uc3QgR0xmbG9hdCAqLCBjb25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbFJlcGxhY2Vt
ZW50Q29kZXVpVGV4Q29vcmQyZlZlcnRleDNmU1VOIChHTHVpbnQsIEdMZmxvYXQsIEdMZmxvYXQs
IEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQpOwpleHRlcm4gdm9pZCBnbFJlcGxhY2VtZW50Q29k
ZXVpVGV4Q29vcmQyZlZlcnRleDNmdlNVTiAoY29uc3QgR0x1aW50ICosIGNvbnN0IEdMZmxvYXQg
KiwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xSZXBsYWNlbWVudENvZGV1aVRleENv
b3JkMmZOb3JtYWwzZlZlcnRleDNmU1VOIChHTHVpbnQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxv
YXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQpOwpleHRlcm4g
dm9pZCBnbFJlcGxhY2VtZW50Q29kZXVpVGV4Q29vcmQyZk5vcm1hbDNmVmVydGV4M2Z2U1VOIChj
b25zdCBHTHVpbnQgKiwgY29uc3QgR0xmbG9hdCAqLCBjb25zdCBHTGZsb2F0ICosIGNvbnN0IEdM
ZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsUmVwbGFjZW1lbnRDb2RldWlUZXhDb29yZDJmQ29sb3I0
Zk5vcm1hbDNmVmVydGV4M2ZTVU4gKEdMdWludCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwg
R0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xm
bG9hdCwgR0xmbG9hdCwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsUmVwbGFjZW1lbnRDb2RldWlU
ZXhDb29yZDJmQ29sb3I0Zk5vcm1hbDNmVmVydGV4M2Z2U1VOIChjb25zdCBHTHVpbnQgKiwgY29u
c3QgR0xmbG9hdCAqLCBjb25zdCBHTGZsb2F0ICosIGNvbnN0IEdMZmxvYXQgKiwgY29uc3QgR0xm
bG9hdCAqKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT0xPUjRVQlZFUlRFWDJGU1VOUFJPQykg
KEdMdWJ5dGUgciwgR0x1Ynl0ZSBnLCBHTHVieXRlIGIsIEdMdWJ5dGUgYSwgR0xmbG9hdCB4LCBH
TGZsb2F0IHkpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09MT1I0VUJWRVJURVgyRlZTVU5QUk9D
KSAoY29uc3QgR0x1Ynl0ZSAqYywgY29uc3QgR0xmbG9hdCAqdik7CnR5cGVkZWYgdm9pZCAoICog
UEZOR0xDT0xPUjRVQlZFUlRFWDNGU1VOUFJPQykgKEdMdWJ5dGUgciwgR0x1Ynl0ZSBnLCBHTHVi
eXRlIGIsIEdMdWJ5dGUgYSwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeik7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xDT0xPUjRVQlZFUlRFWDNGVlNVTlBST0MpIChjb25zdCBHTHVieXRl
ICpjLCBjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTENPTE9SM0ZWRVJU
RVgzRlNVTlBST0MpIChHTGZsb2F0IHIsIEdMZmxvYXQgZywgR0xmbG9hdCBiLCBHTGZsb2F0IHgs
IEdMZmxvYXQgeSwgR0xmbG9hdCB6KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTENPTE9SM0ZWRVJU
RVgzRlZTVU5QUk9DKSAoY29uc3QgR0xmbG9hdCAqYywgY29uc3QgR0xmbG9hdCAqdik7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xOT1JNQUwzRlZFUlRFWDNGU1VOUFJPQykgKEdMZmxvYXQgbngsIEdM
ZmxvYXQgbnksIEdMZmxvYXQgbnosIEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0IHopOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMTk9STUFMM0ZWRVJURVgzRlZTVU5QUk9DKSAoY29uc3QgR0xm
bG9hdCAqbiwgY29uc3QgR0xmbG9hdCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT0xPUjRG
Tk9STUFMM0ZWRVJURVgzRlNVTlBST0MpIChHTGZsb2F0IHIsIEdMZmxvYXQgZywgR0xmbG9hdCBi
LCBHTGZsb2F0IGEsIEdMZmxvYXQgbngsIEdMZmxvYXQgbnksIEdMZmxvYXQgbnosIEdMZmxvYXQg
eCwgR0xmbG9hdCB5LCBHTGZsb2F0IHopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09MT1I0Rk5P
Uk1BTDNGVkVSVEVYM0ZWU1VOUFJPQykgKGNvbnN0IEdMZmxvYXQgKmMsIGNvbnN0IEdMZmxvYXQg
Km4sIGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVEVYQ09PUkQyRlZF
UlRFWDNGU1VOUFJPQykgKEdMZmxvYXQgcywgR0xmbG9hdCB0LCBHTGZsb2F0IHgsIEdMZmxvYXQg
eSwgR0xmbG9hdCB6KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFRFWENPT1JEMkZWRVJURVgzRlZT
VU5QUk9DKSAoY29uc3QgR0xmbG9hdCAqdGMsIGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMVEVYQ09PUkQ0RlZFUlRFWDRGU1VOUFJPQykgKEdMZmxvYXQgcywgR0xmbG9h
dCB0LCBHTGZsb2F0IHAsIEdMZmxvYXQgcSwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQg
eiwgR0xmbG9hdCB3KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFRFWENPT1JENEZWRVJURVg0RlZT
VU5QUk9DKSAoY29uc3QgR0xmbG9hdCAqdGMsIGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMVEVYQ09PUkQyRkNPTE9SNFVCVkVSVEVYM0ZTVU5QUk9DKSAoR0xmbG9hdCBz
LCBHTGZsb2F0IHQsIEdMdWJ5dGUgciwgR0x1Ynl0ZSBnLCBHTHVieXRlIGIsIEdMdWJ5dGUgYSwg
R0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xU
RVhDT09SRDJGQ09MT1I0VUJWRVJURVgzRlZTVU5QUk9DKSAoY29uc3QgR0xmbG9hdCAqdGMsIGNv
bnN0IEdMdWJ5dGUgKmMsIGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
VEVYQ09PUkQyRkNPTE9SM0ZWRVJURVgzRlNVTlBST0MpIChHTGZsb2F0IHMsIEdMZmxvYXQgdCwg
R0xmbG9hdCByLCBHTGZsb2F0IGcsIEdMZmxvYXQgYiwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdM
ZmxvYXQgeik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xURVhDT09SRDJGQ09MT1IzRlZFUlRFWDNG
VlNVTlBST0MpIChjb25zdCBHTGZsb2F0ICp0YywgY29uc3QgR0xmbG9hdCAqYywgY29uc3QgR0xm
bG9hdCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xURVhDT09SRDJGTk9STUFMM0ZWRVJURVgz
RlNVTlBST0MpIChHTGZsb2F0IHMsIEdMZmxvYXQgdCwgR0xmbG9hdCBueCwgR0xmbG9hdCBueSwg
R0xmbG9hdCBueiwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeik7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xURVhDT09SRDJGTk9STUFMM0ZWRVJURVgzRlZTVU5QUk9DKSAoY29uc3QgR0xm
bG9hdCAqdGMsIGNvbnN0IEdMZmxvYXQgKm4sIGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMVEVYQ09PUkQyRkNPTE9SNEZOT1JNQUwzRlZFUlRFWDNGU1VOUFJPQykgKEdM
ZmxvYXQgcywgR0xmbG9hdCB0LCBHTGZsb2F0IHIsIEdMZmxvYXQgZywgR0xmbG9hdCBiLCBHTGZs
b2F0IGEsIEdMZmxvYXQgbngsIEdMZmxvYXQgbnksIEdMZmxvYXQgbnosIEdMZmxvYXQgeCwgR0xm
bG9hdCB5LCBHTGZsb2F0IHopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVEVYQ09PUkQyRkNPTE9S
NEZOT1JNQUwzRlZFUlRFWDNGVlNVTlBST0MpIChjb25zdCBHTGZsb2F0ICp0YywgY29uc3QgR0xm
bG9hdCAqYywgY29uc3QgR0xmbG9hdCAqbiwgY29uc3QgR0xmbG9hdCAqdik7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xURVhDT09SRDRGQ09MT1I0Rk5PUk1BTDNGVkVSVEVYNEZTVU5QUk9DKSAoR0xm
bG9hdCBzLCBHTGZsb2F0IHQsIEdMZmxvYXQgcCwgR0xmbG9hdCBxLCBHTGZsb2F0IHIsIEdMZmxv
YXQgZywgR0xmbG9hdCBiLCBHTGZsb2F0IGEsIEdMZmxvYXQgbngsIEdMZmxvYXQgbnksIEdMZmxv
YXQgbnosIEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0IHosIEdMZmxvYXQgdyk7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xURVhDT09SRDRGQ09MT1I0Rk5PUk1BTDNGVkVSVEVYNEZWU1VOUFJP
QykgKGNvbnN0IEdMZmxvYXQgKnRjLCBjb25zdCBHTGZsb2F0ICpjLCBjb25zdCBHTGZsb2F0ICpu
LCBjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFJFUExBQ0VNRU5UQ09E
RVVJVkVSVEVYM0ZTVU5QUk9DKSAoR0x1aW50IHJjLCBHTGZsb2F0IHgsIEdMZmxvYXQgeSwgR0xm
bG9hdCB6KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFJFUExBQ0VNRU5UQ09ERVVJVkVSVEVYM0ZW
U1VOUFJPQykgKGNvbnN0IEdMdWludCAqcmMsIGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMUkVQTEFDRU1FTlRDT0RFVUlDT0xPUjRVQlZFUlRFWDNGU1VOUFJPQykgKEdM
dWludCByYywgR0x1Ynl0ZSByLCBHTHVieXRlIGcsIEdMdWJ5dGUgYiwgR0x1Ynl0ZSBhLCBHTGZs
b2F0IHgsIEdMZmxvYXQgeSwgR0xmbG9hdCB6KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFJFUExB
Q0VNRU5UQ09ERVVJQ09MT1I0VUJWRVJURVgzRlZTVU5QUk9DKSAoY29uc3QgR0x1aW50ICpyYywg
Y29uc3QgR0x1Ynl0ZSAqYywgY29uc3QgR0xmbG9hdCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZO
R0xSRVBMQUNFTUVOVENPREVVSUNPTE9SM0ZWRVJURVgzRlNVTlBST0MpIChHTHVpbnQgcmMsIEdM
ZmxvYXQgciwgR0xmbG9hdCBnLCBHTGZsb2F0IGIsIEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBHTGZs
b2F0IHopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMUkVQTEFDRU1FTlRDT0RFVUlDT0xPUjNGVkVS
VEVYM0ZWU1VOUFJPQykgKGNvbnN0IEdMdWludCAqcmMsIGNvbnN0IEdMZmxvYXQgKmMsIGNvbnN0
IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMUkVQTEFDRU1FTlRDT0RFVUlOT1JN
QUwzRlZFUlRFWDNGU1VOUFJPQykgKEdMdWludCByYywgR0xmbG9hdCBueCwgR0xmbG9hdCBueSwg
R0xmbG9hdCBueiwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeik7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xSRVBMQUNFTUVOVENPREVVSU5PUk1BTDNGVkVSVEVYM0ZWU1VOUFJPQykgKGNv
bnN0IEdMdWludCAqcmMsIGNvbnN0IEdMZmxvYXQgKm4sIGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMUkVQTEFDRU1FTlRDT0RFVUlDT0xPUjRGTk9STUFMM0ZWRVJURVgz
RlNVTlBST0MpIChHTHVpbnQgcmMsIEdMZmxvYXQgciwgR0xmbG9hdCBnLCBHTGZsb2F0IGIsIEdM
ZmxvYXQgYSwgR0xmbG9hdCBueCwgR0xmbG9hdCBueSwgR0xmbG9hdCBueiwgR0xmbG9hdCB4LCBH
TGZsb2F0IHksIEdMZmxvYXQgeik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xSRVBMQUNFTUVOVENP
REVVSUNPTE9SNEZOT1JNQUwzRlZFUlRFWDNGVlNVTlBST0MpIChjb25zdCBHTHVpbnQgKnJjLCBj
b25zdCBHTGZsb2F0ICpjLCBjb25zdCBHTGZsb2F0ICpuLCBjb25zdCBHTGZsb2F0ICp2KTsKdHlw
ZWRlZiB2b2lkICggKiBQRk5HTFJFUExBQ0VNRU5UQ09ERVVJVEVYQ09PUkQyRlZFUlRFWDNGU1VO
UFJPQykgKEdMdWludCByYywgR0xmbG9hdCBzLCBHTGZsb2F0IHQsIEdMZmxvYXQgeCwgR0xmbG9h
dCB5LCBHTGZsb2F0IHopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMUkVQTEFDRU1FTlRDT0RFVUlU
RVhDT09SRDJGVkVSVEVYM0ZWU1VOUFJPQykgKGNvbnN0IEdMdWludCAqcmMsIGNvbnN0IEdMZmxv
YXQgKnRjLCBjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFJFUExBQ0VN
RU5UQ09ERVVJVEVYQ09PUkQyRk5PUk1BTDNGVkVSVEVYM0ZTVU5QUk9DKSAoR0x1aW50IHJjLCBH
TGZsb2F0IHMsIEdMZmxvYXQgdCwgR0xmbG9hdCBueCwgR0xmbG9hdCBueSwgR0xmbG9hdCBueiwg
R0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xS
RVBMQUNFTUVOVENPREVVSVRFWENPT1JEMkZOT1JNQUwzRlZFUlRFWDNGVlNVTlBST0MpIChjb25z
dCBHTHVpbnQgKnJjLCBjb25zdCBHTGZsb2F0ICp0YywgY29uc3QgR0xmbG9hdCAqbiwgY29uc3Qg
R0xmbG9hdCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xSRVBMQUNFTUVOVENPREVVSVRFWENP
T1JEMkZDT0xPUjRGTk9STUFMM0ZWRVJURVgzRlNVTlBST0MpIChHTHVpbnQgcmMsIEdMZmxvYXQg
cywgR0xmbG9hdCB0LCBHTGZsb2F0IHIsIEdMZmxvYXQgZywgR0xmbG9hdCBiLCBHTGZsb2F0IGEs
IEdMZmxvYXQgbngsIEdMZmxvYXQgbnksIEdMZmxvYXQgbnosIEdMZmxvYXQgeCwgR0xmbG9hdCB5
LCBHTGZsb2F0IHopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMUkVQTEFDRU1FTlRDT0RFVUlURVhD
T09SRDJGQ09MT1I0Rk5PUk1BTDNGVkVSVEVYM0ZWU1VOUFJPQykgKGNvbnN0IEdMdWludCAqcmMs
IGNvbnN0IEdMZmxvYXQgKnRjLCBjb25zdCBHTGZsb2F0ICpjLCBjb25zdCBHTGZsb2F0ICpuLCBj
b25zdCBHTGZsb2F0ICp2KTsKCgoKCgpleHRlcm4gdm9pZCBnbEJsZW5kRnVuY1NlcGFyYXRlRVhU
IChHTGVudW0sIEdMZW51bSwgR0xlbnVtLCBHTGVudW0pOwoKdHlwZWRlZiB2b2lkICggKiBQRk5H
TEJMRU5ERlVOQ1NFUEFSQVRFRVhUUFJPQykgKEdMZW51bSBzZmFjdG9yUkdCLCBHTGVudW0gZGZh
Y3RvclJHQiwgR0xlbnVtIHNmYWN0b3JBbHBoYSwgR0xlbnVtIGRmYWN0b3JBbHBoYSk7CgoKCgoK
ZXh0ZXJuIHZvaWQgZ2xCbGVuZEZ1bmNTZXBhcmF0ZUlOR1IgKEdMZW51bSwgR0xlbnVtLCBHTGVu
dW0sIEdMZW51bSk7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQkxFTkRGVU5DU0VQQVJBVEVJTkdS
UFJPQykgKEdMZW51bSBzZmFjdG9yUkdCLCBHTGVudW0gZGZhY3RvclJHQiwgR0xlbnVtIHNmYWN0
b3JBbHBoYSwgR0xlbnVtIGRmYWN0b3JBbHBoYSk7CiMgNDE3NiAiLi4vaW5jbHVkZS9HTC9nbGV4
dC5oIgpleHRlcm4gdm9pZCBnbFZlcnRleFdlaWdodGZFWFQgKEdMZmxvYXQpOwpleHRlcm4gdm9p
ZCBnbFZlcnRleFdlaWdodGZ2RVhUIChjb25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbFZl
cnRleFdlaWdodFBvaW50ZXJFWFQgKEdMc2l6ZWksIEdMZW51bSwgR0xzaXplaSwgY29uc3QgR0x2
b2lkICopOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWFdFSUdIVEZFWFRQUk9DKSAoR0xm
bG9hdCB3ZWlnaHQpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYV0VJR0hURlZFWFRQUk9D
KSAoY29uc3QgR0xmbG9hdCAqd2VpZ2h0KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWFdF
SUdIVFBPSU5URVJFWFRQUk9DKSAoR0xzaXplaSBzaXplLCBHTGVudW0gdHlwZSwgR0xzaXplaSBz
dHJpZGUsIGNvbnN0IEdMdm9pZCAqcG9pbnRlcik7CiMgNDE5MiAiLi4vaW5jbHVkZS9HTC9nbGV4
dC5oIgpleHRlcm4gdm9pZCBnbEZsdXNoVmVydGV4QXJyYXlSYW5nZU5WICh2b2lkKTsKZXh0ZXJu
IHZvaWQgZ2xWZXJ0ZXhBcnJheVJhbmdlTlYgKEdMc2l6ZWksIGNvbnN0IEdMdm9pZCAqKTsKCnR5
cGVkZWYgdm9pZCAoICogUEZOR0xGTFVTSFZFUlRFWEFSUkFZUkFOR0VOVlBST0MpICh2b2lkKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFSUkFZUkFOR0VOVlBST0MpIChHTHNpemVpIGxl
bmd0aCwgY29uc3QgR0x2b2lkICpwb2ludGVyKTsKCgoKCgpleHRlcm4gdm9pZCBnbENvbWJpbmVy
UGFyYW1ldGVyZnZOViAoR0xlbnVtLCBjb25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbENv
bWJpbmVyUGFyYW1ldGVyZk5WIChHTGVudW0sIEdMZmxvYXQpOwpleHRlcm4gdm9pZCBnbENvbWJp
bmVyUGFyYW1ldGVyaXZOViAoR0xlbnVtLCBjb25zdCBHTGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xD
b21iaW5lclBhcmFtZXRlcmlOViAoR0xlbnVtLCBHTGludCk7CmV4dGVybiB2b2lkIGdsQ29tYmlu
ZXJJbnB1dE5WIChHTGVudW0sIEdMZW51bSwgR0xlbnVtLCBHTGVudW0sIEdMZW51bSwgR0xlbnVt
KTsKZXh0ZXJuIHZvaWQgZ2xDb21iaW5lck91dHB1dE5WIChHTGVudW0sIEdMZW51bSwgR0xlbnVt
LCBHTGVudW0sIEdMZW51bSwgR0xlbnVtLCBHTGVudW0sIEdMYm9vbGVhbiwgR0xib29sZWFuLCBH
TGJvb2xlYW4pOwpleHRlcm4gdm9pZCBnbEZpbmFsQ29tYmluZXJJbnB1dE5WIChHTGVudW0sIEdM
ZW51bSwgR0xlbnVtLCBHTGVudW0pOwpleHRlcm4gdm9pZCBnbEdldENvbWJpbmVySW5wdXRQYXJh
bWV0ZXJmdk5WIChHTGVudW0sIEdMZW51bSwgR0xlbnVtLCBHTGVudW0sIEdMZmxvYXQgKik7CmV4
dGVybiB2b2lkIGdsR2V0Q29tYmluZXJJbnB1dFBhcmFtZXRlcml2TlYgKEdMZW51bSwgR0xlbnVt
LCBHTGVudW0sIEdMZW51bSwgR0xpbnQgKik7CmV4dGVybiB2b2lkIGdsR2V0Q29tYmluZXJPdXRw
dXRQYXJhbWV0ZXJmdk5WIChHTGVudW0sIEdMZW51bSwgR0xlbnVtLCBHTGZsb2F0ICopOwpleHRl
cm4gdm9pZCBnbEdldENvbWJpbmVyT3V0cHV0UGFyYW1ldGVyaXZOViAoR0xlbnVtLCBHTGVudW0s
IEdMZW51bSwgR0xpbnQgKik7CmV4dGVybiB2b2lkIGdsR2V0RmluYWxDb21iaW5lcklucHV0UGFy
YW1ldGVyZnZOViAoR0xlbnVtLCBHTGVudW0sIEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsR2V0
RmluYWxDb21iaW5lcklucHV0UGFyYW1ldGVyaXZOViAoR0xlbnVtLCBHTGVudW0sIEdMaW50ICop
OwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTENPTUJJTkVSUEFSQU1FVEVSRlZOVlBST0MpIChHTGVu
dW0gcG5hbWUsIGNvbnN0IEdMZmxvYXQgKnBhcmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xD
T01CSU5FUlBBUkFNRVRFUkZOVlBST0MpIChHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09NQklORVJQQVJBTUVURVJJVk5WUFJPQykgKEdMZW51bSBw
bmFtZSwgY29uc3QgR0xpbnQgKnBhcmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT01CSU5F
UlBBUkFNRVRFUklOVlBST0MpIChHTGVudW0gcG5hbWUsIEdMaW50IHBhcmFtKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTENPTUJJTkVSSU5QVVROVlBST0MpIChHTGVudW0gc3RhZ2UsIEdMZW51bSBw
b3J0aW9uLCBHTGVudW0gdmFyaWFibGUsIEdMZW51bSBpbnB1dCwgR0xlbnVtIG1hcHBpbmcsIEdM
ZW51bSBjb21wb25lbnRVc2FnZSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT01CSU5FUk9VVFBV
VE5WUFJPQykgKEdMZW51bSBzdGFnZSwgR0xlbnVtIHBvcnRpb24sIEdMZW51bSBhYk91dHB1dCwg
R0xlbnVtIGNkT3V0cHV0LCBHTGVudW0gc3VtT3V0cHV0LCBHTGVudW0gc2NhbGUsIEdMZW51bSBi
aWFzLCBHTGJvb2xlYW4gYWJEb3RQcm9kdWN0LCBHTGJvb2xlYW4gY2REb3RQcm9kdWN0LCBHTGJv
b2xlYW4gbXV4U3VtKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEZJTkFMQ09NQklORVJJTlBVVE5W
UFJPQykgKEdMZW51bSB2YXJpYWJsZSwgR0xlbnVtIGlucHV0LCBHTGVudW0gbWFwcGluZywgR0xl
bnVtIGNvbXBvbmVudFVzYWdlKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVENPTUJJTkVSSU5Q
VVRQQVJBTUVURVJGVk5WUFJPQykgKEdMZW51bSBzdGFnZSwgR0xlbnVtIHBvcnRpb24sIEdMZW51
bSB2YXJpYWJsZSwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQg
KCAqIFBGTkdMR0VUQ09NQklORVJJTlBVVFBBUkFNRVRFUklWTlZQUk9DKSAoR0xlbnVtIHN0YWdl
LCBHTGVudW0gcG9ydGlvbiwgR0xlbnVtIHZhcmlhYmxlLCBHTGVudW0gcG5hbWUsIEdMaW50ICpw
YXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUQ09NQklORVJPVVRQVVRQQVJBTUVURVJG
Vk5WUFJPQykgKEdMZW51bSBzdGFnZSwgR0xlbnVtIHBvcnRpb24sIEdMZW51bSBwbmFtZSwgR0xm
bG9hdCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVENPTUJJTkVST1VUUFVUUEFS
QU1FVEVSSVZOVlBST0MpIChHTGVudW0gc3RhZ2UsIEdMZW51bSBwb3J0aW9uLCBHTGVudW0gcG5h
bWUsIEdMaW50ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VURklOQUxDT01CSU5F
UklOUFVUUEFSQU1FVEVSRlZOVlBST0MpIChHTGVudW0gdmFyaWFibGUsIEdMZW51bSBwbmFtZSwg
R0xmbG9hdCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVEZJTkFMQ09NQklORVJJ
TlBVVFBBUkFNRVRFUklWTlZQUk9DKSAoR0xlbnVtIHZhcmlhYmxlLCBHTGVudW0gcG5hbWUsIEdM
aW50ICpwYXJhbXMpOwojIDQyNTAgIi4uL2luY2x1ZGUvR0wvZ2xleHQuaCIKZXh0ZXJuIHZvaWQg
Z2xSZXNpemVCdWZmZXJzTUVTQSAodm9pZCk7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMUkVTSVpF
QlVGRkVSU01FU0FQUk9DKSAodm9pZCk7CgoKCgoKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3MyZE1F
U0EgKEdMZG91YmxlLCBHTGRvdWJsZSk7CmV4dGVybiB2b2lkIGdsV2luZG93UG9zMmR2TUVTQSAo
Y29uc3QgR0xkb3VibGUgKik7CmV4dGVybiB2b2lkIGdsV2luZG93UG9zMmZNRVNBIChHTGZsb2F0
LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3MyZnZNRVNBIChjb25zdCBHTGZsb2F0
ICopOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczJpTUVTQSAoR0xpbnQsIEdMaW50KTsKZXh0ZXJu
IHZvaWQgZ2xXaW5kb3dQb3MyaXZNRVNBIChjb25zdCBHTGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xX
aW5kb3dQb3Myc01FU0EgKEdMc2hvcnQsIEdMc2hvcnQpOwpleHRlcm4gdm9pZCBnbFdpbmRvd1Bv
czJzdk1FU0EgKGNvbnN0IEdMc2hvcnQgKik7CmV4dGVybiB2b2lkIGdsV2luZG93UG9zM2RNRVNB
IChHTGRvdWJsZSwgR0xkb3VibGUsIEdMZG91YmxlKTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3Mz
ZHZNRVNBIChjb25zdCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3MzZk1FU0Eg
KEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQpOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczNmdk1F
U0EgKGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsV2luZG93UG9zM2lNRVNBIChHTGlu
dCwgR0xpbnQsIEdMaW50KTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3MzaXZNRVNBIChjb25zdCBH
TGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3Mzc01FU0EgKEdMc2hvcnQsIEdMc2hvcnQs
IEdMc2hvcnQpOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczNzdk1FU0EgKGNvbnN0IEdMc2hvcnQg
Kik7CmV4dGVybiB2b2lkIGdsV2luZG93UG9zNGRNRVNBIChHTGRvdWJsZSwgR0xkb3VibGUsIEdM
ZG91YmxlLCBHTGRvdWJsZSk7CmV4dGVybiB2b2lkIGdsV2luZG93UG9zNGR2TUVTQSAoY29uc3Qg
R0xkb3VibGUgKik7CmV4dGVybiB2b2lkIGdsV2luZG93UG9zNGZNRVNBIChHTGZsb2F0LCBHTGZs
b2F0LCBHTGZsb2F0LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xXaW5kb3dQb3M0ZnZNRVNBIChj
b25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczRpTUVTQSAoR0xpbnQsIEdM
aW50LCBHTGludCwgR0xpbnQpOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczRpdk1FU0EgKGNvbnN0
IEdMaW50ICopOwpleHRlcm4gdm9pZCBnbFdpbmRvd1BvczRzTUVTQSAoR0xzaG9ydCwgR0xzaG9y
dCwgR0xzaG9ydCwgR0xzaG9ydCk7CmV4dGVybiB2b2lkIGdsV2luZG93UG9zNHN2TUVTQSAoY29u
c3QgR0xzaG9ydCAqKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xXSU5ET1dQT1MyRE1FU0FQUk9D
KSAoR0xkb3VibGUgeCwgR0xkb3VibGUgeSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xXSU5ET1dQ
T1MyRFZNRVNBUFJPQykgKGNvbnN0IEdMZG91YmxlICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TFdJTkRPV1BPUzJGTUVTQVBST0MpIChHTGZsb2F0IHgsIEdMZmxvYXQgeSk7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xXSU5ET1dQT1MyRlZNRVNBUFJPQykgKGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMV0lORE9XUE9TMklNRVNBUFJPQykgKEdMaW50IHgsIEdMaW50IHkp
Owp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMV0lORE9XUE9TMklWTUVTQVBST0MpIChjb25zdCBHTGlu
dCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xXSU5ET1dQT1MyU01FU0FQUk9DKSAoR0xzaG9y
dCB4LCBHTHNob3J0IHkpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMV0lORE9XUE9TMlNWTUVTQVBS
T0MpIChjb25zdCBHTHNob3J0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFdJTkRPV1BPUzNE
TUVTQVBST0MpIChHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRvdWJsZSB6KTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTFdJTkRPV1BPUzNEVk1FU0FQUk9DKSAoY29uc3QgR0xkb3VibGUgKnYpOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMV0lORE9XUE9TM0ZNRVNBUFJPQykgKEdMZmxvYXQgeCwgR0xm
bG9hdCB5LCBHTGZsb2F0IHopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMV0lORE9XUE9TM0ZWTUVT
QVBST0MpIChjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFdJTkRPV1BP
UzNJTUVTQVBST0MpIChHTGludCB4LCBHTGludCB5LCBHTGludCB6KTsKdHlwZWRlZiB2b2lkICgg
KiBQRk5HTFdJTkRPV1BPUzNJVk1FU0FQUk9DKSAoY29uc3QgR0xpbnQgKnYpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMV0lORE9XUE9TM1NNRVNBUFJPQykgKEdMc2hvcnQgeCwgR0xzaG9ydCB5LCBH
THNob3J0IHopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMV0lORE9XUE9TM1NWTUVTQVBST0MpIChj
b25zdCBHTHNob3J0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFdJTkRPV1BPUzRETUVTQVBS
T0MpIChHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRvdWJsZSB6LCBHTGRvdWJsZSB3KTsKdHlw
ZWRlZiB2b2lkICggKiBQRk5HTFdJTkRPV1BPUzREVk1FU0FQUk9DKSAoY29uc3QgR0xkb3VibGUg
KnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMV0lORE9XUE9TNEZNRVNBUFJPQykgKEdMZmxvYXQg
eCwgR0xmbG9hdCB5LCBHTGZsb2F0IHosIEdMZmxvYXQgdyk7CnR5cGVkZWYgdm9pZCAoICogUEZO
R0xXSU5ET1dQT1M0RlZNRVNBUFJPQykgKGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZvaWQg
KCAqIFBGTkdMV0lORE9XUE9TNElNRVNBUFJPQykgKEdMaW50IHgsIEdMaW50IHksIEdMaW50IHos
IEdMaW50IHcpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMV0lORE9XUE9TNElWTUVTQVBST0MpIChj
b25zdCBHTGludCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xXSU5ET1dQT1M0U01FU0FQUk9D
KSAoR0xzaG9ydCB4LCBHTHNob3J0IHksIEdMc2hvcnQgeiwgR0xzaG9ydCB3KTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTFdJTkRPV1BPUzRTVk1FU0FQUk9DKSAoY29uc3QgR0xzaG9ydCAqdik7CiMg
NDMxNiAiLi4vaW5jbHVkZS9HTC9nbGV4dC5oIgpleHRlcm4gdm9pZCBnbE11bHRpTW9kZURyYXdB
cnJheXNJQk0gKEdMZW51bSwgY29uc3QgR0xpbnQgKiwgY29uc3QgR0xzaXplaSAqLCBHTHNpemVp
LCBHTGludCk7CmV4dGVybiB2b2lkIGdsTXVsdGlNb2RlRHJhd0VsZW1lbnRzSUJNIChjb25zdCBH
TGVudW0gKiwgY29uc3QgR0xzaXplaSAqLCBHTGVudW0sIGNvbnN0IEdMdm9pZCogKiwgR0xzaXpl
aSwgR0xpbnQpOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTE1VTFRJTU9ERURSQVdBUlJBWVNJQk1Q
Uk9DKSAoR0xlbnVtIG1vZGUsIGNvbnN0IEdMaW50ICpmaXJzdCwgY29uc3QgR0xzaXplaSAqY291
bnQsIEdMc2l6ZWkgcHJpbWNvdW50LCBHTGludCBtb2Rlc3RyaWRlKTsKdHlwZWRlZiB2b2lkICgg
KiBQRk5HTE1VTFRJTU9ERURSQVdFTEVNRU5UU0lCTVBST0MpIChjb25zdCBHTGVudW0gKm1vZGUs
IGNvbnN0IEdMc2l6ZWkgKmNvdW50LCBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkKiAqaW5kaWNl
cywgR0xzaXplaSBwcmltY291bnQsIEdMaW50IG1vZGVzdHJpZGUpOwoKCgoKCmV4dGVybiB2b2lk
IGdsQ29sb3JQb2ludGVyTGlzdElCTSAoR0xpbnQsIEdMZW51bSwgR0xpbnQsIGNvbnN0IEdMdm9p
ZCogKiwgR0xpbnQpOwpleHRlcm4gdm9pZCBnbFNlY29uZGFyeUNvbG9yUG9pbnRlckxpc3RJQk0g
KEdMaW50LCBHTGVudW0sIEdMaW50LCBjb25zdCBHTHZvaWQqICosIEdMaW50KTsKZXh0ZXJuIHZv
aWQgZ2xFZGdlRmxhZ1BvaW50ZXJMaXN0SUJNIChHTGludCwgY29uc3QgR0xib29sZWFuKiAqLCBH
TGludCk7CmV4dGVybiB2b2lkIGdsRm9nQ29vcmRQb2ludGVyTGlzdElCTSAoR0xlbnVtLCBHTGlu
dCwgY29uc3QgR0x2b2lkKiAqLCBHTGludCk7CmV4dGVybiB2b2lkIGdsSW5kZXhQb2ludGVyTGlz
dElCTSAoR0xlbnVtLCBHTGludCwgY29uc3QgR0x2b2lkKiAqLCBHTGludCk7CmV4dGVybiB2b2lk
IGdsTm9ybWFsUG9pbnRlckxpc3RJQk0gKEdMZW51bSwgR0xpbnQsIGNvbnN0IEdMdm9pZCogKiwg
R0xpbnQpOwpleHRlcm4gdm9pZCBnbFRleENvb3JkUG9pbnRlckxpc3RJQk0gKEdMaW50LCBHTGVu
dW0sIEdMaW50LCBjb25zdCBHTHZvaWQqICosIEdMaW50KTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhQ
b2ludGVyTGlzdElCTSAoR0xpbnQsIEdMZW51bSwgR0xpbnQsIGNvbnN0IEdMdm9pZCogKiwgR0xp
bnQpOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTENPTE9SUE9JTlRFUkxJU1RJQk1QUk9DKSAoR0xp
bnQgc2l6ZSwgR0xlbnVtIHR5cGUsIEdMaW50IHN0cmlkZSwgY29uc3QgR0x2b2lkKiAqcG9pbnRl
ciwgR0xpbnQgcHRyc3RyaWRlKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNFQ09OREFSWUNPTE9S
UE9JTlRFUkxJU1RJQk1QUk9DKSAoR0xpbnQgc2l6ZSwgR0xlbnVtIHR5cGUsIEdMaW50IHN0cmlk
ZSwgY29uc3QgR0x2b2lkKiAqcG9pbnRlciwgR0xpbnQgcHRyc3RyaWRlKTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTEVER0VGTEFHUE9JTlRFUkxJU1RJQk1QUk9DKSAoR0xpbnQgc3RyaWRlLCBjb25z
dCBHTGJvb2xlYW4qICpwb2ludGVyLCBHTGludCBwdHJzdHJpZGUpOwp0eXBlZGVmIHZvaWQgKCAq
IFBGTkdMRk9HQ09PUkRQT0lOVEVSTElTVElCTVBST0MpIChHTGVudW0gdHlwZSwgR0xpbnQgc3Ry
aWRlLCBjb25zdCBHTHZvaWQqICpwb2ludGVyLCBHTGludCBwdHJzdHJpZGUpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMSU5ERVhQT0lOVEVSTElTVElCTVBST0MpIChHTGVudW0gdHlwZSwgR0xpbnQg
c3RyaWRlLCBjb25zdCBHTHZvaWQqICpwb2ludGVyLCBHTGludCBwdHJzdHJpZGUpOwp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMTk9STUFMUE9JTlRFUkxJU1RJQk1QUk9DKSAoR0xlbnVtIHR5cGUsIEdM
aW50IHN0cmlkZSwgY29uc3QgR0x2b2lkKiAqcG9pbnRlciwgR0xpbnQgcHRyc3RyaWRlKTsKdHlw
ZWRlZiB2b2lkICggKiBQRk5HTFRFWENPT1JEUE9JTlRFUkxJU1RJQk1QUk9DKSAoR0xpbnQgc2l6
ZSwgR0xlbnVtIHR5cGUsIEdMaW50IHN0cmlkZSwgY29uc3QgR0x2b2lkKiAqcG9pbnRlciwgR0xp
bnQgcHRyc3RyaWRlKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWFBPSU5URVJMSVNUSUJN
UFJPQykgKEdMaW50IHNpemUsIEdMZW51bSB0eXBlLCBHTGludCBzdHJpZGUsIGNvbnN0IEdMdm9p
ZCogKnBvaW50ZXIsIEdMaW50IHB0cnN0cmlkZSk7CiMgNDM3MiAiLi4vaW5jbHVkZS9HTC9nbGV4
dC5oIgpleHRlcm4gdm9pZCBnbFRidWZmZXJNYXNrM0RGWCAoR0x1aW50KTsKCnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xUQlVGRkVSTUFTSzNERlhQUk9DKSAoR0x1aW50IG1hc2spOwoKCgoKCmV4dGVy
biB2b2lkIGdsU2FtcGxlTWFza0VYVCAoR0xjbGFtcGYsIEdMYm9vbGVhbik7CmV4dGVybiB2b2lk
IGdsU2FtcGxlUGF0dGVybkVYVCAoR0xlbnVtKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xTQU1Q
TEVNQVNLRVhUUFJPQykgKEdMY2xhbXBmIHZhbHVlLCBHTGJvb2xlYW4gaW52ZXJ0KTsKdHlwZWRl
ZiB2b2lkICggKiBQRk5HTFNBTVBMRVBBVFRFUk5FWFRQUk9DKSAoR0xlbnVtIHBhdHRlcm4pOwoj
IDQ0MDYgIi4uL2luY2x1ZGUvR0wvZ2xleHQuaCIKZXh0ZXJuIHZvaWQgZ2xUZXh0dXJlQ29sb3JN
YXNrU0dJUyAoR0xib29sZWFuLCBHTGJvb2xlYW4sIEdMYm9vbGVhbiwgR0xib29sZWFuKTsKCnR5
cGVkZWYgdm9pZCAoICogUEZOR0xURVhUVVJFQ09MT1JNQVNLU0dJU1BST0MpIChHTGJvb2xlYW4g
cmVkLCBHTGJvb2xlYW4gZ3JlZW4sIEdMYm9vbGVhbiBibHVlLCBHTGJvb2xlYW4gYWxwaGEpOwoK
CgoKCmV4dGVybiB2b2lkIGdsSWdsb29JbnRlcmZhY2VTR0lYIChHTGVudW0sIGNvbnN0IEdMdm9p
ZCAqKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xJR0xPT0lOVEVSRkFDRVNHSVhQUk9DKSAoR0xl
bnVtIHBuYW1lLCBjb25zdCBHTHZvaWQgKnBhcmFtcyk7CiMgNDQzMCAiLi4vaW5jbHVkZS9HTC9n
bGV4dC5oIgpleHRlcm4gdm9pZCBnbERlbGV0ZUZlbmNlc05WIChHTHNpemVpLCBjb25zdCBHTHVp
bnQgKik7CmV4dGVybiB2b2lkIGdsR2VuRmVuY2VzTlYgKEdMc2l6ZWksIEdMdWludCAqKTsKZXh0
ZXJuIEdMYm9vbGVhbiBnbElzRmVuY2VOViAoR0x1aW50KTsKZXh0ZXJuIEdMYm9vbGVhbiBnbFRl
c3RGZW5jZU5WIChHTHVpbnQpOwpleHRlcm4gdm9pZCBnbEdldEZlbmNlaXZOViAoR0x1aW50LCBH
TGVudW0sIEdMaW50ICopOwpleHRlcm4gdm9pZCBnbEZpbmlzaEZlbmNlTlYgKEdMdWludCk7CmV4
dGVybiB2b2lkIGdsU2V0RmVuY2VOViAoR0x1aW50LCBHTGVudW0pOwoKdHlwZWRlZiB2b2lkICgg
KiBQRk5HTERFTEVURUZFTkNFU05WUFJPQykgKEdMc2l6ZWkgbiwgY29uc3QgR0x1aW50ICpmZW5j
ZXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VORkVOQ0VTTlZQUk9DKSAoR0xzaXplaSBuLCBH
THVpbnQgKmZlbmNlcyk7CnR5cGVkZWYgR0xib29sZWFuICggKiBQRk5HTElTRkVOQ0VOVlBST0Mp
IChHTHVpbnQgZmVuY2UpOwp0eXBlZGVmIEdMYm9vbGVhbiAoICogUEZOR0xURVNURkVOQ0VOVlBS
T0MpIChHTHVpbnQgZmVuY2UpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VURkVOQ0VJVk5WUFJP
QykgKEdMdWludCBmZW5jZSwgR0xlbnVtIHBuYW1lLCBHTGludCAqcGFyYW1zKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTEZJTklTSEZFTkNFTlZQUk9DKSAoR0x1aW50IGZlbmNlKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTFNFVEZFTkNFTlZQUk9DKSAoR0x1aW50IGZlbmNlLCBHTGVudW0gY29uZGl0
aW9uKTsKCgoKCgpleHRlcm4gdm9pZCBnbE1hcENvbnRyb2xQb2ludHNOViAoR0xlbnVtLCBHTHVp
bnQsIEdMZW51bSwgR0xzaXplaSwgR0xzaXplaSwgR0xpbnQsIEdMaW50LCBHTGJvb2xlYW4sIGNv
bnN0IEdMdm9pZCAqKTsKZXh0ZXJuIHZvaWQgZ2xNYXBQYXJhbWV0ZXJpdk5WIChHTGVudW0sIEdM
ZW51bSwgY29uc3QgR0xpbnQgKik7CmV4dGVybiB2b2lkIGdsTWFwUGFyYW1ldGVyZnZOViAoR0xl
bnVtLCBHTGVudW0sIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsR2V0TWFwQ29udHJv
bFBvaW50c05WIChHTGVudW0sIEdMdWludCwgR0xlbnVtLCBHTHNpemVpLCBHTHNpemVpLCBHTGJv
b2xlYW4sIEdMdm9pZCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRNYXBQYXJhbWV0ZXJpdk5WIChHTGVu
dW0sIEdMZW51bSwgR0xpbnQgKik7CmV4dGVybiB2b2lkIGdsR2V0TWFwUGFyYW1ldGVyZnZOViAo
R0xlbnVtLCBHTGVudW0sIEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsR2V0TWFwQXR0cmliUGFy
YW1ldGVyaXZOViAoR0xlbnVtLCBHTHVpbnQsIEdMZW51bSwgR0xpbnQgKik7CmV4dGVybiB2b2lk
IGdsR2V0TWFwQXR0cmliUGFyYW1ldGVyZnZOViAoR0xlbnVtLCBHTHVpbnQsIEdMZW51bSwgR0xm
bG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xFdmFsTWFwc05WIChHTGVudW0sIEdMZW51bSk7Cgp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMTUFQQ09OVFJPTFBPSU5UU05WUFJPQykgKEdMZW51bSB0YXJnZXQs
IEdMdWludCBpbmRleCwgR0xlbnVtIHR5cGUsIEdMc2l6ZWkgdXN0cmlkZSwgR0xzaXplaSB2c3Ry
aWRlLCBHTGludCB1b3JkZXIsIEdMaW50IHZvcmRlciwgR0xib29sZWFuIHBhY2tlZCwgY29uc3Qg
R0x2b2lkICpwb2ludHMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTUFQUEFSQU1FVEVSSVZOVlBS
T0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMaW50ICpwYXJhbXMpOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMTUFQUEFSQU1FVEVSRlZOVlBST0MpIChHTGVudW0gdGFyZ2V0
LCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMZmxvYXQgKnBhcmFtcyk7CnR5cGVkZWYgdm9pZCAoICog
UEZOR0xHRVRNQVBDT05UUk9MUE9JTlRTTlZQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0x1aW50IGlu
ZGV4LCBHTGVudW0gdHlwZSwgR0xzaXplaSB1c3RyaWRlLCBHTHNpemVpIHZzdHJpZGUsIEdMYm9v
bGVhbiBwYWNrZWQsIEdMdm9pZCAqcG9pbnRzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVE1B
UFBBUkFNRVRFUklWTlZQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGludCAq
cGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVE1BUFBBUkFNRVRFUkZWTlZQUk9DKSAo
R0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMR0VUTUFQQVRUUklCUEFSQU1FVEVSSVZOVlBST0MpIChHTGVudW0gdGFyZ2V0
LCBHTHVpbnQgaW5kZXgsIEdMZW51bSBwbmFtZSwgR0xpbnQgKnBhcmFtcyk7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xHRVRNQVBBVFRSSUJQQVJBTUVURVJGVk5WUFJPQykgKEdMZW51bSB0YXJnZXQs
IEdMdWludCBpbmRleCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMRVZBTE1BUFNOVlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTGVudW0gbW9kZSk7
CiMgNDQ3OCAiLi4vaW5jbHVkZS9HTC9nbGV4dC5oIgpleHRlcm4gdm9pZCBnbENvbWJpbmVyU3Rh
Z2VQYXJhbWV0ZXJmdk5WIChHTGVudW0sIEdMZW51bSwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJu
IHZvaWQgZ2xHZXRDb21iaW5lclN0YWdlUGFyYW1ldGVyZnZOViAoR0xlbnVtLCBHTGVudW0sIEdM
ZmxvYXQgKik7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMQ09NQklORVJTVEFHRVBBUkFNRVRFUkZW
TlZQUk9DKSAoR0xlbnVtIHN0YWdlLCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMZmxvYXQgKnBhcmFt
cyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRDT01CSU5FUlNUQUdFUEFSQU1FVEVSRlZOVlBS
T0MpIChHTGVudW0gc3RhZ2UsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCAqcGFyYW1zKTsKIyA0NTA4
ICIuLi9pbmNsdWRlL0dML2dsZXh0LmgiCmV4dGVybiBHTGJvb2xlYW4gZ2xBcmVQcm9ncmFtc1Jl
c2lkZW50TlYgKEdMc2l6ZWksIGNvbnN0IEdMdWludCAqLCBHTGJvb2xlYW4gKik7CmV4dGVybiB2
b2lkIGdsQmluZFByb2dyYW1OViAoR0xlbnVtLCBHTHVpbnQpOwpleHRlcm4gdm9pZCBnbERlbGV0
ZVByb2dyYW1zTlYgKEdMc2l6ZWksIGNvbnN0IEdMdWludCAqKTsKZXh0ZXJuIHZvaWQgZ2xFeGVj
dXRlUHJvZ3JhbU5WIChHTGVudW0sIEdMdWludCwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZv
aWQgZ2xHZW5Qcm9ncmFtc05WIChHTHNpemVpLCBHTHVpbnQgKik7CmV4dGVybiB2b2lkIGdsR2V0
UHJvZ3JhbVBhcmFtZXRlcmR2TlYgKEdMZW51bSwgR0x1aW50LCBHTGVudW0sIEdMZG91YmxlICop
OwpleHRlcm4gdm9pZCBnbEdldFByb2dyYW1QYXJhbWV0ZXJmdk5WIChHTGVudW0sIEdMdWludCwg
R0xlbnVtLCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbEdldFByb2dyYW1pdk5WIChHTHVpbnQs
IEdMZW51bSwgR0xpbnQgKik7CmV4dGVybiB2b2lkIGdsR2V0UHJvZ3JhbVN0cmluZ05WIChHTHVp
bnQsIEdMZW51bSwgR0x1Ynl0ZSAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRUcmFja01hdHJpeGl2TlYg
KEdMZW51bSwgR0x1aW50LCBHTGVudW0sIEdMaW50ICopOwpleHRlcm4gdm9pZCBnbEdldFZlcnRl
eEF0dHJpYmR2TlYgKEdMdWludCwgR0xlbnVtLCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQgZ2xH
ZXRWZXJ0ZXhBdHRyaWJmdk5WIChHTHVpbnQsIEdMZW51bSwgR0xmbG9hdCAqKTsKZXh0ZXJuIHZv
aWQgZ2xHZXRWZXJ0ZXhBdHRyaWJpdk5WIChHTHVpbnQsIEdMZW51bSwgR0xpbnQgKik7CmV4dGVy
biB2b2lkIGdsR2V0VmVydGV4QXR0cmliUG9pbnRlcnZOViAoR0x1aW50LCBHTGVudW0sIEdMdm9p
ZCogKik7CmV4dGVybiBHTGJvb2xlYW4gZ2xJc1Byb2dyYW1OViAoR0x1aW50KTsKZXh0ZXJuIHZv
aWQgZ2xMb2FkUHJvZ3JhbU5WIChHTGVudW0sIEdMdWludCwgR0xzaXplaSwgY29uc3QgR0x1Ynl0
ZSAqKTsKZXh0ZXJuIHZvaWQgZ2xQcm9ncmFtUGFyYW1ldGVyNGROViAoR0xlbnVtLCBHTHVpbnQs
IEdMZG91YmxlLCBHTGRvdWJsZSwgR0xkb3VibGUsIEdMZG91YmxlKTsKZXh0ZXJuIHZvaWQgZ2xQ
cm9ncmFtUGFyYW1ldGVyNGR2TlYgKEdMZW51bSwgR0x1aW50LCBjb25zdCBHTGRvdWJsZSAqKTsK
ZXh0ZXJuIHZvaWQgZ2xQcm9ncmFtUGFyYW1ldGVyNGZOViAoR0xlbnVtLCBHTHVpbnQsIEdMZmxv
YXQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQpOwpleHRlcm4gdm9pZCBnbFByb2dyYW1QYXJh
bWV0ZXI0ZnZOViAoR0xlbnVtLCBHTHVpbnQsIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lk
IGdsUHJvZ3JhbVBhcmFtZXRlcnM0ZHZOViAoR0xlbnVtLCBHTHVpbnQsIEdMdWludCwgY29uc3Qg
R0xkb3VibGUgKik7CmV4dGVybiB2b2lkIGdsUHJvZ3JhbVBhcmFtZXRlcnM0ZnZOViAoR0xlbnVt
LCBHTHVpbnQsIEdMdWludCwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xSZXF1ZXN0
UmVzaWRlbnRQcm9ncmFtc05WIChHTHNpemVpLCBjb25zdCBHTHVpbnQgKik7CmV4dGVybiB2b2lk
IGdsVHJhY2tNYXRyaXhOViAoR0xlbnVtLCBHTHVpbnQsIEdMZW51bSwgR0xlbnVtKTsKZXh0ZXJu
IHZvaWQgZ2xWZXJ0ZXhBdHRyaWJQb2ludGVyTlYgKEdMdWludCwgR0xpbnQsIEdMZW51bSwgR0xz
aXplaSwgY29uc3QgR0x2b2lkICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYjFkTlYgKEdM
dWludCwgR0xkb3VibGUpOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYjFkdk5WIChHTHVpbnQs
IGNvbnN0IEdMZG91YmxlICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYjFmTlYgKEdMdWlu
dCwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmliMWZ2TlYgKEdMdWludCwgY29u
c3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWIxc05WIChHTHVpbnQsIEdM
c2hvcnQpOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYjFzdk5WIChHTHVpbnQsIGNvbnN0IEdM
c2hvcnQgKik7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmliMmROViAoR0x1aW50LCBHTGRvdWJs
ZSwgR0xkb3VibGUpOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYjJkdk5WIChHTHVpbnQsIGNv
bnN0IEdMZG91YmxlICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYjJmTlYgKEdMdWludCwg
R0xmbG9hdCwgR0xmbG9hdCk7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmliMmZ2TlYgKEdMdWlu
dCwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWIyc05WIChHTHVp
bnQsIEdMc2hvcnQsIEdMc2hvcnQpOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYjJzdk5WIChH
THVpbnQsIGNvbnN0IEdMc2hvcnQgKik7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmliM2ROViAo
R0x1aW50LCBHTGRvdWJsZSwgR0xkb3VibGUsIEdMZG91YmxlKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0
ZXhBdHRyaWIzZHZOViAoR0x1aW50LCBjb25zdCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQgZ2xW
ZXJ0ZXhBdHRyaWIzZk5WIChHTHVpbnQsIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxvYXQpOwpleHRl
cm4gdm9pZCBnbFZlcnRleEF0dHJpYjNmdk5WIChHTHVpbnQsIGNvbnN0IEdMZmxvYXQgKik7CmV4
dGVybiB2b2lkIGdsVmVydGV4QXR0cmliM3NOViAoR0x1aW50LCBHTHNob3J0LCBHTHNob3J0LCBH
THNob3J0KTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWIzc3ZOViAoR0x1aW50LCBjb25zdCBH
THNob3J0ICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYjRkTlYgKEdMdWludCwgR0xkb3Vi
bGUsIEdMZG91YmxlLCBHTGRvdWJsZSwgR0xkb3VibGUpOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0
dHJpYjRkdk5WIChHTHVpbnQsIGNvbnN0IEdMZG91YmxlICopOwpleHRlcm4gdm9pZCBnbFZlcnRl
eEF0dHJpYjRmTlYgKEdMdWludCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCk7
CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmliNGZ2TlYgKEdMdWludCwgY29uc3QgR0xmbG9hdCAq
KTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWI0c05WIChHTHVpbnQsIEdMc2hvcnQsIEdMc2hv
cnQsIEdMc2hvcnQsIEdMc2hvcnQpOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYjRzdk5WIChH
THVpbnQsIGNvbnN0IEdMc2hvcnQgKik7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmliNHViTlYg
KEdMdWludCwgR0x1Ynl0ZSwgR0x1Ynl0ZSwgR0x1Ynl0ZSwgR0x1Ynl0ZSk7CmV4dGVybiB2b2lk
IGdsVmVydGV4QXR0cmliNHVidk5WIChHTHVpbnQsIGNvbnN0IEdMdWJ5dGUgKik7CmV4dGVybiB2
b2lkIGdsVmVydGV4QXR0cmliczFkdk5WIChHTHVpbnQsIEdMc2l6ZWksIGNvbnN0IEdMZG91Ymxl
ICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYnMxZnZOViAoR0x1aW50LCBHTHNpemVpLCBj
b25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYnMxc3ZOViAoR0x1aW50
LCBHTHNpemVpLCBjb25zdCBHTHNob3J0ICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYnMy
ZHZOViAoR0x1aW50LCBHTHNpemVpLCBjb25zdCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQgZ2xW
ZXJ0ZXhBdHRyaWJzMmZ2TlYgKEdMdWludCwgR0xzaXplaSwgY29uc3QgR0xmbG9hdCAqKTsKZXh0
ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWJzMnN2TlYgKEdMdWludCwgR0xzaXplaSwgY29uc3QgR0xz
aG9ydCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhBdHRyaWJzM2R2TlYgKEdMdWludCwgR0xzaXpl
aSwgY29uc3QgR0xkb3VibGUgKik7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0cmliczNmdk5WIChH
THVpbnQsIEdMc2l6ZWksIGNvbnN0IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsVmVydGV4QXR0
cmliczNzdk5WIChHTHVpbnQsIEdMc2l6ZWksIGNvbnN0IEdMc2hvcnQgKik7CmV4dGVybiB2b2lk
IGdsVmVydGV4QXR0cmliczRkdk5WIChHTHVpbnQsIEdMc2l6ZWksIGNvbnN0IEdMZG91YmxlICop
OwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYnM0ZnZOViAoR0x1aW50LCBHTHNpemVpLCBjb25z
dCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYnM0c3ZOViAoR0x1aW50LCBH
THNpemVpLCBjb25zdCBHTHNob3J0ICopOwpleHRlcm4gdm9pZCBnbFZlcnRleEF0dHJpYnM0dWJ2
TlYgKEdMdWludCwgR0xzaXplaSwgY29uc3QgR0x1Ynl0ZSAqKTsKCnR5cGVkZWYgR0xib29sZWFu
ICggKiBQRk5HTEFSRVBST0dSQU1TUkVTSURFTlROVlBST0MpIChHTHNpemVpIG4sIGNvbnN0IEdM
dWludCAqcHJvZ3JhbXMsIEdMYm9vbGVhbiAqcmVzaWRlbmNlcyk7CnR5cGVkZWYgdm9pZCAoICog
UEZOR0xCSU5EUFJPR1JBTU5WUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMdWludCBpZCk7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xERUxFVEVQUk9HUkFNU05WUFJPQykgKEdMc2l6ZWkgbiwgY29uc3Qg
R0x1aW50ICpwcm9ncmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xFWEVDVVRFUFJPR1JBTU5W
UFJPQykgKEdMZW51bSB0YXJnZXQsIEdMdWludCBpZCwgY29uc3QgR0xmbG9hdCAqcGFyYW1zKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTEdFTlBST0dSQU1TTlZQUk9DKSAoR0xzaXplaSBuLCBHTHVp
bnQgKnByb2dyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVFBST0dSQU1QQVJBTUVURVJE
Vk5WUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMdWludCBpbmRleCwgR0xlbnVtIHBuYW1lLCBHTGRv
dWJsZSAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVFBST0dSQU1QQVJBTUVURVJG
Vk5WUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMdWludCBpbmRleCwgR0xlbnVtIHBuYW1lLCBHTGZs
b2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUUFJPR1JBTUlWTlZQUk9DKSAo
R0x1aW50IGlkLCBHTGVudW0gcG5hbWUsIEdMaW50ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAq
IFBGTkdMR0VUUFJPR1JBTVNUUklOR05WUFJPQykgKEdMdWludCBpZCwgR0xlbnVtIHBuYW1lLCBH
THVieXRlICpwcm9ncmFtKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVFRSQUNLTUFUUklYSVZO
VlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTHVpbnQgYWRkcmVzcywgR0xlbnVtIHBuYW1lLCBHTGlu
dCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVFZFUlRFWEFUVFJJQkRWTlZQUk9D
KSAoR0x1aW50IGluZGV4LCBHTGVudW0gcG5hbWUsIEdMZG91YmxlICpwYXJhbXMpOwp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMR0VUVkVSVEVYQVRUUklCRlZOVlBST0MpIChHTHVpbnQgaW5kZXgsIEdM
ZW51bSBwbmFtZSwgR0xmbG9hdCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVFZF
UlRFWEFUVFJJQklWTlZQUk9DKSAoR0x1aW50IGluZGV4LCBHTGVudW0gcG5hbWUsIEdMaW50ICpw
YXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUVkVSVEVYQVRUUklCUE9JTlRFUlZOVlBS
T0MpIChHTHVpbnQgaW5kZXgsIEdMZW51bSBwbmFtZSwgR0x2b2lkKiAqcG9pbnRlcik7CnR5cGVk
ZWYgR0xib29sZWFuICggKiBQRk5HTElTUFJPR1JBTU5WUFJPQykgKEdMdWludCBpZCk7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xMT0FEUFJPR1JBTU5WUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMdWlu
dCBpZCwgR0xzaXplaSBsZW4sIGNvbnN0IEdMdWJ5dGUgKnByb2dyYW0pOwp0eXBlZGVmIHZvaWQg
KCAqIFBGTkdMUFJPR1JBTVBBUkFNRVRFUjRETlZQUk9DKSAoR0xlbnVtIHRhcmdldCwgR0x1aW50
IGluZGV4LCBHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRvdWJsZSB6LCBHTGRvdWJsZSB3KTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTFBST0dSQU1QQVJBTUVURVI0RFZOVlBST0MpIChHTGVudW0g
dGFyZ2V0LCBHTHVpbnQgaW5kZXgsIGNvbnN0IEdMZG91YmxlICp2KTsKdHlwZWRlZiB2b2lkICgg
KiBQRk5HTFBST0dSQU1QQVJBTUVURVI0Rk5WUFJPQykgKEdMZW51bSB0YXJnZXQsIEdMdWludCBp
bmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeiwgR0xmbG9hdCB3KTsKdHlwZWRl
ZiB2b2lkICggKiBQRk5HTFBST0dSQU1QQVJBTUVURVI0RlZOVlBST0MpIChHTGVudW0gdGFyZ2V0
LCBHTHVpbnQgaW5kZXgsIGNvbnN0IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
UFJPR1JBTVBBUkFNRVRFUlM0RFZOVlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaW5kZXgs
IEdMdWludCBjb3VudCwgY29uc3QgR0xkb3VibGUgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
UFJPR1JBTVBBUkFNRVRFUlM0RlZOVlBST0MpIChHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaW5kZXgs
IEdMdWludCBjb3VudCwgY29uc3QgR0xmbG9hdCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xS
RVFVRVNUUkVTSURFTlRQUk9HUkFNU05WUFJPQykgKEdMc2l6ZWkgbiwgY29uc3QgR0x1aW50ICpw
cm9ncmFtcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xUUkFDS01BVFJJWE5WUFJPQykgKEdMZW51
bSB0YXJnZXQsIEdMdWludCBhZGRyZXNzLCBHTGVudW0gbWF0cml4LCBHTGVudW0gdHJhbnNmb3Jt
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQlBPSU5URVJOVlBST0MpIChHTHVp
bnQgaW5kZXgsIEdMaW50IGZzaXplLCBHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUsIGNvbnN0
IEdMdm9pZCAqcG9pbnRlcik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUIxRE5W
UFJPQykgKEdMdWludCBpbmRleCwgR0xkb3VibGUgeCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xW
RVJURVhBVFRSSUIxRFZOVlBST0MpIChHTHVpbnQgaW5kZXgsIGNvbnN0IEdMZG91YmxlICp2KTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjFGTlZQUk9DKSAoR0x1aW50IGluZGV4
LCBHTGZsb2F0IHgpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklCMUZWTlZQUk9D
KSAoR0x1aW50IGluZGV4LCBjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TFZFUlRFWEFUVFJJQjFTTlZQUk9DKSAoR0x1aW50IGluZGV4LCBHTHNob3J0IHgpOwp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklCMVNWTlZQUk9DKSAoR0x1aW50IGluZGV4LCBjb25z
dCBHTHNob3J0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjJETlZQUk9D
KSAoR0x1aW50IGluZGV4LCBHTGRvdWJsZSB4LCBHTGRvdWJsZSB5KTsKdHlwZWRlZiB2b2lkICgg
KiBQRk5HTFZFUlRFWEFUVFJJQjJEVk5WUFJPQykgKEdMdWludCBpbmRleCwgY29uc3QgR0xkb3Vi
bGUgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklCMkZOVlBST0MpIChHTHVp
bnQgaW5kZXgsIEdMZmxvYXQgeCwgR0xmbG9hdCB5KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZF
UlRFWEFUVFJJQjJGVk5WUFJPQykgKEdMdWludCBpbmRleCwgY29uc3QgR0xmbG9hdCAqdik7CnR5
cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUIyU05WUFJPQykgKEdMdWludCBpbmRleCwg
R0xzaG9ydCB4LCBHTHNob3J0IHkpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklC
MlNWTlZQUk9DKSAoR0x1aW50IGluZGV4LCBjb25zdCBHTHNob3J0ICp2KTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTFZFUlRFWEFUVFJJQjNETlZQUk9DKSAoR0x1aW50IGluZGV4LCBHTGRvdWJsZSB4
LCBHTGRvdWJsZSB5LCBHTGRvdWJsZSB6KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFU
VFJJQjNEVk5WUFJPQykgKEdMdWludCBpbmRleCwgY29uc3QgR0xkb3VibGUgKnYpOwp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklCM0ZOVlBST0MpIChHTHVpbnQgaW5kZXgsIEdMZmxv
YXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0IHopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVY
QVRUUklCM0ZWTlZQUk9DKSAoR0x1aW50IGluZGV4LCBjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRl
ZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjNTTlZQUk9DKSAoR0x1aW50IGluZGV4LCBHTHNo
b3J0IHgsIEdMc2hvcnQgeSwgR0xzaG9ydCB6KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRF
WEFUVFJJQjNTVk5WUFJPQykgKEdMdWludCBpbmRleCwgY29uc3QgR0xzaG9ydCAqdik7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUI0RE5WUFJPQykgKEdMdWludCBpbmRleCwgR0xk
b3VibGUgeCwgR0xkb3VibGUgeSwgR0xkb3VibGUgeiwgR0xkb3VibGUgdyk7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xWRVJURVhBVFRSSUI0RFZOVlBST0MpIChHTHVpbnQgaW5kZXgsIGNvbnN0IEdM
ZG91YmxlICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQjRGTlZQUk9DKSAo
R0x1aW50IGluZGV4LCBHTGZsb2F0IHgsIEdMZmxvYXQgeSwgR0xmbG9hdCB6LCBHTGZsb2F0IHcp
Owp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklCNEZWTlZQUk9DKSAoR0x1aW50IGlu
ZGV4LCBjb25zdCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJ
QjRTTlZQUk9DKSAoR0x1aW50IGluZGV4LCBHTHNob3J0IHgsIEdMc2hvcnQgeSwgR0xzaG9ydCB6
LCBHTHNob3J0IHcpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklCNFNWTlZQUk9D
KSAoR0x1aW50IGluZGV4LCBjb25zdCBHTHNob3J0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TFZFUlRFWEFUVFJJQjRVQk5WUFJPQykgKEdMdWludCBpbmRleCwgR0x1Ynl0ZSB4LCBHTHVieXRl
IHksIEdMdWJ5dGUgeiwgR0x1Ynl0ZSB3KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFU
VFJJQjRVQlZOVlBST0MpIChHTHVpbnQgaW5kZXgsIGNvbnN0IEdMdWJ5dGUgKnYpOwp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklCUzFEVk5WUFJPQykgKEdMdWludCBpbmRleCwgR0xz
aXplaSBjb3VudCwgY29uc3QgR0xkb3VibGUgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVS
VEVYQVRUUklCUzFGVk5WUFJPQykgKEdMdWludCBpbmRleCwgR0xzaXplaSBjb3VudCwgY29uc3Qg
R0xmbG9hdCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUJTMVNWTlZQUk9D
KSAoR0x1aW50IGluZGV4LCBHTHNpemVpIGNvdW50LCBjb25zdCBHTHNob3J0ICp2KTsKdHlwZWRl
ZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQlMyRFZOVlBST0MpIChHTHVpbnQgaW5kZXgsIEdM
c2l6ZWkgY291bnQsIGNvbnN0IEdMZG91YmxlICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZF
UlRFWEFUVFJJQlMyRlZOVlBST0MpIChHTHVpbnQgaW5kZXgsIEdMc2l6ZWkgY291bnQsIGNvbnN0
IEdMZmxvYXQgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklCUzJTVk5WUFJP
QykgKEdMdWludCBpbmRleCwgR0xzaXplaSBjb3VudCwgY29uc3QgR0xzaG9ydCAqdik7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUJTM0RWTlZQUk9DKSAoR0x1aW50IGluZGV4LCBH
THNpemVpIGNvdW50LCBjb25zdCBHTGRvdWJsZSAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xW
RVJURVhBVFRSSUJTM0ZWTlZQUk9DKSAoR0x1aW50IGluZGV4LCBHTHNpemVpIGNvdW50LCBjb25z
dCBHTGZsb2F0ICp2KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQlMzU1ZOVlBS
T0MpIChHTHVpbnQgaW5kZXgsIEdMc2l6ZWkgY291bnQsIGNvbnN0IEdMc2hvcnQgKnYpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYQVRUUklCUzREVk5WUFJPQykgKEdMdWludCBpbmRleCwg
R0xzaXplaSBjb3VudCwgY29uc3QgR0xkb3VibGUgKnYpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
VkVSVEVYQVRUUklCUzRGVk5WUFJPQykgKEdMdWludCBpbmRleCwgR0xzaXplaSBjb3VudCwgY29u
c3QgR0xmbG9hdCAqdik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhBVFRSSUJTNFNWTlZQ
Uk9DKSAoR0x1aW50IGluZGV4LCBHTHNpemVpIGNvdW50LCBjb25zdCBHTHNob3J0ICp2KTsKdHlw
ZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEFUVFJJQlM0VUJWTlZQUk9DKSAoR0x1aW50IGluZGV4
LCBHTHNpemVpIGNvdW50LCBjb25zdCBHTHVieXRlICp2KTsKIyA0NjY2ICIuLi9pbmNsdWRlL0dM
L2dsZXh0LmgiCmV4dGVybiB2b2lkIGdsVGV4QnVtcFBhcmFtZXRlcml2QVRJIChHTGVudW0sIGNv
bnN0IEdMaW50ICopOwpleHRlcm4gdm9pZCBnbFRleEJ1bXBQYXJhbWV0ZXJmdkFUSSAoR0xlbnVt
LCBjb25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbEdldFRleEJ1bXBQYXJhbWV0ZXJpdkFU
SSAoR0xlbnVtLCBHTGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRUZXhCdW1wUGFyYW1ldGVyZnZB
VEkgKEdMZW51bSwgR0xmbG9hdCAqKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xURVhCVU1QUEFS
QU1FVEVSSVZBVElQUk9DKSAoR0xlbnVtIHBuYW1lLCBjb25zdCBHTGludCAqcGFyYW0pOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMVEVYQlVNUFBBUkFNRVRFUkZWQVRJUFJPQykgKEdMZW51bSBwbmFt
ZSwgY29uc3QgR0xmbG9hdCAqcGFyYW0pOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUVEVYQlVN
UFBBUkFNRVRFUklWQVRJUFJPQykgKEdMZW51bSBwbmFtZSwgR0xpbnQgKnBhcmFtKTsKdHlwZWRl
ZiB2b2lkICggKiBQRk5HTEdFVFRFWEJVTVBQQVJBTUVURVJGVkFUSVBST0MpIChHTGVudW0gcG5h
bWUsIEdMZmxvYXQgKnBhcmFtKTsKCgoKCgpleHRlcm4gR0x1aW50IGdsR2VuRnJhZ21lbnRTaGFk
ZXJzQVRJIChHTHVpbnQpOwpleHRlcm4gdm9pZCBnbEJpbmRGcmFnbWVudFNoYWRlckFUSSAoR0x1
aW50KTsKZXh0ZXJuIHZvaWQgZ2xEZWxldGVGcmFnbWVudFNoYWRlckFUSSAoR0x1aW50KTsKZXh0
ZXJuIHZvaWQgZ2xCZWdpbkZyYWdtZW50U2hhZGVyQVRJICh2b2lkKTsKZXh0ZXJuIHZvaWQgZ2xF
bmRGcmFnbWVudFNoYWRlckFUSSAodm9pZCk7CmV4dGVybiB2b2lkIGdsUGFzc1RleENvb3JkQVRJ
IChHTHVpbnQsIEdMdWludCwgR0xlbnVtKTsKZXh0ZXJuIHZvaWQgZ2xTYW1wbGVNYXBBVEkgKEdM
dWludCwgR0x1aW50LCBHTGVudW0pOwpleHRlcm4gdm9pZCBnbENvbG9yRnJhZ21lbnRPcDFBVEkg
KEdMZW51bSwgR0x1aW50LCBHTHVpbnQsIEdMdWludCwgR0x1aW50LCBHTHVpbnQsIEdMdWludCk7
CmV4dGVybiB2b2lkIGdsQ29sb3JGcmFnbWVudE9wMkFUSSAoR0xlbnVtLCBHTHVpbnQsIEdMdWlu
dCwgR0x1aW50LCBHTHVpbnQsIEdMdWludCwgR0x1aW50LCBHTHVpbnQsIEdMdWludCwgR0x1aW50
KTsKZXh0ZXJuIHZvaWQgZ2xDb2xvckZyYWdtZW50T3AzQVRJIChHTGVudW0sIEdMdWludCwgR0x1
aW50LCBHTHVpbnQsIEdMdWludCwgR0x1aW50LCBHTHVpbnQsIEdMdWludCwgR0x1aW50LCBHTHVp
bnQsIEdMdWludCwgR0x1aW50LCBHTHVpbnQpOwpleHRlcm4gdm9pZCBnbEFscGhhRnJhZ21lbnRP
cDFBVEkgKEdMZW51bSwgR0x1aW50LCBHTHVpbnQsIEdMdWludCwgR0x1aW50LCBHTHVpbnQpOwpl
eHRlcm4gdm9pZCBnbEFscGhhRnJhZ21lbnRPcDJBVEkgKEdMZW51bSwgR0x1aW50LCBHTHVpbnQs
IEdMdWludCwgR0x1aW50LCBHTHVpbnQsIEdMdWludCwgR0x1aW50LCBHTHVpbnQpOwpleHRlcm4g
dm9pZCBnbEFscGhhRnJhZ21lbnRPcDNBVEkgKEdMZW51bSwgR0x1aW50LCBHTHVpbnQsIEdMdWlu
dCwgR0x1aW50LCBHTHVpbnQsIEdMdWludCwgR0x1aW50LCBHTHVpbnQsIEdMdWludCwgR0x1aW50
LCBHTHVpbnQpOwpleHRlcm4gdm9pZCBnbFNldEZyYWdtZW50U2hhZGVyQ29uc3RhbnRBVEkgKEdM
dWludCwgY29uc3QgR0xmbG9hdCAqKTsKCnR5cGVkZWYgR0x1aW50ICggKiBQRk5HTEdFTkZSQUdN
RU5UU0hBREVSU0FUSVBST0MpIChHTHVpbnQgcmFuZ2UpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdM
QklOREZSQUdNRU5UU0hBREVSQVRJUFJPQykgKEdMdWludCBpZCk7CnR5cGVkZWYgdm9pZCAoICog
UEZOR0xERUxFVEVGUkFHTUVOVFNIQURFUkFUSVBST0MpIChHTHVpbnQgaWQpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMQkVHSU5GUkFHTUVOVFNIQURFUkFUSVBST0MpICh2b2lkKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTEVOREZSQUdNRU5UU0hBREVSQVRJUFJPQykgKHZvaWQpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMUEFTU1RFWENPT1JEQVRJUFJPQykgKEdMdWludCBkc3QsIEdMdWludCBjb29y
ZCwgR0xlbnVtIHN3aXp6bGUpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMU0FNUExFTUFQQVRJUFJP
QykgKEdMdWludCBkc3QsIEdMdWludCBpbnRlcnAsIEdMZW51bSBzd2l6emxlKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTENPTE9SRlJBR01FTlRPUDFBVElQUk9DKSAoR0xlbnVtIG9wLCBHTHVpbnQg
ZHN0LCBHTHVpbnQgZHN0TWFzaywgR0x1aW50IGRzdE1vZCwgR0x1aW50IGFyZzEsIEdMdWludCBh
cmcxUmVwLCBHTHVpbnQgYXJnMU1vZCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xDT0xPUkZSQUdN
RU5UT1AyQVRJUFJPQykgKEdMZW51bSBvcCwgR0x1aW50IGRzdCwgR0x1aW50IGRzdE1hc2ssIEdM
dWludCBkc3RNb2QsIEdMdWludCBhcmcxLCBHTHVpbnQgYXJnMVJlcCwgR0x1aW50IGFyZzFNb2Qs
IEdMdWludCBhcmcyLCBHTHVpbnQgYXJnMlJlcCwgR0x1aW50IGFyZzJNb2QpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMQ09MT1JGUkFHTUVOVE9QM0FUSVBST0MpIChHTGVudW0gb3AsIEdMdWludCBk
c3QsIEdMdWludCBkc3RNYXNrLCBHTHVpbnQgZHN0TW9kLCBHTHVpbnQgYXJnMSwgR0x1aW50IGFy
ZzFSZXAsIEdMdWludCBhcmcxTW9kLCBHTHVpbnQgYXJnMiwgR0x1aW50IGFyZzJSZXAsIEdMdWlu
dCBhcmcyTW9kLCBHTHVpbnQgYXJnMywgR0x1aW50IGFyZzNSZXAsIEdMdWludCBhcmczTW9kKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTEFMUEhBRlJBR01FTlRPUDFBVElQUk9DKSAoR0xlbnVtIG9w
LCBHTHVpbnQgZHN0LCBHTHVpbnQgZHN0TW9kLCBHTHVpbnQgYXJnMSwgR0x1aW50IGFyZzFSZXAs
IEdMdWludCBhcmcxTW9kKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEFMUEhBRlJBR01FTlRPUDJB
VElQUk9DKSAoR0xlbnVtIG9wLCBHTHVpbnQgZHN0LCBHTHVpbnQgZHN0TW9kLCBHTHVpbnQgYXJn
MSwgR0x1aW50IGFyZzFSZXAsIEdMdWludCBhcmcxTW9kLCBHTHVpbnQgYXJnMiwgR0x1aW50IGFy
ZzJSZXAsIEdMdWludCBhcmcyTW9kKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEFMUEhBRlJBR01F
TlRPUDNBVElQUk9DKSAoR0xlbnVtIG9wLCBHTHVpbnQgZHN0LCBHTHVpbnQgZHN0TW9kLCBHTHVp
bnQgYXJnMSwgR0x1aW50IGFyZzFSZXAsIEdMdWludCBhcmcxTW9kLCBHTHVpbnQgYXJnMiwgR0x1
aW50IGFyZzJSZXAsIEdMdWludCBhcmcyTW9kLCBHTHVpbnQgYXJnMywgR0x1aW50IGFyZzNSZXAs
IEdMdWludCBhcmczTW9kKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNFVEZSQUdNRU5UU0hBREVS
Q09OU1RBTlRBVElQUk9DKSAoR0x1aW50IGRzdCwgY29uc3QgR0xmbG9hdCAqdmFsdWUpOwoKCgoK
CmV4dGVybiB2b2lkIGdsUE5UcmlhbmdsZXNpQVRJIChHTGVudW0sIEdMaW50KTsKZXh0ZXJuIHZv
aWQgZ2xQTlRyaWFuZ2xlc2ZBVEkgKEdMZW51bSwgR0xmbG9hdCk7Cgp0eXBlZGVmIHZvaWQgKCAq
IFBGTkdMUE5UUklBTkdMRVNJQVRJUFJPQykgKEdMZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0pOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMUE5UUklBTkdMRVNGQVRJUFJPQykgKEdMZW51bSBwbmFtZSwg
R0xmbG9hdCBwYXJhbSk7CgoKCgoKZXh0ZXJuIEdMdWludCBnbE5ld09iamVjdEJ1ZmZlckFUSSAo
R0xzaXplaSwgY29uc3QgR0x2b2lkICosIEdMZW51bSk7CmV4dGVybiBHTGJvb2xlYW4gZ2xJc09i
amVjdEJ1ZmZlckFUSSAoR0x1aW50KTsKZXh0ZXJuIHZvaWQgZ2xVcGRhdGVPYmplY3RCdWZmZXJB
VEkgKEdMdWludCwgR0x1aW50LCBHTHNpemVpLCBjb25zdCBHTHZvaWQgKiwgR0xlbnVtKTsKZXh0
ZXJuIHZvaWQgZ2xHZXRPYmplY3RCdWZmZXJmdkFUSSAoR0x1aW50LCBHTGVudW0sIEdMZmxvYXQg
Kik7CmV4dGVybiB2b2lkIGdsR2V0T2JqZWN0QnVmZmVyaXZBVEkgKEdMdWludCwgR0xlbnVtLCBH
TGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xEZWxldGVPYmplY3RCdWZmZXJBVEkgKEdMdWludCk7CmV4
dGVybiB2b2lkIGdsQXJyYXlPYmplY3RBVEkgKEdMZW51bSwgR0xpbnQsIEdMZW51bSwgR0xzaXpl
aSwgR0x1aW50LCBHTHVpbnQpOwpleHRlcm4gdm9pZCBnbEdldEFycmF5T2JqZWN0ZnZBVEkgKEdM
ZW51bSwgR0xlbnVtLCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbEdldEFycmF5T2JqZWN0aXZB
VEkgKEdMZW51bSwgR0xlbnVtLCBHTGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xWYXJpYW50QXJyYXlP
YmplY3RBVEkgKEdMdWludCwgR0xlbnVtLCBHTHNpemVpLCBHTHVpbnQsIEdMdWludCk7CmV4dGVy
biB2b2lkIGdsR2V0VmFyaWFudEFycmF5T2JqZWN0ZnZBVEkgKEdMdWludCwgR0xlbnVtLCBHTGZs
b2F0ICopOwpleHRlcm4gdm9pZCBnbEdldFZhcmlhbnRBcnJheU9iamVjdGl2QVRJIChHTHVpbnQs
IEdMZW51bSwgR0xpbnQgKik7Cgp0eXBlZGVmIEdMdWludCAoICogUEZOR0xORVdPQkpFQ1RCVUZG
RVJBVElQUk9DKSAoR0xzaXplaSBzaXplLCBjb25zdCBHTHZvaWQgKnBvaW50ZXIsIEdMZW51bSB1
c2FnZSk7CnR5cGVkZWYgR0xib29sZWFuICggKiBQRk5HTElTT0JKRUNUQlVGRkVSQVRJUFJPQykg
KEdMdWludCBidWZmZXIpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVVBEQVRFT0JKRUNUQlVGRkVS
QVRJUFJPQykgKEdMdWludCBidWZmZXIsIEdMdWludCBvZmZzZXQsIEdMc2l6ZWkgc2l6ZSwgY29u
c3QgR0x2b2lkICpwb2ludGVyLCBHTGVudW0gcHJlc2VydmUpOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMR0VUT0JKRUNUQlVGRkVSRlZBVElQUk9DKSAoR0x1aW50IGJ1ZmZlciwgR0xlbnVtIHBuYW1l
LCBHTGZsb2F0ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUT0JKRUNUQlVGRkVS
SVZBVElQUk9DKSAoR0x1aW50IGJ1ZmZlciwgR0xlbnVtIHBuYW1lLCBHTGludCAqcGFyYW1zKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTERFTEVURU9CSkVDVEJVRkZFUkFUSVBST0MpIChHTHVpbnQg
YnVmZmVyKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEFSUkFZT0JKRUNUQVRJUFJPQykgKEdMZW51
bSBhcnJheSwgR0xpbnQgc2l6ZSwgR0xlbnVtIHR5cGUsIEdMc2l6ZWkgc3RyaWRlLCBHTHVpbnQg
YnVmZmVyLCBHTHVpbnQgb2Zmc2V0KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVEFSUkFZT0JK
RUNURlZBVElQUk9DKSAoR0xlbnVtIGFycmF5LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgKnBhcmFt
cyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRBUlJBWU9CSkVDVElWQVRJUFJPQykgKEdMZW51
bSBhcnJheSwgR0xlbnVtIHBuYW1lLCBHTGludCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTFZBUklBTlRBUlJBWU9CSkVDVEFUSVBST0MpIChHTHVpbnQgaWQsIEdMZW51bSB0eXBlLCBH
THNpemVpIHN0cmlkZSwgR0x1aW50IGJ1ZmZlciwgR0x1aW50IG9mZnNldCk7CnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xHRVRWQVJJQU5UQVJSQVlPQkpFQ1RGVkFUSVBST0MpIChHTHVpbnQgaWQsIEdM
ZW51bSBwbmFtZSwgR0xmbG9hdCAqcGFyYW1zKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVFZB
UklBTlRBUlJBWU9CSkVDVElWQVRJUFJPQykgKEdMdWludCBpZCwgR0xlbnVtIHBuYW1lLCBHTGlu
dCAqcGFyYW1zKTsKCgoKCgpleHRlcm4gdm9pZCBnbEJlZ2luVmVydGV4U2hhZGVyRVhUICh2b2lk
KTsKZXh0ZXJuIHZvaWQgZ2xFbmRWZXJ0ZXhTaGFkZXJFWFQgKHZvaWQpOwpleHRlcm4gdm9pZCBn
bEJpbmRWZXJ0ZXhTaGFkZXJFWFQgKEdMdWludCk7CmV4dGVybiBHTHVpbnQgZ2xHZW5WZXJ0ZXhT
aGFkZXJzRVhUIChHTHVpbnQpOwpleHRlcm4gdm9pZCBnbERlbGV0ZVZlcnRleFNoYWRlckVYVCAo
R0x1aW50KTsKZXh0ZXJuIHZvaWQgZ2xTaGFkZXJPcDFFWFQgKEdMZW51bSwgR0x1aW50LCBHTHVp
bnQpOwpleHRlcm4gdm9pZCBnbFNoYWRlck9wMkVYVCAoR0xlbnVtLCBHTHVpbnQsIEdMdWludCwg
R0x1aW50KTsKZXh0ZXJuIHZvaWQgZ2xTaGFkZXJPcDNFWFQgKEdMZW51bSwgR0x1aW50LCBHTHVp
bnQsIEdMdWludCwgR0x1aW50KTsKZXh0ZXJuIHZvaWQgZ2xTd2l6emxlRVhUIChHTHVpbnQsIEdM
dWludCwgR0xlbnVtLCBHTGVudW0sIEdMZW51bSwgR0xlbnVtKTsKZXh0ZXJuIHZvaWQgZ2xXcml0
ZU1hc2tFWFQgKEdMdWludCwgR0x1aW50LCBHTGVudW0sIEdMZW51bSwgR0xlbnVtLCBHTGVudW0p
OwpleHRlcm4gdm9pZCBnbEluc2VydENvbXBvbmVudEVYVCAoR0x1aW50LCBHTHVpbnQsIEdMdWlu
dCk7CmV4dGVybiB2b2lkIGdsRXh0cmFjdENvbXBvbmVudEVYVCAoR0x1aW50LCBHTHVpbnQsIEdM
dWludCk7CmV4dGVybiBHTHVpbnQgZ2xHZW5TeW1ib2xzRVhUIChHTGVudW0sIEdMZW51bSwgR0xl
bnVtLCBHTHVpbnQpOwpleHRlcm4gdm9pZCBnbFNldEludmFyaWFudEVYVCAoR0x1aW50LCBHTGVu
dW0sIGNvbnN0IHZvaWQgKik7CmV4dGVybiB2b2lkIGdsU2V0TG9jYWxDb25zdGFudEVYVCAoR0x1
aW50LCBHTGVudW0sIGNvbnN0IHZvaWQgKik7CmV4dGVybiB2b2lkIGdsVmFyaWFudGJ2RVhUIChH
THVpbnQsIGNvbnN0IEdMYnl0ZSAqKTsKZXh0ZXJuIHZvaWQgZ2xWYXJpYW50c3ZFWFQgKEdMdWlu
dCwgY29uc3QgR0xzaG9ydCAqKTsKZXh0ZXJuIHZvaWQgZ2xWYXJpYW50aXZFWFQgKEdMdWludCwg
Y29uc3QgR0xpbnQgKik7CmV4dGVybiB2b2lkIGdsVmFyaWFudGZ2RVhUIChHTHVpbnQsIGNvbnN0
IEdMZmxvYXQgKik7CmV4dGVybiB2b2lkIGdsVmFyaWFudGR2RVhUIChHTHVpbnQsIGNvbnN0IEdM
ZG91YmxlICopOwpleHRlcm4gdm9pZCBnbFZhcmlhbnR1YnZFWFQgKEdMdWludCwgY29uc3QgR0x1
Ynl0ZSAqKTsKZXh0ZXJuIHZvaWQgZ2xWYXJpYW50dXN2RVhUIChHTHVpbnQsIGNvbnN0IEdMdXNo
b3J0ICopOwpleHRlcm4gdm9pZCBnbFZhcmlhbnR1aXZFWFQgKEdMdWludCwgY29uc3QgR0x1aW50
ICopOwpleHRlcm4gdm9pZCBnbFZhcmlhbnRQb2ludGVyRVhUIChHTHVpbnQsIEdMZW51bSwgR0x1
aW50LCBjb25zdCB2b2lkICopOwpleHRlcm4gdm9pZCBnbEVuYWJsZVZhcmlhbnRDbGllbnRTdGF0
ZUVYVCAoR0x1aW50KTsKZXh0ZXJuIHZvaWQgZ2xEaXNhYmxlVmFyaWFudENsaWVudFN0YXRlRVhU
IChHTHVpbnQpOwpleHRlcm4gR0x1aW50IGdsQmluZExpZ2h0UGFyYW1ldGVyRVhUIChHTGVudW0s
IEdMZW51bSk7CmV4dGVybiBHTHVpbnQgZ2xCaW5kTWF0ZXJpYWxQYXJhbWV0ZXJFWFQgKEdMZW51
bSwgR0xlbnVtKTsKZXh0ZXJuIEdMdWludCBnbEJpbmRUZXhHZW5QYXJhbWV0ZXJFWFQgKEdMZW51
bSwgR0xlbnVtLCBHTGVudW0pOwpleHRlcm4gR0x1aW50IGdsQmluZFRleHR1cmVVbml0UGFyYW1l
dGVyRVhUIChHTGVudW0sIEdMZW51bSk7CmV4dGVybiBHTHVpbnQgZ2xCaW5kUGFyYW1ldGVyRVhU
IChHTGVudW0pOwpleHRlcm4gR0xib29sZWFuIGdsSXNWYXJpYW50RW5hYmxlZEVYVCAoR0x1aW50
LCBHTGVudW0pOwpleHRlcm4gdm9pZCBnbEdldFZhcmlhbnRCb29sZWFudkVYVCAoR0x1aW50LCBH
TGVudW0sIEdMYm9vbGVhbiAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRWYXJpYW50SW50ZWdlcnZFWFQg
KEdMdWludCwgR0xlbnVtLCBHTGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRWYXJpYW50RmxvYXR2
RVhUIChHTHVpbnQsIEdMZW51bSwgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRWYXJpYW50
UG9pbnRlcnZFWFQgKEdMdWludCwgR0xlbnVtLCBHTHZvaWQqICopOwpleHRlcm4gdm9pZCBnbEdl
dEludmFyaWFudEJvb2xlYW52RVhUIChHTHVpbnQsIEdMZW51bSwgR0xib29sZWFuICopOwpleHRl
cm4gdm9pZCBnbEdldEludmFyaWFudEludGVnZXJ2RVhUIChHTHVpbnQsIEdMZW51bSwgR0xpbnQg
Kik7CmV4dGVybiB2b2lkIGdsR2V0SW52YXJpYW50RmxvYXR2RVhUIChHTHVpbnQsIEdMZW51bSwg
R0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRMb2NhbENvbnN0YW50Qm9vbGVhbnZFWFQgKEdM
dWludCwgR0xlbnVtLCBHTGJvb2xlYW4gKik7CmV4dGVybiB2b2lkIGdsR2V0TG9jYWxDb25zdGFu
dEludGVnZXJ2RVhUIChHTHVpbnQsIEdMZW51bSwgR0xpbnQgKik7CmV4dGVybiB2b2lkIGdsR2V0
TG9jYWxDb25zdGFudEZsb2F0dkVYVCAoR0x1aW50LCBHTGVudW0sIEdMZmxvYXQgKik7Cgp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMQkVHSU5WRVJURVhTSEFERVJFWFRQUk9DKSAodm9pZCk7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xFTkRWRVJURVhTSEFERVJFWFRQUk9DKSAodm9pZCk7CnR5cGVkZWYg
dm9pZCAoICogUEZOR0xCSU5EVkVSVEVYU0hBREVSRVhUUFJPQykgKEdMdWludCBpZCk7CnR5cGVk
ZWYgR0x1aW50ICggKiBQRk5HTEdFTlZFUlRFWFNIQURFUlNFWFRQUk9DKSAoR0x1aW50IHJhbmdl
KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTERFTEVURVZFUlRFWFNIQURFUkVYVFBST0MpIChHTHVp
bnQgaWQpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMU0hBREVST1AxRVhUUFJPQykgKEdMZW51bSBv
cCwgR0x1aW50IHJlcywgR0x1aW50IGFyZzEpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMU0hBREVS
T1AyRVhUUFJPQykgKEdMZW51bSBvcCwgR0x1aW50IHJlcywgR0x1aW50IGFyZzEsIEdMdWludCBh
cmcyKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFNIQURFUk9QM0VYVFBST0MpIChHTGVudW0gb3As
IEdMdWludCByZXMsIEdMdWludCBhcmcxLCBHTHVpbnQgYXJnMiwgR0x1aW50IGFyZzMpOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMU1dJWlpMRUVYVFBST0MpIChHTHVpbnQgcmVzLCBHTHVpbnQgaW4s
IEdMZW51bSBvdXRYLCBHTGVudW0gb3V0WSwgR0xlbnVtIG91dFosIEdMZW51bSBvdXRXKTsKdHlw
ZWRlZiB2b2lkICggKiBQRk5HTFdSSVRFTUFTS0VYVFBST0MpIChHTHVpbnQgcmVzLCBHTHVpbnQg
aW4sIEdMZW51bSBvdXRYLCBHTGVudW0gb3V0WSwgR0xlbnVtIG91dFosIEdMZW51bSBvdXRXKTsK
dHlwZWRlZiB2b2lkICggKiBQRk5HTElOU0VSVENPTVBPTkVOVEVYVFBST0MpIChHTHVpbnQgcmVz
LCBHTHVpbnQgc3JjLCBHTHVpbnQgbnVtKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEVYVFJBQ1RD
T01QT05FTlRFWFRQUk9DKSAoR0x1aW50IHJlcywgR0x1aW50IHNyYywgR0x1aW50IG51bSk7CnR5
cGVkZWYgR0x1aW50ICggKiBQRk5HTEdFTlNZTUJPTFNFWFRQUk9DKSAoR0xlbnVtIGRhdGF0eXBl
LCBHTGVudW0gc3RvcmFnZXR5cGUsIEdMZW51bSByYW5nZSwgR0x1aW50IGNvbXBvbmVudHMpOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMU0VUSU5WQVJJQU5URVhUUFJPQykgKEdMdWludCBpZCwgR0xl
bnVtIHR5cGUsIGNvbnN0IHZvaWQgKmFkZHIpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMU0VUTE9D
QUxDT05TVEFOVEVYVFBST0MpIChHTHVpbnQgaWQsIEdMZW51bSB0eXBlLCBjb25zdCB2b2lkICph
ZGRyKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZBUklBTlRCVkVYVFBST0MpIChHTHVpbnQgaWQs
IGNvbnN0IEdMYnl0ZSAqYWRkcik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWQVJJQU5UU1ZFWFRQ
Uk9DKSAoR0x1aW50IGlkLCBjb25zdCBHTHNob3J0ICphZGRyKTsKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTFZBUklBTlRJVkVYVFBST0MpIChHTHVpbnQgaWQsIGNvbnN0IEdMaW50ICphZGRyKTsKdHlw
ZWRlZiB2b2lkICggKiBQRk5HTFZBUklBTlRGVkVYVFBST0MpIChHTHVpbnQgaWQsIGNvbnN0IEdM
ZmxvYXQgKmFkZHIpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkFSSUFOVERWRVhUUFJPQykgKEdM
dWludCBpZCwgY29uc3QgR0xkb3VibGUgKmFkZHIpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkFS
SUFOVFVCVkVYVFBST0MpIChHTHVpbnQgaWQsIGNvbnN0IEdMdWJ5dGUgKmFkZHIpOwp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMVkFSSUFOVFVTVkVYVFBST0MpIChHTHVpbnQgaWQsIGNvbnN0IEdMdXNo
b3J0ICphZGRyKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZBUklBTlRVSVZFWFRQUk9DKSAoR0x1
aW50IGlkLCBjb25zdCBHTHVpbnQgKmFkZHIpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkFSSUFO
VFBPSU5URVJFWFRQUk9DKSAoR0x1aW50IGlkLCBHTGVudW0gdHlwZSwgR0x1aW50IHN0cmlkZSwg
Y29uc3Qgdm9pZCAqYWRkcik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xFTkFCTEVWQVJJQU5UQ0xJ
RU5UU1RBVEVFWFRQUk9DKSAoR0x1aW50IGlkKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTERJU0FC
TEVWQVJJQU5UQ0xJRU5UU1RBVEVFWFRQUk9DKSAoR0x1aW50IGlkKTsKdHlwZWRlZiBHTHVpbnQg
KCAqIFBGTkdMQklORExJR0hUUEFSQU1FVEVSRVhUUFJPQykgKEdMZW51bSBsaWdodCwgR0xlbnVt
IHZhbHVlKTsKdHlwZWRlZiBHTHVpbnQgKCAqIFBGTkdMQklORE1BVEVSSUFMUEFSQU1FVEVSRVhU
UFJPQykgKEdMZW51bSBmYWNlLCBHTGVudW0gdmFsdWUpOwp0eXBlZGVmIEdMdWludCAoICogUEZO
R0xCSU5EVEVYR0VOUEFSQU1FVEVSRVhUUFJPQykgKEdMZW51bSB1bml0LCBHTGVudW0gY29vcmQs
IEdMZW51bSB2YWx1ZSk7CnR5cGVkZWYgR0x1aW50ICggKiBQRk5HTEJJTkRURVhUVVJFVU5JVFBB
UkFNRVRFUkVYVFBST0MpIChHTGVudW0gdW5pdCwgR0xlbnVtIHZhbHVlKTsKdHlwZWRlZiBHTHVp
bnQgKCAqIFBGTkdMQklORFBBUkFNRVRFUkVYVFBST0MpIChHTGVudW0gdmFsdWUpOwp0eXBlZGVm
IEdMYm9vbGVhbiAoICogUEZOR0xJU1ZBUklBTlRFTkFCTEVERVhUUFJPQykgKEdMdWludCBpZCwg
R0xlbnVtIGNhcCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRWQVJJQU5UQk9PTEVBTlZFWFRQ
Uk9DKSAoR0x1aW50IGlkLCBHTGVudW0gdmFsdWUsIEdMYm9vbGVhbiAqZGF0YSk7CnR5cGVkZWYg
dm9pZCAoICogUEZOR0xHRVRWQVJJQU5USU5URUdFUlZFWFRQUk9DKSAoR0x1aW50IGlkLCBHTGVu
dW0gdmFsdWUsIEdMaW50ICpkYXRhKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdFVFZBUklBTlRG
TE9BVFZFWFRQUk9DKSAoR0x1aW50IGlkLCBHTGVudW0gdmFsdWUsIEdMZmxvYXQgKmRhdGEpOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUVkFSSUFOVFBPSU5URVJWRVhUUFJPQykgKEdMdWludCBp
ZCwgR0xlbnVtIHZhbHVlLCBHTHZvaWQqICpkYXRhKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTEdF
VElOVkFSSUFOVEJPT0xFQU5WRVhUUFJPQykgKEdMdWludCBpZCwgR0xlbnVtIHZhbHVlLCBHTGJv
b2xlYW4gKmRhdGEpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUSU5WQVJJQU5USU5URUdFUlZF
WFRQUk9DKSAoR0x1aW50IGlkLCBHTGVudW0gdmFsdWUsIEdMaW50ICpkYXRhKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTEdFVElOVkFSSUFOVEZMT0FUVkVYVFBST0MpIChHTHVpbnQgaWQsIEdMZW51
bSB2YWx1ZSwgR0xmbG9hdCAqZGF0YSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRMT0NBTENP
TlNUQU5UQk9PTEVBTlZFWFRQUk9DKSAoR0x1aW50IGlkLCBHTGVudW0gdmFsdWUsIEdMYm9vbGVh
biAqZGF0YSk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xHRVRMT0NBTENPTlNUQU5USU5URUdFUlZF
WFRQUk9DKSAoR0x1aW50IGlkLCBHTGVudW0gdmFsdWUsIEdMaW50ICpkYXRhKTsKdHlwZWRlZiB2
b2lkICggKiBQRk5HTEdFVExPQ0FMQ09OU1RBTlRGTE9BVFZFWFRQUk9DKSAoR0x1aW50IGlkLCBH
TGVudW0gdmFsdWUsIEdMZmxvYXQgKmRhdGEpOwoKCgoKCmV4dGVybiB2b2lkIGdsVmVydGV4U3Ry
ZWFtMXNBVEkgKEdMZW51bSwgR0xzaG9ydCk7CmV4dGVybiB2b2lkIGdsVmVydGV4U3RyZWFtMXN2
QVRJIChHTGVudW0sIGNvbnN0IEdMc2hvcnQgKik7CmV4dGVybiB2b2lkIGdsVmVydGV4U3RyZWFt
MWlBVEkgKEdMZW51bSwgR0xpbnQpOwpleHRlcm4gdm9pZCBnbFZlcnRleFN0cmVhbTFpdkFUSSAo
R0xlbnVtLCBjb25zdCBHTGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhTdHJlYW0xZkFUSSAo
R0xlbnVtLCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhTdHJlYW0xZnZBVEkgKEdMZW51
bSwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhTdHJlYW0xZEFUSSAoR0xl
bnVtLCBHTGRvdWJsZSk7CmV4dGVybiB2b2lkIGdsVmVydGV4U3RyZWFtMWR2QVRJIChHTGVudW0s
IGNvbnN0IEdMZG91YmxlICopOwpleHRlcm4gdm9pZCBnbFZlcnRleFN0cmVhbTJzQVRJIChHTGVu
dW0sIEdMc2hvcnQsIEdMc2hvcnQpOwpleHRlcm4gdm9pZCBnbFZlcnRleFN0cmVhbTJzdkFUSSAo
R0xlbnVtLCBjb25zdCBHTHNob3J0ICopOwpleHRlcm4gdm9pZCBnbFZlcnRleFN0cmVhbTJpQVRJ
IChHTGVudW0sIEdMaW50LCBHTGludCk7CmV4dGVybiB2b2lkIGdsVmVydGV4U3RyZWFtMml2QVRJ
IChHTGVudW0sIGNvbnN0IEdMaW50ICopOwpleHRlcm4gdm9pZCBnbFZlcnRleFN0cmVhbTJmQVRJ
IChHTGVudW0sIEdMZmxvYXQsIEdMZmxvYXQpOwpleHRlcm4gdm9pZCBnbFZlcnRleFN0cmVhbTJm
dkFUSSAoR0xlbnVtLCBjb25zdCBHTGZsb2F0ICopOwpleHRlcm4gdm9pZCBnbFZlcnRleFN0cmVh
bTJkQVRJIChHTGVudW0sIEdMZG91YmxlLCBHTGRvdWJsZSk7CmV4dGVybiB2b2lkIGdsVmVydGV4
U3RyZWFtMmR2QVRJIChHTGVudW0sIGNvbnN0IEdMZG91YmxlICopOwpleHRlcm4gdm9pZCBnbFZl
cnRleFN0cmVhbTNzQVRJIChHTGVudW0sIEdMc2hvcnQsIEdMc2hvcnQsIEdMc2hvcnQpOwpleHRl
cm4gdm9pZCBnbFZlcnRleFN0cmVhbTNzdkFUSSAoR0xlbnVtLCBjb25zdCBHTHNob3J0ICopOwpl
eHRlcm4gdm9pZCBnbFZlcnRleFN0cmVhbTNpQVRJIChHTGVudW0sIEdMaW50LCBHTGludCwgR0xp
bnQpOwpleHRlcm4gdm9pZCBnbFZlcnRleFN0cmVhbTNpdkFUSSAoR0xlbnVtLCBjb25zdCBHTGlu
dCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhTdHJlYW0zZkFUSSAoR0xlbnVtLCBHTGZsb2F0LCBH
TGZsb2F0LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhTdHJlYW0zZnZBVEkgKEdMZW51
bSwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhTdHJlYW0zZEFUSSAoR0xl
bnVtLCBHTGRvdWJsZSwgR0xkb3VibGUsIEdMZG91YmxlKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhT
dHJlYW0zZHZBVEkgKEdMZW51bSwgY29uc3QgR0xkb3VibGUgKik7CmV4dGVybiB2b2lkIGdsVmVy
dGV4U3RyZWFtNHNBVEkgKEdMZW51bSwgR0xzaG9ydCwgR0xzaG9ydCwgR0xzaG9ydCwgR0xzaG9y
dCk7CmV4dGVybiB2b2lkIGdsVmVydGV4U3RyZWFtNHN2QVRJIChHTGVudW0sIGNvbnN0IEdMc2hv
cnQgKik7CmV4dGVybiB2b2lkIGdsVmVydGV4U3RyZWFtNGlBVEkgKEdMZW51bSwgR0xpbnQsIEdM
aW50LCBHTGludCwgR0xpbnQpOwpleHRlcm4gdm9pZCBnbFZlcnRleFN0cmVhbTRpdkFUSSAoR0xl
bnVtLCBjb25zdCBHTGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhTdHJlYW00ZkFUSSAoR0xl
bnVtLCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0KTsKZXh0ZXJuIHZvaWQgZ2xW
ZXJ0ZXhTdHJlYW00ZnZBVEkgKEdMZW51bSwgY29uc3QgR0xmbG9hdCAqKTsKZXh0ZXJuIHZvaWQg
Z2xWZXJ0ZXhTdHJlYW00ZEFUSSAoR0xlbnVtLCBHTGRvdWJsZSwgR0xkb3VibGUsIEdMZG91Ymxl
LCBHTGRvdWJsZSk7CmV4dGVybiB2b2lkIGdsVmVydGV4U3RyZWFtNGR2QVRJIChHTGVudW0sIGNv
bnN0IEdMZG91YmxlICopOwpleHRlcm4gdm9pZCBnbE5vcm1hbFN0cmVhbTNiQVRJIChHTGVudW0s
IEdMYnl0ZSwgR0xieXRlLCBHTGJ5dGUpOwpleHRlcm4gdm9pZCBnbE5vcm1hbFN0cmVhbTNidkFU
SSAoR0xlbnVtLCBjb25zdCBHTGJ5dGUgKik7CmV4dGVybiB2b2lkIGdsTm9ybWFsU3RyZWFtM3NB
VEkgKEdMZW51bSwgR0xzaG9ydCwgR0xzaG9ydCwgR0xzaG9ydCk7CmV4dGVybiB2b2lkIGdsTm9y
bWFsU3RyZWFtM3N2QVRJIChHTGVudW0sIGNvbnN0IEdMc2hvcnQgKik7CmV4dGVybiB2b2lkIGds
Tm9ybWFsU3RyZWFtM2lBVEkgKEdMZW51bSwgR0xpbnQsIEdMaW50LCBHTGludCk7CmV4dGVybiB2
b2lkIGdsTm9ybWFsU3RyZWFtM2l2QVRJIChHTGVudW0sIGNvbnN0IEdMaW50ICopOwpleHRlcm4g
dm9pZCBnbE5vcm1hbFN0cmVhbTNmQVRJIChHTGVudW0sIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxv
YXQpOwpleHRlcm4gdm9pZCBnbE5vcm1hbFN0cmVhbTNmdkFUSSAoR0xlbnVtLCBjb25zdCBHTGZs
b2F0ICopOwpleHRlcm4gdm9pZCBnbE5vcm1hbFN0cmVhbTNkQVRJIChHTGVudW0sIEdMZG91Ymxl
LCBHTGRvdWJsZSwgR0xkb3VibGUpOwpleHRlcm4gdm9pZCBnbE5vcm1hbFN0cmVhbTNkdkFUSSAo
R0xlbnVtLCBjb25zdCBHTGRvdWJsZSAqKTsKZXh0ZXJuIHZvaWQgZ2xDbGllbnRBY3RpdmVWZXJ0
ZXhTdHJlYW1BVEkgKEdMZW51bSk7CmV4dGVybiB2b2lkIGdsVmVydGV4QmxlbmRFbnZpQVRJIChH
TGVudW0sIEdMaW50KTsKZXh0ZXJuIHZvaWQgZ2xWZXJ0ZXhCbGVuZEVudmZBVEkgKEdMZW51bSwg
R0xmbG9hdCk7Cgp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYU1RSRUFNMVNBVElQUk9DKSAo
R0xlbnVtIHN0cmVhbSwgR0xzaG9ydCB4KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWFNU
UkVBTTFTVkFUSVBST0MpIChHTGVudW0gc3RyZWFtLCBjb25zdCBHTHNob3J0ICpjb29yZHMpOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYU1RSRUFNMUlBVElQUk9DKSAoR0xlbnVtIHN0cmVh
bSwgR0xpbnQgeCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhTVFJFQU0xSVZBVElQUk9D
KSAoR0xlbnVtIHN0cmVhbSwgY29uc3QgR0xpbnQgKmNvb3Jkcyk7CnR5cGVkZWYgdm9pZCAoICog
UEZOR0xWRVJURVhTVFJFQU0xRkFUSVBST0MpIChHTGVudW0gc3RyZWFtLCBHTGZsb2F0IHgpOwp0
eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYU1RSRUFNMUZWQVRJUFJPQykgKEdMZW51bSBzdHJl
YW0sIGNvbnN0IEdMZmxvYXQgKmNvb3Jkcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhT
VFJFQU0xREFUSVBST0MpIChHTGVudW0gc3RyZWFtLCBHTGRvdWJsZSB4KTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTFZFUlRFWFNUUkVBTTFEVkFUSVBST0MpIChHTGVudW0gc3RyZWFtLCBjb25zdCBH
TGRvdWJsZSAqY29vcmRzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWFNUUkVBTTJTQVRJ
UFJPQykgKEdMZW51bSBzdHJlYW0sIEdMc2hvcnQgeCwgR0xzaG9ydCB5KTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTFZFUlRFWFNUUkVBTTJTVkFUSVBST0MpIChHTGVudW0gc3RyZWFtLCBjb25zdCBH
THNob3J0ICpjb29yZHMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYU1RSRUFNMklBVElQ
Uk9DKSAoR0xlbnVtIHN0cmVhbSwgR0xpbnQgeCwgR0xpbnQgeSk7CnR5cGVkZWYgdm9pZCAoICog
UEZOR0xWRVJURVhTVFJFQU0ySVZBVElQUk9DKSAoR0xlbnVtIHN0cmVhbSwgY29uc3QgR0xpbnQg
KmNvb3Jkcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhTVFJFQU0yRkFUSVBST0MpIChH
TGVudW0gc3RyZWFtLCBHTGZsb2F0IHgsIEdMZmxvYXQgeSk7CnR5cGVkZWYgdm9pZCAoICogUEZO
R0xWRVJURVhTVFJFQU0yRlZBVElQUk9DKSAoR0xlbnVtIHN0cmVhbSwgY29uc3QgR0xmbG9hdCAq
Y29vcmRzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWFNUUkVBTTJEQVRJUFJPQykgKEdM
ZW51bSBzdHJlYW0sIEdMZG91YmxlIHgsIEdMZG91YmxlIHkpOwp0eXBlZGVmIHZvaWQgKCAqIFBG
TkdMVkVSVEVYU1RSRUFNMkRWQVRJUFJPQykgKEdMZW51bSBzdHJlYW0sIGNvbnN0IEdMZG91Ymxl
ICpjb29yZHMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYU1RSRUFNM1NBVElQUk9DKSAo
R0xlbnVtIHN0cmVhbSwgR0xzaG9ydCB4LCBHTHNob3J0IHksIEdMc2hvcnQgeik7CnR5cGVkZWYg
dm9pZCAoICogUEZOR0xWRVJURVhTVFJFQU0zU1ZBVElQUk9DKSAoR0xlbnVtIHN0cmVhbSwgY29u
c3QgR0xzaG9ydCAqY29vcmRzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWFNUUkVBTTNJ
QVRJUFJPQykgKEdMZW51bSBzdHJlYW0sIEdMaW50IHgsIEdMaW50IHksIEdMaW50IHopOwp0eXBl
ZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYU1RSRUFNM0lWQVRJUFJPQykgKEdMZW51bSBzdHJlYW0s
IGNvbnN0IEdMaW50ICpjb29yZHMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYU1RSRUFN
M0ZBVElQUk9DKSAoR0xlbnVtIHN0cmVhbSwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQg
eik7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhTVFJFQU0zRlZBVElQUk9DKSAoR0xlbnVt
IHN0cmVhbSwgY29uc3QgR0xmbG9hdCAqY29vcmRzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZF
UlRFWFNUUkVBTTNEQVRJUFJPQykgKEdMZW51bSBzdHJlYW0sIEdMZG91YmxlIHgsIEdMZG91Ymxl
IHksIEdMZG91YmxlIHopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYU1RSRUFNM0RWQVRJ
UFJPQykgKEdMZW51bSBzdHJlYW0sIGNvbnN0IEdMZG91YmxlICpjb29yZHMpOwp0eXBlZGVmIHZv
aWQgKCAqIFBGTkdMVkVSVEVYU1RSRUFNNFNBVElQUk9DKSAoR0xlbnVtIHN0cmVhbSwgR0xzaG9y
dCB4LCBHTHNob3J0IHksIEdMc2hvcnQgeiwgR0xzaG9ydCB3KTsKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTFZFUlRFWFNUUkVBTTRTVkFUSVBST0MpIChHTGVudW0gc3RyZWFtLCBjb25zdCBHTHNob3J0
ICpjb29yZHMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYU1RSRUFNNElBVElQUk9DKSAo
R0xlbnVtIHN0cmVhbSwgR0xpbnQgeCwgR0xpbnQgeSwgR0xpbnQgeiwgR0xpbnQgdyk7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xWRVJURVhTVFJFQU00SVZBVElQUk9DKSAoR0xlbnVtIHN0cmVhbSwg
Y29uc3QgR0xpbnQgKmNvb3Jkcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xWRVJURVhTVFJFQU00
RkFUSVBST0MpIChHTGVudW0gc3RyZWFtLCBHTGZsb2F0IHgsIEdMZmxvYXQgeSwgR0xmbG9hdCB6
LCBHTGZsb2F0IHcpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMVkVSVEVYU1RSRUFNNEZWQVRJUFJP
QykgKEdMZW51bSBzdHJlYW0sIGNvbnN0IEdMZmxvYXQgKmNvb3Jkcyk7CnR5cGVkZWYgdm9pZCAo
ICogUEZOR0xWRVJURVhTVFJFQU00REFUSVBST0MpIChHTGVudW0gc3RyZWFtLCBHTGRvdWJsZSB4
LCBHTGRvdWJsZSB5LCBHTGRvdWJsZSB6LCBHTGRvdWJsZSB3KTsKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTFZFUlRFWFNUUkVBTTREVkFUSVBST0MpIChHTGVudW0gc3RyZWFtLCBjb25zdCBHTGRvdWJs
ZSAqY29vcmRzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE5PUk1BTFNUUkVBTTNCQVRJUFJPQykg
KEdMZW51bSBzdHJlYW0sIEdMYnl0ZSBueCwgR0xieXRlIG55LCBHTGJ5dGUgbnopOwp0eXBlZGVm
IHZvaWQgKCAqIFBGTkdMTk9STUFMU1RSRUFNM0JWQVRJUFJPQykgKEdMZW51bSBzdHJlYW0sIGNv
bnN0IEdMYnl0ZSAqY29vcmRzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE5PUk1BTFNUUkVBTTNT
QVRJUFJPQykgKEdMZW51bSBzdHJlYW0sIEdMc2hvcnQgbngsIEdMc2hvcnQgbnksIEdMc2hvcnQg
bnopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTk9STUFMU1RSRUFNM1NWQVRJUFJPQykgKEdMZW51
bSBzdHJlYW0sIGNvbnN0IEdMc2hvcnQgKmNvb3Jkcyk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xO
T1JNQUxTVFJFQU0zSUFUSVBST0MpIChHTGVudW0gc3RyZWFtLCBHTGludCBueCwgR0xpbnQgbnks
IEdMaW50IG56KTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTE5PUk1BTFNUUkVBTTNJVkFUSVBST0Mp
IChHTGVudW0gc3RyZWFtLCBjb25zdCBHTGludCAqY29vcmRzKTsKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTE5PUk1BTFNUUkVBTTNGQVRJUFJPQykgKEdMZW51bSBzdHJlYW0sIEdMZmxvYXQgbngsIEdM
ZmxvYXQgbnksIEdMZmxvYXQgbnopOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMTk9STUFMU1RSRUFN
M0ZWQVRJUFJPQykgKEdMZW51bSBzdHJlYW0sIGNvbnN0IEdMZmxvYXQgKmNvb3Jkcyk7CnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xOT1JNQUxTVFJFQU0zREFUSVBST0MpIChHTGVudW0gc3RyZWFtLCBH
TGRvdWJsZSBueCwgR0xkb3VibGUgbnksIEdMZG91YmxlIG56KTsKdHlwZWRlZiB2b2lkICggKiBQ
Rk5HTE5PUk1BTFNUUkVBTTNEVkFUSVBST0MpIChHTGVudW0gc3RyZWFtLCBjb25zdCBHTGRvdWJs
ZSAqY29vcmRzKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTENMSUVOVEFDVElWRVZFUlRFWFNUUkVB
TUFUSVBST0MpIChHTGVudW0gc3RyZWFtKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFZFUlRFWEJM
RU5ERU5WSUFUSVBST0MpIChHTGVudW0gcG5hbWUsIEdMaW50IHBhcmFtKTsKdHlwZWRlZiB2b2lk
ICggKiBQRk5HTFZFUlRFWEJMRU5ERU5WRkFUSVBST0MpIChHTGVudW0gcG5hbWUsIEdMZmxvYXQg
cGFyYW0pOwoKCgoKCmV4dGVybiB2b2lkIGdsRWxlbWVudFBvaW50ZXJBVEkgKEdMZW51bSwgY29u
c3QgR0x2b2lkICopOwpleHRlcm4gdm9pZCBnbERyYXdFbGVtZW50QXJyYXlBVEkgKEdMZW51bSwg
R0xzaXplaSk7CmV4dGVybiB2b2lkIGdsRHJhd1JhbmdlRWxlbWVudEFycmF5QVRJIChHTGVudW0s
IEdMdWludCwgR0x1aW50LCBHTHNpemVpKTsKCnR5cGVkZWYgdm9pZCAoICogUEZOR0xFTEVNRU5U
UE9JTlRFUkFUSVBST0MpIChHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICpwb2ludGVyKTsKdHlw
ZWRlZiB2b2lkICggKiBQRk5HTERSQVdFTEVNRU5UQVJSQVlBVElQUk9DKSAoR0xlbnVtIG1vZGUs
IEdMc2l6ZWkgY291bnQpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMRFJBV1JBTkdFRUxFTUVOVEFS
UkFZQVRJUFJPQykgKEdMZW51bSBtb2RlLCBHTHVpbnQgc3RhcnQsIEdMdWludCBlbmQsIEdMc2l6
ZWkgY291bnQpOwoKCgoKCmV4dGVybiB2b2lkIGdsRHJhd01lc2hBcnJheXNTVU4gKEdMZW51bSwg
R0xpbnQsIEdMc2l6ZWksIEdMc2l6ZWkpOwoKdHlwZWRlZiB2b2lkICggKiBQRk5HTERSQVdNRVNI
QVJSQVlTU1VOUFJPQykgKEdMZW51bSBtb2RlLCBHTGludCBmaXJzdCwgR0xzaXplaSBjb3VudCwg
R0xzaXplaSB3aWR0aCk7CiMgNDk3MiAiLi4vaW5jbHVkZS9HTC9nbGV4dC5oIgpleHRlcm4gdm9p
ZCBnbEdlbk9jY2x1c2lvblF1ZXJpZXNOViAoR0xzaXplaSwgR0x1aW50ICopOwpleHRlcm4gdm9p
ZCBnbERlbGV0ZU9jY2x1c2lvblF1ZXJpZXNOViAoR0xzaXplaSwgY29uc3QgR0x1aW50ICopOwpl
eHRlcm4gR0xib29sZWFuIGdsSXNPY2NsdXNpb25RdWVyeU5WIChHTHVpbnQpOwpleHRlcm4gdm9p
ZCBnbEJlZ2luT2NjbHVzaW9uUXVlcnlOViAoR0x1aW50KTsKZXh0ZXJuIHZvaWQgZ2xFbmRPY2Ns
dXNpb25RdWVyeU5WICh2b2lkKTsKZXh0ZXJuIHZvaWQgZ2xHZXRPY2NsdXNpb25RdWVyeWl2TlYg
KEdMdWludCwgR0xlbnVtLCBHTGludCAqKTsKZXh0ZXJuIHZvaWQgZ2xHZXRPY2NsdXNpb25RdWVy
eXVpdk5WIChHTHVpbnQsIEdMZW51bSwgR0x1aW50ICopOwoKdHlwZWRlZiB2b2lkICggKiBQRk5H
TEdFTk9DQ0xVU0lPTlFVRVJJRVNOVlBST0MpIChHTHNpemVpIG4sIEdMdWludCAqaWRzKTsKdHlw
ZWRlZiB2b2lkICggKiBQRk5HTERFTEVURU9DQ0xVU0lPTlFVRVJJRVNOVlBST0MpIChHTHNpemVp
IG4sIGNvbnN0IEdMdWludCAqaWRzKTsKdHlwZWRlZiBHTGJvb2xlYW4gKCAqIFBGTkdMSVNPQ0NM
VVNJT05RVUVSWU5WUFJPQykgKEdMdWludCBpZCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xCRUdJ
Tk9DQ0xVU0lPTlFVRVJZTlZQUk9DKSAoR0x1aW50IGlkKTsKdHlwZWRlZiB2b2lkICggKiBQRk5H
TEVORE9DQ0xVU0lPTlFVRVJZTlZQUk9DKSAodm9pZCk7CnR5cGVkZWYgdm9pZCAoICogUEZOR0xH
RVRPQ0NMVVNJT05RVUVSWUlWTlZQUk9DKSAoR0x1aW50IGlkLCBHTGVudW0gcG5hbWUsIEdMaW50
ICpwYXJhbXMpOwp0eXBlZGVmIHZvaWQgKCAqIFBGTkdMR0VUT0NDTFVTSU9OUVVFUllVSVZOVlBS
T0MpIChHTHVpbnQgaWQsIEdMZW51bSBwbmFtZSwgR0x1aW50ICpwYXJhbXMpOwoKCgoKCmV4dGVy
biB2b2lkIGdsUG9pbnRQYXJhbWV0ZXJpTlYgKEdMZW51bSwgR0xpbnQpOwpleHRlcm4gdm9pZCBn
bFBvaW50UGFyYW1ldGVyaXZOViAoR0xlbnVtLCBjb25zdCBHTGludCAqKTsKCnR5cGVkZWYgdm9p
ZCAoICogUEZOR0xQT0lOVFBBUkFNRVRFUklOVlBST0MpIChHTGVudW0gcG5hbWUsIEdMaW50IHBh
cmFtKTsKdHlwZWRlZiB2b2lkICggKiBQRk5HTFBPSU5UUEFSQU1FVEVSSVZOVlBST0MpIChHTGVu
dW0gcG5hbWUsIGNvbnN0IEdMaW50ICpwYXJhbXMpOwojIDUwMTQgIi4uL2luY2x1ZGUvR0wvZ2xl
eHQuaCIKZXh0ZXJuIHZvaWQgZ2xBY3RpdmVTdGVuY2lsRmFjZUVYVCAoR0xlbnVtKTsKCnR5cGVk
ZWYgdm9pZCAoICogUEZOR0xBQ1RJVkVTVEVOQ0lMRkFDRUVYVFBST0MpIChHTGVudW0gZmFjZSk7
CiMgMjU1OCAiLi4vaW5jbHVkZS9HTC9nbC5oIiAyCiMgMjU4MCAiLi4vaW5jbHVkZS9HTC9nbC5o
IgpleHRlcm4gdm9pZCBnbEVuYWJsZVRyYWNlTUVTQSggR0xiaXRmaWVsZCBtYXNrICk7CmV4dGVy
biB2b2lkIGdsRGlzYWJsZVRyYWNlTUVTQSggR0xiaXRmaWVsZCBtYXNrICk7CmV4dGVybiB2b2lk
IGdsTmV3VHJhY2VNRVNBKCBHTGJpdGZpZWxkIG1hc2ssIGNvbnN0IEdMdWJ5dGUgKiB0cmFjZU5h
bWUgKTsKZXh0ZXJuIHZvaWQgZ2xFbmRUcmFjZU1FU0EoIHZvaWQgKTsKZXh0ZXJuIHZvaWQgZ2xU
cmFjZUFzc2VydEF0dHJpYk1FU0EoIEdMYml0ZmllbGQgYXR0cmliTWFzayApOwpleHRlcm4gdm9p
ZCBnbFRyYWNlQ29tbWVudE1FU0EoIGNvbnN0IEdMdWJ5dGUgKiBjb21tZW50ICk7CmV4dGVybiB2
b2lkIGdsVHJhY2VUZXh0dXJlTUVTQSggR0x1aW50IG5hbWUsIGNvbnN0IEdMdWJ5dGUqIGNvbW1l
bnQgKTsKZXh0ZXJuIHZvaWQgZ2xUcmFjZUxpc3RNRVNBKCBHTHVpbnQgbmFtZSwgY29uc3QgR0x1
Ynl0ZSogY29tbWVudCApOwpleHRlcm4gdm9pZCBnbFRyYWNlUG9pbnRlck1FU0EoIEdMdm9pZCog
cG9pbnRlciwgY29uc3QgR0x1Ynl0ZSogY29tbWVudCApOwpleHRlcm4gdm9pZCBnbFRyYWNlUG9p
bnRlclJhbmdlTUVTQSggY29uc3QgR0x2b2lkKiBmaXJzdCwgY29uc3QgR0x2b2lkKiBsYXN0LCBj
b25zdCBHTHVieXRlKiBjb21tZW50ICk7CiMgMTk0ICJnbGhlYWRlci5oIiAyCiMgMjA0ICJnbGhl
YWRlci5oIgojIDEgIi4uL2luY2x1ZGUvR0wvaW50ZXJuYWwvZ2xjb3JlLmgiIDEKIyA0MSAiLi4v
aW5jbHVkZS9HTC9pbnRlcm5hbC9nbGNvcmUuaCIKIyAxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGli
L2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMSAzIDQKIyAyNSAi
L3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUvc3lz
L3R5cGVzLmgiIDMgNAojcHJhZ21hIGlkZW50ICJAKCMpdHlwZXMuaAkxLjY2CTAwLzAyLzE0IFNN
SSIKCgoKCgoKCiMgMSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgv
My4xL2luY2x1ZGUvc3lzL21hY2h0eXBlcy5oIiAxIDMgNAojIDE4ICIvdXNyL2xvY2FsL2xpYi9n
Y2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9zeXMvbWFjaHR5cGVzLmgiIDMg
NAojcHJhZ21hIGlkZW50ICJAKCMpbWFjaHR5cGVzLmgJMS44CTk5LzA1LzA0IFNNSSIKCgoKCgoj
IDEgIi91c3IvaW5jbHVkZS9pYTMyL3N5cy9tYWNodHlwZXMuaCIgMSAzIDQKIyA5ICIvdXNyL2lu
Y2x1ZGUvaWEzMi9zeXMvbWFjaHR5cGVzLmgiIDMgNAojcHJhZ21hIGlkZW50ICJAKCMpbWFjaHR5
cGVzLmgJMS4xCTk5LzA1LzA0IFNNSSIKIyAyNCAiL3Vzci9pbmNsdWRlL2lhMzIvc3lzL21hY2h0
eXBlcy5oIiAzIDQKdHlwZWRlZiBzdHJ1Y3QgX2xhYmVsX3QgeyBsb25nIHZhbFs2XTsgfSBsYWJl
bF90OwoKCgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgbG9ja190OwojIDI1ICIvdXNyL2xvY2FsL2xp
Yi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9zeXMvbWFjaHR5cGVzLmgi
IDIgMyA0CiMgMzQgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMu
MS9pbmNsdWRlL3N5cy90eXBlcy5oIiAyIDMgNAojIDQ1ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGli
L2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0CiMgMSAiL3Vz
ci9pbmNsdWRlL3N5cy9pbnRfdHlwZXMuaCIgMSAzIDQKIyA5ICIvdXNyL2luY2x1ZGUvc3lzL2lu
dF90eXBlcy5oIiAzIDQKI3ByYWdtYSBpZGVudCAiQCgjKWludF90eXBlcy5oCTEuNgk5Ny8wOC8y
MCBTTUkiCiMgNjIgIi91c3IvaW5jbHVkZS9zeXMvaW50X3R5cGVzLmgiIDMgNAp0eXBlZGVmIGNo
YXIgaW50OF90OwoKCgoKCnR5cGVkZWYgc2hvcnQgaW50MTZfdDsKdHlwZWRlZiBpbnQgaW50MzJf
dDsKCgoKCnR5cGVkZWYgbG9uZyBsb25nIGludDY0X3Q7CgoKCnR5cGVkZWYgdW5zaWduZWQgY2hh
ciB1aW50OF90Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVpbnQxNl90Owp0eXBlZGVmIHVuc2ln
bmVkIGludCB1aW50MzJfdDsKCgoKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVpbnQ2NF90
OwojIDk0ICIvdXNyL2luY2x1ZGUvc3lzL2ludF90eXBlcy5oIiAzIDQKdHlwZWRlZiBpbnQ2NF90
IGludG1heF90Owp0eXBlZGVmIHVpbnQ2NF90IHVpbnRtYXhfdDsKIyAxMTAgIi91c3IvaW5jbHVk
ZS9zeXMvaW50X3R5cGVzLmgiIDMgNAp0eXBlZGVmIGludCBpbnRwdHJfdDsKdHlwZWRlZiB1bnNp
Z25lZCBpbnQgdWludHB0cl90OwoKCgoKCgoKdHlwZWRlZiBjaGFyIGludF9sZWFzdDhfdDsKCgoK
Cgp0eXBlZGVmIHNob3J0IGludF9sZWFzdDE2X3Q7CnR5cGVkZWYgaW50IGludF9sZWFzdDMyX3Q7
CgoKCgp0eXBlZGVmIGxvbmcgbG9uZyBpbnRfbGVhc3Q2NF90OwoKCgp0eXBlZGVmIHVuc2lnbmVk
IGNoYXIgdWludF9sZWFzdDhfdDsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1aW50X2xlYXN0MTZf
dDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludF9sZWFzdDMyX3Q7CgoKCgp0eXBlZGVmIHVuc2ln
bmVkIGxvbmcgbG9uZyB1aW50X2xlYXN0NjRfdDsKIyA0NiAiL3Vzci9sb2NhbC9saWIvZ2NjLWxp
Yi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMyA0CiMgNjIg
Ii91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N5
cy90eXBlcy5oIiAzIDQKdHlwZWRlZiBsb25nIGxvbmcgbG9uZ2xvbmdfdDsKdHlwZWRlZiB1bnNp
Z25lZCBsb25nIGxvbmcgdV9sb25nbG9uZ190OwojIDg1ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGli
L2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0CnR5cGVkZWYg
bG9uZyB0X3NjYWxhcl90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdF91c2NhbGFyX3Q7CgoKCgoK
dHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVjaGFyX3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdXNo
b3J0X3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVpbnRfdDsKdHlwZWRlZiB1bnNpZ25lZCBsb25n
IHVsb25nX3Q7Cgp0eXBlZGVmIGNoYXIgKmNhZGRyX3Q7CnR5cGVkZWYgbG9uZyBkYWRkcl90Owp0
eXBlZGVmIHNob3J0IGNudF90OwoKCnR5cGVkZWYgdWxvbmdfdCBwYWRkcl90OwojIDExOCAiL3Vz
ci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUvc3lzL3R5
cGVzLmgiIDMgNAp0eXBlZGVmIGludCBwdHJkaWZmX3Q7CiMgMTI3ICIvdXNyL2xvY2FsL2xpYi9n
Y2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0CnR5
cGVkZWYgdWxvbmdfdCBwZm5fdDsKdHlwZWRlZiB1bG9uZ190IHBnY250X3Q7CnR5cGVkZWYgbG9u
ZyBzcGdjbnRfdDsKCnR5cGVkZWYgdWNoYXJfdCB1c2VfdDsKdHlwZWRlZiBzaG9ydCBzeXNpZF90
Owp0eXBlZGVmIHNob3J0IGluZGV4X3Q7CnR5cGVkZWYgdm9pZCAqdGltZW91dF9pZF90Owp0eXBl
ZGVmIHZvaWQgKmJ1ZmNhbGxfaWRfdDsKIyAxNjUgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4
Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKdHlwZWRlZiB1bG9u
Z190IGlub190Owp0eXBlZGVmIGxvbmcgYmxrY250X3Q7CnR5cGVkZWYgdWxvbmdfdCBmc2Jsa2Nu
dF90Owp0eXBlZGVmIHVsb25nX3QgZnNmaWxjbnRfdDsKIyAxODMgIi91c3IvbG9jYWwvbGliL2dj
Yy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKdHlw
ZWRlZiB1X2xvbmdsb25nX3QgaW5vNjRfdDsKdHlwZWRlZiBsb25nbG9uZ190IGJsa2NudDY0X3Q7
CnR5cGVkZWYgdV9sb25nbG9uZ190IGZzYmxrY250NjRfdDsKdHlwZWRlZiB1X2xvbmdsb25nX3Qg
ZnNmaWxjbnQ2NF90OwoKCgoKCgp0eXBlZGVmIGxvbmcgYmxrc2l6ZV90OwoKCgoKCnR5cGVkZWYg
ZW51bSB7IEJfRkFMU0UsIEJfVFJVRSB9IGJvb2xlYW5fdDsKIyAyMTAgIi91c3IvbG9jYWwvbGli
L2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQK
dHlwZWRlZiBpbnQ2NF90IHBhZDY0X3Q7CnR5cGVkZWYgdWludDY0X3QgdXBhZDY0X3Q7CiMgMjIz
ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9z
eXMvdHlwZXMuaCIgMyA0CnR5cGVkZWYgbG9uZ2xvbmdfdCBvZmZzZXRfdDsKdHlwZWRlZiB1X2xv
bmdsb25nX3QgdV9vZmZzZXRfdDsKdHlwZWRlZiB1X2xvbmdsb25nX3QgbGVuX3Q7CnR5cGVkZWYg
bG9uZ2xvbmdfdCBkaXNrYWRkcl90OwoKCgoKCgoKdHlwZWRlZiB1bmlvbiB7CiAgICAgICAgb2Zm
c2V0X3QgX2Y7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgIGludDMyX3QgX2w7CiAg
ICAgICAgICAgICAgICBpbnQzMl90IF91OwogICAgICAgIH0gX3A7Cn0gbGxvZmZfdDsKIyAyNTQg
Ii91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N5
cy90eXBlcy5oIiAzIDQKdHlwZWRlZiB1bmlvbiB7CiAgICAgICAgZGlza2FkZHJfdCBfZjsKICAg
ICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgaW50MzJfdCBfbDsKICAgICAgICAgICAgICAg
IGludDMyX3QgX3U7CiAgICAgICAgfSBfcDsKfSBsbGRhZGRyX3Q7CiMgMjczICIvdXNyL2xvY2Fs
L2xpYi9nY2MtbGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIg
MyA0CnR5cGVkZWYgdWludF90IGtfZmx0c2V0X3Q7CiMgMjg3ICIvdXNyL2xvY2FsL2xpYi9nY2Mt
bGliL2kzODYtcGMtc29sYXJpczIuOC8zLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0CnR5cGVk
ZWYgbG9uZyBpZF90OwoKCgoKCgp0eXBlZGVmIHVpbnRfdCB1c2Vjb25kc190OwoKCgp0eXBlZGVm
IGxvbmcgc3VzZWNvbmRzX3Q7CiMgMzA4ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2kzODYtcGMt
c29sYXJpczIuOC8zLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0CnR5cGVkZWYgdWxvbmdfdCBt
YWpvcl90Owp0eXBlZGVmIHVsb25nX3QgbWlub3JfdDsKCgoKCgp0eXBlZGVmIHNob3J0IHByaV90
OwojIDMyOCAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2lu
Y2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAp0eXBlZGVmIHVzaG9ydF90IG9fbW9kZV90Owp0eXBlZGVm
IHNob3J0IG9fZGV2X3Q7CnR5cGVkZWYgdXNob3J0X3Qgb191aWRfdDsKdHlwZWRlZiBvX3VpZF90
IG9fZ2lkX3Q7CnR5cGVkZWYgc2hvcnQgb19ubGlua190Owp0eXBlZGVmIHNob3J0IG9fcGlkX3Q7
CnR5cGVkZWYgdXNob3J0X3Qgb19pbm9fdDsKCgoKCgp0eXBlZGVmIGludCBrZXlfdDsKCgoKdHlw
ZWRlZiB1bG9uZ190IG1vZGVfdDsKIyAzNTYgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1w
Yy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKdHlwZWRlZiB1aWRfdCBn
aWRfdDsKCnR5cGVkZWYgaWRfdCB0YXNraWRfdDsKdHlwZWRlZiBpZF90IHByb2ppZF90OwoKCgoK
Cgp0eXBlZGVmIHVuc2lnbmVkIGludCBwdGhyZWFkX3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IHB0
aHJlYWRfa2V5X3Q7Cgp0eXBlZGVmIHN0cnVjdCBfcHRocmVhZF9tdXRleCB7CiAgICAgICAgc3Ry
dWN0IHsKICAgICAgICAgICAgICAgIHVpbnQxNl90IF9fcHRocmVhZF9tdXRleF9mbGFnMTsKICAg
ICAgICAgICAgICAgIHVpbnQ4X3QgX19wdGhyZWFkX211dGV4X2ZsYWcyOwogICAgICAgICAgICAg
ICAgdWludDhfdCBfX3B0aHJlYWRfbXV0ZXhfY2VpbGluZzsKICAgICAgICAgICAgICAgIHVpbnQz
Ml90IF9fcHRocmVhZF9tdXRleF90eXBlOwogICAgICAgIH0gX19wdGhyZWFkX211dGV4X2ZsYWdz
OwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQ4X3QgX19wdGhyZWFkX211dGV4X3BhZFs4XTsKICAgICAgICAgICAgICAg
IH0gX19wdGhyZWFkX211dGV4X2xvY2s2NDsKICAgICAgICAgICAgICAgIHVwYWQ2NF90IF9fcHRo
cmVhZF9tdXRleF9vd25lcjY0OwogICAgICAgIH0gX19wdGhyZWFkX211dGV4X2xvY2s7CiAgICAg
ICAgdXBhZDY0X3QgX19wdGhyZWFkX211dGV4X2RhdGE7Cn0gcHRocmVhZF9tdXRleF90OwoKdHlw
ZWRlZiBzdHJ1Y3QgX3B0aHJlYWRfY29uZCB7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAg
ICAgIHVpbnQ4X3QgX19wdGhyZWFkX2NvbmRfZmxhZ1s0XTsKICAgICAgICAgICAgICAgIHVpbnQz
Ml90IF9fcHRocmVhZF9jb25kX3R5cGU7CiAgICAgICAgfSBfX3B0aHJlYWRfY29uZF9mbGFnczsK
ICAgICAgICB1cGFkNjRfdCBfX3B0aHJlYWRfY29uZF9kYXRhOwp9IHB0aHJlYWRfY29uZF90OwoK
CgoKdHlwZWRlZiBzdHJ1Y3QgX3B0aHJlYWRfcndsb2NrIHsKICAgICAgICBpbnQzMl90IF9fcHRo
cmVhZF9yd2xvY2tfcmVhZGVyczsKICAgICAgICB1aW50MTZfdCBfX3B0aHJlYWRfcndsb2NrX3R5
cGU7CiAgICAgICAgdWludDE2X3QgX19wdGhyZWFkX3J3bG9ja19tYWdpYzsKICAgICAgICB1cGFk
NjRfdCBfX3B0aHJlYWRfcndsb2NrX3BhZDFbM107CiAgICAgICAgdXBhZDY0X3QgX19wdGhyZWFk
X3J3bG9ja19wYWQyWzJdOwogICAgICAgIHVwYWQ2NF90IF9fcHRocmVhZF9yd2xvY2tfcGFkM1sy
XTsKfSBwdGhyZWFkX3J3bG9ja190OwoKCgoKdHlwZWRlZiBzdHJ1Y3QgX3B0aHJlYWRfYXR0ciB7
CiAgICAgICAgdm9pZCAqX19wdGhyZWFkX2F0dHJwOwp9IHB0aHJlYWRfYXR0cl90OwoKCgoKCnR5
cGVkZWYgc3RydWN0IF9wdGhyZWFkX211dGV4YXR0ciB7CiAgICAgICAgdm9pZCAqX19wdGhyZWFk
X211dGV4YXR0cnA7Cn0gcHRocmVhZF9tdXRleGF0dHJfdDsKCgoKCgp0eXBlZGVmIHN0cnVjdCBf
cHRocmVhZF9jb25kYXR0ciB7CiAgICAgICAgdm9pZCAqX19wdGhyZWFkX2NvbmRhdHRycDsKfSBw
dGhyZWFkX2NvbmRhdHRyX3Q7CgoKCgp0eXBlZGVmIHN0cnVjdCBfb25jZSB7CiAgICAgICAgdXBh
ZDY0X3QgX19wdGhyZWFkX29uY2VfcGFkWzRdOwp9IHB0aHJlYWRfb25jZV90OwoKCgoKCnR5cGVk
ZWYgc3RydWN0IF9wdGhyZWFkX3J3bG9ja2F0dHIgewogICAgICAgIHZvaWQgKl9fcHRocmVhZF9y
d2xvY2thdHRycDsKfSBwdGhyZWFkX3J3bG9ja2F0dHJfdDsKCnR5cGVkZWYgdWxvbmdfdCBkZXZf
dDsKCgoKCgp0eXBlZGVmIHVsb25nX3QgbmxpbmtfdDsKdHlwZWRlZiBsb25nIHBpZF90OwojIDQ4
MSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUv
c3lzL3R5cGVzLmgiIDMgNAp0eXBlZGVmIGxvbmcgdGltZV90OwojIDQ5MSAiL3Vzci9sb2NhbC9s
aWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMg
NAp0eXBlZGVmIGludCBjbG9ja2lkX3Q7CgoKCgp0eXBlZGVmIGludCB0aW1lcl90OwoKCgoKCgp0
eXBlZGVmIHVuc2lnbmVkIGNoYXIgdW5jaGFyOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVzaG9y
dDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIHVsb25n
OwojIDU1NyAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBjLXNvbGFyaXMyLjgvMy4xL2lu
Y2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdV9jaGFyOwp0eXBl
ZGVmIHVuc2lnbmVkIHNob3J0IHVfc2hvcnQ7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVfaW50Owp0
eXBlZGVmIHVuc2lnbmVkIGxvbmcgdV9sb25nOwp0eXBlZGVmIHN0cnVjdCBfcXVhZCB7IGludCB2
YWxbMl07IH0gcXVhZF90Owp0eXBlZGVmIHF1YWRfdCBxdWFkOwoKCgoKCgojIDEgIi91c3IvaW5j
bHVkZS9zeXMvc2VsZWN0LmgiIDEgMyA0CiMgMTIgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0Lmgi
IDMgNAojcHJhZ21hIGlkZW50ICJAKCMpc2VsZWN0LmgJMS4xNgk5OC8wNC8yNyBTTUkiIAoKCgoK
IyAxICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMSAzIDQKIyAyMiAiL3Vzci9pbmNsdWRlL3N5
cy90aW1lLmgiIDMgNAojcHJhZ21hIGlkZW50ICJAKCMpdGltZS5oCTIuNjYJMDEvMDEvMTcgU01J
IiAKIyA0OSAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMgNApzdHJ1Y3QgdGltZXZhbCB7CiAg
ICAgICAgdGltZV90IHR2X3NlYzsKICAgICAgICBzdXNlY29uZHNfdCB0dl91c2VjOwp9OwojIDgy
ICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMyA0CnN0cnVjdCB0aW1lem9uZSB7CiAgICAgICAg
aW50IHR6X21pbnV0ZXN3ZXN0OwogICAgICAgIGludCB0el9kc3R0aW1lOwp9OwojIDEwMCAiL3Vz
ci9pbmNsdWRlL3N5cy90aW1lLmgiIDMgNAojIDEgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4
Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N5cy90eXBlcy5oIiAxIDMgNAojIDEwMSAiL3Vz
ci9pbmNsdWRlL3N5cy90aW1lLmgiIDIgMyA0CiMgMTU1ICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUu
aCIgMyA0CnN0cnVjdCBpdGltZXJ2YWwgewogICAgICAgIHN0cnVjdCB0aW1ldmFsIGl0X2ludGVy
dmFsOwogICAgICAgIHN0cnVjdCB0aW1ldmFsIGl0X3ZhbHVlOwp9OwojIDIwMyAiL3Vzci9pbmNs
dWRlL3N5cy90aW1lLmgiIDMgNAp0eXBlZGVmIGxvbmdsb25nX3QgaHJ0aW1lX3Q7CiMgMzIwICIv
dXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMyA0CmludCBhZGp0aW1lKHN0cnVjdCB0aW1ldmFsICos
IHN0cnVjdCB0aW1ldmFsICopOwojIDMzMSAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMgNApp
bnQgZ2V0aXRpbWVyKGludCwgc3RydWN0IGl0aW1lcnZhbCAqKTsKaW50IHV0aW1lcyhjb25zdCBj
aGFyICosIGNvbnN0IHN0cnVjdCB0aW1ldmFsICopOwoKCgppbnQgc2V0aXRpbWVyKGludCwgc3Ry
dWN0IGl0aW1lcnZhbCAqLCBzdHJ1Y3QgaXRpbWVydmFsICopOwojIDM2OSAiL3Vzci9pbmNsdWRl
L3N5cy90aW1lLmgiIDMgNAppbnQgc2V0dGltZW9mZGF5KHN0cnVjdCB0aW1ldmFsICosIHZvaWQg
Kik7CgpocnRpbWVfdCBnZXRocnRpbWUodm9pZCk7CmhydGltZV90IGdldGhydnRpbWUodm9pZCk7
CiMgMzg5ICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMyA0CmludCBnZXR0aW1lb2ZkYXkoc3Ry
dWN0IHRpbWV2YWwgKiwgdm9pZCAqKTsKIyA0MTAgIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAz
IDQKIyAxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAxIDMgNAojIDE2ICIvdXNyL2luY2x1ZGUvdGlt
ZS5oIiAzIDQKI3ByYWdtYSBpZGVudCAiQCgjKXRpbWUuaAkxLjM5CTk5LzA4LzEwIFNNSSIgCgoK
CiMgMSAiL3Vzci9pbmNsdWRlL2lzby90aW1lX2lzby5oIiAxIDMgNAojIDI4ICIvdXNyL2luY2x1
ZGUvaXNvL3RpbWVfaXNvLmgiIDMgNAojcHJhZ21hIGlkZW50ICJAKCMpdGltZV9pc28uaAkxLjEJ
OTkvMDgvMDkgU01JIiAKIyA2OSAiL3Vzci9pbmNsdWRlL2lzby90aW1lX2lzby5oIiAzIDQKc3Ry
dWN0IHRtIHsKICAgICAgICBpbnQgdG1fc2VjOwogICAgICAgIGludCB0bV9taW47CiAgICAgICAg
aW50IHRtX2hvdXI7CiAgICAgICAgaW50IHRtX21kYXk7CiAgICAgICAgaW50IHRtX21vbjsKICAg
ICAgICBpbnQgdG1feWVhcjsKICAgICAgICBpbnQgdG1fd2RheTsKICAgICAgICBpbnQgdG1feWRh
eTsKICAgICAgICBpbnQgdG1faXNkc3Q7Cn07CgoKCgpleHRlcm4gY2hhciAqYXNjdGltZShjb25z
dCBzdHJ1Y3QgdG0gKik7CmV4dGVybiBjbG9ja190IGNsb2NrKHZvaWQpOwpleHRlcm4gY2hhciAq
Y3RpbWUoY29uc3QgdGltZV90ICopOwpleHRlcm4gZG91YmxlIGRpZmZ0aW1lKHRpbWVfdCwgdGlt
ZV90KTsKZXh0ZXJuIHN0cnVjdCB0bSAqZ210aW1lKGNvbnN0IHRpbWVfdCAqKTsKZXh0ZXJuIHN0
cnVjdCB0bSAqbG9jYWx0aW1lKGNvbnN0IHRpbWVfdCAqKTsKZXh0ZXJuIHRpbWVfdCBta3RpbWUo
c3RydWN0IHRtICopOwpleHRlcm4gdGltZV90IHRpbWUodGltZV90ICopOwpleHRlcm4gc2l6ZV90
IHN0cmZ0aW1lKGNoYXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCB0bSAq
KTsKIyAyMSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMiAzIDQKIyA2NyAiL3Vzci9pbmNsdWRlL3Rp
bWUuaCIgMyA0CmV4dGVybiBjaGFyICpzdHJwdGltZShjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg
Kiwgc3RydWN0IHRtICopOwojIDgzICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKIyAxICIvdXNy
L2luY2x1ZGUvc3lzL3RpbWVfaW1wbC5oIiAxIDMgNAojIDE1ICIvdXNyL2luY2x1ZGUvc3lzL3Rp
bWVfaW1wbC5oIiAzIDQKI3ByYWdtYSBpZGVudCAiQCgjKXRpbWVfaW1wbC5oCTEuNQk5OS8xMC8w
NSBTTUkiCiMgMzYgIi91c3IvaW5jbHVkZS9zeXMvdGltZV9pbXBsLmgiIDMgNAp0eXBlZGVmIHN0
cnVjdCB0aW1lc3BlYyB7CiAgICAgICAgdGltZV90IHR2X3NlYzsKICAgICAgICBsb25nIHR2X25z
ZWM7Cn0gdGltZXNwZWNfdDsKIyA2MCAiL3Vzci9pbmNsdWRlL3N5cy90aW1lX2ltcGwuaCIgMyA0
CnR5cGVkZWYgc3RydWN0IHRpbWVzcGVjIHRpbWVzdHJ1Y190OwojIDc5ICIvdXNyL2luY2x1ZGUv
c3lzL3RpbWVfaW1wbC5oIiAzIDQKdHlwZWRlZiBzdHJ1Y3QgaXRpbWVyc3BlYyB7CiAgICAgICAg
c3RydWN0IHRpbWVzcGVjIGl0X2ludGVydmFsOwogICAgICAgIHN0cnVjdCB0aW1lc3BlYyBpdF92
YWx1ZTsKfSBpdGltZXJzcGVjX3Q7CiMgODQgIi91c3IvaW5jbHVkZS90aW1lLmgiIDIgMyA0CiMg
OTggIi91c3IvaW5jbHVkZS90aW1lLmgiIDMgNAp1bmlvbiBzaWd2YWwgewogICAgICAgIGludCBz
aXZhbF9pbnQ7CiAgICAgICAgdm9pZCAqc2l2YWxfcHRyOwp9OwoKCgoKc3RydWN0IHNpZ2V2ZW50
IHsKICAgICAgICBpbnQgc2lnZXZfbm90aWZ5OwogICAgICAgIGludCBzaWdldl9zaWdubzsKICAg
ICAgICB1bmlvbiBzaWd2YWwgc2lnZXZfdmFsdWU7CiAgICAgICAgdm9pZCAoKnNpZ2V2X25vdGlm
eV9mdW5jdGlvbikodW5pb24gc2lndmFsKTsKICAgICAgICBwdGhyZWFkX2F0dHJfdCAqc2lnZXZf
bm90aWZ5X2F0dHJpYnV0ZXM7CiAgICAgICAgaW50IF9fc2lnZXZfcGFkMjsKfTsKCgpleHRlcm4g
aW50IGNsb2NrX2dldHJlcyhjbG9ja2lkX3QsIHN0cnVjdCB0aW1lc3BlYyAqKTsKZXh0ZXJuIGlu
dCBjbG9ja19nZXR0aW1lKGNsb2NraWRfdCwgc3RydWN0IHRpbWVzcGVjICopOwpleHRlcm4gaW50
IGNsb2NrX3NldHRpbWUoY2xvY2tpZF90LCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKik7CmV4dGVy
biBpbnQgdGltZXJfY3JlYXRlKGNsb2NraWRfdCwgc3RydWN0IHNpZ2V2ZW50ICosIHRpbWVyX3Qg
Kik7CmV4dGVybiBpbnQgdGltZXJfZGVsZXRlKHRpbWVyX3QpOwpleHRlcm4gaW50IHRpbWVyX2dl
dG92ZXJydW4odGltZXJfdCk7CmV4dGVybiBpbnQgdGltZXJfZ2V0dGltZSh0aW1lcl90LCBzdHJ1
Y3QgaXRpbWVyc3BlYyAqKTsKZXh0ZXJuIGludCB0aW1lcl9zZXR0aW1lKHRpbWVyX3QsIGludCwg
Y29uc3Qgc3RydWN0IGl0aW1lcnNwZWMgKiwKICAgICAgICAgICAgICAgIHN0cnVjdCBpdGltZXJz
cGVjICopOwpleHRlcm4gaW50IG5hbm9zbGVlcChjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKiwgc3Ry
dWN0IHRpbWVzcGVjICopOwoKCgoKZXh0ZXJuIHZvaWQgdHpzZXQodm9pZCk7CgpleHRlcm4gY2hh
ciAqdHpuYW1lWzJdOwojIDE0MiAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMyA0CmV4dGVybiBsb25n
IHRpbWV6b25lOwpleHRlcm4gaW50IGRheWxpZ2h0OwoKCgoKCmV4dGVybiBpbnQgY2Z0aW1lKGNo
YXIgKiwgY2hhciAqLCBjb25zdCB0aW1lX3QgKik7CmV4dGVybiBpbnQgYXNjZnRpbWUoY2hhciAq
LCBjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCB0bSAqKTsKZXh0ZXJuIGxvbmcgYWx0em9uZTsK
CgoKCmV4dGVybiBzdHJ1Y3QgdG0gKmdldGRhdGUoY29uc3QgY2hhciAqKTsKCgoKCgoKZXh0ZXJu
IGludCBnZXRkYXRlX2VycjsKIyA0MTEgIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAyIDMgNAoj
IDQyMyAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9zeXMv
c2VsZWN0LmgiIDEgMyA0CiMgNDI0ICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMiAzIDQKIyAx
OCAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMiAzIDQKIyA0NSAiL3Vzci9pbmNsdWRlL3N5
cy9zZWxlY3QuaCIgMyA0CnR5cGVkZWYgbG9uZyBmZF9tYXNrOwoKdHlwZWRlZiBsb25nIGZkc19t
YXNrOwojIDczICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzIDQKdHlwZWRlZiBzdHJ1Y3Qg
ZmRfc2V0IHsKCgoKICAgICAgICBsb25nIGZkc19iaXRzWygoKDEwMjQpKygoKHNpemVvZiAoZmRz
X21hc2spICogOCkpLTEpKS8oKHNpemVvZiAoZmRzX21hc2spICogOCkpKV07Cn0gZmRfc2V0Owoj
IDk3ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzIDQKZXh0ZXJuIGludCBzZWxlY3QoaW50
LCBmZF9zZXQgKiwgZmRfc2V0ICosIGZkX3NldCAqLCBzdHJ1Y3QgdGltZXZhbCAqKTsKIyA1NzAg
Ii91c3IvbG9jYWwvbGliL2djYy1saWIvaTM4Ni1wYy1zb2xhcmlzMi44LzMuMS9pbmNsdWRlL3N5
cy90eXBlcy5oIiAyIDMgNAojIDQyICIuLi9pbmNsdWRlL0dML2ludGVybmFsL2dsY29yZS5oIiAy
CgoKCgoKdHlwZWRlZiBzdHJ1Y3QgX19HTGNvbnRleHRSZWMgX19HTGNvbnRleHQ7CnR5cGVkZWYg
c3RydWN0IF9fR0xpbnRlcmZhY2VSZWMgX19HTGludGVyZmFjZTsKIyA2NyAiLi4vaW5jbHVkZS9H
TC9pbnRlcm5hbC9nbGNvcmUuaCIKdHlwZWRlZiBzdHJ1Y3QgX19HTGNvbnRleHRNb2Rlc1JlYyB7
CiAgICBHTGJvb2xlYW4gcmdiTW9kZTsKICAgIEdMYm9vbGVhbiBjb2xvckluZGV4TW9kZTsKICAg
IEdMYm9vbGVhbiBkb3VibGVCdWZmZXJNb2RlOwogICAgR0xib29sZWFuIHN0ZXJlb01vZGU7Cgog
ICAgR0xib29sZWFuIGhhdmVBY2N1bUJ1ZmZlcjsKICAgIEdMYm9vbGVhbiBoYXZlRGVwdGhCdWZm
ZXI7CiAgICBHTGJvb2xlYW4gaGF2ZVN0ZW5jaWxCdWZmZXI7CgogICAgR0xpbnQgcmVkQml0cywg
Z3JlZW5CaXRzLCBibHVlQml0cywgYWxwaGFCaXRzOwogICAgR0x1aW50IHJlZE1hc2ssIGdyZWVu
TWFzaywgYmx1ZU1hc2ssIGFscGhhTWFzazsKICAgIEdMaW50IHJnYkJpdHM7CiAgICBHTGludCBp
bmRleEJpdHM7CgogICAgR0xpbnQgYWNjdW1SZWRCaXRzLCBhY2N1bUdyZWVuQml0cywgYWNjdW1C
bHVlQml0cywgYWNjdW1BbHBoYUJpdHM7CiAgICBHTGludCBkZXB0aEJpdHM7CiAgICBHTGludCBz
dGVuY2lsQml0czsKCiAgICBHTGludCBudW1BdXhCdWZmZXJzOwoKICAgIEdMaW50IGxldmVsOwoK
ICAgIEdMaW50IHBpeG1hcE1vZGU7Cn0gX19HTGNvbnRleHRNb2RlczsKIyAxMTMgIi4uL2luY2x1
ZGUvR0wvaW50ZXJuYWwvZ2xjb3JlLmgiCnR5cGVkZWYgc3RydWN0IF9fR0xkcmF3YWJsZVJlZ2lv
blJlYyBfX0dMZHJhd2FibGVSZWdpb247CnR5cGVkZWYgc3RydWN0IF9fR0xkcmF3YWJsZUJ1ZmZl
clJlYyBfX0dMZHJhd2FibGVCdWZmZXI7CnR5cGVkZWYgc3RydWN0IF9fR0xkcmF3YWJsZVByaXZh
dGVSZWMgX19HTGRyYXdhYmxlUHJpdmF0ZTsKCnR5cGVkZWYgc3RydWN0IF9fR0xyZWdpb25SZWN0
UmVjIHsKCiAgICBHTGludCB4MCwgeTA7CgogICAgR0xpbnQgeDEsIHkxOwp9IF9fR0xyZWdpb25S
ZWN0OwoKc3RydWN0IF9fR0xkcmF3YWJsZVJlZ2lvblJlYyB7CiAgICBHTGludCBudW1SZWN0czsK
ICAgIF9fR0xyZWdpb25SZWN0ICpyZWN0czsKICAgIF9fR0xyZWdpb25SZWN0IGJvdW5kaW5nUmVj
dDsKfTsKIyAxNDkgIi4uL2luY2x1ZGUvR0wvaW50ZXJuYWwvZ2xjb3JlLmgiCnR5cGVkZWYgdm9p
ZCAoKl9fR0xidWZGYWxsYmFja0luaXRGbikoX19HTGRyYXdhYmxlQnVmZmVyICpidWYsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19HTGRyYXdhYmxlUHJpdmF0ZSAqZ2xQ
cml2LCBHTGludCBiaXRzKTsKdHlwZWRlZiB2b2lkICgqX19HTGJ1Zk1haW5Jbml0Rm4pKF9fR0xk
cmF3YWJsZUJ1ZmZlciAqYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19H
TGRyYXdhYmxlUHJpdmF0ZSAqZ2xQcml2LCBHTGludCBiaXRzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgX19HTGJ1ZkZhbGxiYWNrSW5pdEZuIGJhY2spOwojIDE3MCAiLi4vaW5j
bHVkZS9HTC9pbnRlcm5hbC9nbGNvcmUuaCIKc3RydWN0IF9fR0xkcmF3YWJsZUJ1ZmZlclJlYyB7
CgoKCiAgICBHTGludCB3aWR0aCwgaGVpZ2h0LCBkZXB0aDsKCgoKCiAgICB2b2lkICpiYXNlOwoK
CgoKICAgIEdMdWludCBzaXplOwoKCgoKICAgIEdMdWludCBlbGVtZW50U2l6ZTsKICAgIEdMdWlu
dCBlbGVtZW50U2l6ZUxvZzI7CgoKCgoKCiAgICBHTGludCBvdXRlcldpZHRoOwoKCgoKICAgIEdM
aW50IGJ5dGVXaWR0aDsKCgoKCgogICAgdm9pZCAqaGFuZGxlOwoKCiAgICBHTGJvb2xlYW4gKCpy
ZXNpemUpKF9fR0xkcmF3YWJsZUJ1ZmZlciAqYnVmLAogICAgICAgICAgICAgICAgICAgICAgICBH
TGludCB4LCBHTGludCB5LCBHTHVpbnQgd2lkdGgsIEdMdWludCBoZWlnaHQsCiAgICAgICAgICAg
ICAgICAgICAgICAgIF9fR0xkcmF3YWJsZVByaXZhdGUgKmdsUHJpdiwgR0x1aW50IGJ1ZmZlck1h
c2spOwogICAgdm9pZCAoKmxvY2spKF9fR0xkcmF3YWJsZUJ1ZmZlciAqYnVmLCBfX0dMZHJhd2Fi
bGVQcml2YXRlICpnbFByaXYpOwogICAgdm9pZCAoKnVubG9jaykoX19HTGRyYXdhYmxlQnVmZmVy
ICpidWYsIF9fR0xkcmF3YWJsZVByaXZhdGUgKmdsUHJpdik7CiAgICB2b2lkICgqZmlsbCkoX19H
TGRyYXdhYmxlQnVmZmVyICpidWYsIF9fR0xkcmF3YWJsZVByaXZhdGUgKmdsUHJpdiwKICAgICAg
ICAgICAgICAgIEdMdWludCB2YWwsIEdMaW50IHgsIEdMaW50IHksIEdMaW50IHcsIEdMaW50IGgp
OwogICAgdm9pZCAoKmZyZWUpKF9fR0xkcmF3YWJsZUJ1ZmZlciAqYnVmLCBfX0dMZHJhd2FibGVQ
cml2YXRlICpnbFByaXYpOwoKCiAgICB2b2lkICgqZnJlZVByaXZhdGUpKF9fR0xkcmF3YWJsZUJ1
ZmZlciAqYnVmLCBfX0dMZHJhd2FibGVQcml2YXRlICpnbFByaXYpOwoKCgogICAgdm9pZCAqcHJp
dmF0ZTsKCgoKICAgIHZvaWQgKm90aGVyOwogICAgX19HTGJ1Zk1haW5Jbml0Rm4gbWFpbkluaXQ7
CiAgICBfX0dMYnVmRmFsbGJhY2tJbml0Rm4gZmFsbGJhY2tJbml0Owp9OwoKCgoKc3RydWN0IF9f
R0xkcmF3YWJsZVByaXZhdGVSZWMgewoKCgogICAgX19HTGNvbnRleHRNb2RlcyAqbW9kZXM7CgoK
CgogICAgR0x1aW50IHdpZHRoLCBoZWlnaHQ7CgoKCgogICAgR0xpbnQgeE9yaWdpbiwgeU9yaWdp
bjsKIyAyNjYgIi4uL2luY2x1ZGUvR0wvaW50ZXJuYWwvZ2xjb3JlLmgiCiAgICBHTGludCB5SW52
ZXJ0ZWQ7CgoKCgogICAgR0x1aW50IGFjY2VsQnVmZmVyTWFzazsKCgoKCiAgICBfX0dMZHJhd2Fi
bGVCdWZmZXIgZnJvbnRCdWZmZXI7CiAgICBfX0dMZHJhd2FibGVCdWZmZXIgYmFja0J1ZmZlcjsK
ICAgIF9fR0xkcmF3YWJsZUJ1ZmZlciBhY2N1bUJ1ZmZlcjsKICAgIF9fR0xkcmF3YWJsZUJ1ZmZl
ciBkZXB0aEJ1ZmZlcjsKICAgIF9fR0xkcmF3YWJsZUJ1ZmZlciBzdGVuY2lsQnVmZmVyOwoKCgoK
ICAgIF9fR0xkcmF3YWJsZVJlZ2lvbiBvd25lcnNoaXBSZWdpb247CgoKCgogICAgdm9pZCAqbG9j
azsKIyAyOTkgIi4uL2luY2x1ZGUvR0wvaW50ZXJuYWwvZ2xjb3JlLmgiCiAgICB2b2lkICooKm1h
bGxvYykoc2l6ZV90IHNpemUpOwogICAgdm9pZCAqKCpjYWxsb2MpKHNpemVfdCBudW1FbGVtLCBz
aXplX3QgZWxlbVNpemUpOwogICAgdm9pZCAqKCpyZWFsbG9jKSh2b2lkICpvbGRBZGRyLCBzaXpl
X3QgbmV3U2l6ZSk7CiAgICB2b2lkICgqZnJlZSkodm9pZCAqYWRkcik7CgogICAgR0xib29sZWFu
ICgqYWRkU3dhcFJlY3QpKF9fR0xkcmF3YWJsZVByaXZhdGUgKmdsUHJpdiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVp
IGhlaWdodCk7CiAgICB2b2lkICgqc2V0Q2xpcFJlY3QpKF9fR0xkcmF3YWJsZVByaXZhdGUgKmds
UHJpdiwKICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3
aWR0aCwgR0xzaXplaSBoZWlnaHQpOwogICAgdm9pZCAoKnVwZGF0ZUNsaXBSZWdpb24pKF9fR0xk
cmF3YWJsZVByaXZhdGUgKmdsUHJpdik7CiAgICBHTGJvb2xlYW4gKCpyZXNpemUpKF9fR0xkcmF3
YWJsZVByaXZhdGUgKmdsUHJpdik7CiAgICB2b2lkICgqZ2V0RHJhd2FibGVTaXplKShfX0dMZHJh
d2FibGVQcml2YXRlICpnbFByaXYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCAq
eCwgR0xpbnQgKnksIEdMdWludCAqd2lkdGgsIEdMdWludCAqaGVpZ2h0KTsKCiAgICB2b2lkICgq
bG9ja0RQKShfX0dMZHJhd2FibGVQcml2YXRlICpnbFByaXYsIF9fR0xjb250ZXh0ICpnYyk7CiAg
ICB2b2lkICgqdW5sb2NrRFApKF9fR0xkcmF3YWJsZVByaXZhdGUgKmdsUHJpdik7CiMgMzIzICIu
Li9pbmNsdWRlL0dML2ludGVybmFsL2dsY29yZS5oIgogICAgdm9pZCAqcHJpdmF0ZTsKCiAgICB2
b2lkICgqZnJlZVByaXZhdGUpKF9fR0xkcmF3YWJsZVByaXZhdGUgKik7CgoKICAgIHZvaWQgKm90
aGVyOwp9OwojIDM1NiAiLi4vaW5jbHVkZS9HTC9pbnRlcm5hbC9nbGNvcmUuaCIKdHlwZWRlZiBz
dHJ1Y3QgX19HTGltcG9ydHNSZWMgewoKICAgIHZvaWQgKiAoKm1hbGxvYykoX19HTGNvbnRleHQg
KmdjLCBzaXplX3Qgc2l6ZSk7CiAgICB2b2lkICooKmNhbGxvYykoX19HTGNvbnRleHQgKmdjLCBz
aXplX3QgbnVtRWxlbSwgc2l6ZV90IGVsZW1TaXplKTsKICAgIHZvaWQgKigqcmVhbGxvYykoX19H
TGNvbnRleHQgKmdjLCB2b2lkICpvbGRBZGRyLCBzaXplX3QgbmV3U2l6ZSk7CiAgICB2b2lkICgq
ZnJlZSkoX19HTGNvbnRleHQgKmdjLCB2b2lkICphZGRyKTsKCgogICAgdm9pZCAoKndhcm5pbmcp
KF9fR0xjb250ZXh0ICpnYywgY2hhciAqZm10KTsKICAgIHZvaWQgKCpmYXRhbCkoX19HTGNvbnRl
eHQgKmdjLCBjaGFyICpmbXQpOwoKCiAgICBjaGFyICooICpnZXRlbnYpKF9fR0xjb250ZXh0ICpn
YywgY29uc3QgY2hhciAqdmFyKTsKICAgIGludCAoICphdG9pKShfX0dMY29udGV4dCAqZ2MsIGNv
bnN0IGNoYXIgKnN0cik7CiAgICBpbnQgKCAqc3ByaW50ZikoX19HTGNvbnRleHQgKmdjLCBjaGFy
ICpzdHIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKICAgIHZvaWQgKiggKmZvcGVuKShfX0dMY29u
dGV4dCAqZ2MsIGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKm1vZGUpOwogICAgaW50ICgg
KmZjbG9zZSkoX19HTGNvbnRleHQgKmdjLCB2b2lkICpzdHJlYW0pOwogICAgaW50ICggKmZwcmlu
dGYpKF9fR0xjb250ZXh0ICpnYywgdm9pZCAqc3RyZWFtLCBjb25zdCBjaGFyICpmbXQsIC4uLik7
CgoKICAgIF9fR0xkcmF3YWJsZVByaXZhdGUgKigqZ2V0RHJhd2FibGVQcml2YXRlKShfX0dMY29u
dGV4dCAqZ2MpOwojIDM4NyAiLi4vaW5jbHVkZS9HTC9pbnRlcm5hbC9nbGNvcmUuaCIKICAgIHZv
aWQgKm90aGVyOwp9IF9fR0xpbXBvcnRzOwoKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgX19HTGV4cG9y
dHNSZWMgewoKICAgIEdMYm9vbGVhbiAoKmRlc3Ryb3lDb250ZXh0KShfX0dMY29udGV4dCAqZ2Mp
OwogICAgR0xib29sZWFuICgqbG9zZUN1cnJlbnQpKF9fR0xjb250ZXh0ICpnYyk7CiAgICBHTGJv
b2xlYW4gKCptYWtlQ3VycmVudCkoX19HTGNvbnRleHQgKmdjKTsKICAgIEdMYm9vbGVhbiAoKnNo
YXJlQ29udGV4dCkoX19HTGNvbnRleHQgKmdjLCBfX0dMY29udGV4dCAqZ2NTaGFyZSk7CiAgICBH
TGJvb2xlYW4gKCpjb3B5Q29udGV4dCkoX19HTGNvbnRleHQgKmRzdCwgY29uc3QgX19HTGNvbnRl
eHQgKnNyYywgR0x1aW50IG1hc2spOwogICAgR0xib29sZWFuICgqZm9yY2VDdXJyZW50KShfX0dM
Y29udGV4dCAqZ2MpOwoKCiAgICBHTGJvb2xlYW4gKCpub3RpZnlSZXNpemUpKF9fR0xjb250ZXh0
ICpnYyk7CiAgICB2b2lkICgqbm90aWZ5RGVzdHJveSkoX19HTGNvbnRleHQgKmdjKTsKICAgIHZv
aWQgKCpub3RpZnlTd2FwQnVmZmVycykoX19HTGNvbnRleHQgKmdjKTsKCgogICAgc3RydWN0IF9f
R0xkaXNwYXRjaFN0YXRlUmVjKiAoKmRpc3BhdGNoRXhlYykoX19HTGNvbnRleHQgKmdjKTsKICAg
IHZvaWQgKCpiZWdpbkRpc3BhdGNoT3ZlcnJpZGUpKF9fR0xjb250ZXh0ICpnYyk7CiAgICB2b2lk
ICgqZW5kRGlzcGF0Y2hPdmVycmlkZSkoX19HTGNvbnRleHQgKmdjKTsKfSBfX0dMZXhwb3J0czsK
IyA0MjMgIi4uL2luY2x1ZGUvR0wvaW50ZXJuYWwvZ2xjb3JlLmgiCnN0cnVjdCBfX0dMaW50ZXJm
YWNlUmVjIHsKICAgIF9fR0xpbXBvcnRzIGltcG9ydHM7CiAgICBfX0dMZXhwb3J0cyBleHBvcnRz
Owp9OwoKZXh0ZXJuIF9fR0xjb250ZXh0ICpfX2dsQ29yZUNyZWF0ZUNvbnRleHQoX19HTGltcG9y
dHMgKiwgX19HTGNvbnRleHRNb2RlcyAqKTsKZXh0ZXJuIHZvaWQgX19nbENvcmVOb3BEaXNwYXRj
aCh2b2lkKTsKIyAyMDUgImdsaGVhZGVyLmgiIDIKIyAyOTMgImdsaGVhZGVyLmgiCnR5cGVkZWYg
dW5pb24geyBHTGZsb2F0IGY7IEdMaW50IGk7IH0gZmlfdHlwZTsKIyAyOCAiaW1hZ2UuYyIgMgoj
IDEgImNvbG9ybWFjLmgiIDEKIyAzOCAiY29sb3JtYWMuaCIKIyAxICJjb25maWcuaCIgMQojIDM5
ICJjb2xvcm1hYy5oIiAyCiMgMSAibWFjcm9zLmgiIDEKIyA0MCAiY29sb3JtYWMuaCIgMgojIDEg
Im1tYXRoLmgiIDEKIyA0MCAibW1hdGguaCIKIyAxICJpbXBvcnRzLmgiIDEKIyA5OSAiaW1wb3J0
cy5oIgpleHRlcm4gdm9pZCAqCl9tZXNhX21hbGxvYyggc2l6ZV90IGJ5dGVzICk7CgpleHRlcm4g
dm9pZCAqCl9tZXNhX2NhbGxvYyggc2l6ZV90IGJ5dGVzICk7CgpleHRlcm4gdm9pZApfbWVzYV9m
cmVlKCB2b2lkICpwdHIgKTsKCmV4dGVybiB2b2lkICoKX21lc2FfYWxpZ25fbWFsbG9jKCBzaXpl
X3QgYnl0ZXMsIHVuc2lnbmVkIGxvbmcgYWxpZ25tZW50ICk7CgpleHRlcm4gdm9pZCAqCl9tZXNh
X2FsaWduX2NhbGxvYyggc2l6ZV90IGJ5dGVzLCB1bnNpZ25lZCBsb25nIGFsaWdubWVudCApOwoK
ZXh0ZXJuIHZvaWQKX21lc2FfYWxpZ25fZnJlZSggdm9pZCAqcHRyICk7CgpleHRlcm4gdm9pZCAq
Cl9tZXNhX21lbWNweSggdm9pZCAqZGVzdCwgY29uc3Qgdm9pZCAqc3JjLCBzaXplX3QgbiApOwoK
ZXh0ZXJuIHZvaWQKX21lc2FfbWVtc2V0KCB2b2lkICpkc3QsIGludCB2YWwsIHNpemVfdCBuICk7
CgpleHRlcm4gdm9pZApfbWVzYV9tZW1zZXQxNiggdW5zaWduZWQgc2hvcnQgKmRzdCwgdW5zaWdu
ZWQgc2hvcnQgdmFsLCBzaXplX3QgbiApOwoKZXh0ZXJuIHZvaWQKX21lc2FfYnplcm8oIHZvaWQg
KmRzdCwgc2l6ZV90IG4gKTsKCgpleHRlcm4gZG91YmxlCl9tZXNhX3Npbihkb3VibGUgYSk7Cgpl
eHRlcm4gZG91YmxlCl9tZXNhX2Nvcyhkb3VibGUgYSk7CgpleHRlcm4gZG91YmxlCl9tZXNhX3Nx
cnQoZG91YmxlIHgpOwoKZXh0ZXJuIGRvdWJsZQpfbWVzYV9wb3coZG91YmxlIHgsIGRvdWJsZSB5
KTsKCgpleHRlcm4gY2hhciAqCl9tZXNhX2dldGVudiggY29uc3QgY2hhciAqdmFyICk7CgpleHRl
cm4gY2hhciAqCl9tZXNhX3N0cnN0ciggY29uc3QgY2hhciAqaGF5c3RhY2ssIGNvbnN0IGNoYXIg
Km5lZWRsZSApOwoKZXh0ZXJuIGNoYXIgKgpfbWVzYV9zdHJuY2F0KCBjaGFyICpkZXN0LCBjb25z
dCBjaGFyICpzcmMsIHNpemVfdCBuICk7CgpleHRlcm4gY2hhciAqCl9tZXNhX3N0cmNweSggY2hh
ciAqZGVzdCwgY29uc3QgY2hhciAqc3JjICk7CgpleHRlcm4gY2hhciAqCl9tZXNhX3N0cm5jcHko
IGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IG4gKTsKCmV4dGVybiBzaXplX3QK
X21lc2Ffc3RybGVuKCBjb25zdCBjaGFyICpzICk7CgpleHRlcm4gaW50Cl9tZXNhX3N0cmNtcCgg
Y29uc3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyICk7CgpleHRlcm4gaW50Cl9tZXNhX3N0cm5j
bXAoIGNvbnN0IGNoYXIgKnMxLCBjb25zdCBjaGFyICpzMiwgc2l6ZV90IG4gKTsKCmV4dGVybiBp
bnQKX21lc2FfYXRvaSggY29uc3QgY2hhciAqcyApOwoKZXh0ZXJuIGludApfbWVzYV9zcHJpbnRm
KCBjaGFyICpzdHIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uICk7CgpleHRlcm4gdm9pZApfbWVzYV9w
cmludGYoIGNvbnN0IGNoYXIgKmZtdFN0cmluZywgLi4uICk7CgoKZXh0ZXJuIHZvaWQKX21lc2Ff
d2FybmluZyggX19HTGNvbnRleHQgKmdjLCBjb25zdCBjaGFyICpmbXRTdHJpbmcsIC4uLiApOwoK
ZXh0ZXJuIHZvaWQKX21lc2FfcHJvYmxlbSggY29uc3QgX19HTGNvbnRleHQgKmN0eCwgY29uc3Qg
Y2hhciAqcyApOwoKZXh0ZXJuIHZvaWQKX21lc2FfZXJyb3IoIF9fR0xjb250ZXh0ICpjdHgsIEdM
ZW51bSBlcnJvciwgY29uc3QgY2hhciAqZm10U3RyaW5nLCAuLi4gKTsKCmV4dGVybiB2b2lkCl9t
ZXNhX2RlYnVnKCBjb25zdCBfX0dMY29udGV4dCAqY3R4LCBjb25zdCBjaGFyICpmbXRTdHJpbmcs
IC4uLiApOwoKCmV4dGVybiB2b2lkCl9tZXNhX2luaXRfZGVmYXVsdF9pbXBvcnRzKCBfX0dMaW1w
b3J0cyAqaW1wb3J0cywgdm9pZCAqZHJpdmVyQ3R4ICk7CiMgNDEgIm1tYXRoLmgiIDIKIyAxNTUg
Im1tYXRoLmgiCmV4dGVybiBmbG9hdCBnbF9zcXJ0KGZsb2F0IHgpOwojIDM0NiAibW1hdGguaCIK
c3RhdGljIF9faW5saW5lX18gaW50IGlmbG9vcihmbG9hdCBmKQp7CgogICBpbnQgYWksIGJpOwog
ICBkb3VibGUgYWYsIGJmOwogICB1bmlvbiB7IGludCBpOyBmbG9hdCBmOyB9IHU7CgogICBhZiA9
ICgzIDw8IDIyKSArIDAuNSArIChkb3VibGUpZjsKICAgYmYgPSAoMyA8PCAyMikgKyAwLjUgLSAo
ZG91YmxlKWY7CiAgIHUuZiA9IGFmOyBhaSA9IHUuaTsKICAgdS5mID0gYmY7IGJpID0gdS5pOwog
ICByZXR1cm4gKGFpIC0gYmkpID4+IDE7CgoKCgp9CgoKCgoKCnN0YXRpYyBfX2lubGluZV9fIGlu
dCBpY2VpbChmbG9hdCBmKQp7CgogICBpbnQgYWksIGJpOwogICBkb3VibGUgYWYsIGJmOwogICB1
bmlvbiB7IGludCBpOyBmbG9hdCBmOyB9IHU7CiAgIGFmID0gKDMgPDwgMjIpICsgMC41ICsgKGRv
dWJsZSlmOwogICBiZiA9ICgzIDw8IDIyKSArIDAuNSAtIChkb3VibGUpZjsKICAgdS5mID0gYWY7
IGFpID0gdS5pOwogICB1LmYgPSBiZjsgYmkgPSB1Lmk7CiAgIHJldHVybiAoYWkgLSBiaSArIDEp
ID4+IDE7CgoKCgp9CiMgNDM5ICJtbWF0aC5oIgpleHRlcm4gZmxvYXQgX21lc2FfdWJ5dGVfdG9f
ZmxvYXRfY29sb3JfdGFiWzI1Nl07CiMgNjA2ICJtbWF0aC5oIgpzdGF0aWMgX19pbmxpbmVfXyBp
bnQgSVNfSU5GX09SX05BTiggZmxvYXQgeCApCnsKICAgdW5pb24ge2Zsb2F0IGY7IGludCBpO30g
dG1wOwogICB0bXAuZiA9IHg7CiAgIHJldHVybiAhKGludCkoKHVuc2lnbmVkIGludCkoKHRtcC5p
ICYgMHg3ZmZmZmZmZiktMHg3ZjgwMDAwMCkgPj4gMzEpOwp9CiMgNjM5ICJtbWF0aC5oIgpzdGF0
aWMgX19pbmxpbmVfXyBHTGZsb2F0IExPRzIoR0xmbG9hdCB2YWwpCnsKICAgR0xpbnQgKmV4cF9w
dHIgPSAoR0xpbnQgKikgJnZhbDsKICAgR0xpbnQgeCA9ICpleHBfcHRyOwogICBjb25zdCBHTGlu
dCBsb2dfMiA9ICgoeCA+PiAyMykgJiAyNTUpIC0gMTI4OwogICB4ICY9IH4oMjU1IDw8IDIzKTsK
ICAgeCArPSAxMjcgPDwgMjM7CiAgICpleHBfcHRyID0geDsKICAgdmFsID0gKCgtMS4wZi8zKSAq
IHZhbCArIDIpICogdmFsIC0gMi4wZi8zOwogICByZXR1cm4gdmFsICsgbG9nXzI7Cn0KIyA2NjIg
Im1tYXRoLmgiCmV4dGVybiB2b2lkCl9tZXNhX2luaXRfbWF0aCh2b2lkKTsKCgpleHRlcm4gR0x1
aW50Cl9tZXNhX2JpdGNvdW50KEdMdWludCBuKTsKIyA0MSAiY29sb3JtYWMuaCIgMgojIDI5ICJp
bWFnZS5jIiAyCiMgMSAiY29udGV4dC5oIiAxCiMgMzIgImNvbnRleHQuaCIKIyAxICJnbGFwaS5o
IiAxCiMgMzQgImdsYXBpLmgiCnN0cnVjdCBfZ2xhcGlfdGFibGU7Cgp0eXBlZGVmIHZvaWQgKCpf
Z2xhcGlfd2FybmluZ19mdW5jKSh2b2lkICpjdHgsIGNvbnN0IGNoYXIgKnN0ciwgLi4uKTsKCgpl
eHRlcm4gdm9pZCAqX2dsYXBpX0NvbnRleHQ7CgpleHRlcm4gc3RydWN0IF9nbGFwaV90YWJsZSAq
X2dsYXBpX0Rpc3BhdGNoOwoKCmV4dGVybiB2b2lkCl9nbGFwaV9ub29wX2VuYWJsZV93YXJuaW5n
cyhHTGJvb2xlYW4gZW5hYmxlKTsKCmV4dGVybiB2b2lkCl9nbGFwaV9zZXRfd2FybmluZ19mdW5j
KF9nbGFwaV93YXJuaW5nX2Z1bmMgZnVuYyk7CgpleHRlcm4gdm9pZApfZ2xhcGlfY2hlY2tfbXVs
dGl0aHJlYWQodm9pZCk7CgoKZXh0ZXJuIHZvaWQKX2dsYXBpX3NldF9jb250ZXh0KHZvaWQgKmNv
bnRleHQpOwoKCmV4dGVybiB2b2lkICoKX2dsYXBpX2dldF9jb250ZXh0KHZvaWQpOwoKCmV4dGVy
biB2b2lkCl9nbGFwaV9zZXRfZGlzcGF0Y2goc3RydWN0IF9nbGFwaV90YWJsZSAqZGlzcGF0Y2gp
OwoKCmV4dGVybiBzdHJ1Y3QgX2dsYXBpX3RhYmxlICoKX2dsYXBpX2dldF9kaXNwYXRjaCh2b2lk
KTsKCgpleHRlcm4gaW50Cl9nbGFwaV9iZWdpbl9kaXNwYXRjaF9vdmVycmlkZShzdHJ1Y3QgX2ds
YXBpX3RhYmxlICpvdmVycmlkZSk7CgoKZXh0ZXJuIHZvaWQKX2dsYXBpX2VuZF9kaXNwYXRjaF9v
dmVycmlkZShpbnQgbGF5ZXIpOwoKCnN0cnVjdCBfZ2xhcGlfdGFibGUgKgpfZ2xhcGlfZ2V0X292
ZXJyaWRlX2Rpc3BhdGNoKGludCBsYXllcik7CgoKZXh0ZXJuIEdMdWludApfZ2xhcGlfZ2V0X2Rp
c3BhdGNoX3RhYmxlX3NpemUodm9pZCk7CgoKZXh0ZXJuIGNvbnN0IGNoYXIgKgpfZ2xhcGlfZ2V0
X3ZlcnNpb24odm9pZCk7CgoKZXh0ZXJuIHZvaWQKX2dsYXBpX2NoZWNrX3RhYmxlKGNvbnN0IHN0
cnVjdCBfZ2xhcGlfdGFibGUgKnRhYmxlKTsKCgpleHRlcm4gR0xib29sZWFuCl9nbGFwaV9hZGRf
ZW50cnlwb2ludChjb25zdCBjaGFyICpmdW5jTmFtZSwgR0x1aW50IG9mZnNldCk7CgoKZXh0ZXJu
IEdMaW50Cl9nbGFwaV9nZXRfcHJvY19vZmZzZXQoY29uc3QgY2hhciAqZnVuY05hbWUpOwoKCmV4
dGVybiBjb25zdCBHTHZvaWQgKgpfZ2xhcGlfZ2V0X3Byb2NfYWRkcmVzcyhjb25zdCBjaGFyICpm
dW5jTmFtZSk7CgoKZXh0ZXJuIGNvbnN0IGNoYXIgKgpfZ2xhcGlfZ2V0X3Byb2NfbmFtZShHTHVp
bnQgb2Zmc2V0KTsKIyAzMyAiY29udGV4dC5oIiAyCiMgMSAibXR5cGVzLmgiIDEKIyAzOCAibXR5
cGVzLmgiCiMgMSAiZ2xhcGl0YWJsZS5oIiAxCgoKCgoKCnN0cnVjdCBfZ2xhcGlfdGFibGUKewog
ICB2b2lkICgqTmV3TGlzdCkoR0x1aW50IGxpc3QsIEdMZW51bSBtb2RlKTsKICAgdm9pZCAoKkVu
ZExpc3QpKHZvaWQpOwogICB2b2lkICgqQ2FsbExpc3QpKEdMdWludCBsaXN0KTsKICAgdm9pZCAo
KkNhbGxMaXN0cykoR0xzaXplaSBuLCBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICogbGlzdHMp
OwogICB2b2lkICgqRGVsZXRlTGlzdHMpKEdMdWludCBsaXN0LCBHTHNpemVpIHJhbmdlKTsKICAg
R0x1aW50ICgqR2VuTGlzdHMpKEdMc2l6ZWkgcmFuZ2UpOwogICB2b2lkICgqTGlzdEJhc2UpKEdM
dWludCBiYXNlKTsKICAgdm9pZCAoKkJlZ2luKShHTGVudW0gbW9kZSk7CiAgIHZvaWQgKCpCaXRt
YXApKEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGZsb2F0IHhvcmlnLCBHTGZsb2F0
IHlvcmlnLCBHTGZsb2F0IHhtb3ZlLCBHTGZsb2F0IHltb3ZlLCBjb25zdCBHTHVieXRlICogYml0
bWFwKTsKICAgdm9pZCAoKkNvbG9yM2IpKEdMYnl0ZSByZWQsIEdMYnl0ZSBncmVlbiwgR0xieXRl
IGJsdWUpOwogICB2b2lkICgqQ29sb3IzYnYpKGNvbnN0IEdMYnl0ZSAqIHYpOwogICB2b2lkICgq
Q29sb3IzZCkoR0xkb3VibGUgcmVkLCBHTGRvdWJsZSBncmVlbiwgR0xkb3VibGUgYmx1ZSk7CiAg
IHZvaWQgKCpDb2xvcjNkdikoY29uc3QgR0xkb3VibGUgKiB2KTsKICAgdm9pZCAoKkNvbG9yM2Yp
KEdMZmxvYXQgcmVkLCBHTGZsb2F0IGdyZWVuLCBHTGZsb2F0IGJsdWUpOwogICB2b2lkICgqQ29s
b3IzZnYpKGNvbnN0IEdMZmxvYXQgKiB2KTsKICAgdm9pZCAoKkNvbG9yM2kpKEdMaW50IHJlZCwg
R0xpbnQgZ3JlZW4sIEdMaW50IGJsdWUpOwogICB2b2lkICgqQ29sb3IzaXYpKGNvbnN0IEdMaW50
ICogdik7CiAgIHZvaWQgKCpDb2xvcjNzKShHTHNob3J0IHJlZCwgR0xzaG9ydCBncmVlbiwgR0xz
aG9ydCBibHVlKTsKICAgdm9pZCAoKkNvbG9yM3N2KShjb25zdCBHTHNob3J0ICogdik7CiAgIHZv
aWQgKCpDb2xvcjN1YikoR0x1Ynl0ZSByZWQsIEdMdWJ5dGUgZ3JlZW4sIEdMdWJ5dGUgYmx1ZSk7
CiAgIHZvaWQgKCpDb2xvcjN1YnYpKGNvbnN0IEdMdWJ5dGUgKiB2KTsKICAgdm9pZCAoKkNvbG9y
M3VpKShHTHVpbnQgcmVkLCBHTHVpbnQgZ3JlZW4sIEdMdWludCBibHVlKTsKICAgdm9pZCAoKkNv
bG9yM3VpdikoY29uc3QgR0x1aW50ICogdik7CiAgIHZvaWQgKCpDb2xvcjN1cykoR0x1c2hvcnQg
cmVkLCBHTHVzaG9ydCBncmVlbiwgR0x1c2hvcnQgYmx1ZSk7CiAgIHZvaWQgKCpDb2xvcjN1c3Yp
KGNvbnN0IEdMdXNob3J0ICogdik7CiAgIHZvaWQgKCpDb2xvcjRiKShHTGJ5dGUgcmVkLCBHTGJ5
dGUgZ3JlZW4sIEdMYnl0ZSBibHVlLCBHTGJ5dGUgYWxwaGEpOwogICB2b2lkICgqQ29sb3I0YnYp
KGNvbnN0IEdMYnl0ZSAqIHYpOwogICB2b2lkICgqQ29sb3I0ZCkoR0xkb3VibGUgcmVkLCBHTGRv
dWJsZSBncmVlbiwgR0xkb3VibGUgYmx1ZSwgR0xkb3VibGUgYWxwaGEpOwogICB2b2lkICgqQ29s
b3I0ZHYpKGNvbnN0IEdMZG91YmxlICogdik7CiAgIHZvaWQgKCpDb2xvcjRmKShHTGZsb2F0IHJl
ZCwgR0xmbG9hdCBncmVlbiwgR0xmbG9hdCBibHVlLCBHTGZsb2F0IGFscGhhKTsKICAgdm9pZCAo
KkNvbG9yNGZ2KShjb25zdCBHTGZsb2F0ICogdik7CiAgIHZvaWQgKCpDb2xvcjRpKShHTGludCBy
ZWQsIEdMaW50IGdyZWVuLCBHTGludCBibHVlLCBHTGludCBhbHBoYSk7CiAgIHZvaWQgKCpDb2xv
cjRpdikoY29uc3QgR0xpbnQgKiB2KTsKICAgdm9pZCAoKkNvbG9yNHMpKEdMc2hvcnQgcmVkLCBH
THNob3J0IGdyZWVuLCBHTHNob3J0IGJsdWUsIEdMc2hvcnQgYWxwaGEpOwogICB2b2lkICgqQ29s
b3I0c3YpKGNvbnN0IEdMc2hvcnQgKiB2KTsKICAgdm9pZCAoKkNvbG9yNHViKShHTHVieXRlIHJl
ZCwgR0x1Ynl0ZSBncmVlbiwgR0x1Ynl0ZSBibHVlLCBHTHVieXRlIGFscGhhKTsKICAgdm9pZCAo
KkNvbG9yNHVidikoY29uc3QgR0x1Ynl0ZSAqIHYpOwogICB2b2lkICgqQ29sb3I0dWkpKEdMdWlu
dCByZWQsIEdMdWludCBncmVlbiwgR0x1aW50IGJsdWUsIEdMdWludCBhbHBoYSk7CiAgIHZvaWQg
KCpDb2xvcjR1aXYpKGNvbnN0IEdMdWludCAqIHYpOwogICB2b2lkICgqQ29sb3I0dXMpKEdMdXNo
b3J0IHJlZCwgR0x1c2hvcnQgZ3JlZW4sIEdMdXNob3J0IGJsdWUsIEdMdXNob3J0IGFscGhhKTsK
ICAgdm9pZCAoKkNvbG9yNHVzdikoY29uc3QgR0x1c2hvcnQgKiB2KTsKICAgdm9pZCAoKkVkZ2VG
bGFnKShHTGJvb2xlYW4gZmxhZyk7CiAgIHZvaWQgKCpFZGdlRmxhZ3YpKGNvbnN0IEdMYm9vbGVh
biAqIGZsYWcpOwogICB2b2lkICgqRW5kKSh2b2lkKTsKICAgdm9pZCAoKkluZGV4ZCkoR0xkb3Vi
bGUgYyk7CiAgIHZvaWQgKCpJbmRleGR2KShjb25zdCBHTGRvdWJsZSAqIGMpOwogICB2b2lkICgq
SW5kZXhmKShHTGZsb2F0IGMpOwogICB2b2lkICgqSW5kZXhmdikoY29uc3QgR0xmbG9hdCAqIGMp
OwogICB2b2lkICgqSW5kZXhpKShHTGludCBjKTsKICAgdm9pZCAoKkluZGV4aXYpKGNvbnN0IEdM
aW50ICogYyk7CiAgIHZvaWQgKCpJbmRleHMpKEdMc2hvcnQgYyk7CiAgIHZvaWQgKCpJbmRleHN2
KShjb25zdCBHTHNob3J0ICogYyk7CiAgIHZvaWQgKCpOb3JtYWwzYikoR0xieXRlIG54LCBHTGJ5
dGUgbnksIEdMYnl0ZSBueik7CiAgIHZvaWQgKCpOb3JtYWwzYnYpKGNvbnN0IEdMYnl0ZSAqIHYp
OwogICB2b2lkICgqTm9ybWFsM2QpKEdMZG91YmxlIG54LCBHTGRvdWJsZSBueSwgR0xkb3VibGUg
bnopOwogICB2b2lkICgqTm9ybWFsM2R2KShjb25zdCBHTGRvdWJsZSAqIHYpOwogICB2b2lkICgq
Tm9ybWFsM2YpKEdMZmxvYXQgbngsIEdMZmxvYXQgbnksIEdMZmxvYXQgbnopOwogICB2b2lkICgq
Tm9ybWFsM2Z2KShjb25zdCBHTGZsb2F0ICogdik7CiAgIHZvaWQgKCpOb3JtYWwzaSkoR0xpbnQg
bngsIEdMaW50IG55LCBHTGludCBueik7CiAgIHZvaWQgKCpOb3JtYWwzaXYpKGNvbnN0IEdMaW50
ICogdik7CiAgIHZvaWQgKCpOb3JtYWwzcykoR0xzaG9ydCBueCwgR0xzaG9ydCBueSwgR0xzaG9y
dCBueik7CiAgIHZvaWQgKCpOb3JtYWwzc3YpKGNvbnN0IEdMc2hvcnQgKiB2KTsKICAgdm9pZCAo
KlJhc3RlclBvczJkKShHTGRvdWJsZSB4LCBHTGRvdWJsZSB5KTsKICAgdm9pZCAoKlJhc3RlclBv
czJkdikoY29uc3QgR0xkb3VibGUgKiB2KTsKICAgdm9pZCAoKlJhc3RlclBvczJmKShHTGZsb2F0
IHgsIEdMZmxvYXQgeSk7CiAgIHZvaWQgKCpSYXN0ZXJQb3MyZnYpKGNvbnN0IEdMZmxvYXQgKiB2
KTsKICAgdm9pZCAoKlJhc3RlclBvczJpKShHTGludCB4LCBHTGludCB5KTsKICAgdm9pZCAoKlJh
c3RlclBvczJpdikoY29uc3QgR0xpbnQgKiB2KTsKICAgdm9pZCAoKlJhc3RlclBvczJzKShHTHNo
b3J0IHgsIEdMc2hvcnQgeSk7CiAgIHZvaWQgKCpSYXN0ZXJQb3Myc3YpKGNvbnN0IEdMc2hvcnQg
KiB2KTsKICAgdm9pZCAoKlJhc3RlclBvczNkKShHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRv
dWJsZSB6KTsKICAgdm9pZCAoKlJhc3RlclBvczNkdikoY29uc3QgR0xkb3VibGUgKiB2KTsKICAg
dm9pZCAoKlJhc3RlclBvczNmKShHTGZsb2F0IHgsIEdMZmxvYXQgeSwgR0xmbG9hdCB6KTsKICAg
dm9pZCAoKlJhc3RlclBvczNmdikoY29uc3QgR0xmbG9hdCAqIHYpOwogICB2b2lkICgqUmFzdGVy
UG9zM2kpKEdMaW50IHgsIEdMaW50IHksIEdMaW50IHopOwogICB2b2lkICgqUmFzdGVyUG9zM2l2
KShjb25zdCBHTGludCAqIHYpOwogICB2b2lkICgqUmFzdGVyUG9zM3MpKEdMc2hvcnQgeCwgR0xz
aG9ydCB5LCBHTHNob3J0IHopOwogICB2b2lkICgqUmFzdGVyUG9zM3N2KShjb25zdCBHTHNob3J0
ICogdik7CiAgIHZvaWQgKCpSYXN0ZXJQb3M0ZCkoR0xkb3VibGUgeCwgR0xkb3VibGUgeSwgR0xk
b3VibGUgeiwgR0xkb3VibGUgdyk7CiAgIHZvaWQgKCpSYXN0ZXJQb3M0ZHYpKGNvbnN0IEdMZG91
YmxlICogdik7CiAgIHZvaWQgKCpSYXN0ZXJQb3M0ZikoR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdM
ZmxvYXQgeiwgR0xmbG9hdCB3KTsKICAgdm9pZCAoKlJhc3RlclBvczRmdikoY29uc3QgR0xmbG9h
dCAqIHYpOwogICB2b2lkICgqUmFzdGVyUG9zNGkpKEdMaW50IHgsIEdMaW50IHksIEdMaW50IHos
IEdMaW50IHcpOwogICB2b2lkICgqUmFzdGVyUG9zNGl2KShjb25zdCBHTGludCAqIHYpOwogICB2
b2lkICgqUmFzdGVyUG9zNHMpKEdMc2hvcnQgeCwgR0xzaG9ydCB5LCBHTHNob3J0IHosIEdMc2hv
cnQgdyk7CiAgIHZvaWQgKCpSYXN0ZXJQb3M0c3YpKGNvbnN0IEdMc2hvcnQgKiB2KTsKICAgdm9p
ZCAoKlJlY3RkKShHTGRvdWJsZSB4MSwgR0xkb3VibGUgeTEsIEdMZG91YmxlIHgyLCBHTGRvdWJs
ZSB5Mik7CiAgIHZvaWQgKCpSZWN0ZHYpKGNvbnN0IEdMZG91YmxlICogdjEsIGNvbnN0IEdMZG91
YmxlICogdjIpOwogICB2b2lkICgqUmVjdGYpKEdMZmxvYXQgeDEsIEdMZmxvYXQgeTEsIEdMZmxv
YXQgeDIsIEdMZmxvYXQgeTIpOwogICB2b2lkICgqUmVjdGZ2KShjb25zdCBHTGZsb2F0ICogdjEs
IGNvbnN0IEdMZmxvYXQgKiB2Mik7CiAgIHZvaWQgKCpSZWN0aSkoR0xpbnQgeDEsIEdMaW50IHkx
LCBHTGludCB4MiwgR0xpbnQgeTIpOwogICB2b2lkICgqUmVjdGl2KShjb25zdCBHTGludCAqIHYx
LCBjb25zdCBHTGludCAqIHYyKTsKICAgdm9pZCAoKlJlY3RzKShHTHNob3J0IHgxLCBHTHNob3J0
IHkxLCBHTHNob3J0IHgyLCBHTHNob3J0IHkyKTsKICAgdm9pZCAoKlJlY3RzdikoY29uc3QgR0xz
aG9ydCAqIHYxLCBjb25zdCBHTHNob3J0ICogdjIpOwogICB2b2lkICgqVGV4Q29vcmQxZCkoR0xk
b3VibGUgcyk7CiAgIHZvaWQgKCpUZXhDb29yZDFkdikoY29uc3QgR0xkb3VibGUgKiB2KTsKICAg
dm9pZCAoKlRleENvb3JkMWYpKEdMZmxvYXQgcyk7CiAgIHZvaWQgKCpUZXhDb29yZDFmdikoY29u
c3QgR0xmbG9hdCAqIHYpOwogICB2b2lkICgqVGV4Q29vcmQxaSkoR0xpbnQgcyk7CiAgIHZvaWQg
KCpUZXhDb29yZDFpdikoY29uc3QgR0xpbnQgKiB2KTsKICAgdm9pZCAoKlRleENvb3JkMXMpKEdM
c2hvcnQgcyk7CiAgIHZvaWQgKCpUZXhDb29yZDFzdikoY29uc3QgR0xzaG9ydCAqIHYpOwogICB2
b2lkICgqVGV4Q29vcmQyZCkoR0xkb3VibGUgcywgR0xkb3VibGUgdCk7CiAgIHZvaWQgKCpUZXhD
b29yZDJkdikoY29uc3QgR0xkb3VibGUgKiB2KTsKICAgdm9pZCAoKlRleENvb3JkMmYpKEdMZmxv
YXQgcywgR0xmbG9hdCB0KTsKICAgdm9pZCAoKlRleENvb3JkMmZ2KShjb25zdCBHTGZsb2F0ICog
dik7CiAgIHZvaWQgKCpUZXhDb29yZDJpKShHTGludCBzLCBHTGludCB0KTsKICAgdm9pZCAoKlRl
eENvb3JkMml2KShjb25zdCBHTGludCAqIHYpOwogICB2b2lkICgqVGV4Q29vcmQycykoR0xzaG9y
dCBzLCBHTHNob3J0IHQpOwogICB2b2lkICgqVGV4Q29vcmQyc3YpKGNvbnN0IEdMc2hvcnQgKiB2
KTsKICAgdm9pZCAoKlRleENvb3JkM2QpKEdMZG91YmxlIHMsIEdMZG91YmxlIHQsIEdMZG91Ymxl
IHIpOwogICB2b2lkICgqVGV4Q29vcmQzZHYpKGNvbnN0IEdMZG91YmxlICogdik7CiAgIHZvaWQg
KCpUZXhDb29yZDNmKShHTGZsb2F0IHMsIEdMZmxvYXQgdCwgR0xmbG9hdCByKTsKICAgdm9pZCAo
KlRleENvb3JkM2Z2KShjb25zdCBHTGZsb2F0ICogdik7CiAgIHZvaWQgKCpUZXhDb29yZDNpKShH
TGludCBzLCBHTGludCB0LCBHTGludCByKTsKICAgdm9pZCAoKlRleENvb3JkM2l2KShjb25zdCBH
TGludCAqIHYpOwogICB2b2lkICgqVGV4Q29vcmQzcykoR0xzaG9ydCBzLCBHTHNob3J0IHQsIEdM
c2hvcnQgcik7CiAgIHZvaWQgKCpUZXhDb29yZDNzdikoY29uc3QgR0xzaG9ydCAqIHYpOwogICB2
b2lkICgqVGV4Q29vcmQ0ZCkoR0xkb3VibGUgcywgR0xkb3VibGUgdCwgR0xkb3VibGUgciwgR0xk
b3VibGUgcSk7CiAgIHZvaWQgKCpUZXhDb29yZDRkdikoY29uc3QgR0xkb3VibGUgKiB2KTsKICAg
dm9pZCAoKlRleENvb3JkNGYpKEdMZmxvYXQgcywgR0xmbG9hdCB0LCBHTGZsb2F0IHIsIEdMZmxv
YXQgcSk7CiAgIHZvaWQgKCpUZXhDb29yZDRmdikoY29uc3QgR0xmbG9hdCAqIHYpOwogICB2b2lk
ICgqVGV4Q29vcmQ0aSkoR0xpbnQgcywgR0xpbnQgdCwgR0xpbnQgciwgR0xpbnQgcSk7CiAgIHZv
aWQgKCpUZXhDb29yZDRpdikoY29uc3QgR0xpbnQgKiB2KTsKICAgdm9pZCAoKlRleENvb3JkNHMp
KEdMc2hvcnQgcywgR0xzaG9ydCB0LCBHTHNob3J0IHIsIEdMc2hvcnQgcSk7CiAgIHZvaWQgKCpU
ZXhDb29yZDRzdikoY29uc3QgR0xzaG9ydCAqIHYpOwogICB2b2lkICgqVmVydGV4MmQpKEdMZG91
YmxlIHgsIEdMZG91YmxlIHkpOwogICB2b2lkICgqVmVydGV4MmR2KShjb25zdCBHTGRvdWJsZSAq
IHYpOwogICB2b2lkICgqVmVydGV4MmYpKEdMZmxvYXQgeCwgR0xmbG9hdCB5KTsKICAgdm9pZCAo
KlZlcnRleDJmdikoY29uc3QgR0xmbG9hdCAqIHYpOwogICB2b2lkICgqVmVydGV4MmkpKEdMaW50
IHgsIEdMaW50IHkpOwogICB2b2lkICgqVmVydGV4Mml2KShjb25zdCBHTGludCAqIHYpOwogICB2
b2lkICgqVmVydGV4MnMpKEdMc2hvcnQgeCwgR0xzaG9ydCB5KTsKICAgdm9pZCAoKlZlcnRleDJz
dikoY29uc3QgR0xzaG9ydCAqIHYpOwogICB2b2lkICgqVmVydGV4M2QpKEdMZG91YmxlIHgsIEdM
ZG91YmxlIHksIEdMZG91YmxlIHopOwogICB2b2lkICgqVmVydGV4M2R2KShjb25zdCBHTGRvdWJs
ZSAqIHYpOwogICB2b2lkICgqVmVydGV4M2YpKEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0
IHopOwogICB2b2lkICgqVmVydGV4M2Z2KShjb25zdCBHTGZsb2F0ICogdik7CiAgIHZvaWQgKCpW
ZXJ0ZXgzaSkoR0xpbnQgeCwgR0xpbnQgeSwgR0xpbnQgeik7CiAgIHZvaWQgKCpWZXJ0ZXgzaXYp
KGNvbnN0IEdMaW50ICogdik7CiAgIHZvaWQgKCpWZXJ0ZXgzcykoR0xzaG9ydCB4LCBHTHNob3J0
IHksIEdMc2hvcnQgeik7CiAgIHZvaWQgKCpWZXJ0ZXgzc3YpKGNvbnN0IEdMc2hvcnQgKiB2KTsK
ICAgdm9pZCAoKlZlcnRleDRkKShHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRvdWJsZSB6LCBH
TGRvdWJsZSB3KTsKICAgdm9pZCAoKlZlcnRleDRkdikoY29uc3QgR0xkb3VibGUgKiB2KTsKICAg
dm9pZCAoKlZlcnRleDRmKShHTGZsb2F0IHgsIEdMZmxvYXQgeSwgR0xmbG9hdCB6LCBHTGZsb2F0
IHcpOwogICB2b2lkICgqVmVydGV4NGZ2KShjb25zdCBHTGZsb2F0ICogdik7CiAgIHZvaWQgKCpW
ZXJ0ZXg0aSkoR0xpbnQgeCwgR0xpbnQgeSwgR0xpbnQgeiwgR0xpbnQgdyk7CiAgIHZvaWQgKCpW
ZXJ0ZXg0aXYpKGNvbnN0IEdMaW50ICogdik7CiAgIHZvaWQgKCpWZXJ0ZXg0cykoR0xzaG9ydCB4
LCBHTHNob3J0IHksIEdMc2hvcnQgeiwgR0xzaG9ydCB3KTsKICAgdm9pZCAoKlZlcnRleDRzdiko
Y29uc3QgR0xzaG9ydCAqIHYpOwogICB2b2lkICgqQ2xpcFBsYW5lKShHTGVudW0gcGxhbmUsIGNv
bnN0IEdMZG91YmxlICogZXF1YXRpb24pOwogICB2b2lkICgqQ29sb3JNYXRlcmlhbCkoR0xlbnVt
IGZhY2UsIEdMZW51bSBtb2RlKTsKICAgdm9pZCAoKkN1bGxGYWNlKShHTGVudW0gbW9kZSk7CiAg
IHZvaWQgKCpGb2dmKShHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOwogICB2b2lkICgqRm9n
ZnYpKEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpGb2dp
KShHTGVudW0gcG5hbWUsIEdMaW50IHBhcmFtKTsKICAgdm9pZCAoKkZvZ2l2KShHTGVudW0gcG5h
bWUsIGNvbnN0IEdMaW50ICogcGFyYW1zKTsKICAgdm9pZCAoKkZyb250RmFjZSkoR0xlbnVtIG1v
ZGUpOwogICB2b2lkICgqSGludCkoR0xlbnVtIHRhcmdldCwgR0xlbnVtIG1vZGUpOwogICB2b2lk
ICgqTGlnaHRmKShHTGVudW0gbGlnaHQsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCBwYXJhbSk7CiAg
IHZvaWQgKCpMaWdodGZ2KShHTGVudW0gbGlnaHQsIEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9h
dCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpMaWdodGkpKEdMZW51bSBsaWdodCwgR0xlbnVtIHBuYW1l
LCBHTGludCBwYXJhbSk7CiAgIHZvaWQgKCpMaWdodGl2KShHTGVudW0gbGlnaHQsIEdMZW51bSBw
bmFtZSwgY29uc3QgR0xpbnQgKiBwYXJhbXMpOwogICB2b2lkICgqTGlnaHRNb2RlbGYpKEdMZW51
bSBwbmFtZSwgR0xmbG9hdCBwYXJhbSk7CiAgIHZvaWQgKCpMaWdodE1vZGVsZnYpKEdMZW51bSBw
bmFtZSwgY29uc3QgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpMaWdodE1vZGVsaSkoR0xl
bnVtIHBuYW1lLCBHTGludCBwYXJhbSk7CiAgIHZvaWQgKCpMaWdodE1vZGVsaXYpKEdMZW51bSBw
bmFtZSwgY29uc3QgR0xpbnQgKiBwYXJhbXMpOwogICB2b2lkICgqTGluZVN0aXBwbGUpKEdMaW50
IGZhY3RvciwgR0x1c2hvcnQgcGF0dGVybik7CiAgIHZvaWQgKCpMaW5lV2lkdGgpKEdMZmxvYXQg
d2lkdGgpOwogICB2b2lkICgqTWF0ZXJpYWxmKShHTGVudW0gZmFjZSwgR0xlbnVtIHBuYW1lLCBH
TGZsb2F0IHBhcmFtKTsKICAgdm9pZCAoKk1hdGVyaWFsZnYpKEdMZW51bSBmYWNlLCBHTGVudW0g
cG5hbWUsIGNvbnN0IEdMZmxvYXQgKiBwYXJhbXMpOwogICB2b2lkICgqTWF0ZXJpYWxpKShHTGVu
dW0gZmFjZSwgR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSk7CiAgIHZvaWQgKCpNYXRlcmlhbGl2
KShHTGVudW0gZmFjZSwgR0xlbnVtIHBuYW1lLCBjb25zdCBHTGludCAqIHBhcmFtcyk7CiAgIHZv
aWQgKCpQb2ludFNpemUpKEdMZmxvYXQgc2l6ZSk7CiAgIHZvaWQgKCpQb2x5Z29uTW9kZSkoR0xl
bnVtIGZhY2UsIEdMZW51bSBtb2RlKTsKICAgdm9pZCAoKlBvbHlnb25TdGlwcGxlKShjb25zdCBH
THVieXRlICogbWFzayk7CiAgIHZvaWQgKCpTY2lzc29yKShHTGludCB4LCBHTGludCB5LCBHTHNp
emVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7CiAgIHZvaWQgKCpTaGFkZU1vZGVsKShHTGVudW0g
bW9kZSk7CiAgIHZvaWQgKCpUZXhQYXJhbWV0ZXJmKShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5h
bWUsIEdMZmxvYXQgcGFyYW0pOwogICB2b2lkICgqVGV4UGFyYW1ldGVyZnYpKEdMZW51bSB0YXJn
ZXQsIEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpUZXhQ
YXJhbWV0ZXJpKShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMaW50IHBhcmFtKTsKICAg
dm9pZCAoKlRleFBhcmFtZXRlcml2KShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIGNvbnN0
IEdMaW50ICogcGFyYW1zKTsKICAgdm9pZCAoKlRleEltYWdlMUQpKEdMZW51bSB0YXJnZXQsIEdM
aW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xpbnQgYm9y
ZGVyLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICogcGl4ZWxzKTsK
ICAgdm9pZCAoKlRleEltYWdlMkQpKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBp
bnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMaW50IGJvcmRl
ciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9pZCAqIHBpeGVscyk7CiAg
IHZvaWQgKCpUZXhFbnZmKShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFy
YW0pOwogICB2b2lkICgqVGV4RW52ZnYpKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgY29u
c3QgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpUZXhFbnZpKShHTGVudW0gdGFyZ2V0LCBH
TGVudW0gcG5hbWUsIEdMaW50IHBhcmFtKTsKICAgdm9pZCAoKlRleEVudml2KShHTGVudW0gdGFy
Z2V0LCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMaW50ICogcGFyYW1zKTsKICAgdm9pZCAoKlRleEdl
bmQpKEdMZW51bSBjb29yZCwgR0xlbnVtIHBuYW1lLCBHTGRvdWJsZSBwYXJhbSk7CiAgIHZvaWQg
KCpUZXhHZW5kdikoR0xlbnVtIGNvb3JkLCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMZG91YmxlICog
cGFyYW1zKTsKICAgdm9pZCAoKlRleEdlbmYpKEdMZW51bSBjb29yZCwgR0xlbnVtIHBuYW1lLCBH
TGZsb2F0IHBhcmFtKTsKICAgdm9pZCAoKlRleEdlbmZ2KShHTGVudW0gY29vcmQsIEdMZW51bSBw
bmFtZSwgY29uc3QgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpUZXhHZW5pKShHTGVudW0g
Y29vcmQsIEdMZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0pOwogICB2b2lkICgqVGV4R2VuaXYpKEdM
ZW51bSBjb29yZCwgR0xlbnVtIHBuYW1lLCBjb25zdCBHTGludCAqIHBhcmFtcyk7CiAgIHZvaWQg
KCpGZWVkYmFja0J1ZmZlcikoR0xzaXplaSBzaXplLCBHTGVudW0gdHlwZSwgR0xmbG9hdCAqIGJ1
ZmZlcik7CiAgIHZvaWQgKCpTZWxlY3RCdWZmZXIpKEdMc2l6ZWkgc2l6ZSwgR0x1aW50ICogYnVm
ZmVyKTsKICAgR0xpbnQgKCpSZW5kZXJNb2RlKShHTGVudW0gbW9kZSk7CiAgIHZvaWQgKCpJbml0
TmFtZXMpKHZvaWQpOwogICB2b2lkICgqTG9hZE5hbWUpKEdMdWludCBuYW1lKTsKICAgdm9pZCAo
KlBhc3NUaHJvdWdoKShHTGZsb2F0IHRva2VuKTsKICAgdm9pZCAoKlBvcE5hbWUpKHZvaWQpOwog
ICB2b2lkICgqUHVzaE5hbWUpKEdMdWludCBuYW1lKTsKICAgdm9pZCAoKkRyYXdCdWZmZXIpKEdM
ZW51bSBtb2RlKTsKICAgdm9pZCAoKkNsZWFyKShHTGJpdGZpZWxkIG1hc2spOwogICB2b2lkICgq
Q2xlYXJBY2N1bSkoR0xmbG9hdCByZWQsIEdMZmxvYXQgZ3JlZW4sIEdMZmxvYXQgYmx1ZSwgR0xm
bG9hdCBhbHBoYSk7CiAgIHZvaWQgKCpDbGVhckluZGV4KShHTGZsb2F0IGMpOwogICB2b2lkICgq
Q2xlYXJDb2xvcikoR0xjbGFtcGYgcmVkLCBHTGNsYW1wZiBncmVlbiwgR0xjbGFtcGYgYmx1ZSwg
R0xjbGFtcGYgYWxwaGEpOwogICB2b2lkICgqQ2xlYXJTdGVuY2lsKShHTGludCBzKTsKICAgdm9p
ZCAoKkNsZWFyRGVwdGgpKEdMY2xhbXBkIGRlcHRoKTsKICAgdm9pZCAoKlN0ZW5jaWxNYXNrKShH
THVpbnQgbWFzayk7CiAgIHZvaWQgKCpDb2xvck1hc2spKEdMYm9vbGVhbiByZWQsIEdMYm9vbGVh
biBncmVlbiwgR0xib29sZWFuIGJsdWUsIEdMYm9vbGVhbiBhbHBoYSk7CiAgIHZvaWQgKCpEZXB0
aE1hc2spKEdMYm9vbGVhbiBmbGFnKTsKICAgdm9pZCAoKkluZGV4TWFzaykoR0x1aW50IG1hc2sp
OwogICB2b2lkICgqQWNjdW0pKEdMZW51bSBvcCwgR0xmbG9hdCB2YWx1ZSk7CiAgIHZvaWQgKCpE
aXNhYmxlKShHTGVudW0gY2FwKTsKICAgdm9pZCAoKkVuYWJsZSkoR0xlbnVtIGNhcCk7CiAgIHZv
aWQgKCpGaW5pc2gpKHZvaWQpOwogICB2b2lkICgqRmx1c2gpKHZvaWQpOwogICB2b2lkICgqUG9w
QXR0cmliKSh2b2lkKTsKICAgdm9pZCAoKlB1c2hBdHRyaWIpKEdMYml0ZmllbGQgbWFzayk7CiAg
IHZvaWQgKCpNYXAxZCkoR0xlbnVtIHRhcmdldCwgR0xkb3VibGUgdTEsIEdMZG91YmxlIHUyLCBH
TGludCBzdHJpZGUsIEdMaW50IG9yZGVyLCBjb25zdCBHTGRvdWJsZSAqIHBvaW50cyk7CiAgIHZv
aWQgKCpNYXAxZikoR0xlbnVtIHRhcmdldCwgR0xmbG9hdCB1MSwgR0xmbG9hdCB1MiwgR0xpbnQg
c3RyaWRlLCBHTGludCBvcmRlciwgY29uc3QgR0xmbG9hdCAqIHBvaW50cyk7CiAgIHZvaWQgKCpN
YXAyZCkoR0xlbnVtIHRhcmdldCwgR0xkb3VibGUgdTEsIEdMZG91YmxlIHUyLCBHTGludCB1c3Ry
aWRlLCBHTGludCB1b3JkZXIsIEdMZG91YmxlIHYxLCBHTGRvdWJsZSB2MiwgR0xpbnQgdnN0cmlk
ZSwgR0xpbnQgdm9yZGVyLCBjb25zdCBHTGRvdWJsZSAqIHBvaW50cyk7CiAgIHZvaWQgKCpNYXAy
ZikoR0xlbnVtIHRhcmdldCwgR0xmbG9hdCB1MSwgR0xmbG9hdCB1MiwgR0xpbnQgdXN0cmlkZSwg
R0xpbnQgdW9yZGVyLCBHTGZsb2F0IHYxLCBHTGZsb2F0IHYyLCBHTGludCB2c3RyaWRlLCBHTGlu
dCB2b3JkZXIsIGNvbnN0IEdMZmxvYXQgKiBwb2ludHMpOwogICB2b2lkICgqTWFwR3JpZDFkKShH
TGludCB1biwgR0xkb3VibGUgdTEsIEdMZG91YmxlIHUyKTsKICAgdm9pZCAoKk1hcEdyaWQxZiko
R0xpbnQgdW4sIEdMZmxvYXQgdTEsIEdMZmxvYXQgdTIpOwogICB2b2lkICgqTWFwR3JpZDJkKShH
TGludCB1biwgR0xkb3VibGUgdTEsIEdMZG91YmxlIHUyLCBHTGludCB2biwgR0xkb3VibGUgdjEs
IEdMZG91YmxlIHYyKTsKICAgdm9pZCAoKk1hcEdyaWQyZikoR0xpbnQgdW4sIEdMZmxvYXQgdTEs
IEdMZmxvYXQgdTIsIEdMaW50IHZuLCBHTGZsb2F0IHYxLCBHTGZsb2F0IHYyKTsKICAgdm9pZCAo
KkV2YWxDb29yZDFkKShHTGRvdWJsZSB1KTsKICAgdm9pZCAoKkV2YWxDb29yZDFkdikoY29uc3Qg
R0xkb3VibGUgKiB1KTsKICAgdm9pZCAoKkV2YWxDb29yZDFmKShHTGZsb2F0IHUpOwogICB2b2lk
ICgqRXZhbENvb3JkMWZ2KShjb25zdCBHTGZsb2F0ICogdSk7CiAgIHZvaWQgKCpFdmFsQ29vcmQy
ZCkoR0xkb3VibGUgdSwgR0xkb3VibGUgdik7CiAgIHZvaWQgKCpFdmFsQ29vcmQyZHYpKGNvbnN0
IEdMZG91YmxlICogdSk7CiAgIHZvaWQgKCpFdmFsQ29vcmQyZikoR0xmbG9hdCB1LCBHTGZsb2F0
IHYpOwogICB2b2lkICgqRXZhbENvb3JkMmZ2KShjb25zdCBHTGZsb2F0ICogdSk7CiAgIHZvaWQg
KCpFdmFsTWVzaDEpKEdMZW51bSBtb2RlLCBHTGludCBpMSwgR0xpbnQgaTIpOwogICB2b2lkICgq
RXZhbFBvaW50MSkoR0xpbnQgaSk7CiAgIHZvaWQgKCpFdmFsTWVzaDIpKEdMZW51bSBtb2RlLCBH
TGludCBpMSwgR0xpbnQgaTIsIEdMaW50IGoxLCBHTGludCBqMik7CiAgIHZvaWQgKCpFdmFsUG9p
bnQyKShHTGludCBpLCBHTGludCBqKTsKICAgdm9pZCAoKkFscGhhRnVuYykoR0xlbnVtIGZ1bmMs
IEdMY2xhbXBmIHJlZik7CiAgIHZvaWQgKCpCbGVuZEZ1bmMpKEdMZW51bSBzZmFjdG9yLCBHTGVu
dW0gZGZhY3Rvcik7CiAgIHZvaWQgKCpMb2dpY09wKShHTGVudW0gb3Bjb2RlKTsKICAgdm9pZCAo
KlN0ZW5jaWxGdW5jKShHTGVudW0gZnVuYywgR0xpbnQgcmVmLCBHTHVpbnQgbWFzayk7CiAgIHZv
aWQgKCpTdGVuY2lsT3ApKEdMZW51bSBmYWlsLCBHTGVudW0gemZhaWwsIEdMZW51bSB6cGFzcyk7
CiAgIHZvaWQgKCpEZXB0aEZ1bmMpKEdMZW51bSBmdW5jKTsKICAgdm9pZCAoKlBpeGVsWm9vbSko
R0xmbG9hdCB4ZmFjdG9yLCBHTGZsb2F0IHlmYWN0b3IpOwogICB2b2lkICgqUGl4ZWxUcmFuc2Zl
cmYpKEdMZW51bSBwbmFtZSwgR0xmbG9hdCBwYXJhbSk7CiAgIHZvaWQgKCpQaXhlbFRyYW5zZmVy
aSkoR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSk7CiAgIHZvaWQgKCpQaXhlbFN0b3JlZikoR0xl
bnVtIHBuYW1lLCBHTGZsb2F0IHBhcmFtKTsKICAgdm9pZCAoKlBpeGVsU3RvcmVpKShHTGVudW0g
cG5hbWUsIEdMaW50IHBhcmFtKTsKICAgdm9pZCAoKlBpeGVsTWFwZnYpKEdMZW51bSBtYXAsIEdM
aW50IG1hcHNpemUsIGNvbnN0IEdMZmxvYXQgKiB2YWx1ZXMpOwogICB2b2lkICgqUGl4ZWxNYXB1
aXYpKEdMZW51bSBtYXAsIEdMaW50IG1hcHNpemUsIGNvbnN0IEdMdWludCAqIHZhbHVlcyk7CiAg
IHZvaWQgKCpQaXhlbE1hcHVzdikoR0xlbnVtIG1hcCwgR0xpbnQgbWFwc2l6ZSwgY29uc3QgR0x1
c2hvcnQgKiB2YWx1ZXMpOwogICB2b2lkICgqUmVhZEJ1ZmZlcikoR0xlbnVtIG1vZGUpOwogICB2
b2lkICgqQ29weVBpeGVscykoR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXpl
aSBoZWlnaHQsIEdMZW51bSB0eXBlKTsKICAgdm9pZCAoKlJlYWRQaXhlbHMpKEdMaW50IHgsIEdM
aW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVu
dW0gdHlwZSwgR0x2b2lkICogcGl4ZWxzKTsKICAgdm9pZCAoKkRyYXdQaXhlbHMpKEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgY29uc3Qg
R0x2b2lkICogcGl4ZWxzKTsKICAgdm9pZCAoKkdldEJvb2xlYW52KShHTGVudW0gcG5hbWUsIEdM
Ym9vbGVhbiAqIHBhcmFtcyk7CiAgIHZvaWQgKCpHZXRDbGlwUGxhbmUpKEdMZW51bSBwbGFuZSwg
R0xkb3VibGUgKiBlcXVhdGlvbik7CiAgIHZvaWQgKCpHZXREb3VibGV2KShHTGVudW0gcG5hbWUs
IEdMZG91YmxlICogcGFyYW1zKTsKICAgR0xlbnVtICgqR2V0RXJyb3IpKHZvaWQpOwogICB2b2lk
ICgqR2V0RmxvYXR2KShHTGVudW0gcG5hbWUsIEdMZmxvYXQgKiBwYXJhbXMpOwogICB2b2lkICgq
R2V0SW50ZWdlcnYpKEdMZW51bSBwbmFtZSwgR0xpbnQgKiBwYXJhbXMpOwogICB2b2lkICgqR2V0
TGlnaHRmdikoR0xlbnVtIGxpZ2h0LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgKiBwYXJhbXMpOwog
ICB2b2lkICgqR2V0TGlnaHRpdikoR0xlbnVtIGxpZ2h0LCBHTGVudW0gcG5hbWUsIEdMaW50ICog
cGFyYW1zKTsKICAgdm9pZCAoKkdldE1hcGR2KShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcXVlcnks
IEdMZG91YmxlICogdik7CiAgIHZvaWQgKCpHZXRNYXBmdikoR0xlbnVtIHRhcmdldCwgR0xlbnVt
IHF1ZXJ5LCBHTGZsb2F0ICogdik7CiAgIHZvaWQgKCpHZXRNYXBpdikoR0xlbnVtIHRhcmdldCwg
R0xlbnVtIHF1ZXJ5LCBHTGludCAqIHYpOwogICB2b2lkICgqR2V0TWF0ZXJpYWxmdikoR0xlbnVt
IGZhY2UsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpHZXRNYXRl
cmlhbGl2KShHTGVudW0gZmFjZSwgR0xlbnVtIHBuYW1lLCBHTGludCAqIHBhcmFtcyk7CiAgIHZv
aWQgKCpHZXRQaXhlbE1hcGZ2KShHTGVudW0gbWFwLCBHTGZsb2F0ICogdmFsdWVzKTsKICAgdm9p
ZCAoKkdldFBpeGVsTWFwdWl2KShHTGVudW0gbWFwLCBHTHVpbnQgKiB2YWx1ZXMpOwogICB2b2lk
ICgqR2V0UGl4ZWxNYXB1c3YpKEdMZW51bSBtYXAsIEdMdXNob3J0ICogdmFsdWVzKTsKICAgdm9p
ZCAoKkdldFBvbHlnb25TdGlwcGxlKShHTHVieXRlICogbWFzayk7CiAgIGNvbnN0IEdMdWJ5dGUg
KiAoKkdldFN0cmluZykoR0xlbnVtIG5hbWUpOwogICB2b2lkICgqR2V0VGV4RW52ZnYpKEdMZW51
bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpHZXRU
ZXhFbnZpdikoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGludCAqIHBhcmFtcyk7CiAg
IHZvaWQgKCpHZXRUZXhHZW5kdikoR0xlbnVtIGNvb3JkLCBHTGVudW0gcG5hbWUsIEdMZG91Ymxl
ICogcGFyYW1zKTsKICAgdm9pZCAoKkdldFRleEdlbmZ2KShHTGVudW0gY29vcmQsIEdMZW51bSBw
bmFtZSwgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpHZXRUZXhHZW5pdikoR0xlbnVtIGNv
b3JkLCBHTGVudW0gcG5hbWUsIEdMaW50ICogcGFyYW1zKTsKICAgdm9pZCAoKkdldFRleEltYWdl
KShHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUs
IEdMdm9pZCAqIHBpeGVscyk7CiAgIHZvaWQgKCpHZXRUZXhQYXJhbWV0ZXJmdikoR0xlbnVtIHRh
cmdldCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0ICogcGFyYW1zKTsKICAgdm9pZCAoKkdldFRleFBh
cmFtZXRlcml2KShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMaW50ICogcGFyYW1zKTsK
ICAgdm9pZCAoKkdldFRleExldmVsUGFyYW1ldGVyZnYpKEdMZW51bSB0YXJnZXQsIEdMaW50IGxl
dmVsLCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgKiBwYXJhbXMpOwogICB2b2lkICgqR2V0VGV4TGV2
ZWxQYXJhbWV0ZXJpdikoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBwbmFtZSwg
R0xpbnQgKiBwYXJhbXMpOwogICBHTGJvb2xlYW4gKCpJc0VuYWJsZWQpKEdMZW51bSBjYXApOwog
ICBHTGJvb2xlYW4gKCpJc0xpc3QpKEdMdWludCBsaXN0KTsKICAgdm9pZCAoKkRlcHRoUmFuZ2Up
KEdMY2xhbXBkIHpOZWFyLCBHTGNsYW1wZCB6RmFyKTsKICAgdm9pZCAoKkZydXN0dW0pKEdMZG91
YmxlIGxlZnQsIEdMZG91YmxlIHJpZ2h0LCBHTGRvdWJsZSBib3R0b20sIEdMZG91YmxlIHRvcCwg
R0xkb3VibGUgek5lYXIsIEdMZG91YmxlIHpGYXIpOwogICB2b2lkICgqTG9hZElkZW50aXR5KSh2
b2lkKTsKICAgdm9pZCAoKkxvYWRNYXRyaXhmKShjb25zdCBHTGZsb2F0ICogbSk7CiAgIHZvaWQg
KCpMb2FkTWF0cml4ZCkoY29uc3QgR0xkb3VibGUgKiBtKTsKICAgdm9pZCAoKk1hdHJpeE1vZGUp
KEdMZW51bSBtb2RlKTsKICAgdm9pZCAoKk11bHRNYXRyaXhmKShjb25zdCBHTGZsb2F0ICogbSk7
CiAgIHZvaWQgKCpNdWx0TWF0cml4ZCkoY29uc3QgR0xkb3VibGUgKiBtKTsKICAgdm9pZCAoKk9y
dGhvKShHTGRvdWJsZSBsZWZ0LCBHTGRvdWJsZSByaWdodCwgR0xkb3VibGUgYm90dG9tLCBHTGRv
dWJsZSB0b3AsIEdMZG91YmxlIHpOZWFyLCBHTGRvdWJsZSB6RmFyKTsKICAgdm9pZCAoKlBvcE1h
dHJpeCkodm9pZCk7CiAgIHZvaWQgKCpQdXNoTWF0cml4KSh2b2lkKTsKICAgdm9pZCAoKlJvdGF0
ZWQpKEdMZG91YmxlIGFuZ2xlLCBHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRvdWJsZSB6KTsK
ICAgdm9pZCAoKlJvdGF0ZWYpKEdMZmxvYXQgYW5nbGUsIEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBH
TGZsb2F0IHopOwogICB2b2lkICgqU2NhbGVkKShHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRv
dWJsZSB6KTsKICAgdm9pZCAoKlNjYWxlZikoR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQg
eik7CiAgIHZvaWQgKCpUcmFuc2xhdGVkKShHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRvdWJs
ZSB6KTsKICAgdm9pZCAoKlRyYW5zbGF0ZWYpKEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0
IHopOwogICB2b2lkICgqVmlld3BvcnQpKEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgs
IEdMc2l6ZWkgaGVpZ2h0KTsKICAgdm9pZCAoKkFycmF5RWxlbWVudCkoR0xpbnQgaSk7CiAgIHZv
aWQgKCpCaW5kVGV4dHVyZSkoR0xlbnVtIHRhcmdldCwgR0x1aW50IHRleHR1cmUpOwogICB2b2lk
ICgqQ29sb3JQb2ludGVyKShHTGludCBzaXplLCBHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUs
IGNvbnN0IEdMdm9pZCAqIHBvaW50ZXIpOwogICB2b2lkICgqRGlzYWJsZUNsaWVudFN0YXRlKShH
TGVudW0gYXJyYXkpOwogICB2b2lkICgqRHJhd0FycmF5cykoR0xlbnVtIG1vZGUsIEdMaW50IGZp
cnN0LCBHTHNpemVpIGNvdW50KTsKICAgdm9pZCAoKkRyYXdFbGVtZW50cykoR0xlbnVtIG1vZGUs
IEdMc2l6ZWkgY291bnQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQgKiBpbmRpY2VzKTsKICAg
dm9pZCAoKkVkZ2VGbGFnUG9pbnRlcikoR0xzaXplaSBzdHJpZGUsIGNvbnN0IEdMdm9pZCAqIHBv
aW50ZXIpOwogICB2b2lkICgqRW5hYmxlQ2xpZW50U3RhdGUpKEdMZW51bSBhcnJheSk7CiAgIHZv
aWQgKCpJbmRleFBvaW50ZXIpKEdMZW51bSB0eXBlLCBHTHNpemVpIHN0cmlkZSwgY29uc3QgR0x2
b2lkICogcG9pbnRlcik7CiAgIHZvaWQgKCpJbmRleHViKShHTHVieXRlIGMpOwogICB2b2lkICgq
SW5kZXh1YnYpKGNvbnN0IEdMdWJ5dGUgKiBjKTsKICAgdm9pZCAoKkludGVybGVhdmVkQXJyYXlz
KShHTGVudW0gZm9ybWF0LCBHTHNpemVpIHN0cmlkZSwgY29uc3QgR0x2b2lkICogcG9pbnRlcik7
CiAgIHZvaWQgKCpOb3JtYWxQb2ludGVyKShHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUsIGNv
bnN0IEdMdm9pZCAqIHBvaW50ZXIpOwogICB2b2lkICgqUG9seWdvbk9mZnNldCkoR0xmbG9hdCBm
YWN0b3IsIEdMZmxvYXQgdW5pdHMpOwogICB2b2lkICgqVGV4Q29vcmRQb2ludGVyKShHTGludCBz
aXplLCBHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUsIGNvbnN0IEdMdm9pZCAqIHBvaW50ZXIp
OwogICB2b2lkICgqVmVydGV4UG9pbnRlcikoR0xpbnQgc2l6ZSwgR0xlbnVtIHR5cGUsIEdMc2l6
ZWkgc3RyaWRlLCBjb25zdCBHTHZvaWQgKiBwb2ludGVyKTsKICAgR0xib29sZWFuICgqQXJlVGV4
dHVyZXNSZXNpZGVudCkoR0xzaXplaSBuLCBjb25zdCBHTHVpbnQgKiB0ZXh0dXJlcywgR0xib29s
ZWFuICogcmVzaWRlbmNlcyk7CiAgIHZvaWQgKCpDb3B5VGV4SW1hZ2UxRCkoR0xlbnVtIHRhcmdl
dCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xpbnQgeCwgR0xpbnQgeSwg
R0xzaXplaSB3aWR0aCwgR0xpbnQgYm9yZGVyKTsKICAgdm9pZCAoKkNvcHlUZXhJbWFnZTJEKShH
TGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTGludCB4
LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVyKTsK
ICAgdm9pZCAoKkNvcHlUZXhTdWJJbWFnZTFEKShHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwg
R0xpbnQgeG9mZnNldCwgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCk7CiAgIHZvaWQg
KCpDb3B5VGV4U3ViSW1hZ2UyRCkoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhv
ZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdM
c2l6ZWkgaGVpZ2h0KTsKICAgdm9pZCAoKkRlbGV0ZVRleHR1cmVzKShHTHNpemVpIG4sIGNvbnN0
IEdMdWludCAqIHRleHR1cmVzKTsKICAgdm9pZCAoKkdlblRleHR1cmVzKShHTHNpemVpIG4sIEdM
dWludCAqIHRleHR1cmVzKTsKICAgdm9pZCAoKkdldFBvaW50ZXJ2KShHTGVudW0gcG5hbWUsIEdM
dm9pZCAqKiBwYXJhbXMpOwogICBHTGJvb2xlYW4gKCpJc1RleHR1cmUpKEdMdWludCB0ZXh0dXJl
KTsKICAgdm9pZCAoKlByaW9yaXRpemVUZXh0dXJlcykoR0xzaXplaSBuLCBjb25zdCBHTHVpbnQg
KiB0ZXh0dXJlcywgY29uc3QgR0xjbGFtcGYgKiBwcmlvcml0aWVzKTsKICAgdm9pZCAoKlRleFN1
YkltYWdlMUQpKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTHNp
emVpIHdpZHRoLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICogcGl4
ZWxzKTsKICAgdm9pZCAoKlRleFN1YkltYWdlMkQpKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVs
LCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhl
aWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9pZCAqIHBpeGVscyk7
CiAgIHZvaWQgKCpQb3BDbGllbnRBdHRyaWIpKHZvaWQpOwogICB2b2lkICgqUHVzaENsaWVudEF0
dHJpYikoR0xiaXRmaWVsZCBtYXNrKTsKICAgdm9pZCAoKkJsZW5kQ29sb3IpKEdMY2xhbXBmIHJl
ZCwgR0xjbGFtcGYgZ3JlZW4sIEdMY2xhbXBmIGJsdWUsIEdMY2xhbXBmIGFscGhhKTsKICAgdm9p
ZCAoKkJsZW5kRXF1YXRpb24pKEdMZW51bSBtb2RlKTsKICAgdm9pZCAoKkRyYXdSYW5nZUVsZW1l
bnRzKShHTGVudW0gbW9kZSwgR0x1aW50IHN0YXJ0LCBHTHVpbnQgZW5kLCBHTHNpemVpIGNvdW50
LCBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lkICogaW5kaWNlcyk7CiAgIHZvaWQgKCpDb2xvclRh
YmxlKShHTGVudW0gdGFyZ2V0LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgs
IEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQgKiB0YWJsZSk7CiAgIHZv
aWQgKCpDb2xvclRhYmxlUGFyYW1ldGVyZnYpKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwg
Y29uc3QgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpDb2xvclRhYmxlUGFyYW1ldGVyaXYp
KEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgY29uc3QgR0xpbnQgKiBwYXJhbXMpOwogICB2
b2lkICgqQ29weUNvbG9yVGFibGUpKEdMZW51bSB0YXJnZXQsIEdMZW51bSBpbnRlcm5hbGZvcm1h
dCwgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCk7CiAgIHZvaWQgKCpHZXRDb2xvclRh
YmxlKShHTGVudW0gdGFyZ2V0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgR0x2b2lkICog
dGFibGUpOwogICB2b2lkICgqR2V0Q29sb3JUYWJsZVBhcmFtZXRlcmZ2KShHTGVudW0gdGFyZ2V0
LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgKiBwYXJhbXMpOwogICB2b2lkICgqR2V0Q29sb3JUYWJs
ZVBhcmFtZXRlcml2KShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMaW50ICogcGFyYW1z
KTsKICAgdm9pZCAoKkNvbG9yU3ViVGFibGUpKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWkgc3RhcnQs
IEdMc2l6ZWkgY291bnQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQg
KiBkYXRhKTsKICAgdm9pZCAoKkNvcHlDb2xvclN1YlRhYmxlKShHTGVudW0gdGFyZ2V0LCBHTHNp
emVpIHN0YXJ0LCBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoKTsKICAgdm9pZCAoKkNv
bnZvbHV0aW9uRmlsdGVyMUQpKEdMZW51bSB0YXJnZXQsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwg
R0xzaXplaSB3aWR0aCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9pZCAq
IGltYWdlKTsKICAgdm9pZCAoKkNvbnZvbHV0aW9uRmlsdGVyMkQpKEdMZW51bSB0YXJnZXQsIEdM
ZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51
bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQgKiBpbWFnZSk7CiAgIHZvaWQgKCpD
b252b2x1dGlvblBhcmFtZXRlcmYpKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xmbG9h
dCBwYXJhbXMpOwogICB2b2lkICgqQ29udm9sdXRpb25QYXJhbWV0ZXJmdikoR0xlbnVtIHRhcmdl
dCwgR0xlbnVtIHBuYW1lLCBjb25zdCBHTGZsb2F0ICogcGFyYW1zKTsKICAgdm9pZCAoKkNvbnZv
bHV0aW9uUGFyYW1ldGVyaSkoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGludCBwYXJh
bXMpOwogICB2b2lkICgqQ29udm9sdXRpb25QYXJhbWV0ZXJpdikoR0xlbnVtIHRhcmdldCwgR0xl
bnVtIHBuYW1lLCBjb25zdCBHTGludCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpDb3B5Q29udm9sdXRp
b25GaWx0ZXIxRCkoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTGludCB4
LCBHTGludCB5LCBHTHNpemVpIHdpZHRoKTsKICAgdm9pZCAoKkNvcHlDb252b2x1dGlvbkZpbHRl
cjJEKShHTGVudW0gdGFyZ2V0LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMaW50IHgsIEdMaW50
IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0KTsKICAgdm9pZCAoKkdldENvbnZvbHV0
aW9uRmlsdGVyKShHTGVudW0gdGFyZ2V0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgR0x2
b2lkICogaW1hZ2UpOwogICB2b2lkICgqR2V0Q29udm9sdXRpb25QYXJhbWV0ZXJmdikoR0xlbnVt
IHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0ICogcGFyYW1zKTsKICAgdm9pZCAoKkdldENv
bnZvbHV0aW9uUGFyYW1ldGVyaXYpKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xpbnQg
KiBwYXJhbXMpOwogICB2b2lkICgqR2V0U2VwYXJhYmxlRmlsdGVyKShHTGVudW0gdGFyZ2V0LCBH
TGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgR0x2b2lkICogcm93LCBHTHZvaWQgKiBjb2x1bW4s
IEdMdm9pZCAqIHNwYW4pOwogICB2b2lkICgqU2VwYXJhYmxlRmlsdGVyMkQpKEdMZW51bSB0YXJn
ZXQsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQs
IEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQgKiByb3csIGNvbnN0IEdM
dm9pZCAqIGNvbHVtbik7CiAgIHZvaWQgKCpHZXRIaXN0b2dyYW0pKEdMZW51bSB0YXJnZXQsIEdM
Ym9vbGVhbiByZXNldCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEdMdm9pZCAqIHZhbHVl
cyk7CiAgIHZvaWQgKCpHZXRIaXN0b2dyYW1QYXJhbWV0ZXJmdikoR0xlbnVtIHRhcmdldCwgR0xl
bnVtIHBuYW1lLCBHTGZsb2F0ICogcGFyYW1zKTsKICAgdm9pZCAoKkdldEhpc3RvZ3JhbVBhcmFt
ZXRlcml2KShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMaW50ICogcGFyYW1zKTsKICAg
dm9pZCAoKkdldE1pbm1heCkoR0xlbnVtIHRhcmdldCwgR0xib29sZWFuIHJlc2V0LCBHTGVudW0g
Zm9ybWF0LCBHTGVudW0gdHlwZSwgR0x2b2lkICogdmFsdWVzKTsKICAgdm9pZCAoKkdldE1pbm1h
eFBhcmFtZXRlcmZ2KShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgKiBwYXJh
bXMpOwogICB2b2lkICgqR2V0TWlubWF4UGFyYW1ldGVyaXYpKEdMZW51bSB0YXJnZXQsIEdMZW51
bSBwbmFtZSwgR0xpbnQgKiBwYXJhbXMpOwogICB2b2lkICgqSGlzdG9ncmFtKShHTGVudW0gdGFy
Z2V0LCBHTHNpemVpIHdpZHRoLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMYm9vbGVhbiBzaW5r
KTsKICAgdm9pZCAoKk1pbm1heCkoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGludGVybmFsZm9ybWF0
LCBHTGJvb2xlYW4gc2luayk7CiAgIHZvaWQgKCpSZXNldEhpc3RvZ3JhbSkoR0xlbnVtIHRhcmdl
dCk7CiAgIHZvaWQgKCpSZXNldE1pbm1heCkoR0xlbnVtIHRhcmdldCk7CiAgIHZvaWQgKCpUZXhJ
bWFnZTNEKShHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQs
IEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTHNpemVpIGRlcHRoLCBHTGludCBib3Jk
ZXIsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQgKiBwaXhlbHMpOwog
ICB2b2lkICgqVGV4U3ViSW1hZ2UzRCkoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50
IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50IHpvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsIEdM
c2l6ZWkgaGVpZ2h0LCBHTHNpemVpIGRlcHRoLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwg
Y29uc3QgR0x2b2lkICogcGl4ZWxzKTsKICAgdm9pZCAoKkNvcHlUZXhTdWJJbWFnZTNEKShHTGVu
dW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xp
bnQgem9mZnNldCwgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWln
aHQpOwogICB2b2lkICgqQWN0aXZlVGV4dHVyZUFSQikoR0xlbnVtIHRleHR1cmUpOwogICB2b2lk
ICgqQ2xpZW50QWN0aXZlVGV4dHVyZUFSQikoR0xlbnVtIHRleHR1cmUpOwogICB2b2lkICgqTXVs
dGlUZXhDb29yZDFkQVJCKShHTGVudW0gdGFyZ2V0LCBHTGRvdWJsZSBzKTsKICAgdm9pZCAoKk11
bHRpVGV4Q29vcmQxZHZBUkIpKEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMZG91YmxlICogdik7CiAg
IHZvaWQgKCpNdWx0aVRleENvb3JkMWZBUkIpKEdMZW51bSB0YXJnZXQsIEdMZmxvYXQgcyk7CiAg
IHZvaWQgKCpNdWx0aVRleENvb3JkMWZ2QVJCKShHTGVudW0gdGFyZ2V0LCBjb25zdCBHTGZsb2F0
ICogdik7CiAgIHZvaWQgKCpNdWx0aVRleENvb3JkMWlBUkIpKEdMZW51bSB0YXJnZXQsIEdMaW50
IHMpOwogICB2b2lkICgqTXVsdGlUZXhDb29yZDFpdkFSQikoR0xlbnVtIHRhcmdldCwgY29uc3Qg
R0xpbnQgKiB2KTsKICAgdm9pZCAoKk11bHRpVGV4Q29vcmQxc0FSQikoR0xlbnVtIHRhcmdldCwg
R0xzaG9ydCBzKTsKICAgdm9pZCAoKk11bHRpVGV4Q29vcmQxc3ZBUkIpKEdMZW51bSB0YXJnZXQs
IGNvbnN0IEdMc2hvcnQgKiB2KTsKICAgdm9pZCAoKk11bHRpVGV4Q29vcmQyZEFSQikoR0xlbnVt
IHRhcmdldCwgR0xkb3VibGUgcywgR0xkb3VibGUgdCk7CiAgIHZvaWQgKCpNdWx0aVRleENvb3Jk
MmR2QVJCKShHTGVudW0gdGFyZ2V0LCBjb25zdCBHTGRvdWJsZSAqIHYpOwogICB2b2lkICgqTXVs
dGlUZXhDb29yZDJmQVJCKShHTGVudW0gdGFyZ2V0LCBHTGZsb2F0IHMsIEdMZmxvYXQgdCk7CiAg
IHZvaWQgKCpNdWx0aVRleENvb3JkMmZ2QVJCKShHTGVudW0gdGFyZ2V0LCBjb25zdCBHTGZsb2F0
ICogdik7CiAgIHZvaWQgKCpNdWx0aVRleENvb3JkMmlBUkIpKEdMZW51bSB0YXJnZXQsIEdMaW50
IHMsIEdMaW50IHQpOwogICB2b2lkICgqTXVsdGlUZXhDb29yZDJpdkFSQikoR0xlbnVtIHRhcmdl
dCwgY29uc3QgR0xpbnQgKiB2KTsKICAgdm9pZCAoKk11bHRpVGV4Q29vcmQyc0FSQikoR0xlbnVt
IHRhcmdldCwgR0xzaG9ydCBzLCBHTHNob3J0IHQpOwogICB2b2lkICgqTXVsdGlUZXhDb29yZDJz
dkFSQikoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xzaG9ydCAqIHYpOwogICB2b2lkICgqTXVsdGlU
ZXhDb29yZDNkQVJCKShHTGVudW0gdGFyZ2V0LCBHTGRvdWJsZSBzLCBHTGRvdWJsZSB0LCBHTGRv
dWJsZSByKTsKICAgdm9pZCAoKk11bHRpVGV4Q29vcmQzZHZBUkIpKEdMZW51bSB0YXJnZXQsIGNv
bnN0IEdMZG91YmxlICogdik7CiAgIHZvaWQgKCpNdWx0aVRleENvb3JkM2ZBUkIpKEdMZW51bSB0
YXJnZXQsIEdMZmxvYXQgcywgR0xmbG9hdCB0LCBHTGZsb2F0IHIpOwogICB2b2lkICgqTXVsdGlU
ZXhDb29yZDNmdkFSQikoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xmbG9hdCAqIHYpOwogICB2b2lk
ICgqTXVsdGlUZXhDb29yZDNpQVJCKShHTGVudW0gdGFyZ2V0LCBHTGludCBzLCBHTGludCB0LCBH
TGludCByKTsKICAgdm9pZCAoKk11bHRpVGV4Q29vcmQzaXZBUkIpKEdMZW51bSB0YXJnZXQsIGNv
bnN0IEdMaW50ICogdik7CiAgIHZvaWQgKCpNdWx0aVRleENvb3JkM3NBUkIpKEdMZW51bSB0YXJn
ZXQsIEdMc2hvcnQgcywgR0xzaG9ydCB0LCBHTHNob3J0IHIpOwogICB2b2lkICgqTXVsdGlUZXhD
b29yZDNzdkFSQikoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xzaG9ydCAqIHYpOwogICB2b2lkICgq
TXVsdGlUZXhDb29yZDRkQVJCKShHTGVudW0gdGFyZ2V0LCBHTGRvdWJsZSBzLCBHTGRvdWJsZSB0
LCBHTGRvdWJsZSByLCBHTGRvdWJsZSBxKTsKICAgdm9pZCAoKk11bHRpVGV4Q29vcmQ0ZHZBUkIp
KEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMZG91YmxlICogdik7CiAgIHZvaWQgKCpNdWx0aVRleENv
b3JkNGZBUkIpKEdMZW51bSB0YXJnZXQsIEdMZmxvYXQgcywgR0xmbG9hdCB0LCBHTGZsb2F0IHIs
IEdMZmxvYXQgcSk7CiAgIHZvaWQgKCpNdWx0aVRleENvb3JkNGZ2QVJCKShHTGVudW0gdGFyZ2V0
LCBjb25zdCBHTGZsb2F0ICogdik7CiAgIHZvaWQgKCpNdWx0aVRleENvb3JkNGlBUkIpKEdMZW51
bSB0YXJnZXQsIEdMaW50IHMsIEdMaW50IHQsIEdMaW50IHIsIEdMaW50IHEpOwogICB2b2lkICgq
TXVsdGlUZXhDb29yZDRpdkFSQikoR0xlbnVtIHRhcmdldCwgY29uc3QgR0xpbnQgKiB2KTsKICAg
dm9pZCAoKk11bHRpVGV4Q29vcmQ0c0FSQikoR0xlbnVtIHRhcmdldCwgR0xzaG9ydCBzLCBHTHNo
b3J0IHQsIEdMc2hvcnQgciwgR0xzaG9ydCBxKTsKICAgdm9pZCAoKk11bHRpVGV4Q29vcmQ0c3ZB
UkIpKEdMZW51bSB0YXJnZXQsIGNvbnN0IEdMc2hvcnQgKiB2KTsKICAgdm9pZCAoKkxvYWRUcmFu
c3Bvc2VNYXRyaXhmQVJCKShjb25zdCBHTGZsb2F0ICogbSk7CiAgIHZvaWQgKCpMb2FkVHJhbnNw
b3NlTWF0cml4ZEFSQikoY29uc3QgR0xkb3VibGUgKiBtKTsKICAgdm9pZCAoKk11bHRUcmFuc3Bv
c2VNYXRyaXhmQVJCKShjb25zdCBHTGZsb2F0ICogbSk7CiAgIHZvaWQgKCpNdWx0VHJhbnNwb3Nl
TWF0cml4ZEFSQikoY29uc3QgR0xkb3VibGUgKiBtKTsKICAgdm9pZCAoKlNhbXBsZUNvdmVyYWdl
QVJCKShHTGNsYW1wZiB2YWx1ZSwgR0xib29sZWFuIGludmVydCk7CiAgIHZvaWQgKCpfX3VudXNl
ZDQxMykodm9pZCk7CiAgIHZvaWQgKCpQb2x5Z29uT2Zmc2V0RVhUKShHTGZsb2F0IGZhY3Rvciwg
R0xmbG9hdCBiaWFzKTsKICAgdm9pZCAoKkdldFRleEZpbHRlckZ1bmNTR0lTKShHTGVudW0gdGFy
Z2V0LCBHTGVudW0gZmlsdGVyLCBHTGZsb2F0ICogd2VpZ2h0cyk7CiAgIHZvaWQgKCpUZXhGaWx0
ZXJGdW5jU0dJUykoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGZpbHRlciwgR0xzaXplaSBuLCBjb25z
dCBHTGZsb2F0ICogd2VpZ2h0cyk7CiAgIHZvaWQgKCpHZXRIaXN0b2dyYW1FWFQpKEdMZW51bSB0
YXJnZXQsIEdMYm9vbGVhbiByZXNldCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEdMdm9p
ZCAqIHZhbHVlcyk7CiAgIHZvaWQgKCpHZXRIaXN0b2dyYW1QYXJhbWV0ZXJmdkVYVCkoR0xlbnVt
IHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0ICogcGFyYW1zKTsKICAgdm9pZCAoKkdldEhp
c3RvZ3JhbVBhcmFtZXRlcml2RVhUKShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMaW50
ICogcGFyYW1zKTsKICAgdm9pZCAoKkdldE1pbm1heEVYVCkoR0xlbnVtIHRhcmdldCwgR0xib29s
ZWFuIHJlc2V0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgR0x2b2lkICogdmFsdWVzKTsK
ICAgdm9pZCAoKkdldE1pbm1heFBhcmFtZXRlcmZ2RVhUKShHTGVudW0gdGFyZ2V0LCBHTGVudW0g
cG5hbWUsIEdMZmxvYXQgKiBwYXJhbXMpOwogICB2b2lkICgqR2V0TWlubWF4UGFyYW1ldGVyaXZF
WFQpKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xpbnQgKiBwYXJhbXMpOwogICB2b2lk
ICgqR2V0Q29udm9sdXRpb25GaWx0ZXJFWFQpKEdMZW51bSB0YXJnZXQsIEdMZW51bSBmb3JtYXQs
IEdMZW51bSB0eXBlLCBHTHZvaWQgKiBpbWFnZSk7CiAgIHZvaWQgKCpHZXRDb252b2x1dGlvblBh
cmFtZXRlcmZ2RVhUKShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgKiBwYXJh
bXMpOwogICB2b2lkICgqR2V0Q29udm9sdXRpb25QYXJhbWV0ZXJpdkVYVCkoR0xlbnVtIHRhcmdl
dCwgR0xlbnVtIHBuYW1lLCBHTGludCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpHZXRTZXBhcmFibGVG
aWx0ZXJFWFQpKEdMZW51bSB0YXJnZXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBHTHZv
aWQgKiByb3csIEdMdm9pZCAqIGNvbHVtbiwgR0x2b2lkICogc3Bhbik7CiAgIHZvaWQgKCpHZXRD
b2xvclRhYmxlU0dJKShHTGVudW0gdGFyZ2V0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwg
R0x2b2lkICogdGFibGUpOwogICB2b2lkICgqR2V0Q29sb3JUYWJsZVBhcmFtZXRlcmZ2U0dJKShH
TGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgKiBwYXJhbXMpOwogICB2b2lkICgq
R2V0Q29sb3JUYWJsZVBhcmFtZXRlcml2U0dJKShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUs
IEdMaW50ICogcGFyYW1zKTsKICAgdm9pZCAoKlBpeGVsVGV4R2VuU0dJWCkoR0xlbnVtIG1vZGUp
OwogICB2b2lkICgqUGl4ZWxUZXhHZW5QYXJhbWV0ZXJpU0dJUykoR0xlbnVtIHBuYW1lLCBHTGlu
dCBwYXJhbSk7CiAgIHZvaWQgKCpQaXhlbFRleEdlblBhcmFtZXRlcml2U0dJUykoR0xlbnVtIHBu
YW1lLCBjb25zdCBHTGludCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpQaXhlbFRleEdlblBhcmFtZXRl
cmZTR0lTKShHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOwogICB2b2lkICgqUGl4ZWxUZXhH
ZW5QYXJhbWV0ZXJmdlNHSVMpKEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqIHBhcmFtcyk7
CiAgIHZvaWQgKCpHZXRQaXhlbFRleEdlblBhcmFtZXRlcml2U0dJUykoR0xlbnVtIHBuYW1lLCBH
TGludCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpHZXRQaXhlbFRleEdlblBhcmFtZXRlcmZ2U0dJUyko
R0xlbnVtIHBuYW1lLCBHTGZsb2F0ICogcGFyYW1zKTsKICAgdm9pZCAoKlRleEltYWdlNERTR0lT
KShHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNp
emVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xzaXplaSBzaXplNGQs
IEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9pZCAq
IHBpeGVscyk7CiAgIHZvaWQgKCpUZXhTdWJJbWFnZTREU0dJUykoR0xlbnVtIHRhcmdldCwgR0xp
bnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50IHpvZmZzZXQsIEdM
aW50IHdvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTHNpemVpIGRlcHRo
LCBHTHNpemVpIHNpemU0ZCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGNvbnN0IEdMdm9p
ZCAqIHBpeGVscyk7CiAgIEdMYm9vbGVhbiAoKkFyZVRleHR1cmVzUmVzaWRlbnRFWFQpKEdMc2l6
ZWkgbiwgY29uc3QgR0x1aW50ICogdGV4dHVyZXMsIEdMYm9vbGVhbiAqIHJlc2lkZW5jZXMpOwog
ICB2b2lkICgqR2VuVGV4dHVyZXNFWFQpKEdMc2l6ZWkgbiwgR0x1aW50ICogdGV4dHVyZXMpOwog
ICBHTGJvb2xlYW4gKCpJc1RleHR1cmVFWFQpKEdMdWludCB0ZXh0dXJlKTsKICAgdm9pZCAoKkRl
dGFpbFRleEZ1bmNTR0lTKShHTGVudW0gdGFyZ2V0LCBHTHNpemVpIG4sIGNvbnN0IEdMZmxvYXQg
KiBwb2ludHMpOwogICB2b2lkICgqR2V0RGV0YWlsVGV4RnVuY1NHSVMpKEdMZW51bSB0YXJnZXQs
IEdMZmxvYXQgKiBwb2ludHMpOwogICB2b2lkICgqU2hhcnBlblRleEZ1bmNTR0lTKShHTGVudW0g
dGFyZ2V0LCBHTHNpemVpIG4sIGNvbnN0IEdMZmxvYXQgKiBwb2ludHMpOwogICB2b2lkICgqR2V0
U2hhcnBlblRleEZ1bmNTR0lTKShHTGVudW0gdGFyZ2V0LCBHTGZsb2F0ICogcG9pbnRzKTsKICAg
dm9pZCAoKlNhbXBsZU1hc2tTR0lTKShHTGNsYW1wZiB2YWx1ZSwgR0xib29sZWFuIGludmVydCk7
CiAgIHZvaWQgKCpTYW1wbGVQYXR0ZXJuU0dJUykoR0xlbnVtIHBhdHRlcm4pOwogICB2b2lkICgq
Q29sb3JQb2ludGVyRVhUKShHTGludCBzaXplLCBHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUs
IEdMc2l6ZWkgY291bnQsIGNvbnN0IEdMdm9pZCAqIHBvaW50ZXIpOwogICB2b2lkICgqRWRnZUZs
YWdQb2ludGVyRVhUKShHTHNpemVpIHN0cmlkZSwgR0xzaXplaSBjb3VudCwgY29uc3QgR0xib29s
ZWFuICogcG9pbnRlcik7CiAgIHZvaWQgKCpJbmRleFBvaW50ZXJFWFQpKEdMZW51bSB0eXBlLCBH
THNpemVpIHN0cmlkZSwgR0xzaXplaSBjb3VudCwgY29uc3QgR0x2b2lkICogcG9pbnRlcik7CiAg
IHZvaWQgKCpOb3JtYWxQb2ludGVyRVhUKShHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUsIEdM
c2l6ZWkgY291bnQsIGNvbnN0IEdMdm9pZCAqIHBvaW50ZXIpOwogICB2b2lkICgqVGV4Q29vcmRQ
b2ludGVyRVhUKShHTGludCBzaXplLCBHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUsIEdMc2l6
ZWkgY291bnQsIGNvbnN0IEdMdm9pZCAqIHBvaW50ZXIpOwogICB2b2lkICgqVmVydGV4UG9pbnRl
ckVYVCkoR0xpbnQgc2l6ZSwgR0xlbnVtIHR5cGUsIEdMc2l6ZWkgc3RyaWRlLCBHTHNpemVpIGNv
dW50LCBjb25zdCBHTHZvaWQgKiBwb2ludGVyKTsKICAgdm9pZCAoKlNwcml0ZVBhcmFtZXRlcmZT
R0lYKShHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOwogICB2b2lkICgqU3ByaXRlUGFyYW1l
dGVyZnZTR0lYKShHTGVudW0gcG5hbWUsIGNvbnN0IEdMZmxvYXQgKiBwYXJhbXMpOwogICB2b2lk
ICgqU3ByaXRlUGFyYW1ldGVyaVNHSVgpKEdMZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0pOwogICB2
b2lkICgqU3ByaXRlUGFyYW1ldGVyaXZTR0lYKShHTGVudW0gcG5hbWUsIGNvbnN0IEdMaW50ICog
cGFyYW1zKTsKICAgdm9pZCAoKlBvaW50UGFyYW1ldGVyZkVYVCkoR0xlbnVtIHBuYW1lLCBHTGZs
b2F0IHBhcmFtKTsKICAgdm9pZCAoKlBvaW50UGFyYW1ldGVyZnZFWFQpKEdMZW51bSBwbmFtZSwg
Y29uc3QgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIEdMaW50ICgqR2V0SW5zdHJ1bWVudHNTR0lYKSh2
b2lkKTsKICAgdm9pZCAoKkluc3RydW1lbnRzQnVmZmVyU0dJWCkoR0xzaXplaSBzaXplLCBHTGlu
dCAqIGJ1ZmZlcik7CiAgIEdMaW50ICgqUG9sbEluc3RydW1lbnRzU0dJWCkoR0xpbnQgKiBtYXJr
ZXJfcCk7CiAgIHZvaWQgKCpSZWFkSW5zdHJ1bWVudHNTR0lYKShHTGludCBtYXJrZXIpOwogICB2
b2lkICgqU3RhcnRJbnN0cnVtZW50c1NHSVgpKHZvaWQpOwogICB2b2lkICgqU3RvcEluc3RydW1l
bnRzU0dJWCkoR0xpbnQgbWFya2VyKTsKICAgdm9pZCAoKkZyYW1lWm9vbVNHSVgpKEdMaW50IGZh
Y3Rvcik7CiAgIHZvaWQgKCpUYWdTYW1wbGVCdWZmZXJTR0lYKSh2b2lkKTsKICAgdm9pZCAoKlJl
ZmVyZW5jZVBsYW5lU0dJWCkoY29uc3QgR0xkb3VibGUgKiBlcXVhdGlvbik7CiAgIHZvaWQgKCpG
bHVzaFJhc3RlclNHSVgpKHZvaWQpOwogICB2b2lkICgqR2V0TGlzdFBhcmFtZXRlcmZ2U0dJWCko
R0x1aW50IGxpc3QsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpH
ZXRMaXN0UGFyYW1ldGVyaXZTR0lYKShHTHVpbnQgbGlzdCwgR0xlbnVtIHBuYW1lLCBHTGludCAq
IHBhcmFtcyk7CiAgIHZvaWQgKCpMaXN0UGFyYW1ldGVyZlNHSVgpKEdMdWludCBsaXN0LCBHTGVu
dW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOwogICB2b2lkICgqTGlzdFBhcmFtZXRlcmZ2U0dJWCko
R0x1aW50IGxpc3QsIEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZv
aWQgKCpMaXN0UGFyYW1ldGVyaVNHSVgpKEdMdWludCBsaXN0LCBHTGVudW0gcG5hbWUsIEdMaW50
IHBhcmFtKTsKICAgdm9pZCAoKkxpc3RQYXJhbWV0ZXJpdlNHSVgpKEdMdWludCBsaXN0LCBHTGVu
dW0gcG5hbWUsIGNvbnN0IEdMaW50ICogcGFyYW1zKTsKICAgdm9pZCAoKkZyYWdtZW50Q29sb3JN
YXRlcmlhbFNHSVgpKEdMZW51bSBmYWNlLCBHTGVudW0gbW9kZSk7CiAgIHZvaWQgKCpGcmFnbWVu
dExpZ2h0ZlNHSVgpKEdMZW51bSBsaWdodCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0IHBhcmFtKTsK
ICAgdm9pZCAoKkZyYWdtZW50TGlnaHRmdlNHSVgpKEdMZW51bSBsaWdodCwgR0xlbnVtIHBuYW1l
LCBjb25zdCBHTGZsb2F0ICogcGFyYW1zKTsKICAgdm9pZCAoKkZyYWdtZW50TGlnaHRpU0dJWCko
R0xlbnVtIGxpZ2h0LCBHTGVudW0gcG5hbWUsIEdMaW50IHBhcmFtKTsKICAgdm9pZCAoKkZyYWdt
ZW50TGlnaHRpdlNHSVgpKEdMZW51bSBsaWdodCwgR0xlbnVtIHBuYW1lLCBjb25zdCBHTGludCAq
IHBhcmFtcyk7CiAgIHZvaWQgKCpGcmFnbWVudExpZ2h0TW9kZWxmU0dJWCkoR0xlbnVtIHBuYW1l
LCBHTGZsb2F0IHBhcmFtKTsKICAgdm9pZCAoKkZyYWdtZW50TGlnaHRNb2RlbGZ2U0dJWCkoR0xl
bnVtIHBuYW1lLCBjb25zdCBHTGZsb2F0ICogcGFyYW1zKTsKICAgdm9pZCAoKkZyYWdtZW50TGln
aHRNb2RlbGlTR0lYKShHTGVudW0gcG5hbWUsIEdMaW50IHBhcmFtKTsKICAgdm9pZCAoKkZyYWdt
ZW50TGlnaHRNb2RlbGl2U0dJWCkoR0xlbnVtIHBuYW1lLCBjb25zdCBHTGludCAqIHBhcmFtcyk7
CiAgIHZvaWQgKCpGcmFnbWVudE1hdGVyaWFsZlNHSVgpKEdMZW51bSBmYWNlLCBHTGVudW0gcG5h
bWUsIEdMZmxvYXQgcGFyYW0pOwogICB2b2lkICgqRnJhZ21lbnRNYXRlcmlhbGZ2U0dJWCkoR0xl
bnVtIGZhY2UsIEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZvaWQg
KCpGcmFnbWVudE1hdGVyaWFsaVNHSVgpKEdMZW51bSBmYWNlLCBHTGVudW0gcG5hbWUsIEdMaW50
IHBhcmFtKTsKICAgdm9pZCAoKkZyYWdtZW50TWF0ZXJpYWxpdlNHSVgpKEdMZW51bSBmYWNlLCBH
TGVudW0gcG5hbWUsIGNvbnN0IEdMaW50ICogcGFyYW1zKTsKICAgdm9pZCAoKkdldEZyYWdtZW50
TGlnaHRmdlNHSVgpKEdMZW51bSBsaWdodCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0ICogcGFyYW1z
KTsKICAgdm9pZCAoKkdldEZyYWdtZW50TGlnaHRpdlNHSVgpKEdMZW51bSBsaWdodCwgR0xlbnVt
IHBuYW1lLCBHTGludCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpHZXRGcmFnbWVudE1hdGVyaWFsZnZT
R0lYKShHTGVudW0gZmFjZSwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0ICogcGFyYW1zKTsKICAgdm9p
ZCAoKkdldEZyYWdtZW50TWF0ZXJpYWxpdlNHSVgpKEdMZW51bSBmYWNlLCBHTGVudW0gcG5hbWUs
IEdMaW50ICogcGFyYW1zKTsKICAgdm9pZCAoKkxpZ2h0RW52aVNHSVgpKEdMZW51bSBwbmFtZSwg
R0xpbnQgcGFyYW0pOwogICB2b2lkICgqVmVydGV4V2VpZ2h0ZkVYVCkoR0xmbG9hdCB3ZWlnaHQp
OwogICB2b2lkICgqVmVydGV4V2VpZ2h0ZnZFWFQpKGNvbnN0IEdMZmxvYXQgKiB3ZWlnaHQpOwog
ICB2b2lkICgqVmVydGV4V2VpZ2h0UG9pbnRlckVYVCkoR0xzaXplaSBzaXplLCBHTGVudW0gdHlw
ZSwgR0xzaXplaSBzdHJpZGUsIGNvbnN0IEdMdm9pZCAqIHBvaW50ZXIpOwogICB2b2lkICgqRmx1
c2hWZXJ0ZXhBcnJheVJhbmdlTlYpKHZvaWQpOwogICB2b2lkICgqVmVydGV4QXJyYXlSYW5nZU5W
KShHTHNpemVpIGxlbmd0aCwgY29uc3QgR0x2b2lkICogcG9pbnRlcik7CiAgIHZvaWQgKCpDb21i
aW5lclBhcmFtZXRlcmZ2TlYpKEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqIHBhcmFtcyk7
CiAgIHZvaWQgKCpDb21iaW5lclBhcmFtZXRlcmZOVikoR0xlbnVtIHBuYW1lLCBHTGZsb2F0IHBh
cmFtKTsKICAgdm9pZCAoKkNvbWJpbmVyUGFyYW1ldGVyaXZOVikoR0xlbnVtIHBuYW1lLCBjb25z
dCBHTGludCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpDb21iaW5lclBhcmFtZXRlcmlOVikoR0xlbnVt
IHBuYW1lLCBHTGludCBwYXJhbSk7CiAgIHZvaWQgKCpDb21iaW5lcklucHV0TlYpKEdMZW51bSBz
dGFnZSwgR0xlbnVtIHBvcnRpb24sIEdMZW51bSB2YXJpYWJsZSwgR0xlbnVtIGlucHV0LCBHTGVu
dW0gbWFwcGluZywgR0xlbnVtIGNvbXBvbmVudFVzYWdlKTsKICAgdm9pZCAoKkNvbWJpbmVyT3V0
cHV0TlYpKEdMZW51bSBzdGFnZSwgR0xlbnVtIHBvcnRpb24sIEdMZW51bSBhYk91dHB1dCwgR0xl
bnVtIGNkT3V0cHV0LCBHTGVudW0gc3VtT3V0cHV0LCBHTGVudW0gc2NhbGUsIEdMZW51bSBiaWFz
LCBHTGJvb2xlYW4gYWJEb3RQcm9kdWN0LCBHTGJvb2xlYW4gY2REb3RQcm9kdWN0LCBHTGJvb2xl
YW4gbXV4U3VtKTsKICAgdm9pZCAoKkZpbmFsQ29tYmluZXJJbnB1dE5WKShHTGVudW0gdmFyaWFi
bGUsIEdMZW51bSBpbnB1dCwgR0xlbnVtIG1hcHBpbmcsIEdMZW51bSBjb21wb25lbnRVc2FnZSk7
CiAgIHZvaWQgKCpHZXRDb21iaW5lcklucHV0UGFyYW1ldGVyZnZOVikoR0xlbnVtIHN0YWdlLCBH
TGVudW0gcG9ydGlvbiwgR0xlbnVtIHZhcmlhYmxlLCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgKiBw
YXJhbXMpOwogICB2b2lkICgqR2V0Q29tYmluZXJJbnB1dFBhcmFtZXRlcml2TlYpKEdMZW51bSBz
dGFnZSwgR0xlbnVtIHBvcnRpb24sIEdMZW51bSB2YXJpYWJsZSwgR0xlbnVtIHBuYW1lLCBHTGlu
dCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpHZXRDb21iaW5lck91dHB1dFBhcmFtZXRlcmZ2TlYpKEdM
ZW51bSBzdGFnZSwgR0xlbnVtIHBvcnRpb24sIEdMZW51bSBwbmFtZSwgR0xmbG9hdCAqIHBhcmFt
cyk7CiAgIHZvaWQgKCpHZXRDb21iaW5lck91dHB1dFBhcmFtZXRlcml2TlYpKEdMZW51bSBzdGFn
ZSwgR0xlbnVtIHBvcnRpb24sIEdMZW51bSBwbmFtZSwgR0xpbnQgKiBwYXJhbXMpOwogICB2b2lk
ICgqR2V0RmluYWxDb21iaW5lcklucHV0UGFyYW1ldGVyZnZOVikoR0xlbnVtIHZhcmlhYmxlLCBH
TGVudW0gcG5hbWUsIEdMZmxvYXQgKiBwYXJhbXMpOwogICB2b2lkICgqR2V0RmluYWxDb21iaW5l
cklucHV0UGFyYW1ldGVyaXZOVikoR0xlbnVtIHZhcmlhYmxlLCBHTGVudW0gcG5hbWUsIEdMaW50
ICogcGFyYW1zKTsKICAgdm9pZCAoKlJlc2l6ZUJ1ZmZlcnNNRVNBKSh2b2lkKTsKICAgdm9pZCAo
KldpbmRvd1BvczJkTUVTQSkoR0xkb3VibGUgeCwgR0xkb3VibGUgeSk7CiAgIHZvaWQgKCpXaW5k
b3dQb3MyZHZNRVNBKShjb25zdCBHTGRvdWJsZSAqIHYpOwogICB2b2lkICgqV2luZG93UG9zMmZN
RVNBKShHTGZsb2F0IHgsIEdMZmxvYXQgeSk7CiAgIHZvaWQgKCpXaW5kb3dQb3MyZnZNRVNBKShj
b25zdCBHTGZsb2F0ICogdik7CiAgIHZvaWQgKCpXaW5kb3dQb3MyaU1FU0EpKEdMaW50IHgsIEdM
aW50IHkpOwogICB2b2lkICgqV2luZG93UG9zMml2TUVTQSkoY29uc3QgR0xpbnQgKiB2KTsKICAg
dm9pZCAoKldpbmRvd1BvczJzTUVTQSkoR0xzaG9ydCB4LCBHTHNob3J0IHkpOwogICB2b2lkICgq
V2luZG93UG9zMnN2TUVTQSkoY29uc3QgR0xzaG9ydCAqIHYpOwogICB2b2lkICgqV2luZG93UG9z
M2RNRVNBKShHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRvdWJsZSB6KTsKICAgdm9pZCAoKldp
bmRvd1BvczNkdk1FU0EpKGNvbnN0IEdMZG91YmxlICogdik7CiAgIHZvaWQgKCpXaW5kb3dQb3Mz
Zk1FU0EpKEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0IHopOwogICB2b2lkICgqV2luZG93
UG9zM2Z2TUVTQSkoY29uc3QgR0xmbG9hdCAqIHYpOwogICB2b2lkICgqV2luZG93UG9zM2lNRVNB
KShHTGludCB4LCBHTGludCB5LCBHTGludCB6KTsKICAgdm9pZCAoKldpbmRvd1BvczNpdk1FU0Ep
KGNvbnN0IEdMaW50ICogdik7CiAgIHZvaWQgKCpXaW5kb3dQb3Mzc01FU0EpKEdMc2hvcnQgeCwg
R0xzaG9ydCB5LCBHTHNob3J0IHopOwogICB2b2lkICgqV2luZG93UG9zM3N2TUVTQSkoY29uc3Qg
R0xzaG9ydCAqIHYpOwogICB2b2lkICgqV2luZG93UG9zNGRNRVNBKShHTGRvdWJsZSB4LCBHTGRv
dWJsZSB5LCBHTGRvdWJsZSB6LCBHTGRvdWJsZSB3KTsKICAgdm9pZCAoKldpbmRvd1BvczRkdk1F
U0EpKGNvbnN0IEdMZG91YmxlICogdik7CiAgIHZvaWQgKCpXaW5kb3dQb3M0Zk1FU0EpKEdMZmxv
YXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0IHosIEdMZmxvYXQgdyk7CiAgIHZvaWQgKCpXaW5kb3dQ
b3M0ZnZNRVNBKShjb25zdCBHTGZsb2F0ICogdik7CiAgIHZvaWQgKCpXaW5kb3dQb3M0aU1FU0Ep
KEdMaW50IHgsIEdMaW50IHksIEdMaW50IHosIEdMaW50IHcpOwogICB2b2lkICgqV2luZG93UG9z
NGl2TUVTQSkoY29uc3QgR0xpbnQgKiB2KTsKICAgdm9pZCAoKldpbmRvd1BvczRzTUVTQSkoR0xz
aG9ydCB4LCBHTHNob3J0IHksIEdMc2hvcnQgeiwgR0xzaG9ydCB3KTsKICAgdm9pZCAoKldpbmRv
d1BvczRzdk1FU0EpKGNvbnN0IEdMc2hvcnQgKiB2KTsKICAgdm9pZCAoKkJsZW5kRnVuY1NlcGFy
YXRlRVhUKShHTGVudW0gc2ZhY3RvclJHQiwgR0xlbnVtIGRmYWN0b3JSR0IsIEdMZW51bSBzZmFj
dG9yQWxwaGEsIEdMZW51bSBkZmFjdG9yQWxwaGEpOwogICB2b2lkICgqSW5kZXhNYXRlcmlhbEVY
VCkoR0xlbnVtIGZhY2UsIEdMZW51bSBtb2RlKTsKICAgdm9pZCAoKkluZGV4RnVuY0VYVCkoR0xl
bnVtIGZ1bmMsIEdMY2xhbXBmIHJlZik7CiAgIHZvaWQgKCpMb2NrQXJyYXlzRVhUKShHTGludCBm
aXJzdCwgR0xzaXplaSBjb3VudCk7CiAgIHZvaWQgKCpVbmxvY2tBcnJheXNFWFQpKHZvaWQpOwog
ICB2b2lkICgqQ3VsbFBhcmFtZXRlcmR2RVhUKShHTGVudW0gcG5hbWUsIEdMZG91YmxlICogcGFy
YW1zKTsKICAgdm9pZCAoKkN1bGxQYXJhbWV0ZXJmdkVYVCkoR0xlbnVtIHBuYW1lLCBHTGZsb2F0
ICogcGFyYW1zKTsKICAgdm9pZCAoKkhpbnRQR0kpKEdMZW51bSB0YXJnZXQsIEdMaW50IG1vZGUp
OwogICB2b2lkICgqRm9nQ29vcmRmRVhUKShHTGZsb2F0IGNvb3JkKTsKICAgdm9pZCAoKkZvZ0Nv
b3JkZnZFWFQpKGNvbnN0IEdMZmxvYXQgKiBjb29yZCk7CiAgIHZvaWQgKCpGb2dDb29yZGRFWFQp
KEdMZG91YmxlIGNvb3JkKTsKICAgdm9pZCAoKkZvZ0Nvb3JkZHZFWFQpKGNvbnN0IEdMZG91Ymxl
ICogY29vcmQpOwogICB2b2lkICgqRm9nQ29vcmRQb2ludGVyRVhUKShHTGVudW0gdHlwZSwgR0xz
aXplaSBzdHJpZGUsIGNvbnN0IEdMdm9pZCAqIHBvaW50ZXIpOwogICB2b2lkICgqR2V0Q29sb3JU
YWJsZUVYVCkoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEdMdm9p
ZCAqIGRhdGEpOwogICB2b2lkICgqR2V0Q29sb3JUYWJsZVBhcmFtZXRlcml2RVhUKShHTGVudW0g
dGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMaW50ICogcGFyYW1zKTsKICAgdm9pZCAoKkdldENvbG9y
VGFibGVQYXJhbWV0ZXJmdkVYVCkoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGZsb2F0
ICogcGFyYW1zKTsKICAgdm9pZCAoKlRidWZmZXJNYXNrM0RGWCkoR0x1aW50IG1hc2spOwogICB2
b2lkICgqQ29tcHJlc3NlZFRleEltYWdlM0RBUkIpKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVs
LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBH
THNpemVpIGRlcHRoLCBHTGludCBib3JkZXIsIEdMc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCBHTHZv
aWQgKiBkYXRhKTsKICAgdm9pZCAoKkNvbXByZXNzZWRUZXhJbWFnZTJEQVJCKShHTGVudW0gdGFy
Z2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBH
THNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVyLCBHTHNpemVpIGltYWdlU2l6ZSwgY29uc3QgR0x2
b2lkICogZGF0YSk7CiAgIHZvaWQgKCpDb21wcmVzc2VkVGV4SW1hZ2UxREFSQikoR0xlbnVtIHRh
cmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwg
R0xpbnQgYm9yZGVyLCBHTHNpemVpIGltYWdlU2l6ZSwgY29uc3QgR0x2b2lkICogZGF0YSk7CiAg
IHZvaWQgKCpDb21wcmVzc2VkVGV4U3ViSW1hZ2UzREFSQikoR0xlbnVtIHRhcmdldCwgR0xpbnQg
bGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50IHpvZmZzZXQsIEdMc2l6
ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTHNpemVpIGRlcHRoLCBHTGVudW0gZm9ybWF0LCBH
THNpemVpIGltYWdlU2l6ZSwgY29uc3QgR0x2b2lkICogZGF0YSk7CiAgIHZvaWQgKCpDb21wcmVz
c2VkVGV4U3ViSW1hZ2UyREFSQikoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhv
ZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVu
dW0gZm9ybWF0LCBHTHNpemVpIGltYWdlU2l6ZSwgY29uc3QgR0x2b2lkICogZGF0YSk7CiAgIHZv
aWQgKCpDb21wcmVzc2VkVGV4U3ViSW1hZ2UxREFSQikoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2
ZWwsIEdMaW50IHhvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsIEdMZW51bSBmb3JtYXQsIEdMc2l6ZWkg
aW1hZ2VTaXplLCBjb25zdCBHTHZvaWQgKiBkYXRhKTsKICAgdm9pZCAoKkdldENvbXByZXNzZWRU
ZXhJbWFnZUFSQikoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMdm9pZCAqIGltZyk7CiAg
IHZvaWQgKCpTZWNvbmRhcnlDb2xvcjNiRVhUKShHTGJ5dGUgcmVkLCBHTGJ5dGUgZ3JlZW4sIEdM
Ynl0ZSBibHVlKTsKICAgdm9pZCAoKlNlY29uZGFyeUNvbG9yM2J2RVhUKShjb25zdCBHTGJ5dGUg
KiB2KTsKICAgdm9pZCAoKlNlY29uZGFyeUNvbG9yM2RFWFQpKEdMZG91YmxlIHJlZCwgR0xkb3Vi
bGUgZ3JlZW4sIEdMZG91YmxlIGJsdWUpOwogICB2b2lkICgqU2Vjb25kYXJ5Q29sb3IzZHZFWFQp
KGNvbnN0IEdMZG91YmxlICogdik7CiAgIHZvaWQgKCpTZWNvbmRhcnlDb2xvcjNmRVhUKShHTGZs
b2F0IHJlZCwgR0xmbG9hdCBncmVlbiwgR0xmbG9hdCBibHVlKTsKICAgdm9pZCAoKlNlY29uZGFy
eUNvbG9yM2Z2RVhUKShjb25zdCBHTGZsb2F0ICogdik7CiAgIHZvaWQgKCpTZWNvbmRhcnlDb2xv
cjNpRVhUKShHTGludCByZWQsIEdMaW50IGdyZWVuLCBHTGludCBibHVlKTsKICAgdm9pZCAoKlNl
Y29uZGFyeUNvbG9yM2l2RVhUKShjb25zdCBHTGludCAqIHYpOwogICB2b2lkICgqU2Vjb25kYXJ5
Q29sb3Izc0VYVCkoR0xzaG9ydCByZWQsIEdMc2hvcnQgZ3JlZW4sIEdMc2hvcnQgYmx1ZSk7CiAg
IHZvaWQgKCpTZWNvbmRhcnlDb2xvcjNzdkVYVCkoY29uc3QgR0xzaG9ydCAqIHYpOwogICB2b2lk
ICgqU2Vjb25kYXJ5Q29sb3IzdWJFWFQpKEdMdWJ5dGUgcmVkLCBHTHVieXRlIGdyZWVuLCBHTHVi
eXRlIGJsdWUpOwogICB2b2lkICgqU2Vjb25kYXJ5Q29sb3IzdWJ2RVhUKShjb25zdCBHTHVieXRl
ICogdik7CiAgIHZvaWQgKCpTZWNvbmRhcnlDb2xvcjN1aUVYVCkoR0x1aW50IHJlZCwgR0x1aW50
IGdyZWVuLCBHTHVpbnQgYmx1ZSk7CiAgIHZvaWQgKCpTZWNvbmRhcnlDb2xvcjN1aXZFWFQpKGNv
bnN0IEdMdWludCAqIHYpOwogICB2b2lkICgqU2Vjb25kYXJ5Q29sb3IzdXNFWFQpKEdMdXNob3J0
IHJlZCwgR0x1c2hvcnQgZ3JlZW4sIEdMdXNob3J0IGJsdWUpOwogICB2b2lkICgqU2Vjb25kYXJ5
Q29sb3IzdXN2RVhUKShjb25zdCBHTHVzaG9ydCAqIHYpOwogICB2b2lkICgqU2Vjb25kYXJ5Q29s
b3JQb2ludGVyRVhUKShHTGludCBzaXplLCBHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUsIGNv
bnN0IEdMdm9pZCAqIHBvaW50ZXIpOwogICBHTGJvb2xlYW4gKCpBcmVQcm9ncmFtc1Jlc2lkZW50
TlYpKEdMc2l6ZWkgbiwgY29uc3QgR0x1aW50ICogaWRzLCBHTGJvb2xlYW4gKiByZXNpZGVuY2Vz
KTsKICAgdm9pZCAoKkJpbmRQcm9ncmFtTlYpKEdMZW51bSB0YXJnZXQsIEdMdWludCBpZCk7CiAg
IHZvaWQgKCpEZWxldGVQcm9ncmFtc05WKShHTHNpemVpIG4sIGNvbnN0IEdMdWludCAqIGlkcyk7
CiAgIHZvaWQgKCpFeGVjdXRlUHJvZ3JhbU5WKShHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaWQsIGNv
bnN0IEdMZmxvYXQgKiBwYXJhbXMpOwogICB2b2lkICgqR2VuUHJvZ3JhbXNOVikoR0xzaXplaSBu
LCBHTHVpbnQgKiBpZHMpOwogICB2b2lkICgqR2V0UHJvZ3JhbVBhcmFtZXRlcmR2TlYpKEdMZW51
bSB0YXJnZXQsIEdMdWludCBpbmRleCwgR0xlbnVtIHBuYW1lLCBHTGRvdWJsZSAqIHBhcmFtcyk7
CiAgIHZvaWQgKCpHZXRQcm9ncmFtUGFyYW1ldGVyZnZOVikoR0xlbnVtIHRhcmdldCwgR0x1aW50
IGluZGV4LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgKiBwYXJhbXMpOwogICB2b2lkICgqR2V0UHJv
Z3JhbWl2TlYpKEdMdWludCBpZCwgR0xlbnVtIHBuYW1lLCBHTGludCAqIHBhcmFtcyk7CiAgIHZv
aWQgKCpHZXRQcm9ncmFtU3RyaW5nTlYpKEdMdWludCBpZCwgR0xlbnVtIHBuYW1lLCBHTHVieXRl
ICogcHJvZ3JhbSk7CiAgIHZvaWQgKCpHZXRUcmFja01hdHJpeGl2TlYpKEdMZW51bSB0YXJnZXQs
IEdMdWludCBhZGRyZXNzLCBHTGVudW0gcG5hbWUsIEdMaW50ICogcGFyYW1zKTsKICAgdm9pZCAo
KkdldFZlcnRleEF0dHJpYmR2TlYpKEdMdWludCBpbmRleCwgR0xlbnVtIHBuYW1lLCBHTGRvdWJs
ZSAqIHBhcmFtcyk7CiAgIHZvaWQgKCpHZXRWZXJ0ZXhBdHRyaWJmdk5WKShHTHVpbnQgaW5kZXgs
IEdMZW51bSBwbmFtZSwgR0xmbG9hdCAqIHBhcmFtcyk7CiAgIHZvaWQgKCpHZXRWZXJ0ZXhBdHRy
aWJpdk5WKShHTHVpbnQgaW5kZXgsIEdMZW51bSBwbmFtZSwgR0xpbnQgKiBwYXJhbXMpOwogICB2
b2lkICgqR2V0VmVydGV4QXR0cmliUG9pbnRlcnZOVikoR0x1aW50IGluZGV4LCBHTGVudW0gcG5h
bWUsIEdMdm9pZCAqKiBwb2ludGVyKTsKICAgR0xib29sZWFuICgqSXNQcm9ncmFtTlYpKEdMdWlu
dCBpZCk7CiAgIHZvaWQgKCpMb2FkUHJvZ3JhbU5WKShHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaWQs
IEdMc2l6ZWkgbGVuLCBjb25zdCBHTHVieXRlICogcHJvZ3JhbSk7CiAgIHZvaWQgKCpQcm9ncmFt
UGFyYW1ldGVyNGROVikoR0xlbnVtIHRhcmdldCwgR0x1aW50IGluZGV4LCBHTGRvdWJsZSB4LCBH
TGRvdWJsZSB5LCBHTGRvdWJsZSB6LCBHTGRvdWJsZSB3KTsKICAgdm9pZCAoKlByb2dyYW1QYXJh
bWV0ZXI0ZHZOVikoR0xlbnVtIHRhcmdldCwgR0x1aW50IGluZGV4LCBjb25zdCBHTGRvdWJsZSAq
IHBhcmFtcyk7CiAgIHZvaWQgKCpQcm9ncmFtUGFyYW1ldGVyNGZOVikoR0xlbnVtIHRhcmdldCwg
R0x1aW50IGluZGV4LCBHTGZsb2F0IHgsIEdMZmxvYXQgeSwgR0xmbG9hdCB6LCBHTGZsb2F0IHcp
OwogICB2b2lkICgqUHJvZ3JhbVBhcmFtZXRlcjRmdk5WKShHTGVudW0gdGFyZ2V0LCBHTHVpbnQg
aW5kZXgsIGNvbnN0IEdMZmxvYXQgKiBwYXJhbXMpOwogICB2b2lkICgqUHJvZ3JhbVBhcmFtZXRl
cnM0ZHZOVikoR0xlbnVtIHRhcmdldCwgR0x1aW50IGluZGV4LCBHTHVpbnQgbnVtLCBjb25zdCBH
TGRvdWJsZSAqIHBhcmFtcyk7CiAgIHZvaWQgKCpQcm9ncmFtUGFyYW1ldGVyczRmdk5WKShHTGVu
dW0gdGFyZ2V0LCBHTHVpbnQgaW5kZXgsIEdMdWludCBudW0sIGNvbnN0IEdMZmxvYXQgKiBwYXJh
bXMpOwogICB2b2lkICgqUmVxdWVzdFJlc2lkZW50UHJvZ3JhbXNOVikoR0xzaXplaSBuLCBjb25z
dCBHTHVpbnQgKiBpZHMpOwogICB2b2lkICgqVHJhY2tNYXRyaXhOVikoR0xlbnVtIHRhcmdldCwg
R0x1aW50IGFkZHJlc3MsIEdMZW51bSBtYXRyaXgsIEdMZW51bSB0cmFuc2Zvcm0pOwogICB2b2lk
ICgqVmVydGV4QXR0cmliUG9pbnRlck5WKShHTHVpbnQgaW5kZXgsIEdMaW50IHNpemUsIEdMZW51
bSB0eXBlLCBHTHNpemVpIHN0cmlkZSwgY29uc3QgR0x2b2lkICogcG9pbnRlcik7CiAgIHZvaWQg
KCpWZXJ0ZXhBdHRyaWIxZE5WKShHTHVpbnQgaW5kZXgsIEdMZG91YmxlIHgpOwogICB2b2lkICgq
VmVydGV4QXR0cmliMWR2TlYpKEdMdWludCBpbmRleCwgY29uc3QgR0xkb3VibGUgKiB2KTsKICAg
dm9pZCAoKlZlcnRleEF0dHJpYjFmTlYpKEdMdWludCBpbmRleCwgR0xmbG9hdCB4KTsKICAgdm9p
ZCAoKlZlcnRleEF0dHJpYjFmdk5WKShHTHVpbnQgaW5kZXgsIGNvbnN0IEdMZmxvYXQgKiB2KTsK
ICAgdm9pZCAoKlZlcnRleEF0dHJpYjFzTlYpKEdMdWludCBpbmRleCwgR0xzaG9ydCB4KTsKICAg
dm9pZCAoKlZlcnRleEF0dHJpYjFzdk5WKShHTHVpbnQgaW5kZXgsIGNvbnN0IEdMc2hvcnQgKiB2
KTsKICAgdm9pZCAoKlZlcnRleEF0dHJpYjJkTlYpKEdMdWludCBpbmRleCwgR0xkb3VibGUgeCwg
R0xkb3VibGUgeSk7CiAgIHZvaWQgKCpWZXJ0ZXhBdHRyaWIyZHZOVikoR0x1aW50IGluZGV4LCBj
b25zdCBHTGRvdWJsZSAqIHYpOwogICB2b2lkICgqVmVydGV4QXR0cmliMmZOVikoR0x1aW50IGlu
ZGV4LCBHTGZsb2F0IHgsIEdMZmxvYXQgeSk7CiAgIHZvaWQgKCpWZXJ0ZXhBdHRyaWIyZnZOViko
R0x1aW50IGluZGV4LCBjb25zdCBHTGZsb2F0ICogdik7CiAgIHZvaWQgKCpWZXJ0ZXhBdHRyaWIy
c05WKShHTHVpbnQgaW5kZXgsIEdMc2hvcnQgeCwgR0xzaG9ydCB5KTsKICAgdm9pZCAoKlZlcnRl
eEF0dHJpYjJzdk5WKShHTHVpbnQgaW5kZXgsIGNvbnN0IEdMc2hvcnQgKiB2KTsKICAgdm9pZCAo
KlZlcnRleEF0dHJpYjNkTlYpKEdMdWludCBpbmRleCwgR0xkb3VibGUgeCwgR0xkb3VibGUgeSwg
R0xkb3VibGUgeik7CiAgIHZvaWQgKCpWZXJ0ZXhBdHRyaWIzZHZOVikoR0x1aW50IGluZGV4LCBj
b25zdCBHTGRvdWJsZSAqIHYpOwogICB2b2lkICgqVmVydGV4QXR0cmliM2ZOVikoR0x1aW50IGlu
ZGV4LCBHTGZsb2F0IHgsIEdMZmxvYXQgeSwgR0xmbG9hdCB6KTsKICAgdm9pZCAoKlZlcnRleEF0
dHJpYjNmdk5WKShHTHVpbnQgaW5kZXgsIGNvbnN0IEdMZmxvYXQgKiB2KTsKICAgdm9pZCAoKlZl
cnRleEF0dHJpYjNzTlYpKEdMdWludCBpbmRleCwgR0xzaG9ydCB4LCBHTHNob3J0IHksIEdMc2hv
cnQgeik7CiAgIHZvaWQgKCpWZXJ0ZXhBdHRyaWIzc3ZOVikoR0x1aW50IGluZGV4LCBjb25zdCBH
THNob3J0ICogdik7CiAgIHZvaWQgKCpWZXJ0ZXhBdHRyaWI0ZE5WKShHTHVpbnQgaW5kZXgsIEdM
ZG91YmxlIHgsIEdMZG91YmxlIHksIEdMZG91YmxlIHosIEdMZG91YmxlIHcpOwogICB2b2lkICgq
VmVydGV4QXR0cmliNGR2TlYpKEdMdWludCBpbmRleCwgY29uc3QgR0xkb3VibGUgKiB2KTsKICAg
dm9pZCAoKlZlcnRleEF0dHJpYjRmTlYpKEdMdWludCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0
IHksIEdMZmxvYXQgeiwgR0xmbG9hdCB3KTsKICAgdm9pZCAoKlZlcnRleEF0dHJpYjRmdk5WKShH
THVpbnQgaW5kZXgsIGNvbnN0IEdMZmxvYXQgKiB2KTsKICAgdm9pZCAoKlZlcnRleEF0dHJpYjRz
TlYpKEdMdWludCBpbmRleCwgR0xzaG9ydCB4LCBHTHNob3J0IHksIEdMc2hvcnQgeiwgR0xzaG9y
dCB3KTsKICAgdm9pZCAoKlZlcnRleEF0dHJpYjRzdk5WKShHTHVpbnQgaW5kZXgsIGNvbnN0IEdM
c2hvcnQgKiB2KTsKICAgdm9pZCAoKlZlcnRleEF0dHJpYjR1Yk5WKShHTHVpbnQgaW5kZXgsIEdM
dWJ5dGUgeCwgR0x1Ynl0ZSB5LCBHTHVieXRlIHosIEdMdWJ5dGUgdyk7CiAgIHZvaWQgKCpWZXJ0
ZXhBdHRyaWI0dWJ2TlYpKEdMdWludCBpbmRleCwgY29uc3QgR0x1Ynl0ZSAqIHYpOwogICB2b2lk
ICgqVmVydGV4QXR0cmliczFkdk5WKShHTHVpbnQgaW5kZXgsIEdMc2l6ZWkgbiwgY29uc3QgR0xk
b3VibGUgKiB2KTsKICAgdm9pZCAoKlZlcnRleEF0dHJpYnMxZnZOVikoR0x1aW50IGluZGV4LCBH
THNpemVpIG4sIGNvbnN0IEdMZmxvYXQgKiB2KTsKICAgdm9pZCAoKlZlcnRleEF0dHJpYnMxc3ZO
VikoR0x1aW50IGluZGV4LCBHTHNpemVpIG4sIGNvbnN0IEdMc2hvcnQgKiB2KTsKICAgdm9pZCAo
KlZlcnRleEF0dHJpYnMyZHZOVikoR0x1aW50IGluZGV4LCBHTHNpemVpIG4sIGNvbnN0IEdMZG91
YmxlICogdik7CiAgIHZvaWQgKCpWZXJ0ZXhBdHRyaWJzMmZ2TlYpKEdMdWludCBpbmRleCwgR0xz
aXplaSBuLCBjb25zdCBHTGZsb2F0ICogdik7CiAgIHZvaWQgKCpWZXJ0ZXhBdHRyaWJzMnN2TlYp
KEdMdWludCBpbmRleCwgR0xzaXplaSBuLCBjb25zdCBHTHNob3J0ICogdik7CiAgIHZvaWQgKCpW
ZXJ0ZXhBdHRyaWJzM2R2TlYpKEdMdWludCBpbmRleCwgR0xzaXplaSBuLCBjb25zdCBHTGRvdWJs
ZSAqIHYpOwogICB2b2lkICgqVmVydGV4QXR0cmliczNmdk5WKShHTHVpbnQgaW5kZXgsIEdMc2l6
ZWkgbiwgY29uc3QgR0xmbG9hdCAqIHYpOwogICB2b2lkICgqVmVydGV4QXR0cmliczNzdk5WKShH
THVpbnQgaW5kZXgsIEdMc2l6ZWkgbiwgY29uc3QgR0xzaG9ydCAqIHYpOwogICB2b2lkICgqVmVy
dGV4QXR0cmliczRkdk5WKShHTHVpbnQgaW5kZXgsIEdMc2l6ZWkgbiwgY29uc3QgR0xkb3VibGUg
KiB2KTsKICAgdm9pZCAoKlZlcnRleEF0dHJpYnM0ZnZOVikoR0x1aW50IGluZGV4LCBHTHNpemVp
IG4sIGNvbnN0IEdMZmxvYXQgKiB2KTsKICAgdm9pZCAoKlZlcnRleEF0dHJpYnM0c3ZOVikoR0x1
aW50IGluZGV4LCBHTHNpemVpIG4sIGNvbnN0IEdMc2hvcnQgKiB2KTsKICAgdm9pZCAoKlZlcnRl
eEF0dHJpYnM0dWJ2TlYpKEdMdWludCBpbmRleCwgR0xzaXplaSBuLCBjb25zdCBHTHVieXRlICog
dik7CiAgIHZvaWQgKCpQb2ludFBhcmFtZXRlcmlOVikoR0xlbnVtIHBuYW1lLCBHTGludCBwYXJh
bXMpOwogICB2b2lkICgqUG9pbnRQYXJhbWV0ZXJpdk5WKShHTGVudW0gcG5hbWUsIGNvbnN0IEdM
aW50ICogcGFyYW1zKTsKICAgdm9pZCAoKk11bHRpRHJhd0FycmF5c0VYVCkoR0xlbnVtIG1vZGUs
IEdMaW50ICogZmlyc3QsIEdMc2l6ZWkgKiBjb3VudCwgR0xzaXplaSBwcmltY291bnQpOwogICB2
b2lkICgqTXVsdGlEcmF3RWxlbWVudHNFWFQpKEdMZW51bSBtb2RlLCBjb25zdCBHTHNpemVpICog
Y291bnQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQgKiogaW5kaWNlcywgR0xzaXplaSBwcmlt
Y291bnQpOwogICB2b2lkICgqQWN0aXZlU3RlbmNpbEZhY2VFWFQpKEdMZW51bSBmYWNlKTsKICAg
dm9pZCAoKkRlbGV0ZUZlbmNlc05WKShHTHNpemVpIG4sIGNvbnN0IEdMdWludCAqIGZlbmNlcyk7
CiAgIHZvaWQgKCpHZW5GZW5jZXNOVikoR0xzaXplaSBuLCBHTHVpbnQgKiBmZW5jZXMpOwogICBH
TGJvb2xlYW4gKCpJc0ZlbmNlTlYpKEdMdWludCBmZW5jZSk7CiAgIEdMYm9vbGVhbiAoKlRlc3RG
ZW5jZU5WKShHTHVpbnQgZmVuY2UpOwogICB2b2lkICgqR2V0RmVuY2Vpdk5WKShHTHVpbnQgZmVu
Y2UsIEdMZW51bSBwbmFtZSwgR0xpbnQgKiBwYXJhbXMpOwogICB2b2lkICgqRmluaXNoRmVuY2VO
VikoR0x1aW50IGZlbmNlKTsKICAgdm9pZCAoKlNldEZlbmNlTlYpKEdMdWludCBmZW5jZSwgR0xl
bnVtIGNvbmRpdGlvbik7Cn07CiMgMzkgIm10eXBlcy5oIiAyCiMgMSAiZ2x0aHJlYWQuaCIgMQoj
IDI0NyAiZ2x0aHJlYWQuaCIKdHlwZWRlZiBHTHVpbnQgX2dsdGhyZWFkX1RTRDsKCnR5cGVkZWYg
R0x1aW50IF9nbHRocmVhZF9UaHJlYWQ7Cgp0eXBlZGVmIEdMdWludCBfZ2x0aHJlYWRfTXV0ZXg7
CiMgMjY5ICJnbHRocmVhZC5oIgpleHRlcm4gdW5zaWduZWQgbG9uZwpfZ2x0aHJlYWRfR2V0SUQo
dm9pZCk7CgoKZXh0ZXJuIHZvaWQKX2dsdGhyZWFkX0luaXRUU0QoX2dsdGhyZWFkX1RTRCAqKTsK
CgpleHRlcm4gdm9pZCAqCl9nbHRocmVhZF9HZXRUU0QoX2dsdGhyZWFkX1RTRCAqKTsKCgpleHRl
cm4gdm9pZApfZ2x0aHJlYWRfU2V0VFNEKF9nbHRocmVhZF9UU0QgKiwgdm9pZCAqKTsKIyA0MCAi
bXR5cGVzLmgiIDIKCiMgMSAibWF0aC9tX21hdHJpeC5oIiAxCiMgOTcgIm1hdGgvbV9tYXRyaXgu
aCIKdHlwZWRlZiBzdHJ1Y3QgewogICBHTGZsb2F0ICptOwogICBHTGZsb2F0ICppbnY7CiAgIEdM
dWludCBmbGFnczsKICAgR0x1aW50IHR5cGU7Cn0gR0xtYXRyaXg7CgoKCgpleHRlcm4gdm9pZApf
bWF0aF9tYXRyaXhfY3RyKCBHTG1hdHJpeCAqbSApOwoKZXh0ZXJuIHZvaWQKX21hdGhfbWF0cml4
X2R0ciggR0xtYXRyaXggKm0gKTsKCmV4dGVybiB2b2lkCl9tYXRoX21hdHJpeF9hbGxvY19pbnYo
IEdMbWF0cml4ICptICk7CgpleHRlcm4gdm9pZApfbWF0aF9tYXRyaXhfbXVsX21hdHJpeCggR0xt
YXRyaXggKmRlc3QsIGNvbnN0IEdMbWF0cml4ICphLCBjb25zdCBHTG1hdHJpeCAqYiApOwoKZXh0
ZXJuIHZvaWQKX21hdGhfbWF0cml4X211bF9mbG9hdHMoIEdMbWF0cml4ICpkZXN0LCBjb25zdCBH
TGZsb2F0ICpiICk7CgpleHRlcm4gdm9pZApfbWF0aF9tYXRyaXhfbG9hZGYoIEdMbWF0cml4ICpt
YXQsIGNvbnN0IEdMZmxvYXQgKm0gKTsKCmV4dGVybiB2b2lkCl9tYXRoX21hdHJpeF90cmFuc2xh
dGUoIEdMbWF0cml4ICptYXQsIEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0IHogKTsKCmV4
dGVybiB2b2lkCl9tYXRoX21hdHJpeF9yb3RhdGUoIEdMbWF0cml4ICptLCBHTGZsb2F0IGFuZ2xl
LAogICAgICAgICAgICAgICAgICAgICBHTGZsb2F0IHgsIEdMZmxvYXQgeSwgR0xmbG9hdCB6ICk7
CgpleHRlcm4gdm9pZApfbWF0aF9tYXRyaXhfc2NhbGUoIEdMbWF0cml4ICptYXQsIEdMZmxvYXQg
eCwgR0xmbG9hdCB5LCBHTGZsb2F0IHogKTsKCmV4dGVybiB2b2lkCl9tYXRoX21hdHJpeF9vcnRo
byggR0xtYXRyaXggKm1hdCwKICAgICAgICAgICAgICAgICAgICBHTGZsb2F0IGxlZnQsIEdMZmxv
YXQgcmlnaHQsCiAgICAgICAgICAgICAgICAgICAgR0xmbG9hdCBib3R0b20sIEdMZmxvYXQgdG9w
LAogICAgICAgICAgICAgICAgICAgIEdMZmxvYXQgbmVhcnZhbCwgR0xmbG9hdCBmYXJ2YWwgKTsK
CmV4dGVybiB2b2lkCl9tYXRoX21hdHJpeF9mcnVzdHVtKCBHTG1hdHJpeCAqbWF0LAogICAgICAg
ICAgICAgICAgICAgICAgR0xmbG9hdCBsZWZ0LCBHTGZsb2F0IHJpZ2h0LAogICAgICAgICAgICAg
ICAgICAgICAgR0xmbG9hdCBib3R0b20sIEdMZmxvYXQgdG9wLAogICAgICAgICAgICAgICAgICAg
ICAgR0xmbG9hdCBuZWFydmFsLCBHTGZsb2F0IGZhcnZhbCApOwoKZXh0ZXJuIHZvaWQKX21hdGhf
bWF0cml4X3NldF9pZGVudGl0eSggR0xtYXRyaXggKmRlc3QgKTsKCmV4dGVybiB2b2lkCl9tYXRo
X21hdHJpeF9jb3B5KCBHTG1hdHJpeCAqdG8sIGNvbnN0IEdMbWF0cml4ICpmcm9tICk7CgpleHRl
cm4gdm9pZApfbWF0aF9tYXRyaXhfYW5hbHlzZSggR0xtYXRyaXggKm1hdCApOwoKZXh0ZXJuIHZv
aWQKX21hdGhfbWF0cml4X3ByaW50KCBjb25zdCBHTG1hdHJpeCAqbSApOwoKCgoKCgpleHRlcm4g
dm9pZApfbWF0aF90cmFuc3Bvc2VmKCBHTGZsb2F0IHRvWzE2XSwgY29uc3QgR0xmbG9hdCBmcm9t
WzE2XSApOwoKZXh0ZXJuIHZvaWQKX21hdGhfdHJhbnNwb3NlZCggR0xkb3VibGUgdG9bMTZdLCBj
b25zdCBHTGRvdWJsZSBmcm9tWzE2XSApOwoKZXh0ZXJuIHZvaWQKX21hdGhfdHJhbnNwb3NlZmQo
IEdMZmxvYXQgdG9bMTZdLCBjb25zdCBHTGRvdWJsZSBmcm9tWzE2XSApOwojIDQyICJtdHlwZXMu
aCIgMgojIDU1ICJtdHlwZXMuaCIKICAgdHlwZWRlZiBHTHVieXRlIEdMY2hhbjsKIyA4MCAibXR5
cGVzLmgiCiAgIHR5cGVkZWYgR0xzaG9ydCBHTGFjY3VtOwojIDkyICJtdHlwZXMuaCIKICAgdHlw
ZWRlZiBHTHVieXRlIEdMc3RlbmNpbDsKIyAxMDUgIm10eXBlcy5oIgp0eXBlZGVmIEdMdWludCBH
TGRlcHRoOwoKCgoKCnR5cGVkZWYgaW50IEdMZml4ZWQ7CgoKCgoKCnN0cnVjdCBfbWVzYV9IYXNo
VGFibGU7CnN0cnVjdCBnbF90ZXh0dXJlX2ltYWdlOwpzdHJ1Y3QgZ2xfdGV4dHVyZV9vYmplY3Q7
CnR5cGVkZWYgc3RydWN0IF9fR0xjb250ZXh0UmVjIEdMY29udGV4dDsKdHlwZWRlZiBzdHJ1Y3Qg
X19HTGNvbnRleHRNb2Rlc1JlYyBHTHZpc3VhbDsKdHlwZWRlZiBzdHJ1Y3QgZ2xfZnJhbWVfYnVm
ZmVyIEdMZnJhbWVidWZmZXI7CiMgMTc5ICJtdHlwZXMuaCIKc3RydWN0IGdsX2NvbG9yX3RhYmxl
IHsKICAgR0xlbnVtIEZvcm1hdDsKICAgR0xlbnVtIEludEZvcm1hdDsKICAgR0x1aW50IFNpemU7
CiAgIEdMdm9pZCAqVGFibGU7CiAgIEdMYm9vbGVhbiBGbG9hdFRhYmxlOwogICBHTHVieXRlIFJl
ZFNpemU7CiAgIEdMdWJ5dGUgR3JlZW5TaXplOwogICBHTHVieXRlIEJsdWVTaXplOwogICBHTHVi
eXRlIEFscGhhU2l6ZTsKICAgR0x1Ynl0ZSBMdW1pbmFuY2VTaXplOwogICBHTHVieXRlIEludGVu
c2l0eVNpemU7Cn07CiMgMjI4ICJtdHlwZXMuaCIKc3RydWN0IGdsX3NoaW5lX3RhYiB7CiAgIHN0
cnVjdCBnbF9zaGluZV90YWIgKm5leHQsICpwcmV2OwogICBHTGZsb2F0IHRhYlsyNTYgKzFdOwog
ICBHTGZsb2F0IHNoaW5pbmVzczsKICAgR0x1aW50IHJlZmNvdW50Owp9OwoKCnN0cnVjdCBnbF9s
aWdodCB7CiAgIHN0cnVjdCBnbF9saWdodCAqbmV4dDsKICAgc3RydWN0IGdsX2xpZ2h0ICpwcmV2
OwoKICAgR0xmbG9hdCBBbWJpZW50WzRdOwogICBHTGZsb2F0IERpZmZ1c2VbNF07CiAgIEdMZmxv
YXQgU3BlY3VsYXJbNF07CiAgIEdMZmxvYXQgRXllUG9zaXRpb25bNF07CiAgIEdMZmxvYXQgRXll
RGlyZWN0aW9uWzRdOwogICBHTGZsb2F0IFNwb3RFeHBvbmVudDsKICAgR0xmbG9hdCBTcG90Q3V0
b2ZmOwogICBHTGZsb2F0IF9Db3NDdXRvZmY7CiAgIEdMZmxvYXQgQ29uc3RhbnRBdHRlbnVhdGlv
bjsKICAgR0xmbG9hdCBMaW5lYXJBdHRlbnVhdGlvbjsKICAgR0xmbG9hdCBRdWFkcmF0aWNBdHRl
bnVhdGlvbjsKICAgR0xib29sZWFuIEVuYWJsZWQ7CgoKICAgR0x1aW50IF9GbGFnczsKCiAgIEdM
ZmxvYXQgX1Bvc2l0aW9uWzRdOwogICBHTGZsb2F0IF9WUF9pbmZfbm9ybVszXTsKICAgR0xmbG9h
dCBfaF9pbmZfbm9ybVszXTsKICAgR0xmbG9hdCBfTm9ybURpcmVjdGlvbls0XTsKICAgR0xmbG9h
dCBfVlBfaW5mX3Nwb3RfYXR0ZW51YXRpb247CgogICBHTGZsb2F0IF9TcG90RXhwVGFibGVbNTEy
XVsyXTsKICAgR0xmbG9hdCBfTWF0QW1iaWVudFsyXVszXTsKICAgR0xmbG9hdCBfTWF0RGlmZnVz
ZVsyXVszXTsKICAgR0xmbG9hdCBfTWF0U3BlY3VsYXJbMl1bM107CiAgIEdMZmxvYXQgX2RsaTsK
ICAgR0xmbG9hdCBfc2xpOwp9OwoKCnN0cnVjdCBnbF9saWdodG1vZGVsIHsKICAgR0xmbG9hdCBB
bWJpZW50WzRdOwogICBHTGJvb2xlYW4gTG9jYWxWaWV3ZXI7CiAgIEdMYm9vbGVhbiBUd29TaWRl
OwogICBHTGVudW0gQ29sb3JDb250cm9sOwoKfTsKCgpzdHJ1Y3QgZ2xfbWF0ZXJpYWwKewogICBH
TGZsb2F0IEFtYmllbnRbNF07CiAgIEdMZmxvYXQgRGlmZnVzZVs0XTsKICAgR0xmbG9hdCBTcGVj
dWxhcls0XTsKICAgR0xmbG9hdCBFbWlzc2lvbls0XTsKICAgR0xmbG9hdCBTaGluaW5lc3M7CiAg
IEdMZmxvYXQgQW1iaWVudEluZGV4OwogICBHTGZsb2F0IERpZmZ1c2VJbmRleDsKICAgR0xmbG9h
dCBTcGVjdWxhckluZGV4Owp9OwoKCgoKCgoKc3RydWN0IGdsX2FjY3VtX2F0dHJpYiB7CiAgIEdM
ZmxvYXQgQ2xlYXJDb2xvcls0XTsKfTsKIyAzMTUgIm10eXBlcy5oIgpzdHJ1Y3QgZ2xfY29sb3Ji
dWZmZXJfYXR0cmliIHsKICAgR0x1aW50IENsZWFySW5kZXg7CiAgIEdMY2xhbXBmIENsZWFyQ29s
b3JbNF07CgogICBHTHVpbnQgSW5kZXhNYXNrOwogICBHTHVieXRlIENvbG9yTWFza1s0XTsKCiAg
IEdMZW51bSBEcmF3QnVmZmVyOwogICBHTHVieXRlIF9EcmF3RGVzdE1hc2s7CgoKICAgR0xib29s
ZWFuIEFscGhhRW5hYmxlZDsKICAgR0xlbnVtIEFscGhhRnVuYzsKICAgR0xjbGFtcGYgQWxwaGFS
ZWY7CgoKICAgR0xib29sZWFuIEJsZW5kRW5hYmxlZDsKICAgR0xlbnVtIEJsZW5kU3JjUkdCOwog
ICBHTGVudW0gQmxlbmREc3RSR0I7CiAgIEdMZW51bSBCbGVuZFNyY0E7CiAgIEdMZW51bSBCbGVu
ZERzdEE7CiAgIEdMZW51bSBCbGVuZEVxdWF0aW9uOwogICBHTGZsb2F0IEJsZW5kQ29sb3JbNF07
CgoKICAgR0xlbnVtIExvZ2ljT3A7CiAgIEdMYm9vbGVhbiBJbmRleExvZ2ljT3BFbmFibGVkOwog
ICBHTGJvb2xlYW4gQ29sb3JMb2dpY09wRW5hYmxlZDsKCiAgIEdMYm9vbGVhbiBEaXRoZXJGbGFn
Owp9OwoKCnN0cnVjdCBnbF9jdXJyZW50X2F0dHJpYiB7CgoKICAgR0xmbG9hdCBBdHRyaWJbMTZd
WzRdOwoKICAgR0x1aW50IEluZGV4OwogICBHTGJvb2xlYW4gRWRnZUZsYWc7CgoKCgogICBHTGZs
b2F0IFJhc3RlclBvc1s0XTsKICAgR0xmbG9hdCBSYXN0ZXJEaXN0YW5jZTsKICAgR0xmbG9hdCBS
YXN0ZXJDb2xvcls0XTsKICAgR0xmbG9hdCBSYXN0ZXJTZWNvbmRhcnlDb2xvcls0XTsKICAgR0x1
aW50IFJhc3RlckluZGV4OwogICBHTGZsb2F0IFJhc3RlclRleENvb3Jkc1s4XVs0XTsKICAgR0xi
b29sZWFuIFJhc3RlclBvc1ZhbGlkOwp9OwoKCnN0cnVjdCBnbF9kZXB0aGJ1ZmZlcl9hdHRyaWIg
ewogICBHTGVudW0gRnVuYzsKICAgR0xmbG9hdCBDbGVhcjsKICAgR0xib29sZWFuIFRlc3Q7CiAg
IEdMYm9vbGVhbiBNYXNrOwogICBHTGJvb2xlYW4gT2NjbHVzaW9uVGVzdDsKfTsKCgpzdHJ1Y3Qg
Z2xfZW5hYmxlX2F0dHJpYiB7CiAgIEdMYm9vbGVhbiBBbHBoYVRlc3Q7CiAgIEdMYm9vbGVhbiBB
dXRvTm9ybWFsOwogICBHTGJvb2xlYW4gQmxlbmQ7CiAgIEdMdWludCBDbGlwUGxhbmVzOwogICBH
TGJvb2xlYW4gQ29sb3JNYXRlcmlhbDsKICAgR0xib29sZWFuIENvbnZvbHV0aW9uMUQ7CiAgIEdM
Ym9vbGVhbiBDb252b2x1dGlvbjJEOwogICBHTGJvb2xlYW4gU2VwYXJhYmxlMkQ7CiAgIEdMYm9v
bGVhbiBDdWxsRmFjZTsKICAgR0xib29sZWFuIERlcHRoVGVzdDsKICAgR0xib29sZWFuIERpdGhl
cjsKICAgR0xib29sZWFuIEZvZzsKICAgR0xib29sZWFuIEhpc3RvZ3JhbTsKICAgR0xib29sZWFu
IExpZ2h0WzhdOwogICBHTGJvb2xlYW4gTGlnaHRpbmc7CiAgIEdMYm9vbGVhbiBMaW5lU21vb3Ro
OwogICBHTGJvb2xlYW4gTGluZVN0aXBwbGU7CiAgIEdMYm9vbGVhbiBJbmRleExvZ2ljT3A7CiAg
IEdMYm9vbGVhbiBDb2xvckxvZ2ljT3A7CiAgIEdMYm9vbGVhbiBNYXAxQ29sb3I0OwogICBHTGJv
b2xlYW4gTWFwMUluZGV4OwogICBHTGJvb2xlYW4gTWFwMU5vcm1hbDsKICAgR0xib29sZWFuIE1h
cDFUZXh0dXJlQ29vcmQxOwogICBHTGJvb2xlYW4gTWFwMVRleHR1cmVDb29yZDI7CiAgIEdMYm9v
bGVhbiBNYXAxVGV4dHVyZUNvb3JkMzsKICAgR0xib29sZWFuIE1hcDFUZXh0dXJlQ29vcmQ0Owog
ICBHTGJvb2xlYW4gTWFwMVZlcnRleDM7CiAgIEdMYm9vbGVhbiBNYXAxVmVydGV4NDsKICAgR0xi
b29sZWFuIE1hcDFBdHRyaWJbMTZdOwogICBHTGJvb2xlYW4gTWFwMkNvbG9yNDsKICAgR0xib29s
ZWFuIE1hcDJJbmRleDsKICAgR0xib29sZWFuIE1hcDJOb3JtYWw7CiAgIEdMYm9vbGVhbiBNYXAy
VGV4dHVyZUNvb3JkMTsKICAgR0xib29sZWFuIE1hcDJUZXh0dXJlQ29vcmQyOwogICBHTGJvb2xl
YW4gTWFwMlRleHR1cmVDb29yZDM7CiAgIEdMYm9vbGVhbiBNYXAyVGV4dHVyZUNvb3JkNDsKICAg
R0xib29sZWFuIE1hcDJWZXJ0ZXgzOwogICBHTGJvb2xlYW4gTWFwMlZlcnRleDQ7CiAgIEdMYm9v
bGVhbiBNYXAyQXR0cmliWzE2XTsKICAgR0xib29sZWFuIE1pbk1heDsKICAgR0xib29sZWFuIE5v
cm1hbGl6ZTsKICAgR0xib29sZWFuIFBpeGVsVGV4dHVyZTsKICAgR0xib29sZWFuIFBvaW50U21v
b3RoOwogICBHTGJvb2xlYW4gUG9seWdvbk9mZnNldFBvaW50OwogICBHTGJvb2xlYW4gUG9seWdv
bk9mZnNldExpbmU7CiAgIEdMYm9vbGVhbiBQb2x5Z29uT2Zmc2V0RmlsbDsKICAgR0xib29sZWFu
IFBvbHlnb25TbW9vdGg7CiAgIEdMYm9vbGVhbiBQb2x5Z29uU3RpcHBsZTsKICAgR0xib29sZWFu
IFJlc2NhbGVOb3JtYWxzOwogICBHTGJvb2xlYW4gU2Npc3NvcjsKICAgR0xib29sZWFuIFN0ZW5j
aWw7CiAgIEdMYm9vbGVhbiBNdWx0aXNhbXBsZUVuYWJsZWQ7CiAgIEdMYm9vbGVhbiBTYW1wbGVB
bHBoYVRvQ292ZXJhZ2U7CiAgIEdMYm9vbGVhbiBTYW1wbGVBbHBoYVRvT25lOwogICBHTGJvb2xl
YW4gU2FtcGxlQ292ZXJhZ2U7CiAgIEdMYm9vbGVhbiBTYW1wbGVDb3ZlcmFnZUludmVydDsKICAg
R0xib29sZWFuIFJhc3RlclBvc2l0aW9uVW5jbGlwcGVkOwogICBHTHVpbnQgVGV4dHVyZVs4XTsK
ICAgR0x1aW50IFRleEdlbls4XTsKICAgR0xib29sZWFuIFZlcnRleFByb2dyYW07CiAgIEdMYm9v
bGVhbiBWZXJ0ZXhQcm9ncmFtUG9pbnRTaXplOwogICBHTGJvb2xlYW4gVmVydGV4UHJvZ3JhbVR3
b1NpZGU7CiAgIEdMYm9vbGVhbiBQb2ludFNwcml0ZTsKfTsKCgpzdHJ1Y3QgZ2xfZXZhbF9hdHRy
aWIgewoKICAgR0xib29sZWFuIE1hcDFDb2xvcjQ7CiAgIEdMYm9vbGVhbiBNYXAxSW5kZXg7CiAg
IEdMYm9vbGVhbiBNYXAxTm9ybWFsOwogICBHTGJvb2xlYW4gTWFwMVRleHR1cmVDb29yZDE7CiAg
IEdMYm9vbGVhbiBNYXAxVGV4dHVyZUNvb3JkMjsKICAgR0xib29sZWFuIE1hcDFUZXh0dXJlQ29v
cmQzOwogICBHTGJvb2xlYW4gTWFwMVRleHR1cmVDb29yZDQ7CiAgIEdMYm9vbGVhbiBNYXAxVmVy
dGV4MzsKICAgR0xib29sZWFuIE1hcDFWZXJ0ZXg0OwogICBHTGJvb2xlYW4gTWFwMUF0dHJpYlsx
Nl07CiAgIEdMYm9vbGVhbiBNYXAyQ29sb3I0OwogICBHTGJvb2xlYW4gTWFwMkluZGV4OwogICBH
TGJvb2xlYW4gTWFwMk5vcm1hbDsKICAgR0xib29sZWFuIE1hcDJUZXh0dXJlQ29vcmQxOwogICBH
TGJvb2xlYW4gTWFwMlRleHR1cmVDb29yZDI7CiAgIEdMYm9vbGVhbiBNYXAyVGV4dHVyZUNvb3Jk
MzsKICAgR0xib29sZWFuIE1hcDJUZXh0dXJlQ29vcmQ0OwogICBHTGJvb2xlYW4gTWFwMlZlcnRl
eDM7CiAgIEdMYm9vbGVhbiBNYXAyVmVydGV4NDsKICAgR0xib29sZWFuIE1hcDJBdHRyaWJbMTZd
OwogICBHTGJvb2xlYW4gQXV0b05vcm1hbDsKCiAgIEdMaW50IE1hcEdyaWQxdW47CiAgIEdMZmxv
YXQgTWFwR3JpZDF1MSwgTWFwR3JpZDF1MiwgTWFwR3JpZDFkdTsKICAgR0xpbnQgTWFwR3JpZDJ1
biwgTWFwR3JpZDJ2bjsKICAgR0xmbG9hdCBNYXBHcmlkMnUxLCBNYXBHcmlkMnUyLCBNYXBHcmlk
MmR1OwogICBHTGZsb2F0IE1hcEdyaWQydjEsIE1hcEdyaWQydjIsIE1hcEdyaWQyZHY7Cn07CgoK
c3RydWN0IGdsX2ZvZ19hdHRyaWIgewogICBHTGJvb2xlYW4gRW5hYmxlZDsKICAgR0xmbG9hdCBD
b2xvcls0XTsKICAgR0xmbG9hdCBEZW5zaXR5OwogICBHTGZsb2F0IFN0YXJ0OwogICBHTGZsb2F0
IEVuZDsKICAgR0xmbG9hdCBJbmRleDsKICAgR0xlbnVtIE1vZGU7CiAgIEdMYm9vbGVhbiBDb2xv
clN1bUVuYWJsZWQ7CiAgIEdMZW51bSBGb2dDb29yZGluYXRlU291cmNlOwp9OwoKCnN0cnVjdCBn
bF9oaW50X2F0dHJpYiB7CgogICBHTGVudW0gUGVyc3BlY3RpdmVDb3JyZWN0aW9uOwogICBHTGVu
dW0gUG9pbnRTbW9vdGg7CiAgIEdMZW51bSBMaW5lU21vb3RoOwogICBHTGVudW0gUG9seWdvblNt
b290aDsKICAgR0xlbnVtIEZvZzsKICAgR0xlbnVtIENsaXBWb2x1bWVDbGlwcGluZzsKICAgR0xl
bnVtIFRleHR1cmVDb21wcmVzc2lvbjsKICAgR0xlbnVtIEdlbmVyYXRlTWlwbWFwOwp9OwoKCnN0
cnVjdCBnbF9oaXN0b2dyYW1fYXR0cmliIHsKICAgR0x1aW50IFdpZHRoOwogICBHTGludCBGb3Jt
YXQ7CiAgIEdMdWludCBDb3VudFsyNTZdWzRdOwogICBHTGJvb2xlYW4gU2luazsKICAgR0x1Ynl0
ZSBSZWRTaXplOwogICBHTHVieXRlIEdyZWVuU2l6ZTsKICAgR0x1Ynl0ZSBCbHVlU2l6ZTsKICAg
R0x1Ynl0ZSBBbHBoYVNpemU7CiAgIEdMdWJ5dGUgTHVtaW5hbmNlU2l6ZTsKfTsKCgpzdHJ1Y3Qg
Z2xfbWlubWF4X2F0dHJpYiB7CiAgIEdMZW51bSBGb3JtYXQ7CiAgIEdMYm9vbGVhbiBTaW5rOwog
ICBHTGZsb2F0IE1pbls0XSwgTWF4WzRdOwp9OwoKCnN0cnVjdCBnbF9jb252b2x1dGlvbl9hdHRy
aWIgewogICBHTGVudW0gRm9ybWF0OwogICBHTGVudW0gSW50ZXJuYWxGb3JtYXQ7CiAgIEdMdWlu
dCBXaWR0aDsKICAgR0x1aW50IEhlaWdodDsKICAgR0xmbG9hdCBGaWx0ZXJbOSAqIDkgKiA0XTsK
fTsKCgoKCgoKCnN0cnVjdCBnbF9saWdodF9hdHRyaWIgewogICBzdHJ1Y3QgZ2xfbGlnaHQgTGln
aHRbOF07CiAgIHN0cnVjdCBnbF9saWdodG1vZGVsIE1vZGVsOwoKCgogICBzdHJ1Y3QgZ2xfbWF0
ZXJpYWwgTWF0ZXJpYWxbMl07CgogICBHTGJvb2xlYW4gRW5hYmxlZDsKICAgR0xlbnVtIFNoYWRl
TW9kZWw7CiAgIEdMZW51bSBDb2xvck1hdGVyaWFsRmFjZTsKICAgR0xlbnVtIENvbG9yTWF0ZXJp
YWxNb2RlOwogICBHTHVpbnQgQ29sb3JNYXRlcmlhbEJpdG1hc2s7CiAgIEdMYm9vbGVhbiBDb2xv
ck1hdGVyaWFsRW5hYmxlZDsKCiAgIHN0cnVjdCBnbF9saWdodCBFbmFibGVkTGlzdDsKCgogICBH
TGJvb2xlYW4gX05lZWRWZXJ0aWNlczsKICAgR0x1aW50IF9GbGFnczsKICAgR0xmbG9hdCBfQmFz
ZUNvbG9yWzJdWzNdOwp9OwoKCnN0cnVjdCBnbF9saW5lX2F0dHJpYiB7CiAgIEdMYm9vbGVhbiBT
bW9vdGhGbGFnOwogICBHTGJvb2xlYW4gU3RpcHBsZUZsYWc7CiAgIEdMdXNob3J0IFN0aXBwbGVQ
YXR0ZXJuOwogICBHTGludCBTdGlwcGxlRmFjdG9yOwogICBHTGZsb2F0IFdpZHRoOwogICBHTGZs
b2F0IF9XaWR0aDsKfTsKCgpzdHJ1Y3QgZ2xfbGlzdF9hdHRyaWIgewogICBHTHVpbnQgTGlzdEJh
c2U7Cn07CgoKc3RydWN0IGdsX2xpc3Rfb3Bjb2RlIHsKICAgR0x1aW50IHNpemU7CiAgIHZvaWQg
KCpleGVjdXRlKSggR0xjb250ZXh0ICpjdHgsIHZvaWQgKmRhdGEgKTsKICAgdm9pZCAoKmRlc3Ry
b3kpKCBHTGNvbnRleHQgKmN0eCwgdm9pZCAqZGF0YSApOwogICB2b2lkICgqcHJpbnQpKCBHTGNv
bnRleHQgKmN0eCwgdm9pZCAqZGF0YSApOwp9OwoKCgpzdHJ1Y3QgZ2xfbGlzdF9leHRlbnNpb25z
IHsKICAgc3RydWN0IGdsX2xpc3Rfb3Bjb2RlIG9wY29kZVsxNl07CiAgIEdMdWludCBucl9vcGNv
ZGVzOwp9OwoKCnN0cnVjdCBnbF9tdWx0aXNhbXBsZV9hdHRyaWIgewogICBHTGJvb2xlYW4gRW5h
YmxlZDsKICAgR0xib29sZWFuIFNhbXBsZUFscGhhVG9Db3ZlcmFnZTsKICAgR0xib29sZWFuIFNh
bXBsZUFscGhhVG9PbmU7CiAgIEdMYm9vbGVhbiBTYW1wbGVDb3ZlcmFnZTsKICAgR0xmbG9hdCBT
YW1wbGVDb3ZlcmFnZVZhbHVlOwogICBHTGJvb2xlYW4gU2FtcGxlQ292ZXJhZ2VJbnZlcnQ7Cn07
CgoKc3RydWN0IGdsX3BpeGVsX2F0dHJpYiB7CiAgIEdMZW51bSBSZWFkQnVmZmVyOwogICBHTHVi
eXRlIF9SZWFkU3JjTWFzazsKCgogICBHTGZsb2F0IFJlZEJpYXMsIFJlZFNjYWxlOwogICBHTGZs
b2F0IEdyZWVuQmlhcywgR3JlZW5TY2FsZTsKICAgR0xmbG9hdCBCbHVlQmlhcywgQmx1ZVNjYWxl
OwogICBHTGZsb2F0IEFscGhhQmlhcywgQWxwaGFTY2FsZTsKICAgR0xmbG9hdCBEZXB0aEJpYXMs
IERlcHRoU2NhbGU7CiAgIEdMaW50IEluZGV4U2hpZnQsIEluZGV4T2Zmc2V0OwogICBHTGJvb2xl
YW4gTWFwQ29sb3JGbGFnOwogICBHTGJvb2xlYW4gTWFwU3RlbmNpbEZsYWc7CiAgIEdMZmxvYXQg
Wm9vbVgsIFpvb21ZOwoKICAgR0xpbnQgTWFwU3RvU3NpemU7CiAgIEdMaW50IE1hcEl0b0lzaXpl
OwogICBHTGludCBNYXBJdG9Sc2l6ZTsKICAgR0xpbnQgTWFwSXRvR3NpemU7CiAgIEdMaW50IE1h
cEl0b0JzaXplOwogICBHTGludCBNYXBJdG9Bc2l6ZTsKICAgR0xpbnQgTWFwUnRvUnNpemU7CiAg
IEdMaW50IE1hcEd0b0dzaXplOwogICBHTGludCBNYXBCdG9Cc2l6ZTsKICAgR0xpbnQgTWFwQXRv
QXNpemU7CiAgIEdMaW50IE1hcFN0b1NbMjU2XTsKICAgR0xpbnQgTWFwSXRvSVsyNTZdOwogICBH
TGZsb2F0IE1hcEl0b1JbMjU2XTsKICAgR0xmbG9hdCBNYXBJdG9HWzI1Nl07CiAgIEdMZmxvYXQg
TWFwSXRvQlsyNTZdOwogICBHTGZsb2F0IE1hcEl0b0FbMjU2XTsKICAgR0x1Ynl0ZSBNYXBJdG9S
OFsyNTZdOwogICBHTHVieXRlIE1hcEl0b0c4WzI1Nl07CiAgIEdMdWJ5dGUgTWFwSXRvQjhbMjU2
XTsKICAgR0x1Ynl0ZSBNYXBJdG9BOFsyNTZdOwogICBHTGZsb2F0IE1hcFJ0b1JbMjU2XTsKICAg
R0xmbG9hdCBNYXBHdG9HWzI1Nl07CiAgIEdMZmxvYXQgTWFwQnRvQlsyNTZdOwogICBHTGZsb2F0
IE1hcEF0b0FbMjU2XTsKCiAgIEdMYm9vbGVhbiBIaXN0b2dyYW1FbmFibGVkOwogICBHTGJvb2xl
YW4gTWluTWF4RW5hYmxlZDsKCiAgIEdMYm9vbGVhbiBQaXhlbFRleHR1cmVFbmFibGVkOwogICBH
TGVudW0gRnJhZ21lbnRSZ2JTb3VyY2U7CiAgIEdMZW51bSBGcmFnbWVudEFscGhhU291cmNlOwoK
ICAgR0xmbG9hdCBQb3N0Q29sb3JNYXRyaXhTY2FsZVs0XTsKICAgR0xmbG9hdCBQb3N0Q29sb3JN
YXRyaXhCaWFzWzRdOwoKICAgR0xmbG9hdCBDb2xvclRhYmxlU2NhbGVbNF07CiAgIEdMZmxvYXQg
Q29sb3JUYWJsZUJpYXNbNF07CiAgIEdMYm9vbGVhbiBDb2xvclRhYmxlRW5hYmxlZDsKICAgR0xm
bG9hdCBQQ0NUc2NhbGVbNF07CiAgIEdMZmxvYXQgUENDVGJpYXNbNF07CiAgIEdMYm9vbGVhbiBQ
b3N0Q29udm9sdXRpb25Db2xvclRhYmxlRW5hYmxlZDsKICAgR0xmbG9hdCBQQ01DVHNjYWxlWzRd
OwogICBHTGZsb2F0IFBDTUNUYmlhc1s0XTsKICAgR0xib29sZWFuIFBvc3RDb2xvck1hdHJpeENv
bG9yVGFibGVFbmFibGVkOwoKICAgR0xib29sZWFuIENvbnZvbHV0aW9uMURFbmFibGVkOwogICBH
TGJvb2xlYW4gQ29udm9sdXRpb24yREVuYWJsZWQ7CiAgIEdMYm9vbGVhbiBTZXBhcmFibGUyREVu
YWJsZWQ7CiAgIEdMZmxvYXQgQ29udm9sdXRpb25Cb3JkZXJDb2xvclszXVs0XTsKICAgR0xlbnVt
IENvbnZvbHV0aW9uQm9yZGVyTW9kZVszXTsKICAgR0xmbG9hdCBDb252b2x1dGlvbkZpbHRlclNj
YWxlWzNdWzRdOwogICBHTGZsb2F0IENvbnZvbHV0aW9uRmlsdGVyQmlhc1szXVs0XTsKICAgR0xm
bG9hdCBQb3N0Q29udm9sdXRpb25TY2FsZVs0XTsKICAgR0xmbG9hdCBQb3N0Q29udm9sdXRpb25C
aWFzWzRdOwp9OwoKCnN0cnVjdCBnbF9wb2ludF9hdHRyaWIgewogICBHTGJvb2xlYW4gU21vb3Ro
RmxhZzsKICAgR0xmbG9hdCBTaXplOwogICBHTGZsb2F0IF9TaXplOwogICBHTGZsb2F0IFBhcmFt
c1szXTsKICAgR0xmbG9hdCBNaW5TaXplLCBNYXhTaXplOwogICBHTGZsb2F0IFRocmVzaG9sZDsK
ICAgR0xib29sZWFuIF9BdHRlbnVhdGVkOwogICBHTGJvb2xlYW4gUG9pbnRTcHJpdGU7CiAgIEdM
Ym9vbGVhbiBDb29yZFJlcGxhY2VbOF07CiAgIEdMZW51bSBTcHJpdGVSTW9kZTsKfTsKCgpzdHJ1
Y3QgZ2xfcG9seWdvbl9hdHRyaWIgewogICBHTGVudW0gRnJvbnRGYWNlOwogICBHTGVudW0gRnJv
bnRNb2RlOwogICBHTGVudW0gQmFja01vZGU7CiAgIEdMYm9vbGVhbiBfRnJvbnRCaXQ7CiAgIEdM
Ym9vbGVhbiBDdWxsRmxhZzsKICAgR0xib29sZWFuIFNtb290aEZsYWc7CiAgIEdMYm9vbGVhbiBT
dGlwcGxlRmxhZzsKICAgR0xlbnVtIEN1bGxGYWNlTW9kZTsKICAgR0xmbG9hdCBPZmZzZXRGYWN0
b3I7CiAgIEdMZmxvYXQgT2Zmc2V0VW5pdHM7CiAgIEdMYm9vbGVhbiBPZmZzZXRQb2ludDsKICAg
R0xib29sZWFuIE9mZnNldExpbmU7CiAgIEdMYm9vbGVhbiBPZmZzZXRGaWxsOwp9OwoKCnN0cnVj
dCBnbF9zY2lzc29yX2F0dHJpYiB7CiAgIEdMYm9vbGVhbiBFbmFibGVkOwogICBHTGludCBYLCBZ
OwogICBHTHNpemVpIFdpZHRoLCBIZWlnaHQ7Cn07CgoKc3RydWN0IGdsX3N0ZW5jaWxfYXR0cmli
IHsKICAgR0xib29sZWFuIEVuYWJsZWQ7CiAgIEdMYm9vbGVhbiBUZXN0VHdvU2lkZTsKICAgR0x1
Ynl0ZSBBY3RpdmVGYWNlOwogICBHTGVudW0gRnVuY3Rpb25bMl07CiAgIEdMZW51bSBGYWlsRnVu
Y1syXTsKICAgR0xlbnVtIFpQYXNzRnVuY1syXTsKICAgR0xlbnVtIFpGYWlsRnVuY1syXTsKICAg
R0xzdGVuY2lsIFJlZlsyXTsKICAgR0xzdGVuY2lsIFZhbHVlTWFza1syXTsKICAgR0xzdGVuY2ls
IFdyaXRlTWFza1syXTsKICAgR0xzdGVuY2lsIENsZWFyOwp9OwojIDc4NiAibXR5cGVzLmgiCnR5
cGVkZWYgdm9pZCAoKkZldGNoVGV4ZWxGdW5jKSggY29uc3Qgc3RydWN0IGdsX3RleHR1cmVfaW1h
Z2UgKnRleEltYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGNvbCwg
R0xpbnQgcm93LCBHTGludCBpbWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0x2
b2lkICp0ZXhlbE91dCApOwoKCnN0cnVjdCBnbF90ZXh0dXJlX2Zvcm1hdCB7CiAgIEdMaW50IE1l
c2FGb3JtYXQ7CgogICBHTGVudW0gQmFzZUZvcm1hdDsKCgoKICAgR0x1Ynl0ZSBSZWRCaXRzOwog
ICBHTHVieXRlIEdyZWVuQml0czsKICAgR0x1Ynl0ZSBCbHVlQml0czsKICAgR0x1Ynl0ZSBBbHBo
YUJpdHM7CiAgIEdMdWJ5dGUgTHVtaW5hbmNlQml0czsKICAgR0x1Ynl0ZSBJbnRlbnNpdHlCaXRz
OwogICBHTHVieXRlIEluZGV4Qml0czsKICAgR0x1Ynl0ZSBEZXB0aEJpdHM7CgogICBHTGludCBU
ZXhlbEJ5dGVzOwoKICAgRmV0Y2hUZXhlbEZ1bmMgRmV0Y2hUZXhlbDFEOwogICBGZXRjaFRleGVs
RnVuYyBGZXRjaFRleGVsMkQ7CiAgIEZldGNoVGV4ZWxGdW5jIEZldGNoVGV4ZWwzRDsKfTsKCgoK
c3RydWN0IGdsX3RleHR1cmVfaW1hZ2UgewogICBHTGVudW0gRm9ybWF0OwoKCgoKICAgR0xpbnQg
SW50Rm9ybWF0OwogICBHTHVpbnQgQm9yZGVyOwogICBHTHVpbnQgV2lkdGg7CiAgIEdMdWludCBI
ZWlnaHQ7CiAgIEdMdWludCBEZXB0aDsKICAgR0x1aW50IFJvd1N0cmlkZTsKICAgR0x1aW50IFdp
ZHRoMjsKICAgR0x1aW50IEhlaWdodDI7CiAgIEdMdWludCBEZXB0aDI7CiAgIEdMdWludCBXaWR0
aExvZzI7CiAgIEdMdWludCBIZWlnaHRMb2cyOwogICBHTHVpbnQgRGVwdGhMb2cyOwogICBHTHVp
bnQgTWF4TG9nMjsKICAgR0xmbG9hdCBXaWR0aFNjYWxlOwogICBHTGZsb2F0IEhlaWdodFNjYWxl
OwogICBHTGZsb2F0IERlcHRoU2NhbGU7CiAgIEdMdm9pZCAqRGF0YTsKICAgR0xib29sZWFuIElz
Q2xpZW50RGF0YTsKCgogICBjb25zdCBzdHJ1Y3QgZ2xfdGV4dHVyZV9mb3JtYXQgKlRleEZvcm1h
dDsKCiAgIEZldGNoVGV4ZWxGdW5jIEZldGNoVGV4ZWw7CgogICBHTGJvb2xlYW4gSXNDb21wcmVz
c2VkOwogICBHTHVpbnQgQ29tcHJlc3NlZFNpemU7CgoKICAgdm9pZCAqRHJpdmVyRGF0YTsKfTsK
CgoKc3RydWN0IGdsX3RleHR1cmVfb2JqZWN0IHsKICAgX2dsdGhyZWFkX011dGV4IE11dGV4Owog
ICBHTGludCBSZWZDb3VudDsKICAgR0x1aW50IE5hbWU7CiAgIEdMZW51bSBUYXJnZXQ7CiAgIEdM
ZmxvYXQgUHJpb3JpdHk7CiAgIEdMZmxvYXQgQm9yZGVyQ29sb3JbNF07CiAgIEdMY2hhbiBfQm9y
ZGVyQ2hhbls0XTsKICAgR0xlbnVtIFdyYXBTOwogICBHTGVudW0gV3JhcFQ7CiAgIEdMZW51bSBX
cmFwUjsKICAgR0xlbnVtIE1pbkZpbHRlcjsKICAgR0xlbnVtIE1hZ0ZpbHRlcjsKICAgR0xmbG9h
dCBNaW5Mb2Q7CiAgIEdMZmxvYXQgTWF4TG9kOwogICBHTGludCBCYXNlTGV2ZWw7CiAgIEdMaW50
IE1heExldmVsOwogICBHTGZsb2F0IE1heEFuaXNvdHJvcHk7CiAgIEdMYm9vbGVhbiBDb21wYXJl
RmxhZzsKICAgR0xlbnVtIENvbXBhcmVPcGVyYXRvcjsKICAgR0xmbG9hdCBTaGFkb3dBbWJpZW50
OwogICBHTGVudW0gQ29tcGFyZU1vZGU7CiAgIEdMZW51bSBDb21wYXJlRnVuYzsKICAgR0xlbnVt
IERlcHRoTW9kZTsKICAgR0xpbnQgX01heExldmVsOwogICBHTGZsb2F0IF9NYXhMYW1iZGE7CiAg
IEdMYm9vbGVhbiBHZW5lcmF0ZU1pcG1hcDsKCiAgIHN0cnVjdCBnbF90ZXh0dXJlX2ltYWdlICpJ
bWFnZVsxMl07CgoKCiAgIHN0cnVjdCBnbF90ZXh0dXJlX2ltYWdlICpOZWdYWzEyXTsKICAgc3Ry
dWN0IGdsX3RleHR1cmVfaW1hZ2UgKlBvc1lbMTJdOwogICBzdHJ1Y3QgZ2xfdGV4dHVyZV9pbWFn
ZSAqTmVnWVsxMl07CiAgIHN0cnVjdCBnbF90ZXh0dXJlX2ltYWdlICpQb3NaWzEyXTsKICAgc3Ry
dWN0IGdsX3RleHR1cmVfaW1hZ2UgKk5lZ1pbMTJdOwoKCiAgIHN0cnVjdCBnbF9jb2xvcl90YWJs
ZSBQYWxldHRlOwoKICAgR0xib29sZWFuIENvbXBsZXRlOwogICBzdHJ1Y3QgZ2xfdGV4dHVyZV9v
YmplY3QgKk5leHQ7CgoKICAgdm9pZCAqRHJpdmVyRGF0YTsKfTsKCgoKc3RydWN0IGdsX3RleHR1
cmVfdW5pdCB7CiAgIEdMdWludCBFbmFibGVkOwogICBHTHVpbnQgX1JlYWxseUVuYWJsZWQ7Cgog
ICBHTGVudW0gRW52TW9kZTsKICAgR0xmbG9hdCBFbnZDb2xvcls0XTsKICAgR0x1aW50IFRleEdl
bkVuYWJsZWQ7CiAgIEdMZW51bSBHZW5Nb2RlUzsKICAgR0xlbnVtIEdlbk1vZGVUOwogICBHTGVu
dW0gR2VuTW9kZVI7CiAgIEdMZW51bSBHZW5Nb2RlUTsKICAgR0x1aW50IF9HZW5CaXRTOwogICBH
THVpbnQgX0dlbkJpdFQ7CiAgIEdMdWludCBfR2VuQml0UjsKICAgR0x1aW50IF9HZW5CaXRROwog
ICBHTHVpbnQgX0dlbkZsYWdzOwogICBHTGZsb2F0IE9iamVjdFBsYW5lU1s0XTsKICAgR0xmbG9h
dCBPYmplY3RQbGFuZVRbNF07CiAgIEdMZmxvYXQgT2JqZWN0UGxhbmVSWzRdOwogICBHTGZsb2F0
IE9iamVjdFBsYW5lUVs0XTsKICAgR0xmbG9hdCBFeWVQbGFuZVNbNF07CiAgIEdMZmxvYXQgRXll
UGxhbmVUWzRdOwogICBHTGZsb2F0IEV5ZVBsYW5lUls0XTsKICAgR0xmbG9hdCBFeWVQbGFuZVFb
NF07CiAgIEdMZmxvYXQgTG9kQmlhczsKCgogICBHTGVudW0gQ29tYmluZU1vZGVSR0I7CiAgIEdM
ZW51bSBDb21iaW5lTW9kZUE7CiAgIEdMZW51bSBDb21iaW5lU291cmNlUkdCWzNdOwogICBHTGVu
dW0gQ29tYmluZVNvdXJjZUFbM107CiAgIEdMZW51bSBDb21iaW5lT3BlcmFuZFJHQlszXTsKICAg
R0xlbnVtIENvbWJpbmVPcGVyYW5kQVszXTsKICAgR0x1aW50IENvbWJpbmVTY2FsZVNoaWZ0UkdC
OwogICBHTHVpbnQgQ29tYmluZVNjYWxlU2hpZnRBOwoKICAgc3RydWN0IGdsX3RleHR1cmVfb2Jq
ZWN0ICpDdXJyZW50MUQ7CiAgIHN0cnVjdCBnbF90ZXh0dXJlX29iamVjdCAqQ3VycmVudDJEOwog
ICBzdHJ1Y3QgZ2xfdGV4dHVyZV9vYmplY3QgKkN1cnJlbnQzRDsKICAgc3RydWN0IGdsX3RleHR1
cmVfb2JqZWN0ICpDdXJyZW50Q3ViZU1hcDsKICAgc3RydWN0IGdsX3RleHR1cmVfb2JqZWN0ICpD
dXJyZW50UmVjdDsKCiAgIHN0cnVjdCBnbF90ZXh0dXJlX29iamVjdCAqX0N1cnJlbnQ7CgogICBz
dHJ1Y3QgZ2xfdGV4dHVyZV9vYmplY3QgU2F2ZWQxRDsKICAgc3RydWN0IGdsX3RleHR1cmVfb2Jq
ZWN0IFNhdmVkMkQ7CiAgIHN0cnVjdCBnbF90ZXh0dXJlX29iamVjdCBTYXZlZDNEOwogICBzdHJ1
Y3QgZ2xfdGV4dHVyZV9vYmplY3QgU2F2ZWRDdWJlTWFwOwogICBzdHJ1Y3QgZ2xfdGV4dHVyZV9v
YmplY3QgU2F2ZWRSZWN0Owp9OwoKCgpzdHJ1Y3QgZ2xfdGV4dHVyZV9hdHRyaWIgewoKICAgR0x1
aW50IEN1cnJlbnRVbml0OwoKICAgR0x1aW50IF9FbmFibGVkVW5pdHM7CiAgIEdMdWludCBfR2Vu
RmxhZ3M7CiAgIEdMdWludCBfVGV4R2VuRW5hYmxlZDsKICAgR0x1aW50IF9UZXhNYXRFbmFibGVk
OwoKICAgc3RydWN0IGdsX3RleHR1cmVfdW5pdCBVbml0WzhdOwoKICAgc3RydWN0IGdsX3RleHR1
cmVfb2JqZWN0ICpQcm94eTFEOwogICBzdHJ1Y3QgZ2xfdGV4dHVyZV9vYmplY3QgKlByb3h5MkQ7
CiAgIHN0cnVjdCBnbF90ZXh0dXJlX29iamVjdCAqUHJveHkzRDsKICAgc3RydWN0IGdsX3RleHR1
cmVfb2JqZWN0ICpQcm94eUN1YmVNYXA7CiAgIHN0cnVjdCBnbF90ZXh0dXJlX29iamVjdCAqUHJv
eHlSZWN0OwoKCiAgIEdMYm9vbGVhbiBTaGFyZWRQYWxldHRlOwogICBzdHJ1Y3QgZ2xfY29sb3Jf
dGFibGUgUGFsZXR0ZTsKfTsKCgpzdHJ1Y3QgZ2xfdHJhbnNmb3JtX2F0dHJpYiB7CiAgIEdMZW51
bSBNYXRyaXhNb2RlOwogICBHTGZsb2F0IEV5ZVVzZXJQbGFuZVs2XVs0XTsKICAgR0xmbG9hdCBf
Q2xpcFVzZXJQbGFuZVs2XVs0XTsKICAgR0x1aW50IENsaXBQbGFuZXNFbmFibGVkOwogICBHTGJv
b2xlYW4gTm9ybWFsaXplOwogICBHTGJvb2xlYW4gUmVzY2FsZU5vcm1hbHM7CiAgIEdMYm9vbGVh
biBSYXN0ZXJQb3NpdGlvblVuY2xpcHBlZDsKfTsKCgpzdHJ1Y3QgZ2xfdmlld3BvcnRfYXR0cmli
IHsKICAgR0xpbnQgWCwgWTsKICAgR0xzaXplaSBXaWR0aCwgSGVpZ2h0OwogICBHTGZsb2F0IE5l
YXIsIEZhcjsKICAgR0xtYXRyaXggX1dpbmRvd01hcDsKfTsKCgoKc3RydWN0IGdsX2F0dHJpYl9u
b2RlIHsKICAgR0xiaXRmaWVsZCBraW5kOwogICB2b2lkICpkYXRhOwogICBzdHJ1Y3QgZ2xfYXR0
cmliX25vZGUgKm5leHQ7Cn07CgoKCgoKc3RydWN0IGdsX3BpeGVsc3RvcmVfYXR0cmliIHsKICAg
R0xpbnQgQWxpZ25tZW50OwogICBHTGludCBSb3dMZW5ndGg7CiAgIEdMaW50IFNraXBQaXhlbHM7
CiAgIEdMaW50IFNraXBSb3dzOwogICBHTGludCBJbWFnZUhlaWdodDsKICAgR0xpbnQgU2tpcElt
YWdlczsKICAgR0xib29sZWFuIFN3YXBCeXRlczsKICAgR0xib29sZWFuIExzYkZpcnN0OwogICBH
TGJvb2xlYW4gQ2xpZW50U3RvcmFnZTsKICAgR0xib29sZWFuIEludmVydDsKfTsKIyAxMDMxICJt
dHlwZXMuaCIKc3RydWN0IGdsX2NsaWVudF9hcnJheSB7CiAgIEdMaW50IFNpemU7CiAgIEdMZW51
bSBUeXBlOwogICBHTHNpemVpIFN0cmlkZTsKICAgR0xzaXplaSBTdHJpZGVCOwogICB2b2lkICpQ
dHI7CiAgIEdMdWludCBGbGFnczsKICAgR0x1aW50IEVuYWJsZWQ7Cn07CgoKc3RydWN0IGdsX2Fy
cmF5X2F0dHJpYiB7CiAgIHN0cnVjdCBnbF9jbGllbnRfYXJyYXkgVmVydGV4OwogICBzdHJ1Y3Qg
Z2xfY2xpZW50X2FycmF5IE5vcm1hbDsKICAgc3RydWN0IGdsX2NsaWVudF9hcnJheSBDb2xvcjsK
ICAgc3RydWN0IGdsX2NsaWVudF9hcnJheSBTZWNvbmRhcnlDb2xvcjsKICAgc3RydWN0IGdsX2Ns
aWVudF9hcnJheSBGb2dDb29yZDsKICAgc3RydWN0IGdsX2NsaWVudF9hcnJheSBJbmRleDsKICAg
c3RydWN0IGdsX2NsaWVudF9hcnJheSBUZXhDb29yZFs4XTsKICAgc3RydWN0IGdsX2NsaWVudF9h
cnJheSBFZGdlRmxhZzsKCiAgIHN0cnVjdCBnbF9jbGllbnRfYXJyYXkgVmVydGV4QXR0cmliWzE2
XTsKCiAgIEdMaW50IFRleENvb3JkSW50ZXJsZWF2ZUZhY3RvcjsKICAgR0xpbnQgQWN0aXZlVGV4
dHVyZTsKICAgR0x1aW50IExvY2tGaXJzdDsKICAgR0x1aW50IExvY2tDb3VudDsKCiAgIEdMdWlu
dCBfRW5hYmxlZDsKICAgR0x1aW50IE5ld1N0YXRlOwp9OwoKCnN0cnVjdCBnbF9mZWVkYmFjayB7
CiAgIEdMZW51bSBUeXBlOwogICBHTHVpbnQgX01hc2s7CiAgIEdMZmxvYXQgKkJ1ZmZlcjsKICAg
R0x1aW50IEJ1ZmZlclNpemU7CiAgIEdMdWludCBDb3VudDsKfTsKCgpzdHJ1Y3QgZ2xfc2VsZWN0
aW9uIHsKICAgR0x1aW50ICpCdWZmZXI7CiAgIEdMdWludCBCdWZmZXJTaXplOwogICBHTHVpbnQg
QnVmZmVyQ291bnQ7CiAgIEdMdWludCBIaXRzOwogICBHTHVpbnQgTmFtZVN0YWNrRGVwdGg7CiAg
IEdMdWludCBOYW1lU3RhY2tbNjRdOwogICBHTGJvb2xlYW4gSGl0RmxhZzsKICAgR0xmbG9hdCBI
aXRNaW5aLCBIaXRNYXhaOwp9OwoKCgoKCnN0cnVjdCBnbF8xZF9tYXAgewogICBHTHVpbnQgT3Jk
ZXI7CiAgIEdMZmxvYXQgdTEsIHUyLCBkdTsKICAgR0xmbG9hdCAqUG9pbnRzOwp9OwoKCgoKCnN0
cnVjdCBnbF8yZF9tYXAgewogICBHTHVpbnQgVW9yZGVyOwogICBHTHVpbnQgVm9yZGVyOwogICBH
TGZsb2F0IHUxLCB1MiwgZHU7CiAgIEdMZmxvYXQgdjEsIHYyLCBkdjsKICAgR0xmbG9hdCAqUG9p
bnRzOwp9OwoKCgoKCnN0cnVjdCBnbF9ldmFsdWF0b3JzIHsKCiAgIHN0cnVjdCBnbF8xZF9tYXAg
TWFwMVZlcnRleDM7CiAgIHN0cnVjdCBnbF8xZF9tYXAgTWFwMVZlcnRleDQ7CiAgIHN0cnVjdCBn
bF8xZF9tYXAgTWFwMUluZGV4OwogICBzdHJ1Y3QgZ2xfMWRfbWFwIE1hcDFDb2xvcjQ7CiAgIHN0
cnVjdCBnbF8xZF9tYXAgTWFwMU5vcm1hbDsKICAgc3RydWN0IGdsXzFkX21hcCBNYXAxVGV4dHVy
ZTE7CiAgIHN0cnVjdCBnbF8xZF9tYXAgTWFwMVRleHR1cmUyOwogICBzdHJ1Y3QgZ2xfMWRfbWFw
IE1hcDFUZXh0dXJlMzsKICAgc3RydWN0IGdsXzFkX21hcCBNYXAxVGV4dHVyZTQ7CiAgIHN0cnVj
dCBnbF8xZF9tYXAgTWFwMUF0dHJpYlsxNl07CgoKICAgc3RydWN0IGdsXzJkX21hcCBNYXAyVmVy
dGV4MzsKICAgc3RydWN0IGdsXzJkX21hcCBNYXAyVmVydGV4NDsKICAgc3RydWN0IGdsXzJkX21h
cCBNYXAySW5kZXg7CiAgIHN0cnVjdCBnbF8yZF9tYXAgTWFwMkNvbG9yNDsKICAgc3RydWN0IGds
XzJkX21hcCBNYXAyTm9ybWFsOwogICBzdHJ1Y3QgZ2xfMmRfbWFwIE1hcDJUZXh0dXJlMTsKICAg
c3RydWN0IGdsXzJkX21hcCBNYXAyVGV4dHVyZTI7CiAgIHN0cnVjdCBnbF8yZF9tYXAgTWFwMlRl
eHR1cmUzOwogICBzdHJ1Y3QgZ2xfMmRfbWFwIE1hcDJUZXh0dXJlNDsKICAgc3RydWN0IGdsXzJk
X21hcCBNYXAyQXR0cmliWzE2XTsKfTsKIyAxMTYyICJtdHlwZXMuaCIKc3RydWN0IHZwX21hY2hp
bmUKewogICBHTGZsb2F0IFJlZ2lzdGVyc1soMTYgKyAxNSArIDEyICsgOTYpXVs0XTsKICAgR0xp
bnQgQWRkcmVzc1JlZzsKfTsKCgoKZW51bSB2cF9vcGNvZGUKewogICBNT1YsCiAgIExJVCwKICAg
UkNQLAogICBSU1EsCiAgIEVYUCwKICAgTE9HLAogICBNVUwsCiAgIEFERCwKICAgRFAzLAogICBE
UDQsCiAgIERTVCwKICAgTUlOLAogICBNQVgsCiAgIFNMVCwKICAgU0dFLAogICBNQUQsCiAgIEFS
TCwKICAgRFBILAogICBSQ0MsCiAgIFNVQiwKICAgQUJTLAogICBFTkQKfTsKCgoKc3RydWN0IHZw
X3NyY19yZWdpc3Rlcgp7CiAgIEdMaW50IFJlZ2lzdGVyOwogICBHTHVpbnQgU3dpenpsZVs0XTsK
ICAgR0xib29sZWFuIE5lZ2F0ZTsKICAgR0xib29sZWFuIFJlbEFkZHI7Cn07CgoKCnN0cnVjdCB2
cF9kc3RfcmVnaXN0ZXIKewogICBHTGludCBSZWdpc3RlcjsKICAgR0xib29sZWFuIFdyaXRlTWFz
a1s0XTsKfTsKCgoKc3RydWN0IHZwX2luc3RydWN0aW9uCnsKICAgZW51bSB2cF9vcGNvZGUgT3Bj
b2RlOwogICBzdHJ1Y3QgdnBfc3JjX3JlZ2lzdGVyIFNyY1JlZ1szXTsKICAgc3RydWN0IHZwX2Rz
dF9yZWdpc3RlciBEc3RSZWc7Cn07CgoKCnN0cnVjdCB2cF9wcm9ncmFtCnsKICAgR0x1Ynl0ZSAq
U3RyaW5nOwogICBzdHJ1Y3QgdnBfaW5zdHJ1Y3Rpb24gKkluc3RydWN0aW9uczsKICAgR0xlbnVt
IFRhcmdldDsKICAgR0xpbnQgUmVmQ291bnQ7CiAgIEdMYm9vbGVhbiBJc1Bvc2l0aW9uSW52YXJp
YW50OwogICBHTGJvb2xlYW4gUmVzaWRlbnQ7CiAgIEdMdWludCBJbnB1dHNSZWFkOwogICBHTHVp
bnQgT3V0cHV0c1dyaXR0ZW47Cn07CgoKCgoKc3RydWN0IHZlcnRleF9wcm9ncmFtX3N0YXRlCnsK
ICAgR0xib29sZWFuIEVuYWJsZWQ7CiAgIEdMYm9vbGVhbiBQb2ludFNpemVFbmFibGVkOwogICBH
TGJvb2xlYW4gVHdvU2lkZUVuYWJsZWQ7CiAgIEdMdWludCBDdXJyZW50SUQ7CiAgIEdMaW50IEVy
cm9yUG9zOwogICBzdHJ1Y3QgdnBfcHJvZ3JhbSAqQ3VycmVudDsKICAgc3RydWN0IHZwX21hY2hp
bmUgTWFjaGluZTsKCiAgIEdMZW51bSBUcmFja01hdHJpeFs5NiAvIDRdOwogICBHTGVudW0gVHJh
Y2tNYXRyaXhUcmFuc2Zvcm1bOTYgLyA0XTsKfTsKCgoKCgoKc3RydWN0IGdsX3NoYXJlZF9zdGF0
ZSB7CiAgIF9nbHRocmVhZF9NdXRleCBNdXRleDsKICAgR0xpbnQgUmVmQ291bnQ7CiAgIHN0cnVj
dCBfbWVzYV9IYXNoVGFibGUgKkRpc3BsYXlMaXN0OwogICBzdHJ1Y3QgX21lc2FfSGFzaFRhYmxl
ICpUZXhPYmplY3RzOwogICBzdHJ1Y3QgZ2xfdGV4dHVyZV9vYmplY3QgKlRleE9iamVjdExpc3Q7
CgoKICAgc3RydWN0IGdsX3RleHR1cmVfb2JqZWN0ICpEZWZhdWx0MUQ7CiAgIHN0cnVjdCBnbF90
ZXh0dXJlX29iamVjdCAqRGVmYXVsdDJEOwogICBzdHJ1Y3QgZ2xfdGV4dHVyZV9vYmplY3QgKkRl
ZmF1bHQzRDsKICAgc3RydWN0IGdsX3RleHR1cmVfb2JqZWN0ICpEZWZhdWx0Q3ViZU1hcDsKICAg
c3RydWN0IGdsX3RleHR1cmVfb2JqZWN0ICpEZWZhdWx0UmVjdDsKCgogICBzdHJ1Y3QgX21lc2Ff
SGFzaFRhYmxlICpWZXJ0ZXhQcm9ncmFtczsKCiAgIHZvaWQgKkRyaXZlckRhdGE7Cn07CiMgMTI4
NyAibXR5cGVzLmgiCnN0cnVjdCBnbF9mcmFtZV9idWZmZXIgewogICBHTHZpc3VhbCBWaXN1YWw7
CgogICBHTHVpbnQgV2lkdGgsIEhlaWdodDsKCiAgIEdMYm9vbGVhbiBVc2VTb2Z0d2FyZURlcHRo
QnVmZmVyOwogICBHTGJvb2xlYW4gVXNlU29mdHdhcmVBY2N1bUJ1ZmZlcjsKICAgR0xib29sZWFu
IFVzZVNvZnR3YXJlU3RlbmNpbEJ1ZmZlcjsKICAgR0xib29sZWFuIFVzZVNvZnR3YXJlQWxwaGFC
dWZmZXJzOwoKCiAgIEdMdm9pZCAqRGVwdGhCdWZmZXI7CgoKICAgR0xzdGVuY2lsICpTdGVuY2ls
OwoKCiAgIEdMYWNjdW0gKkFjY3VtOwoKCiAgIEdMdm9pZCAqRnJvbnRMZWZ0QWxwaGE7CiAgIEdM
dm9pZCAqQmFja0xlZnRBbHBoYTsKICAgR0x2b2lkICpGcm9udFJpZ2h0QWxwaGE7CiAgIEdMdm9p
ZCAqQmFja1JpZ2h0QWxwaGE7CgoKICAgR0xpbnQgX1htaW4sIF9ZbWluOwogICBHTGludCBfWG1h
eCwgX1ltYXg7Cn07CgoKCgoKCnN0cnVjdCBnbF9jb25zdGFudHMgewogICBHTGludCBNYXhUZXh0
dXJlTGV2ZWxzOwogICBHTGludCBNYXgzRFRleHR1cmVMZXZlbHM7CiAgIEdMaW50IE1heEN1YmVU
ZXh0dXJlTGV2ZWxzOwogICBHTGludCBNYXhUZXh0dXJlUmVjdFNpemU7CiAgIEdMdWludCBNYXhU
ZXh0dXJlVW5pdHM7CiAgIEdMZmxvYXQgTWF4VGV4dHVyZU1heEFuaXNvdHJvcHk7CiAgIEdMZmxv
YXQgTWF4VGV4dHVyZUxvZEJpYXM7CiAgIEdMdWludCBNYXhBcnJheUxvY2tTaXplOwogICBHTGlu
dCBTdWJQaXhlbEJpdHM7CiAgIEdMZmxvYXQgTWluUG9pbnRTaXplLCBNYXhQb2ludFNpemU7CiAg
IEdMZmxvYXQgTWluUG9pbnRTaXplQUEsIE1heFBvaW50U2l6ZUFBOwogICBHTGZsb2F0IFBvaW50
U2l6ZUdyYW51bGFyaXR5OwogICBHTGZsb2F0IE1pbkxpbmVXaWR0aCwgTWF4TGluZVdpZHRoOwog
ICBHTGZsb2F0IE1pbkxpbmVXaWR0aEFBLCBNYXhMaW5lV2lkdGhBQTsKICAgR0xmbG9hdCBMaW5l
V2lkdGhHcmFudWxhcml0eTsKICAgR0x1aW50IE51bUF1eEJ1ZmZlcnM7CiAgIEdMdWludCBNYXhD
b2xvclRhYmxlU2l6ZTsKICAgR0x1aW50IE1heENvbnZvbHV0aW9uV2lkdGg7CiAgIEdMdWludCBN
YXhDb252b2x1dGlvbkhlaWdodDsKICAgR0x1aW50IE1heENsaXBQbGFuZXM7CiAgIEdMdWludCBN
YXhMaWdodHM7Cn07CgoKCgoKc3RydWN0IGV4dGVuc2lvbjsKc3RydWN0IGdsX2V4dGVuc2lvbnMg
ewogICBjaGFyICpleHRfc3RyaW5nOwogICBzdHJ1Y3QgZXh0ZW5zaW9uICpleHRfbGlzdDsKCgoK
ICAgR0xib29sZWFuIEFSQl9kZXB0aF90ZXh0dXJlOwogICBHTGJvb2xlYW4gQVJCX2ltYWdpbmc7
CiAgIEdMYm9vbGVhbiBBUkJfbXVsdGlzYW1wbGU7CiAgIEdMYm9vbGVhbiBBUkJfbXVsdGl0ZXh0
dXJlOwogICBHTGJvb2xlYW4gQVJCX3NoYWRvdzsKICAgR0xib29sZWFuIEFSQl90ZXh0dXJlX2Jv
cmRlcl9jbGFtcDsKICAgR0xib29sZWFuIEFSQl90ZXh0dXJlX2NvbXByZXNzaW9uOwogICBHTGJv
b2xlYW4gQVJCX3RleHR1cmVfY3ViZV9tYXA7CiAgIEdMYm9vbGVhbiBBUkJfdGV4dHVyZV9lbnZf
Y29tYmluZTsKICAgR0xib29sZWFuIEFSQl90ZXh0dXJlX2Vudl9jcm9zc2JhcjsKICAgR0xib29s
ZWFuIEFSQl90ZXh0dXJlX2Vudl9kb3QzOwogICBHTGJvb2xlYW4gQVJCX3RleHR1cmVfbWlycm9y
ZWRfcmVwZWF0OwogICBHTGJvb2xlYW4gQVJCX3dpbmRvd19wb3M7CiAgIEdMYm9vbGVhbiBBVElf
dGV4dHVyZV9taXJyb3Jfb25jZTsKICAgR0xib29sZWFuIEVYVF9ibGVuZF9jb2xvcjsKICAgR0xi
b29sZWFuIEVYVF9ibGVuZF9mdW5jX3NlcGFyYXRlOwogICBHTGJvb2xlYW4gRVhUX2JsZW5kX2xv
Z2ljX29wOwogICBHTGJvb2xlYW4gRVhUX2JsZW5kX21pbm1heDsKICAgR0xib29sZWFuIEVYVF9i
bGVuZF9zdWJ0cmFjdDsKICAgR0xib29sZWFuIEVYVF9jbGlwX3ZvbHVtZV9oaW50OwogICBHTGJv
b2xlYW4gRVhUX2NvbnZvbHV0aW9uOwogICBHTGJvb2xlYW4gRVhUX2NvbXBpbGVkX3ZlcnRleF9h
cnJheTsKICAgR0xib29sZWFuIEVYVF9mb2dfY29vcmQ7CiAgIEdMYm9vbGVhbiBFWFRfaGlzdG9n
cmFtOwogICBHTGJvb2xlYW4gRVhUX211bHRpX2RyYXdfYXJyYXlzOwogICBHTGJvb2xlYW4gRVhU
X3BhY2tlZF9waXhlbHM7CiAgIEdMYm9vbGVhbiBFWFRfcGFsZXR0ZWRfdGV4dHVyZTsKICAgR0xi
b29sZWFuIEVYVF9wb2ludF9wYXJhbWV0ZXJzOwogICBHTGJvb2xlYW4gRVhUX3BvbHlnb25fb2Zm
c2V0OwogICBHTGJvb2xlYW4gRVhUX3Jlc2NhbGVfbm9ybWFsOwogICBHTGJvb2xlYW4gRVhUX3No
YWRvd19mdW5jczsKICAgR0xib29sZWFuIEVYVF9zZWNvbmRhcnlfY29sb3I7CiAgIEdMYm9vbGVh
biBFWFRfc2hhcmVkX3RleHR1cmVfcGFsZXR0ZTsKICAgR0xib29sZWFuIEVYVF9zdGVuY2lsX3dy
YXA7CiAgIEdMYm9vbGVhbiBFWFRfc3RlbmNpbF90d29fc2lkZTsKICAgR0xib29sZWFuIEVYVF90
ZXh0dXJlM0Q7CiAgIEdMYm9vbGVhbiBFWFRfdGV4dHVyZV9jb21wcmVzc2lvbl9zM3RjOwogICBH
TGJvb2xlYW4gRVhUX3RleHR1cmVfZW52X2FkZDsKICAgR0xib29sZWFuIEVYVF90ZXh0dXJlX2Vu
dl9jb21iaW5lOwogICBHTGJvb2xlYW4gRVhUX3RleHR1cmVfZW52X2RvdDM7CiAgIEdMYm9vbGVh
biBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWM7CiAgIEdMYm9vbGVhbiBFWFRfdGV4dHVy
ZV9vYmplY3Q7CiAgIEdMYm9vbGVhbiBFWFRfdGV4dHVyZV9sb2RfYmlhczsKICAgR0xib29sZWFu
IEVYVF92ZXJ0ZXhfYXJyYXlfc2V0OwogICBHTGJvb2xlYW4gSFBfb2NjbHVzaW9uX3Rlc3Q7CiAg
IEdMYm9vbGVhbiBJQk1fcmFzdGVycG9zX2NsaXA7CiAgIEdMYm9vbGVhbiBJTkdSX2JsZW5kX2Z1
bmNfc2VwYXJhdGU7CiAgIEdMYm9vbGVhbiBNRVNBX3BhY2tfaW52ZXJ0OwogICBHTGJvb2xlYW4g
TUVTQV93aW5kb3dfcG9zOwogICBHTGJvb2xlYW4gTUVTQV9yZXNpemVfYnVmZmVyczsKICAgR0xi
b29sZWFuIE1FU0FfeWNiY3JfdGV4dHVyZTsKICAgR0xib29sZWFuIE5WX2JsZW5kX3NxdWFyZTsK
ICAgR0xib29sZWFuIE5WX3BvaW50X3Nwcml0ZTsKICAgR0xib29sZWFuIE5WX3RleHR1cmVfcmVj
dGFuZ2xlOwogICBHTGJvb2xlYW4gTlZfdGV4Z2VuX3JlZmxlY3Rpb247CiAgIEdMYm9vbGVhbiBO
Vl92ZXJ0ZXhfcHJvZ3JhbTsKICAgR0xib29sZWFuIE5WX3ZlcnRleF9wcm9ncmFtMV8xOwogICBH
TGJvb2xlYW4gU0dJX2NvbG9yX21hdHJpeDsKICAgR0xib29sZWFuIFNHSV9jb2xvcl90YWJsZTsK
ICAgR0xib29sZWFuIFNHSVNfZ2VuZXJhdGVfbWlwbWFwOwogICBHTGJvb2xlYW4gU0dJU19waXhl
bF90ZXh0dXJlOwogICBHTGJvb2xlYW4gU0dJU190ZXh0dXJlX2VkZ2VfY2xhbXA7CiAgIEdMYm9v
bGVhbiBTR0lYX2RlcHRoX3RleHR1cmU7CiAgIEdMYm9vbGVhbiBTR0lYX3BpeGVsX3RleHR1cmU7
CiAgIEdMYm9vbGVhbiBTR0lYX3NoYWRvdzsKICAgR0xib29sZWFuIFNHSVhfc2hhZG93X2FtYmll
bnQ7CiAgIEdMYm9vbGVhbiBUREZYX3RleHR1cmVfY29tcHJlc3Npb25fRlhUMTsKICAgR0xib29s
ZWFuIEFQUExFX2NsaWVudF9zdG9yYWdlOwp9OwoKCgoKCnN0cnVjdCBtYXRyaXhfc3RhY2sKewog
ICBHTG1hdHJpeCAqVG9wOwogICBHTG1hdHJpeCAqU3RhY2s7CiAgIEdMdWludCBEZXB0aDsKICAg
R0x1aW50IE1heERlcHRoOwogICBHTHVpbnQgRGlydHlGbGFnOwp9OwojIDE1OTQgIm10eXBlcy5o
Igp1bmlvbiBub2RlOwp0eXBlZGVmIHVuaW9uIG5vZGUgTm9kZTsKCgoKIyAxICJkZC5oIiAxCiMg
MzQgImRkLmgiCnN0cnVjdCBnbF9waXhlbHN0b3JlX2F0dHJpYjsKIyA1MyAiZGQuaCIKc3RydWN0
IGRkX2Z1bmN0aW9uX3RhYmxlIHsKCiAgIGNvbnN0IEdMdWJ5dGUgKiAoKkdldFN0cmluZykoIEdM
Y29udGV4dCAqY3R4LCBHTGVudW0gbmFtZSApOwoKCgoKCiAgIHZvaWQgKCpVcGRhdGVTdGF0ZSko
IEdMY29udGV4dCAqY3R4LCBHTHVpbnQgbmV3X3N0YXRlICk7CgoKCgoKCiAgIHZvaWQgKCpDbGVh
cikoIEdMY29udGV4dCAqY3R4LCBHTGJpdGZpZWxkIG1hc2ssIEdMYm9vbGVhbiBhbGwsCiAgICAg
ICAgICAgICAgICAgIEdMaW50IHgsIEdMaW50IHksIEdMaW50IHdpZHRoLCBHTGludCBoZWlnaHQg
KTsKIyA4MCAiZGQuaCIKICAgdm9pZCAoKkRyYXdCdWZmZXIpKCBHTGNvbnRleHQgKmN0eCwgR0xl
bnVtIGJ1ZmZlciApOwoKCgoKCgoKICAgdm9pZCAoKlJlYWRCdWZmZXIpKCBHTGNvbnRleHQgKmN0
eCwgR0xlbnVtIGJ1ZmZlciApOwoKCgoKICAgdm9pZCAoKkdldEJ1ZmZlclNpemUpKCBHTGZyYW1l
YnVmZmVyICpidWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgR0x1aW50ICp3aWR0aCwg
R0x1aW50ICpoZWlnaHQgKTsKCgoKCgogICB2b2lkICgqUmVzaXplQnVmZmVycykoIEdMZnJhbWVi
dWZmZXIgKmJ1ZmZlciApOwoKCgoKCgogICB2b2lkICgqRmluaXNoKSggR0xjb250ZXh0ICpjdHgg
KTsKCgoKCiAgIHZvaWQgKCpGbHVzaCkoIEdMY29udGV4dCAqY3R4ICk7CgoKCgogICB2b2lkICgq
RXJyb3IpKCBHTGNvbnRleHQgKmN0eCApOwojIDEyNyAiZGQuaCIKICAgdm9pZCAoKkFjY3VtKSgg
R0xjb250ZXh0ICpjdHgsIEdMZW51bSBvcCwgR0xmbG9hdCB2YWx1ZSwKICAgICAgICAgICAgICAg
ICAgR0xpbnQgeHBvcywgR0xpbnQgeXBvcywgR0xpbnQgd2lkdGgsIEdMaW50IGhlaWdodCApOwoj
IDEzNyAiZGQuaCIKICAgdm9pZCAoKkRyYXdQaXhlbHMpKCBHTGNvbnRleHQgKmN0eCwKICAgICAg
ICAgICAgICAgICAgICAgICBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVp
IGhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlw
ZSwKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRy
aWIgKnVucGFjaywKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHTHZvaWQgKnBpeGVscyAp
OwoKCgoKICAgdm9pZCAoKlJlYWRQaXhlbHMpKCBHTGNvbnRleHQgKmN0eCwKICAgICAgICAgICAg
ICAgICAgICAgICBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwKICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwKICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKnVu
cGFjaywKICAgICAgICAgICAgICAgICAgICAgICBHTHZvaWQgKmRlc3QgKTsKCgoKICAgdm9pZCAo
KkNvcHlQaXhlbHMpKCBHTGNvbnRleHQgKmN0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdMaW50IHNyY3gsIEdMaW50IHNyY3ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNp
emVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
aW50IGRzdHgsIEdMaW50IGRzdHksIEdMZW51bSB0eXBlICk7CgoKCgogICB2b2lkICgqQml0bWFw
KSggR0xjb250ZXh0ICpjdHgsCiAgICAgICAgICAgICAgICAgICBHTGludCB4LCBHTGludCB5LCBH
THNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0
cnVjdCBnbF9waXhlbHN0b3JlX2F0dHJpYiAqdW5wYWNrLAogICAgICAgICAgICAgICAgICAgY29u
c3QgR0x1Ynl0ZSAqYml0bWFwICk7CgoKCgoKCiAgIGNvbnN0IHN0cnVjdCBnbF90ZXh0dXJlX2Zv
cm1hdCAqCiAgICgqQ2hvb3NlVGV4dHVyZUZvcm1hdCkoIEdMY29udGV4dCAqY3R4LCBHTGludCBp
bnRlcm5hbEZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIHNyY0Zvcm1h
dCwgR0xlbnVtIHNyY1R5cGUgKTsKCgoKCgogICB2b2lkICgqVGV4SW1hZ2UxRCkoIEdMY29udGV4
dCAqY3R4LCBHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwKICAgICAgICAgICAgICAgICAgICAg
ICBHTGludCBpbnRlcm5hbEZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICBHTGludCB3aWR0
aCwgR0xpbnQgYm9yZGVyLAogICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdM
ZW51bSB0eXBlLCBjb25zdCBHTHZvaWQgKnBpeGVscywKICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKnBhY2tpbmcsCiAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IGdsX3RleHR1cmVfb2JqZWN0ICp0ZXhPYmosCiAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IGdsX3RleHR1cmVfaW1hZ2UgKnRleEltYWdlICk7CiAgIHZvaWQgKCpU
ZXhJbWFnZTJEKSggR0xjb250ZXh0ICpjdHgsIEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLAog
ICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGludGVybmFsRm9ybWF0LAogICAgICAgICAgICAg
ICAgICAgICAgIEdMaW50IHdpZHRoLCBHTGludCBoZWlnaHQsIEdMaW50IGJvcmRlciwKICAgICAg
ICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgY29uc3QgR0x2b2lk
ICpwaXhlbHMsCiAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGdsX3BpeGVsc3Rv
cmVfYXR0cmliICpwYWNraW5nLAogICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBnbF90ZXh0
dXJlX29iamVjdCAqdGV4T2JqLAogICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBnbF90ZXh0
dXJlX2ltYWdlICp0ZXhJbWFnZSApOwogICB2b2lkICgqVGV4SW1hZ2UzRCkoIEdMY29udGV4dCAq
Y3R4LCBHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICBH
TGludCBpbnRlcm5hbEZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICBHTGludCB3aWR0aCwg
R0xpbnQgaGVpZ2h0LCBHTGludCBkZXB0aCwgR0xpbnQgYm9yZGVyLAogICAgICAgICAgICAgICAg
ICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQgKnBpeGVscywK
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIg
KnBhY2tpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGdsX3RleHR1cmVfb2JqZWN0
ICp0ZXhPYmosCiAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGdsX3RleHR1cmVfaW1hZ2Ug
KnRleEltYWdlICk7CiMgMjEzICJkZC5oIgogICB2b2lkICgqVGV4U3ViSW1hZ2UxRCkoIEdMY29u
dGV4dCAqY3R4LCBHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTGludCB4b2Zmc2V0LCBHTHNpemVpIHdpZHRoLAogICAgICAgICAgICAgICAgICAg
ICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEdMdm9pZCAqcGl4ZWxzLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHN0cnVjdCBnbF9waXhlbHN0b3JlX2F0dHJpYiAqcGFja2luZywKICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHJ1Y3QgZ2xfdGV4dHVyZV9vYmplY3QgKnRleE9iaiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3QgZ2xfdGV4dHVyZV9pbWFnZSAqdGV4SW1hZ2UgKTsKICAgdm9pZCAo
KlRleFN1YkltYWdlMkQpKCBHTGNvbnRleHQgKmN0eCwgR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2
ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHTHZvaWQgKnBpeGVscywKICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKnBhY2tp
bmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGdsX3RleHR1cmVfb2JqZWN0ICp0
ZXhPYmosCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGdsX3RleHR1cmVfaW1hZ2Ug
KnRleEltYWdlICk7CiAgIHZvaWQgKCpUZXhTdWJJbWFnZTNEKSggR0xjb250ZXh0ICpjdHgsIEdM
ZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50
IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50IHpvZmZzZXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMaW50IGRlcHRoLAogICAg
ICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEdMdm9pZCAqcGl4ZWxzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHN0cnVjdCBnbF9waXhlbHN0b3JlX2F0dHJpYiAqcGFja2luZywKICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZ2xfdGV4dHVyZV9vYmplY3QgKnRleE9iaiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZ2xfdGV4dHVyZV9pbWFnZSAqdGV4SW1h
Z2UgKTsKIyAyNDcgImRkLmgiCiAgIHZvaWQgKCpDb3B5VGV4SW1hZ2UxRCkoIEdMY29udGV4dCAq
Y3R4LCBHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xlbnVtIGludGVybmFsRm9ybWF0LCBHTGludCB4LCBHTGludCB5LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBHTGludCBib3JkZXIgKTsKICAgdm9pZCAoKkNv
cHlUZXhJbWFnZTJEKSggR0xjb250ZXh0ICpjdHgsIEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVs
LAogICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMaW50
IHgsIEdMaW50IHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdM
c2l6ZWkgaGVpZ2h0LCBHTGludCBib3JkZXIgKTsKCgoKCiAgIHZvaWQgKCpDb3B5VGV4U3ViSW1h
Z2UxRCkoIEdMY29udGV4dCAqY3R4LCBHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgeG9mZnNldCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCApOwogICB2b2lkICgq
Q29weVRleFN1YkltYWdlMkQpKCBHTGNvbnRleHQgKmN0eCwgR0xlbnVtIHRhcmdldCwgR0xpbnQg
bGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IHhvZmZzZXQsIEdMaW50
IHlvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IHgsIEdMaW50IHks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVp
Z2h0ICk7CiAgIHZvaWQgKCpDb3B5VGV4U3ViSW1hZ2UzRCkoIEdMY29udGV4dCAqY3R4LCBHTGVu
dW0gdGFyZ2V0LCBHTGludCBsZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xp
bnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xpbnQgem9mZnNldCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0xpbnQgeCwgR0xpbnQgeSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQgKTsKCgoKCiAgIEdMYm9vbGVhbiAo
KlRlc3RQcm94eVRleEltYWdlKShHTGNvbnRleHQgKmN0eCwgR0xlbnVtIHRhcmdldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbEZv
cm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdM
ZW51bSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgd2lkdGgs
IEdMaW50IGhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGRl
cHRoLCBHTGludCBib3JkZXIpOwojIDI4NiAiZGQuaCIKICAgdm9pZCAoKkNvbXByZXNzZWRUZXhJ
bWFnZTFEKSggR0xjb250ZXh0ICpjdHgsIEdMZW51bSB0YXJnZXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbEZvcm1hdCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xpbnQgYm9yZGVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGltYWdlU2l6ZSwgY29uc3Qg
R0x2b2lkICpkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZ2xf
dGV4dHVyZV9vYmplY3QgKnRleE9iaiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0IGdsX3RleHR1cmVfaW1hZ2UgKnRleEltYWdlICk7CiAgIHZvaWQgKCpDb21wcmVzc2Vk
VGV4SW1hZ2UyRCkoIEdMY29udGV4dCAqY3R4LCBHTGVudW0gdGFyZ2V0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxGb3JtYXQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVp
Z2h0LCBHTGludCBib3JkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6
ZWkgaW1hZ2VTaXplLCBjb25zdCBHTHZvaWQgKmRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdCBnbF90ZXh0dXJlX29iamVjdCAqdGV4T2JqLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZ2xfdGV4dHVyZV9pbWFnZSAqdGV4SW1hZ2UgKTsK
ICAgdm9pZCAoKkNvbXByZXNzZWRUZXhJbWFnZTNEKSggR0xjb250ZXh0ICpjdHgsIEdMZW51bSB0
YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGxldmVsLCBHTGlu
dCBpbnRlcm5hbEZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXpl
aSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMaW50IGJvcmRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0xzaXplaSBpbWFnZVNpemUsIGNvbnN0IEdMdm9pZCAqZGF0YSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGdsX3RleHR1cmVfb2JqZWN0ICp0ZXhPYmosCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBnbF90ZXh0dXJlX2ltYWdlICp0
ZXhJbWFnZSApOwojIDMxNyAiZGQuaCIKICAgdm9pZCAoKkNvbXByZXNzZWRUZXhTdWJJbWFnZTFE
KShHTGNvbnRleHQgKmN0eCwgR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgeG9mZnNldCwgR0xzaXplaSB3aWR0aCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCBHTHZvaWQg
KmRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGdsX3RleHR1
cmVfb2JqZWN0ICp0ZXhPYmosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry
dWN0IGdsX3RleHR1cmVfaW1hZ2UgKnRleEltYWdlKTsKICAgdm9pZCAoKkNvbXByZXNzZWRUZXhT
dWJJbWFnZTJEKShHTGNvbnRleHQgKmN0eCwgR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9m
ZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBH
TGludCBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGZv
cm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGltYWdlU2l6
ZSwgY29uc3QgR0x2b2lkICpkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0cnVjdCBnbF90ZXh0dXJlX29iamVjdCAqdGV4T2JqLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0cnVjdCBnbF90ZXh0dXJlX2ltYWdlICp0ZXhJbWFnZSk7CiAgIHZvaWQg
KCpDb21wcmVzc2VkVGV4U3ViSW1hZ2UzRCkoR0xjb250ZXh0ICpjdHgsIEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IHhv
ZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50IHpvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xpbnQgaGVpZ2h0LCBHTGludCBkZXB0aCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCBHTHZv
aWQgKmRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGdsX3Rl
eHR1cmVfb2JqZWN0ICp0ZXhPYmosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0IGdsX3RleHR1cmVfaW1hZ2UgKnRleEltYWdlKTsKIyAzNTIgImRkLmgiCiAgIHZvaWQg
KCpCaW5kVGV4dHVyZSkoIEdMY29udGV4dCAqY3R4LCBHTGVudW0gdGFyZ2V0LAogICAgICAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3QgZ2xfdGV4dHVyZV9vYmplY3QgKnRPYmogKTsKCgoKICAgdm9p
ZCAoKkNyZWF0ZVRleHR1cmUpKCBHTGNvbnRleHQgKmN0eCwgc3RydWN0IGdsX3RleHR1cmVfb2Jq
ZWN0ICp0T2JqICk7CgoKCiAgIHZvaWQgKCpEZWxldGVUZXh0dXJlKSggR0xjb250ZXh0ICpjdHgs
IHN0cnVjdCBnbF90ZXh0dXJlX29iamVjdCAqdE9iaiApOwoKCgoKICAgR0xib29sZWFuICgqSXNU
ZXh0dXJlUmVzaWRlbnQpKCBHTGNvbnRleHQgKmN0eCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3QgZ2xfdGV4dHVyZV9vYmplY3QgKnQgKTsKCgoKICAgdm9pZCAoKlBy
aW9yaXRpemVUZXh0dXJlKSggR0xjb250ZXh0ICpjdHgsIHN0cnVjdCBnbF90ZXh0dXJlX29iamVj
dCAqdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xjbGFtcGYgcHJpb3JpdHkgKTsK
CgoKICAgdm9pZCAoKkFjdGl2ZVRleHR1cmUpKCBHTGNvbnRleHQgKmN0eCwgR0x1aW50IHRleFVu
aXROdW1iZXIgKTsKCgoKICAgdm9pZCAoKlVwZGF0ZVRleHR1cmVQYWxldHRlKSggR0xjb250ZXh0
ICpjdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBnbF90ZXh0dXJl
X29iamVjdCAqdE9iaiApOwojIDM5MCAiZGQuaCIKICAgdm9pZCAoKkNvcHlDb2xvclRhYmxlKSgg
R0xjb250ZXh0ICpjdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSB0YXJnZXQs
IEdMZW51bSBpbnRlcm5hbGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQg
eCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCApOwoKICAgdm9pZCAoKkNvcHlDb2xvclN1YlRhYmxl
KSggR0xjb250ZXh0ICpjdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSB0
YXJnZXQsIEdMc2l6ZWkgc3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50
IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGggKTsKCiAgIHZvaWQgKCpDb3B5Q29udm9sdXRpb25G
aWx0ZXIxRCkoIEdMY29udGV4dCAqY3R4LCBHTGVudW0gdGFyZ2V0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHTGVudW0gaW50ZXJuYWxGb3JtYXQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGggKTsK
CiAgIHZvaWQgKCpDb3B5Q29udm9sdXRpb25GaWx0ZXIyRCkoIEdMY29udGV4dCAqY3R4LCBHTGVu
dW0gdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gaW50
ZXJuYWxGb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IHgs
IEdMaW50IHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lk
dGgsIEdMc2l6ZWkgaGVpZ2h0ICk7CiMgNDE2ICJkZC5oIgogICB2b2lkICgqQWxwaGFGdW5jKShH
TGNvbnRleHQgKmN0eCwgR0xlbnVtIGZ1bmMsIEdMZmxvYXQgcmVmKTsKICAgdm9pZCAoKkJsZW5k
Q29sb3IpKEdMY29udGV4dCAqY3R4LCBjb25zdCBHTGZsb2F0IGNvbG9yWzRdKTsKICAgdm9pZCAo
KkJsZW5kRXF1YXRpb24pKEdMY29udGV4dCAqY3R4LCBHTGVudW0gbW9kZSk7CiAgIHZvaWQgKCpC
bGVuZEZ1bmMpKEdMY29udGV4dCAqY3R4LCBHTGVudW0gc2ZhY3RvciwgR0xlbnVtIGRmYWN0b3Ip
OwogICB2b2lkICgqQmxlbmRGdW5jU2VwYXJhdGUpKEdMY29udGV4dCAqY3R4LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdMZW51bSBzZmFjdG9yUkdCLCBHTGVudW0gZGZhY3RvclJHQiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gc2ZhY3RvckEsIEdMZW51bSBkZmFj
dG9yQSk7CiAgIHZvaWQgKCpDbGVhckNvbG9yKShHTGNvbnRleHQgKmN0eCwgY29uc3QgR0xmbG9h
dCBjb2xvcls0XSk7CiAgIHZvaWQgKCpDbGVhckRlcHRoKShHTGNvbnRleHQgKmN0eCwgR0xjbGFt
cGQgZCk7CiAgIHZvaWQgKCpDbGVhckluZGV4KShHTGNvbnRleHQgKmN0eCwgR0x1aW50IGluZGV4
KTsKICAgdm9pZCAoKkNsZWFyU3RlbmNpbCkoR0xjb250ZXh0ICpjdHgsIEdMaW50IHMpOwogICB2
b2lkICgqQ2xpcFBsYW5lKShHTGNvbnRleHQgKmN0eCwgR0xlbnVtIHBsYW5lLCBjb25zdCBHTGZs
b2F0ICplcXVhdGlvbiApOwogICB2b2lkICgqQ29sb3JNYXNrKShHTGNvbnRleHQgKmN0eCwgR0xi
b29sZWFuIHJtYXNrLCBHTGJvb2xlYW4gZ21hc2ssCiAgICAgICAgICAgICAgICAgICAgIEdMYm9v
bGVhbiBibWFzaywgR0xib29sZWFuIGFtYXNrICk7CiAgIHZvaWQgKCpDb2xvck1hdGVyaWFsKShH
TGNvbnRleHQgKmN0eCwgR0xlbnVtIGZhY2UsIEdMZW51bSBtb2RlKTsKICAgdm9pZCAoKkN1bGxG
YWNlKShHTGNvbnRleHQgKmN0eCwgR0xlbnVtIG1vZGUpOwogICB2b2lkICgqRnJvbnRGYWNlKShH
TGNvbnRleHQgKmN0eCwgR0xlbnVtIG1vZGUpOwogICB2b2lkICgqRGVwdGhGdW5jKShHTGNvbnRl
eHQgKmN0eCwgR0xlbnVtIGZ1bmMpOwogICB2b2lkICgqRGVwdGhNYXNrKShHTGNvbnRleHQgKmN0
eCwgR0xib29sZWFuIGZsYWcpOwogICB2b2lkICgqRGVwdGhSYW5nZSkoR0xjb250ZXh0ICpjdHgs
IEdMY2xhbXBkIG5lYXJ2YWwsIEdMY2xhbXBkIGZhcnZhbCk7CiAgIHZvaWQgKCpFbmFibGUpKEdM
Y29udGV4dCogY3R4LCBHTGVudW0gY2FwLCBHTGJvb2xlYW4gc3RhdGUpOwogICB2b2lkICgqRm9n
ZnYpKEdMY29udGV4dCAqY3R4LCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMZmxvYXQgKnBhcmFtcyk7
CiAgIHZvaWQgKCpIaW50KShHTGNvbnRleHQgKmN0eCwgR0xlbnVtIHRhcmdldCwgR0xlbnVtIG1v
ZGUpOwogICB2b2lkICgqSW5kZXhNYXNrKShHTGNvbnRleHQgKmN0eCwgR0x1aW50IG1hc2spOwog
ICB2b2lkICgqTGlnaHRmdikoR0xjb250ZXh0ICpjdHgsIEdMZW51bSBsaWdodCwKICAgICAgICAg
ICAgICAgICAgIEdMZW51bSBwbmFtZSwgY29uc3QgR0xmbG9hdCAqcGFyYW1zICk7CiAgIHZvaWQg
KCpMaWdodE1vZGVsZnYpKEdMY29udGV4dCAqY3R4LCBHTGVudW0gcG5hbWUsIGNvbnN0IEdMZmxv
YXQgKnBhcmFtcyk7CiAgIHZvaWQgKCpMaW5lU3RpcHBsZSkoR0xjb250ZXh0ICpjdHgsIEdMaW50
IGZhY3RvciwgR0x1c2hvcnQgcGF0dGVybiApOwogICB2b2lkICgqTGluZVdpZHRoKShHTGNvbnRl
eHQgKmN0eCwgR0xmbG9hdCB3aWR0aCk7CiAgIHZvaWQgKCpMb2dpY09wY29kZSkoR0xjb250ZXh0
ICpjdHgsIEdMZW51bSBvcGNvZGUpOwogICB2b2lkICgqUG9pbnRQYXJhbWV0ZXJmdikoR0xjb250
ZXh0ICpjdHgsIEdMZW51bSBwbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IEdMZmxvYXQgKnBhcmFtcyk7CiAgIHZvaWQgKCpQb2ludFNpemUpKEdMY29udGV4dCAqY3R4LCBH
TGZsb2F0IHNpemUpOwogICB2b2lkICgqUG9seWdvbk1vZGUpKEdMY29udGV4dCAqY3R4LCBHTGVu
dW0gZmFjZSwgR0xlbnVtIG1vZGUpOwogICB2b2lkICgqUG9seWdvbk9mZnNldCkoR0xjb250ZXh0
ICpjdHgsIEdMZmxvYXQgZmFjdG9yLCBHTGZsb2F0IHVuaXRzKTsKICAgdm9pZCAoKlBvbHlnb25T
dGlwcGxlKShHTGNvbnRleHQgKmN0eCwgY29uc3QgR0x1Ynl0ZSAqbWFzayApOwogICB2b2lkICgq
UmVuZGVyTW9kZSkoR0xjb250ZXh0ICpjdHgsIEdMZW51bSBtb2RlICk7CiAgIHZvaWQgKCpTY2lz
c29yKShHTGNvbnRleHQgKmN0eCwgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3LCBHTHNpemVp
IGgpOwogICB2b2lkICgqU2hhZGVNb2RlbCkoR0xjb250ZXh0ICpjdHgsIEdMZW51bSBtb2RlKTsK
ICAgdm9pZCAoKlN0ZW5jaWxGdW5jKShHTGNvbnRleHQgKmN0eCwgR0xlbnVtIGZ1bmMsIEdMaW50
IHJlZiwgR0x1aW50IG1hc2spOwogICB2b2lkICgqU3RlbmNpbE1hc2spKEdMY29udGV4dCAqY3R4
LCBHTHVpbnQgbWFzayk7CiAgIHZvaWQgKCpTdGVuY2lsT3ApKEdMY29udGV4dCAqY3R4LCBHTGVu
dW0gZmFpbCwgR0xlbnVtIHpmYWlsLCBHTGVudW0genBhc3MpOwogICB2b2lkICgqQWN0aXZlU3Rl
bmNpbEZhY2UpKEdMY29udGV4dCAqY3R4LCBHTHVpbnQgZmFjZSk7CiAgIHZvaWQgKCpUZXhHZW4p
KEdMY29udGV4dCAqY3R4LCBHTGVudW0gY29vcmQsIEdMZW51bSBwbmFtZSwKICAgICAgICAgICAg
ICAgICAgY29uc3QgR0xmbG9hdCAqcGFyYW1zKTsKICAgdm9pZCAoKlRleEVudikoR0xjb250ZXh0
ICpjdHgsIEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwKICAgICAgICAgICAgICAgICAgY29u
c3QgR0xmbG9hdCAqcGFyYW0pOwogICB2b2lkICgqVGV4UGFyYW1ldGVyKShHTGNvbnRleHQgKmN0
eCwgR0xlbnVtIHRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGdsX3RleHR1
cmVfb2JqZWN0ICp0ZXhPYmosCiAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBwbmFtZSwg
Y29uc3QgR0xmbG9hdCAqcGFyYW1zKTsKICAgdm9pZCAoKlRleHR1cmVNYXRyaXgpKEdMY29udGV4
dCAqY3R4LCBHTHVpbnQgdW5pdCwgY29uc3QgR0xtYXRyaXggKm1hdCk7CiAgIHZvaWQgKCpWaWV3
cG9ydCkoR0xjb250ZXh0ICpjdHgsIEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgdywgR0xzaXpl
aSBoKTsKCgoKCgoKICAgdm9pZCAoKlZlcnRleFBvaW50ZXIpKEdMY29udGV4dCAqY3R4LCBHTGlu
dCBzaXplLCBHTGVudW0gdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgc3Ry
aWRlLCBjb25zdCBHTHZvaWQgKnB0cik7CiAgIHZvaWQgKCpOb3JtYWxQb2ludGVyKShHTGNvbnRl
eHQgKmN0eCwgR0xlbnVtIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHN0
cmlkZSwgY29uc3QgR0x2b2lkICpwdHIpOwogICB2b2lkICgqQ29sb3JQb2ludGVyKShHTGNvbnRl
eHQgKmN0eCwgR0xpbnQgc2l6ZSwgR0xlbnVtIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAg
IEdMc2l6ZWkgc3RyaWRlLCBjb25zdCBHTHZvaWQgKnB0cik7CiAgIHZvaWQgKCpGb2dDb29yZFBv
aW50ZXIpKEdMY29udGV4dCAqY3R4LCBHTGVudW0gdHlwZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0xzaXplaSBzdHJpZGUsIGNvbnN0IEdMdm9pZCAqcHRyKTsKICAgdm9pZCAoKkluZGV4
UG9pbnRlcikoR0xjb250ZXh0ICpjdHgsIEdMZW51bSB0eXBlLAogICAgICAgICAgICAgICAgICAg
ICAgICBHTHNpemVpIHN0cmlkZSwgY29uc3QgR0x2b2lkICpwdHIpOwogICB2b2lkICgqU2Vjb25k
YXJ5Q29sb3JQb2ludGVyKShHTGNvbnRleHQgKmN0eCwgR0xpbnQgc2l6ZSwgR0xlbnVtIHR5cGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgc3RyaWRlLCBjb25zdCBH
THZvaWQgKnB0cik7CiAgIHZvaWQgKCpUZXhDb29yZFBvaW50ZXIpKEdMY29udGV4dCAqY3R4LCBH
TGludCBzaXplLCBHTGVudW0gdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXpl
aSBzdHJpZGUsIGNvbnN0IEdMdm9pZCAqcHRyKTsKICAgdm9pZCAoKkVkZ2VGbGFnUG9pbnRlciko
R0xjb250ZXh0ICpjdHgsIEdMc2l6ZWkgc3RyaWRlLCBjb25zdCBHTHZvaWQgKnB0cik7CiAgIHZv
aWQgKCpWZXJ0ZXhBdHRyaWJQb2ludGVyKShHTGNvbnRleHQgKmN0eCwgR0x1aW50IGluZGV4LCBH
TGludCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIHR5cGUsIEdM
c2l6ZWkgc3RyaWRlLCBjb25zdCBHTHZvaWQgKnB0cik7CgoKCgoKCiAgIEdMYm9vbGVhbiAoKkdl
dEJvb2xlYW52KShHTGNvbnRleHQgKmN0eCwgR0xlbnVtIHBuYW1lLCBHTGJvb2xlYW4gKnJlc3Vs
dCk7CiAgIEdMYm9vbGVhbiAoKkdldERvdWJsZXYpKEdMY29udGV4dCAqY3R4LCBHTGVudW0gcG5h
bWUsIEdMZG91YmxlICpyZXN1bHQpOwogICBHTGJvb2xlYW4gKCpHZXRGbG9hdHYpKEdMY29udGV4
dCAqY3R4LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgKnJlc3VsdCk7CiAgIEdMYm9vbGVhbiAoKkdl
dEludGVnZXJ2KShHTGNvbnRleHQgKmN0eCwgR0xlbnVtIHBuYW1lLCBHTGludCAqcmVzdWx0KTsK
ICAgR0xib29sZWFuICgqR2V0UG9pbnRlcnYpKEdMY29udGV4dCAqY3R4LCBHTGVudW0gcG5hbWUs
IEdMdm9pZCAqKnJlc3VsdCk7CgoKCgoKICAgR0x1aW50IE5lZWRWYWxpZGF0ZTsKCgoKCiAgIHZv
aWQgKCpWYWxpZGF0ZVRubE1vZHVsZSkoIEdMY29udGV4dCAqY3R4LCBHTHVpbnQgbmV3X3N0YXRl
ICk7CiMgNTI4ICJkZC5oIgogICBHTHVpbnQgQ3VycmVudEV4ZWNQcmltaXRpdmU7CgoKCgogICBH
THVpbnQgQ3VycmVudFNhdmVQcmltaXRpdmU7CgoKCgoKCgogICBHTHVpbnQgTmVlZEZsdXNoOwoK
CgoKCgoKICAgdm9pZCAoKkZsdXNoVmVydGljZXMpKCBHTGNvbnRleHQgKmN0eCwgR0x1aW50IGZs
YWdzICk7CiMgNTYwICJkZC5oIgogICB2b2lkICgqTGlnaHRpbmdTcGFjZUNoYW5nZSkoIEdMY29u
dGV4dCAqY3R4ICk7CgoKCgogICB2b2lkICgqTmV3TGlzdCkoIEdMY29udGV4dCAqY3R4LCBHTHVp
bnQgbGlzdCwgR0xlbnVtIG1vZGUgKTsKICAgdm9pZCAoKkVuZExpc3QpKCBHTGNvbnRleHQgKmN0
eCApOwoKCgoKCiAgIHZvaWQgKCpCZWdpbkNhbGxMaXN0KSggR0xjb250ZXh0ICpjdHgsIEdMdWlu
dCBsaXN0ICk7CiAgIHZvaWQgKCpFbmRDYWxsTGlzdCkoIEdMY29udGV4dCAqY3R4ICk7CgoKCgog
ICB2b2lkICgqTWFrZUN1cnJlbnQpKCBHTGNvbnRleHQgKmN0eCwgR0xmcmFtZWJ1ZmZlciAqZHJh
d0J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgR0xmcmFtZWJ1ZmZlciAqcmVhZEJ1ZmZl
ciApOwoKCgoKICAgdm9pZCAoKkxvY2tBcnJheXNFWFQpKCBHTGNvbnRleHQgKmN0eCwgR0xpbnQg
Zmlyc3QsIEdMc2l6ZWkgY291bnQgKTsKICAgdm9pZCAoKlVubG9ja0FycmF5c0VYVCkoIEdMY29u
dGV4dCAqY3R4ICk7CgoKfTsKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICB2b2lkICgqQXJyYXlF
bGVtZW50KSggR0xpbnQgKTsKICAgdm9pZCAoKkNvbG9yM2YpKCBHTGZsb2F0LCBHTGZsb2F0LCBH
TGZsb2F0ICk7CiAgIHZvaWQgKCpDb2xvcjNmdikoIGNvbnN0IEdMZmxvYXQgKiApOwogICB2b2lk
ICgqQ29sb3IzdWIpKCBHTHVieXRlLCBHTHVieXRlLCBHTHVieXRlICk7CiAgIHZvaWQgKCpDb2xv
cjN1YnYpKCBjb25zdCBHTHVieXRlICogKTsKICAgdm9pZCAoKkNvbG9yNGYpKCBHTGZsb2F0LCBH
TGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0ICk7CiAgIHZvaWQgKCpDb2xvcjRmdikoIGNvbnN0IEdM
ZmxvYXQgKiApOwogICB2b2lkICgqQ29sb3I0dWIpKCBHTHVieXRlLCBHTHVieXRlLCBHTHVieXRl
LCBHTHVieXRlICk7CiAgIHZvaWQgKCpDb2xvcjR1YnYpKCBjb25zdCBHTHVieXRlICogKTsKICAg
dm9pZCAoKkVkZ2VGbGFnKSggR0xib29sZWFuICk7CiAgIHZvaWQgKCpFZGdlRmxhZ3YpKCBjb25z
dCBHTGJvb2xlYW4gKiApOwogICB2b2lkICgqRXZhbENvb3JkMWYpKCBHTGZsb2F0ICk7CiAgIHZv
aWQgKCpFdmFsQ29vcmQxZnYpKCBjb25zdCBHTGZsb2F0ICogKTsKICAgdm9pZCAoKkV2YWxDb29y
ZDJmKSggR0xmbG9hdCwgR0xmbG9hdCApOwogICB2b2lkICgqRXZhbENvb3JkMmZ2KSggY29uc3Qg
R0xmbG9hdCAqICk7CiAgIHZvaWQgKCpFdmFsUG9pbnQxKSggR0xpbnQgKTsKICAgdm9pZCAoKkV2
YWxQb2ludDIpKCBHTGludCwgR0xpbnQgKTsKICAgdm9pZCAoKkZvZ0Nvb3JkZkVYVCkoIEdMZmxv
YXQgKTsKICAgdm9pZCAoKkZvZ0Nvb3JkZnZFWFQpKCBjb25zdCBHTGZsb2F0ICogKTsKICAgdm9p
ZCAoKkluZGV4aSkoIEdMaW50ICk7CiAgIHZvaWQgKCpJbmRleGl2KSggY29uc3QgR0xpbnQgKiAp
OwogICB2b2lkICgqTWF0ZXJpYWxmdikoIEdMZW51bSBmYWNlLCBHTGVudW0gcG5hbWUsIGNvbnN0
IEdMZmxvYXQgKiApOwogICB2b2lkICgqTXVsdGlUZXhDb29yZDFmQVJCKSggR0xlbnVtLCBHTGZs
b2F0ICk7CiAgIHZvaWQgKCpNdWx0aVRleENvb3JkMWZ2QVJCKSggR0xlbnVtLCBjb25zdCBHTGZs
b2F0ICogKTsKICAgdm9pZCAoKk11bHRpVGV4Q29vcmQyZkFSQikoIEdMZW51bSwgR0xmbG9hdCwg
R0xmbG9hdCApOwogICB2b2lkICgqTXVsdGlUZXhDb29yZDJmdkFSQikoIEdMZW51bSwgY29uc3Qg
R0xmbG9hdCAqICk7CiAgIHZvaWQgKCpNdWx0aVRleENvb3JkM2ZBUkIpKCBHTGVudW0sIEdMZmxv
YXQsIEdMZmxvYXQsIEdMZmxvYXQgKTsKICAgdm9pZCAoKk11bHRpVGV4Q29vcmQzZnZBUkIpKCBH
TGVudW0sIGNvbnN0IEdMZmxvYXQgKiApOwogICB2b2lkICgqTXVsdGlUZXhDb29yZDRmQVJCKSgg
R0xlbnVtLCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0ICk7CiAgIHZvaWQgKCpN
dWx0aVRleENvb3JkNGZ2QVJCKSggR0xlbnVtLCBjb25zdCBHTGZsb2F0ICogKTsKICAgdm9pZCAo
Kk5vcm1hbDNmKSggR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCApOwogICB2b2lkICgqTm9ybWFs
M2Z2KSggY29uc3QgR0xmbG9hdCAqICk7CiAgIHZvaWQgKCpTZWNvbmRhcnlDb2xvcjNmRVhUKSgg
R0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCApOwogICB2b2lkICgqU2Vjb25kYXJ5Q29sb3IzZnZF
WFQpKCBjb25zdCBHTGZsb2F0ICogKTsKICAgdm9pZCAoKlNlY29uZGFyeUNvbG9yM3ViRVhUKSgg
R0x1Ynl0ZSwgR0x1Ynl0ZSwgR0x1Ynl0ZSApOwogICB2b2lkICgqU2Vjb25kYXJ5Q29sb3IzdWJ2
RVhUKSggY29uc3QgR0x1Ynl0ZSAqICk7CiAgIHZvaWQgKCpUZXhDb29yZDFmKSggR0xmbG9hdCAp
OwogICB2b2lkICgqVGV4Q29vcmQxZnYpKCBjb25zdCBHTGZsb2F0ICogKTsKICAgdm9pZCAoKlRl
eENvb3JkMmYpKCBHTGZsb2F0LCBHTGZsb2F0ICk7CiAgIHZvaWQgKCpUZXhDb29yZDJmdikoIGNv
bnN0IEdMZmxvYXQgKiApOwogICB2b2lkICgqVGV4Q29vcmQzZikoIEdMZmxvYXQsIEdMZmxvYXQs
IEdMZmxvYXQgKTsKICAgdm9pZCAoKlRleENvb3JkM2Z2KSggY29uc3QgR0xmbG9hdCAqICk7CiAg
IHZvaWQgKCpUZXhDb29yZDRmKSggR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCAp
OwogICB2b2lkICgqVGV4Q29vcmQ0ZnYpKCBjb25zdCBHTGZsb2F0ICogKTsKICAgdm9pZCAoKlZl
cnRleDJmKSggR0xmbG9hdCwgR0xmbG9hdCApOwogICB2b2lkICgqVmVydGV4MmZ2KSggY29uc3Qg
R0xmbG9hdCAqICk7CiAgIHZvaWQgKCpWZXJ0ZXgzZikoIEdMZmxvYXQsIEdMZmxvYXQsIEdMZmxv
YXQgKTsKICAgdm9pZCAoKlZlcnRleDNmdikoIGNvbnN0IEdMZmxvYXQgKiApOwogICB2b2lkICgq
VmVydGV4NGYpKCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0LCBHTGZsb2F0ICk7CiAgIHZvaWQg
KCpWZXJ0ZXg0ZnYpKCBjb25zdCBHTGZsb2F0ICogKTsKICAgdm9pZCAoKkNhbGxMaXN0KSggR0x1
aW50ICk7CiAgIHZvaWQgKCpCZWdpbikoIEdMZW51bSApOwogICB2b2lkICgqRW5kKSggdm9pZCAp
OwogICB2b2lkICgqVmVydGV4QXR0cmliNGZOVikoIEdMdWludCBpbmRleCwgR0xmbG9hdCB4LCBH
TGZsb2F0IHksIEdMZmxvYXQgeiwgR0xmbG9hdCB3ICk7CiAgIHZvaWQgKCpWZXJ0ZXhBdHRyaWI0
ZnZOVikoIEdMdWludCBpbmRleCwgY29uc3QgR0xmbG9hdCAqdiApOwojIDY2OCAiZGQuaCIKICAg
dm9pZCAoKlJlY3RmKSggR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCwgR0xmbG9hdCApOwoKCgog
ICB2b2lkICgqRHJhd0FycmF5cykoIEdMZW51bSBtb2RlLCBHTGludCBzdGFydCwgR0xzaXplaSBj
b3VudCApOwogICB2b2lkICgqRHJhd0VsZW1lbnRzKSggR0xlbnVtIG1vZGUsIEdMc2l6ZWkgY291
bnQsIEdMZW51bSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR0x2b2lkICpp
bmRpY2VzICk7CiAgIHZvaWQgKCpEcmF3UmFuZ2VFbGVtZW50cykoIEdMZW51bSBtb2RlLCBHTHVp
bnQgc3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMdWludCBlbmQsIEdMc2l6
ZWkgY291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSB0eXBlLCBjb25z
dCBHTHZvaWQgKmluZGljZXMgKTsKCgoKCgogICB2b2lkICgqRXZhbE1lc2gxKSggR0xlbnVtIG1v
ZGUsIEdMaW50IGkxLCBHTGludCBpMiApOwogICB2b2lkICgqRXZhbE1lc2gyKSggR0xlbnVtIG1v
ZGUsIEdMaW50IGkxLCBHTGludCBpMiwgR0xpbnQgajEsIEdMaW50IGoyICk7CiMgNjkzICJkZC5o
IgogICBHTGJvb2xlYW4gcHJlZmVyX2Zsb2F0X2NvbG9yczsKCgoKfSBHTHZlcnRleGZvcm1hdDsK
IyAxNjAwICJtdHlwZXMuaCIgMgoKCgoKCgoKc3RydWN0IGdsX3RubF9tb2R1bGUgewoKCiAgIEdM
dmVydGV4Zm9ybWF0ICpDdXJyZW50OwoKCgoKICAgdm9pZCAqU3dhcHBlZFsoc2l6ZW9mKEdMdmVy
dGV4Zm9ybWF0KSAvIHNpemVvZih2b2lkICopKV1bMl07CiAgIEdMdWludCBTd2FwQ291bnQ7Cn07
CiMgMTYyNiAibXR5cGVzLmgiCnN0cnVjdCBfX0dMY29udGV4dFJlYyB7CgoKCgoKICAgX19HTGlt
cG9ydHMgaW1wb3J0czsKICAgX19HTGV4cG9ydHMgZXhwb3J0czsKCgogICBzdHJ1Y3QgZ2xfc2hh
cmVkX3N0YXRlICpTaGFyZWQ7CgoKICAgc3RydWN0IF9nbGFwaV90YWJsZSAqU2F2ZTsKICAgc3Ry
dWN0IF9nbGFwaV90YWJsZSAqRXhlYzsKICAgc3RydWN0IF9nbGFwaV90YWJsZSAqQ3VycmVudERp
c3BhdGNoOwoKICAgR0xib29sZWFuIEV4ZWNQcmVmZXJzRmxvYXQ7CiAgIEdMYm9vbGVhbiBTYXZl
UHJlZmVyc0Zsb2F0OwoKICAgR0x2aXN1YWwgVmlzdWFsOwogICBHTGZyYW1lYnVmZmVyICpEcmF3
QnVmZmVyOwogICBHTGZyYW1lYnVmZmVyICpSZWFkQnVmZmVyOwoKCgoKICAgc3RydWN0IGRkX2Z1
bmN0aW9uX3RhYmxlIERyaXZlcjsKCiAgIHZvaWQgKkRyaXZlckN0eDsKICAgdm9pZCAqRHJpdmVy
TWdyQ3R4OwoKCiAgIHN0cnVjdCBnbF9jb25zdGFudHMgQ29uc3Q7CgoKICAgc3RydWN0IG1hdHJp
eF9zdGFjayBNb2RlbHZpZXdNYXRyaXhTdGFjazsKICAgc3RydWN0IG1hdHJpeF9zdGFjayBQcm9q
ZWN0aW9uTWF0cml4U3RhY2s7CiAgIHN0cnVjdCBtYXRyaXhfc3RhY2sgQ29sb3JNYXRyaXhTdGFj
azsKICAgc3RydWN0IG1hdHJpeF9zdGFjayBUZXh0dXJlTWF0cml4U3RhY2tbOF07CiAgIHN0cnVj
dCBtYXRyaXhfc3RhY2sgUHJvZ3JhbU1hdHJpeFN0YWNrWzhdOwogICBzdHJ1Y3QgbWF0cml4X3N0
YWNrICpDdXJyZW50U3RhY2s7CgoKICAgR0xtYXRyaXggX01vZGVsUHJvamVjdE1hdHJpeDsKCgog
ICBHTHVpbnQgQ2FsbERlcHRoOwogICBHTGJvb2xlYW4gRXhlY3V0ZUZsYWc7CiAgIEdMYm9vbGVh
biBDb21waWxlRmxhZzsKICAgTm9kZSAqQ3VycmVudExpc3RQdHI7CiAgIEdMdWludCBDdXJyZW50
TGlzdE51bTsKICAgTm9kZSAqQ3VycmVudEJsb2NrOwogICBHTHVpbnQgQ3VycmVudFBvczsKCgog
ICBzdHJ1Y3QgZ2xfZXh0ZW5zaW9ucyBFeHRlbnNpb25zOwoKCiAgIEdMdWludCBBdHRyaWJTdGFj
a0RlcHRoOwogICBzdHJ1Y3QgZ2xfYXR0cmliX25vZGUgKkF0dHJpYlN0YWNrWzE2XTsKCgogICBz
dHJ1Y3QgZ2xfYWNjdW1fYXR0cmliIEFjY3VtOwogICBzdHJ1Y3QgZ2xfY29sb3JidWZmZXJfYXR0
cmliIENvbG9yOwogICBzdHJ1Y3QgZ2xfY3VycmVudF9hdHRyaWIgQ3VycmVudDsKICAgc3RydWN0
IGdsX2RlcHRoYnVmZmVyX2F0dHJpYiBEZXB0aDsKICAgc3RydWN0IGdsX2V2YWxfYXR0cmliIEV2
YWw7CiAgIHN0cnVjdCBnbF9mb2dfYXR0cmliIEZvZzsKICAgc3RydWN0IGdsX2hpbnRfYXR0cmli
IEhpbnQ7CiAgIHN0cnVjdCBnbF9saWdodF9hdHRyaWIgTGlnaHQ7CiAgIHN0cnVjdCBnbF9saW5l
X2F0dHJpYiBMaW5lOwogICBzdHJ1Y3QgZ2xfbGlzdF9hdHRyaWIgTGlzdDsKICAgc3RydWN0IGds
X211bHRpc2FtcGxlX2F0dHJpYiBNdWx0aXNhbXBsZTsKICAgc3RydWN0IGdsX3BpeGVsX2F0dHJp
YiBQaXhlbDsKICAgc3RydWN0IGdsX3BvaW50X2F0dHJpYiBQb2ludDsKICAgc3RydWN0IGdsX3Bv
bHlnb25fYXR0cmliIFBvbHlnb247CiAgIEdMdWludCBQb2x5Z29uU3RpcHBsZVszMl07CiAgIHN0
cnVjdCBnbF9zY2lzc29yX2F0dHJpYiBTY2lzc29yOwogICBzdHJ1Y3QgZ2xfc3RlbmNpbF9hdHRy
aWIgU3RlbmNpbDsKICAgc3RydWN0IGdsX3RleHR1cmVfYXR0cmliIFRleHR1cmU7CiAgIHN0cnVj
dCBnbF90cmFuc2Zvcm1fYXR0cmliIFRyYW5zZm9ybTsKICAgc3RydWN0IGdsX3ZpZXdwb3J0X2F0
dHJpYiBWaWV3cG9ydDsKCgogICBzdHJ1Y3QgZ2xfaGlzdG9ncmFtX2F0dHJpYiBIaXN0b2dyYW07
CiAgIHN0cnVjdCBnbF9taW5tYXhfYXR0cmliIE1pbk1heDsKICAgc3RydWN0IGdsX2NvbnZvbHV0
aW9uX2F0dHJpYiBDb252b2x1dGlvbjFEOwogICBzdHJ1Y3QgZ2xfY29udm9sdXRpb25fYXR0cmli
IENvbnZvbHV0aW9uMkQ7CiAgIHN0cnVjdCBnbF9jb252b2x1dGlvbl9hdHRyaWIgU2VwYXJhYmxl
MkQ7CgoKICAgR0x1aW50IENsaWVudEF0dHJpYlN0YWNrRGVwdGg7CiAgIHN0cnVjdCBnbF9hdHRy
aWJfbm9kZSAqQ2xpZW50QXR0cmliU3RhY2tbMTZdOwoKCiAgIHN0cnVjdCBnbF9hcnJheV9hdHRy
aWIgQXJyYXk7CiAgIHN0cnVjdCBnbF9waXhlbHN0b3JlX2F0dHJpYiBQYWNrOwogICBzdHJ1Y3Qg
Z2xfcGl4ZWxzdG9yZV9hdHRyaWIgVW5wYWNrOwoKICAgc3RydWN0IGdsX2V2YWx1YXRvcnMgRXZh
bE1hcDsKICAgc3RydWN0IGdsX2ZlZWRiYWNrIEZlZWRiYWNrOwogICBzdHJ1Y3QgZ2xfc2VsZWN0
aW9uIFNlbGVjdDsKCiAgIHN0cnVjdCBnbF9jb2xvcl90YWJsZSBDb2xvclRhYmxlOwogICBzdHJ1
Y3QgZ2xfY29sb3JfdGFibGUgUHJveHlDb2xvclRhYmxlOwogICBzdHJ1Y3QgZ2xfY29sb3JfdGFi
bGUgUG9zdENvbnZvbHV0aW9uQ29sb3JUYWJsZTsKICAgc3RydWN0IGdsX2NvbG9yX3RhYmxlIFBy
b3h5UG9zdENvbnZvbHV0aW9uQ29sb3JUYWJsZTsKICAgc3RydWN0IGdsX2NvbG9yX3RhYmxlIFBv
c3RDb2xvck1hdHJpeENvbG9yVGFibGU7CiAgIHN0cnVjdCBnbF9jb2xvcl90YWJsZSBQcm94eVBv
c3RDb2xvck1hdHJpeENvbG9yVGFibGU7CgogICBzdHJ1Y3QgdmVydGV4X3Byb2dyYW1fc3RhdGUg
VmVydGV4UHJvZ3JhbTsKCiAgIEdMZW51bSBFcnJvclZhbHVlOwogICBHTGVudW0gUmVuZGVyTW9k
ZTsKICAgR0x1aW50IE5ld1N0YXRlOwoKCiAgIEdMdWludCBfVHJpYW5nbGVDYXBzOwogICBHTHVp
bnQgX0ltYWdlVHJhbnNmZXJTdGF0ZTsKICAgR0xmbG9hdCBfRXllWkRpclszXTsKICAgR0xmbG9h
dCBfTW9kZWxWaWV3SW52U2NhbGU7CiAgIEdMdWludCBfTmVlZEV5ZUNvb3JkczsKICAgR0x1aW50
IF9OZWVkTm9ybWFsczsKCiAgIHN0cnVjdCBnbF9zaGluZV90YWIgKl9TaGluZVRhYmxlWzJdOwog
ICBzdHJ1Y3QgZ2xfc2hpbmVfdGFiICpfU2hpbmVUYWJMaXN0OwoKICAgc3RydWN0IGdsX2xpc3Rf
ZXh0ZW5zaW9ucyBsaXN0ZXh0OwoKCiAgIEdMYm9vbGVhbiBPY2NsdXNpb25SZXN1bHQ7CiAgIEdM
Ym9vbGVhbiBPY2NsdXNpb25SZXN1bHRTYXZlZDsKICAgR0x1aW50IF9GYWNpbmc7CgoKCgoKICAg
R0x1aW50IERlcHRoTWF4OwogICBHTGZsb2F0IERlcHRoTWF4RjsKICAgR0xmbG9hdCBNUkQ7CgoK
ICAgR0xib29sZWFuIENhdGNoU2lnbmFsczsKCgogICBHTGJvb2xlYW4gTm9SYXN0ZXI7CiAgIEdM
Ym9vbGVhbiBGaXJzdFRpbWVDdXJyZW50OwoKCiAgIEdMYm9vbGVhbiBOb0RpdGhlcjsKCiAgIEdM
Ym9vbGVhbiBSZW5kZXJpbmc7CgoKCgoKICAgdm9pZCAqVHJhY2VEaXNwYXRjaDsKICAgdm9pZCAq
VHJhY2VDdHg7CgoKCiAgIHN0cnVjdCBnbF90bmxfbW9kdWxlIFRubE1vZHVsZTsKCgoKCiAgIHZv
aWQgKnN3cmFzdF9jb250ZXh0OwogICB2b2lkICpzd3NldHVwX2NvbnRleHQ7CiAgIHZvaWQgKnN3
dG5sX2NvbnRleHQ7CiAgIHZvaWQgKnN3dG5sX2ltOwogICB2b2lkICphY2FjaGVfY29udGV4dDsK
ICAgdm9pZCAqYWVsdF9jb250ZXh0Owp9OwoKCgpleHRlcm4gY29uc3QgY2hhciAqX21lc2FfcHJp
bV9uYW1lWzB4MDAwOSArNF07CgoKCgoKCmV4dGVybiBpbnQgTUVTQV9WRVJCT1NFOwpleHRlcm4g
aW50IE1FU0FfREVCVUdfRkxBR1M7CiMgMTgyMyAibXR5cGVzLmgiCmVudW0gX3ZlcmJvc2Ugewog
ICBWRVJCT1NFX1ZBUlJBWSA9IDB4MDAwMSwKICAgVkVSQk9TRV9URVhUVVJFID0gMHgwMDAyLAog
ICBWRVJCT1NFX0lNTUVESUFURSA9IDB4MDAwNCwKICAgVkVSQk9TRV9QSVBFTElORSA9IDB4MDAw
OCwKICAgVkVSQk9TRV9EUklWRVIgPSAweDAwMTAsCiAgIFZFUkJPU0VfU1RBVEUgPSAweDAwMjAs
CiAgIFZFUkJPU0VfQVBJID0gMHgwMDQwLAogICBWRVJCT1NFX0RJU1BMQVlfTElTVCA9IDB4MDEw
MCwKICAgVkVSQk9TRV9MSUdIVElORyA9IDB4MDIwMCwKICAgVkVSQk9TRV9QUklNUyA9IDB4MDQw
MCwKICAgVkVSQk9TRV9WRVJUUyA9IDB4MDgwMAp9OwoKCmVudW0gX2RlYnVnIHsKICAgREVCVUdf
QUxXQVlTX0ZMVVNIID0gMHgxCn07CiMgMzQgImNvbnRleHQuaCIgMgojIDU4ICJjb250ZXh0Lmgi
CmV4dGVybiBHTHZpc3VhbCAqCl9tZXNhX2NyZWF0ZV92aXN1YWwoIEdMYm9vbGVhbiByZ2JGbGFn
LAogICAgICAgICAgICAgICAgICAgICBHTGJvb2xlYW4gZGJGbGFnLAogICAgICAgICAgICAgICAg
ICAgICBHTGJvb2xlYW4gc3RlcmVvRmxhZywKICAgICAgICAgICAgICAgICAgICAgR0xpbnQgcmVk
Qml0cywKICAgICAgICAgICAgICAgICAgICAgR0xpbnQgZ3JlZW5CaXRzLAogICAgICAgICAgICAg
ICAgICAgICBHTGludCBibHVlQml0cywKICAgICAgICAgICAgICAgICAgICAgR0xpbnQgYWxwaGFC
aXRzLAogICAgICAgICAgICAgICAgICAgICBHTGludCBpbmRleEJpdHMsCiAgICAgICAgICAgICAg
ICAgICAgIEdMaW50IGRlcHRoQml0cywKICAgICAgICAgICAgICAgICAgICAgR0xpbnQgc3RlbmNp
bEJpdHMsCiAgICAgICAgICAgICAgICAgICAgIEdMaW50IGFjY3VtUmVkQml0cywKICAgICAgICAg
ICAgICAgICAgICAgR0xpbnQgYWNjdW1HcmVlbkJpdHMsCiAgICAgICAgICAgICAgICAgICAgIEdM
aW50IGFjY3VtQmx1ZUJpdHMsCiAgICAgICAgICAgICAgICAgICAgIEdMaW50IGFjY3VtQWxwaGFC
aXRzLAogICAgICAgICAgICAgICAgICAgICBHTGludCBudW1TYW1wbGVzICk7CgpleHRlcm4gR0xi
b29sZWFuCl9tZXNhX2luaXRpYWxpemVfdmlzdWFsKCBHTHZpc3VhbCAqdiwKICAgICAgICAgICAg
ICAgICAgICAgICAgIEdMYm9vbGVhbiByZ2JGbGFnLAogICAgICAgICAgICAgICAgICAgICAgICAg
R0xib29sZWFuIGRiRmxhZywKICAgICAgICAgICAgICAgICAgICAgICAgIEdMYm9vbGVhbiBzdGVy
ZW9GbGFnLAogICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgcmVkQml0cywKICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMaW50IGdyZWVuQml0cywKICAgICAgICAgICAgICAgICAgICAgICAg
IEdMaW50IGJsdWVCaXRzLAogICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgYWxwaGFCaXRz
LAogICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgaW5kZXhCaXRzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgR0xpbnQgZGVwdGhCaXRzLAogICAgICAgICAgICAgICAgICAgICAgICAgR0xp
bnQgc3RlbmNpbEJpdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCBhY2N1bVJlZEJp
dHMsCiAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCBhY2N1bUdyZWVuQml0cywKICAgICAg
ICAgICAgICAgICAgICAgICAgIEdMaW50IGFjY3VtQmx1ZUJpdHMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICBHTGludCBhY2N1bUFscGhhQml0cywKICAgICAgICAgICAgICAgICAgICAgICAgIEdM
aW50IG51bVNhbXBsZXMgKTsKCmV4dGVybiB2b2lkCl9tZXNhX2Rlc3Ryb3lfdmlzdWFsKCBHTHZp
c3VhbCAqdmlzICk7CgoKCgoKCmV4dGVybiBHTGZyYW1lYnVmZmVyICoKX21lc2FfY3JlYXRlX2Zy
YW1lYnVmZmVyKCBjb25zdCBHTHZpc3VhbCAqdmlzdWFsLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIEdMYm9vbGVhbiBzb2Z0d2FyZURlcHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgIEdM
Ym9vbGVhbiBzb2Z0d2FyZVN0ZW5jaWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgR0xib29s
ZWFuIHNvZnR3YXJlQWNjdW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgR0xib29sZWFuIHNv
ZnR3YXJlQWxwaGEgKTsKCmV4dGVybiB2b2lkCl9tZXNhX2luaXRpYWxpemVfZnJhbWVidWZmZXIo
IEdMZnJhbWVidWZmZXIgKmZiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBH
THZpc3VhbCAqdmlzdWFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGJvb2xlYW4g
c29mdHdhcmVEZXB0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xib29sZWFuIHNv
ZnR3YXJlU3RlbmNpbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xib29sZWFuIHNv
ZnR3YXJlQWNjdW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMYm9vbGVhbiBzb2Z0
d2FyZUFscGhhICk7CgpleHRlcm4gdm9pZApfbWVzYV9mcmVlX2ZyYW1lYnVmZmVyX2RhdGEoIEdM
ZnJhbWVidWZmZXIgKmJ1ZmZlciApOwoKZXh0ZXJuIHZvaWQKX21lc2FfZGVzdHJveV9mcmFtZWJ1
ZmZlciggR0xmcmFtZWJ1ZmZlciAqYnVmZmVyICk7CgoKCgoKCmV4dGVybiBHTGNvbnRleHQgKgpf
bWVzYV9jcmVhdGVfY29udGV4dCggY29uc3QgR0x2aXN1YWwgKnZpc3VhbCwKICAgICAgICAgICAg
ICAgICAgICAgIEdMY29udGV4dCAqc2hhcmVfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgIHZv
aWQgKmRyaXZlcl9jdHgsCiAgICAgICAgICAgICAgICAgICAgICBHTGJvb2xlYW4gZGlyZWN0ICk7
CgpleHRlcm4gR0xib29sZWFuCl9tZXNhX2luaXRpYWxpemVfY29udGV4dCggR0xjb250ZXh0ICpj
dHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR0x2aXN1YWwgKnZpc3VhbCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICBHTGNvbnRleHQgKnNoYXJlX2xpc3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgdm9pZCAqZHJpdmVyX2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICBHTGJvb2xlYW4gZGlyZWN0ICk7CgpleHRlcm4gdm9pZApfbWVzYV9mcmVlX2NvbnRleHRfZGF0
YSggR0xjb250ZXh0ICpjdHggKTsKCmV4dGVybiB2b2lkCl9tZXNhX2Rlc3Ryb3lfY29udGV4dCgg
R0xjb250ZXh0ICpjdHggKTsKCgpleHRlcm4gdm9pZApfbWVzYV9jb3B5X2NvbnRleHQoY29uc3Qg
R0xjb250ZXh0ICpzcmMsIEdMY29udGV4dCAqZHN0LCBHTHVpbnQgbWFzayk7CgoKZXh0ZXJuIHZv
aWQKX21lc2FfbWFrZV9jdXJyZW50KCBHTGNvbnRleHQgKmN0eCwgR0xmcmFtZWJ1ZmZlciAqYnVm
ZmVyICk7CgoKZXh0ZXJuIHZvaWQKX21lc2FfbWFrZV9jdXJyZW50MiggR0xjb250ZXh0ICpjdHgs
IEdMZnJhbWVidWZmZXIgKmRyYXdCdWZmZXIsCiAgICAgICAgICAgICAgICAgICAgIEdMZnJhbWVi
dWZmZXIgKnJlYWRCdWZmZXIgKTsKCgpleHRlcm4gR0xjb250ZXh0ICoKX21lc2FfZ2V0X2N1cnJl
bnRfY29udGV4dCh2b2lkKTsKIyAxODIgImNvbnRleHQuaCIKZXh0ZXJuIEdMYm9vbGVhbgpfbWVz
YV9kZXN0cm95Q29udGV4dChfX0dMY29udGV4dCAqZ2MpOwoKZXh0ZXJuIEdMYm9vbGVhbgpfbWVz
YV9sb3NlQ3VycmVudChfX0dMY29udGV4dCAqZ2MpOwoKZXh0ZXJuIEdMYm9vbGVhbgpfbWVzYV9t
YWtlQ3VycmVudChfX0dMY29udGV4dCAqZ2MpOwoKZXh0ZXJuIEdMYm9vbGVhbgpfbWVzYV9zaGFy
ZUNvbnRleHQoX19HTGNvbnRleHQgKmdjLCBfX0dMY29udGV4dCAqZ2NTaGFyZSk7CgpleHRlcm4g
R0xib29sZWFuCl9tZXNhX2NvcHlDb250ZXh0KF9fR0xjb250ZXh0ICpkc3QsIGNvbnN0IF9fR0xj
b250ZXh0ICpzcmMsIEdMdWludCBtYXNrKTsKCmV4dGVybiBHTGJvb2xlYW4KX21lc2FfZm9yY2VD
dXJyZW50KF9fR0xjb250ZXh0ICpnYyk7CgpleHRlcm4gR0xib29sZWFuCl9tZXNhX25vdGlmeVJl
c2l6ZShfX0dMY29udGV4dCAqZ2MpOwoKZXh0ZXJuIHZvaWQKX21lc2Ffbm90aWZ5RGVzdHJveShf
X0dMY29udGV4dCAqZ2MpOwoKZXh0ZXJuIHZvaWQKX21lc2Ffbm90aWZ5U3dhcEJ1ZmZlcnMoX19H
TGNvbnRleHQgKmdjKTsKCmV4dGVybiBzdHJ1Y3QgX19HTGRpc3BhdGNoU3RhdGVSZWMgKgpfbWVz
YV9kaXNwYXRjaEV4ZWMoX19HTGNvbnRleHQgKmdjKTsKCmV4dGVybiB2b2lkCl9tZXNhX2JlZ2lu
RGlzcGF0Y2hPdmVycmlkZShfX0dMY29udGV4dCAqZ2MpOwoKZXh0ZXJuIHZvaWQKX21lc2FfZW5k
RGlzcGF0Y2hPdmVycmlkZShfX0dMY29udGV4dCAqZ2MpOwoKCgpleHRlcm4gc3RydWN0IF9nbGFw
aV90YWJsZSAqCl9tZXNhX2dldF9kaXNwYXRjaChHTGNvbnRleHQgKmN0eCk7CgoKCgoKCgpleHRl
cm4gdm9pZApfbWVzYV9yZWNvcmRfZXJyb3IoIEdMY29udGV4dCAqY3R4LCBHTGVudW0gZXJyb3Ig
KTsKCgpleHRlcm4gdm9pZApfbWVzYV9GaW5pc2goIHZvaWQgKTsKCmV4dGVybiB2b2lkCl9tZXNh
X0ZsdXNoKCB2b2lkICk7CiMgMzAgImltYWdlLmMiIDIKIyAxICJpbWFnZS5oIiAxCiMgMzUgImlt
YWdlLmgiCmV4dGVybiBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgX21lc2FfbmF0
aXZlX3BhY2tpbmc7CgoKZXh0ZXJuIHZvaWQKX21lc2Ffc3dhcDIoIEdMdXNob3J0ICpwLCBHTHVp
bnQgbiApOwoKZXh0ZXJuIHZvaWQKX21lc2Ffc3dhcDQoIEdMdWludCAqcCwgR0x1aW50IG4gKTsK
CmV4dGVybiBHTGludApfbWVzYV9zaXplb2ZfdHlwZSggR0xlbnVtIHR5cGUgKTsKCmV4dGVybiBH
TGludApfbWVzYV9zaXplb2ZfcGFja2VkX3R5cGUoIEdMZW51bSB0eXBlICk7CgpleHRlcm4gR0xp
bnQKX21lc2FfY29tcG9uZW50c19pbl9mb3JtYXQoIEdMZW51bSBmb3JtYXQgKTsKCmV4dGVybiBH
TGludApfbWVzYV9ieXRlc19wZXJfcGl4ZWwoIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlICk7
CgpleHRlcm4gR0xib29sZWFuCl9tZXNhX2lzX2xlZ2FsX2Zvcm1hdF9hbmRfdHlwZSggR0xlbnVt
IGZvcm1hdCwgR0xlbnVtIHR5cGUgKTsKCgpleHRlcm4gR0x2b2lkICoKX21lc2FfaW1hZ2VfYWRk
cmVzcyggY29uc3Qgc3RydWN0IGdsX3BpeGVsc3RvcmVfYXR0cmliICpwYWNraW5nLAogICAgICAg
ICAgICAgICAgICAgICBjb25zdCBHTHZvaWQgKmltYWdlLCBHTHNpemVpIHdpZHRoLAogICAgICAg
ICAgICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUs
CiAgICAgICAgICAgICAgICAgICAgIEdMaW50IGltZywgR0xpbnQgcm93LCBHTGludCBjb2x1bW4g
KTsKCgpleHRlcm4gR0xpbnQKX21lc2FfaW1hZ2Vfcm93X3N0cmlkZSggY29uc3Qgc3RydWN0IGds
X3BpeGVsc3RvcmVfYXR0cmliICpwYWNraW5nLAogICAgICAgICAgICAgICAgICAgICAgICBHTGlu
dCB3aWR0aCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUgKTsKCgpleHRlcm4gR0xpbnQKX21l
c2FfaW1hZ2VfaW1hZ2Vfc3RyaWRlKCBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIg
KnBhY2tpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgd2lkdGgsIEdMaW50IGhl
aWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlw
ZSApOwoKZXh0ZXJuIHZvaWQKX21lc2FfdW5wYWNrX3BvbHlnb25fc3RpcHBsZSggY29uc3QgR0x1
Ynl0ZSAqcGF0dGVybiwgR0x1aW50IGRlc3RbMzJdLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKnVucGFja2luZyApOwoKCmV4
dGVybiB2b2lkCl9tZXNhX3BhY2tfcG9seWdvbl9zdGlwcGxlKCBjb25zdCBHTHVpbnQgcGF0dGVy
blszMl0sIEdMdWJ5dGUgKmRlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz
dHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKnBhY2tpbmcgKTsKCgpleHRlcm4gR0x2b2lkICoK
X21lc2FfdW5wYWNrX2JpdG1hcCggR0xpbnQgd2lkdGgsIEdMaW50IGhlaWdodCwgY29uc3QgR0x1
Ynl0ZSAqcGl4ZWxzLAogICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxz
dG9yZV9hdHRyaWIgKnBhY2tpbmcgKTsKCmV4dGVybiB2b2lkCl9tZXNhX3BhY2tfYml0bWFwKCBH
TGludCB3aWR0aCwgR0xpbnQgaGVpZ2h0LCBjb25zdCBHTHVieXRlICpzb3VyY2UsCiAgICAgICAg
ICAgICAgICAgICBHTHVieXRlICpkZXN0LCBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRy
aWIgKnBhY2tpbmcgKTsKCgpleHRlcm4gdm9pZApfbWVzYV9wYWNrX2Zsb2F0X3JnYmFfc3Bhbigg
R0xjb250ZXh0ICpjdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHVpbnQgbiwgY29u
c3QgR0xmbG9hdCByZ2JhW11bNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0g
ZHN0Rm9ybWF0LCBHTGVudW0gZHN0VHlwZSwgR0x2b2lkICpkc3RBZGRyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGdsX3BpeGVsc3RvcmVfYXR0cmliICpkc3RQYWNr
aW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgR0x1aW50IHRyYW5zZmVyT3BzICk7CgoK
ZXh0ZXJuIHZvaWQKX21lc2FfcGFja19yZ2JhX3NwYW4oIEdMY29udGV4dCAqY3R4LAogICAgICAg
ICAgICAgICAgICAgICAgR0x1aW50IG4sIGNvbnN0IEdMY2hhbiByZ2JhW11bNF0sCiAgICAgICAg
ICAgICAgICAgICAgICBHTGVudW0gZHN0Rm9ybWF0LCBHTGVudW0gZHN0VHlwZSwgR0x2b2lkICpk
c3RBZGRyLAogICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGdsX3BpeGVsc3RvcmVf
YXR0cmliICpkc3RQYWNraW5nLAogICAgICAgICAgICAgICAgICAgICAgR0x1aW50IHRyYW5zZmVy
T3BzICk7CgoKZXh0ZXJuIHZvaWQKX21lc2FfdW5wYWNrX2NoYW5fY29sb3Jfc3BhbiggR0xjb250
ZXh0ICpjdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMdWludCBuLCBHTGVudW0g
ZHN0Rm9ybWF0LCBHTGNoYW4gZGVzdFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
TGVudW0gc3JjRm9ybWF0LCBHTGVudW0gc3JjVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgR0x2b2lkICpzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IHN0cnVjdCBnbF9waXhlbHN0b3JlX2F0dHJpYiAqc3JjUGFja2luZywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0x1aW50IHRyYW5zZmVyT3BzICk7CgoKZXh0ZXJuIHZvaWQK
X21lc2FfdW5wYWNrX2Zsb2F0X2NvbG9yX3NwYW4oIEdMY29udGV4dCAqY3R4LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0x1aW50IG4sIEdMZW51bSBkc3RGb3JtYXQsIEdMZmxvYXQg
ZGVzdFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIHNyY0Zvcm1hdCwg
R0xlbnVtIHNyY1R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHTHZv
aWQgKnNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBn
bF9waXhlbHN0b3JlX2F0dHJpYiAqc3JjUGFja2luZywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdMdWludCB0cmFuc2Zlck9wcywgR0xib29sZWFuIGNsYW1wICk7CgoKZXh0ZXJuIHZv
aWQKX21lc2FfdW5wYWNrX2luZGV4X3NwYW4oIGNvbnN0IEdMY29udGV4dCAqY3R4LCBHTHVpbnQg
biwKICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBkc3RUeXBlLCBHTHZvaWQgKmRlc3Qs
CiAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gc3JjVHlwZSwgY29uc3QgR0x2b2lkICpz
b3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9y
ZV9hdHRyaWIgKnNyY1BhY2tpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICBHTHVpbnQgdHJh
bnNmZXJPcHMgKTsKCgpleHRlcm4gdm9pZApfbWVzYV9wYWNrX2luZGV4X3NwYW4oIGNvbnN0IEdM
Y29udGV4dCAqY3R4LCBHTHVpbnQgbiwKICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZHN0
VHlwZSwgR0x2b2lkICpkZXN0LCBjb25zdCBHTHVpbnQgKnNvdXJjZSwKICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKmRzdFBhY2tpbmcsCiAg
ICAgICAgICAgICAgICAgICAgICAgR0x1aW50IHRyYW5zZmVyT3BzICk7CgoKZXh0ZXJuIHZvaWQK
X21lc2FfdW5wYWNrX3N0ZW5jaWxfc3BhbiggY29uc3QgR0xjb250ZXh0ICpjdHgsIEdMdWludCBu
LAogICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZHN0VHlwZSwgR0x2b2lkICpkZXN0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gc3JjVHlwZSwgY29uc3QgR0x2b2lk
ICpzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBnbF9waXhl
bHN0b3JlX2F0dHJpYiAqc3JjUGFja2luZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgR0x1
aW50IHRyYW5zZmVyT3BzICk7CgpleHRlcm4gdm9pZApfbWVzYV9wYWNrX3N0ZW5jaWxfc3Bhbigg
Y29uc3QgR0xjb250ZXh0ICpjdHgsIEdMdWludCBuLAogICAgICAgICAgICAgICAgICAgICAgICAg
R0xlbnVtIGRzdFR5cGUsIEdMdm9pZCAqZGVzdCwgY29uc3QgR0xzdGVuY2lsICpzb3VyY2UsCiAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIg
KmRzdFBhY2tpbmcgKTsKCgpleHRlcm4gdm9pZApfbWVzYV91bnBhY2tfZGVwdGhfc3BhbiggY29u
c3QgR0xjb250ZXh0ICpjdHgsIEdMdWludCBuLCBHTGZsb2F0ICpkZXN0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgR0xlbnVtIHNyY1R5cGUsIGNvbnN0IEdMdm9pZCAqc291cmNlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGdsX3BpeGVsc3RvcmVfYXR0cmliICpzcmNQ
YWNraW5nICk7CgpleHRlcm4gdm9pZApfbWVzYV9wYWNrX2RlcHRoX3NwYW4oIGNvbnN0IEdMY29u
dGV4dCAqY3R4LCBHTHVpbnQgbiwgR0x2b2lkICpkZXN0LAogICAgICAgICAgICAgICAgICAgICAg
IEdMZW51bSBkc3RUeXBlLCBjb25zdCBHTGZsb2F0ICpkZXB0aFNwYW4sCiAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3Qgc3RydWN0IGdsX3BpeGVsc3RvcmVfYXR0cmliICpkc3RQYWNraW5nICk7
CgoKZXh0ZXJuIHZvaWQgKgpfbWVzYV91bnBhY2tfaW1hZ2UoIEdMc2l6ZWkgd2lkdGgsIEdMc2l6
ZWkgaGVpZ2h0LCBHTHNpemVpIGRlcHRoLAogICAgICAgICAgICAgICAgICAgIEdMZW51bSBmb3Jt
YXQsIEdMZW51bSB0eXBlLCBjb25zdCBHTHZvaWQgKnBpeGVscywKICAgICAgICAgICAgICAgICAg
ICBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKnVucGFjayApOwojIDMxICJpbWFn
ZS5jIiAyCgojIDEgImhpc3RvZ3JhbS5oIiAxCiMgMzUgImhpc3RvZ3JhbS5oIgpleHRlcm4gdm9p
ZCBfbWVzYV9HZXRNaW5tYXgoR0xlbnVtIHRhcmdldCwgR0xib29sZWFuIHJlc2V0LCBHTGVudW0g
Zm9ybWF0LCBHTGVudW0gdHlwZXMsIEdMdm9pZCAqdmFsdWVzKTsKCmV4dGVybiB2b2lkIF9tZXNh
X0dldEhpc3RvZ3JhbShHTGVudW0gdGFyZ2V0LCBHTGJvb2xlYW4gcmVzZXQsIEdMZW51bSBmb3Jt
YXQsIEdMZW51bSB0eXBlLCBHTHZvaWQgKnZhbHVlcyk7CgpleHRlcm4gdm9pZCBfbWVzYV9HZXRI
aXN0b2dyYW1QYXJhbWV0ZXJmdihHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQg
KnBhcmFtcyk7CgpleHRlcm4gdm9pZCBfbWVzYV9HZXRIaXN0b2dyYW1QYXJhbWV0ZXJpdihHTGVu
dW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMaW50ICpwYXJhbXMpOwoKZXh0ZXJuIHZvaWQgX21l
c2FfR2V0TWlubWF4UGFyYW1ldGVyZnYoR0xlbnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGZs
b2F0ICpwYXJhbXMpOwoKZXh0ZXJuIHZvaWQgX21lc2FfR2V0TWlubWF4UGFyYW1ldGVyaXYoR0xl
bnVtIHRhcmdldCwgR0xlbnVtIHBuYW1lLCBHTGludCAqcGFyYW1zKTsKCmV4dGVybiB2b2lkIF9t
ZXNhX0hpc3RvZ3JhbShHTGVudW0gdGFyZ2V0LCBHTHNpemVpIHdpZHRoLCBHTGVudW0gaW50ZXJu
YWxmb3JtYXQsIEdMYm9vbGVhbiBzaW5rKTsKCmV4dGVybiB2b2lkIF9tZXNhX01pbm1heChHTGVu
dW0gdGFyZ2V0LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMYm9vbGVhbiBzaW5rKTsKCmV4dGVy
biB2b2lkIF9tZXNhX1Jlc2V0SGlzdG9ncmFtKEdMZW51bSB0YXJnZXQpOwoKZXh0ZXJuIHZvaWQg
X21lc2FfUmVzZXRNaW5tYXgoR0xlbnVtIHRhcmdldCk7CgpleHRlcm4gdm9pZApfbWVzYV91cGRh
dGVfbWlubWF4KEdMY29udGV4dCAqY3R4LCBHTHVpbnQgbiwgY29uc3QgR0xmbG9hdCByZ2JhW11b
NF0pOwoKZXh0ZXJuIHZvaWQKX21lc2FfdXBkYXRlX2hpc3RvZ3JhbShHTGNvbnRleHQgKmN0eCwg
R0x1aW50IG4sIGNvbnN0IEdMZmxvYXQgcmdiYVtdWzRdKTsKIyAzMyAiaW1hZ2UuYyIgMgoKCiMg
MSAicGl4ZWwuaCIgMQojIDQwICJwaXhlbC5oIgpleHRlcm4gdm9pZApfbWVzYV9HZXRQaXhlbE1h
cGZ2KCBHTGVudW0gbWFwLCBHTGZsb2F0ICp2YWx1ZXMgKTsKCmV4dGVybiB2b2lkCl9tZXNhX0dl
dFBpeGVsTWFwdWl2KCBHTGVudW0gbWFwLCBHTHVpbnQgKnZhbHVlcyApOwoKZXh0ZXJuIHZvaWQK
X21lc2FfR2V0UGl4ZWxNYXB1c3YoIEdMZW51bSBtYXAsIEdMdXNob3J0ICp2YWx1ZXMgKTsKCmV4
dGVybiB2b2lkCl9tZXNhX1BpeGVsTWFwZnYoIEdMZW51bSBtYXAsIEdMaW50IG1hcHNpemUsIGNv
bnN0IEdMZmxvYXQgKnZhbHVlcyApOwoKZXh0ZXJuIHZvaWQKX21lc2FfUGl4ZWxNYXB1aXYoR0xl
bnVtIG1hcCwgR0xpbnQgbWFwc2l6ZSwgY29uc3QgR0x1aW50ICp2YWx1ZXMgKTsKCmV4dGVybiB2
b2lkCl9tZXNhX1BpeGVsTWFwdXN2KEdMZW51bSBtYXAsIEdMaW50IG1hcHNpemUsIGNvbnN0IEdM
dXNob3J0ICp2YWx1ZXMgKTsKCmV4dGVybiB2b2lkCl9tZXNhX1BpeGVsU3RvcmVmKCBHTGVudW0g
cG5hbWUsIEdMZmxvYXQgcGFyYW0gKTsKCmV4dGVybiB2b2lkCl9tZXNhX1BpeGVsU3RvcmVpKCBH
TGVudW0gcG5hbWUsIEdMaW50IHBhcmFtICk7CgpleHRlcm4gdm9pZApfbWVzYV9QaXhlbFRyYW5z
ZmVyZiggR0xlbnVtIHBuYW1lLCBHTGZsb2F0IHBhcmFtICk7CgpleHRlcm4gdm9pZApfbWVzYV9Q
aXhlbFRyYW5zZmVyaSggR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSApOwoKZXh0ZXJuIHZvaWQK
X21lc2FfUGl4ZWxab29tKCBHTGZsb2F0IHhmYWN0b3IsIEdMZmxvYXQgeWZhY3RvciApOwoKCgoK
CgoKZXh0ZXJuIHZvaWQKX21lc2Ffc2NhbGVfYW5kX2JpYXNfcmdiYShjb25zdCBHTGNvbnRleHQg
KmN0eCwgR0x1aW50IG4sIEdMZmxvYXQgcmdiYVtdWzRdLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIEdMZmxvYXQgclNjYWxlLCBHTGZsb2F0IGdTY2FsZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICBHTGZsb2F0IGJTY2FsZSwgR0xmbG9hdCBhU2NhbGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0xmbG9hdCByQmlhcywgR0xmbG9hdCBnQmlhcywKICAgICAgICAgICAgICAgICAgICAg
ICAgICBHTGZsb2F0IGJCaWFzLCBHTGZsb2F0IGFCaWFzKTsKCmV4dGVybiB2b2lkCl9tZXNhX21h
cF9yZ2JhKGNvbnN0IEdMY29udGV4dCAqY3R4LCBHTHVpbnQgbiwgR0xmbG9hdCByZ2JhW11bNF0p
OwoKCmV4dGVybiB2b2lkCl9tZXNhX3RyYW5zZm9ybV9yZ2JhKGNvbnN0IEdMY29udGV4dCAqY3R4
LCBHTHVpbnQgbiwgR0xmbG9hdCByZ2JhW11bNF0pOwoKCmV4dGVybiB2b2lkCl9tZXNhX2xvb2t1
cF9yZ2JhKGNvbnN0IHN0cnVjdCBnbF9jb2xvcl90YWJsZSAqdGFibGUsCiAgICAgICAgICAgICAg
ICAgIEdMdWludCBuLCBHTGZsb2F0IHJnYmFbXVs0XSk7CgoKZXh0ZXJuIHZvaWQKX21lc2Ffc2hp
ZnRfYW5kX29mZnNldF9jaShjb25zdCBHTGNvbnRleHQgKmN0eCwgR0x1aW50IG4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgR0x1aW50IGluZGV4ZXNbXSk7CgoKZXh0ZXJuIHZvaWQKX21lc2Ff
bWFwX2NpKGNvbnN0IEdMY29udGV4dCAqY3R4LCBHTHVpbnQgbiwgR0x1aW50IGluZGV4W10pOwoK
CmV4dGVybiB2b2lkCl9tZXNhX21hcF9jaV90b19yZ2JhX2NoYW4oY29uc3QgR0xjb250ZXh0ICpj
dHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgR0x1aW50IG4sIGNvbnN0IEdMdWludCBpbmRl
eFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgIEdMY2hhbiByZ2JhW11bNF0pOwoKCmV4dGVy
biB2b2lkCl9tZXNhX21hcF9jaV90b19yZ2JhKGNvbnN0IEdMY29udGV4dCAqY3R4LAogICAgICAg
ICAgICAgICAgICAgICBHTHVpbnQgbiwgY29uc3QgR0x1aW50IGluZGV4W10sIEdMZmxvYXQgcmdi
YVtdWzRdKTsKCgpleHRlcm4gdm9pZApfbWVzYV9tYXBfY2k4X3RvX3JnYmEoY29uc3QgR0xjb250
ZXh0ICpjdHgsCiAgICAgICAgICAgICAgICAgICAgICBHTHVpbnQgbiwgY29uc3QgR0x1Ynl0ZSBp
bmRleFtdLAogICAgICAgICAgICAgICAgICAgICAgR0xjaGFuIHJnYmFbXVs0XSk7CgoKZXh0ZXJu
IHZvaWQKX21lc2Ffc2hpZnRfYW5kX29mZnNldF9zdGVuY2lsKGNvbnN0IEdMY29udGV4dCAqY3R4
LCBHTHVpbnQgbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc3RlbmNpbCBpbmRl
eGVzW10pOwoKCmV4dGVybiB2b2lkCl9tZXNhX21hcF9zdGVuY2lsKGNvbnN0IEdMY29udGV4dCAq
Y3R4LCBHTHVpbnQgbiwgR0xzdGVuY2lsIGluZGV4W10pOwoKCmV4dGVybiB2b2lkCl9tZXNhX2No
YW5fdG9fZmxvYXRfc3Bhbihjb25zdCBHTGNvbnRleHQgKmN0eCwgR0x1aW50IG4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBHTGNoYW4gcmdiYVtdWzRdLCBHTGZsb2F0IHJnYmFmW11b
NF0pOwojIDM2ICJpbWFnZS5jIiAyCiMgNDYgImltYWdlLmMiCmNvbnN0IHN0cnVjdCBnbF9waXhl
bHN0b3JlX2F0dHJpYiBfbWVzYV9uYXRpdmVfcGFja2luZyA9IHsKICAgMSwKICAgMCwKICAgMCwK
ICAgMCwKICAgMCwKICAgMCwKICAgMHgwLAogICAweDAsCiAgIDB4MCwKICAgMHgwCn07CiMgNjkg
ImltYWdlLmMiCnN0YXRpYyB2b2lkCmZsaXBfYnl0ZXMoIEdMdWJ5dGUgKnAsIEdMdWludCBuICkK
ewogICByZWdpc3RlciBHTHVpbnQgaSwgYSwgYjsKCiAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAg
ICAgYiA9IChHTHVpbnQpIHBbaV07CiAgICAgIGEgPSAoKGIgJiAweDAxKSA8PCA3KSB8CiAgICAg
ICAgICAoKGIgJiAweDAyKSA8PCA1KSB8CiAgICAgICAgICAoKGIgJiAweDA0KSA8PCAzKSB8CiAg
ICAgICAgICAoKGIgJiAweDA4KSA8PCAxKSB8CiAgICAgICAgICAoKGIgJiAweDEwKSA+PiAxKSB8
CiAgICAgICAgICAoKGIgJiAweDIwKSA+PiAzKSB8CiAgICAgICAgICAoKGIgJiAweDQwKSA+PiA1
KSB8CiAgICAgICAgICAoKGIgJiAweDgwKSA+PiA3KTsKICAgICAgcFtpXSA9IChHTHVieXRlKSBh
OwogICB9Cn0KCgoKCgp2b2lkCl9tZXNhX3N3YXAyKCBHTHVzaG9ydCAqcCwgR0x1aW50IG4gKQp7
CiAgIHJlZ2lzdGVyIEdMdWludCBpOwoKICAgZm9yIChpPTA7aTxuO2krKykgewogICAgICBwW2ld
ID0gKHBbaV0gPj4gOCkgfCAoKHBbaV0gPDwgOCkgJiAweGZmMDApOwogICB9Cn0KCgoKCgoKdm9p
ZApfbWVzYV9zd2FwNCggR0x1aW50ICpwLCBHTHVpbnQgbiApCnsKICAgcmVnaXN0ZXIgR0x1aW50
IGksIGEsIGI7CgogICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgIGIgPSBwW2ldOwogICAgICBh
ID0gKGIgPj4gMjQpCiAgICAgICAgfCAoKGIgPj4gOCkgJiAweGZmMDApCiAgICAgICAgfCAoKGIg
PDwgOCkgJiAweGZmMDAwMCkKICAgICAgICB8ICgoYiA8PCAyNCkgJiAweGZmMDAwMDAwKTsKICAg
ICAgcFtpXSA9IGE7CiAgIH0KfQojIDEzMCAiaW1hZ2UuYyIKR0xpbnQgX21lc2Ffc2l6ZW9mX3R5
cGUoIEdMZW51bSB0eXBlICkKewogICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgY2FzZSAweDFBMDA6
CiAgICAgICAgIHJldHVybiAwOwogICAgICBjYXNlIDB4MTQwMToKICAgICAgICAgcmV0dXJuIHNp
emVvZihHTHVieXRlKTsKICAgICAgY2FzZSAweDE0MDA6CiAgICAgICAgIHJldHVybiBzaXplb2Yo
R0xieXRlKTsKICAgICAgY2FzZSAweDE0MDM6CiAgICAgICAgIHJldHVybiBzaXplb2YoR0x1c2hv
cnQpOwogICAgICBjYXNlIDB4MTQwMjoKICAgICAgICAgcmV0dXJuIHNpemVvZihHTHNob3J0KTsK
ICAgICAgY2FzZSAweDE0MDU6CiAgICAgICAgIHJldHVybiBzaXplb2YoR0x1aW50KTsKICAgICAg
Y2FzZSAweDE0MDQ6CiAgICAgICAgIHJldHVybiBzaXplb2YoR0xpbnQpOwogICAgICBjYXNlIDB4
MTQwNjoKICAgICAgICAgcmV0dXJuIHNpemVvZihHTGZsb2F0KTsKICAgICAgZGVmYXVsdDoKICAg
ICAgICAgcmV0dXJuIC0xOwogICB9Cn0KCgoKCgoKR0xpbnQgX21lc2Ffc2l6ZW9mX3BhY2tlZF90
eXBlKCBHTGVudW0gdHlwZSApCnsKICAgc3dpdGNoICh0eXBlKSB7CiAgICAgIGNhc2UgMHgxQTAw
OgogICAgICAgICByZXR1cm4gMDsKICAgICAgY2FzZSAweDE0MDE6CiAgICAgICAgIHJldHVybiBz
aXplb2YoR0x1Ynl0ZSk7CiAgICAgIGNhc2UgMHgxNDAwOgogICAgICAgICByZXR1cm4gc2l6ZW9m
KEdMYnl0ZSk7CiAgICAgIGNhc2UgMHgxNDAzOgogICAgICAgICByZXR1cm4gc2l6ZW9mKEdMdXNo
b3J0KTsKICAgICAgY2FzZSAweDE0MDI6CiAgICAgICAgIHJldHVybiBzaXplb2YoR0xzaG9ydCk7
CiAgICAgIGNhc2UgMHgxNDA1OgogICAgICAgICByZXR1cm4gc2l6ZW9mKEdMdWludCk7CiAgICAg
IGNhc2UgMHgxNDA0OgogICAgICAgICByZXR1cm4gc2l6ZW9mKEdMaW50KTsKICAgICAgY2FzZSAw
eDE0MDY6CiAgICAgICAgIHJldHVybiBzaXplb2YoR0xmbG9hdCk7CiAgICAgIGNhc2UgMHg4MDMy
OgogICAgICAgICByZXR1cm4gc2l6ZW9mKEdMdWJ5dGUpOwogICAgICBjYXNlIDB4ODM2MjoKICAg
ICAgICAgcmV0dXJuIHNpemVvZihHTHVieXRlKTsKICAgICAgY2FzZSAweDgzNjM6CiAgICAgICAg
IHJldHVybiBzaXplb2YoR0x1c2hvcnQpOwogICAgICBjYXNlIDB4ODM2NDoKICAgICAgICAgcmV0
dXJuIHNpemVvZihHTHVzaG9ydCk7CiAgICAgIGNhc2UgMHg4MDMzOgogICAgICAgICByZXR1cm4g
c2l6ZW9mKEdMdXNob3J0KTsKICAgICAgY2FzZSAweDgzNjU6CiAgICAgICAgIHJldHVybiBzaXpl
b2YoR0x1c2hvcnQpOwogICAgICBjYXNlIDB4ODAzNDoKICAgICAgICAgcmV0dXJuIHNpemVvZihH
THVzaG9ydCk7CiAgICAgIGNhc2UgMHg4MzY2OgogICAgICAgICByZXR1cm4gc2l6ZW9mKEdMdXNo
b3J0KTsKICAgICAgY2FzZSAweDgwMzU6CiAgICAgICAgIHJldHVybiBzaXplb2YoR0x1aW50KTsK
ICAgICAgY2FzZSAweDgzNjc6CiAgICAgICAgIHJldHVybiBzaXplb2YoR0x1aW50KTsKICAgICAg
Y2FzZSAweDgwMzY6CiAgICAgICAgIHJldHVybiBzaXplb2YoR0x1aW50KTsKICAgICAgY2FzZSAw
eDgzNjg6CiAgICAgICAgIHJldHVybiBzaXplb2YoR0x1aW50KTsKICAgICAgY2FzZSAweDg1QkE6
CiAgICAgIGNhc2UgMHg4NUJCOgogICAgICAgICAgcmV0dXJuIHNpemVvZihHTHVzaG9ydCk7CiAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAtMTsKICAgfQp9CgoKCgoKCgpHTGludCBfbWVz
YV9jb21wb25lbnRzX2luX2Zvcm1hdCggR0xlbnVtIGZvcm1hdCApCnsKICAgc3dpdGNoIChmb3Jt
YXQpIHsKICAgICAgY2FzZSAweDE5MDA6CiAgICAgIGNhc2UgMHg4MEUyOgogICAgICBjYXNlIDB4
ODBFMzoKICAgICAgY2FzZSAweDgwRTQ6CiAgICAgIGNhc2UgMHg4MEU1OgogICAgICBjYXNlIDB4
ODBFNjoKICAgICAgY2FzZSAweDgwRTc6CiAgICAgIGNhc2UgMHgxOTAxOgogICAgICBjYXNlIDB4
MTkwMjoKICAgICAgY2FzZSAweDE5MDM6CiAgICAgIGNhc2UgMHgxOTA0OgogICAgICBjYXNlIDB4
MTkwNToKICAgICAgY2FzZSAweDE5MDY6CiAgICAgIGNhc2UgMHgxOTA5OgogICAgICBjYXNlIDB4
ODA0OToKICAgICAgICAgcmV0dXJuIDE7CiAgICAgIGNhc2UgMHgxOTBBOgogICAgICAgICByZXR1
cm4gMjsKICAgICAgY2FzZSAweDE5MDc6CiAgICAgICAgIHJldHVybiAzOwogICAgICBjYXNlIDB4
MTkwODoKICAgICAgICAgcmV0dXJuIDQ7CiAgICAgIGNhc2UgMHg4MEUwOgogICAgICAgICByZXR1
cm4gMzsKICAgICAgY2FzZSAweDgwRTE6CiAgICAgICAgIHJldHVybiA0OwogICAgICBjYXNlIDB4
ODAwMDoKICAgICAgICAgcmV0dXJuIDQ7CiAgICAgIGNhc2UgMHg4NzU3OgogICAgICAgICByZXR1
cm4gMjsKICAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIC0xOwogICB9Cn0KCgoKCgoKR0xp
bnQgX21lc2FfYnl0ZXNfcGVyX3BpeGVsKCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSApCnsK
ICAgR0xpbnQgY29tcHMgPSBfbWVzYV9jb21wb25lbnRzX2luX2Zvcm1hdCggZm9ybWF0ICk7CiAg
IGlmIChjb21wcyA8IDApCiAgICAgIHJldHVybiAtMTsKCiAgIHN3aXRjaCAodHlwZSkgewogICAg
ICBjYXNlIDB4MUEwMDoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgIGNhc2UgMHgxNDAwOgogICAg
ICBjYXNlIDB4MTQwMToKICAgICAgICAgcmV0dXJuIGNvbXBzICogc2l6ZW9mKEdMdWJ5dGUpOwog
ICAgICBjYXNlIDB4MTQwMjoKICAgICAgY2FzZSAweDE0MDM6CiAgICAgICAgIHJldHVybiBjb21w
cyAqIHNpemVvZihHTHNob3J0KTsKICAgICAgY2FzZSAweDE0MDQ6CiAgICAgIGNhc2UgMHgxNDA1
OgogICAgICAgICByZXR1cm4gY29tcHMgKiBzaXplb2YoR0xpbnQpOwogICAgICBjYXNlIDB4MTQw
NjoKICAgICAgICAgcmV0dXJuIGNvbXBzICogc2l6ZW9mKEdMZmxvYXQpOwogICAgICBjYXNlIDB4
ODAzMjoKICAgICAgY2FzZSAweDgzNjI6CiAgICAgICAgIGlmIChmb3JtYXQgPT0gMHgxOTA3IHx8
IGZvcm1hdCA9PSAweDgwRTApCiAgICAgICAgICAgIHJldHVybiBzaXplb2YoR0x1Ynl0ZSk7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICBjYXNlIDB4ODM2MzoKICAg
ICAgY2FzZSAweDgzNjQ6CiAgICAgICAgIGlmIChmb3JtYXQgPT0gMHgxOTA3IHx8IGZvcm1hdCA9
PSAweDgwRTApCiAgICAgICAgICAgIHJldHVybiBzaXplb2YoR0x1c2hvcnQpOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgY2FzZSAweDgwMzM6CiAgICAgIGNhc2Ug
MHg4MzY1OgogICAgICBjYXNlIDB4ODAzNDoKICAgICAgY2FzZSAweDgzNjY6CiAgICAgICAgIGlm
IChmb3JtYXQgPT0gMHgxOTA4IHx8IGZvcm1hdCA9PSAweDgwRTEgfHwgZm9ybWF0ID09IDB4ODAw
MCkKICAgICAgICAgICAgcmV0dXJuIHNpemVvZihHTHVzaG9ydCk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgcmV0dXJuIC0xOwogICAgICBjYXNlIDB4ODAzNToKICAgICAgY2FzZSAweDgzNjc6
CiAgICAgIGNhc2UgMHg4MDM2OgogICAgICBjYXNlIDB4ODM2ODoKICAgICAgICAgaWYgKGZvcm1h
dCA9PSAweDE5MDggfHwgZm9ybWF0ID09IDB4ODBFMSB8fCBmb3JtYXQgPT0gMHg4MDAwKQogICAg
ICAgICAgICByZXR1cm4gc2l6ZW9mKEdMdWludCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
cmV0dXJuIC0xOwogICAgICBjYXNlIDB4ODVCQToKICAgICAgY2FzZSAweDg1QkI6CiAgICAgICAg
IGlmIChmb3JtYXQgPT0gMHg4NzU3KQogICAgICAgICAgICByZXR1cm4gc2l6ZW9mKEdMdXNob3J0
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgIHJldHVybiAtMTsKICAgfQp9CgoKCgoKCkdMYm9vbGVhbgpfbWVzYV9pc19sZWdhbF9m
b3JtYXRfYW5kX3R5cGUoIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlICkKewogICBzd2l0Y2gg
KGZvcm1hdCkgewogICAgICBjYXNlIDB4MTkwMDoKICAgICAgY2FzZSAweDE5MDE6CiAgICAgICAg
IHN3aXRjaCAodHlwZSkgewogICAgICAgICAgICBjYXNlIDB4MUEwMDoKICAgICAgICAgICAgY2Fz
ZSAweDE0MDA6CiAgICAgICAgICAgIGNhc2UgMHgxNDAxOgogICAgICAgICAgICBjYXNlIDB4MTQw
MjoKICAgICAgICAgICAgY2FzZSAweDE0MDM6CiAgICAgICAgICAgIGNhc2UgMHgxNDA0OgogICAg
ICAgICAgICBjYXNlIDB4MTQwNToKICAgICAgICAgICAgY2FzZSAweDE0MDY6CiAgICAgICAgICAg
ICAgIHJldHVybiAweDE7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgIHJldHVy
biAweDA7CiAgICAgICAgIH0KICAgICAgY2FzZSAweDE5MDM6CiAgICAgIGNhc2UgMHgxOTA0Ogog
ICAgICBjYXNlIDB4MTkwNToKICAgICAgY2FzZSAweDE5MDY6CiAgICAgIGNhc2UgMHg4MDQ5Ogog
ICAgICBjYXNlIDB4MTkwOToKICAgICAgY2FzZSAweDE5MEE6CiAgICAgIGNhc2UgMHgxOTAyOgog
ICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgY2FzZSAweDE0MDA6CiAgICAgICAg
ICAgIGNhc2UgMHgxNDAxOgogICAgICAgICAgICBjYXNlIDB4MTQwMjoKICAgICAgICAgICAgY2Fz
ZSAweDE0MDM6CiAgICAgICAgICAgIGNhc2UgMHgxNDA0OgogICAgICAgICAgICBjYXNlIDB4MTQw
NToKICAgICAgICAgICAgY2FzZSAweDE0MDY6CiAgICAgICAgICAgICAgIHJldHVybiAweDE7CiAg
ICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgIHJldHVybiAweDA7CiAgICAgICAgIH0K
ICAgICAgY2FzZSAweDE5MDc6CiAgICAgIGNhc2UgMHg4MEUwOgogICAgICAgICBzd2l0Y2ggKHR5
cGUpIHsKICAgICAgICAgICAgY2FzZSAweDE0MDA6CiAgICAgICAgICAgIGNhc2UgMHgxNDAxOgog
ICAgICAgICAgICBjYXNlIDB4MTQwMjoKICAgICAgICAgICAgY2FzZSAweDE0MDM6CiAgICAgICAg
ICAgIGNhc2UgMHgxNDA0OgogICAgICAgICAgICBjYXNlIDB4MTQwNToKICAgICAgICAgICAgY2Fz
ZSAweDE0MDY6CiAgICAgICAgICAgIGNhc2UgMHg4MDMyOgogICAgICAgICAgICBjYXNlIDB4ODM2
MjoKICAgICAgICAgICAgY2FzZSAweDgzNjM6CiAgICAgICAgICAgIGNhc2UgMHg4MzY0OgogICAg
ICAgICAgICAgICByZXR1cm4gMHgxOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
ICByZXR1cm4gMHgwOwogICAgICAgICB9CiAgICAgIGNhc2UgMHgxOTA4OgogICAgICBjYXNlIDB4
ODBFMToKICAgICAgY2FzZSAweDgwMDA6CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAg
ICAgICBjYXNlIDB4MTQwMDoKICAgICAgICAgICAgY2FzZSAweDE0MDE6CiAgICAgICAgICAgIGNh
c2UgMHgxNDAyOgogICAgICAgICAgICBjYXNlIDB4MTQwMzoKICAgICAgICAgICAgY2FzZSAweDE0
MDQ6CiAgICAgICAgICAgIGNhc2UgMHgxNDA1OgogICAgICAgICAgICBjYXNlIDB4MTQwNjoKICAg
ICAgICAgICAgY2FzZSAweDgwMzM6CiAgICAgICAgICAgIGNhc2UgMHg4MzY1OgogICAgICAgICAg
ICBjYXNlIDB4ODAzNDoKICAgICAgICAgICAgY2FzZSAweDgzNjY6CiAgICAgICAgICAgIGNhc2Ug
MHg4MDM1OgogICAgICAgICAgICBjYXNlIDB4ODM2NzoKICAgICAgICAgICAgY2FzZSAweDgwMzY6
CiAgICAgICAgICAgIGNhc2UgMHg4MzY4OgogICAgICAgICAgICAgICByZXR1cm4gMHgxOwogICAg
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICByZXR1cm4gMHgwOwogICAgICAgICB9CiAg
ICAgIGNhc2UgMHg4NzU3OgogICAgICAgICBpZiAodHlwZSA9PSAweDg1QkEgfHwKICAgICAgICAg
ICAgIHR5cGUgPT0gMHg4NUJCKQogICAgICAgICAgICByZXR1cm4gMHgxOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgIHJldHVybiAweDA7CiAgICAgIGRlZmF1bHQ6CiAgICAgICAgIDsKICAgfQog
ICByZXR1cm4gMHgwOwp9CiMgNDI5ICJpbWFnZS5jIgpHTHZvaWQgKgpfbWVzYV9pbWFnZV9hZGRy
ZXNzKCBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKnBhY2tpbmcsCiAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEdMdm9pZCAqaW1hZ2UsIEdMc2l6ZWkgd2lkdGgsCiAgICAgICAg
ICAgICAgICAgICAgIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwK
ICAgICAgICAgICAgICAgICAgICAgR0xpbnQgaW1nLCBHTGludCByb3csIEdMaW50IGNvbHVtbiAp
CnsKICAgR0xpbnQgYWxpZ25tZW50OwogICBHTGludCBwaXhlbHNfcGVyX3JvdzsKICAgR0xpbnQg
cm93c19wZXJfaW1hZ2U7CiAgIEdMaW50IHNraXByb3dzOwogICBHTGludCBza2lwcGl4ZWxzOwog
ICBHTGludCBza2lwaW1hZ2VzOwogICBHTHVieXRlICpwaXhlbF9hZGRyOwoKICAgYWxpZ25tZW50
ID0gcGFja2luZy0+QWxpZ25tZW50OwogICBpZiAocGFja2luZy0+Um93TGVuZ3RoID4gMCkgewog
ICAgICBwaXhlbHNfcGVyX3JvdyA9IHBhY2tpbmctPlJvd0xlbmd0aDsKICAgfQogICBlbHNlIHsK
ICAgICAgcGl4ZWxzX3Blcl9yb3cgPSB3aWR0aDsKICAgfQogICBpZiAocGFja2luZy0+SW1hZ2VI
ZWlnaHQgPiAwKSB7CiAgICAgIHJvd3NfcGVyX2ltYWdlID0gcGFja2luZy0+SW1hZ2VIZWlnaHQ7
CiAgIH0KICAgZWxzZSB7CiAgICAgIHJvd3NfcGVyX2ltYWdlID0gaGVpZ2h0OwogICB9CiAgIHNr
aXByb3dzID0gcGFja2luZy0+U2tpcFJvd3M7CiAgIHNraXBwaXhlbHMgPSBwYWNraW5nLT5Ta2lw
UGl4ZWxzOwogICBza2lwaW1hZ2VzID0gcGFja2luZy0+U2tpcEltYWdlczsKCiAgIGlmICh0eXBl
PT0weDFBMDApIHsKCiAgICAgIEdMaW50IGNvbXBfcGVyX3BpeGVsOwogICAgICBHTGludCBieXRl
c19wZXJfY29tcDsKICAgICAgR0xpbnQgYnl0ZXNfcGVyX3JvdzsKICAgICAgR0xpbnQgYnl0ZXNf
cGVyX2ltYWdlOwoKCiAgICAgIGJ5dGVzX3Blcl9jb21wID0gX21lc2Ffc2l6ZW9mX3BhY2tlZF90
eXBlKCB0eXBlICk7CiAgICAgIGlmIChieXRlc19wZXJfY29tcDwwKSB7CiAgICAgICAgIHJldHVy
biAwOwogICAgICB9CgoKICAgICAgY29tcF9wZXJfcGl4ZWwgPSBfbWVzYV9jb21wb25lbnRzX2lu
X2Zvcm1hdCggZm9ybWF0ICk7CiAgICAgIGlmIChjb21wX3Blcl9waXhlbDwwICYmIHR5cGUgIT0g
MHgxQTAwKSB7CiAgICAgICAgIHJldHVybiAwOwogICAgICB9CgogICAgICBieXRlc19wZXJfcm93
ID0gYWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgKiAoIChjb21wX3Blcl9waXhlbCpwaXhl
bHNfcGVyX3JvdykgJSAoOCphbGlnbm1lbnQpID09IDAgPyAoY29tcF9wZXJfcGl4ZWwqcGl4ZWxz
X3Blcl9yb3cpLyg4KmFsaWdubWVudCkgOiAoY29tcF9wZXJfcGl4ZWwqcGl4ZWxzX3Blcl9yb3cp
Lyg4KmFsaWdubWVudCkrMSApOwoKICAgICAgYnl0ZXNfcGVyX2ltYWdlID0gYnl0ZXNfcGVyX3Jv
dyAqIHJvd3NfcGVyX2ltYWdlOwoKICAgICAgcGl4ZWxfYWRkciA9IChHTHVieXRlICopIGltYWdl
CiAgICAgICAgICAgICAgICAgKyAoc2tpcGltYWdlcyArIGltZykgKiBieXRlc19wZXJfaW1hZ2UK
ICAgICAgICAgICAgICAgICArIChza2lwcm93cyArIHJvdykgKiBieXRlc19wZXJfcm93CiAgICAg
ICAgICAgICAgICAgKyAoc2tpcHBpeGVscyArIGNvbHVtbikgLyA4OwogICB9CiAgIGVsc2UgewoK
ICAgICAgR0xpbnQgYnl0ZXNfcGVyX3BpeGVsLCBieXRlc19wZXJfcm93LCByZW1haW5kZXIsIGJ5
dGVzX3Blcl9pbWFnZTsKICAgICAgR0xpbnQgdG9wT2ZJbWFnZTsKCiAgICAgIGJ5dGVzX3Blcl9w
aXhlbCA9IF9tZXNhX2J5dGVzX3Blcl9waXhlbCggZm9ybWF0LCB0eXBlICk7CgoKICAgICAgKCh2
b2lkKSAoKGJ5dGVzX3Blcl9waXhlbCA+IDApID8gMCA6IChfX2VwcmludGYgKCIlczoldTogZmFp
bGVkIGFzc2VydGlvbiBgJXMnXG4iLCAiaW1hZ2UuYyIsIDQ5NywgImJ5dGVzX3Blcl9waXhlbCA+
IDAiKSwgMCkpKTsKCiAgICAgIGJ5dGVzX3Blcl9yb3cgPSBwaXhlbHNfcGVyX3JvdyAqIGJ5dGVz
X3Blcl9waXhlbDsKICAgICAgcmVtYWluZGVyID0gYnl0ZXNfcGVyX3JvdyAlIGFsaWdubWVudDsK
ICAgICAgaWYgKHJlbWFpbmRlciA+IDApCiAgICAgICAgIGJ5dGVzX3Blcl9yb3cgKz0gKGFsaWdu
bWVudCAtIHJlbWFpbmRlcik7CgogICAgICA7CgogICAgICBieXRlc19wZXJfaW1hZ2UgPSBieXRl
c19wZXJfcm93ICogcm93c19wZXJfaW1hZ2U7CgogICAgICBpZiAocGFja2luZy0+SW52ZXJ0KSB7
CgogICAgICAgICB0b3BPZkltYWdlID0gYnl0ZXNfcGVyX3JvdyAqIChoZWlnaHQgLSAxKTsKICAg
ICAgICAgYnl0ZXNfcGVyX3JvdyA9IC1ieXRlc19wZXJfcm93OwogICAgICB9CiAgICAgIGVsc2Ug
ewogICAgICAgICB0b3BPZkltYWdlID0gMDsKICAgICAgfQoKCiAgICAgIHBpeGVsX2FkZHIgPSAo
R0x1Ynl0ZSAqKSBpbWFnZQogICAgICAgICAgICAgICAgICsgKHNraXBpbWFnZXMgKyBpbWcpICog
Ynl0ZXNfcGVyX2ltYWdlCiAgICAgICAgICAgICAgICAgKyB0b3BPZkltYWdlCiAgICAgICAgICAg
ICAgICAgKyAoc2tpcHJvd3MgKyByb3cpICogYnl0ZXNfcGVyX3JvdwogICAgICAgICAgICAgICAg
ICsgKHNraXBwaXhlbHMgKyBjb2x1bW4pICogYnl0ZXNfcGVyX3BpeGVsOwogICB9CgogICByZXR1
cm4gKEdMdm9pZCAqKSBwaXhlbF9hZGRyOwp9CgoKCgoKCgpHTGludApfbWVzYV9pbWFnZV9yb3df
c3RyaWRlKCBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKnBhY2tpbmcsCiAgICAg
ICAgICAgICAgICAgICAgICAgIEdMaW50IHdpZHRoLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlw
ZSApCnsKICAgOwogICBpZiAodHlwZSA9PSAweDFBMDApIHsKCiAgICAgIEdMaW50IGJ5dGVzOwog
ICAgICBpZiAocGFja2luZy0+Um93TGVuZ3RoID09IDApIHsKICAgICAgICAgYnl0ZXMgPSAod2lk
dGggKyA3KSAvIDg7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgIGJ5dGVzID0gKHBhY2tp
bmctPlJvd0xlbmd0aCArIDcpIC8gODsKICAgICAgfQogICAgICBpZiAocGFja2luZy0+SW52ZXJ0
KSB7CgogICAgICAgICBieXRlcyA9IC1ieXRlczsKICAgICAgfQogICAgICByZXR1cm4gYnl0ZXM7
CiAgIH0KICAgZWxzZSB7CgogICAgICBjb25zdCBHTGludCBieXRlc1BlclBpeGVsID0gX21lc2Ff
Ynl0ZXNfcGVyX3BpeGVsKGZvcm1hdCwgdHlwZSk7CiAgICAgIEdMaW50IGJ5dGVzUGVyUm93LCBy
ZW1haW5kZXI7CiAgICAgIGlmIChieXRlc1BlclBpeGVsIDw9IDApCiAgICAgICAgIHJldHVybiAt
MTsKICAgICAgaWYgKHBhY2tpbmctPlJvd0xlbmd0aCA9PSAwKSB7CiAgICAgICAgIGJ5dGVzUGVy
Um93ID0gYnl0ZXNQZXJQaXhlbCAqIHdpZHRoOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAg
ICBieXRlc1BlclJvdyA9IGJ5dGVzUGVyUGl4ZWwgKiBwYWNraW5nLT5Sb3dMZW5ndGg7CiAgICAg
IH0KICAgICAgcmVtYWluZGVyID0gYnl0ZXNQZXJSb3cgJSBwYWNraW5nLT5BbGlnbm1lbnQ7CiAg
ICAgIGlmIChyZW1haW5kZXIgPiAwKQogICAgICAgICBieXRlc1BlclJvdyArPSAocGFja2luZy0+
QWxpZ25tZW50IC0gcmVtYWluZGVyKTsKICAgICAgaWYgKHBhY2tpbmctPkludmVydCkKICAgICAg
ICAgYnl0ZXNQZXJSb3cgPSAtYnl0ZXNQZXJSb3c7CiAgICAgIHJldHVybiBieXRlc1BlclJvdzsK
ICAgfQp9CgoKCgoKCgpHTGludApfbWVzYV9pbWFnZV9pbWFnZV9zdHJpZGUoIGNvbnN0IHN0cnVj
dCBnbF9waXhlbHN0b3JlX2F0dHJpYiAqcGFja2luZywKICAgICAgICAgICAgICAgICAgICAgICAg
ICBHTGludCB3aWR0aCwgR0xpbnQgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgIEdM
ZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlICkKewogICA7CiAgIDsKCiAgIHsKICAgICAgY29uc3Qg
R0xpbnQgYnl0ZXNQZXJQaXhlbCA9IF9tZXNhX2J5dGVzX3Blcl9waXhlbChmb3JtYXQsIHR5cGUp
OwogICAgICBHTGludCBieXRlc1BlclJvdywgYnl0ZXNQZXJJbWFnZSwgcmVtYWluZGVyOwoKICAg
ICAgaWYgKGJ5dGVzUGVyUGl4ZWwgPD0gMCkKICAgICAgICAgcmV0dXJuIC0xOwogICAgICBpZiAo
cGFja2luZy0+Um93TGVuZ3RoID09IDApIHsKICAgICAgICAgYnl0ZXNQZXJSb3cgPSBieXRlc1Bl
clBpeGVsICogd2lkdGg7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgIGJ5dGVzUGVyUm93
ID0gYnl0ZXNQZXJQaXhlbCAqIHBhY2tpbmctPlJvd0xlbmd0aDsKICAgICAgfQogICAgICByZW1h
aW5kZXIgPSBieXRlc1BlclJvdyAlIHBhY2tpbmctPkFsaWdubWVudDsKICAgICAgaWYgKHJlbWFp
bmRlciA+IDApCiAgICAgICAgIGJ5dGVzUGVyUm93ICs9IChwYWNraW5nLT5BbGlnbm1lbnQgLSBy
ZW1haW5kZXIpOwoKICAgICAgaWYgKHBhY2tpbmctPkltYWdlSGVpZ2h0ID09IDApCiAgICAgICAg
IGJ5dGVzUGVySW1hZ2UgPSBieXRlc1BlclJvdyAqIGhlaWdodDsKICAgICAgZWxzZQogICAgICAg
ICBieXRlc1BlckltYWdlID0gYnl0ZXNQZXJSb3cgKiBwYWNraW5nLT5JbWFnZUhlaWdodDsKCiAg
ICAgIHJldHVybiBieXRlc1BlckltYWdlOwogICB9Cn0KIyA2MjEgImltYWdlLmMiCnZvaWQKX21l
c2FfdW5wYWNrX3BvbHlnb25fc3RpcHBsZSggY29uc3QgR0x1Ynl0ZSAqcGF0dGVybiwgR0x1aW50
IGRlc3RbMzJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZ2xf
cGl4ZWxzdG9yZV9hdHRyaWIgKnVucGFja2luZyApCnsKICAgR0x1Ynl0ZSAqcHRybiA9IChHTHVi
eXRlICopIF9tZXNhX3VucGFja19iaXRtYXAoIDMyLCAzMiwgcGF0dGVybiwgdW5wYWNraW5nICk7
CiAgIGlmIChwdHJuKSB7CgoKCiAgICAgIEdMdWJ5dGUgKnAgPSBwdHJuOwogICAgICBHTGludCBp
OwogICAgICBmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykgewogICAgICAgICBkZXN0W2ldID0gKHBb
MF0gPDwgMjQpCiAgICAgICAgICAgICAgICAgfCAocFsxXSA8PCAxNikKICAgICAgICAgICAgICAg
ICB8IChwWzJdIDw8IDgpCiAgICAgICAgICAgICAgICAgfCAocFszXSApOwogICAgICAgICBwICs9
IDQ7CiAgICAgIH0KICAgICAgX21lc2FfZnJlZShwdHJuKTsKICAgfQp9CgoKCgoKCgp2b2lkCl9t
ZXNhX3BhY2tfcG9seWdvbl9zdGlwcGxlKCBjb25zdCBHTHVpbnQgcGF0dGVyblszMl0sIEdMdWJ5
dGUgKmRlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZ2xfcGl4
ZWxzdG9yZV9hdHRyaWIgKnBhY2tpbmcgKQp7CgoKCiAgIEdMdWJ5dGUgcHRyblszMio0XTsKICAg
R0xpbnQgaTsKICAgZm9yIChpID0gMDsgaSA8IDMyOyBpKyspIHsKICAgICAgcHRybltpICogNCAr
IDBdID0gKEdMdWJ5dGUpICgocGF0dGVybltpXSA+PiAyNCkgJiAweGZmKTsKICAgICAgcHRybltp
ICogNCArIDFdID0gKEdMdWJ5dGUpICgocGF0dGVybltpXSA+PiAxNikgJiAweGZmKTsKICAgICAg
cHRybltpICogNCArIDJdID0gKEdMdWJ5dGUpICgocGF0dGVybltpXSA+PiA4ICkgJiAweGZmKTsK
ICAgICAgcHRybltpICogNCArIDNdID0gKEdMdWJ5dGUpICgocGF0dGVybltpXSApICYgMHhmZik7
CiAgIH0KCiAgIF9tZXNhX3BhY2tfYml0bWFwKDMyLCAzMiwgcHRybiwgZGVzdCwgcGFja2luZyk7
Cn0KCgoKCgoKR0x2b2lkICoKX21lc2FfdW5wYWNrX2JpdG1hcCggR0xpbnQgd2lkdGgsIEdMaW50
IGhlaWdodCwgY29uc3QgR0x1Ynl0ZSAqcGl4ZWxzLAogICAgICAgICAgICAgICAgICAgICBjb25z
dCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKnBhY2tpbmcgKQp7CiAgIEdMaW50IGJ5dGVz
LCByb3csIHdpZHRoX2luX2J5dGVzOwogICBHTHVieXRlICpidWZmZXIsICpkc3Q7CgogICBpZiAo
IXBpeGVscykKICAgICAgcmV0dXJuIDA7CgoKICAgYnl0ZXMgPSAoKHdpZHRoICsgNykgLyA4ICog
aGVpZ2h0KTsKICAgYnVmZmVyID0gKEdMdWJ5dGUgKikgX21lc2FfbWFsbG9jKGJ5dGVzKTsKICAg
aWYgKCFidWZmZXIpCiAgICAgIHJldHVybiAwOwoKCiAgIHdpZHRoX2luX2J5dGVzID0gKCAod2lk
dGgpICUgKDgpID09IDAgPyAod2lkdGgpLyg4KSA6ICh3aWR0aCkvKDgpKzEgKTsKICAgZHN0ID0g
YnVmZmVyOwogICBmb3IgKHJvdyA9IDA7IHJvdyA8IGhlaWdodDsgcm93KyspIHsKICAgICAgY29u
c3QgR0x1Ynl0ZSAqc3JjID0gKGNvbnN0IEdMdWJ5dGUgKikKICAgICAgICAgX21lc2FfaW1hZ2Vf
YWRkcmVzcyhwYWNraW5nLCBwaXhlbHMsIHdpZHRoLCBoZWlnaHQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMHgxOTAwLCAweDFBMDAsIDAsIHJvdywgMCk7CiAgICAgIGlmICghc3JjKSB7
CiAgICAgICAgIF9tZXNhX2ZyZWUoYnVmZmVyKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgIH0K
CiAgICAgIGlmIChwYWNraW5nLT5Ta2lwUGl4ZWxzID09IDApIHsKICAgICAgICAgX21lc2FfbWVt
Y3B5KGRzdCwgc3JjLCB3aWR0aF9pbl9ieXRlcyk7CiAgICAgICAgIGlmIChwYWNraW5nLT5Mc2JG
aXJzdCkgewogICAgICAgICAgICBmbGlwX2J5dGVzKCBkc3QsIHdpZHRoX2luX2J5dGVzICk7CiAg
ICAgICAgIH0KICAgICAgfQogICAgICBlbHNlIHsKCiAgICAgICAgIEdMaW50IGk7CiAgICAgICAg
IGlmIChwYWNraW5nLT5Mc2JGaXJzdCkgewogICAgICAgICAgICBHTHVieXRlIHNyY01hc2sgPSAx
IDw8IChwYWNraW5nLT5Ta2lwUGl4ZWxzICYgMHg3KTsKICAgICAgICAgICAgR0x1Ynl0ZSBkc3RN
YXNrID0gMTI4OwogICAgICAgICAgICBjb25zdCBHTHVieXRlICpzID0gc3JjOwogICAgICAgICAg
ICBHTHVieXRlICpkID0gZHN0OwogICAgICAgICAgICAqZCA9IDA7CiAgICAgICAgICAgIGZvciAo
aSA9IDA7IGkgPCB3aWR0aDsgaSsrKSB7CiAgICAgICAgICAgICAgIGlmICgqcyAmIHNyY01hc2sp
IHsKICAgICAgICAgICAgICAgICAgKmQgfD0gZHN0TWFzazsKICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICBpZiAoc3JjTWFzayA9PSAxMjgpIHsKICAgICAgICAgICAgICAgICAgc3JjTWFz
ayA9IDE7CiAgICAgICAgICAgICAgICAgIHMrKzsKICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgc3JjTWFzayA9IHNyY01hc2sgPDwgMTsKICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICBpZiAoZHN0TWFzayA9PSAxKSB7CiAgICAgICAg
ICAgICAgICAgIGRzdE1hc2sgPSAxMjg7CiAgICAgICAgICAgICAgICAgIGQrKzsKICAgICAgICAg
ICAgICAgICAgKmQgPSAwOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGVsc2Ugewog
ICAgICAgICAgICAgICAgICBkc3RNYXNrID0gZHN0TWFzayA+PiAxOwogICAgICAgICAgICAgICB9
CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgR0x1
Ynl0ZSBzcmNNYXNrID0gMTI4ID4+IChwYWNraW5nLT5Ta2lwUGl4ZWxzICYgMHg3KTsKICAgICAg
ICAgICAgR0x1Ynl0ZSBkc3RNYXNrID0gMTI4OwogICAgICAgICAgICBjb25zdCBHTHVieXRlICpz
ID0gc3JjOwogICAgICAgICAgICBHTHVieXRlICpkID0gZHN0OwogICAgICAgICAgICAqZCA9IDA7
CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB3aWR0aDsgaSsrKSB7CiAgICAgICAgICAgICAg
IGlmICgqcyAmIHNyY01hc2spIHsKICAgICAgICAgICAgICAgICAgKmQgfD0gZHN0TWFzazsKICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICBpZiAoc3JjTWFzayA9PSAxKSB7CiAgICAgICAg
ICAgICAgICAgIHNyY01hc2sgPSAxMjg7CiAgICAgICAgICAgICAgICAgIHMrKzsKICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgc3JjTWFzayA9
IHNyY01hc2sgPj4gMTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBpZiAoZHN0TWFz
ayA9PSAxKSB7CiAgICAgICAgICAgICAgICAgIGRzdE1hc2sgPSAxMjg7CiAgICAgICAgICAgICAg
ICAgIGQrKzsKICAgICAgICAgICAgICAgICAgKmQgPSAwOwogICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICBkc3RNYXNrID0gZHN0TWFzayA+PiAx
OwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICB9CiAgICAg
IGRzdCArPSB3aWR0aF9pbl9ieXRlczsKICAgfQoKICAgcmV0dXJuIGJ1ZmZlcjsKfQoKCgoKCnZv
aWQKX21lc2FfcGFja19iaXRtYXAoIEdMaW50IHdpZHRoLCBHTGludCBoZWlnaHQsIGNvbnN0IEdM
dWJ5dGUgKnNvdXJjZSwKICAgICAgICAgICAgICAgICAgIEdMdWJ5dGUgKmRlc3QsIGNvbnN0IHN0
cnVjdCBnbF9waXhlbHN0b3JlX2F0dHJpYiAqcGFja2luZyApCnsKICAgR0xpbnQgcm93LCB3aWR0
aF9pbl9ieXRlczsKICAgY29uc3QgR0x1Ynl0ZSAqc3JjOwoKICAgaWYgKCFzb3VyY2UpCiAgICAg
IHJldHVybjsKCiAgIHdpZHRoX2luX2J5dGVzID0gKCAod2lkdGgpICUgKDgpID09IDAgPyAod2lk
dGgpLyg4KSA6ICh3aWR0aCkvKDgpKzEgKTsKICAgc3JjID0gc291cmNlOwogICBmb3IgKHJvdyA9
IDA7IHJvdyA8IGhlaWdodDsgcm93KyspIHsKICAgICAgR0x1Ynl0ZSAqZHN0ID0gKEdMdWJ5dGUg
KikgX21lc2FfaW1hZ2VfYWRkcmVzcyggcGFja2luZywgZGVzdCwKICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aCwgaGVpZ2h0LCAweDE5MDAsIDB4MUEwMCwgMCwgcm93LCAwICk7CiAgICAgIGlm
ICghZHN0KQogICAgICAgICByZXR1cm47CgogICAgICBpZiAocGFja2luZy0+U2tpcFBpeGVscyA9
PSAwKSB7CiAgICAgICAgIF9tZXNhX21lbWNweShkc3QsIHNyYywgd2lkdGhfaW5fYnl0ZXMpOwog
ICAgICAgICBpZiAocGFja2luZy0+THNiRmlyc3QpIHsKICAgICAgICAgICAgZmxpcF9ieXRlcygg
ZHN0LCB3aWR0aF9pbl9ieXRlcyApOwogICAgICAgICB9CiAgICAgIH0KICAgICAgZWxzZSB7Cgog
ICAgICAgICBHTGludCBpOwogICAgICAgICBpZiAocGFja2luZy0+THNiRmlyc3QpIHsKICAgICAg
ICAgICAgR0x1Ynl0ZSBzcmNNYXNrID0gMSA8PCAocGFja2luZy0+U2tpcFBpeGVscyAmIDB4Nyk7
CiAgICAgICAgICAgIEdMdWJ5dGUgZHN0TWFzayA9IDEyODsKICAgICAgICAgICAgY29uc3QgR0x1
Ynl0ZSAqcyA9IHNyYzsKICAgICAgICAgICAgR0x1Ynl0ZSAqZCA9IGRzdDsKICAgICAgICAgICAg
KmQgPSAwOwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgd2lkdGg7IGkrKykgewogICAgICAg
ICAgICAgICBpZiAoKnMgJiBzcmNNYXNrKSB7CiAgICAgICAgICAgICAgICAgICpkIHw9IGRzdE1h
c2s7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgaWYgKHNyY01hc2sgPT0gMTI4KSB7
CiAgICAgICAgICAgICAgICAgIHNyY01hc2sgPSAxOwogICAgICAgICAgICAgICAgICBzKys7CiAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgIHNy
Y01hc2sgPSBzcmNNYXNrIDw8IDE7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgaWYg
KGRzdE1hc2sgPT0gMSkgewogICAgICAgICAgICAgICAgICBkc3RNYXNrID0gMTI4OwogICAgICAg
ICAgICAgICAgICBkKys7CiAgICAgICAgICAgICAgICAgICpkID0gMDsKICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgZHN0TWFzayA9IGRzdE1h
c2sgPj4gMTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgIEdMdWJ5dGUgc3JjTWFzayA9IDEyOCA+PiAocGFja2luZy0+
U2tpcFBpeGVscyAmIDB4Nyk7CiAgICAgICAgICAgIEdMdWJ5dGUgZHN0TWFzayA9IDEyODsKICAg
ICAgICAgICAgY29uc3QgR0x1Ynl0ZSAqcyA9IHNyYzsKICAgICAgICAgICAgR0x1Ynl0ZSAqZCA9
IGRzdDsKICAgICAgICAgICAgKmQgPSAwOwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgd2lk
dGg7IGkrKykgewogICAgICAgICAgICAgICBpZiAoKnMgJiBzcmNNYXNrKSB7CiAgICAgICAgICAg
ICAgICAgICpkIHw9IGRzdE1hc2s7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgaWYg
KHNyY01hc2sgPT0gMSkgewogICAgICAgICAgICAgICAgICBzcmNNYXNrID0gMTI4OwogICAgICAg
ICAgICAgICAgICBzKys7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICAgICAgIHNyY01hc2sgPSBzcmNNYXNrID4+IDE7CiAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgaWYgKGRzdE1hc2sgPT0gMSkgewogICAgICAgICAgICAgICAgICBkc3RN
YXNrID0gMTI4OwogICAgICAgICAgICAgICAgICBkKys7CiAgICAgICAgICAgICAgICAgICpkID0g
MDsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAg
ICAgZHN0TWFzayA9IGRzdE1hc2sgPj4gMTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICAgfQogICAgICBzcmMgKz0gd2lkdGhfaW5fYnl0ZXM7CiAgIH0KfQoj
IDg2OCAiaW1hZ2UuYyIKdm9pZApfbWVzYV9wYWNrX2Zsb2F0X3JnYmFfc3BhbiggR0xjb250ZXh0
ICpjdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHVpbnQgbiwgY29uc3QgR0xmbG9h
dCByZ2JhSW5bXVs0XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBkc3RGb3Jt
YXQsIEdMZW51bSBkc3RUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgR0x2b2lkICpk
c3RBZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGdsX3BpeGVs
c3RvcmVfYXR0cmliICpkc3RQYWNraW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgR0x1
aW50IHRyYW5zZmVyT3BzICkKewogICBjb25zdCBHTGludCBjb21wcyA9IF9tZXNhX2NvbXBvbmVu
dHNfaW5fZm9ybWF0KGRzdEZvcm1hdCk7CiAgIEdMZmxvYXQgbHVtaW5hbmNlWzIwNDhdOwogICBH
TGZsb2F0ICgqcmdiYSlbNF07CiAgIEdMdWludCBpOwoKICAgaWYgKHRyYW5zZmVyT3BzKSB7Cgog
ICAgICBHTGZsb2F0IHJnYmFDb3B5WzIwNDhdWzRdOwogICAgICBkbyB7fSB3aGlsZSgwKTsKCiAg
ICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgcmdiYUNvcHlbaV1bMF0gPSBy
Z2JhSW5baV1bMF07CiAgICAgICAgIHJnYmFDb3B5W2ldWzFdID0gcmdiYUluW2ldWzFdOwogICAg
ICAgICByZ2JhQ29weVtpXVsyXSA9IHJnYmFJbltpXVsyXTsKICAgICAgICAgcmdiYUNvcHlbaV1b
M10gPSByZ2JhSW5baV1bM107CiAgICAgIH0KCiAgICAgIHJnYmEgPSAoR0xmbG9hdCAoKilbNF0p
IHJnYmFDb3B5OwoKCiAgICAgIGlmICh0cmFuc2Zlck9wcyAmIDB4MSkgewogICAgICAgICBfbWVz
YV9zY2FsZV9hbmRfYmlhc19yZ2JhKGN0eCwgbiwgcmdiYSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjdHgtPlBpeGVsLlJlZFNjYWxlLCBjdHgtPlBpeGVsLkdyZWVuU2NhbGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5QaXhlbC5CbHVlU2NhbGUs
IGN0eC0+UGl4ZWwuQWxwaGFTY2FsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjdHgtPlBpeGVsLlJlZEJpYXMsIGN0eC0+UGl4ZWwuR3JlZW5CaWFzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGN0eC0+UGl4ZWwuQmx1ZUJpYXMsIGN0eC0+UGl4ZWwuQWxw
aGFCaWFzKTsKICAgICAgfQoKICAgICAgaWYgKHRyYW5zZmVyT3BzICYgMHg0KSB7CiAgICAgICAg
IF9tZXNhX21hcF9yZ2JhKCBjdHgsIG4sIHJnYmEgKTsKICAgICAgfQoKICAgICAgaWYgKHRyYW5z
ZmVyT3BzICYgMHg4KSB7CiAgICAgICAgIF9tZXNhX2xvb2t1cF9yZ2JhKCZjdHgtPkNvbG9yVGFi
bGUsIG4sIHJnYmEpOwogICAgICB9CgogICAgICBpZiAodHJhbnNmZXJPcHMgJiAweDEwKSB7Cgog
ICAgICB9CgogICAgICBpZiAodHJhbnNmZXJPcHMgJiAweDIwKSB7CiAgICAgICAgIF9tZXNhX3Nj
YWxlX2FuZF9iaWFzX3JnYmEoY3R4LCBuLCByZ2JhLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGN0eC0+UGl4ZWwuUG9zdENvbnZvbHV0aW9uU2NhbGVbMF0sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5QaXhlbC5Qb3N0Q29udm9sdXRpb25TY2FsZVsx
XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPlBpeGVsLlBvc3RDb252
b2x1dGlvblNjYWxlWzJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+
UGl4ZWwuUG9zdENvbnZvbHV0aW9uU2NhbGVbM10sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3R4LT5QaXhlbC5Qb3N0Q29udm9sdXRpb25CaWFzWzBdLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGN0eC0+UGl4ZWwuUG9zdENvbnZvbHV0aW9uQmlhc1sxXSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPlBpeGVsLlBvc3RDb252b2x1
dGlvbkJpYXNbMl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5QaXhl
bC5Qb3N0Q29udm9sdXRpb25CaWFzWzNdKTsKICAgICAgfQoKICAgICAgaWYgKHRyYW5zZmVyT3Bz
ICYgMHg0MCkgewogICAgICAgICBfbWVzYV9sb29rdXBfcmdiYSgmY3R4LT5Qb3N0Q29udm9sdXRp
b25Db2xvclRhYmxlLCBuLCByZ2JhKTsKICAgICAgfQoKICAgICAgaWYgKHRyYW5zZmVyT3BzICYg
MHg4MCkgewogICAgICAgICBfbWVzYV90cmFuc2Zvcm1fcmdiYShjdHgsIG4sIHJnYmEpOwogICAg
ICB9CgogICAgICBpZiAodHJhbnNmZXJPcHMgJiAweDEwMCkgewogICAgICAgICBfbWVzYV9sb29r
dXBfcmdiYSgmY3R4LT5Qb3N0Q29sb3JNYXRyaXhDb2xvclRhYmxlLCBuLCByZ2JhKTsKICAgICAg
fQoKICAgICAgaWYgKHRyYW5zZmVyT3BzICYgMHgyMDApIHsKICAgICAgICAgX21lc2FfdXBkYXRl
X2hpc3RvZ3JhbShjdHgsIG4sIChjb25zdCBHTGZsb2F0ICgqKVs0XSkgcmdiYSk7CiAgICAgIH0K
CiAgICAgIGlmICh0cmFuc2Zlck9wcyAmIDB4NDAwKSB7CiAgICAgICAgIF9tZXNhX3VwZGF0ZV9t
aW5tYXgoY3R4LCBuLCAoY29uc3QgR0xmbG9hdCAoKilbNF0pIHJnYmEpOwogICAgICAgICBpZiAo
Y3R4LT5NaW5NYXguU2luaykgewogICAgICAgICAgICA7CiAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgICB9CiAgICAgIDsKICAgfQogICBlbHNlIHsKCiAgICAgIHJnYmEgPSAoR0xm
bG9hdCAoKilbNF0pIHJnYmFJbjsKICAgfQoKCgoKICAgaWYgKGRzdEZvcm1hdCA9PSAweDE5MDkg
fHwgZHN0Rm9ybWF0ID09IDB4MTkwQSkgewogICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7
CiAgICAgICAgIEdMZmxvYXQgc3VtID0gcmdiYVtpXVswXSArIHJnYmFbaV1bMV0gKyByZ2JhW2ld
WzJdOwoKCgogICAgICAgICBsdW1pbmFuY2VbaV0gPSAoIChzdW0pPCgwLjBGKSA/ICgwLjBGKSA6
ICgoc3VtKT4oMS4wRikgPyAoMS4wRikgOiAoc3VtKSkgKTsKCiAgICAgIH0KICAgfQoKCgoKICAg
c3dpdGNoIChkc3RUeXBlKSB7CiAgICAgIGNhc2UgMHgxNDAxOgogICAgICAgICB7CiAgICAgICAg
ICAgIEdMdWJ5dGUgKmRzdCA9IChHTHVieXRlICopIGRzdEFkZHI7CiAgICAgICAgICAgIHN3aXRj
aCAoZHN0Rm9ybWF0KSB7CiAgICAgICAgICAgICAgIGNhc2UgMHgxOTAzOgogICAgICAgICAgICAg
ICAgICBmb3IgKGk9MDtpPG47aSsrKQogICAgICAgICAgICAgICAgICAgICBkc3RbaV0gPSAoKEdM
dWJ5dGUpIChHTGludCkgKChyZ2JhW2ldWzBdKSAqIDI1NS4wRikpOwogICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgY2FzZSAweDE5MDQ6CiAgICAgICAgICAgICAgICAgIGZv
ciAoaT0wO2k8bjtpKyspCiAgICAgICAgICAgICAgICAgICAgIGRzdFtpXSA9ICgoR0x1Ynl0ZSkg
KEdMaW50KSAoKHJnYmFbaV1bMV0pICogMjU1LjBGKSk7CiAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICBjYXNlIDB4MTkwNToKICAgICAgICAgICAgICAgICAgZm9yIChpPTA7
aTxuO2krKykKICAgICAgICAgICAgICAgICAgICAgZHN0W2ldID0gKChHTHVieXRlKSAoR0xpbnQp
ICgocmdiYVtpXVsyXSkgKiAyNTUuMEYpKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgIGNhc2UgMHgxOTA2OgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsr
KQogICAgICAgICAgICAgICAgICAgICBkc3RbaV0gPSAoKEdMdWJ5dGUpIChHTGludCkgKChyZ2Jh
W2ldWzNdKSAqIDI1NS4wRikpOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgY2FzZSAweDE5MDk6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspCiAgICAg
ICAgICAgICAgICAgICAgIGRzdFtpXSA9ICgoR0x1Ynl0ZSkgKEdMaW50KSAoKGx1bWluYW5jZVtp
XSkgKiAyNTUuMEYpKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgIGNh
c2UgMHgxOTBBOgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGRzdFtpKjIrMF0gPSAoKEdMdWJ5dGUpIChHTGludCkgKChsdW1pbmFuY2Vb
aV0pICogMjU1LjBGKSk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjIrMV0gPSAoKEdMdWJ5
dGUpIChHTGludCkgKChyZ2JhW2ldWzNdKSAqIDI1NS4wRikpOwogICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkwNzoKICAg
ICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykgewogICAgICAgICAgICAgICAgICAgICBk
c3RbaSozKzBdID0gKChHTHVieXRlKSAoR0xpbnQpICgocmdiYVtpXVswXSkgKiAyNTUuMEYpKTsK
ICAgICAgICAgICAgICAgICAgICAgZHN0W2kqMysxXSA9ICgoR0x1Ynl0ZSkgKEdMaW50KSAoKHJn
YmFbaV1bMV0pICogMjU1LjBGKSk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjMrMl0gPSAo
KEdMdWJ5dGUpIChHTGludCkgKChyZ2JhW2ldWzJdKSAqIDI1NS4wRikpOwogICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkw
ODoKICAgICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykgewogICAgICAgICAgICAgICAg
ICAgICBkc3RbaSo0KzBdID0gKChHTHVieXRlKSAoR0xpbnQpICgocmdiYVtpXVswXSkgKiAyNTUu
MEYpKTsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCsxXSA9ICgoR0x1Ynl0ZSkgKEdMaW50
KSAoKHJnYmFbaV1bMV0pICogMjU1LjBGKSk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQr
Ml0gPSAoKEdMdWJ5dGUpIChHTGludCkgKChyZ2JhW2ldWzJdKSAqIDI1NS4wRikpOwogICAgICAg
ICAgICAgICAgICAgICBkc3RbaSo0KzNdID0gKChHTHVieXRlKSAoR0xpbnQpICgocmdiYVtpXVsz
XSkgKiAyNTUuMEYpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgY2FzZSAweDgwRTA6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0w
O2k8bjtpKyspIHsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqMyswXSA9ICgoR0x1Ynl0ZSkg
KEdMaW50KSAoKHJnYmFbaV1bMl0pICogMjU1LjBGKSk7CiAgICAgICAgICAgICAgICAgICAgIGRz
dFtpKjMrMV0gPSAoKEdMdWJ5dGUpIChHTGludCkgKChyZ2JhW2ldWzFdKSAqIDI1NS4wRikpOwog
ICAgICAgICAgICAgICAgICAgICBkc3RbaSozKzJdID0gKChHTHVieXRlKSAoR0xpbnQpICgocmdi
YVtpXVswXSkgKiAyNTUuMEYpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgY2FzZSAweDgwRTE6CiAgICAgICAgICAgICAgICAgIGZv
ciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCswXSA9ICgoR0x1
Ynl0ZSkgKEdMaW50KSAoKHJnYmFbaV1bMl0pICogMjU1LjBGKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGRzdFtpKjQrMV0gPSAoKEdMdWJ5dGUpIChHTGludCkgKChyZ2JhW2ldWzFdKSAqIDI1NS4w
RikpOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzJdID0gKChHTHVieXRlKSAoR0xpbnQp
ICgocmdiYVtpXVswXSkgKiAyNTUuMEYpKTsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCsz
XSA9ICgoR0x1Ynl0ZSkgKEdMaW50KSAoKHJnYmFbaV1bM10pICogMjU1LjBGKSk7CiAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgIGNhc2Ug
MHg4MDAwOgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGRzdFtpKjQrMF0gPSAoKEdMdWJ5dGUpIChHTGludCkgKChyZ2JhW2ldWzNdKSAq
IDI1NS4wRikpOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzFdID0gKChHTHVieXRlKSAo
R0xpbnQpICgocmdiYVtpXVsyXSkgKiAyNTUuMEYpKTsKICAgICAgICAgICAgICAgICAgICAgZHN0
W2kqNCsyXSA9ICgoR0x1Ynl0ZSkgKEdMaW50KSAoKHJnYmFbaV1bMV0pICogMjU1LjBGKSk7CiAg
ICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrM10gPSAoKEdMdWJ5dGUpIChHTGludCkgKChyZ2Jh
W2ldWzBdKSAqIDI1NS4wRikpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICBfbWVzYV9w
cm9ibGVtKGN0eCwgImJhZCBmb3JtYXQgaW4gX21lc2FfcGFja19yZ2JhX3NwYW5cbiIpOwogICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHgxNDAwOgog
ICAgICAgICB7CiAgICAgICAgICAgIEdMYnl0ZSAqZHN0ID0gKEdMYnl0ZSAqKSBkc3RBZGRyOwog
ICAgICAgICAgICBzd2l0Y2ggKGRzdEZvcm1hdCkgewogICAgICAgICAgICAgICBjYXNlIDB4MTkw
MzoKICAgICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykKICAgICAgICAgICAgICAgICAg
ICAgZHN0W2ldID0gKCAoKChHTGludCkgKDI1NS4wRiAqIChyZ2JhW2ldWzBdKSkpIC0gMSkgLyAy
ICk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkwNDoK
ICAgICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykKICAgICAgICAgICAgICAgICAgICAg
ZHN0W2ldID0gKCAoKChHTGludCkgKDI1NS4wRiAqIChyZ2JhW2ldWzFdKSkpIC0gMSkgLyAyICk7
CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkwNToKICAg
ICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykKICAgICAgICAgICAgICAgICAgICAgZHN0
W2ldID0gKCAoKChHTGludCkgKDI1NS4wRiAqIChyZ2JhW2ldWzJdKSkpIC0gMSkgLyAyICk7CiAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkwNjoKICAgICAg
ICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykKICAgICAgICAgICAgICAgICAgICAgZHN0W2ld
ID0gKCAoKChHTGludCkgKDI1NS4wRiAqIChyZ2JhW2ldWzNdKSkpIC0gMSkgLyAyICk7CiAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkwOToKICAgICAgICAg
ICAgICAgICAgZm9yIChpPTA7aTxuO2krKykKICAgICAgICAgICAgICAgICAgICAgZHN0W2ldID0g
KCAoKChHTGludCkgKDI1NS4wRiAqIChsdW1pbmFuY2VbaV0pKSkgLSAxKSAvIDIgKTsKICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgIGNhc2UgMHgxOTBBOgogICAgICAgICAg
ICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjIr
MF0gPSAoICgoKEdMaW50KSAoMjU1LjBGICogKGx1bWluYW5jZVtpXSkpKSAtIDEpIC8gMiApOwog
ICAgICAgICAgICAgICAgICAgICBkc3RbaSoyKzFdID0gKCAoKChHTGludCkgKDI1NS4wRiAqIChy
Z2JhW2ldWzNdKSkpIC0gMSkgLyAyICk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgIGNhc2UgMHgxOTA3OgogICAgICAgICAgICAgICAg
ICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjMrMF0gPSAo
ICgoKEdMaW50KSAoMjU1LjBGICogKHJnYmFbaV1bMF0pKSkgLSAxKSAvIDIgKTsKICAgICAgICAg
ICAgICAgICAgICAgZHN0W2kqMysxXSA9ICggKCgoR0xpbnQpICgyNTUuMEYgKiAocmdiYVtpXVsx
XSkpKSAtIDEpIC8gMiApOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSozKzJdID0gKCAoKChH
TGludCkgKDI1NS4wRiAqIChyZ2JhW2ldWzJdKSkpIC0gMSkgLyAyICk7CiAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgIGNhc2UgMHgxOTA4
OgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGRzdFtpKjQrMF0gPSAoICgoKEdMaW50KSAoMjU1LjBGICogKHJnYmFbaV1bMF0pKSkgLSAx
KSAvIDIgKTsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCsxXSA9ICggKCgoR0xpbnQpICgy
NTUuMEYgKiAocmdiYVtpXVsxXSkpKSAtIDEpIC8gMiApOwogICAgICAgICAgICAgICAgICAgICBk
c3RbaSo0KzJdID0gKCAoKChHTGludCkgKDI1NS4wRiAqIChyZ2JhW2ldWzJdKSkpIC0gMSkgLyAy
ICk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrM10gPSAoICgoKEdMaW50KSAoMjU1LjBG
ICogKHJnYmFbaV1bM10pKSkgLSAxKSAvIDIgKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgY2FzZSAweDgwRTA6CiAgICAgICAgICAg
ICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqMysw
XSA9ICggKCgoR0xpbnQpICgyNTUuMEYgKiAocmdiYVtpXVsyXSkpKSAtIDEpIC8gMiApOwogICAg
ICAgICAgICAgICAgICAgICBkc3RbaSozKzFdID0gKCAoKChHTGludCkgKDI1NS4wRiAqIChyZ2Jh
W2ldWzFdKSkpIC0gMSkgLyAyICk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjMrMl0gPSAo
ICgoKEdMaW50KSAoMjU1LjBGICogKHJnYmFbaV1bMF0pKSkgLSAxKSAvIDIgKTsKICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgY2FzZSAw
eDgwRTE6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAg
ICAgICAgICAgZHN0W2kqNCswXSA9ICggKCgoR0xpbnQpICgyNTUuMEYgKiAocmdiYVtpXVsyXSkp
KSAtIDEpIC8gMiApOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzFdID0gKCAoKChHTGlu
dCkgKDI1NS4wRiAqIChyZ2JhW2ldWzFdKSkpIC0gMSkgLyAyICk7CiAgICAgICAgICAgICAgICAg
ICAgIGRzdFtpKjQrMl0gPSAoICgoKEdMaW50KSAoMjU1LjBGICogKHJnYmFbaV1bMF0pKSkgLSAx
KSAvIDIgKTsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCszXSA9ICggKCgoR0xpbnQpICgy
NTUuMEYgKiAocmdiYVtpXVszXSkpKSAtIDEpIC8gMiApOwogICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgIGNhc2UgMHg4MDAwOgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47
aSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrMF0gPSAoICgoKEdMaW50KSAoMjU1
LjBGICogKHJnYmFbaV1bM10pKSkgLSAxKSAvIDIgKTsKICAgICAgICAgICAgICAgICAgICAgZHN0
W2kqNCsxXSA9ICggKCgoR0xpbnQpICgyNTUuMEYgKiAocmdiYVtpXVsyXSkpKSAtIDEpIC8gMiAp
OwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzJdID0gKCAoKChHTGludCkgKDI1NS4wRiAq
IChyZ2JhW2ldWzFdKSkpIC0gMSkgLyAyICk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQr
M10gPSAoICgoKEdMaW50KSAoMjU1LjBGICogKHJnYmFbaV1bMF0pKSkgLSAxKSAvIDIgKTsKICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgX21lc2FfcHJvYmxlbShjdHgsICJiYWQgZm9ybWF0
IGluIF9tZXNhX3BhY2tfcmdiYV9zcGFuXG4iKTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4MTQwMzoKICAgICAgICAgewogICAgICAgICAgICBH
THVzaG9ydCAqZHN0ID0gKEdMdXNob3J0ICopIGRzdEFkZHI7CiAgICAgICAgICAgIHN3aXRjaCAo
ZHN0Rm9ybWF0KSB7CiAgICAgICAgICAgICAgIGNhc2UgMHgxOTAzOgogICAgICAgICAgICAgICAg
ICBmb3IgKGk9MDtpPG47aSsrKQogICAgICAgICAgICAgICAgICAgICBkc3RbaV0gPSAoKEdMdXNo
b3J0KSAoR0xpbnQpICgocmdiYVtpXVswXSkgKiA2NTUzNS4wRikpOwogICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgY2FzZSAweDE5MDQ6CiAgICAgICAgICAgICAgICAgIGZv
ciAoaT0wO2k8bjtpKyspCiAgICAgICAgICAgICAgICAgICAgIGRzdFtpXSA9ICgoR0x1c2hvcnQp
IChHTGludCkgKChyZ2JhW2ldWzFdKSAqIDY1NTM1LjBGKSk7CiAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkwNToKICAgICAgICAgICAgICAgICAgZm9yIChp
PTA7aTxuO2krKykKICAgICAgICAgICAgICAgICAgICAgZHN0W2ldID0gKChHTHVzaG9ydCkgKEdM
aW50KSAoKHJnYmFbaV1bMl0pICogNjU1MzUuMEYpKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgIGNhc2UgMHgxOTA2OgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtp
PG47aSsrKQogICAgICAgICAgICAgICAgICAgICBkc3RbaV0gPSAoKEdMdXNob3J0KSAoR0xpbnQp
ICgocmdiYVtpXVszXSkgKiA2NTUzNS4wRikpOwogICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgY2FzZSAweDE5MDk6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtp
KyspCiAgICAgICAgICAgICAgICAgICAgIGRzdFtpXSA9ICgoR0x1c2hvcnQpIChHTGludCkgKChs
dW1pbmFuY2VbaV0pICogNjU1MzUuMEYpKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgIGNhc2UgMHgxOTBBOgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsr
KSB7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjIrMF0gPSAoKEdMdXNob3J0KSAoR0xpbnQp
ICgobHVtaW5hbmNlW2ldKSAqIDY1NTM1LjBGKSk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtp
KjIrMV0gPSAoKEdMdXNob3J0KSAoR0xpbnQpICgocmdiYVtpXVszXSkgKiA2NTUzNS4wRikpOwog
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICBjYXNlIDB4MTkwNzoKICAgICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykgewogICAg
ICAgICAgICAgICAgICAgICBkc3RbaSozKzBdID0gKChHTHVzaG9ydCkgKEdMaW50KSAoKHJnYmFb
aV1bMF0pICogNjU1MzUuMEYpKTsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqMysxXSA9ICgo
R0x1c2hvcnQpIChHTGludCkgKChyZ2JhW2ldWzFdKSAqIDY1NTM1LjBGKSk7CiAgICAgICAgICAg
ICAgICAgICAgIGRzdFtpKjMrMl0gPSAoKEdMdXNob3J0KSAoR0xpbnQpICgocmdiYVtpXVsyXSkg
KiA2NTUzNS4wRikpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICBjYXNlIDB4MTkwODoKICAgICAgICAgICAgICAgICAgZm9yIChpPTA7
aTxuO2krKykgewogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzBdID0gKChHTHVzaG9ydCkg
KEdMaW50KSAoKHJnYmFbaV1bMF0pICogNjU1MzUuMEYpKTsKICAgICAgICAgICAgICAgICAgICAg
ZHN0W2kqNCsxXSA9ICgoR0x1c2hvcnQpIChHTGludCkgKChyZ2JhW2ldWzFdKSAqIDY1NTM1LjBG
KSk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrMl0gPSAoKEdMdXNob3J0KSAoR0xpbnQp
ICgocmdiYVtpXVsyXSkgKiA2NTUzNS4wRikpOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0
KzNdID0gKChHTHVzaG9ydCkgKEdMaW50KSAoKHJnYmFbaV1bM10pICogNjU1MzUuMEYpKTsKICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
Y2FzZSAweDgwRTA6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAg
ICAgICAgICAgICAgICAgZHN0W2kqMyswXSA9ICgoR0x1c2hvcnQpIChHTGludCkgKChyZ2JhW2ld
WzJdKSAqIDY1NTM1LjBGKSk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjMrMV0gPSAoKEdM
dXNob3J0KSAoR0xpbnQpICgocmdiYVtpXVsxXSkgKiA2NTUzNS4wRikpOwogICAgICAgICAgICAg
ICAgICAgICBkc3RbaSozKzJdID0gKChHTHVzaG9ydCkgKEdMaW50KSAoKHJnYmFbaV1bMF0pICog
NjU1MzUuMEYpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgY2FzZSAweDgwRTE6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8
bjtpKyspIHsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCswXSA9ICgoR0x1c2hvcnQpIChH
TGludCkgKChyZ2JhW2ldWzJdKSAqIDY1NTM1LjBGKSk7CiAgICAgICAgICAgICAgICAgICAgIGRz
dFtpKjQrMV0gPSAoKEdMdXNob3J0KSAoR0xpbnQpICgocmdiYVtpXVsxXSkgKiA2NTUzNS4wRikp
OwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzJdID0gKChHTHVzaG9ydCkgKEdMaW50KSAo
KHJnYmFbaV1bMF0pICogNjU1MzUuMEYpKTsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCsz
XSA9ICgoR0x1c2hvcnQpIChHTGludCkgKChyZ2JhW2ldWzNdKSAqIDY1NTM1LjBGKSk7CiAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgIGNh
c2UgMHg4MDAwOgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGRzdFtpKjQrMF0gPSAoKEdMdXNob3J0KSAoR0xpbnQpICgocmdiYVtpXVsz
XSkgKiA2NTUzNS4wRikpOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzFdID0gKChHTHVz
aG9ydCkgKEdMaW50KSAoKHJnYmFbaV1bMl0pICogNjU1MzUuMEYpKTsKICAgICAgICAgICAgICAg
ICAgICAgZHN0W2kqNCsyXSA9ICgoR0x1c2hvcnQpIChHTGludCkgKChyZ2JhW2ldWzFdKSAqIDY1
NTM1LjBGKSk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrM10gPSAoKEdMdXNob3J0KSAo
R0xpbnQpICgocmdiYVtpXVswXSkgKiA2NTUzNS4wRikpOwogICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgICAgICBfbWVzYV9wcm9ibGVtKGN0eCwgImJhZCBmb3JtYXQgaW4gX21lc2FfcGFja19yZ2Jh
X3NwYW5cbiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkc3RQYWNraW5nLT5Td2Fw
Qnl0ZXMpIHsKICAgICAgICAgICAgICAgX21lc2Ffc3dhcDIoIChHTHVzaG9ydCAqKSBkc3QsIG4g
KiBjb21wcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICAg
Y2FzZSAweDE0MDI6CiAgICAgICAgIHsKICAgICAgICAgICAgR0xzaG9ydCAqZHN0ID0gKEdMc2hv
cnQgKikgZHN0QWRkcjsKICAgICAgICAgICAgc3dpdGNoIChkc3RGb3JtYXQpIHsKICAgICAgICAg
ICAgICAgY2FzZSAweDE5MDM6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspCiAg
ICAgICAgICAgICAgICAgICAgIGRzdFtpXSA9ICggKCgoR0xpbnQpICg2NTUzNS4wRiAqIChyZ2Jh
W2ldWzBdKSkpIC0gMSkgLyAyICk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICBjYXNlIDB4MTkwNDoKICAgICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykKICAg
ICAgICAgICAgICAgICAgICAgZHN0W2ldID0gKCAoKChHTGludCkgKDY1NTM1LjBGICogKHJnYmFb
aV1bMV0pKSkgLSAxKSAvIDIgKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgIGNhc2UgMHgxOTA1OgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKQogICAg
ICAgICAgICAgICAgICAgICBkc3RbaV0gPSAoICgoKEdMaW50KSAoNjU1MzUuMEYgKiAocmdiYVtp
XVsyXSkpKSAtIDEpIC8gMiApOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgY2FzZSAweDE5MDY6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspCiAgICAg
ICAgICAgICAgICAgICAgIGRzdFtpXSA9ICggKCgoR0xpbnQpICg2NTUzNS4wRiAqIChyZ2JhW2ld
WzNdKSkpIC0gMSkgLyAyICk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICBjYXNlIDB4MTkwOToKICAgICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykKICAgICAg
ICAgICAgICAgICAgICAgZHN0W2ldID0gKCAoKChHTGludCkgKDY1NTM1LjBGICogKGx1bWluYW5j
ZVtpXSkpKSAtIDEpIC8gMiApOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgY2FzZSAweDE5MEE6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAg
ICAgICAgICAgICAgICAgICAgZHN0W2kqMiswXSA9ICggKCgoR0xpbnQpICg2NTUzNS4wRiAqIChs
dW1pbmFuY2VbaV0pKSkgLSAxKSAvIDIgKTsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqMisx
XSA9ICggKCgoR0xpbnQpICg2NTUzNS4wRiAqIChyZ2JhW2ldWzNdKSkpIC0gMSkgLyAyICk7CiAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
IGNhc2UgMHgxOTA3OgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGRzdFtpKjMrMF0gPSAoICgoKEdMaW50KSAoNjU1MzUuMEYgKiAocmdi
YVtpXVswXSkpKSAtIDEpIC8gMiApOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSozKzFdID0g
KCAoKChHTGludCkgKDY1NTM1LjBGICogKHJnYmFbaV1bMV0pKSkgLSAxKSAvIDIgKTsKICAgICAg
ICAgICAgICAgICAgICAgZHN0W2kqMysyXSA9ICggKCgoR0xpbnQpICg2NTUzNS4wRiAqIChyZ2Jh
W2ldWzJdKSkpIC0gMSkgLyAyICk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgIGNhc2UgMHgxOTA4OgogICAgICAgICAgICAgICAgICBm
b3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrMF0gPSAoICgo
KEdMaW50KSAoNjU1MzUuMEYgKiAocmdiYVtpXVswXSkpKSAtIDEpIC8gMiApOwogICAgICAgICAg
ICAgICAgICAgICBkc3RbaSo0KzFdID0gKCAoKChHTGludCkgKDY1NTM1LjBGICogKHJnYmFbaV1b
MV0pKSkgLSAxKSAvIDIgKTsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCsyXSA9ICggKCgo
R0xpbnQpICg2NTUzNS4wRiAqIChyZ2JhW2ldWzJdKSkpIC0gMSkgLyAyICk7CiAgICAgICAgICAg
ICAgICAgICAgIGRzdFtpKjQrM10gPSAoICgoKEdMaW50KSAoNjU1MzUuMEYgKiAocmdiYVtpXVsz
XSkpKSAtIDEpIC8gMiApOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4ODBFMDoKICAgICAgICAgICAgICAgICAgZm9yIChp
PTA7aTxuO2krKykgewogICAgICAgICAgICAgICAgICAgICBkc3RbaSozKzBdID0gKCAoKChHTGlu
dCkgKDY1NTM1LjBGICogKHJnYmFbaV1bMl0pKSkgLSAxKSAvIDIgKTsKICAgICAgICAgICAgICAg
ICAgICAgZHN0W2kqMysxXSA9ICggKCgoR0xpbnQpICg2NTUzNS4wRiAqIChyZ2JhW2ldWzFdKSkp
IC0gMSkgLyAyICk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjMrMl0gPSAoICgoKEdMaW50
KSAoNjU1MzUuMEYgKiAocmdiYVtpXVswXSkpKSAtIDEpIC8gMiApOwogICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4ODBFMToK
ICAgICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykgewogICAgICAgICAgICAgICAgICAg
ICBkc3RbaSo0KzBdID0gKCAoKChHTGludCkgKDY1NTM1LjBGICogKHJnYmFbaV1bMl0pKSkgLSAx
KSAvIDIgKTsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCsxXSA9ICggKCgoR0xpbnQpICg2
NTUzNS4wRiAqIChyZ2JhW2ldWzFdKSkpIC0gMSkgLyAyICk7CiAgICAgICAgICAgICAgICAgICAg
IGRzdFtpKjQrMl0gPSAoICgoKEdMaW50KSAoNjU1MzUuMEYgKiAocmdiYVtpXVswXSkpKSAtIDEp
IC8gMiApOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzNdID0gKCAoKChHTGludCkgKDY1
NTM1LjBGICogKHJnYmFbaV1bM10pKSkgLSAxKSAvIDIgKTsKICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICBjYXNlIDB4ODAwMDoKICAgICAgICAgICAgICAgICAgZm9yIChpPTA7aTxu
O2krKykgewogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzBdID0gKCAoKChHTGludCkgKDY1
NTM1LjBGICogKHJnYmFbaV1bM10pKSkgLSAxKSAvIDIgKTsKICAgICAgICAgICAgICAgICAgICAg
ZHN0W2kqNCsxXSA9ICggKCgoR0xpbnQpICg2NTUzNS4wRiAqIChyZ2JhW2ldWzJdKSkpIC0gMSkg
LyAyICk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrMl0gPSAoICgoKEdMaW50KSAoNjU1
MzUuMEYgKiAocmdiYVtpXVsxXSkpKSAtIDEpIC8gMiApOwogICAgICAgICAgICAgICAgICAgICBk
c3RbaSo0KzNdID0gKCAoKChHTGludCkgKDY1NTM1LjBGICogKHJnYmFbaV1bMF0pKSkgLSAxKSAv
IDIgKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgX21lc2FfcHJvYmxlbShjdHgsICJi
YWQgZm9ybWF0IGluIF9tZXNhX3BhY2tfcmdiYV9zcGFuXG4iKTsKICAgICAgICAgICAgfQogICAg
ICAgICAgICBpZiAoZHN0UGFja2luZy0+U3dhcEJ5dGVzKSB7CiAgICAgICAgICAgICAgIF9tZXNh
X3N3YXAyKCAoR0x1c2hvcnQgKikgZHN0LCBuICogY29tcHMgKTsKICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4MTQwNToKICAgICAgICAgewogICAg
ICAgICAgICBHTHVpbnQgKmRzdCA9IChHTHVpbnQgKikgZHN0QWRkcjsKICAgICAgICAgICAgc3dp
dGNoIChkc3RGb3JtYXQpIHsKICAgICAgICAgICAgICAgY2FzZSAweDE5MDM6CiAgICAgICAgICAg
ICAgICAgIGZvciAoaT0wO2k8bjtpKyspCiAgICAgICAgICAgICAgICAgICAgIGRzdFtpXSA9ICgo
R0x1aW50KSAoKHJnYmFbaV1bMF0pICogNDI5NDk2NzI5NS4wKSk7CiAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkwNDoKICAgICAgICAgICAgICAgICAgZm9y
IChpPTA7aTxuO2krKykKICAgICAgICAgICAgICAgICAgICAgZHN0W2ldID0gKChHTHVpbnQpICgo
cmdiYVtpXVsxXSkgKiA0Mjk0OTY3Mjk1LjApKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgIGNhc2UgMHgxOTA1OgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47
aSsrKQogICAgICAgICAgICAgICAgICAgICBkc3RbaV0gPSAoKEdMdWludCkgKChyZ2JhW2ldWzJd
KSAqIDQyOTQ5NjcyOTUuMCkpOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgY2FzZSAweDE5MDY6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspCiAgICAg
ICAgICAgICAgICAgICAgIGRzdFtpXSA9ICgoR0x1aW50KSAoKHJnYmFbaV1bM10pICogNDI5NDk2
NzI5NS4wKSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4
MTkwOToKICAgICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykKICAgICAgICAgICAgICAg
ICAgICAgZHN0W2ldID0gKChHTHVpbnQpICgobHVtaW5hbmNlW2ldKSAqIDQyOTQ5NjcyOTUuMCkp
OwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgY2FzZSAweDE5MEE6CiAg
ICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgICAgICAgICAg
ZHN0W2kqMiswXSA9ICgoR0x1aW50KSAoKGx1bWluYW5jZVtpXSkgKiA0Mjk0OTY3Mjk1LjApKTsK
ICAgICAgICAgICAgICAgICAgICAgZHN0W2kqMisxXSA9ICgoR0x1aW50KSAoKHJnYmFbaV1bM10p
ICogNDI5NDk2NzI5NS4wKSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgIGNhc2UgMHgxOTA3OgogICAgICAgICAgICAgICAgICBmb3Ig
KGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjMrMF0gPSAoKEdMdWlu
dCkgKChyZ2JhW2ldWzBdKSAqIDQyOTQ5NjcyOTUuMCkpOwogICAgICAgICAgICAgICAgICAgICBk
c3RbaSozKzFdID0gKChHTHVpbnQpICgocmdiYVtpXVsxXSkgKiA0Mjk0OTY3Mjk1LjApKTsKICAg
ICAgICAgICAgICAgICAgICAgZHN0W2kqMysyXSA9ICgoR0x1aW50KSAoKHJnYmFbaV1bMl0pICog
NDI5NDk2NzI5NS4wKSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgIGNhc2UgMHgxOTA4OgogICAgICAgICAgICAgICAgICBmb3IgKGk9
MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrMF0gPSAoKEdMdWludCkg
KChyZ2JhW2ldWzBdKSAqIDQyOTQ5NjcyOTUuMCkpOwogICAgICAgICAgICAgICAgICAgICBkc3Rb
aSo0KzFdID0gKChHTHVpbnQpICgocmdiYVtpXVsxXSkgKiA0Mjk0OTY3Mjk1LjApKTsKICAgICAg
ICAgICAgICAgICAgICAgZHN0W2kqNCsyXSA9ICgoR0x1aW50KSAoKHJnYmFbaV1bMl0pICogNDI5
NDk2NzI5NS4wKSk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrM10gPSAoKEdMdWludCkg
KChyZ2JhW2ldWzNdKSAqIDQyOTQ5NjcyOTUuMCkpOwogICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4ODBFMDoKICAgICAgICAg
ICAgICAgICAgZm9yIChpPTA7aTxuO2krKykgewogICAgICAgICAgICAgICAgICAgICBkc3RbaSoz
KzBdID0gKChHTHVpbnQpICgocmdiYVtpXVsyXSkgKiA0Mjk0OTY3Mjk1LjApKTsKICAgICAgICAg
ICAgICAgICAgICAgZHN0W2kqMysxXSA9ICgoR0x1aW50KSAoKHJnYmFbaV1bMV0pICogNDI5NDk2
NzI5NS4wKSk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjMrMl0gPSAoKEdMdWludCkgKChy
Z2JhW2ldWzBdKSAqIDQyOTQ5NjcyOTUuMCkpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4ODBFMToKICAgICAgICAgICAg
ICAgICAgZm9yIChpPTA7aTxuO2krKykgewogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzBd
ID0gKChHTHVpbnQpICgocmdiYVtpXVsyXSkgKiA0Mjk0OTY3Mjk1LjApKTsKICAgICAgICAgICAg
ICAgICAgICAgZHN0W2kqNCsxXSA9ICgoR0x1aW50KSAoKHJnYmFbaV1bMV0pICogNDI5NDk2NzI5
NS4wKSk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrMl0gPSAoKEdMdWludCkgKChyZ2Jh
W2ldWzBdKSAqIDQyOTQ5NjcyOTUuMCkpOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzNd
ID0gKChHTHVpbnQpICgocmdiYVtpXVszXSkgKiA0Mjk0OTY3Mjk1LjApKTsKICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgY2FzZSAweDgw
MDA6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgICAg
ICAgICAgZHN0W2kqNCswXSA9ICgoR0x1aW50KSAoKHJnYmFbaV1bM10pICogNDI5NDk2NzI5NS4w
KSk7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrMV0gPSAoKEdMdWludCkgKChyZ2JhW2ld
WzJdKSAqIDQyOTQ5NjcyOTUuMCkpOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzJdID0g
KChHTHVpbnQpICgocmdiYVtpXVsxXSkgKiA0Mjk0OTY3Mjk1LjApKTsKICAgICAgICAgICAgICAg
ICAgICAgZHN0W2kqNCszXSA9ICgoR0x1aW50KSAoKHJnYmFbaV1bMF0pICogNDI5NDk2NzI5NS4w
KSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIF9tZXNhX3Byb2JsZW0oY3R4LCAiYmFk
IGZvcm1hdCBpbiBfbWVzYV9wYWNrX3JnYmFfc3BhblxuIik7CiAgICAgICAgICAgIH0KICAgICAg
ICAgICAgaWYgKGRzdFBhY2tpbmctPlN3YXBCeXRlcykgewogICAgICAgICAgICAgICBfbWVzYV9z
d2FwNCggKEdMdWludCAqKSBkc3QsIG4gKiBjb21wcyApOwogICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHgxNDA0OgogICAgICAgICB7CiAgICAgICAg
ICAgIEdMaW50ICpkc3QgPSAoR0xpbnQgKikgZHN0QWRkcjsKICAgICAgICAgICAgc3dpdGNoIChk
c3RGb3JtYXQpIHsKICAgICAgICAgICAgICAgY2FzZSAweDE5MDM6CiAgICAgICAgICAgICAgICAg
IGZvciAoaT0wO2k8bjtpKyspCiAgICAgICAgICAgICAgICAgICAgIGRzdFtpXSA9ICggKEdMaW50
KSAoMjE0NzQ4MzY0Ny4wICogKHJnYmFbaV1bMF0pKSApOwogICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgY2FzZSAweDE5MDQ6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0w
O2k8bjtpKyspCiAgICAgICAgICAgICAgICAgICAgIGRzdFtpXSA9ICggKEdMaW50KSAoMjE0NzQ4
MzY0Ny4wICogKHJnYmFbaV1bMV0pKSApOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgY2FzZSAweDE5MDU6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKysp
CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpXSA9ICggKEdMaW50KSAoMjE0NzQ4MzY0Ny4wICog
KHJnYmFbaV1bMl0pKSApOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
Y2FzZSAweDE5MDY6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspCiAgICAgICAg
ICAgICAgICAgICAgIGRzdFtpXSA9ICggKEdMaW50KSAoMjE0NzQ4MzY0Ny4wICogKHJnYmFbaV1b
M10pKSApOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgY2FzZSAweDE5
MDk6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspCiAgICAgICAgICAgICAgICAg
ICAgIGRzdFtpXSA9ICggKEdMaW50KSAoMjE0NzQ4MzY0Ny4wICogKGx1bWluYW5jZVtpXSkpICk7
CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkwQToKICAg
ICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykgewogICAgICAgICAgICAgICAgICAgICBk
c3RbaSoyKzBdID0gKCAoR0xpbnQpICgyMTQ3NDgzNjQ3LjAgKiAobHVtaW5hbmNlW2ldKSkgKTsK
ICAgICAgICAgICAgICAgICAgICAgZHN0W2kqMisxXSA9ICggKEdMaW50KSAoMjE0NzQ4MzY0Ny4w
ICogKHJnYmFbaV1bM10pKSApOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkwNzoKICAgICAgICAgICAgICAgICAgZm9y
IChpPTA7aTxuO2krKykgewogICAgICAgICAgICAgICAgICAgICBkc3RbaSozKzBdID0gKCAoR0xp
bnQpICgyMTQ3NDgzNjQ3LjAgKiAocmdiYVtpXVswXSkpICk7CiAgICAgICAgICAgICAgICAgICAg
IGRzdFtpKjMrMV0gPSAoIChHTGludCkgKDIxNDc0ODM2NDcuMCAqIChyZ2JhW2ldWzFdKSkgKTsK
ICAgICAgICAgICAgICAgICAgICAgZHN0W2kqMysyXSA9ICggKEdMaW50KSAoMjE0NzQ4MzY0Ny4w
ICogKHJnYmFbaV1bMl0pKSApOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkwODoKICAgICAgICAgICAgICAgICAgZm9y
IChpPTA7aTxuO2krKykgewogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzBdID0gKCAoR0xp
bnQpICgyMTQ3NDgzNjQ3LjAgKiAocmdiYVtpXVswXSkpICk7CiAgICAgICAgICAgICAgICAgICAg
IGRzdFtpKjQrMV0gPSAoIChHTGludCkgKDIxNDc0ODM2NDcuMCAqIChyZ2JhW2ldWzFdKSkgKTsK
ICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCsyXSA9ICggKEdMaW50KSAoMjE0NzQ4MzY0Ny4w
ICogKHJnYmFbaV1bMl0pKSApOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzNdID0gKCAo
R0xpbnQpICgyMTQ3NDgzNjQ3LjAgKiAocmdiYVtpXVszXSkpICk7CiAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgIGNhc2UgMHg4MEUwOgog
ICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgICAgICAg
IGRzdFtpKjMrMF0gPSAoIChHTGludCkgKDIxNDc0ODM2NDcuMCAqIChyZ2JhW2ldWzJdKSkgKTsK
ICAgICAgICAgICAgICAgICAgICAgZHN0W2kqMysxXSA9ICggKEdMaW50KSAoMjE0NzQ4MzY0Ny4w
ICogKHJnYmFbaV1bMV0pKSApOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSozKzJdID0gKCAo
R0xpbnQpICgyMTQ3NDgzNjQ3LjAgKiAocmdiYVtpXVswXSkpICk7CiAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgIGNhc2UgMHg4MEUxOgog
ICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgICAgICAg
IGRzdFtpKjQrMF0gPSAoIChHTGludCkgKDIxNDc0ODM2NDcuMCAqIChyZ2JhW2ldWzJdKSkgKTsK
ICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCsxXSA9ICggKEdMaW50KSAoMjE0NzQ4MzY0Ny4w
ICogKHJnYmFbaV1bMV0pKSApOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzJdID0gKCAo
R0xpbnQpICgyMTQ3NDgzNjQ3LjAgKiAocmdiYVtpXVswXSkpICk7CiAgICAgICAgICAgICAgICAg
ICAgIGRzdFtpKjQrM10gPSAoIChHTGludCkgKDIxNDc0ODM2NDcuMCAqIChyZ2JhW2ldWzNdKSkg
KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgY2FzZSAweDgwMDA6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsK
ICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCswXSA9ICggKEdMaW50KSAoMjE0NzQ4MzY0Ny4w
ICogKHJnYmFbaV1bM10pKSApOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzFdID0gKCAo
R0xpbnQpICgyMTQ3NDgzNjQ3LjAgKiAocmdiYVtpXVsyXSkpICk7CiAgICAgICAgICAgICAgICAg
ICAgIGRzdFtpKjQrMl0gPSAoIChHTGludCkgKDIxNDc0ODM2NDcuMCAqIChyZ2JhW2ldWzFdKSkg
KTsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCszXSA9ICggKEdMaW50KSAoMjE0NzQ4MzY0
Ny4wICogKHJnYmFbaV1bMF0pKSApOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICBfbWVz
YV9wcm9ibGVtKGN0eCwgImJhZCBmb3JtYXQgaW4gX21lc2FfcGFja19yZ2JhX3NwYW5cbiIpOwog
ICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkc3RQYWNraW5nLT5Td2FwQnl0ZXMpIHsKICAg
ICAgICAgICAgICAgX21lc2Ffc3dhcDQoIChHTHVpbnQgKikgZHN0LCBuICogY29tcHMgKTsKICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4MTQwNjoK
ICAgICAgICAgewogICAgICAgICAgICBHTGZsb2F0ICpkc3QgPSAoR0xmbG9hdCAqKSBkc3RBZGRy
OwogICAgICAgICAgICBzd2l0Y2ggKGRzdEZvcm1hdCkgewogICAgICAgICAgICAgICBjYXNlIDB4
MTkwMzoKICAgICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykKICAgICAgICAgICAgICAg
ICAgICAgZHN0W2ldID0gcmdiYVtpXVswXTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgIGNhc2UgMHgxOTA0OgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsr
KQogICAgICAgICAgICAgICAgICAgICBkc3RbaV0gPSByZ2JhW2ldWzFdOwogICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgY2FzZSAweDE5MDU6CiAgICAgICAgICAgICAgICAg
IGZvciAoaT0wO2k8bjtpKyspCiAgICAgICAgICAgICAgICAgICAgIGRzdFtpXSA9IHJnYmFbaV1b
Ml07CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkwNjoK
ICAgICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykKICAgICAgICAgICAgICAgICAgICAg
ZHN0W2ldID0gcmdiYVtpXVszXTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgIGNhc2UgMHgxOTA5OgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKQogICAg
ICAgICAgICAgICAgICAgICBkc3RbaV0gPSBsdW1pbmFuY2VbaV07CiAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICBjYXNlIDB4MTkwQToKICAgICAgICAgICAgICAgICAgZm9y
IChpPTA7aTxuO2krKykgewogICAgICAgICAgICAgICAgICAgICBkc3RbaSoyKzBdID0gbHVtaW5h
bmNlW2ldOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSoyKzFdID0gcmdiYVtpXVszXTsKICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
Y2FzZSAweDE5MDc6CiAgICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAg
ICAgICAgICAgICAgICAgZHN0W2kqMyswXSA9IHJnYmFbaV1bMF07CiAgICAgICAgICAgICAgICAg
ICAgIGRzdFtpKjMrMV0gPSByZ2JhW2ldWzFdOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSoz
KzJdID0gcmdiYVtpXVsyXTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgY2FzZSAweDE5MDg6CiAgICAgICAgICAgICAgICAgIGZvciAo
aT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCswXSA9IHJnYmFbaV1b
MF07CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrMV0gPSByZ2JhW2ldWzFdOwogICAgICAg
ICAgICAgICAgICAgICBkc3RbaSo0KzJdID0gcmdiYVtpXVsyXTsKICAgICAgICAgICAgICAgICAg
ICAgZHN0W2kqNCszXSA9IHJnYmFbaV1bM107CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgIGNhc2UgMHg4MEUwOgogICAgICAgICAgICAg
ICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjMrMF0g
PSByZ2JhW2ldWzJdOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSozKzFdID0gcmdiYVtpXVsx
XTsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqMysyXSA9IHJnYmFbaV1bMF07CiAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgIGNhc2Ug
MHg4MEUxOgogICAgICAgICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGRzdFtpKjQrMF0gPSByZ2JhW2ldWzJdOwogICAgICAgICAgICAgICAgICAgICBk
c3RbaSo0KzFdID0gcmdiYVtpXVsxXTsKICAgICAgICAgICAgICAgICAgICAgZHN0W2kqNCsyXSA9
IHJnYmFbaV1bMF07CiAgICAgICAgICAgICAgICAgICAgIGRzdFtpKjQrM10gPSByZ2JhW2ldWzNd
OwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICBjYXNlIDB4ODAwMDoKICAgICAgICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykgewog
ICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzBdID0gcmdiYVtpXVszXTsKICAgICAgICAgICAg
ICAgICAgICAgZHN0W2kqNCsxXSA9IHJnYmFbaV1bMl07CiAgICAgICAgICAgICAgICAgICAgIGRz
dFtpKjQrMl0gPSByZ2JhW2ldWzFdOwogICAgICAgICAgICAgICAgICAgICBkc3RbaSo0KzNdID0g
cmdiYVtpXVswXTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgX21lc2FfcHJvYmxlbShj
dHgsICJiYWQgZm9ybWF0IGluIF9tZXNhX3BhY2tfcmdiYV9zcGFuXG4iKTsKICAgICAgICAgICAg
fQogICAgICAgICAgICBpZiAoZHN0UGFja2luZy0+U3dhcEJ5dGVzKSB7CiAgICAgICAgICAgICAg
IF9tZXNhX3N3YXA0KCAoR0x1aW50ICopIGRzdCwgbiAqIGNvbXBzICk7CiAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICAgY2FzZSAweDgwMzI6CiAgICAgICAgIGlm
IChkc3RGb3JtYXQgPT0gMHgxOTA3KSB7CiAgICAgICAgICAgIEdMdWJ5dGUgKmRzdCA9IChHTHVi
eXRlICopIGRzdEFkZHI7CiAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAg
ICAgICAgZHN0W2ldID0gKCgoR0xpbnQpIChyZ2JhW2ldWzBdICogNy4wRikpIDw8IDUpCiAgICAg
ICAgICAgICAgICAgICAgICB8ICgoKEdMaW50KSAocmdiYVtpXVsxXSAqIDcuMEYpKSA8PCAyKQog
ICAgICAgICAgICAgICAgICAgICAgfCAoKChHTGludCkgKHJnYmFbaV1bMl0gKiAzLjBGKSkgKTsK
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4ODM2
MjoKICAgICAgICAgaWYgKGRzdEZvcm1hdCA9PSAweDE5MDcpIHsKICAgICAgICAgICAgR0x1Ynl0
ZSAqZHN0ID0gKEdMdWJ5dGUgKikgZHN0QWRkcjsKICAgICAgICAgICAgZm9yIChpPTA7aTxuO2kr
KykgewogICAgICAgICAgICAgICBkc3RbaV0gPSAoKChHTGludCkgKHJnYmFbaV1bMF0gKiA3LjBG
KSkgKQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTGludCkgKHJnYmFbaV1bMV0gKiA3LjBG
KSkgPDwgMykKICAgICAgICAgICAgICAgICAgICAgIHwgKCgoR0xpbnQpIChyZ2JhW2ldWzJdICog
My4wRikpIDw8IDUpOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAg
ICAgIGNhc2UgMHg4MzYzOgogICAgICAgICBpZiAoZHN0Rm9ybWF0ID09IDB4MTkwNykgewogICAg
ICAgICAgICBHTHVzaG9ydCAqZHN0ID0gKEdMdXNob3J0ICopIGRzdEFkZHI7CiAgICAgICAgICAg
IGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgICAgZHN0W2ldID0gKCgoR0xpbnQpIChy
Z2JhW2ldWzBdICogMzEuMEYpKSA8PCAxMSkKICAgICAgICAgICAgICAgICAgICAgIHwgKCgoR0xp
bnQpIChyZ2JhW2ldWzFdICogNjMuMEYpKSA8PCA1KQogICAgICAgICAgICAgICAgICAgICAgfCAo
KChHTGludCkgKHJnYmFbaV1bMl0gKiAzMS4wRikpICk7CiAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICBicmVhazsKICAgICAgY2FzZSAweDgzNjQ6CiAgICAgICAgIGlmIChkc3RGb3Jt
YXQgPT0gMHgxOTA3KSB7CiAgICAgICAgICAgIEdMdXNob3J0ICpkc3QgPSAoR0x1c2hvcnQgKikg
ZHN0QWRkcjsKICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykgewogICAgICAgICAgICAgICBk
c3RbaV0gPSAoKChHTGludCkgKHJnYmFbaV1bMF0gKiAzMS4wRikpICkKICAgICAgICAgICAgICAg
ICAgICAgIHwgKCgoR0xpbnQpIChyZ2JhW2ldWzFdICogNjMuMEYpKSA8PCA1KQogICAgICAgICAg
ICAgICAgICAgICAgfCAoKChHTGludCkgKHJnYmFbaV1bMl0gKiAzMS4wRikpIDw8IDExKTsKICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4ODAzMzoK
ICAgICAgICAgaWYgKGRzdEZvcm1hdCA9PSAweDE5MDgpIHsKICAgICAgICAgICAgR0x1c2hvcnQg
KmRzdCA9IChHTHVzaG9ydCAqKSBkc3RBZGRyOwogICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsr
KSB7CiAgICAgICAgICAgICAgIGRzdFtpXSA9ICgoKEdMaW50KSAocmdiYVtpXVswXSAqIDE1LjBG
KSkgPDwgMTIpCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMaW50KSAocmdiYVtpXVsxXSAq
IDE1LjBGKSkgPDwgOCkKICAgICAgICAgICAgICAgICAgICAgIHwgKCgoR0xpbnQpIChyZ2JhW2ld
WzJdICogMTUuMEYpKSA8PCA0KQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTGludCkgKHJn
YmFbaV1bM10gKiAxNS4wRikpICk7CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBl
bHNlIGlmIChkc3RGb3JtYXQgPT0gMHg4MEUxKSB7CiAgICAgICAgICAgIEdMdXNob3J0ICpkc3Qg
PSAoR0x1c2hvcnQgKikgZHN0QWRkcjsKICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykgewog
ICAgICAgICAgICAgICBkc3RbaV0gPSAoKChHTGludCkgKHJnYmFbaV1bMl0gKiAxNS4wRikpIDw8
IDEyKQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTGludCkgKHJnYmFbaV1bMV0gKiAxNS4w
RikpIDw8IDgpCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMaW50KSAocmdiYVtpXVswXSAq
IDE1LjBGKSkgPDwgNCkKICAgICAgICAgICAgICAgICAgICAgIHwgKCgoR0xpbnQpIChyZ2JhW2ld
WzNdICogMTUuMEYpKSApOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBp
ZiAoZHN0Rm9ybWF0ID09IDB4ODAwMCkgewogICAgICAgICAgICBHTHVzaG9ydCAqZHN0ID0gKEdM
dXNob3J0ICopIGRzdEFkZHI7CiAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAg
ICAgICAgICAgZHN0W2ldID0gKCgoR0xpbnQpIChyZ2JhW2ldWzNdICogMTUuMEYpKSA8PCA0KQog
ICAgICAgICAgICAgICAgICAgICAgfCAoKChHTGludCkgKHJnYmFbaV1bMl0gKiAxNS4wRikpIDw8
IDgpCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMaW50KSAocmdiYVtpXVsxXSAqIDE1LjBG
KSkgPDwgMTIpCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMaW50KSAocmdiYVtpXVswXSAq
IDE1LjBGKSkgKTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAg
ICBjYXNlIDB4ODM2NToKICAgICAgICAgaWYgKGRzdEZvcm1hdCA9PSAweDE5MDgpIHsKICAgICAg
ICAgICAgR0x1c2hvcnQgKmRzdCA9IChHTHVzaG9ydCAqKSBkc3RBZGRyOwogICAgICAgICAgICBm
b3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgIGRzdFtpXSA9ICgoKEdMaW50KSAocmdi
YVtpXVswXSAqIDE1LjBGKSkgKQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTGludCkgKHJn
YmFbaV1bMV0gKiAxNS4wRikpIDw8IDQpCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMaW50
KSAocmdiYVtpXVsyXSAqIDE1LjBGKSkgPDwgOCkKICAgICAgICAgICAgICAgICAgICAgIHwgKCgo
R0xpbnQpIChyZ2JhW2ldWzNdICogMTUuMEYpKSA8PCAxMik7CiAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICBlbHNlIGlmIChkc3RGb3JtYXQgPT0gMHg4MEUxKSB7CiAgICAgICAgICAg
IEdMdXNob3J0ICpkc3QgPSAoR0x1c2hvcnQgKikgZHN0QWRkcjsKICAgICAgICAgICAgZm9yIChp
PTA7aTxuO2krKykgewogICAgICAgICAgICAgICBkc3RbaV0gPSAoKChHTGludCkgKHJnYmFbaV1b
Ml0gKiAxNS4wRikpICkKICAgICAgICAgICAgICAgICAgICAgIHwgKCgoR0xpbnQpIChyZ2JhW2ld
WzFdICogMTUuMEYpKSA8PCA0KQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTGludCkgKHJn
YmFbaV1bMF0gKiAxNS4wRikpIDw8IDgpCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMaW50
KSAocmdiYVtpXVszXSAqIDE1LjBGKSkgPDwgMTIpOwogICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgZWxzZSBpZiAoZHN0Rm9ybWF0ID09IDB4ODAwMCkgewogICAgICAgICAgICBHTHVz
aG9ydCAqZHN0ID0gKEdMdXNob3J0ICopIGRzdEFkZHI7CiAgICAgICAgICAgIGZvciAoaT0wO2k8
bjtpKyspIHsKICAgICAgICAgICAgICAgZHN0W2ldID0gKCgoR0xpbnQpIChyZ2JhW2ldWzNdICog
MTUuMEYpKSApCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMaW50KSAocmdiYVtpXVsyXSAq
IDE1LjBGKSkgPDwgNCkKICAgICAgICAgICAgICAgICAgICAgIHwgKCgoR0xpbnQpIChyZ2JhW2ld
WzFdICogMTUuMEYpKSA8PCA4KQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTGludCkgKHJn
YmFbaV1bMF0gKiAxNS4wRikpIDw8IDEyKTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
ICAgIGJyZWFrOwogICAgICBjYXNlIDB4ODAzNDoKICAgICAgICAgaWYgKGRzdEZvcm1hdCA9PSAw
eDE5MDgpIHsKICAgICAgICAgICAgR0x1c2hvcnQgKmRzdCA9IChHTHVzaG9ydCAqKSBkc3RBZGRy
OwogICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgIGRzdFtpXSA9
ICgoKEdMaW50KSAocmdiYVtpXVswXSAqIDMxLjBGKSkgPDwgMTEpCiAgICAgICAgICAgICAgICAg
ICAgICB8ICgoKEdMaW50KSAocmdiYVtpXVsxXSAqIDMxLjBGKSkgPDwgNikKICAgICAgICAgICAg
ICAgICAgICAgIHwgKCgoR0xpbnQpIChyZ2JhW2ldWzJdICogMzEuMEYpKSA8PCAxKQogICAgICAg
ICAgICAgICAgICAgICAgfCAoKChHTGludCkgKHJnYmFbaV1bM10gKiAxLjBGKSkgKTsKICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKGRzdEZvcm1hdCA9PSAweDgwRTEp
IHsKICAgICAgICAgICAgR0x1c2hvcnQgKmRzdCA9IChHTHVzaG9ydCAqKSBkc3RBZGRyOwogICAg
ICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgIGRzdFtpXSA9ICgoKEdM
aW50KSAocmdiYVtpXVsyXSAqIDMxLjBGKSkgPDwgMTEpCiAgICAgICAgICAgICAgICAgICAgICB8
ICgoKEdMaW50KSAocmdiYVtpXVsxXSAqIDMxLjBGKSkgPDwgNikKICAgICAgICAgICAgICAgICAg
ICAgIHwgKCgoR0xpbnQpIChyZ2JhW2ldWzBdICogMzEuMEYpKSA8PCAxKQogICAgICAgICAgICAg
ICAgICAgICAgfCAoKChHTGludCkgKHJnYmFbaV1bM10gKiAxLjBGKSkgKTsKICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKGRzdEZvcm1hdCA9PSAweDgwMDApIHsKICAg
ICAgICAgICAgR0x1c2hvcnQgKmRzdCA9IChHTHVzaG9ydCAqKSBkc3RBZGRyOwogICAgICAgICAg
ICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgIGRzdFtpXSA9ICgoKEdMaW50KSAo
cmdiYVtpXVszXSAqIDMxLjBGKSkgPDwgMTEpCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdM
aW50KSAocmdiYVtpXVsyXSAqIDMxLjBGKSkgPDwgNikKICAgICAgICAgICAgICAgICAgICAgIHwg
KCgoR0xpbnQpIChyZ2JhW2ldWzFdICogMzEuMEYpKSA8PCAxKQogICAgICAgICAgICAgICAgICAg
ICAgfCAoKChHTGludCkgKHJnYmFbaV1bMF0gKiAxLjBGKSkgKTsKICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4ODM2NjoKICAgICAgICAgaWYgKGRz
dEZvcm1hdCA9PSAweDE5MDgpIHsKICAgICAgICAgICAgR0x1c2hvcnQgKmRzdCA9IChHTHVzaG9y
dCAqKSBkc3RBZGRyOwogICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAg
ICAgIGRzdFtpXSA9ICgoKEdMaW50KSAocmdiYVtpXVswXSAqIDMxLjBGKSkgKQogICAgICAgICAg
ICAgICAgICAgICAgfCAoKChHTGludCkgKHJnYmFbaV1bMV0gKiAzMS4wRikpIDw8IDUpCiAgICAg
ICAgICAgICAgICAgICAgICB8ICgoKEdMaW50KSAocmdiYVtpXVsyXSAqIDMxLjBGKSkgPDwgMTAp
CiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMaW50KSAocmdiYVtpXVszXSAqIDEuMEYpKSA8
PCAxNSk7CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChkc3RGb3Jt
YXQgPT0gMHg4MEUxKSB7CiAgICAgICAgICAgIEdMdXNob3J0ICpkc3QgPSAoR0x1c2hvcnQgKikg
ZHN0QWRkcjsKICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykgewogICAgICAgICAgICAgICBk
c3RbaV0gPSAoKChHTGludCkgKHJnYmFbaV1bMl0gKiAzMS4wRikpICkKICAgICAgICAgICAgICAg
ICAgICAgIHwgKCgoR0xpbnQpIChyZ2JhW2ldWzFdICogMzEuMEYpKSA8PCA1KQogICAgICAgICAg
ICAgICAgICAgICAgfCAoKChHTGludCkgKHJnYmFbaV1bMF0gKiAzMS4wRikpIDw8IDEwKQogICAg
ICAgICAgICAgICAgICAgICAgfCAoKChHTGludCkgKHJnYmFbaV1bM10gKiAxLjBGKSkgPDwgMTUp
OwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoZHN0Rm9ybWF0ID09
IDB4ODAwMCkgewogICAgICAgICAgICBHTHVzaG9ydCAqZHN0ID0gKEdMdXNob3J0ICopIGRzdEFk
ZHI7CiAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgICAgZHN0W2ld
ID0gKCgoR0xpbnQpIChyZ2JhW2ldWzNdICogMzEuMEYpKSApCiAgICAgICAgICAgICAgICAgICAg
ICB8ICgoKEdMaW50KSAocmdiYVtpXVsyXSAqIDMxLjBGKSkgPDwgNSkKICAgICAgICAgICAgICAg
ICAgICAgIHwgKCgoR0xpbnQpIChyZ2JhW2ldWzFdICogMzEuMEYpKSA8PCAxMCkKICAgICAgICAg
ICAgICAgICAgICAgIHwgKCgoR0xpbnQpIChyZ2JhW2ldWzBdICogMS4wRikpIDw8IDE1KTsKICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4ODAzNToK
ICAgICAgICAgaWYgKGRzdEZvcm1hdCA9PSAweDE5MDgpIHsKICAgICAgICAgICAgR0x1aW50ICpk
c3QgPSAoR0x1aW50ICopIGRzdEFkZHI7CiAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsK
ICAgICAgICAgICAgICAgZHN0W2ldID0gKCgoR0x1aW50KSAocmdiYVtpXVswXSAqIDI1NS4wRikp
IDw8IDI0KQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTHVpbnQpIChyZ2JhW2ldWzFdICog
MjU1LjBGKSkgPDwgMTYpCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMdWludCkgKHJnYmFb
aV1bMl0gKiAyNTUuMEYpKSA8PCA4KQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTHVpbnQp
IChyZ2JhW2ldWzNdICogMjU1LjBGKSkgKTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
ICAgIGVsc2UgaWYgKGRzdEZvcm1hdCA9PSAweDgwRTEpIHsKICAgICAgICAgICAgR0x1aW50ICpk
c3QgPSAoR0x1aW50ICopIGRzdEFkZHI7CiAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsK
ICAgICAgICAgICAgICAgZHN0W2ldID0gKCgoR0x1aW50KSAocmdiYVtpXVsyXSAqIDI1NS4wRikp
IDw8IDI0KQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTHVpbnQpIChyZ2JhW2ldWzFdICog
MjU1LjBGKSkgPDwgMTYpCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMdWludCkgKHJnYmFb
aV1bMF0gKiAyNTUuMEYpKSA8PCA4KQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTHVpbnQp
IChyZ2JhW2ldWzNdICogMjU1LjBGKSkgKTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
ICAgIGVsc2UgaWYgKGRzdEZvcm1hdCA9PSAweDgwMDApIHsKICAgICAgICAgICAgR0x1aW50ICpk
c3QgPSAoR0x1aW50ICopIGRzdEFkZHI7CiAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsK
ICAgICAgICAgICAgICAgZHN0W2ldID0gKCgoR0x1aW50KSAocmdiYVtpXVszXSAqIDI1NS4wRikp
IDw8IDI0KQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTHVpbnQpIChyZ2JhW2ldWzJdICog
MjU1LjBGKSkgPDwgMTYpCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMdWludCkgKHJnYmFb
aV1bMV0gKiAyNTUuMEYpKSA8PCA4KQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTHVpbnQp
IChyZ2JhW2ldWzBdICogMjU1LjBGKSkgKTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
ICAgIGJyZWFrOwogICAgICBjYXNlIDB4ODM2NzoKICAgICAgICAgaWYgKGRzdEZvcm1hdCA9PSAw
eDE5MDgpIHsKICAgICAgICAgICAgR0x1aW50ICpkc3QgPSAoR0x1aW50ICopIGRzdEFkZHI7CiAg
ICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgICAgZHN0W2ldID0gKCgo
R0x1aW50KSAocmdiYVtpXVswXSAqIDI1NS4wRikpICkKICAgICAgICAgICAgICAgICAgICAgIHwg
KCgoR0x1aW50KSAocmdiYVtpXVsxXSAqIDI1NS4wRikpIDw8IDgpCiAgICAgICAgICAgICAgICAg
ICAgICB8ICgoKEdMdWludCkgKHJnYmFbaV1bMl0gKiAyNTUuMEYpKSA8PCAxNikKICAgICAgICAg
ICAgICAgICAgICAgIHwgKCgoR0x1aW50KSAocmdiYVtpXVszXSAqIDI1NS4wRikpIDw8IDI0KTsK
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKGRzdEZvcm1hdCA9PSAw
eDgwRTEpIHsKICAgICAgICAgICAgR0x1aW50ICpkc3QgPSAoR0x1aW50ICopIGRzdEFkZHI7CiAg
ICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgICAgZHN0W2ldID0gKCgo
R0x1aW50KSAocmdiYVtpXVsyXSAqIDI1NS4wRikpICkKICAgICAgICAgICAgICAgICAgICAgIHwg
KCgoR0x1aW50KSAocmdiYVtpXVsxXSAqIDI1NS4wRikpIDw8IDgpCiAgICAgICAgICAgICAgICAg
ICAgICB8ICgoKEdMdWludCkgKHJnYmFbaV1bMF0gKiAyNTUuMEYpKSA8PCAxNikKICAgICAgICAg
ICAgICAgICAgICAgIHwgKCgoR0x1aW50KSAocmdiYVtpXVszXSAqIDI1NS4wRikpIDw8IDI0KTsK
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKGRzdEZvcm1hdCA9PSAw
eDgwMDApIHsKICAgICAgICAgICAgR0x1aW50ICpkc3QgPSAoR0x1aW50ICopIGRzdEFkZHI7CiAg
ICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgICAgZHN0W2ldID0gKCgo
R0x1aW50KSAocmdiYVtpXVszXSAqIDI1NS4wRikpICkKICAgICAgICAgICAgICAgICAgICAgIHwg
KCgoR0x1aW50KSAocmdiYVtpXVsyXSAqIDI1NS4wRikpIDw8IDgpCiAgICAgICAgICAgICAgICAg
ICAgICB8ICgoKEdMdWludCkgKHJnYmFbaV1bMV0gKiAyNTUuMEYpKSA8PCAxNikKICAgICAgICAg
ICAgICAgICAgICAgIHwgKCgoR0x1aW50KSAocmdiYVtpXVswXSAqIDI1NS4wRikpIDw8IDI0KTsK
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4ODAz
NjoKICAgICAgICAgaWYgKGRzdEZvcm1hdCA9PSAweDE5MDgpIHsKICAgICAgICAgICAgR0x1aW50
ICpkc3QgPSAoR0x1aW50ICopIGRzdEFkZHI7CiAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKysp
IHsKICAgICAgICAgICAgICAgZHN0W2ldID0gKCgoR0x1aW50KSAocmdiYVtpXVswXSAqIDEwMjMu
MEYpKSA8PCAyMikKICAgICAgICAgICAgICAgICAgICAgIHwgKCgoR0x1aW50KSAocmdiYVtpXVsx
XSAqIDEwMjMuMEYpKSA8PCAxMikKICAgICAgICAgICAgICAgICAgICAgIHwgKCgoR0x1aW50KSAo
cmdiYVtpXVsyXSAqIDEwMjMuMEYpKSA8PCAyKQogICAgICAgICAgICAgICAgICAgICAgfCAoKChH
THVpbnQpIChyZ2JhW2ldWzNdICogMy4wRikpICk7CiAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgICAgICBlbHNlIGlmIChkc3RGb3JtYXQgPT0gMHg4MEUxKSB7CiAgICAgICAgICAgIEdMdWlu
dCAqZHN0ID0gKEdMdWludCAqKSBkc3RBZGRyOwogICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsr
KSB7CiAgICAgICAgICAgICAgIGRzdFtpXSA9ICgoKEdMdWludCkgKHJnYmFbaV1bMl0gKiAxMDIz
LjBGKSkgPDwgMjIpCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMdWludCkgKHJnYmFbaV1b
MV0gKiAxMDIzLjBGKSkgPDwgMTIpCiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMdWludCkg
KHJnYmFbaV1bMF0gKiAxMDIzLjBGKSkgPDwgMikKICAgICAgICAgICAgICAgICAgICAgIHwgKCgo
R0x1aW50KSAocmdiYVtpXVszXSAqIDMuMEYpKSApOwogICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgZWxzZSBpZiAoZHN0Rm9ybWF0ID09IDB4ODAwMCkgewogICAgICAgICAgICBHTHVp
bnQgKmRzdCA9IChHTHVpbnQgKikgZHN0QWRkcjsKICAgICAgICAgICAgZm9yIChpPTA7aTxuO2kr
KykgewogICAgICAgICAgICAgICBkc3RbaV0gPSAoKChHTHVpbnQpIChyZ2JhW2ldWzNdICogMTAy
My4wRikpIDw8IDIyKQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTHVpbnQpIChyZ2JhW2ld
WzJdICogMTAyMy4wRikpIDw8IDEyKQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTHVpbnQp
IChyZ2JhW2ldWzFdICogMTAyMy4wRikpIDw8IDIpCiAgICAgICAgICAgICAgICAgICAgICB8ICgo
KEdMdWludCkgKHJnYmFbaV1bMF0gKiAzLjBGKSkgKTsKICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4ODM2ODoKICAgICAgICAgaWYgKGRzdEZvcm1h
dCA9PSAweDE5MDgpIHsKICAgICAgICAgICAgR0x1aW50ICpkc3QgPSAoR0x1aW50ICopIGRzdEFk
ZHI7CiAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgICAgZHN0W2ld
ID0gKCgoR0x1aW50KSAocmdiYVtpXVswXSAqIDEwMjMuMEYpKSApCiAgICAgICAgICAgICAgICAg
ICAgICB8ICgoKEdMdWludCkgKHJnYmFbaV1bMV0gKiAxMDIzLjBGKSkgPDwgMTApCiAgICAgICAg
ICAgICAgICAgICAgICB8ICgoKEdMdWludCkgKHJnYmFbaV1bMl0gKiAxMDIzLjBGKSkgPDwgMjAp
CiAgICAgICAgICAgICAgICAgICAgICB8ICgoKEdMdWludCkgKHJnYmFbaV1bM10gKiAzLjBGKSkg
PDwgMzApOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoZHN0Rm9y
bWF0ID09IDB4ODBFMSkgewogICAgICAgICAgICBHTHVpbnQgKmRzdCA9IChHTHVpbnQgKikgZHN0
QWRkcjsKICAgICAgICAgICAgZm9yIChpPTA7aTxuO2krKykgewogICAgICAgICAgICAgICBkc3Rb
aV0gPSAoKChHTHVpbnQpIChyZ2JhW2ldWzJdICogMTAyMy4wRikpICkKICAgICAgICAgICAgICAg
ICAgICAgIHwgKCgoR0x1aW50KSAocmdiYVtpXVsxXSAqIDEwMjMuMEYpKSA8PCAxMCkKICAgICAg
ICAgICAgICAgICAgICAgIHwgKCgoR0x1aW50KSAocmdiYVtpXVswXSAqIDEwMjMuMEYpKSA8PCAy
MCkKICAgICAgICAgICAgICAgICAgICAgIHwgKCgoR0x1aW50KSAocmdiYVtpXVszXSAqIDMuMEYp
KSA8PCAzMCk7CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChkc3RG
b3JtYXQgPT0gMHg4MDAwKSB7CiAgICAgICAgICAgIEdMdWludCAqZHN0ID0gKEdMdWludCAqKSBk
c3RBZGRyOwogICAgICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICAgIGRz
dFtpXSA9ICgoKEdMdWludCkgKHJnYmFbaV1bM10gKiAxMDIzLjBGKSkgKQogICAgICAgICAgICAg
ICAgICAgICAgfCAoKChHTHVpbnQpIChyZ2JhW2ldWzJdICogMTAyMy4wRikpIDw8IDEwKQogICAg
ICAgICAgICAgICAgICAgICAgfCAoKChHTHVpbnQpIChyZ2JhW2ldWzFdICogMTAyMy4wRikpIDw8
IDIwKQogICAgICAgICAgICAgICAgICAgICAgfCAoKChHTHVpbnQpIChyZ2JhW2ldWzBdICogMy4w
RikpIDw8IDMwKTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAg
ICBkZWZhdWx0OgogICAgICAgICBfbWVzYV9wcm9ibGVtKGN0eCwgImJhZCB0eXBlIGluIF9tZXNh
X3BhY2tfZmxvYXRfcmdiYV9zcGFuIik7CiAgIH0KfQojIDE3OTQgImltYWdlLmMiCnZvaWQKX21l
c2FfcGFja19yZ2JhX3NwYW4oIEdMY29udGV4dCAqY3R4LAogICAgICAgICAgICAgICAgICAgICAg
R0x1aW50IG4sIGNvbnN0IEdMY2hhbiBzcmNSZ2JhW11bNF0sCiAgICAgICAgICAgICAgICAgICAg
ICBHTGVudW0gZHN0Rm9ybWF0LCBHTGVudW0gZHN0VHlwZSwKICAgICAgICAgICAgICAgICAgICAg
IEdMdm9pZCAqZHN0QWRkciwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBnbF9w
aXhlbHN0b3JlX2F0dHJpYiAqZHN0UGFja2luZywKICAgICAgICAgICAgICAgICAgICAgIEdMdWlu
dCB0cmFuc2Zlck9wcykKewogICA7CgoKICAgaWYgKHRyYW5zZmVyT3BzID09IDAgJiYgZHN0Rm9y
bWF0ID09IDB4MTkwOCAmJiBkc3RUeXBlID09IDB4MTQwMSkgewoKICAgICAgX21lc2FfbWVtY3B5
KGRzdEFkZHIsIHNyY1JnYmEsIG4gKiA0ICogc2l6ZW9mKEdMY2hhbikpOwogICB9CiAgIGVsc2Ug
aWYgKHRyYW5zZmVyT3BzID09IDAgJiYgZHN0Rm9ybWF0ID09IDB4MTkwNyAmJiBkc3RUeXBlID09
IDB4MTQwMSkgewoKICAgICAgR0x1aW50IGk7CiAgICAgIEdMY2hhbiAqZGVzdCA9IChHTGNoYW4g
KikgZHN0QWRkcjsKICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICBkZXN0
WzBdID0gc3JjUmdiYVtpXVswXTsKICAgICAgICAgZGVzdFsxXSA9IHNyY1JnYmFbaV1bMV07CiAg
ICAgICAgIGRlc3RbMl0gPSBzcmNSZ2JhW2ldWzJdOwogICAgICAgICBkZXN0ICs9IDM7CiAgICAg
IH0KICAgfQogICBlbHNlIGlmICh0cmFuc2Zlck9wcyA9PSAwICYmIGRzdEZvcm1hdCA9PSAweDE5
MDggJiYgZHN0VHlwZSA9PSAweDE0MDEpIHsKCiAgICAgIEdMdWludCBpOwogICAgICBHTHVieXRl
ICpkZXN0ID0gKEdMdWJ5dGUgKikgZHN0QWRkcjsKICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkr
KykgewogICAgICAgICBkZXN0WzBdID0gKHNyY1JnYmFbaV1bMF0pOwogICAgICAgICBkZXN0WzFd
ID0gKHNyY1JnYmFbaV1bMV0pOwogICAgICAgICBkZXN0WzJdID0gKHNyY1JnYmFbaV1bMl0pOwog
ICAgICAgICBkZXN0WzNdID0gKHNyY1JnYmFbaV1bM10pOwogICAgICAgICBkZXN0ICs9IDQ7CiAg
ICAgIH0KICAgfQogICBlbHNlIHsKCiAgICAgIEdMdWludCBpOwogICAgICBHTGZsb2F0IHJnYmFb
MjA0OF1bNF07CiAgICAgIGRvIHt9IHdoaWxlKDApOwoKICAgICAgKCh2b2lkKSAoKG4gPD0gMjA0
OCkgPyAwIDogKF9fZXByaW50ZiAoIiVzOiV1OiBmYWlsZWQgYXNzZXJ0aW9uIGAlcydcbiIsICJp
bWFnZS5jIiwgMTgzOCwgIm4gPD0gTUFYX1dJRFRIIiksIDApKSk7CgogICAgICBmb3IgKGk9MDtp
PG47aSsrKSB7CiAgICAgICAgIHJnYmFbaV1bMF0gPSBfbWVzYV91Ynl0ZV90b19mbG9hdF9jb2xv
cl90YWJbKHVuc2lnbmVkIGludCkoc3JjUmdiYVtpXVswXSldOwogICAgICAgICByZ2JhW2ldWzFd
ID0gX21lc2FfdWJ5dGVfdG9fZmxvYXRfY29sb3JfdGFiWyh1bnNpZ25lZCBpbnQpKHNyY1JnYmFb
aV1bMV0pXTsKICAgICAgICAgcmdiYVtpXVsyXSA9IF9tZXNhX3VieXRlX3RvX2Zsb2F0X2NvbG9y
X3RhYlsodW5zaWduZWQgaW50KShzcmNSZ2JhW2ldWzJdKV07CiAgICAgICAgIHJnYmFbaV1bM10g
PSBfbWVzYV91Ynl0ZV90b19mbG9hdF9jb2xvcl90YWJbKHVuc2lnbmVkIGludCkoc3JjUmdiYVtp
XVszXSldOwogICAgICB9CiAgICAgIF9tZXNhX3BhY2tfZmxvYXRfcmdiYV9zcGFuKGN0eCwgbiwg
KGNvbnN0IEdMZmxvYXQgKCopWzRdKSByZ2JhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkc3RGb3JtYXQsIGRzdFR5cGUsIGRzdEFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRzdFBhY2tpbmcsIHRyYW5zZmVyT3BzKTsKICAgICAgOwogICB9Cn0KIyAxODc0
ICJpbWFnZS5jIgpzdGF0aWMgdm9pZApleHRyYWN0X3VpbnRfaW5kZXhlcyhHTHVpbnQgbiwgR0x1
aW50IGluZGV4ZXNbXSwKICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIHNyY0Zvcm1hdCwgR0xl
bnVtIHNyY1R5cGUsIGNvbnN0IEdMdm9pZCAqc3JjLAogICAgICAgICAgICAgICAgICAgICBjb25z
dCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKnVucGFjayApCnsKICAgKCh2b2lkKSAoKHNy
Y0Zvcm1hdCA9PSAweDE5MDApID8gMCA6IChfX2VwcmludGYgKCIlczoldTogZmFpbGVkIGFzc2Vy
dGlvbiBgJXMnXG4iLCAiaW1hZ2UuYyIsIDE4NzksICJzcmNGb3JtYXQgPT0gR0xfQ09MT1JfSU5E
RVgiKSwgMCkpKTsKCiAgIDsKIyAxODkwICJpbWFnZS5jIgogICBzd2l0Y2ggKHNyY1R5cGUpIHsK
ICAgICAgY2FzZSAweDFBMDA6CiAgICAgICAgIHsKICAgICAgICAgICAgR0x1Ynl0ZSAqdWJzcmMg
PSAoR0x1Ynl0ZSAqKSBzcmM7CiAgICAgICAgICAgIGlmICh1bnBhY2stPkxzYkZpcnN0KSB7CiAg
ICAgICAgICAgICAgIEdMdWJ5dGUgbWFzayA9IDEgPDwgKHVucGFjay0+U2tpcFBpeGVscyAmIDB4
Nyk7CiAgICAgICAgICAgICAgIEdMdWludCBpOwogICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBp
IDwgbjsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIGluZGV4ZXNbaV0gPSAoKnVic3JjICYgbWFz
aykgPyAxIDogMDsKICAgICAgICAgICAgICAgICAgaWYgKG1hc2sgPT0gMTI4KSB7CiAgICAgICAg
ICAgICAgICAgICAgIG1hc2sgPSAxOwogICAgICAgICAgICAgICAgICAgICB1YnNyYysrOwogICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICBtYXNrID0gbWFzayA8PCAxOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgR0x1Ynl0
ZSBtYXNrID0gMTI4ID4+ICh1bnBhY2stPlNraXBQaXhlbHMgJiAweDcpOwogICAgICAgICAgICAg
ICBHTHVpbnQgaTsKICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAg
ICAgICAgICAgICAgICBpbmRleGVzW2ldID0gKCp1YnNyYyAmIG1hc2spID8gMSA6IDA7CiAgICAg
ICAgICAgICAgICAgIGlmIChtYXNrID09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgbWFzayA9
IDEyODsKICAgICAgICAgICAgICAgICAgICAgdWJzcmMrKzsKICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgbWFzayA9IG1hc2sg
Pj4gMTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICAgY2FzZSAweDE0MDE6CiAgICAgICAgIHsK
ICAgICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgICAgIGNvbnN0IEdMdWJ5dGUgKnMgPSAoY29u
c3QgR0x1Ynl0ZSAqKSBzcmM7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspCiAg
ICAgICAgICAgICAgIGluZGV4ZXNbaV0gPSBzW2ldOwogICAgICAgICB9CiAgICAgICAgIGJyZWFr
OwogICAgICBjYXNlIDB4MTQwMDoKICAgICAgICAgewogICAgICAgICAgICBHTHVpbnQgaTsKICAg
ICAgICAgICAgY29uc3QgR0xieXRlICpzID0gKGNvbnN0IEdMYnl0ZSAqKSBzcmM7CiAgICAgICAg
ICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgICAgICAgIGluZGV4ZXNbaV0gPSBz
W2ldOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4MTQwMzoKICAgICAg
ICAgewogICAgICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgICAgY29uc3QgR0x1c2hvcnQgKnMg
PSAoY29uc3QgR0x1c2hvcnQgKikgc3JjOwogICAgICAgICAgICBpZiAodW5wYWNrLT5Td2FwQnl0
ZXMpIHsKICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAg
ICAgICAgICBHTHVzaG9ydCB2YWx1ZSA9IHNbaV07CiAgICAgICAgICAgICAgICAgIHsgR0x1Ynl0
ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsg
Ynl0ZXNbMF0gPSBieXRlc1sxXTsgYnl0ZXNbMV0gPSB0bXA7IH07CiAgICAgICAgICAgICAgICAg
IGluZGV4ZXNbaV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQogICAg
ICAgICAgICAgICAgICBpbmRleGVzW2ldID0gc1tpXTsKICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4MTQwMjoKICAgICAgICAgewogICAgICAgICAg
ICBHTHVpbnQgaTsKICAgICAgICAgICAgY29uc3QgR0xzaG9ydCAqcyA9IChjb25zdCBHTHNob3J0
ICopIHNyYzsKICAgICAgICAgICAgaWYgKHVucGFjay0+U3dhcEJ5dGVzKSB7CiAgICAgICAgICAg
ICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgICAgICAgR0xzaG9ydCB2
YWx1ZSA9IHNbaV07CiAgICAgICAgICAgICAgICAgIHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0
ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1sx
XTsgYnl0ZXNbMV0gPSB0bXA7IH07CiAgICAgICAgICAgICAgICAgIGluZGV4ZXNbaV0gPSB2YWx1
ZTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAg
ICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQogICAgICAgICAgICAgICAgICBpbmRl
eGVzW2ldID0gc1tpXTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwog
ICAgICBjYXNlIDB4MTQwNToKICAgICAgICAgewogICAgICAgICAgICBHTHVpbnQgaTsKICAgICAg
ICAgICAgY29uc3QgR0x1aW50ICpzID0gKGNvbnN0IEdMdWludCAqKSBzcmM7CiAgICAgICAgICAg
IGlmICh1bnBhY2stPlN3YXBCeXRlcykgewogICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwg
bjsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIEdMdWludCB2YWx1ZSA9IHNbaV07CiAgICAgICAg
ICAgICAgICAgIHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0
ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1szXTsgYnl0ZXNbM10gPSB0bXA7IHRt
cCA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IGJ5dGVzWzJdOyBieXRlc1syXSA9IHRtcDsgfTsKICAg
ICAgICAgICAgICAgICAgaW5kZXhlc1tpXSA9IHZhbHVlOwogICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkg
PCBuOyBpKyspCiAgICAgICAgICAgICAgICAgIGluZGV4ZXNbaV0gPSBzW2ldOwogICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHgxNDA0OgogICAgICAg
ICB7CiAgICAgICAgICAgIEdMdWludCBpOwogICAgICAgICAgICBjb25zdCBHTGludCAqcyA9IChj
b25zdCBHTGludCAqKSBzcmM7CiAgICAgICAgICAgIGlmICh1bnBhY2stPlN3YXBCeXRlcykgewog
ICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgICAgICAg
IEdMaW50IHZhbHVlID0gc1tpXTsKICAgICAgICAgICAgICAgICAgeyBHTHVieXRlICpieXRlcyA9
IChHTHVieXRlICopICYodmFsdWUpOyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBieXRlc1swXSA9
IGJ5dGVzWzNdOyBieXRlc1szXSA9IHRtcDsgdG1wID0gYnl0ZXNbMV07IGJ5dGVzWzFdID0gYnl0
ZXNbMl07IGJ5dGVzWzJdID0gdG1wOyB9OwogICAgICAgICAgICAgICAgICBpbmRleGVzW2ldID0g
dmFsdWU7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsK
ICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykKICAgICAgICAgICAgICAgICAg
aW5kZXhlc1tpXSA9IHNbaV07CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVh
azsKICAgICAgY2FzZSAweDE0MDY6CiAgICAgICAgIHsKICAgICAgICAgICAgR0x1aW50IGk7CiAg
ICAgICAgICAgIGNvbnN0IEdMZmxvYXQgKnMgPSAoY29uc3QgR0xmbG9hdCAqKSBzcmM7CiAgICAg
ICAgICAgIGlmICh1bnBhY2stPlN3YXBCeXRlcykgewogICAgICAgICAgICAgICBmb3IgKGkgPSAw
OyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIEdMZmxvYXQgdmFsdWUgPSBzW2ldOwog
ICAgICAgICAgICAgICAgICB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1ZSk7
IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbM107IGJ5dGVzWzNdID0g
dG1wOyB0bXAgPSBieXRlc1sxXTsgYnl0ZXNbMV0gPSBieXRlc1syXTsgYnl0ZXNbMl0gPSB0bXA7
IH07CiAgICAgICAgICAgICAgICAgIGluZGV4ZXNbaV0gPSAoR0x1aW50KSB2YWx1ZTsKICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
ICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQogICAgICAgICAgICAgICAgICBpbmRleGVzW2ldID0g
KEdMdWludCkgc1tpXTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwog
ICAgICBkZWZhdWx0OgogICAgICAgICBfbWVzYV9wcm9ibGVtKDAsICJiYWQgc3JjVHlwZSBpbiBl
eHRyYWN0X3VpbnRfaW5kZXhlcyIpOwogICAgICAgICByZXR1cm47CiAgIH0KfQojIDIwNDkgImlt
YWdlLmMiCnN0YXRpYyB2b2lkCmV4dHJhY3RfZmxvYXRfcmdiYShHTHVpbnQgbiwgR0xmbG9hdCBy
Z2JhW11bNF0sCiAgICAgICAgICAgICAgICAgICBHTGVudW0gc3JjRm9ybWF0LCBHTGVudW0gc3Jj
VHlwZSwgY29uc3QgR0x2b2lkICpzcmMsCiAgICAgICAgICAgICAgICAgICBHTGJvb2xlYW4gc3dh
cEJ5dGVzKQp7CiAgIEdMaW50IHJlZEluZGV4LCBncmVlbkluZGV4LCBibHVlSW5kZXgsIGFscGhh
SW5kZXg7CiAgIEdMaW50IHN0cmlkZTsKICAgR0xpbnQgckNvbXAsIGJDb21wLCBnQ29tcCwgYUNv
bXA7CgogICA7CiMgMjA3MSAiaW1hZ2UuYyIKICAgOwojIDIwOTEgImltYWdlLmMiCiAgIHJDb21w
ID0gZ0NvbXAgPSBiQ29tcCA9IGFDb21wID0gLTE7CgogICBzd2l0Y2ggKHNyY0Zvcm1hdCkgewog
ICAgICBjYXNlIDB4MTkwMzoKICAgICAgICAgcmVkSW5kZXggPSAwOwogICAgICAgICBncmVlbklu
ZGV4ID0gYmx1ZUluZGV4ID0gYWxwaGFJbmRleCA9IC0xOwogICAgICAgICBzdHJpZGUgPSAxOwog
ICAgICAgICBicmVhazsKICAgICAgY2FzZSAweDE5MDQ6CiAgICAgICAgIGdyZWVuSW5kZXggPSAw
OwogICAgICAgICByZWRJbmRleCA9IGJsdWVJbmRleCA9IGFscGhhSW5kZXggPSAtMTsKICAgICAg
ICAgc3RyaWRlID0gMTsKICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHgxOTA1OgogICAgICAg
ICBibHVlSW5kZXggPSAwOwogICAgICAgICByZWRJbmRleCA9IGdyZWVuSW5kZXggPSBhbHBoYUlu
ZGV4ID0gLTE7CiAgICAgICAgIHN0cmlkZSA9IDE7CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNl
IDB4MTkwNjoKICAgICAgICAgcmVkSW5kZXggPSBncmVlbkluZGV4ID0gYmx1ZUluZGV4ID0gLTE7
CiAgICAgICAgIGFscGhhSW5kZXggPSAwOwogICAgICAgICBzdHJpZGUgPSAxOwogICAgICAgICBi
cmVhazsKICAgICAgY2FzZSAweDE5MDk6CiAgICAgICAgIHJlZEluZGV4ID0gZ3JlZW5JbmRleCA9
IGJsdWVJbmRleCA9IDA7CiAgICAgICAgIGFscGhhSW5kZXggPSAtMTsKICAgICAgICAgc3RyaWRl
ID0gMTsKICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHgxOTBBOgogICAgICAgICByZWRJbmRl
eCA9IGdyZWVuSW5kZXggPSBibHVlSW5kZXggPSAwOwogICAgICAgICBhbHBoYUluZGV4ID0gMTsK
ICAgICAgICAgc3RyaWRlID0gMjsKICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHg4MDQ5Ogog
ICAgICAgICByZWRJbmRleCA9IGdyZWVuSW5kZXggPSBibHVlSW5kZXggPSBhbHBoYUluZGV4ID0g
MDsKICAgICAgICAgc3RyaWRlID0gMTsKICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHgxOTA3
OgogICAgICAgICByZWRJbmRleCA9IDA7CiAgICAgICAgIGdyZWVuSW5kZXggPSAxOwogICAgICAg
ICBibHVlSW5kZXggPSAyOwogICAgICAgICBhbHBoYUluZGV4ID0gLTE7CiAgICAgICAgIHN0cmlk
ZSA9IDM7CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4ODBFMDoKICAgICAgICAgcmVkSW5k
ZXggPSAyOwogICAgICAgICBncmVlbkluZGV4ID0gMTsKICAgICAgICAgYmx1ZUluZGV4ID0gMDsK
ICAgICAgICAgYWxwaGFJbmRleCA9IC0xOwogICAgICAgICBzdHJpZGUgPSAzOwogICAgICAgICBi
cmVhazsKICAgICAgY2FzZSAweDE5MDg6CiAgICAgICAgIHJlZEluZGV4ID0gMDsKICAgICAgICAg
Z3JlZW5JbmRleCA9IDE7CiAgICAgICAgIGJsdWVJbmRleCA9IDI7CiAgICAgICAgIGFscGhhSW5k
ZXggPSAzOwogICAgICAgICByQ29tcCA9IDA7CiAgICAgICAgIGdDb21wID0gMTsKICAgICAgICAg
YkNvbXAgPSAyOwogICAgICAgICBhQ29tcCA9IDM7CiAgICAgICAgIHN0cmlkZSA9IDQ7CiAgICAg
ICAgIGJyZWFrOwogICAgICBjYXNlIDB4ODBFMToKICAgICAgICAgcmVkSW5kZXggPSAyOwogICAg
ICAgICBncmVlbkluZGV4ID0gMTsKICAgICAgICAgYmx1ZUluZGV4ID0gMDsKICAgICAgICAgYWxw
aGFJbmRleCA9IDM7CiAgICAgICAgIHJDb21wID0gMjsKICAgICAgICAgZ0NvbXAgPSAxOwogICAg
ICAgICBiQ29tcCA9IDA7CiAgICAgICAgIGFDb21wID0gMzsKICAgICAgICAgc3RyaWRlID0gNDsK
ICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHg4MDAwOgogICAgICAgICByZWRJbmRleCA9IDM7
CiAgICAgICAgIGdyZWVuSW5kZXggPSAyOwogICAgICAgICBibHVlSW5kZXggPSAxOwogICAgICAg
ICBhbHBoYUluZGV4ID0gMDsKICAgICAgICAgckNvbXAgPSAzOwogICAgICAgICBnQ29tcCA9IDI7
CiAgICAgICAgIGJDb21wID0gMTsKICAgICAgICAgYUNvbXAgPSAwOwogICAgICAgICBzdHJpZGUg
PSA0OwogICAgICAgICBicmVhazsKICAgICAgZGVmYXVsdDoKICAgICAgICAgX21lc2FfcHJvYmxl
bSgwLCAiYmFkIHNyY0Zvcm1hdCBpbiBleHRyYWN0IGZsb2F0IGRhdGEiKTsKICAgICAgICAgcmV0
dXJuOwogICB9CiMgMjIxMiAiaW1hZ2UuYyIKICAgc3dpdGNoIChzcmNUeXBlKSB7CiAgICAgIGNh
c2UgMHgxNDAxOgogICAgICAgICBpZiAoKHJlZEluZGV4KSA8IDApIHsgR0x1aW50IGk7IGZvciAo
aSA9IDA7IGkgPCBuOyBpKyspIHsgcmdiYVtpXVswXSA9IDAuMEY7IH0gfSBlbHNlIGlmIChzd2Fw
Qnl0ZXMpIHsgY29uc3QgR0x1Ynl0ZSAqcyA9IChjb25zdCBHTHVieXRlICopIHNyYzsgR0x1aW50
IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgR0x1Ynl0ZSB2YWx1ZSA9IHNbcmVkSW5kZXhd
OyBpZiAoc2l6ZW9mKEdMdWJ5dGUpID09IDIpIHsgeyBHTHVieXRlICpieXRlcyA9IChHTHVieXRl
ICopICYodmFsdWUpOyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBieXRlc1swXSA9IGJ5dGVzWzFd
OyBieXRlc1sxXSA9IHRtcDsgfTsgfSBlbHNlIGlmIChzaXplb2YoR0x1Ynl0ZSkgPT0gNCkgeyB7
IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1ZSk7IEdMdWJ5dGUgdG1wID0gYnl0
ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbM107IGJ5dGVzWzNdID0gdG1wOyB0bXAgPSBieXRlc1sx
XTsgYnl0ZXNbMV0gPSBieXRlc1syXTsgYnl0ZXNbMl0gPSB0bXA7IH07IH0gcmdiYVtpXVswXSA9
IChHTGZsb2F0KSBfbWVzYV91Ynl0ZV90b19mbG9hdF9jb2xvcl90YWJbKHVuc2lnbmVkIGludCko
dmFsdWUpXTsgcyArPSBzdHJpZGU7IH0gfSBlbHNlIHsgY29uc3QgR0x1Ynl0ZSAqcyA9IChjb25z
dCBHTHVieXRlICopIHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgcmdi
YVtpXVswXSA9IChHTGZsb2F0KSBfbWVzYV91Ynl0ZV90b19mbG9hdF9jb2xvcl90YWJbKHVuc2ln
bmVkIGludCkoc1tyZWRJbmRleF0pXTsgcyArPSBzdHJpZGU7IH0gfTsKICAgICAgICAgaWYgKChn
cmVlbkluZGV4KSA8IDApIHsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgcmdi
YVtpXVsxXSA9IDAuMEY7IH0gfSBlbHNlIGlmIChzd2FwQnl0ZXMpIHsgY29uc3QgR0x1Ynl0ZSAq
cyA9IChjb25zdCBHTHVieXRlICopIHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBp
KyspIHsgR0x1Ynl0ZSB2YWx1ZSA9IHNbZ3JlZW5JbmRleF07IGlmIChzaXplb2YoR0x1Ynl0ZSkg
PT0gMikgeyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1ZSk7IEdMdWJ5dGUg
dG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbMV07IGJ5dGVzWzFdID0gdG1wOyB9OyB9
IGVsc2UgaWYgKHNpemVvZihHTHVieXRlKSA9PSA0KSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1
Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRl
c1szXTsgYnl0ZXNbM10gPSB0bXA7IHRtcCA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IGJ5dGVzWzJd
OyBieXRlc1syXSA9IHRtcDsgfTsgfSByZ2JhW2ldWzFdID0gKEdMZmxvYXQpIF9tZXNhX3VieXRl
X3RvX2Zsb2F0X2NvbG9yX3RhYlsodW5zaWduZWQgaW50KSh2YWx1ZSldOyBzICs9IHN0cmlkZTsg
fSB9IGVsc2UgeyBjb25zdCBHTHVieXRlICpzID0gKGNvbnN0IEdMdWJ5dGUgKikgc3JjOyBHTHVp
bnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzFdID0gKEdMZmxvYXQpIF9t
ZXNhX3VieXRlX3RvX2Zsb2F0X2NvbG9yX3RhYlsodW5zaWduZWQgaW50KShzW2dyZWVuSW5kZXhd
KV07IHMgKz0gc3RyaWRlOyB9IH07CiAgICAgICAgIGlmICgoYmx1ZUluZGV4KSA8IDApIHsgR0x1
aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgcmdiYVtpXVsyXSA9IDAuMEY7IH0gfSBl
bHNlIGlmIChzd2FwQnl0ZXMpIHsgY29uc3QgR0x1Ynl0ZSAqcyA9IChjb25zdCBHTHVieXRlICop
IHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgR0x1Ynl0ZSB2YWx1ZSA9
IHNbYmx1ZUluZGV4XTsgaWYgKHNpemVvZihHTHVieXRlKSA9PSAyKSB7IHsgR0x1Ynl0ZSAqYnl0
ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNb
MF0gPSBieXRlc1sxXTsgYnl0ZXNbMV0gPSB0bXA7IH07IH0gZWxzZSBpZiAoc2l6ZW9mKEdMdWJ5
dGUpID09IDQpIHsgeyBHTHVieXRlICpieXRlcyA9IChHTHVieXRlICopICYodmFsdWUpOyBHTHVi
eXRlIHRtcCA9IGJ5dGVzWzBdOyBieXRlc1swXSA9IGJ5dGVzWzNdOyBieXRlc1szXSA9IHRtcDsg
dG1wID0gYnl0ZXNbMV07IGJ5dGVzWzFdID0gYnl0ZXNbMl07IGJ5dGVzWzJdID0gdG1wOyB9OyB9
IHJnYmFbaV1bMl0gPSAoR0xmbG9hdCkgX21lc2FfdWJ5dGVfdG9fZmxvYXRfY29sb3JfdGFiWyh1
bnNpZ25lZCBpbnQpKHZhbHVlKV07IHMgKz0gc3RyaWRlOyB9IH0gZWxzZSB7IGNvbnN0IEdMdWJ5
dGUgKnMgPSAoY29uc3QgR0x1Ynl0ZSAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwg
bjsgaSsrKSB7IHJnYmFbaV1bMl0gPSAoR0xmbG9hdCkgX21lc2FfdWJ5dGVfdG9fZmxvYXRfY29s
b3JfdGFiWyh1bnNpZ25lZCBpbnQpKHNbYmx1ZUluZGV4XSldOyBzICs9IHN0cmlkZTsgfSB9Owog
ICAgICAgICBpZiAoKGFscGhhSW5kZXgpIDwgMCkgeyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8
IG47IGkrKykgeyByZ2JhW2ldWzNdID0gMS4wRjsgfSB9IGVsc2UgaWYgKHN3YXBCeXRlcykgeyBj
b25zdCBHTHVieXRlICpzID0gKGNvbnN0IEdMdWJ5dGUgKikgc3JjOyBHTHVpbnQgaTsgZm9yIChp
ID0gMDsgaSA8IG47IGkrKykgeyBHTHVieXRlIHZhbHVlID0gc1thbHBoYUluZGV4XTsgaWYgKHNp
emVvZihHTHVieXRlKSA9PSAyKSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZh
bHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1sxXTsgYnl0ZXNb
MV0gPSB0bXA7IH07IH0gZWxzZSBpZiAoc2l6ZW9mKEdMdWJ5dGUpID09IDQpIHsgeyBHTHVieXRl
ICpieXRlcyA9IChHTHVieXRlICopICYodmFsdWUpOyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBi
eXRlc1swXSA9IGJ5dGVzWzNdOyBieXRlc1szXSA9IHRtcDsgdG1wID0gYnl0ZXNbMV07IGJ5dGVz
WzFdID0gYnl0ZXNbMl07IGJ5dGVzWzJdID0gdG1wOyB9OyB9IHJnYmFbaV1bM10gPSAoR0xmbG9h
dCkgX21lc2FfdWJ5dGVfdG9fZmxvYXRfY29sb3JfdGFiWyh1bnNpZ25lZCBpbnQpKHZhbHVlKV07
IHMgKz0gc3RyaWRlOyB9IH0gZWxzZSB7IGNvbnN0IEdMdWJ5dGUgKnMgPSAoY29uc3QgR0x1Ynl0
ZSAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bM10g
PSAoR0xmbG9hdCkgX21lc2FfdWJ5dGVfdG9fZmxvYXRfY29sb3JfdGFiWyh1bnNpZ25lZCBpbnQp
KHNbYWxwaGFJbmRleF0pXTsgcyArPSBzdHJpZGU7IH0gfTsKICAgICAgICAgYnJlYWs7CiAgICAg
IGNhc2UgMHgxNDAwOgogICAgICAgICBpZiAoKHJlZEluZGV4KSA8IDApIHsgR0x1aW50IGk7IGZv
ciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgcmdiYVtpXVswXSA9IDAuMEY7IH0gfSBlbHNlIGlmIChz
d2FwQnl0ZXMpIHsgY29uc3QgR0xieXRlICpzID0gKGNvbnN0IEdMYnl0ZSAqKSBzcmM7IEdMdWlu
dCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IEdMYnl0ZSB2YWx1ZSA9IHNbcmVkSW5kZXhd
OyBpZiAoc2l6ZW9mKEdMYnl0ZSkgPT0gMikgeyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUg
KikgJih2YWx1ZSk7IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbMV07
IGJ5dGVzWzFdID0gdG1wOyB9OyB9IGVsc2UgaWYgKHNpemVvZihHTGJ5dGUpID09IDQpIHsgeyBH
THVieXRlICpieXRlcyA9IChHTHVieXRlICopICYodmFsdWUpOyBHTHVieXRlIHRtcCA9IGJ5dGVz
WzBdOyBieXRlc1swXSA9IGJ5dGVzWzNdOyBieXRlc1szXSA9IHRtcDsgdG1wID0gYnl0ZXNbMV07
IGJ5dGVzWzFdID0gYnl0ZXNbMl07IGJ5dGVzWzJdID0gdG1wOyB9OyB9IHJnYmFbaV1bMF0gPSAo
R0xmbG9hdCkgKCgyLjBGICogKHZhbHVlKSArIDEuMEYpICogKDEuMEYvMjU1LjBGKSk7IHMgKz0g
c3RyaWRlOyB9IH0gZWxzZSB7IGNvbnN0IEdMYnl0ZSAqcyA9IChjb25zdCBHTGJ5dGUgKikgc3Jj
OyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzBdID0gKEdMZmxv
YXQpICgoMi4wRiAqIChzW3JlZEluZGV4XSkgKyAxLjBGKSAqICgxLjBGLzI1NS4wRikpOyBzICs9
IHN0cmlkZTsgfSB9OwogICAgICAgICBpZiAoKGdyZWVuSW5kZXgpIDwgMCkgeyBHTHVpbnQgaTsg
Zm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzFdID0gMC4wRjsgfSB9IGVsc2UgaWYg
KHN3YXBCeXRlcykgeyBjb25zdCBHTGJ5dGUgKnMgPSAoY29uc3QgR0xieXRlICopIHNyYzsgR0x1
aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgR0xieXRlIHZhbHVlID0gc1tncmVlbklu
ZGV4XTsgaWYgKHNpemVvZihHTGJ5dGUpID09IDIpIHsgeyBHTHVieXRlICpieXRlcyA9IChHTHVi
eXRlICopICYodmFsdWUpOyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBieXRlc1swXSA9IGJ5dGVz
WzFdOyBieXRlc1sxXSA9IHRtcDsgfTsgfSBlbHNlIGlmIChzaXplb2YoR0xieXRlKSA9PSA0KSB7
IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBi
eXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1szXTsgYnl0ZXNbM10gPSB0bXA7IHRtcCA9IGJ5dGVz
WzFdOyBieXRlc1sxXSA9IGJ5dGVzWzJdOyBieXRlc1syXSA9IHRtcDsgfTsgfSByZ2JhW2ldWzFd
ID0gKEdMZmxvYXQpICgoMi4wRiAqICh2YWx1ZSkgKyAxLjBGKSAqICgxLjBGLzI1NS4wRikpOyBz
ICs9IHN0cmlkZTsgfSB9IGVsc2UgeyBjb25zdCBHTGJ5dGUgKnMgPSAoY29uc3QgR0xieXRlICop
IHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgcmdiYVtpXVsxXSA9IChH
TGZsb2F0KSAoKDIuMEYgKiAoc1tncmVlbkluZGV4XSkgKyAxLjBGKSAqICgxLjBGLzI1NS4wRikp
OyBzICs9IHN0cmlkZTsgfSB9OwogICAgICAgICBpZiAoKGJsdWVJbmRleCkgPCAwKSB7IEdMdWlu
dCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bMl0gPSAwLjBGOyB9IH0gZWxz
ZSBpZiAoc3dhcEJ5dGVzKSB7IGNvbnN0IEdMYnl0ZSAqcyA9IChjb25zdCBHTGJ5dGUgKikgc3Jj
OyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyBHTGJ5dGUgdmFsdWUgPSBzW2Js
dWVJbmRleF07IGlmIChzaXplb2YoR0xieXRlKSA9PSAyKSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAo
R0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBi
eXRlc1sxXTsgYnl0ZXNbMV0gPSB0bXA7IH07IH0gZWxzZSBpZiAoc2l6ZW9mKEdMYnl0ZSkgPT0g
NCkgeyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1ZSk7IEdMdWJ5dGUgdG1w
ID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbM107IGJ5dGVzWzNdID0gdG1wOyB0bXAgPSBi
eXRlc1sxXTsgYnl0ZXNbMV0gPSBieXRlc1syXTsgYnl0ZXNbMl0gPSB0bXA7IH07IH0gcmdiYVtp
XVsyXSA9IChHTGZsb2F0KSAoKDIuMEYgKiAodmFsdWUpICsgMS4wRikgKiAoMS4wRi8yNTUuMEYp
KTsgcyArPSBzdHJpZGU7IH0gfSBlbHNlIHsgY29uc3QgR0xieXRlICpzID0gKGNvbnN0IEdMYnl0
ZSAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bMl0g
PSAoR0xmbG9hdCkgKCgyLjBGICogKHNbYmx1ZUluZGV4XSkgKyAxLjBGKSAqICgxLjBGLzI1NS4w
RikpOyBzICs9IHN0cmlkZTsgfSB9OwogICAgICAgICBpZiAoKGFscGhhSW5kZXgpIDwgMCkgeyBH
THVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzNdID0gMS4wRjsgfSB9
IGVsc2UgaWYgKHN3YXBCeXRlcykgeyBjb25zdCBHTGJ5dGUgKnMgPSAoY29uc3QgR0xieXRlICop
IHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgR0xieXRlIHZhbHVlID0g
c1thbHBoYUluZGV4XTsgaWYgKHNpemVvZihHTGJ5dGUpID09IDIpIHsgeyBHTHVieXRlICpieXRl
cyA9IChHTHVieXRlICopICYodmFsdWUpOyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBieXRlc1sw
XSA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IHRtcDsgfTsgfSBlbHNlIGlmIChzaXplb2YoR0xieXRl
KSA9PSA0KSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0
ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1szXTsgYnl0ZXNbM10gPSB0bXA7IHRt
cCA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IGJ5dGVzWzJdOyBieXRlc1syXSA9IHRtcDsgfTsgfSBy
Z2JhW2ldWzNdID0gKEdMZmxvYXQpICgoMi4wRiAqICh2YWx1ZSkgKyAxLjBGKSAqICgxLjBGLzI1
NS4wRikpOyBzICs9IHN0cmlkZTsgfSB9IGVsc2UgeyBjb25zdCBHTGJ5dGUgKnMgPSAoY29uc3Qg
R0xieXRlICopIHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgcmdiYVtp
XVszXSA9IChHTGZsb2F0KSAoKDIuMEYgKiAoc1thbHBoYUluZGV4XSkgKyAxLjBGKSAqICgxLjBG
LzI1NS4wRikpOyBzICs9IHN0cmlkZTsgfSB9OwogICAgICAgICBicmVhazsKICAgICAgY2FzZSAw
eDE0MDM6CiAgICAgICAgIGlmICgocmVkSW5kZXgpIDwgMCkgeyBHTHVpbnQgaTsgZm9yIChpID0g
MDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzBdID0gMC4wRjsgfSB9IGVsc2UgaWYgKHN3YXBCeXRl
cykgeyBjb25zdCBHTHVzaG9ydCAqcyA9IChjb25zdCBHTHVzaG9ydCAqKSBzcmM7IEdMdWludCBp
OyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IEdMdXNob3J0IHZhbHVlID0gc1tyZWRJbmRleF07
IGlmIChzaXplb2YoR0x1c2hvcnQpID09IDIpIHsgeyBHTHVieXRlICpieXRlcyA9IChHTHVieXRl
ICopICYodmFsdWUpOyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBieXRlc1swXSA9IGJ5dGVzWzFd
OyBieXRlc1sxXSA9IHRtcDsgfTsgfSBlbHNlIGlmIChzaXplb2YoR0x1c2hvcnQpID09IDQpIHsg
eyBHTHVieXRlICpieXRlcyA9IChHTHVieXRlICopICYodmFsdWUpOyBHTHVieXRlIHRtcCA9IGJ5
dGVzWzBdOyBieXRlc1swXSA9IGJ5dGVzWzNdOyBieXRlc1szXSA9IHRtcDsgdG1wID0gYnl0ZXNb
MV07IGJ5dGVzWzFdID0gYnl0ZXNbMl07IGJ5dGVzWzJdID0gdG1wOyB9OyB9IHJnYmFbaV1bMF0g
PSAoR0xmbG9hdCkgKChHTGZsb2F0KSAodmFsdWUpICogKDEuMEYgLyA2NTUzNS4wRikpOyBzICs9
IHN0cmlkZTsgfSB9IGVsc2UgeyBjb25zdCBHTHVzaG9ydCAqcyA9IChjb25zdCBHTHVzaG9ydCAq
KSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bMF0gPSAo
R0xmbG9hdCkgKChHTGZsb2F0KSAoc1tyZWRJbmRleF0pICogKDEuMEYgLyA2NTUzNS4wRikpOyBz
ICs9IHN0cmlkZTsgfSB9OwogICAgICAgICBpZiAoKGdyZWVuSW5kZXgpIDwgMCkgeyBHTHVpbnQg
aTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzFdID0gMC4wRjsgfSB9IGVsc2Ug
aWYgKHN3YXBCeXRlcykgeyBjb25zdCBHTHVzaG9ydCAqcyA9IChjb25zdCBHTHVzaG9ydCAqKSBz
cmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IEdMdXNob3J0IHZhbHVlID0g
c1tncmVlbkluZGV4XTsgaWYgKHNpemVvZihHTHVzaG9ydCkgPT0gMikgeyB7IEdMdWJ5dGUgKmJ5
dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1ZSk7IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVz
WzBdID0gYnl0ZXNbMV07IGJ5dGVzWzFdID0gdG1wOyB9OyB9IGVsc2UgaWYgKHNpemVvZihHTHVz
aG9ydCkgPT0gNCkgeyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1ZSk7IEdM
dWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbM107IGJ5dGVzWzNdID0gdG1w
OyB0bXAgPSBieXRlc1sxXTsgYnl0ZXNbMV0gPSBieXRlc1syXTsgYnl0ZXNbMl0gPSB0bXA7IH07
IH0gcmdiYVtpXVsxXSA9IChHTGZsb2F0KSAoKEdMZmxvYXQpICh2YWx1ZSkgKiAoMS4wRiAvIDY1
NTM1LjBGKSk7IHMgKz0gc3RyaWRlOyB9IH0gZWxzZSB7IGNvbnN0IEdMdXNob3J0ICpzID0gKGNv
bnN0IEdMdXNob3J0ICopIHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsg
cmdiYVtpXVsxXSA9IChHTGZsb2F0KSAoKEdMZmxvYXQpIChzW2dyZWVuSW5kZXhdKSAqICgxLjBG
IC8gNjU1MzUuMEYpKTsgcyArPSBzdHJpZGU7IH0gfTsKICAgICAgICAgaWYgKChibHVlSW5kZXgp
IDwgMCkgeyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzJdID0g
MC4wRjsgfSB9IGVsc2UgaWYgKHN3YXBCeXRlcykgeyBjb25zdCBHTHVzaG9ydCAqcyA9IChjb25z
dCBHTHVzaG9ydCAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IEdM
dXNob3J0IHZhbHVlID0gc1tibHVlSW5kZXhdOyBpZiAoc2l6ZW9mKEdMdXNob3J0KSA9PSAyKSB7
IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBi
eXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1sxXTsgYnl0ZXNbMV0gPSB0bXA7IH07IH0gZWxzZSBp
ZiAoc2l6ZW9mKEdMdXNob3J0KSA9PSA0KSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAq
KSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1szXTsg
Ynl0ZXNbM10gPSB0bXA7IHRtcCA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IGJ5dGVzWzJdOyBieXRl
c1syXSA9IHRtcDsgfTsgfSByZ2JhW2ldWzJdID0gKEdMZmxvYXQpICgoR0xmbG9hdCkgKHZhbHVl
KSAqICgxLjBGIC8gNjU1MzUuMEYpKTsgcyArPSBzdHJpZGU7IH0gfSBlbHNlIHsgY29uc3QgR0x1
c2hvcnQgKnMgPSAoY29uc3QgR0x1c2hvcnQgKikgc3JjOyBHTHVpbnQgaTsgZm9yIChpID0gMDsg
aSA8IG47IGkrKykgeyByZ2JhW2ldWzJdID0gKEdMZmxvYXQpICgoR0xmbG9hdCkgKHNbYmx1ZUlu
ZGV4XSkgKiAoMS4wRiAvIDY1NTM1LjBGKSk7IHMgKz0gc3RyaWRlOyB9IH07CiAgICAgICAgIGlm
ICgoYWxwaGFJbmRleCkgPCAwKSB7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7
IHJnYmFbaV1bM10gPSAxLjBGOyB9IH0gZWxzZSBpZiAoc3dhcEJ5dGVzKSB7IGNvbnN0IEdMdXNo
b3J0ICpzID0gKGNvbnN0IEdMdXNob3J0ICopIHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkg
PCBuOyBpKyspIHsgR0x1c2hvcnQgdmFsdWUgPSBzW2FscGhhSW5kZXhdOyBpZiAoc2l6ZW9mKEdM
dXNob3J0KSA9PSAyKSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsg
R0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1sxXTsgYnl0ZXNbMV0gPSB0
bXA7IH07IH0gZWxzZSBpZiAoc2l6ZW9mKEdMdXNob3J0KSA9PSA0KSB7IHsgR0x1Ynl0ZSAqYnl0
ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNb
MF0gPSBieXRlc1szXTsgYnl0ZXNbM10gPSB0bXA7IHRtcCA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9
IGJ5dGVzWzJdOyBieXRlc1syXSA9IHRtcDsgfTsgfSByZ2JhW2ldWzNdID0gKEdMZmxvYXQpICgo
R0xmbG9hdCkgKHZhbHVlKSAqICgxLjBGIC8gNjU1MzUuMEYpKTsgcyArPSBzdHJpZGU7IH0gfSBl
bHNlIHsgY29uc3QgR0x1c2hvcnQgKnMgPSAoY29uc3QgR0x1c2hvcnQgKikgc3JjOyBHTHVpbnQg
aTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzNdID0gKEdMZmxvYXQpICgoR0xm
bG9hdCkgKHNbYWxwaGFJbmRleF0pICogKDEuMEYgLyA2NTUzNS4wRikpOyBzICs9IHN0cmlkZTsg
fSB9OwogICAgICAgICBicmVhazsKICAgICAgY2FzZSAweDE0MDI6CiAgICAgICAgIGlmICgocmVk
SW5kZXgpIDwgMCkgeyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ld
WzBdID0gMC4wRjsgfSB9IGVsc2UgaWYgKHN3YXBCeXRlcykgeyBjb25zdCBHTHNob3J0ICpzID0g
KGNvbnN0IEdMc2hvcnQgKikgc3JjOyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykg
eyBHTHNob3J0IHZhbHVlID0gc1tyZWRJbmRleF07IGlmIChzaXplb2YoR0xzaG9ydCkgPT0gMikg
eyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1ZSk7IEdMdWJ5dGUgdG1wID0g
Ynl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbMV07IGJ5dGVzWzFdID0gdG1wOyB9OyB9IGVsc2Ug
aWYgKHNpemVvZihHTHNob3J0KSA9PSA0KSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAq
KSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1szXTsg
Ynl0ZXNbM10gPSB0bXA7IHRtcCA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IGJ5dGVzWzJdOyBieXRl
c1syXSA9IHRtcDsgfTsgfSByZ2JhW2ldWzBdID0gKEdMZmxvYXQpICgoMi4wRiAqICh2YWx1ZSkg
KyAxLjBGKSAqICgxLjBGLzY1NTM1LjBGKSk7IHMgKz0gc3RyaWRlOyB9IH0gZWxzZSB7IGNvbnN0
IEdMc2hvcnQgKnMgPSAoY29uc3QgR0xzaG9ydCAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAw
OyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bMF0gPSAoR0xmbG9hdCkgKCgyLjBGICogKHNbcmVkSW5k
ZXhdKSArIDEuMEYpICogKDEuMEYvNjU1MzUuMEYpKTsgcyArPSBzdHJpZGU7IH0gfTsKICAgICAg
ICAgaWYgKChncmVlbkluZGV4KSA8IDApIHsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBp
KyspIHsgcmdiYVtpXVsxXSA9IDAuMEY7IH0gfSBlbHNlIGlmIChzd2FwQnl0ZXMpIHsgY29uc3Qg
R0xzaG9ydCAqcyA9IChjb25zdCBHTHNob3J0ICopIHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7
IGkgPCBuOyBpKyspIHsgR0xzaG9ydCB2YWx1ZSA9IHNbZ3JlZW5JbmRleF07IGlmIChzaXplb2Yo
R0xzaG9ydCkgPT0gMikgeyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1ZSk7
IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbMV07IGJ5dGVzWzFdID0g
dG1wOyB9OyB9IGVsc2UgaWYgKHNpemVvZihHTHNob3J0KSA9PSA0KSB7IHsgR0x1Ynl0ZSAqYnl0
ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNb
MF0gPSBieXRlc1szXTsgYnl0ZXNbM10gPSB0bXA7IHRtcCA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9
IGJ5dGVzWzJdOyBieXRlc1syXSA9IHRtcDsgfTsgfSByZ2JhW2ldWzFdID0gKEdMZmxvYXQpICgo
Mi4wRiAqICh2YWx1ZSkgKyAxLjBGKSAqICgxLjBGLzY1NTM1LjBGKSk7IHMgKz0gc3RyaWRlOyB9
IH0gZWxzZSB7IGNvbnN0IEdMc2hvcnQgKnMgPSAoY29uc3QgR0xzaG9ydCAqKSBzcmM7IEdMdWlu
dCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bMV0gPSAoR0xmbG9hdCkgKCgy
LjBGICogKHNbZ3JlZW5JbmRleF0pICsgMS4wRikgKiAoMS4wRi82NTUzNS4wRikpOyBzICs9IHN0
cmlkZTsgfSB9OwogICAgICAgICBpZiAoKGJsdWVJbmRleCkgPCAwKSB7IEdMdWludCBpOyBmb3Ig
KGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bMl0gPSAwLjBGOyB9IH0gZWxzZSBpZiAoc3dh
cEJ5dGVzKSB7IGNvbnN0IEdMc2hvcnQgKnMgPSAoY29uc3QgR0xzaG9ydCAqKSBzcmM7IEdMdWlu
dCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IEdMc2hvcnQgdmFsdWUgPSBzW2JsdWVJbmRl
eF07IGlmIChzaXplb2YoR0xzaG9ydCkgPT0gMikgeyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5
dGUgKikgJih2YWx1ZSk7IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNb
MV07IGJ5dGVzWzFdID0gdG1wOyB9OyB9IGVsc2UgaWYgKHNpemVvZihHTHNob3J0KSA9PSA0KSB7
IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBi
eXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1szXTsgYnl0ZXNbM10gPSB0bXA7IHRtcCA9IGJ5dGVz
WzFdOyBieXRlc1sxXSA9IGJ5dGVzWzJdOyBieXRlc1syXSA9IHRtcDsgfTsgfSByZ2JhW2ldWzJd
ID0gKEdMZmxvYXQpICgoMi4wRiAqICh2YWx1ZSkgKyAxLjBGKSAqICgxLjBGLzY1NTM1LjBGKSk7
IHMgKz0gc3RyaWRlOyB9IH0gZWxzZSB7IGNvbnN0IEdMc2hvcnQgKnMgPSAoY29uc3QgR0xzaG9y
dCAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bMl0g
PSAoR0xmbG9hdCkgKCgyLjBGICogKHNbYmx1ZUluZGV4XSkgKyAxLjBGKSAqICgxLjBGLzY1NTM1
LjBGKSk7IHMgKz0gc3RyaWRlOyB9IH07CiAgICAgICAgIGlmICgoYWxwaGFJbmRleCkgPCAwKSB7
IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bM10gPSAxLjBGOyB9
IH0gZWxzZSBpZiAoc3dhcEJ5dGVzKSB7IGNvbnN0IEdMc2hvcnQgKnMgPSAoY29uc3QgR0xzaG9y
dCAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IEdMc2hvcnQgdmFs
dWUgPSBzW2FscGhhSW5kZXhdOyBpZiAoc2l6ZW9mKEdMc2hvcnQpID09IDIpIHsgeyBHTHVieXRl
ICpieXRlcyA9IChHTHVieXRlICopICYodmFsdWUpOyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBi
eXRlc1swXSA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IHRtcDsgfTsgfSBlbHNlIGlmIChzaXplb2Yo
R0xzaG9ydCkgPT0gNCkgeyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1ZSk7
IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbM107IGJ5dGVzWzNdID0g
dG1wOyB0bXAgPSBieXRlc1sxXTsgYnl0ZXNbMV0gPSBieXRlc1syXTsgYnl0ZXNbMl0gPSB0bXA7
IH07IH0gcmdiYVtpXVszXSA9IChHTGZsb2F0KSAoKDIuMEYgKiAodmFsdWUpICsgMS4wRikgKiAo
MS4wRi82NTUzNS4wRikpOyBzICs9IHN0cmlkZTsgfSB9IGVsc2UgeyBjb25zdCBHTHNob3J0ICpz
ID0gKGNvbnN0IEdMc2hvcnQgKikgc3JjOyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkr
KykgeyByZ2JhW2ldWzNdID0gKEdMZmxvYXQpICgoMi4wRiAqIChzW2FscGhhSW5kZXhdKSArIDEu
MEYpICogKDEuMEYvNjU1MzUuMEYpKTsgcyArPSBzdHJpZGU7IH0gfTsKICAgICAgICAgYnJlYWs7
CiAgICAgIGNhc2UgMHgxNDA1OgogICAgICAgICBpZiAoKHJlZEluZGV4KSA8IDApIHsgR0x1aW50
IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgcmdiYVtpXVswXSA9IDAuMEY7IH0gfSBlbHNl
IGlmIChzd2FwQnl0ZXMpIHsgY29uc3QgR0x1aW50ICpzID0gKGNvbnN0IEdMdWludCAqKSBzcmM7
IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IEdMdWludCB2YWx1ZSA9IHNbcmVk
SW5kZXhdOyBpZiAoc2l6ZW9mKEdMdWludCkgPT0gMikgeyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdM
dWJ5dGUgKikgJih2YWx1ZSk7IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0
ZXNbMV07IGJ5dGVzWzFdID0gdG1wOyB9OyB9IGVsc2UgaWYgKHNpemVvZihHTHVpbnQpID09IDQp
IHsgeyBHTHVieXRlICpieXRlcyA9IChHTHVieXRlICopICYodmFsdWUpOyBHTHVieXRlIHRtcCA9
IGJ5dGVzWzBdOyBieXRlc1swXSA9IGJ5dGVzWzNdOyBieXRlc1szXSA9IHRtcDsgdG1wID0gYnl0
ZXNbMV07IGJ5dGVzWzFdID0gYnl0ZXNbMl07IGJ5dGVzWzJdID0gdG1wOyB9OyB9IHJnYmFbaV1b
MF0gPSAoR0xmbG9hdCkgKChHTGZsb2F0KSAodmFsdWUpICogKDEuMEYgLyA0Mjk0OTY3Mjk1LjBG
KSk7IHMgKz0gc3RyaWRlOyB9IH0gZWxzZSB7IGNvbnN0IEdMdWludCAqcyA9IChjb25zdCBHTHVp
bnQgKikgc3JjOyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzBd
ID0gKEdMZmxvYXQpICgoR0xmbG9hdCkgKHNbcmVkSW5kZXhdKSAqICgxLjBGIC8gNDI5NDk2NzI5
NS4wRikpOyBzICs9IHN0cmlkZTsgfSB9OwogICAgICAgICBpZiAoKGdyZWVuSW5kZXgpIDwgMCkg
eyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzFdID0gMC4wRjsg
fSB9IGVsc2UgaWYgKHN3YXBCeXRlcykgeyBjb25zdCBHTHVpbnQgKnMgPSAoY29uc3QgR0x1aW50
ICopIHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgR0x1aW50IHZhbHVl
ID0gc1tncmVlbkluZGV4XTsgaWYgKHNpemVvZihHTHVpbnQpID09IDIpIHsgeyBHTHVieXRlICpi
eXRlcyA9IChHTHVieXRlICopICYodmFsdWUpOyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBieXRl
c1swXSA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IHRtcDsgfTsgfSBlbHNlIGlmIChzaXplb2YoR0x1
aW50KSA9PSA0KSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1
Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1szXTsgYnl0ZXNbM10gPSB0bXA7
IHRtcCA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IGJ5dGVzWzJdOyBieXRlc1syXSA9IHRtcDsgfTsg
fSByZ2JhW2ldWzFdID0gKEdMZmxvYXQpICgoR0xmbG9hdCkgKHZhbHVlKSAqICgxLjBGIC8gNDI5
NDk2NzI5NS4wRikpOyBzICs9IHN0cmlkZTsgfSB9IGVsc2UgeyBjb25zdCBHTHVpbnQgKnMgPSAo
Y29uc3QgR0x1aW50ICopIHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsg
cmdiYVtpXVsxXSA9IChHTGZsb2F0KSAoKEdMZmxvYXQpIChzW2dyZWVuSW5kZXhdKSAqICgxLjBG
IC8gNDI5NDk2NzI5NS4wRikpOyBzICs9IHN0cmlkZTsgfSB9OwogICAgICAgICBpZiAoKGJsdWVJ
bmRleCkgPCAwKSB7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1b
Ml0gPSAwLjBGOyB9IH0gZWxzZSBpZiAoc3dhcEJ5dGVzKSB7IGNvbnN0IEdMdWludCAqcyA9IChj
b25zdCBHTHVpbnQgKikgc3JjOyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyBH
THVpbnQgdmFsdWUgPSBzW2JsdWVJbmRleF07IGlmIChzaXplb2YoR0x1aW50KSA9PSAyKSB7IHsg
R0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRl
c1swXTsgYnl0ZXNbMF0gPSBieXRlc1sxXTsgYnl0ZXNbMV0gPSB0bXA7IH07IH0gZWxzZSBpZiAo
c2l6ZW9mKEdMdWludCkgPT0gNCkgeyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJih2
YWx1ZSk7IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbM107IGJ5dGVz
WzNdID0gdG1wOyB0bXAgPSBieXRlc1sxXTsgYnl0ZXNbMV0gPSBieXRlc1syXTsgYnl0ZXNbMl0g
PSB0bXA7IH07IH0gcmdiYVtpXVsyXSA9IChHTGZsb2F0KSAoKEdMZmxvYXQpICh2YWx1ZSkgKiAo
MS4wRiAvIDQyOTQ5NjcyOTUuMEYpKTsgcyArPSBzdHJpZGU7IH0gfSBlbHNlIHsgY29uc3QgR0x1
aW50ICpzID0gKGNvbnN0IEdMdWludCAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwg
bjsgaSsrKSB7IHJnYmFbaV1bMl0gPSAoR0xmbG9hdCkgKChHTGZsb2F0KSAoc1tibHVlSW5kZXhd
KSAqICgxLjBGIC8gNDI5NDk2NzI5NS4wRikpOyBzICs9IHN0cmlkZTsgfSB9OwogICAgICAgICBp
ZiAoKGFscGhhSW5kZXgpIDwgMCkgeyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykg
eyByZ2JhW2ldWzNdID0gMS4wRjsgfSB9IGVsc2UgaWYgKHN3YXBCeXRlcykgeyBjb25zdCBHTHVp
bnQgKnMgPSAoY29uc3QgR0x1aW50ICopIHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBu
OyBpKyspIHsgR0x1aW50IHZhbHVlID0gc1thbHBoYUluZGV4XTsgaWYgKHNpemVvZihHTHVpbnQp
ID09IDIpIHsgeyBHTHVieXRlICpieXRlcyA9IChHTHVieXRlICopICYodmFsdWUpOyBHTHVieXRl
IHRtcCA9IGJ5dGVzWzBdOyBieXRlc1swXSA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IHRtcDsgfTsg
fSBlbHNlIGlmIChzaXplb2YoR0x1aW50KSA9PSA0KSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1
Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRl
c1szXTsgYnl0ZXNbM10gPSB0bXA7IHRtcCA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IGJ5dGVzWzJd
OyBieXRlc1syXSA9IHRtcDsgfTsgfSByZ2JhW2ldWzNdID0gKEdMZmxvYXQpICgoR0xmbG9hdCkg
KHZhbHVlKSAqICgxLjBGIC8gNDI5NDk2NzI5NS4wRikpOyBzICs9IHN0cmlkZTsgfSB9IGVsc2Ug
eyBjb25zdCBHTHVpbnQgKnMgPSAoY29uc3QgR0x1aW50ICopIHNyYzsgR0x1aW50IGk7IGZvciAo
aSA9IDA7IGkgPCBuOyBpKyspIHsgcmdiYVtpXVszXSA9IChHTGZsb2F0KSAoKEdMZmxvYXQpIChz
W2FscGhhSW5kZXhdKSAqICgxLjBGIC8gNDI5NDk2NzI5NS4wRikpOyBzICs9IHN0cmlkZTsgfSB9
OwogICAgICAgICBicmVhazsKICAgICAgY2FzZSAweDE0MDQ6CiAgICAgICAgIGlmICgocmVkSW5k
ZXgpIDwgMCkgeyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzBd
ID0gMC4wRjsgfSB9IGVsc2UgaWYgKHN3YXBCeXRlcykgeyBjb25zdCBHTGludCAqcyA9IChjb25z
dCBHTGludCAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IEdMaW50
IHZhbHVlID0gc1tyZWRJbmRleF07IGlmIChzaXplb2YoR0xpbnQpID09IDIpIHsgeyBHTHVieXRl
ICpieXRlcyA9IChHTHVieXRlICopICYodmFsdWUpOyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBi
eXRlc1swXSA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IHRtcDsgfTsgfSBlbHNlIGlmIChzaXplb2Yo
R0xpbnQpID09IDQpIHsgeyBHTHVieXRlICpieXRlcyA9IChHTHVieXRlICopICYodmFsdWUpOyBH
THVieXRlIHRtcCA9IGJ5dGVzWzBdOyBieXRlc1swXSA9IGJ5dGVzWzNdOyBieXRlc1szXSA9IHRt
cDsgdG1wID0gYnl0ZXNbMV07IGJ5dGVzWzFdID0gYnl0ZXNbMl07IGJ5dGVzWzJdID0gdG1wOyB9
OyB9IHJnYmFbaV1bMF0gPSAoR0xmbG9hdCkgKCgyLjBGICogKHZhbHVlKSArIDEuMEYpICogKDEu
MEYvNDI5NDk2NzI5NC4wRikpOyBzICs9IHN0cmlkZTsgfSB9IGVsc2UgeyBjb25zdCBHTGludCAq
cyA9IChjb25zdCBHTGludCAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsr
KSB7IHJnYmFbaV1bMF0gPSAoR0xmbG9hdCkgKCgyLjBGICogKHNbcmVkSW5kZXhdKSArIDEuMEYp
ICogKDEuMEYvNDI5NDk2NzI5NC4wRikpOyBzICs9IHN0cmlkZTsgfSB9OwogICAgICAgICBpZiAo
KGdyZWVuSW5kZXgpIDwgMCkgeyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyBy
Z2JhW2ldWzFdID0gMC4wRjsgfSB9IGVsc2UgaWYgKHN3YXBCeXRlcykgeyBjb25zdCBHTGludCAq
cyA9IChjb25zdCBHTGludCAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsr
KSB7IEdMaW50IHZhbHVlID0gc1tncmVlbkluZGV4XTsgaWYgKHNpemVvZihHTGludCkgPT0gMikg
eyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1ZSk7IEdMdWJ5dGUgdG1wID0g
Ynl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbMV07IGJ5dGVzWzFdID0gdG1wOyB9OyB9IGVsc2Ug
aWYgKHNpemVvZihHTGludCkgPT0gNCkgeyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikg
Jih2YWx1ZSk7IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbM107IGJ5
dGVzWzNdID0gdG1wOyB0bXAgPSBieXRlc1sxXTsgYnl0ZXNbMV0gPSBieXRlc1syXTsgYnl0ZXNb
Ml0gPSB0bXA7IH07IH0gcmdiYVtpXVsxXSA9IChHTGZsb2F0KSAoKDIuMEYgKiAodmFsdWUpICsg
MS4wRikgKiAoMS4wRi80Mjk0OTY3Mjk0LjBGKSk7IHMgKz0gc3RyaWRlOyB9IH0gZWxzZSB7IGNv
bnN0IEdMaW50ICpzID0gKGNvbnN0IEdMaW50ICopIHNyYzsgR0x1aW50IGk7IGZvciAoaSA9IDA7
IGkgPCBuOyBpKyspIHsgcmdiYVtpXVsxXSA9IChHTGZsb2F0KSAoKDIuMEYgKiAoc1tncmVlbklu
ZGV4XSkgKyAxLjBGKSAqICgxLjBGLzQyOTQ5NjcyOTQuMEYpKTsgcyArPSBzdHJpZGU7IH0gfTsK
ICAgICAgICAgaWYgKChibHVlSW5kZXgpIDwgMCkgeyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8
IG47IGkrKykgeyByZ2JhW2ldWzJdID0gMC4wRjsgfSB9IGVsc2UgaWYgKHN3YXBCeXRlcykgeyBj
b25zdCBHTGludCAqcyA9IChjb25zdCBHTGludCAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAw
OyBpIDwgbjsgaSsrKSB7IEdMaW50IHZhbHVlID0gc1tibHVlSW5kZXhdOyBpZiAoc2l6ZW9mKEdM
aW50KSA9PSAyKSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1
Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1sxXTsgYnl0ZXNbMV0gPSB0bXA7
IH07IH0gZWxzZSBpZiAoc2l6ZW9mKEdMaW50KSA9PSA0KSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAo
R0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBi
eXRlc1szXTsgYnl0ZXNbM10gPSB0bXA7IHRtcCA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IGJ5dGVz
WzJdOyBieXRlc1syXSA9IHRtcDsgfTsgfSByZ2JhW2ldWzJdID0gKEdMZmxvYXQpICgoMi4wRiAq
ICh2YWx1ZSkgKyAxLjBGKSAqICgxLjBGLzQyOTQ5NjcyOTQuMEYpKTsgcyArPSBzdHJpZGU7IH0g
fSBlbHNlIHsgY29uc3QgR0xpbnQgKnMgPSAoY29uc3QgR0xpbnQgKikgc3JjOyBHTHVpbnQgaTsg
Zm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzJdID0gKEdMZmxvYXQpICgoMi4wRiAq
IChzW2JsdWVJbmRleF0pICsgMS4wRikgKiAoMS4wRi80Mjk0OTY3Mjk0LjBGKSk7IHMgKz0gc3Ry
aWRlOyB9IH07CiAgICAgICAgIGlmICgoYWxwaGFJbmRleCkgPCAwKSB7IEdMdWludCBpOyBmb3Ig
KGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bM10gPSAxLjBGOyB9IH0gZWxzZSBpZiAoc3dh
cEJ5dGVzKSB7IGNvbnN0IEdMaW50ICpzID0gKGNvbnN0IEdMaW50ICopIHNyYzsgR0x1aW50IGk7
IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgR0xpbnQgdmFsdWUgPSBzW2FscGhhSW5kZXhdOyBp
ZiAoc2l6ZW9mKEdMaW50KSA9PSAyKSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAm
KHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1sxXTsgYnl0
ZXNbMV0gPSB0bXA7IH07IH0gZWxzZSBpZiAoc2l6ZW9mKEdMaW50KSA9PSA0KSB7IHsgR0x1Ynl0
ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsg
Ynl0ZXNbMF0gPSBieXRlc1szXTsgYnl0ZXNbM10gPSB0bXA7IHRtcCA9IGJ5dGVzWzFdOyBieXRl
c1sxXSA9IGJ5dGVzWzJdOyBieXRlc1syXSA9IHRtcDsgfTsgfSByZ2JhW2ldWzNdID0gKEdMZmxv
YXQpICgoMi4wRiAqICh2YWx1ZSkgKyAxLjBGKSAqICgxLjBGLzQyOTQ5NjcyOTQuMEYpKTsgcyAr
PSBzdHJpZGU7IH0gfSBlbHNlIHsgY29uc3QgR0xpbnQgKnMgPSAoY29uc3QgR0xpbnQgKikgc3Jj
OyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeyByZ2JhW2ldWzNdID0gKEdMZmxv
YXQpICgoMi4wRiAqIChzW2FscGhhSW5kZXhdKSArIDEuMEYpICogKDEuMEYvNDI5NDk2NzI5NC4w
RikpOyBzICs9IHN0cmlkZTsgfSB9OwogICAgICAgICBicmVhazsKICAgICAgY2FzZSAweDE0MDY6
CiAgICAgICAgIGlmICgocmVkSW5kZXgpIDwgMCkgeyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8
IG47IGkrKykgeyByZ2JhW2ldWzBdID0gMC4wRjsgfSB9IGVsc2UgaWYgKHN3YXBCeXRlcykgeyBj
b25zdCBHTGZsb2F0ICpzID0gKGNvbnN0IEdMZmxvYXQgKikgc3JjOyBHTHVpbnQgaTsgZm9yIChp
ID0gMDsgaSA8IG47IGkrKykgeyBHTGZsb2F0IHZhbHVlID0gc1tyZWRJbmRleF07IGlmIChzaXpl
b2YoR0xmbG9hdCkgPT0gMikgeyB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1
ZSk7IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbMV07IGJ5dGVzWzFd
ID0gdG1wOyB9OyB9IGVsc2UgaWYgKHNpemVvZihHTGZsb2F0KSA9PSA0KSB7IHsgR0x1Ynl0ZSAq
Ynl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0
ZXNbMF0gPSBieXRlc1szXTsgYnl0ZXNbM10gPSB0bXA7IHRtcCA9IGJ5dGVzWzFdOyBieXRlc1sx
XSA9IGJ5dGVzWzJdOyBieXRlc1syXSA9IHRtcDsgfTsgfSByZ2JhW2ldWzBdID0gKEdMZmxvYXQp
IChHTGZsb2F0KSh2YWx1ZSk7IHMgKz0gc3RyaWRlOyB9IH0gZWxzZSB7IGNvbnN0IEdMZmxvYXQg
KnMgPSAoY29uc3QgR0xmbG9hdCAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsg
aSsrKSB7IHJnYmFbaV1bMF0gPSAoR0xmbG9hdCkgKEdMZmxvYXQpKHNbcmVkSW5kZXhdKTsgcyAr
PSBzdHJpZGU7IH0gfTsKICAgICAgICAgaWYgKChncmVlbkluZGV4KSA8IDApIHsgR0x1aW50IGk7
IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgcmdiYVtpXVsxXSA9IDAuMEY7IH0gfSBlbHNlIGlm
IChzd2FwQnl0ZXMpIHsgY29uc3QgR0xmbG9hdCAqcyA9IChjb25zdCBHTGZsb2F0ICopIHNyYzsg
R0x1aW50IGk7IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsgR0xmbG9hdCB2YWx1ZSA9IHNbZ3Jl
ZW5JbmRleF07IGlmIChzaXplb2YoR0xmbG9hdCkgPT0gMikgeyB7IEdMdWJ5dGUgKmJ5dGVzID0g
KEdMdWJ5dGUgKikgJih2YWx1ZSk7IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0g
Ynl0ZXNbMV07IGJ5dGVzWzFdID0gdG1wOyB9OyB9IGVsc2UgaWYgKHNpemVvZihHTGZsb2F0KSA9
PSA0KSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAmKHZhbHVlKTsgR0x1Ynl0ZSB0
bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1szXTsgYnl0ZXNbM10gPSB0bXA7IHRtcCA9
IGJ5dGVzWzFdOyBieXRlc1sxXSA9IGJ5dGVzWzJdOyBieXRlc1syXSA9IHRtcDsgfTsgfSByZ2Jh
W2ldWzFdID0gKEdMZmxvYXQpIChHTGZsb2F0KSh2YWx1ZSk7IHMgKz0gc3RyaWRlOyB9IH0gZWxz
ZSB7IGNvbnN0IEdMZmxvYXQgKnMgPSAoY29uc3QgR0xmbG9hdCAqKSBzcmM7IEdMdWludCBpOyBm
b3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bMV0gPSAoR0xmbG9hdCkgKEdMZmxvYXQp
KHNbZ3JlZW5JbmRleF0pOyBzICs9IHN0cmlkZTsgfSB9OwogICAgICAgICBpZiAoKGJsdWVJbmRl
eCkgPCAwKSB7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bMl0g
PSAwLjBGOyB9IH0gZWxzZSBpZiAoc3dhcEJ5dGVzKSB7IGNvbnN0IEdMZmxvYXQgKnMgPSAoY29u
c3QgR0xmbG9hdCAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IEdM
ZmxvYXQgdmFsdWUgPSBzW2JsdWVJbmRleF07IGlmIChzaXplb2YoR0xmbG9hdCkgPT0gMikgeyB7
IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1ZSk7IEdMdWJ5dGUgdG1wID0gYnl0
ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbMV07IGJ5dGVzWzFdID0gdG1wOyB9OyB9IGVsc2UgaWYg
KHNpemVvZihHTGZsb2F0KSA9PSA0KSB7IHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1Ynl0ZSAqKSAm
KHZhbHVlKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1szXTsgYnl0
ZXNbM10gPSB0bXA7IHRtcCA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IGJ5dGVzWzJdOyBieXRlc1sy
XSA9IHRtcDsgfTsgfSByZ2JhW2ldWzJdID0gKEdMZmxvYXQpIChHTGZsb2F0KSh2YWx1ZSk7IHMg
Kz0gc3RyaWRlOyB9IH0gZWxzZSB7IGNvbnN0IEdMZmxvYXQgKnMgPSAoY29uc3QgR0xmbG9hdCAq
KSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7IHJnYmFbaV1bMl0gPSAo
R0xmbG9hdCkgKEdMZmxvYXQpKHNbYmx1ZUluZGV4XSk7IHMgKz0gc3RyaWRlOyB9IH07CiAgICAg
ICAgIGlmICgoYWxwaGFJbmRleCkgPCAwKSB7IEdMdWludCBpOyBmb3IgKGkgPSAwOyBpIDwgbjsg
aSsrKSB7IHJnYmFbaV1bM10gPSAxLjBGOyB9IH0gZWxzZSBpZiAoc3dhcEJ5dGVzKSB7IGNvbnN0
IEdMZmxvYXQgKnMgPSAoY29uc3QgR0xmbG9hdCAqKSBzcmM7IEdMdWludCBpOyBmb3IgKGkgPSAw
OyBpIDwgbjsgaSsrKSB7IEdMZmxvYXQgdmFsdWUgPSBzW2FscGhhSW5kZXhdOyBpZiAoc2l6ZW9m
KEdMZmxvYXQpID09IDIpIHsgeyBHTHVieXRlICpieXRlcyA9IChHTHVieXRlICopICYodmFsdWUp
OyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBieXRlc1swXSA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9
IHRtcDsgfTsgfSBlbHNlIGlmIChzaXplb2YoR0xmbG9hdCkgPT0gNCkgeyB7IEdMdWJ5dGUgKmJ5
dGVzID0gKEdMdWJ5dGUgKikgJih2YWx1ZSk7IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVz
WzBdID0gYnl0ZXNbM107IGJ5dGVzWzNdID0gdG1wOyB0bXAgPSBieXRlc1sxXTsgYnl0ZXNbMV0g
PSBieXRlc1syXTsgYnl0ZXNbMl0gPSB0bXA7IH07IH0gcmdiYVtpXVszXSA9IChHTGZsb2F0KSAo
R0xmbG9hdCkodmFsdWUpOyBzICs9IHN0cmlkZTsgfSB9IGVsc2UgeyBjb25zdCBHTGZsb2F0ICpz
ID0gKGNvbnN0IEdMZmxvYXQgKikgc3JjOyBHTHVpbnQgaTsgZm9yIChpID0gMDsgaSA8IG47IGkr
KykgeyByZ2JhW2ldWzNdID0gKEdMZmxvYXQpIChHTGZsb2F0KShzW2FscGhhSW5kZXhdKTsgcyAr
PSBzdHJpZGU7IH0gfTsKICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHg4MDMyOgogICAgICAg
ICB7CiAgICAgICAgICAgIGNvbnN0IEdMdWJ5dGUgKnVic3JjID0gKGNvbnN0IEdMdWJ5dGUgKikg
c3JjOwogICAgICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47
IGkgKyspIHsKICAgICAgICAgICAgICAgR0x1Ynl0ZSBwID0gdWJzcmNbaV07CiAgICAgICAgICAg
ICAgIHJnYmFbaV1bMF0gPSAoKHAgPj4gNSkgKSAqICgxLjBGIC8gNy4wRik7CiAgICAgICAgICAg
ICAgIHJnYmFbaV1bMV0gPSAoKHAgPj4gMikgJiAweDcpICogKDEuMEYgLyA3LjBGKTsKICAgICAg
ICAgICAgICAgcmdiYVtpXVsyXSA9ICgocCApICYgMHgzKSAqICgxLjBGIC8gMy4wRik7CiAgICAg
ICAgICAgICAgIHJnYmFbaV1bM10gPSAxLjBGOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHg4MzYyOgogICAgICAgICB7CiAgICAgICAgICAgIGNv
bnN0IEdMdWJ5dGUgKnVic3JjID0gKGNvbnN0IEdMdWJ5dGUgKikgc3JjOwogICAgICAgICAgICBH
THVpbnQgaTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkgKyspIHsKICAgICAgICAg
ICAgICAgR0x1Ynl0ZSBwID0gdWJzcmNbaV07CiAgICAgICAgICAgICAgIHJnYmFbaV1bMF0gPSAo
KHAgKSAmIDB4NykgKiAoMS4wRiAvIDcuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ldWzFdID0g
KChwID4+IDMpICYgMHg3KSAqICgxLjBGIC8gNy4wRik7CiAgICAgICAgICAgICAgIHJnYmFbaV1b
Ml0gPSAoKHAgPj4gNikgKSAqICgxLjBGIC8gMy4wRik7CiAgICAgICAgICAgICAgIHJnYmFbaV1b
M10gPSAxLjBGOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAg
IGNhc2UgMHg4MzYzOgogICAgICAgICBpZiAoc3dhcEJ5dGVzKSB7CiAgICAgICAgICAgIGNvbnN0
IEdMdXNob3J0ICp1c3NyYyA9IChjb25zdCBHTHVzaG9ydCAqKSBzcmM7CiAgICAgICAgICAgIEdM
dWludCBpOwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSArKykgewogICAgICAgICAg
ICAgICBHTHVzaG9ydCBwID0gdXNzcmNbaV07CiAgICAgICAgICAgICAgIHsgR0x1Ynl0ZSAqYnl0
ZXMgPSAoR0x1Ynl0ZSAqKSAmKHApOyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBieXRlc1swXSA9
IGJ5dGVzWzFdOyBieXRlc1sxXSA9IHRtcDsgfTsKICAgICAgICAgICAgICAgcmdiYVtpXVswXSA9
ICgocCA+PiAxMSkgKSAqICgxLjBGIC8gMzEuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ldWzFd
ID0gKChwID4+IDUpICYgMHgzZikgKiAoMS4wRiAvIDYzLjBGKTsKICAgICAgICAgICAgICAgcmdi
YVtpXVsyXSA9ICgocCApICYgMHgxZikgKiAoMS4wRiAvIDMxLjBGKTsKICAgICAgICAgICAgICAg
cmdiYVtpXVszXSA9IDEuMEY7CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgY29uc3QgR0x1c2hvcnQgKnVzc3JjID0gKGNvbnN0IEdMdXNob3J0ICop
IHNyYzsKICAgICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBu
OyBpICsrKSB7CiAgICAgICAgICAgICAgIEdMdXNob3J0IHAgPSB1c3NyY1tpXTsKICAgICAgICAg
ICAgICAgcmdiYVtpXVswXSA9ICgocCA+PiAxMSkgKSAqICgxLjBGIC8gMzEuMEYpOwogICAgICAg
ICAgICAgICByZ2JhW2ldWzFdID0gKChwID4+IDUpICYgMHgzZikgKiAoMS4wRiAvIDYzLjBGKTsK
ICAgICAgICAgICAgICAgcmdiYVtpXVsyXSA9ICgocCApICYgMHgxZikgKiAoMS4wRiAvIDMxLjBG
KTsKICAgICAgICAgICAgICAgcmdiYVtpXVszXSA9IDEuMEY7CiAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICBicmVhazsKICAgICAgY2FzZSAweDgzNjQ6CiAgICAgICAgIGlmIChzd2Fw
Qnl0ZXMpIHsKICAgICAgICAgICAgY29uc3QgR0x1c2hvcnQgKnVzc3JjID0gKGNvbnN0IEdMdXNo
b3J0ICopIHNyYzsKICAgICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgICAgIGZvciAoaSA9IDA7
IGkgPCBuOyBpICsrKSB7CiAgICAgICAgICAgICAgIEdMdXNob3J0IHAgPSB1c3NyY1tpXTsKICAg
ICAgICAgICAgICAgeyBHTHVieXRlICpieXRlcyA9IChHTHVieXRlICopICYocCk7IEdMdWJ5dGUg
dG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbMV07IGJ5dGVzWzFdID0gdG1wOyB9Owog
ICAgICAgICAgICAgICByZ2JhW2ldWzBdID0gKChwICkgJiAweDFmKSAqICgxLjBGIC8gMzEuMEYp
OwogICAgICAgICAgICAgICByZ2JhW2ldWzFdID0gKChwID4+IDUpICYgMHgzZikgKiAoMS4wRiAv
IDYzLjBGKTsKICAgICAgICAgICAgICAgcmdiYVtpXVsyXSA9ICgocCA+PiAxMSkgKSAqICgxLjBG
IC8gMzEuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ldWzNdID0gMS4wRjsKICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICBjb25zdCBHTHVzaG9ydCAq
dXNzcmMgPSAoY29uc3QgR0x1c2hvcnQgKikgc3JjOwogICAgICAgICAgICBHTHVpbnQgaTsKICAg
ICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkgKyspIHsKICAgICAgICAgICAgICAgR0x1c2hv
cnQgcCA9IHVzc3JjW2ldOwogICAgICAgICAgICAgICByZ2JhW2ldWzBdID0gKChwICkgJiAweDFm
KSAqICgxLjBGIC8gMzEuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ldWzFdID0gKChwID4+IDUp
ICYgMHgzZikgKiAoMS4wRiAvIDYzLjBGKTsKICAgICAgICAgICAgICAgcmdiYVtpXVsyXSA9ICgo
cCA+PiAxMSkgKSAqICgxLjBGIC8gMzEuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ldWzNdID0g
MS4wRjsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNl
IDB4ODAzMzoKICAgICAgICAgaWYgKHN3YXBCeXRlcykgewogICAgICAgICAgICBjb25zdCBHTHVz
aG9ydCAqdXNzcmMgPSAoY29uc3QgR0x1c2hvcnQgKikgc3JjOwogICAgICAgICAgICBHTHVpbnQg
aTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkgKyspIHsKICAgICAgICAgICAgICAg
R0x1c2hvcnQgcCA9IHVzc3JjW2ldOwogICAgICAgICAgICAgICB7IEdMdWJ5dGUgKmJ5dGVzID0g
KEdMdWJ5dGUgKikgJihwKTsgR0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRl
c1sxXTsgYnl0ZXNbMV0gPSB0bXA7IH07CiAgICAgICAgICAgICAgIHJnYmFbaV1bckNvbXBdID0g
KChwID4+IDEyKSApICogKDEuMEYgLyAxNS4wRik7CiAgICAgICAgICAgICAgIHJnYmFbaV1bZ0Nv
bXBdID0gKChwID4+IDgpICYgMHhmKSAqICgxLjBGIC8gMTUuMEYpOwogICAgICAgICAgICAgICBy
Z2JhW2ldW2JDb21wXSA9ICgocCA+PiA0KSAmIDB4ZikgKiAoMS4wRiAvIDE1LjBGKTsKICAgICAg
ICAgICAgICAgcmdiYVtpXVthQ29tcF0gPSAoKHAgKSAmIDB4ZikgKiAoMS4wRiAvIDE1LjBGKTsK
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICBjb25z
dCBHTHVzaG9ydCAqdXNzcmMgPSAoY29uc3QgR0x1c2hvcnQgKikgc3JjOwogICAgICAgICAgICBH
THVpbnQgaTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkgKyspIHsKICAgICAgICAg
ICAgICAgR0x1c2hvcnQgcCA9IHVzc3JjW2ldOwogICAgICAgICAgICAgICByZ2JhW2ldW3JDb21w
XSA9ICgocCA+PiAxMikgKSAqICgxLjBGIC8gMTUuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ld
W2dDb21wXSA9ICgocCA+PiA4KSAmIDB4ZikgKiAoMS4wRiAvIDE1LjBGKTsKICAgICAgICAgICAg
ICAgcmdiYVtpXVtiQ29tcF0gPSAoKHAgPj4gNCkgJiAweGYpICogKDEuMEYgLyAxNS4wRik7CiAg
ICAgICAgICAgICAgIHJnYmFbaV1bYUNvbXBdID0gKChwICkgJiAweGYpICogKDEuMEYgLyAxNS4w
Rik7CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICAgY2FzZSAw
eDgzNjU6CiAgICAgICAgIGlmIChzd2FwQnl0ZXMpIHsKICAgICAgICAgICAgY29uc3QgR0x1c2hv
cnQgKnVzc3JjID0gKGNvbnN0IEdMdXNob3J0ICopIHNyYzsKICAgICAgICAgICAgR0x1aW50IGk7
CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpICsrKSB7CiAgICAgICAgICAgICAgIEdM
dXNob3J0IHAgPSB1c3NyY1tpXTsKICAgICAgICAgICAgICAgeyBHTHVieXRlICpieXRlcyA9IChH
THVieXRlICopICYocCk7IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNb
MV07IGJ5dGVzWzFdID0gdG1wOyB9OwogICAgICAgICAgICAgICByZ2JhW2ldW3JDb21wXSA9ICgo
cCApICYgMHhmKSAqICgxLjBGIC8gMTUuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ldW2dDb21w
XSA9ICgocCA+PiA0KSAmIDB4ZikgKiAoMS4wRiAvIDE1LjBGKTsKICAgICAgICAgICAgICAgcmdi
YVtpXVtiQ29tcF0gPSAoKHAgPj4gOCkgJiAweGYpICogKDEuMEYgLyAxNS4wRik7CiAgICAgICAg
ICAgICAgIHJnYmFbaV1bYUNvbXBdID0gKChwID4+IDEyKSApICogKDEuMEYgLyAxNS4wRik7CiAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgY29uc3Qg
R0x1c2hvcnQgKnVzc3JjID0gKGNvbnN0IEdMdXNob3J0ICopIHNyYzsKICAgICAgICAgICAgR0x1
aW50IGk7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpICsrKSB7CiAgICAgICAgICAg
ICAgIEdMdXNob3J0IHAgPSB1c3NyY1tpXTsKICAgICAgICAgICAgICAgcmdiYVtpXVtyQ29tcF0g
PSAoKHAgKSAmIDB4ZikgKiAoMS4wRiAvIDE1LjBGKTsKICAgICAgICAgICAgICAgcmdiYVtpXVtn
Q29tcF0gPSAoKHAgPj4gNCkgJiAweGYpICogKDEuMEYgLyAxNS4wRik7CiAgICAgICAgICAgICAg
IHJnYmFbaV1bYkNvbXBdID0gKChwID4+IDgpICYgMHhmKSAqICgxLjBGIC8gMTUuMEYpOwogICAg
ICAgICAgICAgICByZ2JhW2ldW2FDb21wXSA9ICgocCA+PiAxMikgKSAqICgxLjBGIC8gMTUuMEYp
OwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHg4
MDM0OgogICAgICAgICBpZiAoc3dhcEJ5dGVzKSB7CiAgICAgICAgICAgIGNvbnN0IEdMdXNob3J0
ICp1c3NyYyA9IChjb25zdCBHTHVzaG9ydCAqKSBzcmM7CiAgICAgICAgICAgIEdMdWludCBpOwog
ICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSArKykgewogICAgICAgICAgICAgICBHTHVz
aG9ydCBwID0gdXNzcmNbaV07CiAgICAgICAgICAgICAgIHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1
Ynl0ZSAqKSAmKHApOyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBieXRlc1swXSA9IGJ5dGVzWzFd
OyBieXRlc1sxXSA9IHRtcDsgfTsKICAgICAgICAgICAgICAgcmdiYVtpXVtyQ29tcF0gPSAoKHAg
Pj4gMTEpICkgKiAoMS4wRiAvIDMxLjBGKTsKICAgICAgICAgICAgICAgcmdiYVtpXVtnQ29tcF0g
PSAoKHAgPj4gNikgJiAweDFmKSAqICgxLjBGIC8gMzEuMEYpOwogICAgICAgICAgICAgICByZ2Jh
W2ldW2JDb21wXSA9ICgocCA+PiAxKSAmIDB4MWYpICogKDEuMEYgLyAzMS4wRik7CiAgICAgICAg
ICAgICAgIHJnYmFbaV1bYUNvbXBdID0gKChwICkgJiAweDEpICogKDEuMEYgLyAxLjBGKTsKICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICBjb25zdCBH
THVzaG9ydCAqdXNzcmMgPSAoY29uc3QgR0x1c2hvcnQgKikgc3JjOwogICAgICAgICAgICBHTHVp
bnQgaTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkgKyspIHsKICAgICAgICAgICAg
ICAgR0x1c2hvcnQgcCA9IHVzc3JjW2ldOwogICAgICAgICAgICAgICByZ2JhW2ldW3JDb21wXSA9
ICgocCA+PiAxMSkgKSAqICgxLjBGIC8gMzEuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ldW2dD
b21wXSA9ICgocCA+PiA2KSAmIDB4MWYpICogKDEuMEYgLyAzMS4wRik7CiAgICAgICAgICAgICAg
IHJnYmFbaV1bYkNvbXBdID0gKChwID4+IDEpICYgMHgxZikgKiAoMS4wRiAvIDMxLjBGKTsKICAg
ICAgICAgICAgICAgcmdiYVtpXVthQ29tcF0gPSAoKHAgKSAmIDB4MSkgKiAoMS4wRiAvIDEuMEYp
OwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHg4
MzY2OgogICAgICAgICBpZiAoc3dhcEJ5dGVzKSB7CiAgICAgICAgICAgIGNvbnN0IEdMdXNob3J0
ICp1c3NyYyA9IChjb25zdCBHTHVzaG9ydCAqKSBzcmM7CiAgICAgICAgICAgIEdMdWludCBpOwog
ICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSArKykgewogICAgICAgICAgICAgICBHTHVz
aG9ydCBwID0gdXNzcmNbaV07CiAgICAgICAgICAgICAgIHsgR0x1Ynl0ZSAqYnl0ZXMgPSAoR0x1
Ynl0ZSAqKSAmKHApOyBHTHVieXRlIHRtcCA9IGJ5dGVzWzBdOyBieXRlc1swXSA9IGJ5dGVzWzFd
OyBieXRlc1sxXSA9IHRtcDsgfTsKICAgICAgICAgICAgICAgcmdiYVtpXVtyQ29tcF0gPSAoKHAg
KSAmIDB4MWYpICogKDEuMEYgLyAzMS4wRik7CiAgICAgICAgICAgICAgIHJnYmFbaV1bZ0NvbXBd
ID0gKChwID4+IDUpICYgMHgxZikgKiAoMS4wRiAvIDMxLjBGKTsKICAgICAgICAgICAgICAgcmdi
YVtpXVtiQ29tcF0gPSAoKHAgPj4gMTApICYgMHgxZikgKiAoMS4wRiAvIDMxLjBGKTsKICAgICAg
ICAgICAgICAgcmdiYVtpXVthQ29tcF0gPSAoKHAgPj4gMTUpICkgKiAoMS4wRiAvIDEuMEYpOwog
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGNvbnN0
IEdMdXNob3J0ICp1c3NyYyA9IChjb25zdCBHTHVzaG9ydCAqKSBzcmM7CiAgICAgICAgICAgIEdM
dWludCBpOwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSArKykgewogICAgICAgICAg
ICAgICBHTHVzaG9ydCBwID0gdXNzcmNbaV07CiAgICAgICAgICAgICAgIHJnYmFbaV1bckNvbXBd
ID0gKChwICkgJiAweDFmKSAqICgxLjBGIC8gMzEuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ld
W2dDb21wXSA9ICgocCA+PiA1KSAmIDB4MWYpICogKDEuMEYgLyAzMS4wRik7CiAgICAgICAgICAg
ICAgIHJnYmFbaV1bYkNvbXBdID0gKChwID4+IDEwKSAmIDB4MWYpICogKDEuMEYgLyAzMS4wRik7
CiAgICAgICAgICAgICAgIHJnYmFbaV1bYUNvbXBdID0gKChwID4+IDE1KSApICogKDEuMEYgLyAx
LjBGKTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNl
IDB4ODAzNToKICAgICAgICAgaWYgKHN3YXBCeXRlcykgewogICAgICAgICAgICBjb25zdCBHTHVp
bnQgKnVpc3JjID0gKGNvbnN0IEdMdWludCAqKSBzcmM7CiAgICAgICAgICAgIEdMdWludCBpOwog
ICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSArKykgewogICAgICAgICAgICAgICBHTHVp
bnQgcCA9IHVpc3JjW2ldOwogICAgICAgICAgICAgICByZ2JhW2ldW3JDb21wXSA9IF9tZXNhX3Vi
eXRlX3RvX2Zsb2F0X2NvbG9yX3RhYlsodW5zaWduZWQgaW50KSgocCApICYgMHhmZildOwogICAg
ICAgICAgICAgICByZ2JhW2ldW2dDb21wXSA9IF9tZXNhX3VieXRlX3RvX2Zsb2F0X2NvbG9yX3Rh
YlsodW5zaWduZWQgaW50KSgocCA+PiA4KSAmIDB4ZmYpXTsKICAgICAgICAgICAgICAgcmdiYVtp
XVtiQ29tcF0gPSBfbWVzYV91Ynl0ZV90b19mbG9hdF9jb2xvcl90YWJbKHVuc2lnbmVkIGludCko
KHAgPj4gMTYpICYgMHhmZildOwogICAgICAgICAgICAgICByZ2JhW2ldW2FDb21wXSA9IF9tZXNh
X3VieXRlX3RvX2Zsb2F0X2NvbG9yX3RhYlsodW5zaWduZWQgaW50KSgocCA+PiAyNCkpXTsKICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICBjb25zdCBH
THVpbnQgKnVpc3JjID0gKGNvbnN0IEdMdWludCAqKSBzcmM7CiAgICAgICAgICAgIEdMdWludCBp
OwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSArKykgewogICAgICAgICAgICAgICBH
THVpbnQgcCA9IHVpc3JjW2ldOwogICAgICAgICAgICAgICByZ2JhW2ldW3JDb21wXSA9IF9tZXNh
X3VieXRlX3RvX2Zsb2F0X2NvbG9yX3RhYlsodW5zaWduZWQgaW50KSgocCA+PiAyNCkpXTsKICAg
ICAgICAgICAgICAgcmdiYVtpXVtnQ29tcF0gPSBfbWVzYV91Ynl0ZV90b19mbG9hdF9jb2xvcl90
YWJbKHVuc2lnbmVkIGludCkoKHAgPj4gMTYpICYgMHhmZildOwogICAgICAgICAgICAgICByZ2Jh
W2ldW2JDb21wXSA9IF9tZXNhX3VieXRlX3RvX2Zsb2F0X2NvbG9yX3RhYlsodW5zaWduZWQgaW50
KSgocCA+PiA4KSAmIDB4ZmYpXTsKICAgICAgICAgICAgICAgcmdiYVtpXVthQ29tcF0gPSBfbWVz
YV91Ynl0ZV90b19mbG9hdF9jb2xvcl90YWJbKHVuc2lnbmVkIGludCkoKHAgKSAmIDB4ZmYpXTsK
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4ODM2
NzoKICAgICAgICAgaWYgKHN3YXBCeXRlcykgewogICAgICAgICAgICBjb25zdCBHTHVpbnQgKnVp
c3JjID0gKGNvbnN0IEdMdWludCAqKSBzcmM7CiAgICAgICAgICAgIEdMdWludCBpOwogICAgICAg
ICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSArKykgewogICAgICAgICAgICAgICBHTHVpbnQgcCA9
IHVpc3JjW2ldOwogICAgICAgICAgICAgICByZ2JhW2ldW3JDb21wXSA9IF9tZXNhX3VieXRlX3Rv
X2Zsb2F0X2NvbG9yX3RhYlsodW5zaWduZWQgaW50KSgocCA+PiAyNCkpXTsKICAgICAgICAgICAg
ICAgcmdiYVtpXVtnQ29tcF0gPSBfbWVzYV91Ynl0ZV90b19mbG9hdF9jb2xvcl90YWJbKHVuc2ln
bmVkIGludCkoKHAgPj4gMTYpICYgMHhmZildOwogICAgICAgICAgICAgICByZ2JhW2ldW2JDb21w
XSA9IF9tZXNhX3VieXRlX3RvX2Zsb2F0X2NvbG9yX3RhYlsodW5zaWduZWQgaW50KSgocCA+PiA4
KSAmIDB4ZmYpXTsKICAgICAgICAgICAgICAgcmdiYVtpXVthQ29tcF0gPSBfbWVzYV91Ynl0ZV90
b19mbG9hdF9jb2xvcl90YWJbKHVuc2lnbmVkIGludCkoKHAgKSAmIDB4ZmYpXTsKICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICBjb25zdCBHTHVpbnQg
KnVpc3JjID0gKGNvbnN0IEdMdWludCAqKSBzcmM7CiAgICAgICAgICAgIEdMdWludCBpOwogICAg
ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSArKykgewogICAgICAgICAgICAgICBHTHVpbnQg
cCA9IHVpc3JjW2ldOwogICAgICAgICAgICAgICByZ2JhW2ldW3JDb21wXSA9IF9tZXNhX3VieXRl
X3RvX2Zsb2F0X2NvbG9yX3RhYlsodW5zaWduZWQgaW50KSgocCApICYgMHhmZildOwogICAgICAg
ICAgICAgICByZ2JhW2ldW2dDb21wXSA9IF9tZXNhX3VieXRlX3RvX2Zsb2F0X2NvbG9yX3RhYlso
dW5zaWduZWQgaW50KSgocCA+PiA4KSAmIDB4ZmYpXTsKICAgICAgICAgICAgICAgcmdiYVtpXVti
Q29tcF0gPSBfbWVzYV91Ynl0ZV90b19mbG9hdF9jb2xvcl90YWJbKHVuc2lnbmVkIGludCkoKHAg
Pj4gMTYpICYgMHhmZildOwogICAgICAgICAgICAgICByZ2JhW2ldW2FDb21wXSA9IF9tZXNhX3Vi
eXRlX3RvX2Zsb2F0X2NvbG9yX3RhYlsodW5zaWduZWQgaW50KSgocCA+PiAyNCkpXTsKICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4ODAzNjoKICAg
ICAgICAgaWYgKHN3YXBCeXRlcykgewogICAgICAgICAgICBjb25zdCBHTHVpbnQgKnVpc3JjID0g
KGNvbnN0IEdMdWludCAqKSBzcmM7CiAgICAgICAgICAgIEdMdWludCBpOwogICAgICAgICAgICBm
b3IgKGkgPSAwOyBpIDwgbjsgaSArKykgewogICAgICAgICAgICAgICBHTHVpbnQgcCA9IHVpc3Jj
W2ldOwogICAgICAgICAgICAgICB7IEdMdWJ5dGUgKmJ5dGVzID0gKEdMdWJ5dGUgKikgJihwKTsg
R0x1Ynl0ZSB0bXAgPSBieXRlc1swXTsgYnl0ZXNbMF0gPSBieXRlc1szXTsgYnl0ZXNbM10gPSB0
bXA7IHRtcCA9IGJ5dGVzWzFdOyBieXRlc1sxXSA9IGJ5dGVzWzJdOyBieXRlc1syXSA9IHRtcDsg
fTsKICAgICAgICAgICAgICAgcmdiYVtpXVtyQ29tcF0gPSAoKHAgPj4gMjIpICkgKiAoMS4wRiAv
IDEwMjMuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ldW2dDb21wXSA9ICgocCA+PiAxMikgJiAw
eDNmZikgKiAoMS4wRiAvIDEwMjMuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ldW2JDb21wXSA9
ICgocCA+PiAyKSAmIDB4M2ZmKSAqICgxLjBGIC8gMTAyMy4wRik7CiAgICAgICAgICAgICAgIHJn
YmFbaV1bYUNvbXBdID0gKChwICkgJiAweDMgKSAqICgxLjBGIC8gMy4wRik7CiAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgY29uc3QgR0x1aW50ICp1
aXNyYyA9IChjb25zdCBHTHVpbnQgKikgc3JjOwogICAgICAgICAgICBHTHVpbnQgaTsKICAgICAg
ICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkgKyspIHsKICAgICAgICAgICAgICAgR0x1aW50IHAg
PSB1aXNyY1tpXTsKICAgICAgICAgICAgICAgcmdiYVtpXVtyQ29tcF0gPSAoKHAgPj4gMjIpICkg
KiAoMS4wRiAvIDEwMjMuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ldW2dDb21wXSA9ICgocCA+
PiAxMikgJiAweDNmZikgKiAoMS4wRiAvIDEwMjMuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ld
W2JDb21wXSA9ICgocCA+PiAyKSAmIDB4M2ZmKSAqICgxLjBGIC8gMTAyMy4wRik7CiAgICAgICAg
ICAgICAgIHJnYmFbaV1bYUNvbXBdID0gKChwICkgJiAweDMgKSAqICgxLjBGIC8gMy4wRik7CiAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICAgY2FzZSAweDgzNjg6
CiAgICAgICAgIGlmIChzd2FwQnl0ZXMpIHsKICAgICAgICAgICAgY29uc3QgR0x1aW50ICp1aXNy
YyA9IChjb25zdCBHTHVpbnQgKikgc3JjOwogICAgICAgICAgICBHTHVpbnQgaTsKICAgICAgICAg
ICAgZm9yIChpID0gMDsgaSA8IG47IGkgKyspIHsKICAgICAgICAgICAgICAgR0x1aW50IHAgPSB1
aXNyY1tpXTsKICAgICAgICAgICAgICAgeyBHTHVieXRlICpieXRlcyA9IChHTHVieXRlICopICYo
cCk7IEdMdWJ5dGUgdG1wID0gYnl0ZXNbMF07IGJ5dGVzWzBdID0gYnl0ZXNbM107IGJ5dGVzWzNd
ID0gdG1wOyB0bXAgPSBieXRlc1sxXTsgYnl0ZXNbMV0gPSBieXRlc1syXTsgYnl0ZXNbMl0gPSB0
bXA7IH07CiAgICAgICAgICAgICAgIHJnYmFbaV1bckNvbXBdID0gKChwICkgJiAweDNmZikgKiAo
MS4wRiAvIDEwMjMuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ldW2dDb21wXSA9ICgocCA+PiAx
MCkgJiAweDNmZikgKiAoMS4wRiAvIDEwMjMuMEYpOwogICAgICAgICAgICAgICByZ2JhW2ldW2JD
b21wXSA9ICgocCA+PiAyMCkgJiAweDNmZikgKiAoMS4wRiAvIDEwMjMuMEYpOwogICAgICAgICAg
ICAgICByZ2JhW2ldW2FDb21wXSA9ICgocCA+PiAzMCkgKSAqICgxLjBGIC8gMy4wRik7CiAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgY29uc3QgR0x1
aW50ICp1aXNyYyA9IChjb25zdCBHTHVpbnQgKikgc3JjOwogICAgICAgICAgICBHTHVpbnQgaTsK
ICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkgKyspIHsKICAgICAgICAgICAgICAgR0x1
aW50IHAgPSB1aXNyY1tpXTsKICAgICAgICAgICAgICAgcmdiYVtpXVtyQ29tcF0gPSAoKHAgKSAm
IDB4M2ZmKSAqICgxLjBGIC8gMTAyMy4wRik7CiAgICAgICAgICAgICAgIHJnYmFbaV1bZ0NvbXBd
ID0gKChwID4+IDEwKSAmIDB4M2ZmKSAqICgxLjBGIC8gMTAyMy4wRik7CiAgICAgICAgICAgICAg
IHJnYmFbaV1bYkNvbXBdID0gKChwID4+IDIwKSAmIDB4M2ZmKSAqICgxLjBGIC8gMTAyMy4wRik7
CiAgICAgICAgICAgICAgIHJnYmFbaV1bYUNvbXBdID0gKChwID4+IDMwKSApICogKDEuMEYgLyAz
LjBGKTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBkZWZh
dWx0OgogICAgICAgICBfbWVzYV9wcm9ibGVtKDAsICJiYWQgc3JjVHlwZSBpbiBleHRyYWN0IGZs
b2F0IGRhdGEiKTsKICAgICAgICAgYnJlYWs7CiAgIH0KfQojIDI1NTQgImltYWdlLmMiCnZvaWQK
X21lc2FfdW5wYWNrX2NoYW5fY29sb3Jfc3BhbiggR0xjb250ZXh0ICpjdHgsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdMdWludCBuLCBHTGVudW0gZHN0Rm9ybWF0LCBHTGNoYW4gZGVz
dFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gc3JjRm9ybWF0LCBHTGVu
dW0gc3JjVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR0x2b2lkICpz
b3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBnbF9waXhl
bHN0b3JlX2F0dHJpYiAqc3JjUGFja2luZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R0x1aW50IHRyYW5zZmVyT3BzICkKewogICA7CgoKCgoKCgogICA7CiMgMjU4NCAiaW1hZ2UuYyIK
ICAgOwojIDI2MDYgImltYWdlLmMiCiAgIGlmICh0cmFuc2Zlck9wcyA9PSAwICl7CiAgICAgIGlm
IChzcmNUeXBlID09IDB4MTQwMSkgewogICAgICAgICBpZiAoZHN0Rm9ybWF0ID09IDB4MTkwOCkg
ewogICAgICAgICAgICBpZiAoc3JjRm9ybWF0ID09IDB4MTkwOCkgewogICAgICAgICAgICAgICBf
bWVzYV9tZW1jcHkoZGVzdCwgc291cmNlLCBuICogNCAqIHNpemVvZihHTGNoYW4pKTsKICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKHNyY0Zv
cm1hdCA9PSAweDE5MDcpIHsKICAgICAgICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgICAgICAg
IGNvbnN0IEdMY2hhbiAqc3JjID0gKGNvbnN0IEdMY2hhbiAqKSBzb3VyY2U7CiAgICAgICAgICAg
ICAgIEdMY2hhbiAqZHN0ID0gZGVzdDsKICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47
IGkrKykgewogICAgICAgICAgICAgICAgICBkc3RbMF0gPSBzcmNbMF07CiAgICAgICAgICAgICAg
ICAgIGRzdFsxXSA9IHNyY1sxXTsKICAgICAgICAgICAgICAgICAgZHN0WzJdID0gc3JjWzJdOwog
ICAgICAgICAgICAgICAgICBkc3RbM10gPSAyNTU7CiAgICAgICAgICAgICAgICAgIHNyYyArPSAz
OwogICAgICAgICAgICAgICAgICBkc3QgKz0gNDsKICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChk
c3RGb3JtYXQgPT0gMHgxOTA3KSB7CiAgICAgICAgICAgIGlmIChzcmNGb3JtYXQgPT0gMHgxOTA3
KSB7CiAgICAgICAgICAgICAgIF9tZXNhX21lbWNweShkZXN0LCBzb3VyY2UsIG4gKiAzICogc2l6
ZW9mKEdMY2hhbikpOwogICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAg
ICAgICAgZWxzZSBpZiAoc3JjRm9ybWF0ID09IDB4MTkwOCkgewogICAgICAgICAgICAgICBHTHVp
bnQgaTsKICAgICAgICAgICAgICAgY29uc3QgR0xjaGFuICpzcmMgPSAoY29uc3QgR0xjaGFuICop
IHNvdXJjZTsKICAgICAgICAgICAgICAgR0xjaGFuICpkc3QgPSBkZXN0OwogICAgICAgICAgICAg
ICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIGRzdFswXSA9IHNy
Y1swXTsKICAgICAgICAgICAgICAgICAgZHN0WzFdID0gc3JjWzFdOwogICAgICAgICAgICAgICAg
ICBkc3RbMl0gPSBzcmNbMl07CiAgICAgICAgICAgICAgICAgIHNyYyArPSA0OwogICAgICAgICAg
ICAgICAgICBkc3QgKz0gMzsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChkc3RGb3JtYXQgPT0g
c3JjRm9ybWF0KSB7CiAgICAgICAgICAgIEdMaW50IGNvbXBzID0gX21lc2FfY29tcG9uZW50c19p
bl9mb3JtYXQoc3JjRm9ybWF0KTsKICAgICAgICAgICAgKCh2b2lkKSAoKGNvbXBzID4gMCkgPyAw
IDogKF9fZXByaW50ZiAoIiVzOiV1OiBmYWlsZWQgYXNzZXJ0aW9uIGAlcydcbiIsICJpbWFnZS5j
IiwgMjY0OSwgImNvbXBzID4gMCIpLCAwKSkpOwogICAgICAgICAgICBfbWVzYV9tZW1jcHkoZGVz
dCwgc291cmNlLCBuICogY29tcHMgKiBzaXplb2YoR0xjaGFuKSk7CiAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgICB9CgoKCgogICAgICBlbHNlIGlmIChzcmNUeXBlID09IDB4MTQw
MSkgewogICAgICAgICBpZiAoZHN0Rm9ybWF0ID09IDB4MTkwOCkgewogICAgICAgICAgICBpZiAo
c3JjRm9ybWF0ID09IDB4MTkwNykgewogICAgICAgICAgICAgICBHTHVpbnQgaTsKICAgICAgICAg
ICAgICAgY29uc3QgR0x1Ynl0ZSAqc3JjID0gKGNvbnN0IEdMdWJ5dGUgKikgc291cmNlOwogICAg
ICAgICAgICAgICBHTGNoYW4gKmRzdCA9IGRlc3Q7CiAgICAgICAgICAgICAgIGZvciAoaSA9IDA7
IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgICAgICAgZHN0WzBdID0gKHNyY1swXSk7CiAgICAg
ICAgICAgICAgICAgIGRzdFsxXSA9IChzcmNbMV0pOwogICAgICAgICAgICAgICAgICBkc3RbMl0g
PSAoc3JjWzJdKTsKICAgICAgICAgICAgICAgICAgZHN0WzNdID0gMjU1OwogICAgICAgICAgICAg
ICAgICBzcmMgKz0gMzsKICAgICAgICAgICAgICAgICAgZHN0ICs9IDQ7CiAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2Ug
aWYgKHNyY0Zvcm1hdCA9PSAweDE5MDgpIHsKICAgICAgICAgICAgICAgR0x1aW50IGk7CiAgICAg
ICAgICAgICAgIGNvbnN0IEdMdWJ5dGUgKnNyYyA9IChjb25zdCBHTHVieXRlICopIHNvdXJjZTsK
ICAgICAgICAgICAgICAgR0xjaGFuICpkc3QgPSBkZXN0OwogICAgICAgICAgICAgICBmb3IgKGkg
PSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIGRzdFswXSA9IChzcmNbMF0pOwog
ICAgICAgICAgICAgICAgICBkc3RbMV0gPSAoc3JjWzFdKTsKICAgICAgICAgICAgICAgICAgZHN0
WzJdID0gKHNyY1syXSk7CiAgICAgICAgICAgICAgICAgIGRzdFszXSA9IChzcmNbM10pOwogICAg
ICAgICAgICAgICAgICBzcmMgKz0gNDsKICAgICAgICAgICAgICAgICAgZHN0ICs9IDQ7CiAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgICAgIGVsc2UgaWYgKGRzdEZvcm1hdCA9PSAweDE5MDcpIHsKICAgICAgICAgICAg
aWYgKHNyY0Zvcm1hdCA9PSAweDE5MDcpIHsKICAgICAgICAgICAgICAgR0x1aW50IGk7CiAgICAg
ICAgICAgICAgIGNvbnN0IEdMdWJ5dGUgKnNyYyA9IChjb25zdCBHTHVieXRlICopIHNvdXJjZTsK
ICAgICAgICAgICAgICAgR0xjaGFuICpkc3QgPSBkZXN0OwogICAgICAgICAgICAgICBmb3IgKGkg
PSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIGRzdFswXSA9IChzcmNbMF0pOwog
ICAgICAgICAgICAgICAgICBkc3RbMV0gPSAoc3JjWzFdKTsKICAgICAgICAgICAgICAgICAgZHN0
WzJdID0gKHNyY1syXSk7CiAgICAgICAgICAgICAgICAgIHNyYyArPSAzOwogICAgICAgICAgICAg
ICAgICBkc3QgKz0gMzsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoc3JjRm9ybWF0ID09IDB4MTkwOCkgewog
ICAgICAgICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgICAgICAgY29uc3QgR0x1Ynl0ZSAqc3Jj
ID0gKGNvbnN0IEdMdWJ5dGUgKikgc291cmNlOwogICAgICAgICAgICAgICBHTGNoYW4gKmRzdCA9
IGRlc3Q7CiAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAg
ICAgICAgICAgZHN0WzBdID0gKHNyY1swXSk7CiAgICAgICAgICAgICAgICAgIGRzdFsxXSA9IChz
cmNbMV0pOwogICAgICAgICAgICAgICAgICBkc3RbMl0gPSAoc3JjWzJdKTsKICAgICAgICAgICAg
ICAgICAgc3JjICs9IDQ7CiAgICAgICAgICAgICAgICAgIGRzdCArPSAzOwogICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
IH0KICAgfQoKCgogICB7CiAgICAgIEdMaW50IGRzdENvbXBvbmVudHM7CiAgICAgIEdMaW50IGRz
dFJlZEluZGV4LCBkc3RHcmVlbkluZGV4LCBkc3RCbHVlSW5kZXgsIGRzdEFscGhhSW5kZXg7CiAg
ICAgIEdMaW50IGRzdEx1bWluYW5jZUluZGV4LCBkc3RJbnRlbnNpdHlJbmRleDsKICAgICAgR0xm
bG9hdCByZ2JhWzIwNDhdWzRdOwogICAgICBkbyB7fSB3aGlsZSgwKTsKCiAgICAgIGRzdENvbXBv
bmVudHMgPSBfbWVzYV9jb21wb25lbnRzX2luX2Zvcm1hdCggZHN0Rm9ybWF0ICk7CgogICAgICAo
KHZvaWQpICgoZHN0Q29tcG9uZW50cyA+IDApID8gMCA6IChfX2VwcmludGYgKCIlczoldTogZmFp
bGVkIGFzc2VydGlvbiBgJXMnXG4iLCAiaW1hZ2UuYyIsIDI3MzEsICJkc3RDb21wb25lbnRzID4g
MCIpLCAwKSkpOwoKCgoKICAgICAgKCh2b2lkKSAoKG4gPD0gMjA0OCkgPyAwIDogKF9fZXByaW50
ZiAoIiVzOiV1OiBmYWlsZWQgYXNzZXJ0aW9uIGAlcydcbiIsICJpbWFnZS5jIiwgMjczNiwgIm4g
PD0gTUFYX1dJRFRIIiksIDApKSk7CiAgICAgIGlmIChzcmNGb3JtYXQgPT0gMHgxOTAwKSB7CiAg
ICAgICAgIEdMdWludCBpbmRleGVzWzIwNDhdOwogICAgICAgICBleHRyYWN0X3VpbnRfaW5kZXhl
cyhuLCBpbmRleGVzLCBzcmNGb3JtYXQsIHNyY1R5cGUsIHNvdXJjZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3JjUGFja2luZyk7CgogICAgICAgICBpZiAoZHN0Rm9ybWF0ID09IDB4
MTkwMAogICAgICAgICAgICAgJiYgKHRyYW5zZmVyT3BzICYgMHg0KSkgewogICAgICAgICAgICBf
bWVzYV9tYXBfY2koY3R4LCBuLCBpbmRleGVzKTsKICAgICAgICAgfQogICAgICAgICBpZiAodHJh
bnNmZXJPcHMgJiAweDIpIHsKICAgICAgICAgICAgX21lc2Ffc2hpZnRfYW5kX29mZnNldF9jaShj
dHgsIG4sIGluZGV4ZXMpOwogICAgICAgICB9CgogICAgICAgICBpZiAoZHN0Rm9ybWF0ID09IDB4
MTkwMCkgewoKICAgICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkg
PCBuOyBpKyspIHsKICAgICAgICAgICAgICAgZGVzdFtpXSA9IChHTGNoYW4pIChpbmRleGVzW2ld
ICYgMHhmZik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgOwogICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICBfbWVzYV9tYXBfY2lfdG9f
cmdiYShjdHgsIG4sIGluZGV4ZXMsIHJnYmEpOwogICAgICAgICB9CiAgICAgIH0KICAgICAgZWxz
ZSB7CiAgICAgICAgIGV4dHJhY3RfZmxvYXRfcmdiYShuLCByZ2JhLCBzcmNGb3JtYXQsIHNyY1R5
cGUsIHNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1BhY2tpbmctPlN3YXBC
eXRlcyk7CgoKICAgICAgICAgaWYgKHRyYW5zZmVyT3BzICYgMHgxKSB7CiAgICAgICAgICAgIF9t
ZXNhX3NjYWxlX2FuZF9iaWFzX3JnYmEoY3R4LCBuLCByZ2JhLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGN0eC0+UGl4ZWwuUmVkU2NhbGUsIGN0eC0+UGl4ZWwuR3JlZW5TY2Fs
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPlBpeGVsLkJsdWVTY2Fs
ZSwgY3R4LT5QaXhlbC5BbHBoYVNjYWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGN0eC0+UGl4ZWwuUmVkQmlhcywgY3R4LT5QaXhlbC5HcmVlbkJpYXMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5QaXhlbC5CbHVlQmlhcywgY3R4LT5QaXhlbC5B
bHBoYUJpYXMpOwogICAgICAgICB9CgogICAgICAgICBpZiAodHJhbnNmZXJPcHMgJiAweDQpIHsK
ICAgICAgICAgICAgX21lc2FfbWFwX3JnYmEoY3R4LCBuLCByZ2JhKTsKICAgICAgICAgfQogICAg
ICB9CgogICAgICBpZiAodHJhbnNmZXJPcHMpIHsKCiAgICAgICAgIGlmICh0cmFuc2Zlck9wcyAm
IDB4OCkgewogICAgICAgICAgICBfbWVzYV9sb29rdXBfcmdiYSgmY3R4LT5Db2xvclRhYmxlLCBu
LCByZ2JhKTsKICAgICAgICAgfQoKICAgICAgICAgaWYgKHRyYW5zZmVyT3BzICYgMHgxMCkgewoK
ICAgICAgICAgfQoKICAgICAgICAgaWYgKHRyYW5zZmVyT3BzICYgMHgyMCkgewogICAgICAgICAg
ICBfbWVzYV9zY2FsZV9hbmRfYmlhc19yZ2JhKGN0eCwgbiwgcmdiYSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjdHgtPlBpeGVsLlBvc3RDb252b2x1dGlvblNjYWxlWzBd
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+UGl4ZWwuUG9zdENv
bnZvbHV0aW9uU2NhbGVbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3R4LT5QaXhlbC5Qb3N0Q29udm9sdXRpb25TY2FsZVsyXSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjdHgtPlBpeGVsLlBvc3RDb252b2x1dGlvblNjYWxlWzNdLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+UGl4ZWwuUG9zdENvbnZvbHV0
aW9uQmlhc1swXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPlBp
eGVsLlBvc3RDb252b2x1dGlvbkJpYXNbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3R4LT5QaXhlbC5Qb3N0Q29udm9sdXRpb25CaWFzWzJdLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+UGl4ZWwuUG9zdENvbnZvbHV0aW9uQmlhc1sz
XSk7CiAgICAgICAgIH0KCiAgICAgICAgIGlmICh0cmFuc2Zlck9wcyAmIDB4NDApIHsKICAgICAg
ICAgICAgX21lc2FfbG9va3VwX3JnYmEoJmN0eC0+UG9zdENvbnZvbHV0aW9uQ29sb3JUYWJsZSwg
biwgcmdiYSk7CiAgICAgICAgIH0KCiAgICAgICAgIGlmICh0cmFuc2Zlck9wcyAmIDB4ODApIHsK
ICAgICAgICAgICAgX21lc2FfdHJhbnNmb3JtX3JnYmEoY3R4LCBuLCByZ2JhKTsKICAgICAgICAg
fQoKICAgICAgICAgaWYgKHRyYW5zZmVyT3BzICYgMHgxMDApIHsKICAgICAgICAgICAgX21lc2Ff
bG9va3VwX3JnYmEoJmN0eC0+UG9zdENvbG9yTWF0cml4Q29sb3JUYWJsZSwgbiwgcmdiYSk7CiAg
ICAgICAgIH0KCiAgICAgICAgIGlmICh0cmFuc2Zlck9wcyAmIDB4MjAwKSB7CiAgICAgICAgICAg
IF9tZXNhX3VwZGF0ZV9oaXN0b2dyYW0oY3R4LCBuLCAoY29uc3QgR0xmbG9hdCAoKilbNF0pIHJn
YmEpOwogICAgICAgICB9CgogICAgICAgICBpZiAodHJhbnNmZXJPcHMgJiAweDQwMCkgewogICAg
ICAgICAgICBfbWVzYV91cGRhdGVfbWlubWF4KGN0eCwgbiwgKGNvbnN0IEdMZmxvYXQgKCopWzRd
KSByZ2JhKTsKICAgICAgICAgfQogICAgICB9CgoKCiAgICAgIHsKICAgICAgICAgR0x1aW50IGk7
CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgcmdiYVtpXVsw
XSA9ICggKHJnYmFbaV1bMF0pPCgwLjBGKSA/ICgwLjBGKSA6ICgocmdiYVtpXVswXSk+KDEuMEYp
ID8gKDEuMEYpIDogKHJnYmFbaV1bMF0pKSApOwogICAgICAgICAgICByZ2JhW2ldWzFdID0gKCAo
cmdiYVtpXVsxXSk8KDAuMEYpID8gKDAuMEYpIDogKChyZ2JhW2ldWzFdKT4oMS4wRikgPyAoMS4w
RikgOiAocmdiYVtpXVsxXSkpICk7CiAgICAgICAgICAgIHJnYmFbaV1bMl0gPSAoIChyZ2JhW2ld
WzJdKTwoMC4wRikgPyAoMC4wRikgOiAoKHJnYmFbaV1bMl0pPigxLjBGKSA/ICgxLjBGKSA6IChy
Z2JhW2ldWzJdKSkgKTsKICAgICAgICAgICAgcmdiYVtpXVszXSA9ICggKHJnYmFbaV1bM10pPCgw
LjBGKSA/ICgwLjBGKSA6ICgocmdiYVtpXVszXSk+KDEuMEYpID8gKDEuMEYpIDogKHJnYmFbaV1b
M10pKSApOwogICAgICAgICB9CiAgICAgIH0KCgoKCgogICAgICBzd2l0Y2ggKGRzdEZvcm1hdCkg
ewogICAgICAgICBjYXNlIDB4MTkwNjoKICAgICAgICAgICAgZHN0QWxwaGFJbmRleCA9IDA7CiAg
ICAgICAgICAgIGRzdFJlZEluZGV4ID0gZHN0R3JlZW5JbmRleCA9IGRzdEJsdWVJbmRleCA9IC0x
OwogICAgICAgICAgICBkc3RMdW1pbmFuY2VJbmRleCA9IGRzdEludGVuc2l0eUluZGV4ID0gLTE7
CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIDB4MTkwOToKICAgICAgICAgICAgZHN0
THVtaW5hbmNlSW5kZXggPSAwOwogICAgICAgICAgICBkc3RSZWRJbmRleCA9IGRzdEdyZWVuSW5k
ZXggPSBkc3RCbHVlSW5kZXggPSBkc3RBbHBoYUluZGV4ID0gLTE7CiAgICAgICAgICAgIGRzdElu
dGVuc2l0eUluZGV4ID0gLTE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIDB4MTkw
QToKICAgICAgICAgICAgZHN0THVtaW5hbmNlSW5kZXggPSAwOwogICAgICAgICAgICBkc3RBbHBo
YUluZGV4ID0gMTsKICAgICAgICAgICAgZHN0UmVkSW5kZXggPSBkc3RHcmVlbkluZGV4ID0gZHN0
Qmx1ZUluZGV4ID0gLTE7CiAgICAgICAgICAgIGRzdEludGVuc2l0eUluZGV4ID0gLTE7CiAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIDB4ODA0OToKICAgICAgICAgICAgZHN0SW50ZW5z
aXR5SW5kZXggPSAwOwogICAgICAgICAgICBkc3RSZWRJbmRleCA9IGRzdEdyZWVuSW5kZXggPSBk
c3RCbHVlSW5kZXggPSBkc3RBbHBoYUluZGV4ID0gLTE7CiAgICAgICAgICAgIGRzdEx1bWluYW5j
ZUluZGV4ID0gLTE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIDB4MTkwNzoKICAg
ICAgICAgICAgZHN0UmVkSW5kZXggPSAwOwogICAgICAgICAgICBkc3RHcmVlbkluZGV4ID0gMTsK
ICAgICAgICAgICAgZHN0Qmx1ZUluZGV4ID0gMjsKICAgICAgICAgICAgZHN0QWxwaGFJbmRleCA9
IGRzdEx1bWluYW5jZUluZGV4ID0gZHN0SW50ZW5zaXR5SW5kZXggPSAtMTsKICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgMHgxOTA4OgogICAgICAgICAgICBkc3RSZWRJbmRleCA9IDA7
CiAgICAgICAgICAgIGRzdEdyZWVuSW5kZXggPSAxOwogICAgICAgICAgICBkc3RCbHVlSW5kZXgg
PSAyOwogICAgICAgICAgICBkc3RBbHBoYUluZGV4ID0gMzsKICAgICAgICAgICAgZHN0THVtaW5h
bmNlSW5kZXggPSBkc3RJbnRlbnNpdHlJbmRleCA9IC0xOwogICAgICAgICAgICBicmVhazsKICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgX21lc2FfcHJvYmxlbShjdHgsICJiYWQgZHN0Rm9y
bWF0IGluIF9tZXNhX3VucGFja19jaGFuX3NwYW4oKSIpOwogICAgICAgICAgICA7CiAgICAgICAg
ICAgIHJldHVybjsKICAgICAgfQoKCgoKICAgICAgaWYgKGRzdFJlZEluZGV4ID49IDApIHsKICAg
ICAgICAgR0xjaGFuICpkc3QgPSBkZXN0OwogICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgZm9y
IChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBkbyB7IHVuaW9uIHsgR0xmbG9hdCBy
OyBHTHVpbnQgaTsgfSBfX3RtcDsgX190bXAuciA9IChyZ2JhW2ldWzBdKTsgZHN0W2RzdFJlZElu
ZGV4XSA9ICgoX190bXAuaSA+PSAweDNmN2YwMDAwKSA/ICgoR0xpbnQpX190bXAuaSA8IDApID8g
KEdMdWJ5dGUpMCA6IChHTHVieXRlKTI1NSA6IChfX3RtcC5yID0gX190bXAuciooMjU1LjBGLzI1
Ni4wRikgKyAzMjc2OC4wRiwgKEdMdWJ5dGUpX190bXAuaSkpOyB9IHdoaWxlICgwKTsKICAgICAg
ICAgICAgZHN0ICs9IGRzdENvbXBvbmVudHM7CiAgICAgICAgIH0KICAgICAgfQoKICAgICAgaWYg
KGRzdEdyZWVuSW5kZXggPj0gMCkgewogICAgICAgICBHTGNoYW4gKmRzdCA9IGRlc3Q7CiAgICAg
ICAgIEdMdWludCBpOwogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAg
ICAgIGRvIHsgdW5pb24geyBHTGZsb2F0IHI7IEdMdWludCBpOyB9IF9fdG1wOyBfX3RtcC5yID0g
KHJnYmFbaV1bMV0pOyBkc3RbZHN0R3JlZW5JbmRleF0gPSAoKF9fdG1wLmkgPj0gMHgzZjdmMDAw
MCkgPyAoKEdMaW50KV9fdG1wLmkgPCAwKSA/IChHTHVieXRlKTAgOiAoR0x1Ynl0ZSkyNTUgOiAo
X190bXAuciA9IF9fdG1wLnIqKDI1NS4wRi8yNTYuMEYpICsgMzI3NjguMEYsIChHTHVieXRlKV9f
dG1wLmkpKTsgfSB3aGlsZSAoMCk7CiAgICAgICAgICAgIGRzdCArPSBkc3RDb21wb25lbnRzOwog
ICAgICAgICB9CiAgICAgIH0KCiAgICAgIGlmIChkc3RCbHVlSW5kZXggPj0gMCkgewogICAgICAg
ICBHTGNoYW4gKmRzdCA9IGRlc3Q7CiAgICAgICAgIEdMdWludCBpOwogICAgICAgICBmb3IgKGkg
PSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGRvIHsgdW5pb24geyBHTGZsb2F0IHI7IEdM
dWludCBpOyB9IF9fdG1wOyBfX3RtcC5yID0gKHJnYmFbaV1bMl0pOyBkc3RbZHN0Qmx1ZUluZGV4
XSA9ICgoX190bXAuaSA+PSAweDNmN2YwMDAwKSA/ICgoR0xpbnQpX190bXAuaSA8IDApID8gKEdM
dWJ5dGUpMCA6IChHTHVieXRlKTI1NSA6IChfX3RtcC5yID0gX190bXAuciooMjU1LjBGLzI1Ni4w
RikgKyAzMjc2OC4wRiwgKEdMdWJ5dGUpX190bXAuaSkpOyB9IHdoaWxlICgwKTsKICAgICAgICAg
ICAgZHN0ICs9IGRzdENvbXBvbmVudHM7CiAgICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKGRz
dEFscGhhSW5kZXggPj0gMCkgewogICAgICAgICBHTGNoYW4gKmRzdCA9IGRlc3Q7CiAgICAgICAg
IEdMdWludCBpOwogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAg
IGRvIHsgdW5pb24geyBHTGZsb2F0IHI7IEdMdWludCBpOyB9IF9fdG1wOyBfX3RtcC5yID0gKHJn
YmFbaV1bM10pOyBkc3RbZHN0QWxwaGFJbmRleF0gPSAoKF9fdG1wLmkgPj0gMHgzZjdmMDAwMCkg
PyAoKEdMaW50KV9fdG1wLmkgPCAwKSA/IChHTHVieXRlKTAgOiAoR0x1Ynl0ZSkyNTUgOiAoX190
bXAuciA9IF9fdG1wLnIqKDI1NS4wRi8yNTYuMEYpICsgMzI3NjguMEYsIChHTHVieXRlKV9fdG1w
LmkpKTsgfSB3aGlsZSAoMCk7CiAgICAgICAgICAgIGRzdCArPSBkc3RDb21wb25lbnRzOwogICAg
ICAgICB9CiAgICAgIH0KCiAgICAgIGlmIChkc3RJbnRlbnNpdHlJbmRleCA+PSAwKSB7CiAgICAg
ICAgIEdMY2hhbiAqZHN0ID0gZGVzdDsKICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgICgodm9p
ZCkgKChkc3RJbnRlbnNpdHlJbmRleCA9PSAwKSA/IDAgOiAoX19lcHJpbnRmICgiJXM6JXU6IGZh
aWxlZCBhc3NlcnRpb24gYCVzJ1xuIiwgImltYWdlLmMiLCAyOTI0LCAiZHN0SW50ZW5zaXR5SW5k
ZXggPT0gMCIpLCAwKSkpOwogICAgICAgICAoKHZvaWQpICgoZHN0Q29tcG9uZW50cyA9PSAxKSA/
IDAgOiAoX19lcHJpbnRmICgiJXM6JXU6IGZhaWxlZCBhc3NlcnRpb24gYCVzJ1xuIiwgImltYWdl
LmMiLCAyOTI1LCAiZHN0Q29tcG9uZW50cyA9PSAxIiksIDApKSk7CiAgICAgICAgIGZvciAoaSA9
IDA7IGkgPCBuOyBpKyspIHsKCiAgICAgICAgICAgIGRvIHsgdW5pb24geyBHTGZsb2F0IHI7IEdM
dWludCBpOyB9IF9fdG1wOyBfX3RtcC5yID0gKHJnYmFbaV1bMF0pOyBkc3RbaV0gPSAoKF9fdG1w
LmkgPj0gMHgzZjdmMDAwMCkgPyAoKEdMaW50KV9fdG1wLmkgPCAwKSA/IChHTHVieXRlKTAgOiAo
R0x1Ynl0ZSkyNTUgOiAoX190bXAuciA9IF9fdG1wLnIqKDI1NS4wRi8yNTYuMEYpICsgMzI3Njgu
MEYsIChHTHVieXRlKV9fdG1wLmkpKTsgfSB3aGlsZSAoMCk7CiAgICAgICAgIH0KICAgICAgfQoK
ICAgICAgaWYgKGRzdEx1bWluYW5jZUluZGV4ID49IDApIHsKICAgICAgICAgR0xjaGFuICpkc3Qg
PSBkZXN0OwogICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgKCh2b2lkKSAoKGRzdEx1bWluYW5j
ZUluZGV4ID09IDApID8gMCA6IChfX2VwcmludGYgKCIlczoldTogZmFpbGVkIGFzc2VydGlvbiBg
JXMnXG4iLCAiaW1hZ2UuYyIsIDI5MzUsICJkc3RMdW1pbmFuY2VJbmRleCA9PSAwIiksIDApKSk7
CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKCiAgICAgICAgICAgIGRvIHsgdW5p
b24geyBHTGZsb2F0IHI7IEdMdWludCBpOyB9IF9fdG1wOyBfX3RtcC5yID0gKHJnYmFbaV1bMF0p
OyBkc3RbMF0gPSAoKF9fdG1wLmkgPj0gMHgzZjdmMDAwMCkgPyAoKEdMaW50KV9fdG1wLmkgPCAw
KSA/IChHTHVieXRlKTAgOiAoR0x1Ynl0ZSkyNTUgOiAoX190bXAuciA9IF9fdG1wLnIqKDI1NS4w
Ri8yNTYuMEYpICsgMzI3NjguMEYsIChHTHVieXRlKV9fdG1wLmkpKTsgfSB3aGlsZSAoMCk7CiAg
ICAgICAgICAgIGRzdCArPSBkc3RDb21wb25lbnRzOwogICAgICAgICB9CiAgICAgIH0KICAgICAg
OwogICB9Cn0KCgp2b2lkCl9tZXNhX3VucGFja19mbG9hdF9jb2xvcl9zcGFuKCBHTGNvbnRleHQg
KmN0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMdWludCBuLCBHTGVudW0gZHN0
Rm9ybWF0LCBHTGZsb2F0IGRlc3RbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
ZW51bSBzcmNGb3JtYXQsIEdMZW51bSBzcmNUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgR0x2b2lkICpzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKnNyY1BhY2tpbmcsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHTHVpbnQgdHJhbnNmZXJPcHMsIEdMYm9vbGVhbiBjbGFt
cCApCnsKICAgOwoKCgoKCgoKICAgOwojIDI5NzcgImltYWdlLmMiCiAgIDsKIyAyOTk5ICJpbWFn
ZS5jIgogICB7CiAgICAgIEdMaW50IGRzdENvbXBvbmVudHM7CiAgICAgIEdMaW50IGRzdFJlZElu
ZGV4LCBkc3RHcmVlbkluZGV4LCBkc3RCbHVlSW5kZXgsIGRzdEFscGhhSW5kZXg7CiAgICAgIEdM
aW50IGRzdEx1bWluYW5jZUluZGV4LCBkc3RJbnRlbnNpdHlJbmRleDsKICAgICAgR0xmbG9hdCBy
Z2JhWzIwNDhdWzRdOwogICAgICBkbyB7fSB3aGlsZSgwKTsKCiAgICAgIGRzdENvbXBvbmVudHMg
PSBfbWVzYV9jb21wb25lbnRzX2luX2Zvcm1hdCggZHN0Rm9ybWF0ICk7CgogICAgICAoKHZvaWQp
ICgoZHN0Q29tcG9uZW50cyA+IDApID8gMCA6IChfX2VwcmludGYgKCIlczoldTogZmFpbGVkIGFz
c2VydGlvbiBgJXMnXG4iLCAiaW1hZ2UuYyIsIDMwMDgsICJkc3RDb21wb25lbnRzID4gMCIpLCAw
KSkpOwoKCgoKICAgICAgKCh2b2lkKSAoKG4gPD0gMjA0OCkgPyAwIDogKF9fZXByaW50ZiAoIiVz
OiV1OiBmYWlsZWQgYXNzZXJ0aW9uIGAlcydcbiIsICJpbWFnZS5jIiwgMzAxMywgIm4gPD0gTUFY
X1dJRFRIIiksIDApKSk7CiAgICAgIGlmIChzcmNGb3JtYXQgPT0gMHgxOTAwKSB7CiAgICAgICAg
IEdMdWludCBpbmRleGVzWzIwNDhdOwogICAgICAgICBleHRyYWN0X3VpbnRfaW5kZXhlcyhuLCBp
bmRleGVzLCBzcmNGb3JtYXQsIHNyY1R5cGUsIHNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3JjUGFja2luZyk7CgogICAgICAgICBpZiAoZHN0Rm9ybWF0ID09IDB4MTkwMAog
ICAgICAgICAgICAgJiYgKHRyYW5zZmVyT3BzICYgMHg0KSkgewogICAgICAgICAgICBfbWVzYV9t
YXBfY2koY3R4LCBuLCBpbmRleGVzKTsKICAgICAgICAgfQogICAgICAgICBpZiAodHJhbnNmZXJP
cHMgJiAweDIpIHsKICAgICAgICAgICAgX21lc2Ffc2hpZnRfYW5kX29mZnNldF9jaShjdHgsIG4s
IGluZGV4ZXMpOwogICAgICAgICB9CgogICAgICAgICBpZiAoZHN0Rm9ybWF0ID09IDB4MTkwMCkg
ewoKICAgICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBp
KyspIHsKICAgICAgICAgICAgICAgZGVzdFtpXSA9IChHTGNoYW4pIChpbmRleGVzW2ldICYgMHhm
Zik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgOwogICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICBfbWVzYV9tYXBfY2lfdG9fcmdiYShj
dHgsIG4sIGluZGV4ZXMsIHJnYmEpOwogICAgICAgICB9CiAgICAgIH0KICAgICAgZWxzZSB7CiAg
ICAgICAgIGV4dHJhY3RfZmxvYXRfcmdiYShuLCByZ2JhLCBzcmNGb3JtYXQsIHNyY1R5cGUsIHNv
dXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1BhY2tpbmctPlN3YXBCeXRlcyk7
CgoKICAgICAgICAgaWYgKHRyYW5zZmVyT3BzICYgMHgxKSB7CiAgICAgICAgICAgIF9tZXNhX3Nj
YWxlX2FuZF9iaWFzX3JnYmEoY3R4LCBuLCByZ2JhLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGN0eC0+UGl4ZWwuUmVkU2NhbGUsIGN0eC0+UGl4ZWwuR3JlZW5TY2FsZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPlBpeGVsLkJsdWVTY2FsZSwgY3R4
LT5QaXhlbC5BbHBoYVNjYWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0
eC0+UGl4ZWwuUmVkQmlhcywgY3R4LT5QaXhlbC5HcmVlbkJpYXMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3R4LT5QaXhlbC5CbHVlQmlhcywgY3R4LT5QaXhlbC5BbHBoYUJp
YXMpOwogICAgICAgICB9CgogICAgICAgICBpZiAodHJhbnNmZXJPcHMgJiAweDQpIHsKICAgICAg
ICAgICAgX21lc2FfbWFwX3JnYmEoY3R4LCBuLCByZ2JhKTsKICAgICAgICAgfQogICAgICB9Cgog
ICAgICBpZiAodHJhbnNmZXJPcHMpIHsKCiAgICAgICAgIGlmICh0cmFuc2Zlck9wcyAmIDB4OCkg
ewogICAgICAgICAgICBfbWVzYV9sb29rdXBfcmdiYSgmY3R4LT5Db2xvclRhYmxlLCBuLCByZ2Jh
KTsKICAgICAgICAgfQoKICAgICAgICAgaWYgKHRyYW5zZmVyT3BzICYgMHgxMCkgewoKICAgICAg
ICAgfQoKICAgICAgICAgaWYgKHRyYW5zZmVyT3BzICYgMHgyMCkgewogICAgICAgICAgICBfbWVz
YV9zY2FsZV9hbmRfYmlhc19yZ2JhKGN0eCwgbiwgcmdiYSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjdHgtPlBpeGVsLlBvc3RDb252b2x1dGlvblNjYWxlWzBdLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+UGl4ZWwuUG9zdENvbnZvbHV0
aW9uU2NhbGVbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5Q
aXhlbC5Qb3N0Q29udm9sdXRpb25TY2FsZVsyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjdHgtPlBpeGVsLlBvc3RDb252b2x1dGlvblNjYWxlWzNdLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+UGl4ZWwuUG9zdENvbnZvbHV0aW9uQmlh
c1swXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPlBpeGVsLlBv
c3RDb252b2x1dGlvbkJpYXNbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3R4LT5QaXhlbC5Qb3N0Q29udm9sdXRpb25CaWFzWzJdLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGN0eC0+UGl4ZWwuUG9zdENvbnZvbHV0aW9uQmlhc1szXSk7CiAg
ICAgICAgIH0KCiAgICAgICAgIGlmICh0cmFuc2Zlck9wcyAmIDB4NDApIHsKICAgICAgICAgICAg
X21lc2FfbG9va3VwX3JnYmEoJmN0eC0+UG9zdENvbnZvbHV0aW9uQ29sb3JUYWJsZSwgbiwgcmdi
YSk7CiAgICAgICAgIH0KCiAgICAgICAgIGlmICh0cmFuc2Zlck9wcyAmIDB4ODApIHsKICAgICAg
ICAgICAgX21lc2FfdHJhbnNmb3JtX3JnYmEoY3R4LCBuLCByZ2JhKTsKICAgICAgICAgfQoKICAg
ICAgICAgaWYgKHRyYW5zZmVyT3BzICYgMHgxMDApIHsKICAgICAgICAgICAgX21lc2FfbG9va3Vw
X3JnYmEoJmN0eC0+UG9zdENvbG9yTWF0cml4Q29sb3JUYWJsZSwgbiwgcmdiYSk7CiAgICAgICAg
IH0KCiAgICAgICAgIGlmICh0cmFuc2Zlck9wcyAmIDB4MjAwKSB7CiAgICAgICAgICAgIF9tZXNh
X3VwZGF0ZV9oaXN0b2dyYW0oY3R4LCBuLCAoY29uc3QgR0xmbG9hdCAoKilbNF0pIHJnYmEpOwog
ICAgICAgICB9CgogICAgICAgICBpZiAodHJhbnNmZXJPcHMgJiAweDQwMCkgewogICAgICAgICAg
ICBfbWVzYV91cGRhdGVfbWlubWF4KGN0eCwgbiwgKGNvbnN0IEdMZmxvYXQgKCopWzRdKSByZ2Jh
KTsKICAgICAgICAgfQogICAgICB9CgoKCiAgICAgIGlmIChjbGFtcCkgewogICAgICAgICBHTHVp
bnQgaTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICByZ2Jh
W2ldWzBdID0gKCAocmdiYVtpXVswXSk8KDAuMEYpID8gKDAuMEYpIDogKChyZ2JhW2ldWzBdKT4o
MS4wRikgPyAoMS4wRikgOiAocmdiYVtpXVswXSkpICk7CiAgICAgICAgICAgIHJnYmFbaV1bMV0g
PSAoIChyZ2JhW2ldWzFdKTwoMC4wRikgPyAoMC4wRikgOiAoKHJnYmFbaV1bMV0pPigxLjBGKSA/
ICgxLjBGKSA6IChyZ2JhW2ldWzFdKSkgKTsKICAgICAgICAgICAgcmdiYVtpXVsyXSA9ICggKHJn
YmFbaV1bMl0pPCgwLjBGKSA/ICgwLjBGKSA6ICgocmdiYVtpXVsyXSk+KDEuMEYpID8gKDEuMEYp
IDogKHJnYmFbaV1bMl0pKSApOwogICAgICAgICAgICByZ2JhW2ldWzNdID0gKCAocmdiYVtpXVsz
XSk8KDAuMEYpID8gKDAuMEYpIDogKChyZ2JhW2ldWzNdKT4oMS4wRikgPyAoMS4wRikgOiAocmdi
YVtpXVszXSkpICk7CiAgICAgICAgIH0KICAgICAgfQoKCgoKCiAgICAgIHN3aXRjaCAoZHN0Rm9y
bWF0KSB7CiAgICAgICAgIGNhc2UgMHgxOTA2OgogICAgICAgICAgICBkc3RBbHBoYUluZGV4ID0g
MDsKICAgICAgICAgICAgZHN0UmVkSW5kZXggPSBkc3RHcmVlbkluZGV4ID0gZHN0Qmx1ZUluZGV4
ID0gLTE7CiAgICAgICAgICAgIGRzdEx1bWluYW5jZUluZGV4ID0gZHN0SW50ZW5zaXR5SW5kZXgg
PSAtMTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgMHgxOTA5OgogICAgICAgICAg
ICBkc3RMdW1pbmFuY2VJbmRleCA9IDA7CiAgICAgICAgICAgIGRzdFJlZEluZGV4ID0gZHN0R3Jl
ZW5JbmRleCA9IGRzdEJsdWVJbmRleCA9IGRzdEFscGhhSW5kZXggPSAtMTsKICAgICAgICAgICAg
ZHN0SW50ZW5zaXR5SW5kZXggPSAtMTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
MHgxOTBBOgogICAgICAgICAgICBkc3RMdW1pbmFuY2VJbmRleCA9IDA7CiAgICAgICAgICAgIGRz
dEFscGhhSW5kZXggPSAxOwogICAgICAgICAgICBkc3RSZWRJbmRleCA9IGRzdEdyZWVuSW5kZXgg
PSBkc3RCbHVlSW5kZXggPSAtMTsKICAgICAgICAgICAgZHN0SW50ZW5zaXR5SW5kZXggPSAtMTsK
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgMHg4MDQ5OgogICAgICAgICAgICBkc3RJ
bnRlbnNpdHlJbmRleCA9IDA7CiAgICAgICAgICAgIGRzdFJlZEluZGV4ID0gZHN0R3JlZW5JbmRl
eCA9IGRzdEJsdWVJbmRleCA9IGRzdEFscGhhSW5kZXggPSAtMTsKICAgICAgICAgICAgZHN0THVt
aW5hbmNlSW5kZXggPSAtMTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgMHgxOTA3
OgogICAgICAgICAgICBkc3RSZWRJbmRleCA9IDA7CiAgICAgICAgICAgIGRzdEdyZWVuSW5kZXgg
PSAxOwogICAgICAgICAgICBkc3RCbHVlSW5kZXggPSAyOwogICAgICAgICAgICBkc3RBbHBoYUlu
ZGV4ID0gZHN0THVtaW5hbmNlSW5kZXggPSBkc3RJbnRlbnNpdHlJbmRleCA9IC0xOwogICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSAweDE5MDg6CiAgICAgICAgICAgIGRzdFJlZEluZGV4
ID0gMDsKICAgICAgICAgICAgZHN0R3JlZW5JbmRleCA9IDE7CiAgICAgICAgICAgIGRzdEJsdWVJ
bmRleCA9IDI7CiAgICAgICAgICAgIGRzdEFscGhhSW5kZXggPSAzOwogICAgICAgICAgICBkc3RM
dW1pbmFuY2VJbmRleCA9IGRzdEludGVuc2l0eUluZGV4ID0gLTE7CiAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBfbWVzYV9wcm9ibGVtKGN0eCwgImJhZCBk
c3RGb3JtYXQgaW4gX21lc2FfdW5wYWNrX2Zsb2F0X2NvbG9yX3NwYW4oKSIpOwogICAgICAgICAg
ICA7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgfQoKCiAgICAgIGlmIChkc3RSZWRJbmRleCA+
PSAwKSB7CiAgICAgICAgIEdMZmxvYXQgKmRzdCA9IGRlc3Q7CiAgICAgICAgIEdMdWludCBpOwog
ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGRzdFtkc3RSZWRJ
bmRleF0gPSByZ2JhW2ldWzBdOwogICAgICAgICAgICBkc3QgKz0gZHN0Q29tcG9uZW50czsKICAg
ICAgICAgfQogICAgICB9CgogICAgICBpZiAoZHN0R3JlZW5JbmRleCA+PSAwKSB7CiAgICAgICAg
IEdMZmxvYXQgKmRzdCA9IGRlc3Q7CiAgICAgICAgIEdMdWludCBpOwogICAgICAgICBmb3IgKGkg
PSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGRzdFtkc3RHcmVlbkluZGV4XSA9IHJnYmFb
aV1bMV07CiAgICAgICAgICAgIGRzdCArPSBkc3RDb21wb25lbnRzOwogICAgICAgICB9CiAgICAg
IH0KCiAgICAgIGlmIChkc3RCbHVlSW5kZXggPj0gMCkgewogICAgICAgICBHTGZsb2F0ICpkc3Qg
PSBkZXN0OwogICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkr
KykgewogICAgICAgICAgICBkc3RbZHN0Qmx1ZUluZGV4XSA9IHJnYmFbaV1bMl07CiAgICAgICAg
ICAgIGRzdCArPSBkc3RDb21wb25lbnRzOwogICAgICAgICB9CiAgICAgIH0KCiAgICAgIGlmIChk
c3RBbHBoYUluZGV4ID49IDApIHsKICAgICAgICAgR0xmbG9hdCAqZHN0ID0gZGVzdDsKICAgICAg
ICAgR0x1aW50IGk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAg
ICAgZHN0W2RzdEFscGhhSW5kZXhdID0gcmdiYVtpXVszXTsKICAgICAgICAgICAgZHN0ICs9IGRz
dENvbXBvbmVudHM7CiAgICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKGRzdEludGVuc2l0eUlu
ZGV4ID49IDApIHsKICAgICAgICAgR0xmbG9hdCAqZHN0ID0gZGVzdDsKICAgICAgICAgR0x1aW50
IGk7CiAgICAgICAgICgodm9pZCkgKChkc3RJbnRlbnNpdHlJbmRleCA9PSAwKSA/IDAgOiAoX19l
cHJpbnRmICgiJXM6JXU6IGZhaWxlZCBhc3NlcnRpb24gYCVzJ1xuIiwgImltYWdlLmMiLCAzMTk5
LCAiZHN0SW50ZW5zaXR5SW5kZXggPT0gMCIpLCAwKSkpOwogICAgICAgICAoKHZvaWQpICgoZHN0
Q29tcG9uZW50cyA9PSAxKSA/IDAgOiAoX19lcHJpbnRmICgiJXM6JXU6IGZhaWxlZCBhc3NlcnRp
b24gYCVzJ1xuIiwgImltYWdlLmMiLCAzMjAwLCAiZHN0Q29tcG9uZW50cyA9PSAxIiksIDApKSk7
CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKCiAgICAgICAgICAgIGRzdFtpXSA9
IHJnYmFbaV1bMF07CiAgICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKGRzdEx1bWluYW5jZUlu
ZGV4ID49IDApIHsKICAgICAgICAgR0xmbG9hdCAqZHN0ID0gZGVzdDsKICAgICAgICAgR0x1aW50
IGk7CiAgICAgICAgICgodm9pZCkgKChkc3RMdW1pbmFuY2VJbmRleCA9PSAwKSA/IDAgOiAoX19l
cHJpbnRmICgiJXM6JXU6IGZhaWxlZCBhc3NlcnRpb24gYCVzJ1xuIiwgImltYWdlLmMiLCAzMjEw
LCAiZHN0THVtaW5hbmNlSW5kZXggPT0gMCIpLCAwKSkpOwogICAgICAgICBmb3IgKGkgPSAwOyBp
IDwgbjsgaSsrKSB7CgogICAgICAgICAgICBkc3RbMF0gPSByZ2JhW2ldWzBdOwogICAgICAgICAg
ICBkc3QgKz0gZHN0Q29tcG9uZW50czsKICAgICAgICAgfQogICAgICB9CiAgICAgIDsKICAgfQp9
CiMgMzIzOCAiaW1hZ2UuYyIKdm9pZApfbWVzYV91bnBhY2tfaW5kZXhfc3BhbiggY29uc3QgR0xj
b250ZXh0ICpjdHgsIEdMdWludCBuLAogICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGRz
dFR5cGUsIEdMdm9pZCAqZGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBzcmNU
eXBlLCBjb25zdCBHTHZvaWQgKnNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHN0cnVjdCBnbF9waXhlbHN0b3JlX2F0dHJpYiAqc3JjUGFja2luZywKICAgICAgICAgICAgICAg
ICAgICAgICAgIEdMdWludCB0cmFuc2Zlck9wcyApCnsKICAgOwojIDMyNTQgImltYWdlLmMiCiAg
IDsKCgoKCiAgIHRyYW5zZmVyT3BzICY9ICgweDQgfCAweDIpOwoKCgoKICAgaWYgKHRyYW5zZmVy
T3BzID09IDAgJiYgc3JjVHlwZSA9PSAweDE0MDEKICAgICAgICYmIGRzdFR5cGUgPT0gMHgxNDAx
KSB7CiAgICAgIF9tZXNhX21lbWNweShkZXN0LCBzb3VyY2UsIG4gKiBzaXplb2YoR0x1Ynl0ZSkp
OwogICB9CiAgIGVsc2UgaWYgKHRyYW5zZmVyT3BzID09IDAgJiYgc3JjVHlwZSA9PSAweDE0MDUK
ICAgICAgICAgICAgJiYgZHN0VHlwZSA9PSAweDE0MDUgJiYgIXNyY1BhY2tpbmctPlN3YXBCeXRl
cykgewogICAgICBfbWVzYV9tZW1jcHkoZGVzdCwgc291cmNlLCBuICogc2l6ZW9mKEdMdWludCkp
OwogICB9CiAgIGVsc2UgewoKCgogICAgICBHTHVpbnQgaW5kZXhlc1syMDQ4XTsKICAgICAgKCh2
b2lkKSAoKG4gPD0gMjA0OCkgPyAwIDogKF9fZXByaW50ZiAoIiVzOiV1OiBmYWlsZWQgYXNzZXJ0
aW9uIGAlcydcbiIsICJpbWFnZS5jIiwgMzI3NywgIm4gPD0gTUFYX1dJRFRIIiksIDApKSk7Cgog
ICAgICBleHRyYWN0X3VpbnRfaW5kZXhlcyhuLCBpbmRleGVzLCAweDE5MDAsIHNyY1R5cGUsIHNv
dXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjUGFja2luZyk7CgogICAgICBpZiAo
dHJhbnNmZXJPcHMgJiAweDIpIHsKCiAgICAgICAgIF9tZXNhX3NoaWZ0X2FuZF9vZmZzZXRfY2ko
Y3R4LCBuLCBpbmRleGVzKTsKICAgICAgfQogICAgICBpZiAodHJhbnNmZXJPcHMgJiAweDQpIHsK
CiAgICAgICAgIF9tZXNhX21hcF9jaShjdHgsIG4sIGluZGV4ZXMpOwogICAgICB9CgoKICAgICAg
c3dpdGNoIChkc3RUeXBlKSB7CiAgICAgICAgIGNhc2UgMHgxNDAxOgogICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgIEdMdWJ5dGUgKmRzdCA9IChHTHVieXRlICopIGRlc3Q7CiAgICAgICAgICAg
ICAgIEdMdWludCBpOwogICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAg
ICAgICAgICAgICAgICAgIGRzdFtpXSA9IChHTHVieXRlKSAoaW5kZXhlc1tpXSAmIDB4ZmYpOwog
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgMHgxNDAzOgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEdMdWludCAqZHN0ID0g
KEdMdWludCAqKSBkZXN0OwogICAgICAgICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgICAgICAg
Zm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICAgICAgICBkc3RbaV0gPSAoR0x1
c2hvcnQpIChpbmRleGVzW2ldICYgMHhmZmZmKTsKICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIDB4MTQwNToKICAgICAgICAgICAg
X21lc2FfbWVtY3B5KGRlc3QsIGluZGV4ZXMsIG4gKiBzaXplb2YoR0x1aW50KSk7CiAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBfbWVzYV9wcm9ibGVtKGN0
eCwgImJhZCBkc3RUeXBlIGluIF9tZXNhX3VucGFja19pbmRleF9zcGFuIik7CiAgICAgIH0KICAg
fQp9CgoKdm9pZApfbWVzYV9wYWNrX2luZGV4X3NwYW4oIGNvbnN0IEdMY29udGV4dCAqY3R4LCBH
THVpbnQgbiwKICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZHN0VHlwZSwgR0x2b2lkICpk
ZXN0LCBjb25zdCBHTHVpbnQgKnNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz
dHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKmRzdFBhY2tpbmcsCiAgICAgICAgICAgICAgICAg
ICAgICAgR0x1aW50IHRyYW5zZmVyT3BzICkKewogICBHTHVpbnQgaW5kZXhlc1syMDQ4XTsKCiAg
IDsKCiAgIHRyYW5zZmVyT3BzICY9ICgweDQgfCAweDIpOwoKICAgaWYgKHRyYW5zZmVyT3BzICYg
KDB4NCB8IDB4MikpIHsKCiAgICAgIF9tZXNhX21lbWNweShpbmRleGVzLCBzb3VyY2UsIG4gKiBz
aXplb2YoR0x1aW50KSk7CiAgICAgIGlmICh0cmFuc2Zlck9wcyAmIDB4MikgewogICAgICAgICBf
bWVzYV9zaGlmdF9hbmRfb2Zmc2V0X2NpKCBjdHgsIG4sIGluZGV4ZXMpOwogICAgICB9CiAgICAg
IGlmICh0cmFuc2Zlck9wcyAmIDB4NCkgewogICAgICAgICBfbWVzYV9tYXBfY2koY3R4LCBuLCBp
bmRleGVzKTsKICAgICAgfQogICAgICBzb3VyY2UgPSBpbmRleGVzOwogICB9CgogICBzd2l0Y2gg
KGRzdFR5cGUpIHsKICAgY2FzZSAweDE0MDE6CiAgICAgIHsKICAgICAgICAgR0x1Ynl0ZSAqZHN0
ID0gKEdMdWJ5dGUgKikgZGVzdDsKICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgIGZvciAoaSA9
IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgKmRzdCsrID0gKEdMdWJ5dGUpIHNvdXJjZVtp
XTsKICAgICAgICAgfQogICAgICB9CiAgICAgIGJyZWFrOwogICBjYXNlIDB4MTQwMDoKICAgICAg
ewogICAgICAgICBHTGJ5dGUgKmRzdCA9IChHTGJ5dGUgKikgZGVzdDsKICAgICAgICAgR0x1aW50
IGk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgZHN0W2ld
ID0gKEdMYnl0ZSkgc291cmNlW2ldOwogICAgICAgICB9CiAgICAgIH0KICAgICAgYnJlYWs7CiAg
IGNhc2UgMHgxNDAzOgogICAgICB7CiAgICAgICAgIEdMdXNob3J0ICpkc3QgPSAoR0x1c2hvcnQg
KikgZGVzdDsKICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBp
KyspIHsKICAgICAgICAgICAgZHN0W2ldID0gKEdMdXNob3J0KSBzb3VyY2VbaV07CiAgICAgICAg
IH0KICAgICAgICAgaWYgKGRzdFBhY2tpbmctPlN3YXBCeXRlcykgewogICAgICAgICAgICBfbWVz
YV9zd2FwMiggKEdMdXNob3J0ICopIGRzdCwgbiApOwogICAgICAgICB9CiAgICAgIH0KICAgICAg
YnJlYWs7CiAgIGNhc2UgMHgxNDAyOgogICAgICB7CiAgICAgICAgIEdMc2hvcnQgKmRzdCA9IChH
THNob3J0ICopIGRlc3Q7CiAgICAgICAgIEdMdWludCBpOwogICAgICAgICBmb3IgKGkgPSAwOyBp
IDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGRzdFtpXSA9IChHTHNob3J0KSBzb3VyY2VbaV07CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKGRzdFBhY2tpbmctPlN3YXBCeXRlcykgewogICAgICAgICAg
ICBfbWVzYV9zd2FwMiggKEdMdXNob3J0ICopIGRzdCwgbiApOwogICAgICAgICB9CiAgICAgIH0K
ICAgICAgYnJlYWs7CiAgIGNhc2UgMHgxNDA1OgogICAgICB7CiAgICAgICAgIEdMdWludCAqZHN0
ID0gKEdMdWludCAqKSBkZXN0OwogICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgZm9yIChpID0g
MDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBkc3RbaV0gPSAoR0x1aW50KSBzb3VyY2VbaV07
CiAgICAgICAgIH0KICAgICAgICAgaWYgKGRzdFBhY2tpbmctPlN3YXBCeXRlcykgewogICAgICAg
ICAgICBfbWVzYV9zd2FwNCggKEdMdWludCAqKSBkc3QsIG4gKTsKICAgICAgICAgfQogICAgICB9
CiAgICAgIGJyZWFrOwogICBjYXNlIDB4MTQwNDoKICAgICAgewogICAgICAgICBHTGludCAqZHN0
ID0gKEdMaW50ICopIGRlc3Q7CiAgICAgICAgIEdMdWludCBpOwogICAgICAgICBmb3IgKGkgPSAw
OyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGRzdFtpXSA9IChHTGludCkgc291cmNlW2ldOwog
ICAgICAgICB9CiAgICAgICAgIGlmIChkc3RQYWNraW5nLT5Td2FwQnl0ZXMpIHsKICAgICAgICAg
ICAgX21lc2Ffc3dhcDQoIChHTHVpbnQgKikgZHN0LCBuICk7CiAgICAgICAgIH0KICAgICAgfQog
ICAgICBicmVhazsKICAgY2FzZSAweDE0MDY6CiAgICAgIHsKICAgICAgICAgR0xmbG9hdCAqZHN0
ID0gKEdMZmxvYXQgKikgZGVzdDsKICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgIGZvciAoaSA9
IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgZHN0W2ldID0gKEdMZmxvYXQpIHNvdXJjZVtp
XTsKICAgICAgICAgfQogICAgICAgICBpZiAoZHN0UGFja2luZy0+U3dhcEJ5dGVzKSB7CiAgICAg
ICAgICAgIF9tZXNhX3N3YXA0KCAoR0x1aW50ICopIGRzdCwgbiApOwogICAgICAgICB9CiAgICAg
IH0KICAgICAgYnJlYWs7CiAgIGRlZmF1bHQ6CiAgICAgIF9tZXNhX3Byb2JsZW0oY3R4LCAiYmFk
IHR5cGUgaW4gX21lc2FfcGFja19pbmRleF9zcGFuIik7CiAgIH0KfQojIDM0NDUgImltYWdlLmMi
CnZvaWQKX21lc2FfdW5wYWNrX3N0ZW5jaWxfc3BhbiggY29uc3QgR0xjb250ZXh0ICpjdHgsIEdM
dWludCBuLAogICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZHN0VHlwZSwgR0x2b2lk
ICpkZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gc3JjVHlwZSwgY29uc3Qg
R0x2b2lkICpzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBn
bF9waXhlbHN0b3JlX2F0dHJpYiAqc3JjUGFja2luZywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0x1aW50IHRyYW5zZmVyT3BzICkKewogICA7CiMgMzQ2MSAiaW1hZ2UuYyIKICAgOwoKCgoK
ICAgdHJhbnNmZXJPcHMgJj0gMHgyOwoKCgoKICAgaWYgKHRyYW5zZmVyT3BzID09IDAgJiYKICAg
ICAgIHNyY1R5cGUgPT0gMHgxNDAxICYmCiAgICAgICBkc3RUeXBlID09IDB4MTQwMSkgewogICAg
ICBfbWVzYV9tZW1jcHkoZGVzdCwgc291cmNlLCBuICogc2l6ZW9mKEdMdWJ5dGUpKTsKICAgfQog
ICBlbHNlIGlmICh0cmFuc2Zlck9wcyA9PSAwICYmCiAgICAgICAgICAgIHNyY1R5cGUgPT0gMHgx
NDA1ICYmCiAgICAgICAgICAgIGRzdFR5cGUgPT0gMHgxNDA1ICYmCiAgICAgICAgICAgICFzcmNQ
YWNraW5nLT5Td2FwQnl0ZXMpIHsKICAgICAgX21lc2FfbWVtY3B5KGRlc3QsIHNvdXJjZSwgbiAq
IHNpemVvZihHTHVpbnQpKTsKICAgfQogICBlbHNlIHsKCgoKICAgICAgR0x1aW50IGluZGV4ZXNb
MjA0OF07CiAgICAgICgodm9pZCkgKChuIDw9IDIwNDgpID8gMCA6IChfX2VwcmludGYgKCIlczol
dTogZmFpbGVkIGFzc2VydGlvbiBgJXMnXG4iLCAiaW1hZ2UuYyIsIDM0ODcsICJuIDw9IE1BWF9X
SURUSCIpLCAwKSkpOwoKICAgICAgZXh0cmFjdF91aW50X2luZGV4ZXMobiwgaW5kZXhlcywgMHgx
OTAwLCBzcmNUeXBlLCBzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1BhY2tp
bmcpOwoKICAgICAgaWYgKHRyYW5zZmVyT3BzKSB7CiAgICAgICAgIGlmICh0cmFuc2Zlck9wcyAm
IDB4MikgewoKICAgICAgICAgICAgX21lc2Ffc2hpZnRfYW5kX29mZnNldF9jaShjdHgsIG4sIGlu
ZGV4ZXMpOwogICAgICAgICB9CgogICAgICAgICBpZiAoY3R4LT5QaXhlbC5NYXBTdGVuY2lsRmxh
ZykgewoKICAgICAgICAgICAgR0x1aW50IG1hc2sgPSBjdHgtPlBpeGVsLk1hcFN0b1NzaXplIC0g
MTsKICAgICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsK
ICAgICAgICAgICAgICAgaW5kZXhlc1tpXSA9IGN0eC0+UGl4ZWwuTWFwU3RvU1sgaW5kZXhlc1tp
XSAmIG1hc2sgXTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgIH0KCgogICAgICBzd2l0
Y2ggKGRzdFR5cGUpIHsKICAgICAgICAgY2FzZSAweDE0MDE6CiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgR0x1Ynl0ZSAqZHN0ID0gKEdMdWJ5dGUgKikgZGVzdDsKICAgICAgICAgICAgICAg
R0x1aW50IGk7CiAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAg
ICAgICAgICAgICAgZHN0W2ldID0gKEdMdWJ5dGUpIChpbmRleGVzW2ldICYgMHhmZik7CiAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSAweDE0MDM6CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgR0x1aW50ICpkc3QgPSAoR0x1
aW50ICopIGRlc3Q7CiAgICAgICAgICAgICAgIEdMdWludCBpOwogICAgICAgICAgICAgICBmb3Ig
KGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIGRzdFtpXSA9IChHTHVzaG9y
dCkgKGluZGV4ZXNbaV0gJiAweGZmZmYpOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgMHgxNDA1OgogICAgICAgICAgICBfbWVz
YV9tZW1jcHkoZGVzdCwgaW5kZXhlcywgbiAqIHNpemVvZihHTHVpbnQpKTsKICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIF9tZXNhX3Byb2JsZW0oY3R4LCAi
YmFkIGRzdFR5cGUgaW4gX21lc2FfdW5wYWNrX3N0ZW5jaWxfc3BhbiIpOwogICAgICB9CiAgIH0K
fQoKCnZvaWQKX21lc2FfcGFja19zdGVuY2lsX3NwYW4oIGNvbnN0IEdMY29udGV4dCAqY3R4LCBH
THVpbnQgbiwKICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBkc3RUeXBlLCBHTHZvaWQg
KmRlc3QsIGNvbnN0IEdMc3RlbmNpbCAqc291cmNlLAogICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3Qgc3RydWN0IGdsX3BpeGVsc3RvcmVfYXR0cmliICpkc3RQYWNraW5nICkKewogICBHTHN0
ZW5jaWwgc3RlbmNpbFsyMDQ4XTsKCiAgIDsKCiAgIGlmIChjdHgtPlBpeGVsLkluZGV4U2hpZnQg
fHwgY3R4LT5QaXhlbC5JbmRleE9mZnNldCB8fAogICAgICAgY3R4LT5QaXhlbC5NYXBTdGVuY2ls
RmxhZykgewoKICAgICAgX21lc2FfbWVtY3B5KHN0ZW5jaWwsIHNvdXJjZSwgbiAqIHNpemVvZihH
THN0ZW5jaWwpKTsKICAgICAgaWYgKGN0eC0+UGl4ZWwuSW5kZXhTaGlmdCB8fCBjdHgtPlBpeGVs
LkluZGV4T2Zmc2V0KSB7CiAgICAgICAgIF9tZXNhX3NoaWZ0X2FuZF9vZmZzZXRfc3RlbmNpbCgg
Y3R4LCBuLCBzdGVuY2lsICk7CiAgICAgIH0KICAgICAgaWYgKGN0eC0+UGl4ZWwuTWFwU3RlbmNp
bEZsYWcpIHsKICAgICAgICAgX21lc2FfbWFwX3N0ZW5jaWwoIGN0eCwgbiwgc3RlbmNpbCApOwog
ICAgICB9CiAgICAgIHNvdXJjZSA9IHN0ZW5jaWw7CiAgIH0KCiAgIHN3aXRjaCAoZHN0VHlwZSkg
ewogICBjYXNlIDB4MTQwMToKICAgICAgaWYgKHNpemVvZihHTHN0ZW5jaWwpID09IDgpIHsKICAg
ICAgICAgX21lc2FfbWVtY3B5KGRlc3QsIHNvdXJjZSwgbik7CiAgICAgIH0KICAgICAgZWxzZSB7
CiAgICAgICAgIEdMdWJ5dGUgKmRzdCA9IChHTHVieXRlICopIGRlc3Q7CiAgICAgICAgIEdMdWlu
dCBpOwogICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgIGRzdFtpXSA9IChH
THVieXRlKSBzb3VyY2VbaV07CiAgICAgICAgIH0KICAgICAgfQogICAgICBicmVhazsKICAgY2Fz
ZSAweDE0MDA6CiAgICAgIGlmIChzaXplb2YoR0xzdGVuY2lsKSA9PSA4KSB7CiAgICAgICAgIF9t
ZXNhX21lbWNweShkZXN0LCBzb3VyY2UsIG4pOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAg
ICBHTGJ5dGUgKmRzdCA9IChHTGJ5dGUgKikgZGVzdDsKICAgICAgICAgR0x1aW50IGk7CiAgICAg
ICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgZHN0W2ldID0gKEdMYnl0ZSkgc291
cmNlW2ldOwogICAgICAgICB9CiAgICAgIH0KICAgICAgYnJlYWs7CiAgIGNhc2UgMHgxNDAzOgog
ICAgICB7CiAgICAgICAgIEdMdXNob3J0ICpkc3QgPSAoR0x1c2hvcnQgKikgZGVzdDsKICAgICAg
ICAgR0x1aW50IGk7CiAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgZHN0
W2ldID0gKEdMdXNob3J0KSBzb3VyY2VbaV07CiAgICAgICAgIH0KICAgICAgICAgaWYgKGRzdFBh
Y2tpbmctPlN3YXBCeXRlcykgewogICAgICAgICAgICBfbWVzYV9zd2FwMiggKEdMdXNob3J0ICop
IGRzdCwgbiApOwogICAgICAgICB9CiAgICAgIH0KICAgICAgYnJlYWs7CiAgIGNhc2UgMHgxNDAy
OgogICAgICB7CiAgICAgICAgIEdMc2hvcnQgKmRzdCA9IChHTHNob3J0ICopIGRlc3Q7CiAgICAg
ICAgIEdMdWludCBpOwogICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgIGRz
dFtpXSA9IChHTHNob3J0KSBzb3VyY2VbaV07CiAgICAgICAgIH0KICAgICAgICAgaWYgKGRzdFBh
Y2tpbmctPlN3YXBCeXRlcykgewogICAgICAgICAgICBfbWVzYV9zd2FwMiggKEdMdXNob3J0ICop
IGRzdCwgbiApOwogICAgICAgICB9CiAgICAgIH0KICAgICAgYnJlYWs7CiAgIGNhc2UgMHgxNDA1
OgogICAgICB7CiAgICAgICAgIEdMdWludCAqZHN0ID0gKEdMdWludCAqKSBkZXN0OwogICAgICAg
ICBHTHVpbnQgaTsKICAgICAgICAgZm9yIChpPTA7aTxuO2krKykgewogICAgICAgICAgICBkc3Rb
aV0gPSAoR0x1aW50KSBzb3VyY2VbaV07CiAgICAgICAgIH0KICAgICAgICAgaWYgKGRzdFBhY2tp
bmctPlN3YXBCeXRlcykgewogICAgICAgICAgICBfbWVzYV9zd2FwNCggKEdMdWludCAqKSBkc3Qs
IG4gKTsKICAgICAgICAgfQogICAgICB9CiAgICAgIGJyZWFrOwogICBjYXNlIDB4MTQwNDoKICAg
ICAgewogICAgICAgICBHTGludCAqZHN0ID0gKEdMaW50ICopIGRlc3Q7CiAgICAgICAgIEdMdWlu
dCBpOwogICAgICAgICBmb3IgKGk9MDtpPG47aSsrKSB7CiAgICAgICAgICAgICpkc3QrKyA9IChH
TGludCkgc291cmNlW2ldOwogICAgICAgICB9CiAgICAgICAgIGlmIChkc3RQYWNraW5nLT5Td2Fw
Qnl0ZXMpIHsKICAgICAgICAgICAgX21lc2Ffc3dhcDQoIChHTHVpbnQgKikgZHN0LCBuICk7CiAg
ICAgICAgIH0KICAgICAgfQogICAgICBicmVhazsKICAgY2FzZSAweDE0MDY6CiAgICAgIHsKICAg
ICAgICAgR0xmbG9hdCAqZHN0ID0gKEdMZmxvYXQgKikgZGVzdDsKICAgICAgICAgR0x1aW50IGk7
CiAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgZHN0W2ldID0gKEdMZmxv
YXQpIHNvdXJjZVtpXTsKICAgICAgICAgfQogICAgICAgICBpZiAoZHN0UGFja2luZy0+U3dhcEJ5
dGVzKSB7CiAgICAgICAgICAgIF9tZXNhX3N3YXA0KCAoR0x1aW50ICopIGRzdCwgbiApOwogICAg
ICAgICB9CiAgICAgIH0KICAgICAgYnJlYWs7CiAgIGNhc2UgMHgxQTAwOgogICAgICBpZiAoZHN0
UGFja2luZy0+THNiRmlyc3QpIHsKICAgICAgICAgR0x1Ynl0ZSAqZHN0ID0gKEdMdWJ5dGUgKikg
ZGVzdDsKICAgICAgICAgR0xpbnQgc2hpZnQgPSAwOwogICAgICAgICBHTHVpbnQgaTsKICAgICAg
ICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBpZiAoc2hpZnQgPT0gMCkK
ICAgICAgICAgICAgICAgKmRzdCA9IDA7CiAgICAgICAgICAgICpkc3QgfD0gKChzb3VyY2VbaV0g
IT0gMCkgPDwgc2hpZnQpOwogICAgICAgICAgICBzaGlmdCsrOwogICAgICAgICAgICBpZiAoc2hp
ZnQgPT0gOCkgewogICAgICAgICAgICAgICBzaGlmdCA9IDA7CiAgICAgICAgICAgICAgIGRzdCsr
OwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICAg
R0x1Ynl0ZSAqZHN0ID0gKEdMdWJ5dGUgKikgZGVzdDsKICAgICAgICAgR0xpbnQgc2hpZnQgPSA3
OwogICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewog
ICAgICAgICAgICBpZiAoc2hpZnQgPT0gNykKICAgICAgICAgICAgICAgKmRzdCA9IDA7CiAgICAg
ICAgICAgICpkc3QgfD0gKChzb3VyY2VbaV0gIT0gMCkgPDwgc2hpZnQpOwogICAgICAgICAgICBz
aGlmdC0tOwogICAgICAgICAgICBpZiAoc2hpZnQgPCAwKSB7CiAgICAgICAgICAgICAgIHNoaWZ0
ID0gNzsKICAgICAgICAgICAgICAgZHN0Kys7CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICB9CiAgICAgIGJyZWFrOwogICBkZWZhdWx0OgogICAgICBfbWVzYV9wcm9ibGVtKGN0eCwgImJh
ZCB0eXBlIGluIF9tZXNhX3BhY2tfaW5kZXhfc3BhbiIpOwogICB9Cn0KCgoKdm9pZApfbWVzYV91
bnBhY2tfZGVwdGhfc3BhbiggY29uc3QgR0xjb250ZXh0ICpjdHgsIEdMdWludCBuLCBHTGZsb2F0
ICpkZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIHNyY1R5cGUsIGNvbnN0IEdM
dm9pZCAqc291cmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGdsX3Bp
eGVsc3RvcmVfYXR0cmliICpzcmNQYWNraW5nICkKewogICBzd2l0Y2ggKHNyY1R5cGUpIHsKICAg
ICAgY2FzZSAweDE0MDA6CiAgICAgICAgIHsKICAgICAgICAgICAgR0x1aW50IGk7CiAgICAgICAg
ICAgIGNvbnN0IEdMdWJ5dGUgKnNyYyA9IChjb25zdCBHTHVieXRlICopIHNvdXJjZTsKICAgICAg
ICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICAgICBkZXN0W2ldID0g
KCgyLjBGICogKHNyY1tpXSkgKyAxLjBGKSAqICgxLjBGLzI1NS4wRikpOwogICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMHgxNDAxOgogICAgICAgICB7
CiAgICAgICAgICAgIEdMdWludCBpOwogICAgICAgICAgICBjb25zdCBHTHVieXRlICpzcmMgPSAo
Y29uc3QgR0x1Ynl0ZSAqKSBzb3VyY2U7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBp
KyspIHsKICAgICAgICAgICAgICAgZGVzdFtpXSA9IF9tZXNhX3VieXRlX3RvX2Zsb2F0X2NvbG9y
X3RhYlsodW5zaWduZWQgaW50KShzcmNbaV0pXTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgICAgIGJyZWFrOwogICAgICBjYXNlIDB4MTQwMjoKICAgICAgICAgewogICAgICAgICAgICBH
THVpbnQgaTsKICAgICAgICAgICAgY29uc3QgR0xzaG9ydCAqc3JjID0gKGNvbnN0IEdMc2hvcnQg
Kikgc291cmNlOwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAg
ICAgICAgIGRlc3RbaV0gPSAoKDIuMEYgKiAoc3JjW2ldKSArIDEuMEYpICogKDEuMEYvNjU1MzUu
MEYpKTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgICBjYXNl
IDB4MTQwMzoKICAgICAgICAgewogICAgICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgICAgY29u
c3QgR0x1c2hvcnQgKnNyYyA9IChjb25zdCBHTHVzaG9ydCAqKSBzb3VyY2U7CiAgICAgICAgICAg
IGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgICAgZGVzdFtpXSA9ICgoR0xm
bG9hdCkgKHNyY1tpXSkgKiAoMS4wRiAvIDY1NTM1LjBGKSk7CiAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICBicmVhazsKICAgICAgY2FzZSAweDE0MDQ6CiAgICAgICAgIHsKICAgICAg
ICAgICAgR0x1aW50IGk7CiAgICAgICAgICAgIGNvbnN0IEdMaW50ICpzcmMgPSAoY29uc3QgR0xp
bnQgKikgc291cmNlOwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAg
ICAgICAgICAgIGRlc3RbaV0gPSAoKDIuMEYgKiAoc3JjW2ldKSArIDEuMEYpICogKDEuMEYvNDI5
NDk2NzI5NC4wRikpOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAg
ICAgIGNhc2UgMHgxNDA1OgogICAgICAgICB7CiAgICAgICAgICAgIEdMdWludCBpOwogICAgICAg
ICAgICBjb25zdCBHTHVpbnQgKnNyYyA9IChjb25zdCBHTHVpbnQgKikgc291cmNlOwogICAgICAg
ICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgICAgIGRlc3RbaV0gPSAo
KEdMZmxvYXQpIChzcmNbaV0pICogKDEuMEYgLyA0Mjk0OTY3Mjk1LjBGKSk7CiAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICAgY2FzZSAweDE0MDY6CiAgICAgICAg
IF9tZXNhX21lbWNweShkZXN0LCBzb3VyY2UsIG4gKiBzaXplb2YoR0xmbG9hdCkpOwogICAgICAg
ICBicmVhazsKICAgICAgZGVmYXVsdDoKICAgICAgICAgX21lc2FfcHJvYmxlbSgwLCAiYmFkIHR5
cGUgaW4gX21lc2FfdW5wYWNrX2RlcHRoX3NwYW4oKSIpOwogICAgICAgICByZXR1cm47CiAgIH0K
CgoKICAgaWYgKGN0eC0+UGl4ZWwuRGVwdGhTY2FsZSAhPSAxLjAgfHwgY3R4LT5QaXhlbC5EZXB0
aEJpYXMgIT0gMC4wKSB7CiAgICAgIEdMdWludCBpOwogICAgICBmb3IgKGkgPSAwOyBpIDwgbjsg
aSsrKSB7CiAgICAgICAgIEdMZmxvYXQgZCA9IGRlc3RbaV0gKiBjdHgtPlBpeGVsLkRlcHRoU2Nh
bGUgKyBjdHgtPlBpeGVsLkRlcHRoQmlhczsKICAgICAgICAgZGVzdFtpXSA9ICggKGQpPCgwLjBG
KSA/ICgwLjBGKSA6ICgoZCk+KDEuMEYpID8gKDEuMEYpIDogKGQpKSApOwogICAgICB9CiAgIH0K
fQoKCgoKCgp2b2lkCl9tZXNhX3BhY2tfZGVwdGhfc3BhbiggY29uc3QgR0xjb250ZXh0ICpjdHgs
IEdMdWludCBuLCBHTHZvaWQgKmRlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGRz
dFR5cGUsIGNvbnN0IEdMZmxvYXQgKmRlcHRoU3BhbiwKICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBzdHJ1Y3QgZ2xfcGl4ZWxzdG9yZV9hdHRyaWIgKmRzdFBhY2tpbmcgKQp7CiAgIEdMZmxv
YXQgZGVwdGhDb3B5WzIwNDhdOwogICBjb25zdCBHTGJvb2xlYW4gYmlhc19vcl9zY2FsZSA9IGN0
eC0+UGl4ZWwuRGVwdGhCaWFzICE9IDAuMCB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGN0eC0+UGl4ZWwuRGVwdGhTY2FsZSAhPSAxLjA7CgogICA7CgogICBpZiAoYmlhc19v
cl9zY2FsZSkgewogICAgICBHTHVpbnQgaTsKICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykg
ewogICAgICAgICBHTGZsb2F0IGQ7CiAgICAgICAgIGQgPSBkZXB0aFNwYW5baV0gKiBjdHgtPlBp
eGVsLkRlcHRoU2NhbGUgKyBjdHgtPlBpeGVsLkRlcHRoQmlhczsKICAgICAgICAgZGVwdGhDb3B5
W2ldID0gKCAoZCk8KDAuMEYpID8gKDAuMEYpIDogKChkKT4oMS4wRikgPyAoMS4wRikgOiAoZCkp
ICk7CiAgICAgIH0KICAgICAgZGVwdGhTcGFuID0gZGVwdGhDb3B5OwogICB9CgogICBzd2l0Y2gg
KGRzdFR5cGUpIHsKICAgY2FzZSAweDE0MDE6CiAgICAgIHsKICAgICAgICAgR0x1Ynl0ZSAqZHN0
ID0gKEdMdWJ5dGUgKikgZGVzdDsKICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgIGZvciAoaSA9
IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgZHN0W2ldID0gKChHTHVieXRlKSAoR0xpbnQp
ICgoZGVwdGhTcGFuW2ldKSAqIDI1NS4wRikpOwogICAgICAgICB9CiAgICAgIH0KICAgICAgYnJl
YWs7CiAgIGNhc2UgMHgxNDAwOgogICAgICB7CiAgICAgICAgIEdMYnl0ZSAqZHN0ID0gKEdMYnl0
ZSAqKSBkZXN0OwogICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47
IGkrKykgewogICAgICAgICAgICBkc3RbaV0gPSAoICgoKEdMaW50KSAoMjU1LjBGICogKGRlcHRo
U3BhbltpXSkpKSAtIDEpIC8gMiApOwogICAgICAgICB9CiAgICAgIH0KICAgICAgYnJlYWs7CiAg
IGNhc2UgMHgxNDAzOgogICAgICB7CiAgICAgICAgIEdMdXNob3J0ICpkc3QgPSAoR0x1c2hvcnQg
KikgZGVzdDsKICAgICAgICAgR0x1aW50IGk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBp
KyspIHsKICAgICAgICAgICAgZHN0W2ldID0gKChHTHVzaG9ydCkgKEdMaW50KSAoKGRlcHRoU3Bh
bltpXSkgKiA2NTUzNS4wRikpOwogICAgICAgICB9CiAgICAgICAgIGlmIChkc3RQYWNraW5nLT5T
d2FwQnl0ZXMpIHsKICAgICAgICAgICAgX21lc2Ffc3dhcDIoIChHTHVzaG9ydCAqKSBkc3QsIG4g
KTsKICAgICAgICAgfQogICAgICB9CiAgICAgIGJyZWFrOwogICBjYXNlIDB4MTQwMjoKICAgICAg
ewogICAgICAgICBHTHNob3J0ICpkc3QgPSAoR0xzaG9ydCAqKSBkZXN0OwogICAgICAgICBHTHVp
bnQgaTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBkc3Rb
aV0gPSAoICgoKEdMaW50KSAoNjU1MzUuMEYgKiAoZGVwdGhTcGFuW2ldKSkpIC0gMSkgLyAyICk7
CiAgICAgICAgIH0KICAgICAgICAgaWYgKGRzdFBhY2tpbmctPlN3YXBCeXRlcykgewogICAgICAg
ICAgICBfbWVzYV9zd2FwMiggKEdMdXNob3J0ICopIGRzdCwgbiApOwogICAgICAgICB9CiAgICAg
IH0KICAgICAgYnJlYWs7CiAgIGNhc2UgMHgxNDA1OgogICAgICB7CiAgICAgICAgIEdMdWludCAq
ZHN0ID0gKEdMdWludCAqKSBkZXN0OwogICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgZm9yIChp
ID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBkc3RbaV0gPSAoKEdMdWludCkgKChkZXB0
aFNwYW5baV0pICogNDI5NDk2NzI5NS4wKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGRzdFBh
Y2tpbmctPlN3YXBCeXRlcykgewogICAgICAgICAgICBfbWVzYV9zd2FwNCggKEdMdWludCAqKSBk
c3QsIG4gKTsKICAgICAgICAgfQogICAgICB9CiAgICAgIGJyZWFrOwogICBjYXNlIDB4MTQwNDoK
ICAgICAgewogICAgICAgICBHTGludCAqZHN0ID0gKEdMaW50ICopIGRlc3Q7CiAgICAgICAgIEdM
dWludCBpOwogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGRz
dFtpXSA9ICggKEdMaW50KSAoMjE0NzQ4MzY0Ny4wICogKGRlcHRoU3BhbltpXSkpICk7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKGRzdFBhY2tpbmctPlN3YXBCeXRlcykgewogICAgICAgICAgICBf
bWVzYV9zd2FwNCggKEdMdWludCAqKSBkc3QsIG4gKTsKICAgICAgICAgfQogICAgICB9CiAgICAg
IGJyZWFrOwogICBjYXNlIDB4MTQwNjoKICAgICAgewogICAgICAgICBHTGZsb2F0ICpkc3QgPSAo
R0xmbG9hdCAqKSBkZXN0OwogICAgICAgICBHTHVpbnQgaTsKICAgICAgICAgZm9yIChpID0gMDsg
aSA8IG47IGkrKykgewogICAgICAgICAgICBkc3RbaV0gPSBkZXB0aFNwYW5baV07CiAgICAgICAg
IH0KICAgICAgICAgaWYgKGRzdFBhY2tpbmctPlN3YXBCeXRlcykgewogICAgICAgICAgICBfbWVz
YV9zd2FwNCggKEdMdWludCAqKSBkc3QsIG4gKTsKICAgICAgICAgfQogICAgICB9CiAgICAgIGJy
ZWFrOwogICBkZWZhdWx0OgogICAgICBfbWVzYV9wcm9ibGVtKGN0eCwgImJhZCB0eXBlIGluIF9t
ZXNhX3BhY2tfZGVwdGhfc3BhbiIpOwogICB9Cn0KIyAzODgwICJpbWFnZS5jIgp2b2lkICoKX21l
c2FfdW5wYWNrX2ltYWdlKCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBk
ZXB0aCwKICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgY29u
c3QgR0x2b2lkICpwaXhlbHMsCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGdsX3Bp
eGVsc3RvcmVfYXR0cmliICp1bnBhY2sgKQp7CiAgIEdMaW50IGJ5dGVzUGVyUm93LCBjb21wc1Bl
clJvdzsKICAgR0xib29sZWFuIGZsaXBCeXRlcywgc3dhcDIsIHN3YXA0OwoKICAgaWYgKCFwaXhl
bHMpCiAgICAgIHJldHVybiAwOwoKICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVpZ2h0IDw9IDAgfHwg
ZGVwdGggPD0gMCkKICAgICAgcmV0dXJuIDA7CgogICBpZiAoZm9ybWF0ID09IDB4MUEwMCkgewog
ICAgICBieXRlc1BlclJvdyA9ICh3aWR0aCArIDcpID4+IDM7CiAgICAgIGZsaXBCeXRlcyA9ICF1
bnBhY2stPkxzYkZpcnN0OwogICAgICBzd2FwMiA9IHN3YXA0ID0gMHgwOwogICAgICBjb21wc1Bl
clJvdyA9IDA7CiAgIH0KICAgZWxzZSB7CiAgICAgIGNvbnN0IEdMaW50IGJ5dGVzUGVyUGl4ZWwg
PSBfbWVzYV9ieXRlc19wZXJfcGl4ZWwoZm9ybWF0LCB0eXBlKTsKICAgICAgY29uc3QgR0xpbnQg
Y29tcG9uZW50cyA9IF9tZXNhX2NvbXBvbmVudHNfaW5fZm9ybWF0KGZvcm1hdCk7CiAgICAgIEdM
aW50IGJ5dGVzUGVyQ29tcDsKICAgICAgaWYgKGJ5dGVzUGVyUGl4ZWwgPD0gMCB8fCBjb21wb25l
bnRzIDw9IDApCiAgICAgICAgIHJldHVybiAwOwogICAgICBieXRlc1BlclJvdyA9IGJ5dGVzUGVy
UGl4ZWwgKiB3aWR0aDsKICAgICAgYnl0ZXNQZXJDb21wID0gYnl0ZXNQZXJQaXhlbCAvIGNvbXBv
bmVudHM7CiAgICAgIGZsaXBCeXRlcyA9IDB4MDsKICAgICAgc3dhcDIgPSAoYnl0ZXNQZXJDb21w
ID09IDIpICYmIHVucGFjay0+U3dhcEJ5dGVzOwogICAgICBzd2FwNCA9IChieXRlc1BlckNvbXAg
PT0gNCkgJiYgdW5wYWNrLT5Td2FwQnl0ZXM7CiAgICAgIGNvbXBzUGVyUm93ID0gY29tcG9uZW50
cyAqIHdpZHRoOwogICAgICAoKHZvaWQpICgoY29tcHNQZXJSb3cgPj0gd2lkdGgpID8gMCA6IChf
X2VwcmludGYgKCIlczoldTogZmFpbGVkIGFzc2VydGlvbiBgJXMnXG4iLCAiaW1hZ2UuYyIsIDM5
MTIsICJjb21wc1BlclJvdyA+PSB3aWR0aCIpLCAwKSkpOwogICB9CgogICB7CiAgICAgIEdMdWJ5
dGUgKmRlc3RCdWZmZXIgPSAoR0x1Ynl0ZSAqKSBfbWVzYV9tYWxsb2MoYnl0ZXNQZXJSb3cgKiBo
ZWlnaHQgKiBkZXB0aCk7CiAgICAgIEdMdWJ5dGUgKmRzdDsKICAgICAgR0xpbnQgaW1nLCByb3c7
CiAgICAgIGlmICghZGVzdEJ1ZmZlcikKICAgICAgICAgcmV0dXJuIDA7CgogICAgICBkc3QgPSBk
ZXN0QnVmZmVyOwogICAgICBmb3IgKGltZyA9IDA7IGltZyA8IGRlcHRoOyBpbWcrKykgewogICAg
ICAgICBmb3IgKHJvdyA9IDA7IHJvdyA8IGhlaWdodDsgcm93KyspIHsKICAgICAgICAgICAgY29u
c3QgR0x2b2lkICpzcmMgPSBfbWVzYV9pbWFnZV9hZGRyZXNzKHVucGFjaywgcGl4ZWxzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBp
bWcsIHJvdywgMCk7CiAgICAgICAgICAgIF9tZXNhX21lbWNweShkc3QsIHNyYywgYnl0ZXNQZXJS
b3cpOwoKICAgICAgICAgICAgaWYgKGZsaXBCeXRlcykgewogICAgICAgICAgICAgICBmbGlwX2J5
dGVzKChHTHVieXRlICopIGRzdCwgYnl0ZXNQZXJSb3cpOwogICAgICAgICAgICB9CiAgICAgICAg
ICAgIGVsc2UgaWYgKHN3YXAyKSB7CiAgICAgICAgICAgICAgIF9tZXNhX3N3YXAyKChHTHVzaG9y
dCopIGRzdCwgY29tcHNQZXJSb3cpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYg
KHN3YXA0KSB7CiAgICAgICAgICAgICAgIF9tZXNhX3N3YXA0KChHTHVpbnQqKSBkc3QsIGNvbXBz
UGVyUm93KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkc3QgKz0gYnl0ZXNQZXJSb3c7CiAg
ICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gZGVzdEJ1ZmZlcjsKICAgfQp9Cg==


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: middle-end/8611: Internal compiler error
@ 2002-11-27  8:18 reichelt
  0 siblings, 0 replies; 2+ messages in thread
From: reichelt @ 2002-11-27  8:18 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, mnordine, nobody

Synopsis: Internal compiler error

State-Changed-From-To: open->closed
State-Changed-By: reichelt
State-Changed-When: Tue Nov 19 16:09:15 2002
State-Changed-Why:
    Fixed in gcc 3.2
    
    I could reproduce the bug on i686-pc-linux-gnu
    with gcc 3.1, but not with 3.2, 3.2-branch and mainline.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8611


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-11-20  0:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-11-22 11:16 middle-end/8611: Internal compiler error mnordine
2002-11-27  8:18 reichelt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).