This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

c++/1039: cout does not give correct output with pointer ++



>Number:         1039
>Category:       c++
>Synopsis:       cout does not give correct output with pointer ++
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Dec 11 08:16:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     purdue university
>Release:        Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux/2.95.3/specs gcc version 2.95.3 19991030 (prerelease)  unknown-1.0
>Organization:
>Environment:
Linux pvil-a-070.resnet.purdue.edu 2.2.17-21mdk #1 Thu Oct 5 13:16:08 CEST 2000
i686 unknown
>Description:
when p is a int pointer, "cout<<p<<*p<<p++<<*p++<<endl;"
will not give a correct output. p was affected by the later
p++. Only with cout<<p<<*p;cout<<p++<<*p++; will give correct
output. This problem was only found on the Linux OS with a 
intel machine. The same code compiled in a SUN workstation 
will give the right output.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/x-tar; name="bug.tar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bug.tar"

dGVzdC5jcHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMDc2
NQAwMDAwNzY1ADAwMDAwMDAwNDczADA3MjE1MTcwMjA1ADAxMDY2MQAgMAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGxpZAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAbGlkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj
aW5jbHVkZSA8aW9zdHJlYW0+CgppbnQgbWFpbigpIHsKICAgaW50ICpwID0gbmV3IGludFsxMF07
CgogICBmb3IoaW50IGk9MDsgaTwxMDtpKyspIHsKICAgICAqKHAraSk9aSoyOwogICAgIGNvdXQ8
PCJwIjw8aTw8IiA9Ijw8KihwK2kpPDwocCtpKTw8ZW5kbDsKICAgfQogICBjb3V0PDwicD0gIjw8
cDw8ZW5kbAogICAgICAgPDwiKnA9ICI8PCpwPDxlbmRsCiAgICAgICA8PCJwKys9Ijw8cCsrPDxl
bmRsCiAgICAgICA8PCIqcCsrPSI8PCgqcCsrKTw8ZW5kbAogICAgICAgPDwicD0iPDxwPDxlbmRs
CiAgICAgICA8PCIqcD0iPDwqcDw8ZW5kbDsKfQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRl
c3QuaWkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDA3NjUA
MDAwMDc2NQAwMDAwMDA2NzA0NwAwNzIxNTE3NjM0NgAwMTA1MjYAIDAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABsaWQAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAGxpZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyAx
ICJ0ZXN0LmNwcCIKIyAxICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45
NS4zLy4uLy4uLy4uLy4uL2luY2x1ZGUvZysrLTMvaW9zdHJlYW0iIDEgMwogCiAKCgoKIyAxICIv
dXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45NS4zLy4uLy4uLy4uLy4uL2lu
Y2x1ZGUvZysrLTMvaW9zdHJlYW0uaCIgMSAzCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiNw
cmFnbWEgaW50ZXJmYWNlCgoKCiMgMSAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxp
bnV4LzIuOTUuMy8uLi8uLi8uLi8uLi9pbmNsdWRlL2crKy0zL3N0cmVhbWJ1Zi5oIiAxIDMKIAoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiNwcmFnbWEgaW50ZXJmYWNlCgoKICAgCgoKCmV4dGVy
biAiQyIgewojIDEgIi91c3IvaW5jbHVkZS9saWJpby5oIiAxIDMKIAoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKIyAxICIvdXNyL2luY2x1ZGUvX0dfY29uZmlnLmgiIDEgMwogCgoKCgoKIAoK
IyAxICIvdXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIiAxIDMKIAoKCgoKCgoKCgoKCgoKCgoKCiAK
CgoKCgoKIyAxICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMSAzCiAKCgoKCgoKCgoKCgoKCgoK
CgoKCgogCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKIAoKCgoKCgoKCgoKCgoKCgoKCgoKIAoKCgoKCiAKCgoKIAoKCgoKCgoKIAojIDEz
OCAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDMKCgogCgoKCgoKCgoKCiAKCgoKCgogCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCiMgMTk2ICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMwoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIAoKCgogCgoKCgoKCgoKIAoKCgoKIAoK
IyAxICIvdXNyL2luY2x1ZGUvc3lzL2NkZWZzLmgiIDEgMwogCgoKCgoKCgoKCgoKCgoKCgoKCgoK
IAoKCgoKIAoKCgoKCiAKCgoKCgoKCgogCgoKCgojIDcxICIvdXNyL2luY2x1ZGUvc3lzL2NkZWZz
LmgiIDMKCgogCgoKCgoKCgogCgoKCiMgMTAzICIvdXNyL2luY2x1ZGUvc3lzL2NkZWZzLmgiIDMK
CgoKIAoKCgoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKIAoKCgoKCgoKCiAKCgoKCgoKCgogCgoKCgoK
CgoKCiAKCgoKCgoKCiMgMjUwICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMiAzCgoKIAoKCgoK
CgoKCiAKCgoKCgogCgogCgoKCgoKCgoKIyAxICIvdXNyL2luY2x1ZGUvZ251L3N0dWJzLmgiIDEg
MwogCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIyAyNzggIi91c3IvaW5j
bHVkZS9mZWF0dXJlcy5oIiAyIDMKCgoKCiMgMjYgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgi
IDIgMwoKCgojIDEgIi91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51eC8yLjk1LjMv
aW5jbHVkZS9zdGRkZWYuaCIgMSAzCgoKCgoKCiAKCgojIDE5ICIvdXNyL2xpYi9nY2MtbGliL2k1
ODYtbWFuZHJha2UtbGludXgvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgoKIAoKCiAKCgoK
CgogCgoKIyA2MSAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUuMy9p
bmNsdWRlL3N0ZGRlZi5oIiAzCgoKIAoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKIAoKCgoKCiAK
CiAKCiMgMTMxICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45NS4zL2lu
Y2x1ZGUvc3RkZGVmLmgiIDMKCgogCgogCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
Cgp0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgogCgoK
CgogCgojIDI3MSAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUuMy9p
bmNsdWRlL3N0ZGRlZi5oIiAzCgoKIyAyODMgIi91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFr
ZS1saW51eC8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCiAKCiAKCiMgMzE3ICIvdXNyL2xp
Yi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMK
CgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIyAyOSAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMu
aCIgMiAzCgoKIAp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191X2NoYXI7CnR5cGVkZWYgdW5zaWdu
ZWQgc2hvcnQgX191X3Nob3J0Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VfaW50Owp0eXBlZGVm
IHVuc2lnbmVkIGxvbmcgX191X2xvbmc7CgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQg
bG9uZyBsb25nIGludCBfX3VfcXVhZF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgbG9uZyBsb25n
IGludCBfX3F1YWRfdDsKIyA0OCAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMwoKdHlwZWRl
ZiBzaWduZWQgY2hhciBfX2ludDhfdDsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdWludDhfdDsK
dHlwZWRlZiBzaWduZWQgc2hvcnQgaW50IF9faW50MTZfdDsKdHlwZWRlZiB1bnNpZ25lZCBzaG9y
dCBpbnQgX191aW50MTZfdDsKdHlwZWRlZiBzaWduZWQgaW50IF9faW50MzJfdDsKdHlwZWRlZiB1
bnNpZ25lZCBpbnQgX191aW50MzJfdDsKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBzaWduZWQgbG9u
ZyBsb25nIGludCBfX2ludDY0X3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25n
IGxvbmcgaW50IF9fdWludDY0X3Q7Cgp0eXBlZGVmIF9fcXVhZF90ICpfX3FhZGRyX3Q7Cgp0eXBl
ZGVmIF9fdV9xdWFkX3QgX19kZXZfdDsJCSAKdHlwZWRlZiBfX3VfaW50IF9fdWlkX3Q7CQkgCnR5
cGVkZWYgX191X2ludCBfX2dpZF90OwkJIAp0eXBlZGVmIF9fdV9sb25nIF9faW5vX3Q7CQkgCnR5
cGVkZWYgX191X2ludCBfX21vZGVfdDsJCSAKdHlwZWRlZiBfX3VfaW50IF9fbmxpbmtfdDsgCQkg
CnR5cGVkZWYgbG9uZyBpbnQgX19vZmZfdDsJCSAKdHlwZWRlZiBfX3F1YWRfdCBfX2xvZmZfdDsJ
CSAKdHlwZWRlZiBpbnQgX19waWRfdDsJCQkgCnR5cGVkZWYgaW50IF9fc3NpemVfdDsJCQkgCnR5
cGVkZWYgbG9uZyBpbnQgX19ybGltX3Q7CQkgCnR5cGVkZWYgX19xdWFkX3QgX19ybGltNjRfdDsJ
CSAKdHlwZWRlZiBfX3VfaW50IF9faWRfdDsJCQkgCgp0eXBlZGVmIHN0cnVjdAogIHsKICAgIGlu
dCBfX3ZhbFsyXTsKICB9IF9fZnNpZF90OwkJCQkgCgogCnR5cGVkZWYgaW50IF9fZGFkZHJfdDsJ
CQkgCnR5cGVkZWYgY2hhciAqX19jYWRkcl90Owp0eXBlZGVmIGxvbmcgaW50IF9fdGltZV90Owp0
eXBlZGVmIGxvbmcgaW50IF9fc3dibGtfdDsJCSAKDAp0eXBlZGVmIGxvbmcgaW50IF9fY2xvY2tf
dDsKCiAKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX2ZkX21hc2s7CgogCgoKIAoKCgoKIAp0
eXBlZGVmIHN0cnVjdAogIHsKICAgICAKCgoKCgogICAgX19mZF9tYXNrIF9fZmRzX2JpdHNbMTAy
NCAgLyAoOCAqIHNpemVvZiAoX19mZF9tYXNrKSkgXTsKCgogIH0gX19mZF9zZXQ7CgoKdHlwZWRl
ZiBpbnQgX19rZXlfdDsKCiAKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBpbnQgX19pcGNfcGlkX3Q7
CgoKIAoKIAp0eXBlZGVmIGxvbmcgaW50IF9fYmxrY250X3Q7CnR5cGVkZWYgX19xdWFkX3QgX19i
bGtjbnQ2NF90OwoKIAp0eXBlZGVmIF9fdV9sb25nIF9fZnNibGtjbnRfdDsKdHlwZWRlZiBfX3Vf
cXVhZF90IF9fZnNibGtjbnQ2NF90OwoKIAp0eXBlZGVmIF9fdV9sb25nIF9fZnNmaWxjbnRfdDsK
dHlwZWRlZiBfX3VfcXVhZF90IF9fZnNmaWxjbnQ2NF90OwoKIAp0eXBlZGVmIF9fdV9sb25nIF9f
aW5vNjRfdDsKCiAKdHlwZWRlZiBfX2xvZmZfdCBfX29mZjY0X3Q7CgogCnR5cGVkZWYgbG9uZyBp
bnQgX190X3NjYWxhcl90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9fdF91c2NhbGFyX3Q7
CgogCnR5cGVkZWYgaW50IF9faW50cHRyX3Q7CgoKIAoKCgoKCiMgOSAiL3Vzci9pbmNsdWRlL19H
X2NvbmZpZy5oIiAyIDMKCgoKCgojIDEgIi91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1s
aW51eC8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCgoKCgoKCiAKCgojIDE5ICIvdXNyL2xp
Yi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMK
CgoKIAoKCiAKCgoKCgogCgoKIyA2MSAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxp
bnV4LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKIAoKCgoKCiAKCgoKCgoKCgoKCgoKCgoK
CgoKIAoKCgoKCiAKCiAKCiMgMTMxICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGlu
dXgvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgogCgogCgoKIyAxODggIi91c3IvbGliL2dj
Yy1saWIvaTU4Ni1tYW5kcmFrZS1saW51eC8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCgoK
CiAKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgogCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCnR5cGVkZWYgdW5zaWduZWQgaW50ICB3
aW50X3Q7CgoKCgogCgogCgojIDMxNyAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxp
bnV4LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKCgogCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CiMgMTQgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMiAzCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CnR5cGVkZWYgaW50IF9HX2ludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18p
KSk7CnR5cGVkZWYgaW50IF9HX2ludDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJ
X18pKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9HX3VpbnQxNl90IF9fYXR0cmlidXRlX18gKChf
X21vZGVfXyAoX19ISV9fKSkpOwp0eXBlZGVmIHVuc2lnbmVkIGludCBfR191aW50MzJfdCBfX2F0
dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fU0lfXykpKTsKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoK
IAoKCgoKIAoKCgoKCgoKCgoKCgoKCiMgMzAgIi91c3IvaW5jbHVkZS9saWJpby5oIiAyIDMKCgoK
CgoKCgoKCgoKCgoKCiAKCiMgMSAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4
LzIuOTUuMy9pbmNsdWRlL3N0ZGFyZy5oIiAxIDMKIAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIAoKCgoKCgp0eXBlZGVmIHZv
aWQgKl9fZ251Y192YV9saXN0OwoKCgogCgojIDEyMiAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1h
bmRyYWtlLWxpbnV4LzIuOTUuMy9pbmNsdWRlL3N0ZGFyZy5oIiAzCgoKCgoKCgoKCgoKCgoKCgoK
CgoKIyAyMDkgIi91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51eC8yLjk1LjMvaW5j
bHVkZS9zdGRhcmcuaCIgMwoKCgoKIyA0OCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDIgMwoKCgoK
CgoKIyA2NyAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKCgogCgoKCgoKCgoKCgoKCgoKCgoKIyA5
OCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKCgoKCgoKCgoKCgogCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKCnN0cnVjdCBfSU9fanVtcF90OyAgc3RydWN0IF9J
T19GSUxFOwoKIAoKCgoKCgoKdHlwZWRlZiB2b2lkIF9JT19sb2NrX3Q7CgoKCiAKCnN0cnVjdCBf
SU9fbWFya2VyIHsKICBzdHJ1Y3QgX0lPX21hcmtlciAqX25leHQ7CiAgc3RydWN0IF9JT19GSUxF
ICpfc2J1ZjsKICAgCgogICAKICBpbnQgX3BvczsKIyAxODYgIi91c3IvaW5jbHVkZS9saWJpby5o
IiAzCgp9OwoKc3RydWN0IF9JT19GSUxFIHsKICBpbnQgX2ZsYWdzOwkJIAoKCiAgIAogICAKICBj
aGFyKiBfSU9fcmVhZF9wdHI7CSAKICBjaGFyKiBfSU9fcmVhZF9lbmQ7CSAKICBjaGFyKiBfSU9f
cmVhZF9iYXNlOwkgCiAgY2hhciogX0lPX3dyaXRlX2Jhc2U7CSAKICBjaGFyKiBfSU9fd3JpdGVf
cHRyOwkgCiAgY2hhciogX0lPX3dyaXRlX2VuZDsJIAogIGNoYXIqIF9JT19idWZfYmFzZTsJIAog
IGNoYXIqIF9JT19idWZfZW5kOwkgCiAgIAogIGNoYXIgKl9JT19zYXZlX2Jhc2U7ICAKICBjaGFy
ICpfSU9fYmFja3VwX2Jhc2U7ICAgCiAgY2hhciAqX0lPX3NhdmVfZW5kOyAgCgogIHN0cnVjdCBf
SU9fbWFya2VyICpfbWFya2VyczsKCiAgc3RydWN0IF9JT19GSUxFICpfY2hhaW47CgogIGludCBf
ZmlsZW5vOwogIGludCBfYmxrc2l6ZTsKICBfX29mZl90ICAgX29sZF9vZmZzZXQ7ICAKCgogICAK
ICB1bnNpZ25lZCBzaG9ydCBfY3VyX2NvbHVtbjsKICBzaWduZWQgY2hhciBfdnRhYmxlX29mZnNl
dDsKICBjaGFyIF9zaG9ydGJ1ZlsxXTsKCiAgIAoKICBfSU9fbG9ja190ICpfbG9jazsKCgoKCgoK
CgogIF9fb2ZmNjRfdCAgIF9vZmZzZXQ7CiAgIAogIGludCBfdW51c2VkMlsxNl07Cgp9OwoKCgoK
CnN0cnVjdCBfSU9fRklMRV9wbHVzOwpleHRlcm4gc3RydWN0IF9JT19GSUxFX3BsdXMgX0lPXzJf
MV9zdGRpbl87CmV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZG91dF87CmV4
dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZGVycl87CgoKCgoKCgoKCgoKIAoK
IAoKdHlwZWRlZiBfX3NzaXplX3QgX19pb19yZWFkX2ZuICAodm9pZCAqICBfX2Nvb2tpZSwgY2hh
ciAqX19idWYsCgkJCQkgICAgICAgc2l6ZV90IF9fbmJ5dGVzKSAgOwoKIAoKCgoKCnR5cGVkZWYg
X19zc2l6ZV90IF9faW9fd3JpdGVfZm4gICh2b2lkICogIF9fY29va2llLCBfX2NvbnN0IGNoYXIg
Kl9fYnVmLAoJCQkJICAgICAgc2l6ZV90IF9fbikgIDsKCiAKCgoKCgp0eXBlZGVmIGludCBfX2lv
X3NlZWtfZm4gICh2b2lkICogIF9fY29va2llLCBfX29mZl90ICAgX19wb3MsIGludCBfX3cpICA7
CgogCnR5cGVkZWYgaW50IF9faW9fY2xvc2VfZm4gICh2b2lkICogIF9fY29va2llKSAgOwoKCiMg
MzExICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMwoKCgoKZXh0ZXJuICJDIiB7CgoKZXh0ZXJuIGlu
dCBfX3VuZGVyZmxvdyAgKF9JT19GSUxFICopICB0aHJvdyAoKSAgOwpleHRlcm4gaW50IF9fdWZs
b3cgIChfSU9fRklMRSAqKSAgdGhyb3cgKCkgIDsKZXh0ZXJuIGludCBfX292ZXJmbG93ICAoX0lP
X0ZJTEUgKiwgaW50KSAgdGhyb3cgKCkgIDsKCgoKCgoKCgoKCgoKCgoKCmV4dGVybiBpbnQgX0lP
X2dldGMgIChfSU9fRklMRSAqX19mcCkgIHRocm93ICgpICA7CmV4dGVybiBpbnQgX0lPX3B1dGMg
IChpbnQgX19jLCBfSU9fRklMRSAqX19mcCkgIHRocm93ICgpICA7CmV4dGVybiBpbnQgX0lPX2Zl
b2YgIChfSU9fRklMRSAqX19mcCkgIHRocm93ICgpICA7CmV4dGVybiBpbnQgX0lPX2ZlcnJvciAg
KF9JT19GSUxFICpfX2ZwKSAgdGhyb3cgKCkgIDsKCmV4dGVybiBpbnQgX0lPX3BlZWtjX2xvY2tl
ZCAgKF9JT19GSUxFICpfX2ZwKSAgdGhyb3cgKCkgIDsKCiAKCgoKZXh0ZXJuIHZvaWQgX0lPX2Zs
b2NrZmlsZSAgKF9JT19GSUxFICopICB0aHJvdyAoKSAgOwpleHRlcm4gdm9pZCBfSU9fZnVubG9j
a2ZpbGUgIChfSU9fRklMRSAqKSAgdGhyb3cgKCkgIDsKZXh0ZXJuIGludCBfSU9fZnRyeWxvY2tm
aWxlICAoX0lPX0ZJTEUgKikgIHRocm93ICgpICA7CgoKCgoKCgoKCgoKCmV4dGVybiBpbnQgX0lP
X3Zmc2NhbmYgIChfSU9fRklMRSAqIF9fcmVzdHJpY3QsIGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0
LAoJCQkgICAgIF9fZ251Y192YV9saXN0ICwgaW50ICpfX3Jlc3RyaWN0KSAgdGhyb3cgKCkgIDsK
ZXh0ZXJuIGludCBfSU9fdmZwcmludGYgIChfSU9fRklMRSAqX19yZXN0cmljdCwgY29uc3QgY2hh
ciAqX19yZXN0cmljdCwKCQkJICAgICAgX19nbnVjX3ZhX2xpc3QgKSAgdGhyb3cgKCkgIDsKZXh0
ZXJuIF9fc3NpemVfdCAgIF9JT19wYWRuICAoX0lPX0ZJTEUgKiwgaW50LCBfX3NzaXplX3QgICkg
IHRocm93ICgpICA7CmV4dGVybiBzaXplX3QgICBfSU9fc2dldG4gIChfSU9fRklMRSAqLCB2b2lk
ICosIHNpemVfdCAgKSAgdGhyb3cgKCkgIDsKCmV4dGVybiBfX29mZjY0X3QgICBfSU9fc2Vla29m
ZiAgKF9JT19GSUxFICosIF9fb2ZmNjRfdCAgLCBpbnQsIGludCkgIHRocm93ICgpICA7CmV4dGVy
biBfX29mZjY0X3QgICBfSU9fc2Vla3BvcyAgKF9JT19GSUxFICosIF9fb2ZmNjRfdCAgLCBpbnQp
ICB0aHJvdyAoKSAgOwoKZXh0ZXJuIHZvaWQgX0lPX2ZyZWVfYmFja3VwX2FyZWEgIChfSU9fRklM
RSAqKSAgdGhyb3cgKCkgIDsKCgp9CgoKCiMgMzYgIi91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5k
cmFrZS1saW51eC8yLjk1LjMvLi4vLi4vLi4vLi4vaW5jbHVkZS9nKystMy9zdHJlYW1idWYuaCIg
MiAzCgp9CiAKCiMgMSAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUu
My9pbmNsdWRlL3N0ZGFyZy5oIiAxIDMKIAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIAoKCgoKCgoKCgoKIAoKCgogCgoKCgoK
CgoKCgoKCgoKCgoKdm9pZCB2YV9lbmQgKF9fZ251Y192YV9saXN0KTsJCSAKCgogCgoKCiAKCgoK
CgoKCgoKCgoKIAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiAKIAoKCgoKCgoKCgoKCgoKIyAxNzUg
Ii91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51eC8yLjk1LjMvaW5jbHVkZS9zdGRh
cmcuaCIgMwoKCiAKCgoKCiAKCiAKCiAKCnR5cGVkZWYgX19nbnVjX3ZhX2xpc3QgdmFfbGlzdDsK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIyA0MCAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRy
YWtlLWxpbnV4LzIuOTUuMy8uLi8uLi8uLi8uLi9pbmNsdWRlL2crKy0zL3N0cmVhbWJ1Zi5oIiAy
IDMKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCmV4dGVybiAiQysrIiB7CmNsYXNzIGlzdHJlYW07
ICAKY2xhc3Mgb3N0cmVhbTsgY2xhc3Mgc3RyZWFtYnVmOwoKIAoKCgoKdHlwZWRlZiBfX29mZjY0
X3QgICBzdHJlYW1vZmY7CnR5cGVkZWYgX19vZmY2NF90ICAgc3RyZWFtcG9zOwoKCgoKdHlwZWRl
ZiBfX3NzaXplX3QgICBzdHJlYW1zaXplOwoKdHlwZWRlZiB1bnNpZ25lZCBsb25nIF9fZm10Zmxh
Z3M7CnR5cGVkZWYgdW5zaWduZWQgY2hhciBfX2lvc3RhdGU7CgpzdHJ1Y3QgX2lvc19maWVsZHMK
eyAgCiAgICBzdHJlYW1idWYgKl9zdHJidWY7CiAgICBvc3RyZWFtKiBfdGllOwogICAgaW50IF93
aWR0aDsKICAgIF9fZm10ZmxhZ3MgX2ZsYWdzOwogICAgd2NoYXJfdCAgIF9maWxsOwogICAgX19p
b3N0YXRlIF9zdGF0ZTsKICAgIF9faW9zdGF0ZSBfZXhjZXB0aW9uczsKICAgIGludCBfcHJlY2lz
aW9uOwoKICAgIHZvaWQgKl9hcnJheXM7ICAKfTsKCgoKCgoKCgoKCgoKCgoKIyAxMjQgIi91c3Iv
bGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51eC8yLjk1LjMvLi4vLi4vLi4vLi4vaW5jbHVk
ZS9nKystMy9zdHJlYW1idWYuaCIgMwoKCmNsYXNzIGlvcyA6IHB1YmxpYyBfaW9zX2ZpZWxkcyB7
CiAgaW9zJiBvcGVyYXRvcj0oaW9zJik7ICAgCiAgaW9zIChjb25zdCBpb3MmKTsgIAogIHB1Ymxp
YzoKICAgIHR5cGVkZWYgX19mbXRmbGFncyBmbXRmbGFnczsKICAgIHR5cGVkZWYgaW50IGlvc3Rh
dGU7CiAgICB0eXBlZGVmIGludCBvcGVubW9kZTsKICAgIHR5cGVkZWYgX19zc2l6ZV90ICAgc3Ry
ZWFtc2l6ZTsKICAgIGVudW0gaW9fc3RhdGUgewoJZ29vZGJpdCA9IDAgLAoJZW9mYml0ID0gMSAs
CglmYWlsYml0ID0gMiAsCgliYWRiaXQgPSA0ICB9OwogICAgZW51bSBvcGVuX21vZGUgewoJaW4g
PSAxICwKCW91dCA9IDIgLAoJYXRlID0gNCAsCglhcHAgPSA4ICwKCXRydW5jID0gMTYgLAoJbm9j
cmVhdGUgPSAzMiAsCglub3JlcGxhY2UgPSA2NCAsCgliaW4gPSAxMjggLCAgCgliaW5hcnkgPSAx
MjggIH07CiAgICBlbnVtIHNlZWtfZGlyIHsgYmVnLCBjdXIsIGVuZH07CiAgICB0eXBlZGVmIGVu
dW0gc2Vla19kaXIgc2Vla2RpcjsKICAgICAKICAgIGVudW0geyBza2lwd3M9IDAxICwKCSAgIGxl
ZnQ9IDAyICwgcmlnaHQ9IDA0ICwgaW50ZXJuYWw9IDAxMCAsCgkgICBkZWM9IDAyMCAsIG9jdD0g
MDQwICwgaGV4PSAwMTAwICwKCSAgIHNob3diYXNlPSAwMjAwICwgc2hvd3BvaW50PSAwNDAwICwK
CSAgIHVwcGVyY2FzZT0gMDEwMDAgLCBzaG93cG9zPSAwMjAwMCAsCgkgICBzY2llbnRpZmljPSAw
NDAwMCAsIGZpeGVkPSAwMTAwMDAgLAoJICAgdW5pdGJ1Zj0gMDIwMDAwICwgc3RkaW89IDA0MDAw
MCAKCgoKCSAgIH07CiAgICBlbnVtIHsgIAoJYmFzZWZpZWxkPWRlYytvY3QraGV4LAoJZmxvYXRm
aWVsZCA9IHNjaWVudGlmaWMrZml4ZWQsCglhZGp1c3RmaWVsZCA9IGxlZnQrcmlnaHQraW50ZXJu
YWwKICAgIH07CgojIDE3NyAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIu
OTUuMy8uLi8uLi8uLi8uLi9pbmNsdWRlL2crKy0zL3N0cmVhbWJ1Zi5oIiAzCgoKICAgIG9zdHJl
YW0qIHRpZSgpIGNvbnN0IHsgcmV0dXJuIF90aWU7IH0KICAgIG9zdHJlYW0qIHRpZShvc3RyZWFt
KiB2YWwpIHsgb3N0cmVhbSogc2F2ZT1fdGllOyBfdGllPXZhbDsgcmV0dXJuIHNhdmU7IH0KCiAg
ICAgCiAgICB3Y2hhcl90ICAgZmlsbCgpIGNvbnN0IHsgcmV0dXJuIF9maWxsOyB9CiAgICB3Y2hh
cl90ICAgZmlsbCh3Y2hhcl90ICAgbmV3ZikKCXt3Y2hhcl90ICAgb2xkZiA9IF9maWxsOyBfZmls
bCA9IG5ld2Y7IHJldHVybiBvbGRmO30KICAgIGZtdGZsYWdzIGZsYWdzKCkgY29uc3QgeyByZXR1
cm4gX2ZsYWdzOyB9CiAgICBmbXRmbGFncyBmbGFncyhmbXRmbGFncyBuZXdfdmFsKSB7CglmbXRm
bGFncyBvbGRfdmFsID0gX2ZsYWdzOyBfZmxhZ3MgPSBuZXdfdmFsOyByZXR1cm4gb2xkX3ZhbDsg
fQogICAgaW50IHByZWNpc2lvbigpIGNvbnN0IHsgcmV0dXJuIF9wcmVjaXNpb247IH0KICAgIGlu
dCBwcmVjaXNpb24oaW50IG5ld3ApIHsKCXVuc2lnbmVkIHNob3J0IG9sZHAgPSBfcHJlY2lzaW9u
OyBfcHJlY2lzaW9uID0gKHVuc2lnbmVkIHNob3J0KW5ld3A7CglyZXR1cm4gb2xkcDsgfQogICAg
Zm10ZmxhZ3Mgc2V0ZihmbXRmbGFncyB2YWwpIHsKCWZtdGZsYWdzIG9sZGJpdHMgPSBfZmxhZ3M7
CglfZmxhZ3MgfD0gdmFsOyByZXR1cm4gb2xkYml0czsgfQogICAgZm10ZmxhZ3Mgc2V0ZihmbXRm
bGFncyB2YWwsIGZtdGZsYWdzIG1hc2spIHsKCWZtdGZsYWdzIG9sZGJpdHMgPSBfZmxhZ3M7Cglf
ZmxhZ3MgPSAoX2ZsYWdzICYgfm1hc2spIHwgKHZhbCAmIG1hc2spOyByZXR1cm4gb2xkYml0czsg
fQogICAgZm10ZmxhZ3MgdW5zZXRmKGZtdGZsYWdzIG1hc2spIHsKCWZtdGZsYWdzIG9sZGJpdHMg
PSBfZmxhZ3M7CglfZmxhZ3MgJj0gfm1hc2s7IHJldHVybiBvbGRiaXRzOyB9CiAgICBpbnQgd2lk
dGgoKSBjb25zdCB7IHJldHVybiBfd2lkdGg7IH0KICAgIGludCB3aWR0aChpbnQgdmFsKSB7IGlu
dCBzYXZlID0gX3dpZHRoOyBfd2lkdGggPSB2YWw7IHJldHVybiBzYXZlOyB9CgoKCgogICAgdm9p
ZCBfdGhyb3dfZmFpbHVyZSgpIGNvbnN0IHsgfQoKICAgIHZvaWQgY2xlYXIoaW9zdGF0ZSBzdGF0
ZSA9IDApIHsKCV9zdGF0ZSA9IF9zdHJidWYgPyBzdGF0ZSA6IHN0YXRlfGJhZGJpdDsKCWlmIChf
c3RhdGUgJiBfZXhjZXB0aW9ucykgX3Rocm93X2ZhaWx1cmUoKTsgfQogICAgdm9pZCBzZXQoaW9z
dGF0ZSBmbGFnKSB7IF9zdGF0ZSB8PSBmbGFnOwoJaWYgKF9zdGF0ZSAmIF9leGNlcHRpb25zKSBf
dGhyb3dfZmFpbHVyZSgpOyB9CiAgICB2b2lkIHNldHN0YXRlKGlvc3RhdGUgZmxhZykgeyBfc3Rh
dGUgfD0gZmxhZzsgIAoJaWYgKF9zdGF0ZSAmIF9leGNlcHRpb25zKSBfdGhyb3dfZmFpbHVyZSgp
OyB9CiAgICBpbnQgZ29vZCgpIGNvbnN0IHsgcmV0dXJuIF9zdGF0ZSA9PSAwOyB9CiAgICBpbnQg
ZW9mKCkgY29uc3QgeyByZXR1cm4gX3N0YXRlICYgaW9zOjplb2ZiaXQ7IH0KICAgIGludCBmYWls
KCkgY29uc3QgeyByZXR1cm4gX3N0YXRlICYgKGlvczo6YmFkYml0fGlvczo6ZmFpbGJpdCk7IH0K
ICAgIGludCBiYWQoKSBjb25zdCB7IHJldHVybiBfc3RhdGUgJiBpb3M6OmJhZGJpdDsgfQogICAg
aW9zdGF0ZSByZHN0YXRlKCkgY29uc3QgeyByZXR1cm4gX3N0YXRlOyB9CiAgICBvcGVyYXRvciB2
b2lkKigpIGNvbnN0IHsgcmV0dXJuIGZhaWwoKSA/ICh2b2lkKikwIDogKHZvaWQqKSgtMSk7IH0K
ICAgIGludCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiBmYWlsKCk7IH0KICAgIGlvc3RhdGUg
ZXhjZXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIF9leGNlcHRpb25zOyB9CiAgICB2b2lkIGV4Y2Vw
dGlvbnMoaW9zdGF0ZSBlbmFibGUpIHsKCV9leGNlcHRpb25zID0gZW5hYmxlOwoJaWYgKF9zdGF0
ZSAmIF9leGNlcHRpb25zKSBfdGhyb3dfZmFpbHVyZSgpOyB9CgogICAgc3RyZWFtYnVmKiByZGJ1
ZigpIGNvbnN0IHsgcmV0dXJuIF9zdHJidWY7IH0KICAgIHN0cmVhbWJ1ZiogcmRidWYoc3RyZWFt
YnVmICpfcykgewogICAgICBzdHJlYW1idWYgKl9vbGQgPSBfc3RyYnVmOyBfc3RyYnVmID0gX3M7
IGNsZWFyICgpOyByZXR1cm4gX29sZDsgfQoKICAgIHN0YXRpYyBpbnQgc3luY193aXRoX3N0ZGlv
KGludCBvbik7CiAgICBzdGF0aWMgdm9pZCBzeW5jX3dpdGhfc3RkaW8oKSB7IHN5bmNfd2l0aF9z
dGRpbygxKTsgfQogICAgc3RhdGljIGZtdGZsYWdzIGJpdGFsbG9jKCk7CiAgICBzdGF0aWMgaW50
IHhhbGxvYygpOwogICAgdm9pZComIHB3b3JkKGludCk7CiAgICB2b2lkKiBwd29yZChpbnQpIGNv
bnN0OwogICAgbG9uZyYgaXdvcmQoaW50KTsKICAgIGxvbmcgaXdvcmQoaW50KSBjb25zdDsKCgoK
CgoKCgoKICAgICAKICAgIGNsYXNzIEluaXQgewogICAgcHVibGljOgogICAgICBJbml0ICgpIHsg
fQogICAgfTsKCiAgcHJvdGVjdGVkOgogICAgaW5saW5lIGlvcyhzdHJlYW1idWYqIHNiID0gMCwg
b3N0cmVhbSogdGllX3RvID0gMCk7CiAgICBpbmxpbmUgdmlydHVhbCB+aW9zKCk7CiAgICBpbmxp
bmUgdm9pZCBpbml0KHN0cmVhbWJ1Ziogc2IsIG9zdHJlYW0qIHRpZSA9IDApOwp9OwoKCgoKdHlw
ZWRlZiBpb3M6OnNlZWtfZGlyIF9zZWVrX2RpcjsKCgogCiAKIAogCiAKCiAKIApjbGFzcyBzdHJl
YW1tYXJrZXIgOiBwcml2YXRlIF9JT19tYXJrZXIgewogICAgZnJpZW5kIGNsYXNzIHN0cmVhbWJ1
ZjsKICAgIHZvaWQgc2V0X29mZnNldChpbnQgb2Zmc2V0KSB7IF9wb3MgPSBvZmZzZXQ7IH0KICBw
dWJsaWM6CiAgICBzdHJlYW1tYXJrZXIoc3RyZWFtYnVmICpzYik7CiAgICB+c3RyZWFtbWFya2Vy
KCk7CiAgICBpbnQgc2F2aW5nKCkgeyByZXR1cm4gIDE7IH0KICAgIGludCBkZWx0YShzdHJlYW1t
YXJrZXImKTsKICAgIGludCBkZWx0YSgpOwp9OwoKc3RydWN0IHN0cmVhbWJ1ZiA6IHB1YmxpYyBf
SU9fRklMRSB7ICAKICAgIGZyaWVuZCBjbGFzcyBpb3M7CiAgICBmcmllbmQgY2xhc3MgaXN0cmVh
bTsKICAgIGZyaWVuZCBjbGFzcyBvc3RyZWFtOwogICAgZnJpZW5kIGNsYXNzIHN0cmVhbW1hcmtl
cjsKICAgIGNvbnN0IHZvaWQgKiZfdnRhYmxlKCkgeyByZXR1cm4gKihjb25zdCB2b2lkKiopKChf
SU9fRklMRSopdGhpcyArIDEpOyB9CiAgcHJvdGVjdGVkOgogICAgc3RhdGljIHN0cmVhbWJ1Ziog
X2xpc3RfYWxsOyAgCiAgICBfSU9fRklMRSomIHhjaGFpbigpIHsgcmV0dXJuIF9jaGFpbjsgfQog
ICAgdm9pZCBfdW5fbGluaygpOwogICAgdm9pZCBfbGlua19pbigpOwogICAgY2hhciogZ3B0cigp
IGNvbnN0CiAgICAgIHsgcmV0dXJuIF9mbGFncyAgJiAweDEwMCAgPyBfSU9fc2F2ZV9iYXNlIDog
X0lPX3JlYWRfcHRyOyB9CiAgICBjaGFyKiBwcHRyKCkgY29uc3QgeyByZXR1cm4gX0lPX3dyaXRl
X3B0cjsgfQogICAgY2hhciogZWdwdHIoKSBjb25zdAogICAgICB7IHJldHVybiBfZmxhZ3MgICYg
MHgxMDAgID8gX0lPX3NhdmVfZW5kIDogX0lPX3JlYWRfZW5kOyB9CiAgICBjaGFyKiBlcHB0cigp
IGNvbnN0IHsgcmV0dXJuIF9JT193cml0ZV9lbmQ7IH0KICAgIGNoYXIqIHBiYXNlKCkgY29uc3Qg
eyByZXR1cm4gX0lPX3dyaXRlX2Jhc2U7IH0KICAgIGNoYXIqIGViYWNrKCkgY29uc3QKICAgICAg
eyByZXR1cm4gX2ZsYWdzICAmIDB4MTAwICA/IF9JT19zYXZlX2Jhc2UgOiBfSU9fcmVhZF9iYXNl
O30KICAgIGNoYXIqIGJhc2UoKSBjb25zdCB7IHJldHVybiBfSU9fYnVmX2Jhc2U7IH0KICAgIGNo
YXIqIGVidWYoKSBjb25zdCB7IHJldHVybiBfSU9fYnVmX2VuZDsgfQogICAgaW50IGJsZW4oKSBj
b25zdCB7IHJldHVybiBfSU9fYnVmX2VuZCAtIF9JT19idWZfYmFzZTsgfQogICAgdm9pZCB4cHV0
X2NoYXIoY2hhciBjKSB7ICpfSU9fd3JpdGVfcHRyKysgPSBjOyB9CiAgICBpbnQgeGZsYWdzKCkg
eyByZXR1cm4gX2ZsYWdzIDsgfQogICAgaW50IHhmbGFncyhpbnQgZikge2ludCBmbCA9IF9mbGFn
cyA7IF9mbGFncyAgPSBmOyByZXR1cm4gZmw7fQogICAgdm9pZCB4c2V0ZmxhZ3MoaW50IGYpIHsg
X2ZsYWdzICB8PSBmOyB9CiAgICB2b2lkIHhzZXRmbGFncyhpbnQgZiwgaW50IG1hc2spCiAgICAg
IHsgX2ZsYWdzICA9IChfZmxhZ3MgICYgfm1hc2spIHwgKGYgJiBtYXNrKTsgfQogICAgdm9pZCBn
YnVtcChpbnQgbikKICAgICAgeyBfZmxhZ3MgICYgMHgxMDAgID8gKF9JT19zYXZlX2Jhc2UrPW4p
OihfSU9fcmVhZF9wdHIrPW4pO30KICAgIHZvaWQgcGJ1bXAoaW50IG4pIHsgX0lPX3dyaXRlX3B0
ciArPSBuOyB9CiAgICB2b2lkIHNldGIoY2hhciogYiwgY2hhciogZWIsIGludCBhPTApOwogICAg
dm9pZCBzZXRwKGNoYXIqIHAsIGNoYXIqIGVwKQogICAgICB7IF9JT193cml0ZV9iYXNlPV9JT193
cml0ZV9wdHI9cDsgX0lPX3dyaXRlX2VuZD1lcDsgfQogICAgdm9pZCBzZXRnKGNoYXIqIGViLCBj
aGFyKiBnLCBjaGFyICplZykgewogICAgICBpZiAoX2ZsYWdzICAmIDB4MTAwICkgX0lPX2ZyZWVf
YmFja3VwX2FyZWEodGhpcyk7IAogICAgICBfSU9fcmVhZF9iYXNlID0gZWI7IF9JT19yZWFkX3B0
ciA9IGc7IF9JT19yZWFkX2VuZCA9IGVnOyB9CiAgICBjaGFyICpzaG9ydGJ1ZigpIHsgcmV0dXJu
IF9zaG9ydGJ1ZjsgfQoKICAgIGludCBpbl9iYWNrdXAoKSB7IHJldHVybiBfZmxhZ3MgJiAweDEw
MCA7IH0KICAgICAKICAgIGNoYXIgKkdiYXNlKCkgeyByZXR1cm4gaW5fYmFja3VwKCkgPyBfSU9f
c2F2ZV9iYXNlIDogX0lPX3JlYWRfYmFzZTsgfQogICAgIAogICAgY2hhciAqZUdwdHIoKSB7IHJl
dHVybiBpbl9iYWNrdXAoKSA/IF9JT19zYXZlX2VuZCA6IF9JT19yZWFkX2VuZDsgfQogICAgIAog
ICAgY2hhciAqQmJhc2UoKSB7IHJldHVybiBpbl9iYWNrdXAoKSA/IF9JT19yZWFkX2Jhc2UgOiBf
SU9fc2F2ZV9iYXNlOyB9CiAgICBjaGFyICpCcHRyKCkgeyByZXR1cm4gX0lPX2JhY2t1cF9iYXNl
OyB9CiAgICAgCiAgICBjaGFyICplQnB0cigpIHsgcmV0dXJuIGluX2JhY2t1cCgpID8gX0lPX3Jl
YWRfZW5kIDogX0lPX3NhdmVfZW5kOyB9CiAgICBjaGFyICpOYmFzZSgpIHsgcmV0dXJuIF9JT19z
YXZlX2Jhc2U7IH0KICAgIGNoYXIgKmVOcHRyKCkgeyByZXR1cm4gX0lPX3NhdmVfZW5kOyB9CiAg
ICBpbnQgaGF2ZV9iYWNrdXAoKSB7IHJldHVybiBfSU9fc2F2ZV9iYXNlICE9IF9fbnVsbCA7IH0K
ICAgIGludCBoYXZlX21hcmtlcnMoKSB7IHJldHVybiBfbWFya2VycyAhPSBfX251bGwgOyB9CiAg
ICB2b2lkIGZyZWVfYmFja3VwX2FyZWEoKTsKICAgIHZvaWQgdW5zYXZlX21hcmtlcnMoKTsgIAog
ICAgaW50IHB1dF9tb2RlKCkgeyByZXR1cm4gX2ZsYWdzICYgMHg4MDAgOyB9CiAgICBpbnQgc3dp
dGNoX3RvX2dldF9tb2RlKCk7CiAgICAKICAgIHN0cmVhbWJ1ZihpbnQgZmxhZ3M9MCk7CiAgcHVi
bGljOgogICAgc3RhdGljIGludCBmbHVzaF9hbGwoKTsKICAgIHN0YXRpYyB2b2lkIGZsdXNoX2Fs
bF9saW5lYnVmZmVyZWQoKTsgIAogICAgdmlydHVhbCB+c3RyZWFtYnVmKCk7CiAgICB2aXJ0dWFs
IGludCBvdmVyZmxvdyhpbnQgYyA9ICgtMSkgKTsgIAogICAgdmlydHVhbCBpbnQgdW5kZXJmbG93
KCk7ICAKICAgIHZpcnR1YWwgaW50IHVmbG93KCk7ICAKICAgIHZpcnR1YWwgaW50IHBiYWNrZmFp
bChpbnQgYyk7CiAKICAgIHZpcnR1YWwgc3RyZWFtc2l6ZSB4c3B1dG4oY29uc3QgY2hhciogcywg
c3RyZWFtc2l6ZSBuKTsKICAgIHZpcnR1YWwgc3RyZWFtc2l6ZSB4c2dldG4oY2hhciogcywgc3Ry
ZWFtc2l6ZSBuKTsKICAgIHZpcnR1YWwgc3RyZWFtcG9zIHNlZWtvZmYoc3RyZWFtb2ZmLCBfc2Vl
a19kaXIsIGludCBtb2RlPWlvczo6aW58aW9zOjpvdXQpOwogICAgdmlydHVhbCBzdHJlYW1wb3Mg
c2Vla3BvcyhzdHJlYW1wb3MgcG9zLCBpbnQgbW9kZSA9IGlvczo6aW58aW9zOjpvdXQpOwoKICAg
IHN0cmVhbXBvcyBwdWJzZWVrb2ZmKHN0cmVhbW9mZiBvLCBfc2Vla19kaXIgZCwgaW50IG1vZGU9
aW9zOjppbnxpb3M6Om91dCkKICAgICAgeyByZXR1cm4gX0lPX3NlZWtvZmYgKHRoaXMsIG8sIGQs
IG1vZGUpOyB9CiAgICBzdHJlYW1wb3MgcHVic2Vla3BvcyhzdHJlYW1wb3MgcG9zLCBpbnQgbW9k
ZSA9IGlvczo6aW58aW9zOjpvdXQpCiAgICAgIHsgcmV0dXJuIF9JT19zZWVrcG9zICh0aGlzLCBw
b3MsIG1vZGUpOyB9CiAgICBzdHJlYW1wb3Mgc3NlZWtvZmYoc3RyZWFtb2ZmLCBfc2Vla19kaXIs
IGludCBtb2RlPWlvczo6aW58aW9zOjpvdXQpOwogICAgc3RyZWFtcG9zIHNzZWVrcG9zKHN0cmVh
bXBvcyBwb3MsIGludCBtb2RlID0gaW9zOjppbnxpb3M6Om91dCk7CiAgICB2aXJ0dWFsIHN0cmVh
bWJ1Ziogc2V0YnVmKGNoYXIqIHAsIGludCBsZW4pOwogICAgdmlydHVhbCBpbnQgc3luYygpOwog
ICAgdmlydHVhbCBpbnQgZG9hbGxvY2F0ZSgpOwoKICAgIGludCBzZWVrbWFyayhzdHJlYW1tYXJr
ZXImIG1hcmssIGludCBkZWx0YSA9IDApOwogICAgaW50IHNwdXRiYWNrYyhjaGFyIGMpOwogICAg
aW50IHN1bmdldGMoKTsKICAgIGludCB1bmJ1ZmZlcmVkKCkgeyByZXR1cm4gX2ZsYWdzICYgMiAg
PyAxIDogMDsgfQogICAgaW50IGxpbmVidWZmZXJlZCgpIHsgcmV0dXJuIF9mbGFncyAmIDB4MjAw
ICA/IDEgOiAwOyB9CiAgICB2b2lkIHVuYnVmZmVyZWQoaW50IGkpCgl7IGlmIChpKSBfZmxhZ3Mg
fD0gMiA7IGVsc2UgX2ZsYWdzICY9IH4yIDsgfQogICAgdm9pZCBsaW5lYnVmZmVyZWQoaW50IGkp
Cgl7IGlmIChpKSBfZmxhZ3MgfD0gMHgyMDAgOyBlbHNlIF9mbGFncyAmPSB+MHgyMDAgOyB9CiAg
ICBpbnQgYWxsb2NhdGUoKSB7ICAKCWlmIChiYXNlKCkgfHwgdW5idWZmZXJlZCgpKSByZXR1cm4g
MDsKCWVsc2UgcmV0dXJuIGRvYWxsb2NhdGUoKTsgfQogICAgIAogICAgdm9pZCBhbGxvY2J1Zigp
IHsgaWYgKGJhc2UoKSA9PSBfX251bGwgKSBkb2FsbG9jYnVmKCk7IH0KICAgIHZvaWQgZG9hbGxv
Y2J1ZigpOwogICAgaW50IGluX2F2YWlsKCkgeyByZXR1cm4gX0lPX3JlYWRfZW5kIC0gX0lPX3Jl
YWRfcHRyOyB9CiAgICBpbnQgb3V0X3dhaXRpbmcoKSB7IHJldHVybiBfSU9fd3JpdGVfcHRyIC0g
X0lPX3dyaXRlX2Jhc2U7IH0KICAgIHN0cmVhbXNpemUgc3B1dG4oY29uc3QgY2hhciogcywgc3Ry
ZWFtc2l6ZSBuKSB7IHJldHVybiB4c3B1dG4ocywgbik7IH0KICAgIHN0cmVhbXNpemUgcGFkbihj
aGFyIHBhZCwgc3RyZWFtc2l6ZSBuKSB7IHJldHVybiBfSU9fcGFkbih0aGlzLCBwYWQsIG4pOyB9
CiAgICBzdHJlYW1zaXplIHNnZXRuKGNoYXIqIHMsIHN0cmVhbXNpemUgbikgeyByZXR1cm4gX0lP
X3NnZXRuKHRoaXMsIHMsIG4pOyB9CiAgICBpbnQgaWdub3JlKGludCk7CiAgICBpbnQgZ2V0X2Nv
bHVtbigpOwogICAgaW50IHNldF9jb2x1bW4oaW50KTsKICAgIGxvbmcgc2dldGxpbmUoY2hhciog
YnVmLCBzaXplX3QgICBuLCBjaGFyIGRlbGltLCBpbnQgcHV0YmFja19kZWxpbSk7CiAgICBpbnQg
c3B1dGMoaW50IGMpIHsgcmV0dXJuIF9JT19wdXRjKGMsIHRoaXMpOyB9CiAgICBpbnQgc2J1bXBj
KCkgeyByZXR1cm4gX0lPX2dldGModGhpcyk7IH0KICAgIGludCBzZ2V0YygpIHsgcmV0dXJuICgo
ICB0aGlzICApLT5fSU9fcmVhZF9wdHIgPj0gKCAgdGhpcyAgKS0+X0lPX3JlYWRfZW5kICYmIF9f
dW5kZXJmbG93ICggIHRoaXMgICkgPT0gKC0xKSAgPyAoLTEpICA6ICoodW5zaWduZWQgY2hhciAq
KSAoICB0aGlzICApLT5fSU9fcmVhZF9wdHIpICA7IH0KICAgIGludCBzbmV4dGMoKSB7CglpZiAo
X0lPX3JlYWRfcHRyID49IF9JT19yZWFkX2VuZCAmJiBfX3VuZGVyZmxvdyh0aGlzKSA9PSAoLTEp
ICkKCSAgcmV0dXJuICgtMSkgOwoJZWxzZSByZXR1cm4gX0lPX3JlYWRfcHRyKyssIHNnZXRjKCk7
IH0KICAgIHZvaWQgc3Rvc3NjKCkgeyBpZiAoX0lPX3JlYWRfcHRyIDwgX0lPX3JlYWRfZW5kKSBf
SU9fcmVhZF9wdHIrKzsgfQogICAgaW50IHZzY2FuKGNoYXIgY29uc3QgKmZtdDAsIF9fZ251Y192
YV9saXN0ICBhcCwgaW9zKiBzdHJlYW0gPSBfX251bGwgKTsKICAgIGludCBzY2FuKGNoYXIgY29u
c3QgKmZtdDAgLi4uKTsKICAgIGludCB2Zm9ybShjaGFyIGNvbnN0ICpmbXQwLCBfX2dudWNfdmFf
bGlzdCAgYXApOwogICAgaW50IGZvcm0oY2hhciBjb25zdCAqZm10MCAuLi4pOwoKCgoKICAgIHZp
cnR1YWwgc3RyZWFtc2l6ZSBzeXNfcmVhZChjaGFyKiBidWYsIHN0cmVhbXNpemUgc2l6ZSk7CiAg
ICB2aXJ0dWFsIHN0cmVhbXNpemUgc3lzX3dyaXRlKGNvbnN0IGNoYXIqLCBzdHJlYW1zaXplKTsK
ICAgIHZpcnR1YWwgc3RyZWFtcG9zIHN5c19zZWVrKHN0cmVhbW9mZiwgX3NlZWtfZGlyKTsKICAg
IHZpcnR1YWwgaW50IHN5c19jbG9zZSgpOwogICAgdmlydHVhbCBpbnQgc3lzX3N0YXQodm9pZCop
OyAgCgogICAgdmlydHVhbCBpbnQgc2hvd21hbnljKCk7CiAgICB2aXJ0dWFsIHZvaWQgaW1idWUo
dm9pZCAqKTsKCn07CgogCiAKCmNsYXNzIGZpbGVidWYgOiBwdWJsaWMgc3RyZWFtYnVmIHsKICBw
cm90ZWN0ZWQ6CiAgICB2b2lkIGluaXQoKTsKICBwdWJsaWM6CiAgICBzdGF0aWMgY29uc3QgaW50
IG9wZW5wcm90OyAgCiAgICBmaWxlYnVmKCk7CiAgICBmaWxlYnVmKGludCBmZCk7CiAgICBmaWxl
YnVmKGludCBmZCwgY2hhciogcCwgaW50IGxlbik7CgoKCiAgICB+ZmlsZWJ1ZigpOwogICAgZmls
ZWJ1ZiogYXR0YWNoKGludCBmZCk7CiAgICBmaWxlYnVmKiBvcGVuKGNvbnN0IGNoYXIgKmZpbGVu
YW1lLCBjb25zdCBjaGFyICptb2RlKTsKICAgIGZpbGVidWYqIG9wZW4oY29uc3QgY2hhciAqZmls
ZW5hbWUsIGlvczo6b3Blbm1vZGUgbW9kZSwgaW50IHByb3QgPSAwNjY0KTsKICAgIHZpcnR1YWwg
aW50IHVuZGVyZmxvdygpOwogICAgdmlydHVhbCBpbnQgb3ZlcmZsb3coaW50IGMgPSAoLTEpICk7
CiAgICBpbnQgaXNfb3BlbigpIGNvbnN0IHsgcmV0dXJuIF9maWxlbm8gPj0gMDsgfQogICAgaW50
IGZkKCkgY29uc3QgeyByZXR1cm4gaXNfb3BlbigpID8gX2ZpbGVubyA6ICgtMSkgOyB9CiAgICBm
aWxlYnVmKiBjbG9zZSgpOwogICAgdmlydHVhbCBpbnQgZG9hbGxvY2F0ZSgpOwogICAgdmlydHVh
bCBzdHJlYW1wb3Mgc2Vla29mZihzdHJlYW1vZmYsIF9zZWVrX2RpciwgaW50IG1vZGU9aW9zOjpp
bnxpb3M6Om91dCk7CiAgICB2aXJ0dWFsIHN0cmVhbWJ1Ziogc2V0YnVmKGNoYXIqIHAsIGludCBs
ZW4pOwogICAgc3RyZWFtc2l6ZSB4c3B1dG4oY29uc3QgY2hhciogcywgc3RyZWFtc2l6ZSBuKTsK
ICAgIHN0cmVhbXNpemUgeHNnZXRuKGNoYXIqIHMsIHN0cmVhbXNpemUgbik7CiAgICB2aXJ0dWFs
IGludCBzeW5jKCk7CiAgcHJvdGVjdGVkOiAgCiAKICAgIGludCBpc19yZWFkaW5nKCkgeyByZXR1
cm4gZWJhY2soKSAhPSBlZ3B0cigpOyB9CiAgICBjaGFyKiBjdXJfcHRyKCkgeyByZXR1cm4gaXNf
cmVhZGluZygpID8gIGdwdHIoKSA6IHBwdHIoKTsgfQogICAgIAogICAgY2hhciogZmlsZV9wdHIo
KSB7IHJldHVybiBlR3B0cigpOyB9CiAgICAgCiAgICB2aXJ0dWFsIHN0cmVhbXNpemUgc3lzX3Jl
YWQoY2hhciogYnVmLCBzdHJlYW1zaXplIHNpemUpOwogICAgdmlydHVhbCBzdHJlYW1wb3Mgc3lz
X3NlZWsoc3RyZWFtb2ZmLCBfc2Vla19kaXIpOwogICAgdmlydHVhbCBzdHJlYW1zaXplIHN5c193
cml0ZShjb25zdCBjaGFyKiwgc3RyZWFtc2l6ZSk7CiAgICB2aXJ0dWFsIGludCBzeXNfc3RhdCh2
b2lkKik7ICAKICAgIHZpcnR1YWwgaW50IHN5c19jbG9zZSgpOwoKCgoKfTsKCmlubGluZSB2b2lk
IGlvczo6aW5pdChzdHJlYW1idWYqIHNiLCBvc3RyZWFtKiB0aWVfdG8pIHsKCQlfc3RhdGUgPSBz
YiA/IGlvczo6Z29vZGJpdCA6IGlvczo6YmFkYml0OyBfZXhjZXB0aW9ucz0wOwoJCV9zdHJidWY9
c2I7IF90aWUgPSB0aWVfdG87IF93aWR0aD0wOyBfZmlsbD0nICc7CgoJCV9mbGFncz1pb3M6OnNr
aXB3c3xpb3M6OmRlYzsKCgoKCQlfcHJlY2lzaW9uPTY7IF9hcnJheXMgPSAwOyB9CgppbmxpbmUg
aW9zOjppb3Moc3RyZWFtYnVmKiBzYiwgb3N0cmVhbSogdGllX3RvKSB7IGluaXQoc2IsIHRpZV90
byk7IH0KCmlubGluZSBpb3M6On5pb3MoKSB7CgoKCiAgICAgCiAgICAgCiAgICBvcGVyYXRvciBk
ZWxldGVbXSAoX2FycmF5cyk7Cn0KfSAgCgojIDMxICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFu
ZHJha2UtbGludXgvMi45NS4zLy4uLy4uLy4uLy4uL2luY2x1ZGUvZysrLTMvaW9zdHJlYW0uaCIg
MiAzCgoKZXh0ZXJuICJDKysiIHsKY2xhc3MgaXN0cmVhbTsgY2xhc3Mgb3N0cmVhbTsKdHlwZWRl
ZiBpb3MmICgqX19tYW5pcCkoaW9zJik7CnR5cGVkZWYgaXN0cmVhbSYgKCpfX2ltYW5pcCkoaXN0
cmVhbSYpOwp0eXBlZGVmIG9zdHJlYW0mICgqX19vbWFuaXApKG9zdHJlYW0mKTsKCmV4dGVybiBp
c3RyZWFtJiB3cyhpc3RyZWFtJiBpbnMpOwpleHRlcm4gb3N0cmVhbSYgZmx1c2gob3N0cmVhbSYg
b3V0cyk7CmV4dGVybiBvc3RyZWFtJiBlbmRsKG9zdHJlYW0mIG91dHMpOwpleHRlcm4gb3N0cmVh
bSYgZW5kcyhvc3RyZWFtJiBvdXRzKTsKCmNsYXNzIG9zdHJlYW0gOiB2aXJ0dWFsIHB1YmxpYyBp
b3MKewogICAgIAogICAgdm9pZCBkb19vc2Z4KCk7CiAgcHVibGljOgogICAgb3N0cmVhbSgpIHsg
fQogICAgb3N0cmVhbShzdHJlYW1idWYqIHNiLCBvc3RyZWFtKiB0aWVkPSBfX251bGwgKTsKICAg
IGludCBvcGZ4KCkgewoJaWYgKCFnb29kKCkpIHJldHVybiAwOwoJZWxzZSB7IGlmIChfdGllKSBf
dGllLT5mbHVzaCgpOyAgOyByZXR1cm4gMTt9IH0KICAgIHZvaWQgb3NmeCgpIHsgIDsKCQkgIGlm
IChmbGFncygpICYgKGlvczo6dW5pdGJ1Znxpb3M6OnN0ZGlvKSkKCQkgICAgICBkb19vc2Z4KCk7
IH0KICAgIG9zdHJlYW0mIGZsdXNoKCk7CiAgICBvc3RyZWFtJiBwdXQoY2hhciBjKSB7IF9zdHJi
dWYtPnNwdXRjKGMpOyByZXR1cm4gKnRoaXM7IH0KCgoKCgogICAgb3N0cmVhbSYgd3JpdGUoY29u
c3QgY2hhciAqcywgc3RyZWFtc2l6ZSBuKTsKICAgIG9zdHJlYW0mIHdyaXRlKGNvbnN0IHVuc2ln
bmVkIGNoYXIgKnMsIHN0cmVhbXNpemUgbikKICAgICAgeyByZXR1cm4gd3JpdGUoKGNvbnN0IGNo
YXIqKXMsIG4pO30KICAgIG9zdHJlYW0mIHdyaXRlKGNvbnN0IHNpZ25lZCBjaGFyICpzLCBzdHJl
YW1zaXplIG4pCiAgICAgIHsgcmV0dXJuIHdyaXRlKChjb25zdCBjaGFyKilzLCBuKTt9CiAgICBv
c3RyZWFtJiB3cml0ZShjb25zdCB2b2lkICpzLCBzdHJlYW1zaXplIG4pCiAgICAgIHsgcmV0dXJu
IHdyaXRlKChjb25zdCBjaGFyKilzLCBuKTt9CiAgICBvc3RyZWFtJiBzZWVrcChzdHJlYW1wb3Mp
OwogICAgb3N0cmVhbSYgc2Vla3Aoc3RyZWFtb2ZmLCBfc2Vla19kaXIpOwogICAgc3RyZWFtcG9z
IHRlbGxwKCk7CiAgICBvc3RyZWFtJiBmb3JtKGNvbnN0IGNoYXIgKmZvcm1hdCAuLi4pOwogICAg
b3N0cmVhbSYgdmZvcm0oY29uc3QgY2hhciAqZm9ybWF0LCBfX2dudWNfdmFfbGlzdCAgYXJncyk7
CgogICAgb3N0cmVhbSYgb3BlcmF0b3I8PChjaGFyIGMpOwogICAgb3N0cmVhbSYgb3BlcmF0b3I8
PCh1bnNpZ25lZCBjaGFyIGMpIHsgcmV0dXJuICgqdGhpcykgPDwgKGNoYXIpYzsgfQogICAgb3N0
cmVhbSYgb3BlcmF0b3I8PChzaWduZWQgY2hhciBjKSB7IHJldHVybiAoKnRoaXMpIDw8IChjaGFy
KWM7IH0KICAgIG9zdHJlYW0mIG9wZXJhdG9yPDwoY29uc3QgY2hhciAqcyk7CiAgICBvc3RyZWFt
JiBvcGVyYXRvcjw8KGNvbnN0IHVuc2lnbmVkIGNoYXIgKnMpCgl7IHJldHVybiAoKnRoaXMpIDw8
IChjb25zdCBjaGFyKilzOyB9CiAgICBvc3RyZWFtJiBvcGVyYXRvcjw8KGNvbnN0IHNpZ25lZCBj
aGFyICpzKQoJeyByZXR1cm4gKCp0aGlzKSA8PCAoY29uc3QgY2hhciopczsgfQogICAgb3N0cmVh
bSYgb3BlcmF0b3I8PChjb25zdCB2b2lkICpwKTsKICAgIG9zdHJlYW0mIG9wZXJhdG9yPDwoaW50
IG4pOwogICAgb3N0cmVhbSYgb3BlcmF0b3I8PCh1bnNpZ25lZCBpbnQgbik7CiAgICBvc3RyZWFt
JiBvcGVyYXRvcjw8KGxvbmcgbik7CiAgICBvc3RyZWFtJiBvcGVyYXRvcjw8KHVuc2lnbmVkIGxv
bmcgbik7CgogICAgX19leHRlbnNpb25fXyBvc3RyZWFtJiBvcGVyYXRvcjw8KGxvbmcgbG9uZyBu
KTsKICAgIF9fZXh0ZW5zaW9uX18gb3N0cmVhbSYgb3BlcmF0b3I8PCh1bnNpZ25lZCBsb25nIGxv
bmcgbik7CgogICAgb3N0cmVhbSYgb3BlcmF0b3I8PChzaG9ydCBuKSB7cmV0dXJuIG9wZXJhdG9y
PDwoKGludCluKTt9CiAgICBvc3RyZWFtJiBvcGVyYXRvcjw8KHVuc2lnbmVkIHNob3J0IG4pIHty
ZXR1cm4gb3BlcmF0b3I8PCgodW5zaWduZWQgaW50KW4pO30KCiAgICBvc3RyZWFtJiBvcGVyYXRv
cjw8KGJvb2wgYikgeyByZXR1cm4gb3BlcmF0b3I8PCgoaW50KWIpOyB9CgogICAgb3N0cmVhbSYg
b3BlcmF0b3I8PChkb3VibGUgbik7CiAgICBvc3RyZWFtJiBvcGVyYXRvcjw8KGZsb2F0IG4pIHsg
cmV0dXJuIG9wZXJhdG9yPDwoKGRvdWJsZSluKTsgfQoKICAgIG9zdHJlYW0mIG9wZXJhdG9yPDwo
bG9uZyBkb3VibGUgbik7CgoKCiAgICBvc3RyZWFtJiBvcGVyYXRvcjw8KF9fb21hbmlwIGZ1bmMp
IHsgcmV0dXJuICgqZnVuYykoKnRoaXMpOyB9CiAgICBvc3RyZWFtJiBvcGVyYXRvcjw8KF9fbWFu
aXAgZnVuYykgeygqZnVuYykoKnRoaXMpOyByZXR1cm4gKnRoaXM7fQogICAgb3N0cmVhbSYgb3Bl
cmF0b3I8PChzdHJlYW1idWYqKTsKCgoKfTsKCmNsYXNzIGlzdHJlYW0gOiB2aXJ0dWFsIHB1Ymxp
YyBpb3MKewogICAgIApwcm90ZWN0ZWQ6CiAgICBzaXplX3QgICBfZ2NvdW50OwoKICAgIGludCBf
c2tpcF93cygpOwogIHB1YmxpYzoKICAgIGlzdHJlYW0oKTogX2djb3VudCAoMCkgeyB9CiAgICBp
c3RyZWFtKHN0cmVhbWJ1Ziogc2IsIG9zdHJlYW0qdGllZD0gX19udWxsICk7CiAgICBpc3RyZWFt
JiBnZXQoY2hhciogcHRyLCBpbnQgbGVuLCBjaGFyIGRlbGltID0gJ1xuJyk7CiAgICBpc3RyZWFt
JiBnZXQodW5zaWduZWQgY2hhciogcHRyLCBpbnQgbGVuLCBjaGFyIGRlbGltID0gJ1xuJykKCXsg
cmV0dXJuIGdldCgoY2hhciopcHRyLCBsZW4sIGRlbGltKTsgfQogICAgaXN0cmVhbSYgZ2V0KGNo
YXImIGMpOwogICAgaXN0cmVhbSYgZ2V0KHVuc2lnbmVkIGNoYXImIGMpIHsgcmV0dXJuIGdldCgo
Y2hhciYpYyk7IH0KICAgIGlzdHJlYW0mIGdldGxpbmUoY2hhciogcHRyLCBpbnQgbGVuLCBjaGFy
IGRlbGltID0gJ1xuJyk7CiAgICBpc3RyZWFtJiBnZXRsaW5lKHVuc2lnbmVkIGNoYXIqIHB0ciwg
aW50IGxlbiwgY2hhciBkZWxpbSA9ICdcbicpCgl7IHJldHVybiBnZXRsaW5lKChjaGFyKilwdHIs
IGxlbiwgZGVsaW0pOyB9CiAgICBpc3RyZWFtJiBnZXQoc2lnbmVkIGNoYXImIGMpICB7IHJldHVy
biBnZXQoKGNoYXImKWMpOyB9CiAgICBpc3RyZWFtJiBnZXQoc2lnbmVkIGNoYXIqIHB0ciwgaW50
IGxlbiwgY2hhciBkZWxpbSA9ICdcbicpCgl7IHJldHVybiBnZXQoKGNoYXIqKXB0ciwgbGVuLCBk
ZWxpbSk7IH0KICAgIGlzdHJlYW0mIGdldGxpbmUoc2lnbmVkIGNoYXIqIHB0ciwgaW50IGxlbiwg
Y2hhciBkZWxpbSA9ICdcbicpCgl7IHJldHVybiBnZXRsaW5lKChjaGFyKilwdHIsIGxlbiwgZGVs
aW0pOyB9CiAgICBpc3RyZWFtJiByZWFkKGNoYXIgKnB0ciwgc3RyZWFtc2l6ZSBuKTsKICAgIGlz
dHJlYW0mIHJlYWQodW5zaWduZWQgY2hhciAqcHRyLCBzdHJlYW1zaXplIG4pCiAgICAgIHsgcmV0
dXJuIHJlYWQoKGNoYXIqKXB0ciwgbik7IH0KICAgIGlzdHJlYW0mIHJlYWQoc2lnbmVkIGNoYXIg
KnB0ciwgc3RyZWFtc2l6ZSBuKQogICAgICB7IHJldHVybiByZWFkKChjaGFyKilwdHIsIG4pOyB9
CiAgICBpc3RyZWFtJiByZWFkKHZvaWQgKnB0ciwgc3RyZWFtc2l6ZSBuKQogICAgICB7IHJldHVy
biByZWFkKChjaGFyKilwdHIsIG4pOyB9CiAgICBpc3RyZWFtJiBnZXQoc3RyZWFtYnVmJiBzYiwg
Y2hhciBkZWxpbSA9ICdcbicpOwogICAgaXN0cmVhbSYgZ2V0cyhjaGFyICoqcywgY2hhciBkZWxp
bSA9ICdcbicpOwogICAgaW50IGlwZngoaW50IG5lZWQgPSAwKSB7CglpZiAoIWdvb2QoKSkgeyBz
ZXQoaW9zOjpmYWlsYml0KTsgcmV0dXJuIDA7IH0KCWVsc2UgewoJICAgOwoJICBpZiAoX3RpZSAm
JiAobmVlZCA9PSAwIHx8IHJkYnVmKCktPmluX2F2YWlsKCkgPCBuZWVkKSkgX3RpZS0+Zmx1c2go
KTsKCSAgaWYgKCFuZWVkICYmIChmbGFncygpICYgaW9zOjpza2lwd3MpKSByZXR1cm4gX3NraXBf
d3MoKTsKCSAgZWxzZSByZXR1cm4gMTsKCX0KICAgIH0KICAgIGludCBpcGZ4MCgpIHsgIAoJaWYg
KCFnb29kKCkpIHsgc2V0KGlvczo6ZmFpbGJpdCk7IHJldHVybiAwOyB9CgllbHNlIHsKCSAgIDsK
CSAgaWYgKF90aWUpIF90aWUtPmZsdXNoKCk7CgkgIGlmIChmbGFncygpICYgaW9zOjpza2lwd3Mp
IHJldHVybiBfc2tpcF93cygpOwoJICBlbHNlIHJldHVybiAxOwoJfQogICAgfQogICAgaW50IGlw
ZngxKCkgeyAgCglpZiAoIWdvb2QoKSkgeyBzZXQoaW9zOjpmYWlsYml0KTsgcmV0dXJuIDA7IH0K
CWVsc2UgewoJICAgOwoJICBpZiAoX3RpZSAmJiByZGJ1ZigpLT5pbl9hdmFpbCgpID09IDApIF90
aWUtPmZsdXNoKCk7CgkgIHJldHVybiAxOwoJfQogICAgfQogICAgdm9pZCBpc2Z4KCkgeyAgOyB9
CiAgICBpbnQgZ2V0KCkgeyBpZiAoIWlwZngxKCkpIHJldHVybiAoLTEpIDsKCQllbHNlIHsgaW50
IGNoID0gX3N0cmJ1Zi0+c2J1bXBjKCk7CgkJICAgICAgIGlmIChjaCA9PSAoLTEpICkgc2V0KGlv
czo6ZW9mYml0KTsKCQkgICAgICAgaXNmeCgpOwoJCSAgICAgICByZXR1cm4gY2g7CgkJICAgICB9
IH0KICAgIGludCBwZWVrKCk7CiAgICBzaXplX3QgICBnY291bnQoKSB7IHJldHVybiBfZ2NvdW50
OyB9CiAgICBpc3RyZWFtJiBpZ25vcmUoaW50IG49MSwgaW50IGRlbGltID0gKC0xKSApOwogICAg
aW50IHN5bmMgKCk7CiAgICBpc3RyZWFtJiBzZWVrZyhzdHJlYW1wb3MpOwogICAgaXN0cmVhbSYg
c2Vla2coc3RyZWFtb2ZmLCBfc2Vla19kaXIpOwogICAgc3RyZWFtcG9zIHRlbGxnKCk7CiAgICBp
c3RyZWFtJiBwdXRiYWNrKGNoYXIgY2gpIHsKCWlmIChnb29kKCkgJiYgX3N0cmJ1Zi0+c3B1dGJh
Y2tjKGNoKSA9PSAoLTEpICkgY2xlYXIoaW9zOjpiYWRiaXQpOwoJcmV0dXJuICp0aGlzO30KICAg
IGlzdHJlYW0mIHVuZ2V0KCkgewoJaWYgKGdvb2QoKSAmJiBfc3RyYnVmLT5zdW5nZXRjKCkgPT0g
KC0xKSApIGNsZWFyKGlvczo6YmFkYml0KTsKCXJldHVybiAqdGhpczt9CiAgICBpc3RyZWFtJiBz
Y2FuKGNvbnN0IGNoYXIgKmZvcm1hdCAuLi4pOwogICAgaXN0cmVhbSYgdnNjYW4oY29uc3QgY2hh
ciAqZm9ybWF0LCBfX2dudWNfdmFfbGlzdCAgYXJncyk7CgoKCgoKCiAgICBpc3RyZWFtJiBvcGVy
YXRvcj4+KGNoYXIqKTsKICAgIGlzdHJlYW0mIG9wZXJhdG9yPj4odW5zaWduZWQgY2hhciogcCkg
eyByZXR1cm4gb3BlcmF0b3I+PigoY2hhciopcCk7IH0KICAgIGlzdHJlYW0mIG9wZXJhdG9yPj4o
c2lnbmVkIGNoYXIqcCkgeyByZXR1cm4gb3BlcmF0b3I+PigoY2hhciopcCk7IH0KICAgIGlzdHJl
YW0mIG9wZXJhdG9yPj4oY2hhciYgYyk7CiAgICBpc3RyZWFtJiBvcGVyYXRvcj4+KHVuc2lnbmVk
IGNoYXImIGMpIHtyZXR1cm4gb3BlcmF0b3I+PigoY2hhciYpYyk7fQogICAgaXN0cmVhbSYgb3Bl
cmF0b3I+PihzaWduZWQgY2hhciYgYykge3JldHVybiBvcGVyYXRvcj4+KChjaGFyJiljKTt9CiAg
ICBpc3RyZWFtJiBvcGVyYXRvcj4+KGludCYpOwogICAgaXN0cmVhbSYgb3BlcmF0b3I+Pihsb25n
Jik7CgogICAgX19leHRlbnNpb25fXyBpc3RyZWFtJiBvcGVyYXRvcj4+KGxvbmcgbG9uZyYpOwog
ICAgX19leHRlbnNpb25fXyBpc3RyZWFtJiBvcGVyYXRvcj4+KHVuc2lnbmVkIGxvbmcgbG9uZyYp
OwoKICAgIGlzdHJlYW0mIG9wZXJhdG9yPj4oc2hvcnQmKTsKICAgIGlzdHJlYW0mIG9wZXJhdG9y
Pj4odW5zaWduZWQgaW50Jik7CiAgICBpc3RyZWFtJiBvcGVyYXRvcj4+KHVuc2lnbmVkIGxvbmcm
KTsKICAgIGlzdHJlYW0mIG9wZXJhdG9yPj4odW5zaWduZWQgc2hvcnQmKTsKCiAgICBpc3RyZWFt
JiBvcGVyYXRvcj4+KGJvb2wmKTsKCiAgICBpc3RyZWFtJiBvcGVyYXRvcj4+KGZsb2F0Jik7CiAg
ICBpc3RyZWFtJiBvcGVyYXRvcj4+KGRvdWJsZSYpOwogICAgaXN0cmVhbSYgb3BlcmF0b3I+Pihs
b25nIGRvdWJsZSYpOwogICAgaXN0cmVhbSYgb3BlcmF0b3I+PiggX19tYW5pcCBmdW5jKSB7KCpm
dW5jKSgqdGhpcyk7IHJldHVybiAqdGhpczt9CiAgICBpc3RyZWFtJiBvcGVyYXRvcj4+KF9faW1h
bmlwIGZ1bmMpIHsgcmV0dXJuICgqZnVuYykoKnRoaXMpOyB9CiAgICBpc3RyZWFtJiBvcGVyYXRv
cj4+KHN0cmVhbWJ1ZiopOwp9OwoKY2xhc3MgaW9zdHJlYW0gOiBwdWJsaWMgaXN0cmVhbSwgcHVi
bGljIG9zdHJlYW0KewogIHB1YmxpYzoKICAgIGlvc3RyZWFtKCkgeyB9CiAgICBpb3N0cmVhbShz
dHJlYW1idWYqIHNiLCBvc3RyZWFtKnRpZWQ9IF9fbnVsbCApOwp9OwoKY2xhc3MgX0lPX2lzdHJl
YW1fd2l0aGFzc2lnbiA6IHB1YmxpYyBpc3RyZWFtIHsKcHVibGljOgogIF9JT19pc3RyZWFtX3dp
dGhhc3NpZ24mIG9wZXJhdG9yPShpc3RyZWFtJik7CiAgX0lPX2lzdHJlYW1fd2l0aGFzc2lnbiYg
b3BlcmF0b3I9KF9JT19pc3RyZWFtX3dpdGhhc3NpZ24mIHJocykKICAgIHsgcmV0dXJuIG9wZXJh
dG9yPSAoc3RhdGljX2Nhc3Q8aXN0cmVhbSY+IChyaHMpKTsgfQp9OwoKY2xhc3MgX0lPX29zdHJl
YW1fd2l0aGFzc2lnbiA6IHB1YmxpYyBvc3RyZWFtIHsKcHVibGljOgogIF9JT19vc3RyZWFtX3dp
dGhhc3NpZ24mIG9wZXJhdG9yPShvc3RyZWFtJik7CiAgX0lPX29zdHJlYW1fd2l0aGFzc2lnbiYg
b3BlcmF0b3I9KF9JT19vc3RyZWFtX3dpdGhhc3NpZ24mIHJocykKICAgIHsgcmV0dXJuIG9wZXJh
dG9yPSAoc3RhdGljX2Nhc3Q8b3N0cmVhbSY+IChyaHMpKTsgfQp9OwoKZXh0ZXJuIF9JT19pc3Ry
ZWFtX3dpdGhhc3NpZ24gY2luOwogCmV4dGVybiBfSU9fb3N0cmVhbV93aXRoYXNzaWduIGNvdXQs
IGNlcnI7CgpleHRlcm4gX0lPX29zdHJlYW1fd2l0aGFzc2lnbiBjbG9nCgoKCjsKCmV4dGVybiBp
c3RyZWFtJiBsb2NrKGlzdHJlYW0mIGlucyk7CmV4dGVybiBpc3RyZWFtJiB1bmxvY2soaXN0cmVh
bSYgaW5zKTsKZXh0ZXJuIG9zdHJlYW0mIGxvY2sob3N0cmVhbSYgb3V0cyk7CmV4dGVybiBvc3Ry
ZWFtJiB1bmxvY2sob3N0cmVhbSYgb3V0cyk7CgpzdHJ1Y3QgSW9zdHJlYW1faW5pdCB7IH0gOyAg
IAoKaW5saW5lIGlvcyYgZGVjKGlvcyYgaSkKeyBpLnNldGYoaW9zOjpkZWMsIGlvczo6ZGVjfGlv
czo6aGV4fGlvczo6b2N0KTsgcmV0dXJuIGk7IH0KaW5saW5lIGlvcyYgaGV4KGlvcyYgaSkKeyBp
LnNldGYoaW9zOjpoZXgsIGlvczo6ZGVjfGlvczo6aGV4fGlvczo6b2N0KTsgcmV0dXJuIGk7IH0K
aW5saW5lIGlvcyYgb2N0KGlvcyYgaSkKeyBpLnNldGYoaW9zOjpvY3QsIGlvczo6ZGVjfGlvczo6
aGV4fGlvczo6b2N0KTsgcmV0dXJuIGk7IH0KfSAgCgoKIyA2ICIvdXNyL2xpYi9nY2MtbGliL2k1
ODYtbWFuZHJha2UtbGludXgvMi45NS4zLy4uLy4uLy4uLy4uL2luY2x1ZGUvZysrLTMvaW9zdHJl
YW0iIDIgMwoKCiMgMSAidGVzdC5jcHAiIDIKCgppbnQgbWFpbigpIHsKICAgaW50ICpwID0gbmV3
IGludFsxMF07CgogICBmb3IoaW50IGk9MDsgaTwxMDtpKyspIHsKICAgICAqKHAraSk9aSoyOwog
ICAgIGNvdXQ8PCJwIjw8aTw8IiA9Ijw8KihwK2kpPDwocCtpKTw8ZW5kbDsKICAgfQogICBjb3V0
PDwicD0gIjw8cDw8ZW5kbAogICAgICAgPDwiKnA9ICI8PCpwPDxlbmRsCiAgICAgICA8PCJwKys9
Ijw8cCsrPDxlbmRsCiAgICAgICA8PCIqcCsrPSI8PCgqcCsrKTw8ZW5kbAogICAgICAgPDwicD0i
PDxwPDxlbmRsCiAgICAgICA8PCIqcD0iPDwqcDw8ZW5kbDsKfQoAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRl
c3Qub3V0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDA3NjUA
MDAwMDc2NQAwMDAwMDAwMzIzNQAwNzIxNTE3NjM0NgAwMTA3MjEAIDAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABsaWQAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAGxpZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUmVh
ZGluZyBzcGVjcyBmcm9tIC91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51eC8yLjk1
LjMvc3BlY3MKZ2NjIHZlcnNpb24gMi45NS4zIDE5OTkxMDMwIChwcmVyZWxlYXNlKQogL3Vzci9s
aWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUuMy9jcHAgLWxhbmctYysrIC12IC1E
X19HTlVDX189MiAtRF9fR05VR19fPTIgLURfX0dOVUNfTUlOT1JfXz05NSAtRF9fY3BsdXNwbHVz
IC1EX19FTEZfXyAtRHVuaXggLURfX2kzODZfXyAtRGxpbnV4IC1EX19FTEZfXyAtRF9fdW5peF9f
IC1EX19pMzg2X18gLURfX2xpbnV4X18gLURfX3VuaXggLURfX2xpbnV4IC1Bc3lzdGVtKHBvc2l4
KSAtRF9fRVhDRVBUSU9OUyAtQWNwdShpMzg2KSAtQW1hY2hpbmUoaTM4NikgLURpMzg2IC1EX19p
Mzg2IC1EX19pMzg2X18gLURpNTg2IC1EcGVudGl1bSAtRF9faTU4NiAtRF9faTU4Nl9fIC1EX19w
ZW50aXVtIC1EX19wZW50aXVtX18gdGVzdC5jcHAgdGVzdC5paQpHTlUgQ1BQIHZlcnNpb24gMi45
NS4zIDE5OTkxMDMwIChwcmVyZWxlYXNlKSAoaTM4NiBMaW51eC9FTEYpCiNpbmNsdWRlICIuLi4i
IHNlYXJjaCBzdGFydHMgaGVyZToKI2luY2x1ZGUgPC4uLj4gc2VhcmNoIHN0YXJ0cyBoZXJlOgog
L3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUuMy8uLi8uLi8uLi8uLi9p
bmNsdWRlL2crKy0zCiAvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45NS4z
Ly4uLy4uLy4uLy4uL2k1ODYtbWFuZHJha2UtbGludXgvaW5jbHVkZQogL3Vzci9saWIvZ2NjLWxp
Yi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUuMy9pbmNsdWRlCiAvdXNyL2luY2x1ZGUKRW5kIG9m
IHNlYXJjaCBsaXN0LgpUaGUgZm9sbG93aW5nIGRlZmF1bHQgZGlyZWN0b3JpZXMgaGF2ZSBiZWVu
IG9taXR0ZWQgZnJvbSB0aGUgc2VhcmNoIHBhdGg6CiAvdXNyL2xvY2FsL2luY2x1ZGUKRW5kIG9m
IG9taXR0ZWQgbGlzdC4KIC91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51eC8yLjk1
LjMvY2MxcGx1cyB0ZXN0LmlpIC1xdWlldCAtZHVtcGJhc2UgdGVzdC5jYyAtdmVyc2lvbiAtbyB0
ZXN0LnMKR05VIEMrKyB2ZXJzaW9uIDIuOTUuMyAxOTk5MTAzMCAocHJlcmVsZWFzZSkgKGk1ODYt
bWFuZHJha2UtbGludXgpIGNvbXBpbGVkIGJ5IEdOVSBDIHZlcnNpb24gMi45NS4zIDE5OTkxMDMw
IChwcmVyZWxlYXNlKS4KIGFzIC1WIC1ReSAtbyB0ZXN0Lm8gdGVzdC5zCkdOVSBhc3NlbWJsZXIg
dmVyc2lvbiAyLjEwLjkwIChpNTg2LW1hbmRyYWtlLWxpbnV4KSB1c2luZyBCRkQgdmVyc2lvbiAy
LjEwLjAuMjQKIC91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51eC8yLjk1LjMvY29s
bGVjdDIgLW0gZWxmX2kzODYgLWR5bmFtaWMtbGlua2VyIC9saWIvbGQtbGludXguc28uMiAvdXNy
L2xpYi9jcnQxLm8gL3Vzci9saWIvY3J0aS5vIC91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFr
ZS1saW51eC8yLjk1LjMvY3J0YmVnaW4ubyAtTC91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFr
ZS1saW51eC8yLjk1LjMgLUwvdXNyL2k1ODYtbWFuZHJha2UtbGludXgvbGliIHRlc3QubyAtbHN0
ZGMrKyAtbG0gLWxnY2MgLWxjIC1sZ2NjIC91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1s
aW51eC8yLjk1LjMvY3J0ZW5kLm8gL3Vzci9saWIvY3J0bi5vCgAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]