Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Jan 2015 11:09:21 +0100
From:      Peter <peter@flytrace.com>
To:        ports@FreeBSD.org
Subject:   xrdesktop ported to Gtk2
Message-ID:  <54C763D1.7020108@flytrace.com>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------060103000108040102030702
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Hello,

I've ported xrdesktop to Gtk2 and fixed some small bugs.
The software was tested during some months in everyday use, there is no 
problem.
You can push it to ports tree with the same name or as xrdesktop2 (to 
save the old one).

Best regards,
Peter TKATCHENKO

--------------060103000108040102030702
Content-Type: text/plain; charset=UTF-8;
 name="xrdesktop"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="xrdesktop"

IyEvdXNyL2Jpbi9wZXJsIC13CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIHhyZGVz
a3RvcCwgYSBndGstcGVybCBmcm9udGVuZCBmb3IgcmRlc2t0b3AgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIwojIENvcHlyaWdodCAoQykgMjAwMiBEYXZpZCBLb3ZhY2gg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojIFBvcnRl
ZCB0byBHdGsyIGJ5IFBldGVyIFRLQVRDSEVOS08sIDIwMTQJCQkjCiMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAjCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgICAgICAgICAjCiMgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgICAgICAgICAjCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgICAgICAgICAgICAjCiMgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAjCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiMgVGhpcyBwcm9ncmFt
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAg
ICAgICAgICAgICAjCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgICAgICAgICAgICAjCiMgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSAgICAg
ICAgICAgICAgICAjCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAjCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgICAgICAgICAgICAjCiMgYWxvbmcgd2l0aCB0
aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgICAgICAg
ICAgICAgICAgICAjCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0
ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQSAgICAjCiMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjCgp1c2UgR3RrMiAtaW5pdDsKdXNlIEd0azI6OlNpbXBsZUxpc3Q7CnVz
ZSBzdHJpY3Q7CgpteSAkZmFsc2UgPSAwOwpteSAkdHJ1ZSA9IDE7CgpteSAkd2luZG93Owpt
eSAkYm94MTsKbXkgJHNjcm9sbGVkX3dpbmRvdzE7Cm15ICRidXR0b25ib3gxOwpteSAkYnV0
dG9uMTsKbXkgJGJ1dHRvbjI7Cm15ICRidXR0b24zOwpteSAkYnV0dG9uNDsKbXkgJGJ1dHRv
bjU7Cm15ICRsaXN0MTsKbXkgJWlwX2hhc2g7Cm15ICV1bmFtZV9oYXNoOwpteSAlZ2VvbV9o
YXNoOwpteSAlZnVsbHNjcmVlbl9oYXNoOwpteSAlYml0bWFwX3VwZF9oYXNoOwpteSAla21h
cF9oYXNoOwpteSAlbGljZW5zZV9oYXNoOwpteSAlcGFzc3RocnVfaGFzaDsKbXkgJG1hY2hp
bmVfbmFtZTsKbXkgJG1hY2hpbmVfaXA7Cm15ICRtYWNoaW5lX3VuYW1lOwpteSAkbWFjaGlu
ZV9nZW9tOwpteSAkbWFjaGluZV9mczsKbXkgJG1hY2hpbmVfYml0bWFwX3VwZDsKbXkgJG1h
Y2hpbmVfa21hcDsKbXkgJG1hY2hpbmVfbGljOwpteSAkbWFjaGluZV9wYXNzdGhydTsKbXkg
JHJhd19kYXRhOwpteSAkZmllbGRfdHlwZTsKbXkgJGZpZWxkX2RhdGE7Cm15ICRtYWNoaW5h
OwpteSBAbWFjaGluZXM7Cm15IEB0ZW1wOwpteSAkc2VsZWN0ZWRfbWFjaGluZTsKbXkgJHNl
bGVjdGVkX21hY2hpbmVfaXA7Cm15ICRzZWxlY3RlZF91bmFtZTsKbXkgJHNlbGVjdGVkX2dl
b207Cm15ICRzZWxlY3RlZF9mczsKbXkgJHNlbGVjdGVkX2JpdG1hcF91cGQ7Cm15ICRzZWxl
Y3RlZF9rbWFwOwpteSAkc2VsZWN0ZWRfa21hcF9oZXg7Cm15ICRzZWxlY3RlZF9saWM7Cm15
ICRzZWxlY3RlZF9wYXNzdGhydTsKbXkgJGRpYWxvZzE7Cm15ICRkaWFsb2dfYnV0dG9uX29r
OwpteSAkZGlhbG9nX2J1dHRvbl9jYW5jZWw7Cm15ICRuYW1lX2VudHJ5OwpteSAkaXBfZW50
cnk7Cm15ICR1bmFtZV9lbnRyeTsKbXkgJGRpYWxvZzI7Cm15ICRjb21ibzE7Cm15ICRjb21i
bzI7Cm15ICRmc19jaGVja2JveDsKbXkgJGJtcF9jaGVja2JveDsKbXkgJGxpY19jaGVja2Jv
eDsKbXkgJHBhc3N0aHJ1X2VudHJ5OwpteSAkcGFzc3RocnU7Cm15ICRpbmRleG1heD0wOwoK
IyB0aGUgQklHQVNTIGxpc3Qgb2Yga2V5bWFwcy4gZmVhciBpdHMgYXdlc29tZSBnaXJ0aCBh
bmQgc3R1ZmYuCiMjIDAyLzEwLzIwMDMgdXBkYXRlZCB0aGUgbGlzdCB0byB3b3JrIHdpdGgg
cmRlc2t0b3AgMS4yIGFuZCB0aGUKIyMgbmV3IHdheSB0aGV5IGRvIGtleWJvYXJkIGxheW91
dHMuLi5mZWgKIyMgbGVmdCBhbGwgdGhlIGhleCBjb2RlcyBmb3Igd2hpY2ggaSBjb3VsZCBu
b3QgZmluZCBtYXBwaW5ncyBhcyBjb21tZW50cwojIyBpbiB0aGUgaG9wZXMgdGhhdCBzb21l
ZGF5IGl0IHdpbGwgZ2V0IGZpeGVkLgojIyBhbHNvIG5vdGUgdGhhdCBzb21lIG9mIHRoZXNl
IGFyZSBhcHByb3hpbWF0aW9ucyBhbmQgbWF5IG9yIG1heQojIyBub3Qgd29yayBhdCBhbGwu
Cm15ICVrbWFwX3RyYW5zX2hhc2ggPSAoCgkiQWxiYW5pYW4iID0+ICJlbi11cyIsCiMJIkFy
YWJpYyAxMDEiID0+ICIweDAwMDAwNDAxIiwKIwkiQXJhYmljIDEwMiBBWkVSVFkiID0+ICIw
eDAwMDIwNDAxIiwKIwkiQXJhYmljIDEwMiIgPT4gIjB4MDAwMTA0MDEiLAojCSJBcm1lbmlh
biBFYXN0ZXJuIiA9PiAiMHgwMDAwMDQyYiIsCiMJIkFybWVuaWFuIFdlc3Rlcm4iID0+ICIw
eDAwMDEwNDJiIiwKIwkiQXplcmkgQ3lyaWxsaWMiID0+ICIweDAwMDAwODJjIiwKIwkiQXpl
cmkgTGF0aW4iID0+ICIweDAwMDAwNDJjIiwKIwkiQmVsYXJ1c2lhbiIgPT4gIjB4MDAwMDA0
MjMiLAojCSJCZWxnaWFuIENvbW1hIiA9PiAiMHgwMDAxMDgwYyIsCgkiQmVsZ2lhbiBEdXRj
aCIgPT4gImJlIiwKCSJCZWxnaWFuIEZyZW5jaCIgPT4gImJlIiwKCSJCdWxnYXJpYW4gTGF0
aW4iID0+ICJiZyIsCiMJIkJ1bGdhcmlhbiIgPT4gIjB4MDAwMDA0MDIiLAoJIkNhbmFkaWFu
IEZyZW5jaCBsZWdhY3kiID0+ICJjZiIsCgkiQ2FuYWRpYW4gRnJlbmNoIiA9PiAiZW4tdXMi
LAojCSJDYW5hZGlhbiBNdWx0aWxpbmd1YWwgU3RhbmRhcmQiID0+ICIweDAwMDExMDA5IiwK
IwkiQ2hpbmVzZSBNUy1QaW5ZaW45OCIgPT4gIjB4ZTAwZTA4MDQiLAojCSJDaGluZXNlIE5l
aU1hIiA9PiAiMHhlMDA1MDgwNCIsCiMJIkNoaW5lc2UgUXVhblBpbiIgPT4gIjB4ZTAwMTA4
MDQiLAojCSJDaGluZXNlIFNodWFuZ1BpbiIgPT4gIjB4ZTAwMjA4MDQiLAoJIkNoaW5lc2Ug
VVMgS2V5Ym9hcmQiID0+ICJjaCIsCiMJIkNoaW5lc2UgWmhlbmdNYSIgPT4gIjB4ZTAwMzA4
MDQiLAojCSJDaGluZXNlIEFscGhhbnVtZXJpYyIgPT4gIjB4ZTAxZjA0MDQiLAojCSJDaGlu
ZXNlIEFycmF5IiA9PiAiMHhlMDA1MDQwNCIsCiMJIkNoaW5lc2UgQmlnNSBDb2RlIiA9PiAi
MHhlMDA0MDQwNCIsCiMJIkNoaW5lc2UgQ2hhbmdKaWUiID0+ICIweGUwMDIwNDA0IiwKIwki
Q2hpbmVzZSBEYVlpIiA9PiAiMHhlMDA2MDQwNCIsCiMJIkNoaW5lc2UgTmV3IENoYW5nSmll
IiA9PiAiMHhlMDA5MDQwNCIsCiMJIkNoaW5lc2UgTmV3IFBob25lZXRpYyIgPT4gIjB4ZTAw
ODA0MDQiLAojCSJDaGluZXNlIFBob25ldGljIiA9PiAiMHhlMDAxMDQwNCIsCiMJIkNoaW5l
c2UgUXVpY2siID0+ICIweGUwMDMwNDA0IiwKCSJDaGluZXNlIFVTIEtleWJvYXJkIiA9PiAi
Y2giLAojCSJDaGluZXNlIFVuaWNvZGUiID0+ICIweGUwMDcwNDA0IiwKIwkiQ3JvYXRpYW4i
ID0+ICIweDAwMDAwNDFhIiwKIwkiQ3JvYXRpYW4gU3BlY2lmaWMiID0+ICIweDAwMDAwNDFh
IiwKCSJDemVjaCBRV0VSVFkiID0+ICJjeiIsCiMJIkN6ZWNoIFByb2dyYW1tZXJTIiA9PiAi
MHgwMDAyMDQwNSIsCgkiQ3plY2giID0+ICJjeiIsCgkiRGFuaXNoIiA9PiAiZGsiLAojCSJE
ZXZhbmFnYXJpIElOU0NSSVBUIiA9PiAiMHgwMDAwMDQzOSIsCgkiRHV0Y2giID0+ICJubCIs
CgkiRXN0b25pYW4iID0+ICJldCIsCiMJIkZhZXJvZXNlIiA9PiAiMHgwMDAwMDQzOCIsCiMJ
IkZhcnNpIiA9PiAiMHgwMDAwMDQyOSIsCgkiRmlubmlzaCIgPT4gInN1IiwKCSJGcmVuY2gi
ID0+ICJmciIsCiMJIkdhZWxpYyIgPT4gIjB4MDAwMTE4MDkiLAojCSJHZW9yZ2lhbiIgPT4g
IjB4MDAwMDA0MzciLAojIGNoYW5nZWQgdGhlIEdlcm1hbiBrZXltYXAgc3RyaW5nIGZyb20g
ImdyIiB0byAiZGUiIAojIGF0IHRoZSBiZWhlc3Qgb2YgVG9iaWFzIE1vaHJsdWRlci4gVGhh
bmtzIQojIGhvcGVmdWxseSB0aGlzIGlzIHJpZ2h0IDopCgkiR2VybWFuIElCTSIgPT4gImRl
IiwKCSJHZXJtYW4iID0+ICJkZSIsCiMJIkdyZWVrIDIyMCBMYXRpbiIgPT4gIjB4MDAwMzA0
MDgiLAoJIkdyZWVrIDIyMCIgPT4gImdrIiwKIwkiR3JlZWsgMzE5IExhdGluIiA9PiAiMHgw
MDA0MDQwOCIsCgkiR3JlZWsgMzE5IiA9PiAiZ2siLAoJIkdyZWVrIExhdGluIiA9PiAiZ2si
LAojCSJHcmVlayBQb2x5dG9uaWMiID0+ICIweDAwMDYwNDA4IiwKCSJHcmVlayIgPT4gImdr
IiwKIwkiSGVicmV3IiA9PiAiMHgwMDAwMDQwZCIsCiMJIkhpbmRpIFRyYWRpdGlvbmFsIiA9
PiAiMHgwMDAxMDQzOSIsCgkiSHVuZ2FyaWFuIDEwMS1rZXkiID0+ICJodSIsCgkiSHVuZ2Fy
aWFuIiA9PiAiaHUiLAoJIkljZWxhbmRpYyIgPT4gImlzIiwKCSJJcmlzaCIgPT4gImVuLXVz
IiwKCSJJdGFsaWFuIDE0MiIgPT4gIml0IiwKCSJJdGFsaWFuIiA9PiAiaXQiLAojCSJKYXBh
bmVzZSBJbnB1dCBTeXN0ZW0iID0+ICIweGUwMDEwNDExIiwKCSJKYXBhbmVzZSIgPT4gImpw
IiwKIwkiSmFwYW5lc2UgMTA2IiA9PiAiMHgwMDAwMDQxMSIsCiMJIkphcGFuZXNlIHBjOTh4
MSIgPT4gIjB4MDAwMDA0MTEiLAojCSJLYXpha2giID0+ICIweDAwMDAwNDNmIiwKIwkiS29y
ZWFuIEhhbmd1bCBNUy1JTUU5OCIgPT4gIjB4ZTAwMTA0MTIiLAoJIktvcmVhbiBIYW5ndWwi
ID0+ICJrbyIsCgkiTGF0aW4gQW1lcmljYW4iID0+ICJsYSIsCgkiTGF0dmlhbiBRV0VSVFki
ID0+ICJlbi11cyIsCiMJIkxhdHZpYW4iID0+ICIweDAwMDAwNDI2IiwKIwkiTGl0aHVhbmlh
biBJQk0iID0+ICIweDAwMDAwNDI3IiwKIwkiTGl0aHVhbmlhbiIgPT4gIjB4MDAwMTA0Mjci
LAojCSJNYWNlZG9uaWFuIEZZUk9NIiA9PiAiMHgwMDAwMDQyZiIsCiMJIk1hcmF0aGkiID0+
ICIweDAwMDAwNDRlIiwKCSJOb3J3ZWdpYW4iID0+ICJubyIsCgkiUG9saXNoIDIxNCIgPT4g
InBsIiwKCSJQb2xpc2ggUHJvZ3JhbW1lcnMiID0+ICJwbCIsCgkiUG9ydHVndWVzZSBCcmF6
aWxpYW4gQUJOVCIgPT4gImJyIiwKIwkiUG9ydHVndWVzZSBCcmF6aWxpYW4gQUJOVDIiID0+
ICIweDAwMDEwNDE2IiwKCSJQb3J0dWd1ZXNlIiA9PiAicG8iLAoJIlJvbWFuaWFuIiA9PiAi
cm8iLAoJIlJ1c3NpYW4gVHlwZXdyaXRlciIgPT4gInJ1IiwKCSJSdXNzaWFuIiA9PiAicnUi
LAojCSJSdXNzaWFuIEtPMTgtUiIgPT4gIjB4MDAwMDA0MTkiLAoJIlNlcmJpYW4gQ3lyaWxs
aWMiID0+ICJlbi11cyIsCiMJIlNlcmJpYW4gTGF0aW4iID0+ICIweDAwMDAwODFhIiwKCSJT
bG92YWsgUVdFUlRZIiA9PiAic2wiLAoJIlNsb3ZhayIgPT4gInNsIiwKIwkiU2xvdmFrIFBy
b2dyYW1tZXJzIiA9PiAiMHgwMDAwMDQxYiIsCgkiU2xvdmVuaWFuIiA9PiAieXUiLAojYWx0
ZXJlZCBzcGFuaXNoIGtleWJvYXJkIGNvdXJ0ZXN5IG9mIEpvbmF5IEdvbWV6CgkiU3Bhbmlz
aCBWYXJpYXRpb24iID0+ICJlcyIsCiMJIlNwYW5pc2giID0+ICIweDAwMDAwNDBhIiwKCSJT
d2VkaXNoIiA9PiAic3YiLAoJIlN3aXNzIEZyZW5jaCIgPT4gInNmIiwKIwkiU3dpc3MgR2Vy
bWFuIiA9PiAiMHgwMDAwMDgwIiwKIwkiVGFtaWwiID0+ICIweDAwMDAwNDQ5IiwKIwkiVGF0
YXIiID0+ICIweDAwMDAwNDQ0IiwKIwkiVGhhaSBLZWRtYW5lZSBub24tc2hpZnRsb2NrIiA9
PiAiMHgwMDAyMDQxZSIsCiMJIlRoYWkgS2VkbWFuZWUiID0+ICIweDAwMDAwNDFlIiwKIwki
VGhhaSBQYXR0YWNob3RlIG5vbi1zaGlmdGxvY2siID0+ICIweDAwMDMwNDFlIiwKIwkiVGhh
aSBQYXR0YWNob3RlIiA9PiAiMHgwMDAxMDQxZSIsCgkiVHVya2lzaCBGIiA9PiAidHIiLAoJ
IlR1cmtpc2ggUSIgPT4gInRyIiwKIwkiVVMgRW5nbGlzaCBUYWxiZSBmb3IgSUJNIEFyYWJp
YyAyMzhfTCIgPT4gIjB4MDAwNTA0MDkiLAoJIlVTIiA9PiAiZW4tdXMiLAojCSJVUyBwaGFu
dG9tIGtleSB2ZXIiID0+ICIweDAwMDAwNDA5IiwKIwkiVWtyYW5pYW4iID0+ICIweDAwMDAw
NDIyIiwKCSJFbmdsaXNoIiA9PiAiZW4tZ2IiLAoJIlVTIER2b3JhayBsZWZ0IiA9PiAidXNs
IiwKCSJVUyBEdm9yYWsgcmlnaHQiID0+ICJ1c3IiLAoJIlVTIER2b3JhayIgPT4gImR2IiwK
CSJVUyBJbnRlcm5hdGlvbmFsIiA9PiAiZW4tdXMiLAojCSJVemJlayBDeXJpbGxpYyIgPT4g
IjB4MDAwMDA4NDMiLAojCSJWaWV0bmFtZXNlIiA9PiAiMHgwMDAwMDQyYSIsCgkieXUiID0+
ICJ5dSIsCgkiY2YiID0+ICJjZiIsCgkidXM5IiA9PiAiZW4tdXMiLAopOwoKIyBjcmVhdGUg
dGhlIHdpbmRvdwokd2luZG93ID0gR3RrMjo6V2luZG93LT5uZXc7CiR3aW5kb3ctPnNpZ25h
bF9jb25uZWN0KCAiZGVsZXRlX2V2ZW50Iiwgc3ViIHsgR3RrMi0+bWFpbl9xdWl0IH0gKTsK
JHdpbmRvdy0+c2V0X2RlZmF1bHRfc2l6ZSggOTQwLCA2MDAgKTsKJHdpbmRvdy0+c2V0X2Jv
cmRlcl93aWR0aCggMiApOwokd2luZG93LT5zZXRfdGl0bGUoInhyZGVza3RvcCIpOwoKIyBt
YWtlIG91ciBmaXJzdCBib3gKJGJveDEgPSBHdGsyOjpWQm94LT5uZXc7CiRib3gxLT5zZXRf
c3BhY2luZyg4KTsKCgojIGNyZWF0ZSB0aGUgbGlzdCwgYXNzaWduIGEgc2lnbmFsIHRvIGhh
bmRsZSBjaGFuZ2Ugb2Ygc2VsZWN0aW9uCiRsaXN0MSA9IEd0azI6OlNpbXBsZUxpc3QtPm5l
dyAoIk5hbWUiLCAidGV4dCIsICJIb3N0bmFtZS9JUCIsICJ0ZXh0IiwgIlVzZXJuYW1lIiwg
InRleHQiLCAiS2V5bWFwIiwgInRleHQiLCAiR2VvbWV0cnkiLCAidGV4dCIsICJGdWxsc2Ny
ZWVuIiwgInRleHQiLCAiRm9yY2UgQml0bWFwIFVwZGF0ZXMiLCAidGV4dCIsICJEbyBOb3Qg
UmVxdWVzdCBMaWNlbnNlIiwgInRleHQiLCAiQ01EIFZhcnMiLCAidGV4dCIgKTsKCiMgdGhp
cyBpcyB0aGUgc2Nyb2xsZWQgd2luZG93IHRvIHB1dCB0aGUgTGlzdCB3aWRnZXQgaW5zaWRl
CiRzY3JvbGxlZF93aW5kb3cxID0gR3RrMjo6U2Nyb2xsZWRXaW5kb3ctPm5ldzsKJHNjcm9s
bGVkX3dpbmRvdzEtPnNldF9wb2xpY3koICJhdXRvbWF0aWMiLCAiYXV0b21hdGljIiApOwok
c2Nyb2xsZWRfd2luZG93MS0+YWRkX3dpdGhfdmlld3BvcnQoICRsaXN0MSApOwokYm94MS0+
cGFja19zdGFydCggJHNjcm9sbGVkX3dpbmRvdzEsICR0cnVlLCAkdHJ1ZSwgMCApOwokd2lu
ZG93LT5hZGQoICRib3gxICk7CgoKJGxpc3QxLT5zaWduYWxfY29ubmVjdCggJ2N1cnNvci1j
aGFuZ2VkJywgXCZsaXN0X3NlbF9yb3cgKTsKJGxpc3QxLT5zaWduYWxfY29ubmVjdCggJ3Jv
d19hY3RpdmF0ZWQnLCBcJnJkZXNxdWVfY29ubmVjdCApOwoKIyBzZWUgdGhlIHN1YiBhdCB0
aGUgZW5kIG9mIHRoZSBzY3JpcHQgZm9yIGluZm8KcG9wdWxhdGVfY2xpc3RfZnJvbV9jb25m
aWcoKTsKCiMgTWFrZSBzb21lIGJ1dHRvbnMKJGJ1dHRvbmJveDEgPSBuZXcgR3RrMjo6SEJ1
dHRvbkJveCgpOwokYnV0dG9uMSA9IG5ldyBHdGsyOjpCdXR0b24oICJDb25uZWN0IiApOwok
YnV0dG9uMiA9IG5ldyBHdGsyOjpCdXR0b24oICJBZGQiICk7CiRidXR0b24zID0gbmV3IEd0
azI6OkJ1dHRvbiggIkRlbGV0ZSIgKTsKJGJ1dHRvbjQgPSBuZXcgR3RrMjo6QnV0dG9uKCAi
RWRpdCIgKTsKJGJ1dHRvbjUgPSBuZXcgR3RrMjo6QnV0dG9uKCAiUXVpdCIgKTsKCiMgdGVs
bCB0aGVtIHdoYXQgdG8gZG8KJGJ1dHRvbjEtPnNpZ25hbF9jb25uZWN0KCAiY2xpY2tlZCIs
IFwmcmRlc3F1ZV9jb25uZWN0ICk7CiRidXR0b24yLT5zaWduYWxfY29ubmVjdCggImNsaWNr
ZWQiLCBcJnJkZXNxdWVfYWRkICk7CiRidXR0b24zLT5zaWduYWxfY29ubmVjdCggImNsaWNr
ZWQiLCBcJnJkZXNxdWVfZGVsZXRlICk7CiRidXR0b240LT5zaWduYWxfY29ubmVjdCggImNs
aWNrZWQiLCBcJnJkZXNxdWVfZWRpdCApOwokYnV0dG9uNS0+c2lnbmFsX2Nvbm5lY3QoICJj
bGlja2VkIiwgc3ViIHsgR3RrMi0+bWFpbl9xdWl0IH0gKTsKCiMgcHV0IHN0dWZmIGluIHRo
ZSB3aW5kb3cKJGJveDEtPnBhY2tfc3RhcnQoICRidXR0b25ib3gxLCAkZmFsc2UsICRmYWxz
ZSwgMCApOwokYnV0dG9uYm94MS0+YWRkKCAkYnV0dG9uMSApOwokYnV0dG9uYm94MS0+YWRk
KCAkYnV0dG9uMiApOwokYnV0dG9uYm94MS0+YWRkKCAkYnV0dG9uMyApOwokYnV0dG9uYm94
MS0+YWRkKCAkYnV0dG9uNCApOwokYnV0dG9uYm94MS0+YWRkKCAkYnV0dG9uNSApOwoKJHdp
bmRvdy0+c2hvd19hbGwoKTsKCm1haW4gR3RrMjsKCmV4aXQoIDAgKTsKCiMgU3Vicm91dGlu
ZXMKCiMgc2ltcGxlIHN1YiwgdG8gbGF1bmNoIHJkZXNrdG9wIHdpdGggdGhlIGNvbmZpZ3Vy
ZWQgaW5mbwojIHdoZW4gdGhlIGNvbm5lY3QgYnV0dG9uIGlzIGNsaWNrZWQuIHJhdGhlciB0
aWR5IDopCiMgcmVtb3ZlIHRoZSBwcmludCBsaW5lIGJlZm9yZSB0aGUgc3lzdGVtIGNhbGwg
aWYgeW91IGxpa2UgcXVpZXRuZXNzCnN1YiByZGVzcXVlX2Nvbm5lY3QKewogIG15ICRidWZm
ZXI7CiAgCiAgaWYoICRzZWxlY3RlZF91bmFtZSApIHsgJGJ1ZmZlciA9ICRidWZmZXIgLiAi
IC11ICRzZWxlY3RlZF91bmFtZSI7IH0KICBpZiggJHNlbGVjdGVkX2dlb20gKSB7ICRidWZm
ZXIgPSAkYnVmZmVyIC4gIiAtZyAkc2VsZWN0ZWRfZ2VvbSI7IH0KICBpZiggJHNlbGVjdGVk
X2ttYXBfaGV4ICkgeyAkYnVmZmVyID0gJGJ1ZmZlciAuICIgLWsgJHNlbGVjdGVkX2ttYXBf
aGV4IjsgfQogIGlmKCAkc2VsZWN0ZWRfZnMgZXEgInRydWUiICkgeyAkYnVmZmVyID0gJGJ1
ZmZlciAuICIgLWYiOyB9CiAgaWYoICRzZWxlY3RlZF9iaXRtYXBfdXBkIGVxICJ0cnVlIiAp
IHsgJGJ1ZmZlciA9ICRidWZmZXIgLiAiIC1iIjsgfQogIGlmKCAkc2VsZWN0ZWRfbGljIGVx
ICJ0cnVlIiApIHsgJGJ1ZmZlciA9ICRidWZmZXIgLiAiIC1sIjsgfQogIGlmKCAkc2VsZWN0
ZWRfcGFzc3RocnUgKSB7ICRidWZmZXIgPSAkYnVmZmVyIC4gIiAkc2VsZWN0ZWRfcGFzc3Ro
cnUiOyB9CiAgCiAgI21ha2UgdGhlIHRpdGxlIHdoYXRldmVyIHRoZSBzdHJpbmcgb2YgdGhl
IHNlbGVjdGVkIG1hY2hpbmUgbmFtZSBpcwogICNpbnN0ZWFkIG9mIHRoZSBtYWNoaW5lJ3Mg
aXAsIGNvdXJ0ZXN5IG9mIEpvbmF5IEdvbWV6LiB0aGFua3MhCiAgI21vdmVkIHVwIGhlcmUg
YXQgdGhlIGJlaGVzdCBvZiBUb2JpYXMgTW9ocmx1ZGVyLiBUaGFua3MhCiAgaWYoICRzZWxl
Y3RlZF9tYWNoaW5lICkgeyAkYnVmZmVyID0gJGJ1ZmZlciAuICIgLVQgXCIkc2VsZWN0ZWRf
bWFjaGluZVwiIjsgfSAgIAogIAogIGlmKCAkc2VsZWN0ZWRfbWFjaGluZV9pcCApIHsgJGJ1
ZmZlciA9ICRidWZmZXIgLiAiICRzZWxlY3RlZF9tYWNoaW5lX2lwIjsgfQogIGVsc2UgeyBk
aWUgIk5vIElQL0hvc3RuYW1lIHNlbGVjdGVkISBBYm9ydGluZy5cbiI7IH0KCiAgcHJpbnQg
ImNvbW1hbmRsaW5lIGlzIFwicmRlc2t0b3AgJGJ1ZmZlclwiXG4iOwogIHN5c3RlbSgicmRl
c2t0b3AgJGJ1ZmZlciBcJiIpOwogCn0KCiMgc3ViIHRvIGFkZCBhbiBlbnRyeSBpbnRvIHRo
ZSBsaXN0IG9mIG1hY2hpbmVzIHRvIGNob29zZSBmcm9tCiMgYWxsIHRoaXMgc3ViIGFjdHVh
bGx5IGRvZXMgaXMgc2V0IHVwIHRoZSBkaWFsb2cgYm94IHRvIAojIGNvbGxlY3QgdGhlIGlu
Zm8sIHRoZSBkb19hZGRfc2VydmVyKCkgc3ViIGlzIHdoYXQKIyByZWFsbHkgZG9lcyBhbGwg
dGhlIHVwZGF0aW5nIG9mIGluZm8KIyB5ZXMgaSBrbm93IHRoZSBsYXlvdXQgc3R1ZmYgaXMg
ZWZmaW4gbmFzdHkKIyBkZWFsIHdpdGggaXQsIGknbSBuZXcgYXQgdGhpcyBnb29leSBzdHVm
Zi4uLiA6UApzdWIgcmRlc3F1ZV9hZGQKewogJGRpYWxvZzEgPSBuZXcgR3RrMjo6RGlhbG9n
KCk7CiAkZGlhbG9nMS0+c2V0X3RpdGxlKCJBZGQgU2VydmVyIik7CiAkZGlhbG9nX2J1dHRv
bl9vayA9IG5ldyBHdGsyOjpCdXR0b24oICJPayIgKTsKICRkaWFsb2dfYnV0dG9uX2NhbmNl
bCA9IG5ldyBHdGsyOjpCdXR0b24oICJDYW5jZWwiICk7CiAkZGlhbG9nX2J1dHRvbl9vay0+
c2lnbmFsX2Nvbm5lY3QoICJjbGlja2VkIiwgXCZkb19hZGRfc2VydmVyICk7CiAkZGlhbG9n
X2J1dHRvbl9jYW5jZWwtPnNpZ25hbF9jb25uZWN0KCAiY2xpY2tlZCIsIHN1YiB7ICRkaWFs
b2cxLT5kZXN0cm95KCk7IH0gKTsKCiAkbmFtZV9lbnRyeSA9IG5ldyBHdGsyOjpFbnRyeSgg
KTsKICRpcF9lbnRyeSA9IG5ldyBHdGsyOjpFbnRyeSggKTsKICR1bmFtZV9lbnRyeSA9IG5l
dyBHdGsyOjpFbnRyeSggKTsKICRwYXNzdGhydV9lbnRyeSA9IG5ldyBHdGsyOjpFbnRyeSgg
KTsKCiBteSAkbGFiZWwxID0gbmV3IEd0azI6OkxhYmVsKCAiRW50ZXIgYSBuYW1lIGZvciB0
aGlzIHNlcnZlcjogIiApOwogbXkgJGxhYmVsMiA9IG5ldyBHdGsyOjpMYWJlbCggIkVudGVy
IGFuIElQIGFkZHJlc3Mgb3IgaG9zdG5hbWUgdG8gY29ubmVjdCB0bzogIiApOwogbXkgJGxh
YmVsMyA9IG5ldyBHdGsyOjpMYWJlbCggIlJlc29sdXRpb246ICIgKTsKIG15ICRsYWJlbDQg
PSBuZXcgR3RrMjo6TGFiZWwoICJVc2VybmFtZTogIiApOwogbXkgJGxhYmVsNSA9IG5ldyBH
dGsyOjpMYWJlbCggIktleWJvYXJkIE1hcHBpbmc6ICIgKTsKIG15ICRsYWJlbDYgPSBuZXcg
R3RrMjo6TGFiZWwoICJBZGRpdGlvbmFsIFZhcmlhYmxlcyB0byBwYXNzOiAgICAgICAgICAg
ICAgICAgICIgKTsKCiAkbGFiZWwxLT5zZXRfanVzdGlmeSggImxlZnQiICk7CiAkbGFiZWwy
LT5zZXRfanVzdGlmeSggImxlZnQiICk7CiAkbGFiZWwzLT5zZXRfanVzdGlmeSggImxlZnQi
ICk7CiAkbGFiZWw0LT5zZXRfanVzdGlmeSggImxlZnQiICk7CiAkbGFiZWw1LT5zZXRfanVz
dGlmeSggImxlZnQiICk7CiAkbGFiZWw2LT5zZXRfanVzdGlmeSggImxlZnQiICk7CgogbXkg
JHZib3gxID0gbmV3IEd0azI6OlZCb3goICRmYWxzZSwgMCApOyAKIG15ICR2Ym94MiA9IG5l
dyBHdGsyOjpWQm94KCAkZmFsc2UsIDAgKTsKIG15ICR2Ym94MyA9IG5ldyBHdGsyOjpWQm94
KCAkZmFsc2UsIDAgKTsKIG15ICR2Ym94NCA9IG5ldyBHdGsyOjpWQm94KCAkZmFsc2UsIDAg
KTsKIG15ICR2Ym94NSA9IG5ldyBHdGsyOjpWQm94KCAkZmFsc2UsIDAgKTsKIG15ICR2Ym94
NiA9IG5ldyBHdGsyOjpWQm94KCAkZmFsc2UsIDAgKTsKIG15ICR2Ym94NyA9IG5ldyBHdGsy
OjpWQm94KCAkZmFsc2UsIDAgKTsKCiBteSAkaGJveDEgPSBuZXcgR3RrMjo6SEJveCggJGZh
bHNlLCAwICk7CiBteSAkaGJveDIgPSBuZXcgR3RrMjo6SEJveCggJGZhbHNlLCAwICk7CiBt
eSAkaGJveDMgPSBuZXcgR3RrMjo6SEJveCggJGZhbHNlLCAwICk7IAogbXkgJGhib3g0ID0g
bmV3IEd0azI6OkhCb3goICRmYWxzZSwgMCApOwogbXkgJGhib3g1ID0gbmV3IEd0azI6OkhC
b3goICRmYWxzZSwgMCApOwogbXkgJGhib3g2ID0gbmV3IEd0azI6OkhCb3goICRmYWxzZSwg
MCApOwogbXkgJGhib3g3ID0gbmV3IEd0azI6OkhCb3goICRmYWxzZSwgMCApOwoKICRjb21i
bzEgPSBuZXcgR3RrMjo6Q29tYm8oKTsKICRjb21ibzIgPSBuZXcgR3RrMjo6Q29tYm8oKTsK
IG15IEBjb21ib19saXN0ID0gKCI2NDB4NDgwIiwgIjgwMHg2MDAiLCAiMTAyNHg3NjgiLCAi
MTI4MHgxMDI0IiwgIjE2MDB4MTIwMCIpOwogbXkgQGNvbWJvX2xpc3QyID0gc29ydCBrZXlz
ICVrbWFwX3RyYW5zX2hhc2g7CiAkY29tYm8xLT5zZXRfcG9wZG93bl9zdHJpbmdzKCBAY29t
Ym9fbGlzdCApOwogJGNvbWJvMS0+c2V0X3VzZV9hcnJvd3NfYWx3YXlzKCAkdHJ1ZSApOwog
JGNvbWJvMS0+c2V0X3ZhbHVlX2luX2xpc3QoICRmYWxzZSwgJHRydWUgKTsKICRjb21ibzIt
PnNldF9wb3Bkb3duX3N0cmluZ3MoIEBjb21ib19saXN0MiApOwogJGNvbWJvMi0+c2V0X3Vz
ZV9hcnJvd3NfYWx3YXlzKCAkdHJ1ZSApOwogJGNvbWJvMi0+c2V0X3ZhbHVlX2luX2xpc3Qo
ICR0cnVlLCAkZmFsc2UgKTsKICMgJGNvbWJvMi0+ZW50cnktPnNldF90ZXh0KCAiVVMiICk7
CiAkZnNfY2hlY2tib3ggPSBuZXcgR3RrMjo6Q2hlY2tCdXR0b24oICJGdWxsc2NyZWVuIE9u
IiApOwogJGJtcF9jaGVja2JveCA9IG5ldyBHdGsyOjpDaGVja0J1dHRvbiggIkZvcmNlIEJp
dG1hcCBVcGRhdGUiICk7ICAKICRsaWNfY2hlY2tib3ggPSBuZXcgR3RrMjo6Q2hlY2tCdXR0
b24oICJEbyBOb3QgUmVxdWVzdCBMaWNlbnNlIiApOwoKICRkaWFsb2cxLT52Ym94LT5zZXRf
aG9tb2dlbmVvdXMoICRmYWxzZSApOwoKICRkaWFsb2cxLT52Ym94LT5wYWNrX3N0YXJ0KCAk
aGJveDEsICRmYWxzZSwgJGZhbHNlLCAwICk7CiAkaGJveDEtPnBhY2tfc3RhcnQoICR2Ym94
MSwgJGZhbHNlLCAkZmFsc2UsIDAgKTsKICR2Ym94MS0+cGFja19zdGFydCggJGxhYmVsMSwg
JGZhbHNlLCAkZmFsc2UsIDAgKTsKICR2Ym94MS0+cGFja19zdGFydCggJG5hbWVfZW50cnks
ICRmYWxzZSwgJGZhbHNlLCAwICk7CgogJGRpYWxvZzEtPnZib3gtPnBhY2tfc3RhcnQoICRo
Ym94MiwgJGZhbHNlLCAkZmFsc2UsIDAgKTsKICRoYm94Mi0+cGFja19zdGFydCggJHZib3gy
LCAkZmFsc2UsICRmYWxzZSwgMCApOwogJHZib3gyLT5wYWNrX3N0YXJ0KCAkbGFiZWwyLCAk
ZmFsc2UsICRmYWxzZSwgMCApOwogJHZib3gyLT5wYWNrX3N0YXJ0KCAkaXBfZW50cnksICRm
YWxzZSwgJGZhbHNlLCAwICk7CgogJGRpYWxvZzEtPnZib3gtPnBhY2tfc3RhcnQoICRoYm94
NCwgJGZhbHNlLCAkZmFsc2UsIDAgKTsKICRoYm94NC0+cGFja19zdGFydCggJHZib3g0LCAk
ZmFsc2UsICRmYWxzZSwgMCApOwogJHZib3g0LT5wYWNrX3N0YXJ0KCAkbGFiZWw0LCAkZmFs
c2UsICRmYWxzZSwgMCApOwogJHZib3g0LT5wYWNrX3N0YXJ0KCAkdW5hbWVfZW50cnksICRm
YWxzZSwgJGZhbHNlLCAwICk7CgogJGRpYWxvZzEtPnZib3gtPnBhY2tfc3RhcnQoICRoYm94
NywgJGZhbHNlLCAkZmFsc2UsIDAgKTsKICRoYm94Ny0+cGFja19zdGFydCggJHZib3g3LCAk
ZmFsc2UsICRmYWxzZSwgMCApOwogJHZib3g3LT5wYWNrX3N0YXJ0KCAkbGFiZWw2LCAkZmFs
c2UsICRmYWxzZSwgMCApOwogJHZib3g3LT5wYWNrX3N0YXJ0KCAkcGFzc3RocnVfZW50cnks
ICRmYWxzZSwgJGZhbHNlLCAwICk7CgogJGRpYWxvZzEtPnZib3gtPnBhY2tfc3RhcnQoICRo
Ym94MywgJGZhbHNlLCAkZmFsc2UsIDAgKTsKICRoYm94My0+cGFja19zdGFydCggJHZib3gz
LCAkZmFsc2UsICRmYWxzZSwgMCApOwogJHZib3gzLT5wYWNrX3N0YXJ0KCAkbGFiZWwzLCAk
ZmFsc2UsICRmYWxzZSwgMCApOwogJHZib3gzLT5wYWNrX3N0YXJ0KCAkY29tYm8xLCAkZmFs
c2UsICRmYWxzZSwgMCApOwoKICRkaWFsb2cxLT52Ym94LT5wYWNrX3N0YXJ0KCAkaGJveDUs
ICRmYWxzZSwgJGZhbHNlLCAwICk7CiAkaGJveDUtPnBhY2tfc3RhcnQoICR2Ym94NSwgJGZh
bHNlLCAkZmFsc2UsIDAgKTsKICR2Ym94NS0+cGFja19zdGFydCggJGxhYmVsNSwgJGZhbHNl
LCAkZmFsc2UsIDAgKTsKICR2Ym94NS0+cGFja19zdGFydCggJGNvbWJvMiwgJGZhbHNlLCAk
ZmFsc2UsIDAgKTsKCiAkZGlhbG9nMS0+dmJveC0+cGFja19zdGFydCggJGhib3g2LCAkZmFs
c2UsICRmYWxzZSwgMCApOwogJGhib3g2LT5wYWNrX3N0YXJ0KCAkdmJveDYsICRmYWxzZSwg
JGZhbHNlLCAwICk7CiAkdmJveDYtPnBhY2tfc3RhcnQoICRmc19jaGVja2JveCwgJGZhbHNl
LCAkZmFsc2UsIDAgKTsKICR2Ym94Ni0+cGFja19zdGFydCggJGJtcF9jaGVja2JveCwgJGZh
bHNlLCAkZmFsc2UsIDAgKTsKICR2Ym94Ni0+cGFja19zdGFydCggJGxpY19jaGVja2JveCwg
JGZhbHNlLCAkZmFsc2UsIDAgKTsKCiAkZGlhbG9nMS0+YWN0aW9uX2FyZWEtPnBhY2tfc3Rh
cnQoICRkaWFsb2dfYnV0dG9uX29rLCAkdHJ1ZSwgJHRydWUsIDAgKTsKICRkaWFsb2cxLT5h
Y3Rpb25fYXJlYS0+cGFja19zdGFydCggJGRpYWxvZ19idXR0b25fY2FuY2VsLCAkdHJ1ZSwg
JHRydWUsIDAgKTsKCiAkbmFtZV9lbnRyeS0+c2V0X3RleHQoICRzZWxlY3RlZF9tYWNoaW5l
ICk7CiAkaXBfZW50cnktPnNldF90ZXh0KCAkaXBfaGFzaHskc2VsZWN0ZWRfbWFjaGluZX0g
KTsKICR1bmFtZV9lbnRyeS0+c2V0X3RleHQoICR1bmFtZV9oYXNoeyRzZWxlY3RlZF9tYWNo
aW5lfSApOwogJHBhc3N0aHJ1X2VudHJ5LT5zZXRfdGV4dCggJHBhc3N0aHJ1X2hhc2h7JHNl
bGVjdGVkX21hY2hpbmV9ICk7CiAkY29tYm8xLT5lbnRyeS0+c2V0X3RleHQoICRnZW9tX2hh
c2h7JHNlbGVjdGVkX21hY2hpbmV9ICk7CiAkY29tYm8yLT5lbnRyeS0+c2V0X3RleHQoICRr
bWFwX2hhc2h7JHNlbGVjdGVkX21hY2hpbmV9ICk7CiBpZiggJGZ1bGxzY3JlZW5faGFzaHsk
c2VsZWN0ZWRfbWFjaGluZX0gZXEgInRydWUiKQogewogICAkZnNfY2hlY2tib3gtPnNldF9h
Y3RpdmUoICR0cnVlICk7CiB9CiBlbHNlIHsgJGZzX2NoZWNrYm94LT5zZXRfYWN0aXZlKCAk
ZmFsc2UgKTsgfQogaWYoICRiaXRtYXBfdXBkX2hhc2h7JHNlbGVjdGVkX21hY2hpbmV9IGVx
ICJ0cnVlIiApCiB7CiAgICRibXBfY2hlY2tib3gtPnNldF9hY3RpdmUoICR0cnVlICk7CiB9
CiBlbHNlIHsgJGJtcF9jaGVja2JveC0+c2V0X2FjdGl2ZSggJGZhbHNlICk7IH0KIGlmKCAk
bGljZW5zZV9oYXNoeyRzZWxlY3RlZF9tYWNoaW5lfSBlcSAidHJ1ZSIgKQogewogICAkbGlj
X2NoZWNrYm94LT5zZXRfYWN0aXZlKCAkdHJ1ZSApOwogfQogZWxzZSB7ICRsaWNfY2hlY2ti
b3gtPnNldF9hY3RpdmUoICRmYWxzZSApOyB9CiAKICRkaWFsb2cxLT5zaG93X2FsbCgpOwoK
fQoKIyByZW1vdmUgYSBtYWNoaW5lIGVudHJ5IGZyb20gdGhlIGxpc3QKc3ViIHJkZXNxdWVf
ZGVsZXRlCnsKICBteSAkbmFtZV9kZWxldGVkOwogIG15ICRpcF9kZWxldGVkOwogICRuYW1l
X2RlbGV0ZWQgPSAkc2VsZWN0ZWRfbWFjaGluZTsKICAkaXBfZGVsZXRlZCA9ICRpcF9oYXNo
eyRzZWxlY3RlZF9tYWNoaW5lfTsKICBkZWxldGUgJGlwX2hhc2h7JHNlbGVjdGVkX21hY2hp
bmV9OwogIGRlbGV0ZSAkdW5hbWVfaGFzaHskc2VsZWN0ZWRfbWFjaGluZX07CiAgZGVsZXRl
ICRnZW9tX2hhc2h7JHNlbGVjdGVkX21hY2hpbmV9OwogIGRlbGV0ZSAkZnVsbHNjcmVlbl9o
YXNoeyRzZWxlY3RlZF9tYWNoaW5lfTsKICBkZWxldGUgJGJpdG1hcF91cGRfaGFzaHskc2Vs
ZWN0ZWRfbWFjaGluZX07CiAgZGVsZXRlICRrbWFwX2hhc2h7JHNlbGVjdGVkX21hY2hpbmV9
OwogIGRlbGV0ZSAkbGljZW5zZV9oYXNoeyRzZWxlY3RlZF9tYWNoaW5lfTsKICBkZWxldGUg
JHBhc3N0aHJ1X2hhc2h7JHNlbGVjdGVkX21hY2hpbmV9OwogIHdyaXRlX291dF9jb25maWco
KTsKICBwcmludCAiU2VydmVyIGRlbGV0ZWQ6IG5hbWUgPSAkbmFtZV9kZWxldGVkLCBpcC9o
b3N0bmFtZSA9ICRpcF9kZWxldGVkXG4iOwogIHBvcHVsYXRlX2NsaXN0X2Zyb21fY29uZmln
KCk7Cgp9CgojIGNoYW5nZSBhbiBleGlzdGluZyBlbnRyeSBpbiB0aGUgbGlzdAojIG11Y2gg
bGlrZSB0aGUgcmRlc3F1ZV9hZGQoKSBzdWIsIGFsbCB0aGlzIGRvZXMKIyBzZXQgdXAgYSBk
aWFsb2cgdG8gZGlzcGxheSB0aGUgaW5mbyBhbmQgY2hhbmdlIGl0CiMgYWxsIHRoZSByZWFs
IGxlZ3dvcmsgaXMgZG9uZSBieSBkb19lZGl0X3NlcnZlcigpCiMgeWVzLCB0aGUgbGF5b3V0
IHN0dWZmIGlzIG5hc3R5LCBzZWUgY29tbWVudHMgZm9yIHJkZXNxdWVfYWRkKCkKc3ViIHJk
ZXNxdWVfZWRpdAp7CgogICRkaWFsb2cyID0gbmV3IEd0azI6OkRpYWxvZygpOwogICRkaWFs
b2dfYnV0dG9uX29rID0gbmV3IEd0azI6OkJ1dHRvbiggIk9rIiApOwogICRkaWFsb2dfYnV0
dG9uX2NhbmNlbCA9IG5ldyBHdGsyOjpCdXR0b24oICJDYW5jZWwiICk7CiAgJGRpYWxvZ19i
dXR0b25fb2stPnNpZ25hbF9jb25uZWN0KCAiY2xpY2tlZCIsIFwmZG9fZWRpdF9zZXJ2ZXIg
KTsKICAkZGlhbG9nX2J1dHRvbl9jYW5jZWwtPnNpZ25hbF9jb25uZWN0KCAiY2xpY2tlZCIs
IHN1YiB7ICRkaWFsb2cyLT5kZXN0cm95KCk7IH0gKTsKICAKICAkbmFtZV9lbnRyeSA9IG5l
dyBHdGsyOjpFbnRyeSggKTsKICAkaXBfZW50cnkgPSBuZXcgR3RrMjo6RW50cnkoICk7CiAg
JHVuYW1lX2VudHJ5ID0gbmV3IEd0azI6OkVudHJ5KCApOwogICRwYXNzdGhydV9lbnRyeSA9
IG5ldyBHdGsyOjpFbnRyeSggKTsKCiAgbXkgJGxhYmVsMSA9IG5ldyBHdGsyOjpMYWJlbCgg
IkVudGVyIGEgbmFtZSBmb3IgdGhpcyBzZXJ2ZXI6ICIgKTsKICBteSAkbGFiZWwyID0gbmV3
IEd0azI6OkxhYmVsKCAiRW50ZXIgYW4gSVAgYWRkcmVzcyBvciBob3N0bmFtZSB0byBjb25u
ZWN0IHRvOiAiKTsKICBteSAkbGFiZWwzID0gbmV3IEd0azI6OkxhYmVsKCAiUmVzb2x1dGlv
bjogIiApOwogIG15ICRsYWJlbDQgPSBuZXcgR3RrMjo6TGFiZWwoICJVc2VybmFtZTogIiAp
OwogIG15ICRsYWJlbDUgPSBuZXcgR3RrMjo6TGFiZWwoICJLZXlib2FyZCBNYXBwaW5nOiAi
ICk7CiAgbXkgJGxhYmVsNiA9IG5ldyBHdGsyOjpMYWJlbCggIkFkZGl0aW9uYWwgVmFyaWFi
bGVzIHRvIHBhc3M6ICAgICAgICAgICAgICAgICAgIiApOwoKICAkbGFiZWwxLT5zZXRfanVz
dGlmeSggImxlZnQiICk7CiAgJGxhYmVsMi0+c2V0X2p1c3RpZnkoICJsZWZ0IiApOwogICRs
YWJlbDMtPnNldF9qdXN0aWZ5KCAibGVmdCIgKTsKICAkbGFiZWw0LT5zZXRfanVzdGlmeSgg
ImxlZnQiICk7CiAgJGxhYmVsNS0+c2V0X2p1c3RpZnkoICJsZWZ0IiApOwogICRsYWJlbDYt
PnNldF9qdXN0aWZ5KCAibGVmdCIgKTsKICAKCiAgbXkgJHZib3gxID0gbmV3IEd0azI6OlZC
b3goICRmYWxzZSwgMCApOwogIG15ICR2Ym94MiA9IG5ldyBHdGsyOjpWQm94KCAkZmFsc2Us
IDAgKTsKICBteSAkdmJveDMgPSBuZXcgR3RrMjo6VkJveCggJGZhbHNlLCAwICk7CiAgbXkg
JHZib3g0ID0gbmV3IEd0azI6OlZCb3goICRmYWxzZSwgMCApOwogIG15ICR2Ym94NSA9IG5l
dyBHdGsyOjpWQm94KCAkZmFsc2UsIDAgKTsKICBteSAkdmJveDYgPSBuZXcgR3RrMjo6VkJv
eCggJGZhbHNlLCAwICk7CiAgbXkgJHZib3g3ID0gbmV3IEd0azI6OlZCb3goICRmYWxzZSwg
MCApOwogIAogIG15ICRoYm94MSA9IG5ldyBHdGsyOjpIQm94KCAkZmFsc2UsIDAgKTsKICBt
eSAkaGJveDIgPSBuZXcgR3RrMjo6SEJveCggJGZhbHNlLCAwICk7CiAgbXkgJGhib3gzID0g
bmV3IEd0azI6OkhCb3goICRmYWxzZSwgMCApOwogIG15ICRoYm94NCA9IG5ldyBHdGsyOjpI
Qm94KCAkZmFsc2UsIDAgKTsKICBteSAkaGJveDUgPSBuZXcgR3RrMjo6SEJveCggJGZhbHNl
LCAwICk7CiAgbXkgJGhib3g2ID0gbmV3IEd0azI6OkhCb3goICRmYWxzZSwgMCApOwogIG15
ICRoYm94NyA9IG5ldyBHdGsyOjpIQm94KCAkZmFsc2UsIDAgKTsKICAKICAkY29tYm8xID0g
bmV3IEd0azI6OkNvbWJvKCk7CiAgJGNvbWJvMiA9IG5ldyBHdGsyOjpDb21ibygpOwogIG15
IEBjb21ib19saXN0ID0gKCI2NDB4NDgwIiwgIjgwMHg2MDAiLCAiMTAyNHg3NjgiLCAiMTI4
MHgxMDI0IiwgIjE2MDB4MTIwMCIpOwogIG15IEBjb21ib19saXN0MiA9IHNvcnQga2V5cyAl
a21hcF90cmFuc19oYXNoOwogICRjb21ibzEtPnNldF9wb3Bkb3duX3N0cmluZ3MoIEBjb21i
b19saXN0ICk7CiAgJGNvbWJvMS0+c2V0X3VzZV9hcnJvd3NfYWx3YXlzKCAkdHJ1ZSApOwog
ICRjb21ibzEtPnNldF92YWx1ZV9pbl9saXN0KCAkZmFsc2UsICR0cnVlICk7CiAgJGNvbWJv
Mi0+c2V0X3BvcGRvd25fc3RyaW5ncyggQGNvbWJvX2xpc3QyICk7CiAgJGNvbWJvMi0+c2V0
X3VzZV9hcnJvd3NfYWx3YXlzKCAkdHJ1ZSApOwogICRjb21ibzItPnNldF92YWx1ZV9pbl9s
aXN0KCAkdHJ1ZSwgJGZhbHNlICk7CgogICRmc19jaGVja2JveCA9IG5ldyBHdGsyOjpDaGVj
a0J1dHRvbiggIkZ1bGxzY3JlZW4gT24iICk7CiAgJGJtcF9jaGVja2JveCA9IG5ldyBHdGsy
OjpDaGVja0J1dHRvbiggIkZvcmNlIEJpdG1hcCBVcGRhdGUiICk7CiAgJGxpY19jaGVja2Jv
eCA9IG5ldyBHdGsyOjpDaGVja0J1dHRvbiggIkRvIE5vdCBSZXF1ZXN0IExpY2Vuc2UiICk7
CgogICRkaWFsb2cyLT52Ym94LT5zZXRfaG9tb2dlbmVvdXMoICRmYWxzZSApOwoKICAkZGlh
bG9nMi0+dmJveC0+cGFja19zdGFydCggJGhib3gxLCAkZmFsc2UsICRmYWxzZSwgMCApOwog
ICRoYm94MS0+cGFja19zdGFydCggJHZib3gxLCAkZmFsc2UsICRmYWxzZSwgMCApOwogICR2
Ym94MS0+cGFja19zdGFydCggJGxhYmVsMSwgJGZhbHNlLCAkZmFsc2UsIDAgKTsKICAkdmJv
eDEtPnBhY2tfc3RhcnQoICRuYW1lX2VudHJ5LCAkZmFsc2UsICRmYWxzZSwgMCApOwoKICAk
ZGlhbG9nMi0+dmJveC0+cGFja19zdGFydCggJGhib3gyLCAkZmFsc2UsICRmYWxzZSwgMCAp
OwogICRoYm94Mi0+cGFja19zdGFydCggJHZib3gyLCAkZmFsc2UsICRmYWxzZSwgMCApOwog
ICR2Ym94Mi0+cGFja19zdGFydCggJGxhYmVsMiwgJGZhbHNlLCAkZmFsc2UsIDAgKTsKICAk
dmJveDItPnBhY2tfc3RhcnQoICRpcF9lbnRyeSwgJGZhbHNlLCAkZmFsc2UsIDAgKTsKCiAg
JGRpYWxvZzItPnZib3gtPnBhY2tfc3RhcnQoICRoYm94NCwgJGZhbHNlLCAkZmFsc2UsIDAg
KTsKICAkaGJveDQtPnBhY2tfc3RhcnQoICR2Ym94NCwgJGZhbHNlLCAkZmFsc2UsIDAgKTsK
ICAkdmJveDQtPnBhY2tfc3RhcnQoICRsYWJlbDQsICRmYWxzZSwgJGZhbHNlLCAwICk7CiAg
JHZib3g0LT5wYWNrX3N0YXJ0KCAkdW5hbWVfZW50cnksICRmYWxzZSwgJGZhbHNlLCAwICk7
CgogICRkaWFsb2cyLT52Ym94LT5wYWNrX3N0YXJ0KCAkaGJveDcsICRmYWxzZSwgJGZhbHNl
LCAwICk7CiAgJGhib3g0LT5wYWNrX3N0YXJ0KCAkdmJveDcsICRmYWxzZSwgJGZhbHNlLCAw
ICk7CiAgJHZib3g0LT5wYWNrX3N0YXJ0KCAkbGFiZWw2LCAkZmFsc2UsICRmYWxzZSwgMCAp
OwogICR2Ym94NC0+cGFja19zdGFydCggJHBhc3N0aHJ1X2VudHJ5LCAkZmFsc2UsICRmYWxz
ZSwgMCApOwoKICAkZGlhbG9nMi0+dmJveC0+cGFja19zdGFydCggJGhib3gzLCAkZmFsc2Us
ICRmYWxzZSwgMCApOwogICRoYm94My0+cGFja19zdGFydCggJHZib3gzLCAkZmFsc2UsICRm
YWxzZSwgMCApOwogICR2Ym94My0+cGFja19zdGFydCggJGxhYmVsMywgJGZhbHNlLCAkZmFs
c2UsIDAgKTsKICAkdmJveDMtPnBhY2tfc3RhcnQoICRjb21ibzEsICRmYWxzZSwgJGZhbHNl
LCAwICk7CgogICRkaWFsb2cyLT52Ym94LT5wYWNrX3N0YXJ0KCAkaGJveDYsICRmYWxzZSwg
JGZhbHNlLCAwICk7CiAgJGhib3g2LT5wYWNrX3N0YXJ0KCAkdmJveDYsICRmYWxzZSwgJGZh
bHNlLCAwICk7CiAgJHZib3g2LT5wYWNrX3N0YXJ0KCAkbGFiZWw1LCAkZmFsc2UsICRmYWxz
ZSwgMCApOwogICR2Ym94Ni0+cGFja19zdGFydCggJGNvbWJvMiwgJGZhbHNlLCAkZmFsc2Us
IDAgKTsKCiAgJGRpYWxvZzItPnZib3gtPnBhY2tfc3RhcnQoICRoYm94NSwgJGZhbHNlLCAk
ZmFsc2UsIDAgKTsKICAkaGJveDUtPnBhY2tfc3RhcnQoICR2Ym94NSwgJGZhbHNlLCAkZmFs
c2UsIDAgKTsKICAkdmJveDUtPnBhY2tfc3RhcnQoICRmc19jaGVja2JveCwgJGZhbHNlLCAk
ZmFsc2UsIDAgKTsKICAkdmJveDUtPnBhY2tfc3RhcnQoICRibXBfY2hlY2tib3gsICRmYWxz
ZSwgJGZhbHNlLCAwICk7CiAgJHZib3g1LT5wYWNrX3N0YXJ0KCAkbGljX2NoZWNrYm94LCAk
ZmFsc2UsICRmYWxzZSwgMCApOwogIAogICRkaWFsb2cyLT5hY3Rpb25fYXJlYS0+cGFja19z
dGFydCggJGRpYWxvZ19idXR0b25fb2ssICR0cnVlLCAkdHJ1ZSwgMCApOwogICRkaWFsb2cy
LT5hY3Rpb25fYXJlYS0+cGFja19zdGFydCggJGRpYWxvZ19idXR0b25fY2FuY2VsLCAkdHJ1
ZSwgJHRydWUsIDAgKTsKCiAgJG5hbWVfZW50cnktPnNldF90ZXh0KCAkc2VsZWN0ZWRfbWFj
aGluZSApOwogICRpcF9lbnRyeS0+c2V0X3RleHQoICRpcF9oYXNoeyRzZWxlY3RlZF9tYWNo
aW5lfSApOwogICR1bmFtZV9lbnRyeS0+c2V0X3RleHQoICR1bmFtZV9oYXNoeyRzZWxlY3Rl
ZF9tYWNoaW5lfSApOwogICRwYXNzdGhydV9lbnRyeS0+c2V0X3RleHQoICRwYXNzdGhydV9o
YXNoeyRzZWxlY3RlZF9tYWNoaW5lfSApOwogICRjb21ibzEtPmVudHJ5LT5zZXRfdGV4dCgg
JGdlb21faGFzaHskc2VsZWN0ZWRfbWFjaGluZX0gKTsKICAkY29tYm8yLT5lbnRyeS0+c2V0
X3RleHQoICRrbWFwX2hhc2h7JHNlbGVjdGVkX21hY2hpbmV9ICk7CiAgaWYoICRmdWxsc2Ny
ZWVuX2hhc2h7JHNlbGVjdGVkX21hY2hpbmV9IGVxICJ0cnVlIikKICB7CiAgICAkZnNfY2hl
Y2tib3gtPnNldF9hY3RpdmUoICR0cnVlICk7CiAgfQogIGVsc2UgeyAkZnNfY2hlY2tib3gt
PnNldF9hY3RpdmUoICRmYWxzZSApOyB9CiAgaWYoICRiaXRtYXBfdXBkX2hhc2h7JHNlbGVj
dGVkX21hY2hpbmV9IGVxICJ0cnVlIiApCiAgewogICAgJGJtcF9jaGVja2JveC0+c2V0X2Fj
dGl2ZSggJHRydWUgKTsKICB9CiAgZWxzZSB7ICRibXBfY2hlY2tib3gtPnNldF9hY3RpdmUo
ICRmYWxzZSApOyB9CiAgaWYoICRsaWNlbnNlX2hhc2h7JHNlbGVjdGVkX21hY2hpbmV9IGVx
ICJ0cnVlIiApCiAgewogICAgJGxpY19jaGVja2JveC0+c2V0X2FjdGl2ZSggJHRydWUgKTsK
ICB9CiAgZWxzZSB7ICRsaWNfY2hlY2tib3gtPnNldF9hY3RpdmUoICRmYWxzZSApOyB9Cgog
ICRkaWFsb2cyLT5zZXRfdGl0bGUoIkVkaXQgU2VydmVyOiAkc2VsZWN0ZWRfbWFjaGluZSIp
OwoKICAkZGlhbG9nMi0+c2hvd19hbGwoKTsKCn0KCiMgaGFuZGxlciBmb3Igd2hlbiBhIHJv
dyBpcyBzZWxlY3RlZCwgZ3JhYnMgaW5mbyBmcm9tIHRoZSBzZWxlY3RlZCByb3cKIyBsb29r
cyB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZXMgdXAgaW4gdGhlIGhhc2ggYW5kIAojIHN0dWZm
cyB0aGVtIGludG8gdmFyaWFibGVzIHRvIGJlIHVzZWQgaW4gb3RoZXIgc3VicwpzdWIgbGlz
dF9zZWxfcm93CnsKICBteSAkc2VsZWN0aW9uID0gKCRsaXN0MS0+Z2V0X3NlbGVjdGVkX2lu
ZGljZXMpWzBdOwogIG15IEByb3cgPSBAeyhAeyRsaXN0MS0+e2RhdGF9fSlbJHNlbGVjdGlv
bl19OwogCiAgbXkgJGZzX3RmOwogIG15ICRibXBfdGY7CiAgJHNlbGVjdGVkX21hY2hpbmUg
PSAkcm93WzBdOwogICRzZWxlY3RlZF9tYWNoaW5lX2lwID0gJGlwX2hhc2h7JHNlbGVjdGVk
X21hY2hpbmV9OwogICRzZWxlY3RlZF91bmFtZSA9ICR1bmFtZV9oYXNoeyRzZWxlY3RlZF9t
YWNoaW5lfTsKICAkc2VsZWN0ZWRfZ2VvbSA9ICRnZW9tX2hhc2h7JHNlbGVjdGVkX21hY2hp
bmV9OwogICRzZWxlY3RlZF9mcyA9ICRmdWxsc2NyZWVuX2hhc2h7JHNlbGVjdGVkX21hY2hp
bmV9OwogICRzZWxlY3RlZF9iaXRtYXBfdXBkID0gJGJpdG1hcF91cGRfaGFzaHskc2VsZWN0
ZWRfbWFjaGluZX07CiAgJHNlbGVjdGVkX2xpYyA9ICRsaWNlbnNlX2hhc2h7JHNlbGVjdGVk
X21hY2hpbmV9OwogICRzZWxlY3RlZF9rbWFwID0gJGttYXBfaGFzaHskc2VsZWN0ZWRfbWFj
aGluZX07CiAgJHNlbGVjdGVkX2ttYXBfaGV4ID0gJGttYXBfdHJhbnNfaGFzaHskc2VsZWN0
ZWRfa21hcH07CiAgJHNlbGVjdGVkX3Bhc3N0aHJ1ID0gJHBhc3N0aHJ1X2hhc2h7JHNlbGVj
dGVkX21hY2hpbmV9OwoKICBpZiggJHNlbGVjdGVkX2ZzIGVxICJ0cnVlIiApIHsgJGZzX3Rm
ID0gIk9OIjsgfQogIGVsc2UgeyAkZnNfdGYgPSAiT0ZGIjsgfQogIGlmKCAkc2VsZWN0ZWRf
Yml0bWFwX3VwZCBlcSAidHJ1ZSIgKSB7ICRibXBfdGYgPSAiRm9yY2luZyBCaXRtYXAgVXBk
YXRlcyI7IH0KICBlbHNlIHsgJGJtcF90ZiA9ICJub3QgRm9yY2luZyBCaXRtYXAgVXBkYXRl
cyI7IH0KICBwcmludCAiWW91IHNlbGVjdGVkIFwiJHNlbGVjdGVkX21hY2hpbmVcIiwgd2l0
aCB0aGUgSVAgXCIkc2VsZWN0ZWRfbWFjaGluZV9pcFwiLCBHZW9tZXRyeSBpcyBcIiRzZWxl
Y3RlZF9nZW9tXCJcblVzZXJuYW1lIGlzIFwiJHNlbGVjdGVkX3VuYW1lXCIsIEZ1bGxzY3Jl
ZW4gaXMgJGZzX3RmLCAkYm1wX3RmXG5LZXlib2FyZCBNYXBwaW5nIGlzIFwiJHNlbGVjdGVk
X2ttYXBcIlxuXG4iOyAKfQoKCnN1YiBsaXN0X2V4ZWNfcm93IHsKICByZXR1cm4gMSB1bmxl
c3MgJHNlbGVjdGVkX21hY2hpbmVfaXA7CiAgbXkgKCR3LCAkZXYpID0gQF87CiAgaWYgKCRl
di0+e3R5cGV9IGVxICcyYnV0dG9uX3ByZXNzJyBhbmQgJGV2LT57YnV0dG9ufSA9PSAxKSB7
CiAgICAgICMgd2VsbCwgcHJvYmFibHkgd2Ugc2hvdWxkIGVtdWxhdGUgcHJvcGVyIHNpZ25h
bCBtYXJzaGFsbGluZwogICAgICAjIGZvciAnY2xpY2snIG9uIHRoZSAnQ29ubmVjdCcgYnV0
dG9uLCBidXQgZm9yIHRoZSBtb21lbnQgaXQncwogICAgICAjIGVub3VnaCB0byBzaW1wbHkg
Y2FsbCAncmRlc3F1ZV9jb25uZWN0JwogICAgICAjIGxpc3QgZG91YmxlLWNsaWNrIHBhdGNo
IGJ5IEFsZXhleSBNb3Jvem92CiAgICAgICZyZGVzcXVlX2Nvbm5lY3Q7CiAgfQogIHJldHVy
biAxOwp9CgojIGZhaXJseSBzaW1wbGUsIGp1c3Qgc3BpdHMgb3V0IGEgY29uZmlnIGZpbGUg
YmFzZWQgb24gdGhlCiMgZGF0YSBjb250YWluZWQgaW4gdGhlIGhhc2hlcyAKc3ViIHdyaXRl
X291dF9jb25maWcKewogIG15ICRtYWNoaW5hX3A7CiAgbXkgQG1hY2hpbmVzX3A7CiAgbXkg
JGNvdW50ID0gMTsgCgogIHVubGluayggIiRFTlZ7SE9NRX0vLnhyZGVza3RvcF9jb25maWci
ICk7CiAgIyBmaXhlZCBieSBLZW4gQ2FydXNvCiAgb3BlbiggQ09ORklHLCAiPiRFTlZ7SE9N
RX0vLnhyZGVza3RvcF9jb25maWciICk7CiAgc2VsZWN0KCBDT05GSUcgKTsKCiAgcHJpbnQg
IlwjIE5PIFVTRVIgU0VSVklDQUJMRSBQQVJUUy4gQVQgQUxMLlxuIjsKICBwcmludCAiI1xu
XG4iOwoKICBAbWFjaGluZXNfcCA9IGtleXMgJWlwX2hhc2g7CiAgZm9yZWFjaCAkbWFjaGlu
YV9wIChzb3J0IEBtYWNoaW5lc19wKQogIHsKICAgIHByaW50ICIjIEVudHJ5ICRjb3VudFxu
IjsKICAgIHByaW50ICJOYW1lPSRtYWNoaW5hX3BcbiI7CiAgICBwcmludCAiSVA9JGlwX2hh
c2h7JG1hY2hpbmFfcH1cbiI7CiAgICBwcmludCAiVW5hbWU9JHVuYW1lX2hhc2h7JG1hY2hp
bmFfcH1cbiI7CiAgICBwcmludCAiR2VvbWV0cnk9JGdlb21faGFzaHskbWFjaGluYV9wfVxu
IjsKICAgIHByaW50ICJGdWxsc2NyZWVuPSRmdWxsc2NyZWVuX2hhc2h7JG1hY2hpbmFfcH1c
biI7CiAgICBwcmludCAiQml0bWFwX1VwZGF0ZXM9JGJpdG1hcF91cGRfaGFzaHskbWFjaGlu
YV9wfVxuIjsKICAgIHByaW50ICJLZXltYXA9JGttYXBfaGFzaHskbWFjaGluYV9wfVxuIjsK
ICAgIHByaW50ICJOb1JlcUxpYz0kbGljZW5zZV9oYXNoeyRtYWNoaW5hX3B9XG4iOwogICAg
cHJpbnQgIlBhc3N0aHJ1PSRwYXNzdGhydV9oYXNoeyRtYWNoaW5hX3B9XG5cbiI7CiAgICAk
Y291bnQrKzsKICB9CgogIHNlbGVjdCggU1RET1VUICk7CiAgY2xvc2UoIENPTkZJRyApOwog
IAp9CgojIGRvZXMgdGhlIGFjdHVhbCBhZGRpbmcgb2YgdGhlIHNlcnZlciB0byB0aGUgaGFz
aCBhbmQgY29uZmlnIGZpbGVzCiMgc2luY2UgdGhlIHJkZXNxdWVfYWRkKCkgc3ViIGp1c3Qg
Y3JlYXRlcyB0aGUgZGlhbG9nLgojIHRoaXMgaXMgdGhlIG9uZSBsaW5rZWQgdG8gdGhlICJv
ayIgYnV0dG9uIGluIHRoZSBhZGQgZGlhbG9nCnN1YiBkb19hZGRfc2VydmVyCnsKCiBteSAk
bmFtZV9hZGRlZCA9ICRuYW1lX2VudHJ5LT5nZXRfdGV4dCgpOwogbXkgJGlwX2FkZGVkID0g
JGlwX2VudHJ5LT5nZXRfdGV4dCgpOwogbXkgJHVuYW1lX2FkZGVkID0gJHVuYW1lX2VudHJ5
LT5nZXRfdGV4dCgpOwogbXkgJHJlc28gPSAkY29tYm8xLT5lbnRyeS0+Z2V0X3RleHQoKTsK
IG15ICRrbWFwID0gJGNvbWJvMi0+ZW50cnktPmdldF90ZXh0KCk7CiBteSAkcHRocnUgPSAk
cGFzc3RocnVfZW50cnktPmdldF90ZXh0KCk7CiBteSAkZnNfc3RhdGU7CiBteSAkYm1wX3N0
YXRlOwogbXkgJGxpY19zdGF0ZTsKCiBpZiggJGZzX2NoZWNrYm94LT5nZXRfYWN0aXZlICkg
eyRmc19zdGF0ZSA9ICJ0cnVlIjt9CiBlbHNlIHskZnNfc3RhdGUgPSAiZmFsc2UiO30KIAog
aWYoICRibXBfY2hlY2tib3gtPmdldF9hY3RpdmUgKSB7JGJtcF9zdGF0ZSA9ICJ0cnVlIjt9
CiBlbHNlIHskYm1wX3N0YXRlID0gImZhbHNlIjt9CgogaWYoICRsaWNfY2hlY2tib3gtPmdl
dF9hY3RpdmUgKSB7JGxpY19zdGF0ZSA9ICJ0cnVlIjt9CiBlbHNlIHskbGljX3N0YXRlID0g
ImZhbHNlIjt9CgogY2hvbXAgJG5hbWVfYWRkZWQ7CiBjaG9tcCAkaXBfYWRkZWQ7CiBjaG9t
cCAkdW5hbWVfYWRkZWQ7CiBjaG9tcCAkcmVzbzsKIGNob21wICRmc19zdGF0ZTsKIGNob21w
ICRibXBfc3RhdGU7CiBjaG9tcCAkbGljX3N0YXRlOwogY2hvbXAgJGttYXA7CiBjaG9tcCAk
cHRocnU7CgogbXkgJGNoZWNrX2R1cGVfa2V5ID0gZXhpc3RzICRpcF9oYXNoeyRuYW1lX2Fk
ZGVkfTsKIGlmKCAkbmFtZV9hZGRlZCBuZSAiIiAmJiAkaXBfYWRkZWQgbmUgIiIgJiYgJGNo
ZWNrX2R1cGVfa2V5ICE9ICR0cnVlICkgCiB7CiAgICRpcF9oYXNoeyRuYW1lX2FkZGVkfSA9
ICRpcF9hZGRlZDsKICAgJHVuYW1lX2hhc2h7JG5hbWVfYWRkZWR9ID0gJHVuYW1lX2FkZGVk
OwogICAkZ2VvbV9oYXNoeyRuYW1lX2FkZGVkfSA9ICRyZXNvOwogICAkZnVsbHNjcmVlbl9o
YXNoeyRuYW1lX2FkZGVkfSA9ICRmc19zdGF0ZTsKICAgJGJpdG1hcF91cGRfaGFzaHskbmFt
ZV9hZGRlZH0gPSAkYm1wX3N0YXRlOwogICAkbGljZW5zZV9oYXNoeyRuYW1lX2FkZGVkfSA9
ICRsaWNfc3RhdGU7CiAgICRrbWFwX2hhc2h7JG5hbWVfYWRkZWR9ID0gJGttYXA7CiAgICRw
YXNzdGhydV9oYXNoeyRuYW1lX2FkZGVkfSA9ICRwdGhydTsKIyAgIHByaW50ICJBZGRpbmc6
ICRuYW1lX2FkZGVkLCAkcHRocnVcbiI7CiAgIHdyaXRlX291dF9jb25maWcoKTsKIyAgIHBy
aW50ICJBZGRlZDogbmFtZT0kbmFtZV9hZGRlZCwgaXAvaG9zdG5hbWU9JGlwX2FkZGVkLCB1
c2VybmFtZT0kdW5hbWVfYWRkZWRcblJlc29sdXRpb249JHJlc28sIEZ1bGxzY3JlZW49JGZz
X3N0YXRlLCBGb3JjZSBCaXRtYXAgVXBkYXRlcz0kYm1wX3N0YXRlXG5LZXlib2FyZCBNYXBw
aW5nPSRrbWFwXG5cbiI7CiAgICRkaWFsb2cxLT5kZXN0cm95KCk7CiAgIHBvcHVsYXRlX2Ns
aXN0X2Zyb21fY29uZmlnKCk7CiB9CiBlbHNlCiB7CiAgIG15ICRmaWVsZDE7CiAgIG15ICRk
b2hfZGlhbG9nID0gbmV3IEd0azI6OkRpYWxvZygpOwogICAkZG9oX2RpYWxvZy0+dGl0bGUo
IkVyLi4uLiIpOwogICBteSAkZG9oX29rID0gbmV3IEd0azI6OkJ1dHRvbiggIk9rIiApOwog
ICAkZG9oX29rLT5zaWduYWxfY29ubmVjdCggImNsaWNrZWQiLCBzdWIgeyAkZG9oX2RpYWxv
Zy0+ZGVzdHJveSgpOyB9ICk7CiAgIG15ICRkb2hfbGFiZWwgPSBuZXcgR3RrMjo6TGFiZWwo
KTsKICAgaWYoICRuYW1lX2FkZGVkIGVxICIiICkgCiAgIHsgCiAgICAgJGZpZWxkMSA9ICJZ
b3UgbGVmdCB0aGUgTmFtZSBmaWVsZCBibGFuay5cbkNvbmZpZyBOT1QgdXBkYXRlZCI7CiAg
ICAgJGRvaF9sYWJlbC0+c2V0X3RleHQoICRmaWVsZDEgKTsKICAgfQogICBlbHNpZiggJGlw
X2FkZGVkIGVxICIiICkgCiAgIHsgCiAgICAgJGZpZWxkMSA9ICJZb3UgbGVmdCB0aGUgSVAv
SG9zdG5hbWUgZmllbGQgYmxhbmsuXG5Db25maWcgTk9UIHVwZGF0ZWQiOyAKICAgICAkZG9o
X2xhYmVsLT5zZXRfdGV4dCggJGZpZWxkMSApOwogICB9IAogICBlbHNpZiggJGNoZWNrX2R1
cGVfa2V5ICkgCiAgIHsgCiAgICAgJGRvaF9sYWJlbC0+c2V0X3RleHQoICJBbiBlbnRyeSBu
YW1lZCBcIiRuYW1lX2FkZGVkXCIgYWxyZWFkeSBleGlzdHMuXG5QbGVhc2UgY2hvb3NlIGFu
b3RoZXIgbmFtZS4iICk7IAogICB9CiAgIGVsc2UgCiAgIHsgCiAgICAgJGZpZWxkMSA9ICIq
KipDUklUSUNBTCBFUlJPUioqKiI7IAogICAgICRkb2hfbGFiZWwtPnNldF90ZXh0KCAkZmll
bGQxICk7CiAgIH0KICAgCiAgICRkb2hfZGlhbG9nLT52Ym94LT5wYWNrX3N0YXJ0KCAkZG9o
X2xhYmVsLCAkdHJ1ZSwgJHRydWUsIDAgKTsKICAgJGRvaF9kaWFsb2ctPmFjdGlvbl9hcmVh
LT5wYWNrX3N0YXJ0KCAkZG9oX29rLCAkdHJ1ZSwgJHRydWUsIDAgKTsKICAgJGRvaF9kaWFs
b2ctPnNob3dfYWxsKCk7CiB9CiAKfQoKIyBkb2VzIHRoZSBhY3R1YWwgZWRpdGluZyBvZiB0
aGUgc2VydmVyIGluIHRoZSBoYXNoIGFuZCBjb25maWcKIyBmaWxlcyBzaW5jZSB0aGUgcmRl
c3F1ZV9lZGl0KCkgc3ViIGp1c3QgY3JlYXRlcyB0aGUgZGlhbG9nLgojIHRoaXMgaXMgdGhl
IG9uZSBsaW5rZWQgdG8gdGhlICJvayBidXR0b24gaW4gdGhlIGRpYWxvZwpzdWIgZG9fZWRp
dF9zZXJ2ZXIKewogIG15ICRuYW1lX2VkaXRlZCA9ICRuYW1lX2VudHJ5LT5nZXRfdGV4dCgp
OwogIG15ICRpcF9lZGl0ZWQgPSAkaXBfZW50cnktPmdldF90ZXh0KCk7CiAgbXkgJHVuYW1l
X2VkaXRlZCA9ICR1bmFtZV9lbnRyeS0+Z2V0X3RleHQoKTsKICBteSAkcHRocnUgPSAkcGFz
c3RocnVfZW50cnktPmdldF90ZXh0KCk7CiAgbXkgJHJlc28gPSAkY29tYm8xLT5lbnRyeS0+
Z2V0X3RleHQoKTsKICBteSAka21hcCA9ICRjb21ibzItPmVudHJ5LT5nZXRfdGV4dCgpOwog
IG15ICRmc19zdGF0ZTsKICBteSAkYm1wX3N0YXRlOwogIG15ICRsaWNfc3RhdGU7CgogIGlm
KCAkZnNfY2hlY2tib3gtPmdldF9hY3RpdmUgKSB7JGZzX3N0YXRlID0gInRydWUiO30KICBl
bHNlIHskZnNfc3RhdGUgPSAiZmFsc2UiO30KIAogIGlmKCAkYm1wX2NoZWNrYm94LT5nZXRf
YWN0aXZlICkgeyRibXBfc3RhdGUgPSAidHJ1ZSI7fQogIGVsc2UgeyRibXBfc3RhdGUgPSAi
ZmFsc2UiO30KCiAgaWYoICRsaWNfY2hlY2tib3gtPmdldF9hY3RpdmUgKSB7JGxpY19zdGF0
ZSA9ICJ0cnVlIjt9CiAgZWxzZSB7JGxpY19zdGF0ZSA9ICJmYWxzZSI7fQoKCiAgY2hvbXAg
JG5hbWVfZWRpdGVkOwogIGNob21wICRpcF9lZGl0ZWQ7CiAgY2hvbXAgJHVuYW1lX2VkaXRl
ZDsKICBjaG9tcCAkcmVzbzsKICBjaG9tcCAkZnNfc3RhdGU7CiAgY2hvbXAgJGJtcF9zdGF0
ZTsKICBjaG9tcCAkbGljX3N0YXRlOwogIGNob21wICRrbWFwOwogIGNob21wICRwdGhydTsK
CiAgaWYoICRuYW1lX2VkaXRlZCBuZSAiIiAmJiAkaXBfZWRpdGVkIG5lICIiICkKICB7CiAK
ICAgIG15ICRvbGRfbmFtZSA9ICRzZWxlY3RlZF9tYWNoaW5lOwogICAgbXkgJG9sZF9pcCA9
ICRpcF9oYXNoeyRzZWxlY3RlZF9tYWNoaW5lfTsKCiAgICBkZWxldGUgJGlwX2hhc2h7JHNl
bGVjdGVkX21hY2hpbmV9OwogICAgJGlwX2hhc2h7JG5hbWVfZWRpdGVkfSA9ICRpcF9lZGl0
ZWQ7CiAgICBkZWxldGUgJHVuYW1lX2hhc2h7JHNlbGVjdGVkX21hY2hpbmV9OwogICAgJHVu
YW1lX2hhc2h7JG5hbWVfZWRpdGVkfSA9ICR1bmFtZV9lZGl0ZWQ7ICAKICAgIGRlbGV0ZSAk
Z2VvbV9oYXNoeyRzZWxlY3RlZF9tYWNoaW5lfTsKICAgICRnZW9tX2hhc2h7JG5hbWVfZWRp
dGVkfSA9ICRyZXNvOwogICAgZGVsZXRlICRmdWxsc2NyZWVuX2hhc2h7JHNlbGVjdGVkX21h
Y2hpbmV9OwogICAgJGZ1bGxzY3JlZW5faGFzaHskbmFtZV9lZGl0ZWR9ID0gJGZzX3N0YXRl
OwogICAgZGVsZXRlICRiaXRtYXBfdXBkX2hhc2h7JHNlbGVjdGVkX21hY2hpbmV9OwogICAg
JGJpdG1hcF91cGRfaGFzaHskbmFtZV9lZGl0ZWR9ID0gJGJtcF9zdGF0ZTsKICAgIGRlbGV0
ZSAkbGljZW5zZV9oYXNoeyRzZWxlY3RlZF9tYWNoaW5lfTsKICAgICRsaWNlbnNlX2hhc2h7
JG5hbWVfZWRpdGVkfSA9ICRsaWNfc3RhdGU7CiAgICBkZWxldGUgJGttYXBfaGFzaHskc2Vs
ZWN0ZWRfbWFjaGluZX07CiAgICAka21hcF9oYXNoeyRuYW1lX2VkaXRlZH0gPSAka21hcDsK
ICAgIGRlbGV0ZSAkcGFzc3RocnVfaGFzaHskc2VsZWN0ZWRfbWFjaGluZX07CiAgICAkcGFz
c3RocnVfaGFzaHskbmFtZV9lZGl0ZWR9ID0gJHB0aHJ1OwogICAKICAgIHdyaXRlX291dF9j
b25maWcoKTsKICAgIHByaW50ICJPbGQgZGF0YTogbmFtZSA9ICRvbGRfbmFtZSwgaXAvaG9z
dG5hbWUgPSAkb2xkX2lwXG4iOwogICAgcHJpbnQgIk5ldyBkYXRhOiBuYW1lID0gJG5hbWVf
ZWRpdGVkLCBpcC9ob3N0bmFtZSA9ICRpcF9lZGl0ZWRcbiI7IAogICAgJGRpYWxvZzItPmRl
c3Ryb3koKTsKICAgIHBvcHVsYXRlX2NsaXN0X2Zyb21fY29uZmlnKCk7IAogIH0KICBlbHNl
CiAgewogICAgbXkgJGZpZWxkMTsKICAgIG15ICRkb2hfZGlhbG9nID0gbmV3IEd0azI6OkRp
YWxvZygpOwogICAgJGRvaF9kaWFsb2ctPnRpdGxlKCJFci4uLi4iKTsKICAgIG15ICRkb2hf
b2sgPSBuZXcgR3RrMjo6QnV0dG9uKCAiT2siICk7CiAgICAkZG9oX29rLT5zaWduYWxfY29u
bmVjdCggImNsaWNrZWQiLCBzdWIgeyAkZG9oX2RpYWxvZy0+ZGVzdHJveSgpOyB9ICk7CiAg
ICBpZiggJG5hbWVfZWRpdGVkIGVxICIiICkgeyAkZmllbGQxID0gIk5hbWUiOyB9CiAgICBl
bHNpZiggJGlwX2VkaXRlZCBlcSAiIiApIHsgJGZpZWxkMSA9ICJJUC9Ib3N0bmFtZSI7IH0K
ICAgIGVsc2UgeyAkZmllbGQxID0gIioqKkNSSVRJQ0FMIEVSUk9SKioqIjsgfQogICAgbXkg
JGRvaF9sYWJlbCA9IG5ldyBHdGsyOjpMYWJlbCggIllvdSBsZWZ0IHRoZSAkZmllbGQxIGZp
ZWxkIGJsYW5rLlxuQ29uZmlnIE5PVCB1cGRhdGVkLiIgKTsKICAgIAogICAgJGRvaF9kaWFs
b2ctPnZib3gtPnBhY2tfc3RhcnQoICRkb2hfbGFiZWwsICR0cnVlLCAkdHJ1ZSwgMCApOwog
ICAgJGRvaF9kaWFsb2ctPmFjdGlvbl9hcmVhLT5wYWNrX3N0YXJ0KCAkZG9oX29rLCAkdHJ1
ZSwgJHRydWUsIDAgKTsKICAgICRkb2hfZGlhbG9nLT5zaG93X2FsbCgpOwogIH0KCn0KCiMg
cmVhZHMgaW4gdGhlIGNvbmZpZyBmaWxlICh+Ly54cmRlc2t0b3BfY29uZmlnIGJ5IGRlZmF1
bHQpCiMgcGx1Z3MgYWxsIHRoZSBkYXRhIGludG8gYSBoYXNoICgkaXBfaGFzaCkgYW5kIAoj
IHNldHMgdXAgdGhlICRsaXN0MSB3aWRnZXQgd2l0aCB0aGUgZGF0YSBpbiB0aGUgaGFzaApz
dWIgcG9wdWxhdGVfY2xpc3RfZnJvbV9jb25maWcKewoKICB1bmxlc3MoIC1lICIkRU5We0hP
TUV9Ly54cmRlc2t0b3BfY29uZmlnIikgeyB3cml0ZV9vdXRfY29uZmlnKCk7fQoKICBvcGVu
KCBDT05GSUcsICIkRU5We0hPTUV9Ly54cmRlc2t0b3BfY29uZmlnIik7CiAgd2hpbGUoIDxD
T05GSUc+ICkKICB7CgogICAgIyBpZ25vcmUgY29tbWVudHMgYW5kIGJsYW5rIGxpbmVzIAog
ICAgbmV4dCBpZiAvXiMvOwogICAgbmV4dCBpZiAvXiQvOwogIAogICMgZ2V0IG1lIHNvbWUg
ZGF0YQogICAgJHJhd19kYXRhID0gJF87CiAgICBjaG9tcCAkcmF3X2RhdGE7CiAgICAoICRm
aWVsZF90eXBlLCAkZmllbGRfZGF0YSApID0gc3BsaXQgLz0vLCAkcmF3X2RhdGEsMjsKICAg
IGNob21wICRmaWVsZF90eXBlOwogICAgY2hvbXAgJGZpZWxkX2RhdGE7CgogICAgIyBzdHVm
ZiB0aGUgZmlyc3QgbGluZSAoaG9wZWZ1bGx5IE5hbWUpIGludG8gdmFycwogICAgaWYoICRm
aWVsZF90eXBlIGVxICJOYW1lIiApIHskbWFjaGluZV9uYW1lID0gJGZpZWxkX2RhdGE7fQog
ICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJJUCIgKSB7JG1hY2hpbmVfaXAgPSAkZmllbGRf
ZGF0YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIlVuYW1lIiApIHskbWFjaGluZV91
bmFtZSA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2lmKCAkZmllbGRfdHlwZSBlcSAiR2VvbWV0
cnkiICkgeyAkbWFjaGluZV9nZW9tID0gJGZpZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVs
ZF90eXBlIGVxICJGdWxsc2NyZWVuIiApIHskbWFjaGluZV9mcyA9ICRmaWVsZF9kYXRhO30K
ICAgIGVsc2lmKCAkZmllbGRfdHlwZSBlcSAiQml0bWFwX1VwZGF0ZXMiICkgeyRtYWNoaW5l
X2JpdG1hcF91cGQgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEg
IktleW1hcCIgKSB7JG1hY2hpbmVfa21hcCA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2lmKCAk
ZmllbGRfdHlwZSBlcSAiTm9SZXFMaWMiICkgeyRtYWNoaW5lX2xpYyA9ICRmaWVsZF9kYXRh
O30KICAgIGVsc2lmKCAkZmllbGRfdHlwZSBlcSAiUGFzc3RocnUiICkgeyRtYWNoaW5lX3Bh
c3N0aHJ1ID0gJGZpZWxkX2RhdGE7fQogICAgZWxzZSB7cHJpbnQgIkJhZCBEYXRhOiAkZmll
bGRfdHlwZSA6ICRmaWVsZF9kYXRhXG4iO30KCiAgICAjIHN0dWZmIHRoZSBzZWNvbmQgbGlu
ZSAoaG9wZWZ1bGx5IElQKSBpbnRvIHZhcnMgCiAgICAkcmF3X2RhdGEgPSA8Q09ORklHPjsK
ICAgIGNob21wICRyYXdfZGF0YTsKICAgICggJGZpZWxkX3R5cGUsICRmaWVsZF9kYXRhICkg
PSBzcGxpdCAvPS8sICRyYXdfZGF0YSwyOwogICAgY2hvbXAgJGZpZWxkX3R5cGU7CiAgICBj
aG9tcCAkZmllbGRfZGF0YTsKICAgIGlmKCAkZmllbGRfdHlwZSBlcSAiTmFtZSIgKSB7JG1h
Y2hpbmVfbmFtZSA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2lmKCAkZmllbGRfdHlwZSBlcSAi
SVAiICkgeyRtYWNoaW5lX2lwID0gJGZpZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVsZF90
eXBlIGVxICJVbmFtZSIgKSB7JG1hY2hpbmVfdW5hbWUgPSAkZmllbGRfZGF0YTt9CiAgICBl
bHNpZiggJGZpZWxkX3R5cGUgZXEgIkdlb21ldHJ5IiApIHsgJG1hY2hpbmVfZ2VvbSA9ICRm
aWVsZF9kYXRhO30KICAgIGVsc2lmKCAkZmllbGRfdHlwZSBlcSAiRnVsbHNjcmVlbiIgKSB7
JG1hY2hpbmVfZnMgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEg
IkJpdG1hcF9VcGRhdGVzIiApIHskbWFjaGluZV9iaXRtYXBfdXBkID0gJGZpZWxkX2RhdGE7
fQogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJLZXltYXAiICkgeyRtYWNoaW5lX2ttYXAg
PSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIk5vUmVxTGljIiAp
IHskbWFjaGluZV9saWMgPSAkZmllbGRfZGF0YTt9IAogICAgZWxzaWYoICRmaWVsZF90eXBl
IGVxICJQYXNzdGhydSIgKSB7JG1hY2hpbmVfcGFzc3RocnUgPSAkZmllbGRfZGF0YTt9CiAg
ICBlbHNlIHtwcmludCAiQmFkIERhdGE6ICRmaWVsZF90eXBlIDogJGZpZWxkX2RhdGFcbiI7
fQoKICAgICMgc3R1ZmYgdGhlIHRoaXJkIGxpbmUgKGhvcGVmdWxseSBVbmFtZSkgaW50byB2
YXJzCiAgICAkcmF3X2RhdGEgPSA8Q09ORklHPjsKICAgIGNob21wICRyYXdfZGF0YTsKICAg
ICggJGZpZWxkX3R5cGUsICRmaWVsZF9kYXRhICkgPSBzcGxpdCAvPS8sICRyYXdfZGF0YSwy
OwogICAgY2hvbXAgJGZpZWxkX3R5cGU7CiAgICBjaG9tcCAkZmllbGRfZGF0YTsKICAgIGlm
KCAkZmllbGRfdHlwZSBlcSAiTmFtZSIgKSB7JG1hY2hpbmVfbmFtZSA9ICRmaWVsZF9kYXRh
O30KICAgIGVsc2lmKCAkZmllbGRfdHlwZSBlcSAiSVAiICkgeyRtYWNoaW5lX2lwID0gJGZp
ZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJVbmFtZSIgKSB7JG1hY2hp
bmVfdW5hbWUgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIkdl
b21ldHJ5IiApIHsgJG1hY2hpbmVfZ2VvbSA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2lmKCAk
ZmllbGRfdHlwZSBlcSAiRnVsbHNjcmVlbiIgKSB7JG1hY2hpbmVfZnMgPSAkZmllbGRfZGF0
YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIkJpdG1hcF9VcGRhdGVzIiApIHskbWFj
aGluZV9iaXRtYXBfdXBkID0gJGZpZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVsZF90eXBl
IGVxICJLZXltYXAiICkgeyRtYWNoaW5lX2ttYXAgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNp
ZiggJGZpZWxkX3R5cGUgZXEgIk5vUmVxTGljIiApIHskbWFjaGluZV9saWMgPSAkZmllbGRf
ZGF0YTt9IAogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJQYXNzdGhydSIgKSB7JG1hY2hp
bmVfcGFzc3RocnUgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNlIHtwcmludCAiQmFkIERhdGE6
ICRmaWVsZF90eXBlIDogJGZpZWxkX2RhdGFcbiI7fQoKICAgICMgc3R1ZmYgdGhlIGZvdXJ0
aCBsaW5lIChob3BlZnVsbHkgR2VvbWV0cnkpIGludG8gdmFycwogICAgJHJhd19kYXRhID0g
PENPTkZJRz47CiAgICBjaG9tcCAkcmF3X2RhdGE7CiAgICAoICRmaWVsZF90eXBlLCAkZmll
bGRfZGF0YSApID0gc3BsaXQgLz0vLCAkcmF3X2RhdGEsMjsKICAgIGNob21wICRmaWVsZF90
eXBlOwogICAgY2hvbXAgJGZpZWxkX2RhdGE7CiAgICBpZiggJGZpZWxkX3R5cGUgZXEgIk5h
bWUiICkgeyRtYWNoaW5lX25hbWUgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxk
X3R5cGUgZXEgIklQIiApIHskbWFjaGluZV9pcCA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2lm
KCAkZmllbGRfdHlwZSBlcSAiVW5hbWUiICkgeyRtYWNoaW5lX3VuYW1lID0gJGZpZWxkX2Rh
dGE7fQogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJHZW9tZXRyeSIgKSB7ICRtYWNoaW5l
X2dlb20gPSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIkZ1bGxz
Y3JlZW4iICkgeyRtYWNoaW5lX2ZzID0gJGZpZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVs
ZF90eXBlIGVxICJCaXRtYXBfVXBkYXRlcyIgKSB7JG1hY2hpbmVfYml0bWFwX3VwZCA9ICRm
aWVsZF9kYXRhO30KICAgIGVsc2lmKCAkZmllbGRfdHlwZSBlcSAiS2V5bWFwIiApIHskbWFj
aGluZV9rbWFwID0gJGZpZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJO
b1JlcUxpYyIgKSB7JG1hY2hpbmVfbGljID0gJGZpZWxkX2RhdGE7fSAKICAgIGVsc2lmKCAk
ZmllbGRfdHlwZSBlcSAiUGFzc3RocnUiICkgeyRtYWNoaW5lX3Bhc3N0aHJ1ID0gJGZpZWxk
X2RhdGE7fQogICAgZWxzZSB7cHJpbnQgIkJhZCBEYXRhOiAkZmllbGRfdHlwZSA6ICRmaWVs
ZF9kYXRhXG4iO30KCiAgICAjIHN0dWZmIHRoZSBmaWZ0aCBsaW5lIChob3BlZnVsbHkgRnVs
bHNjcmVlbikgaW50byB2YXJzCiAgICAkcmF3X2RhdGEgPSA8Q09ORklHPjsKICAgIGNob21w
ICRyYXdfZGF0YTsKICAgICggJGZpZWxkX3R5cGUsICRmaWVsZF9kYXRhICkgPSBzcGxpdCAv
PS8sICRyYXdfZGF0YSwyOwogICAgY2hvbXAgJGZpZWxkX3R5cGU7CiAgICBjaG9tcCAkZmll
bGRfZGF0YTsKICAgIGlmKCAkZmllbGRfdHlwZSBlcSAiTmFtZSIgKSB7JG1hY2hpbmVfbmFt
ZSA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2lmKCAkZmllbGRfdHlwZSBlcSAiSVAiICkgeyRt
YWNoaW5lX2lwID0gJGZpZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJV
bmFtZSIgKSB7JG1hY2hpbmVfdW5hbWUgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZp
ZWxkX3R5cGUgZXEgIkdlb21ldHJ5IiApIHsgJG1hY2hpbmVfZ2VvbSA9ICRmaWVsZF9kYXRh
O30KICAgIGVsc2lmKCAkZmllbGRfdHlwZSBlcSAiRnVsbHNjcmVlbiIgKSB7JG1hY2hpbmVf
ZnMgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIkJpdG1hcF9V
cGRhdGVzIiApIHskbWFjaGluZV9iaXRtYXBfdXBkID0gJGZpZWxkX2RhdGE7fQogICAgZWxz
aWYoICRmaWVsZF90eXBlIGVxICJLZXltYXAiICkgeyRtYWNoaW5lX2ttYXAgPSAkZmllbGRf
ZGF0YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIk5vUmVxTGljIiApIHskbWFjaGlu
ZV9saWMgPSAkZmllbGRfZGF0YTt9IAogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJQYXNz
dGhydSIgKSB7JG1hY2hpbmVfcGFzc3RocnUgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNlIHtw
cmludCAiQmFkIERhdGE6ICRmaWVsZF90eXBlIDogJGZpZWxkX2RhdGFcbiI7fQoKICAgICMg
c3R1ZmYgdGhlIHNpeHRoIGxpbmUgKGhvcGVmdWxseSBCaXRtYXBfVXBkYXRlcykgaW50byB2
YXJzCiAgICAkcmF3X2RhdGEgPSA8Q09ORklHPjsKICAgIGNob21wICRyYXdfZGF0YTsKICAg
ICggJGZpZWxkX3R5cGUsICRmaWVsZF9kYXRhICkgPSBzcGxpdCAvPS8sICRyYXdfZGF0YSwy
OwogICAgY2hvbXAgJGZpZWxkX3R5cGU7CiAgICBjaG9tcCAkZmllbGRfZGF0YTsKICAgIGlm
KCAkZmllbGRfdHlwZSBlcSAiTmFtZSIgKSB7JG1hY2hpbmVfbmFtZSA9ICRmaWVsZF9kYXRh
O30KICAgIGVsc2lmKCAkZmllbGRfdHlwZSBlcSAiSVAiICkgeyRtYWNoaW5lX2lwID0gJGZp
ZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJVbmFtZSIgKSB7JG1hY2hp
bmVfdW5hbWUgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIkdl
b21ldHJ5IiApIHsgJG1hY2hpbmVfZ2VvbSA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2lmKCAk
ZmllbGRfdHlwZSBlcSAiRnVsbHNjcmVlbiIgKSB7JG1hY2hpbmVfZnMgPSAkZmllbGRfZGF0
YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIkJpdG1hcF9VcGRhdGVzIiApIHskbWFj
aGluZV9iaXRtYXBfdXBkID0gJGZpZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVsZF90eXBl
IGVxICJLZXltYXAiICkgeyRtYWNoaW5lX2ttYXAgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNp
ZiggJGZpZWxkX3R5cGUgZXEgIk5vUmVxTGljIiApIHskbWFjaGluZV9saWMgPSAkZmllbGRf
ZGF0YTt9IAogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJQYXNzdGhydSIgKSB7JG1hY2hp
bmVfcGFzc3RocnUgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNlIHtwcmludCAiQmFkIERhdGE6
ICRmaWVsZF90eXBlIDogJGZpZWxkX2RhdGFcbiI7fQoKICAgICMgc3R1ZmYgdGhlIHNldmVu
dGggbGluZSAoaG9wZWZ1bGx5IEtleW1hcCkgaW50byB2YXJzCiAgICAkcmF3X2RhdGEgPSA8
Q09ORklHPjsKICAgIGNob21wICRyYXdfZGF0YTsKICAgICggJGZpZWxkX3R5cGUsICRmaWVs
ZF9kYXRhICkgPSBzcGxpdCAvPS8sICRyYXdfZGF0YSwyOwogICAgY2hvbXAgJGZpZWxkX3R5
cGU7CiAgICBjaG9tcCAkZmllbGRfZGF0YTsKICAgIGlmKCAkZmllbGRfdHlwZSBlcSAiTmFt
ZSIgKSB7JG1hY2hpbmVfbmFtZSA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2lmKCAkZmllbGRf
dHlwZSBlcSAiSVAiICkgeyRtYWNoaW5lX2lwID0gJGZpZWxkX2RhdGE7fQogICAgZWxzaWYo
ICRmaWVsZF90eXBlIGVxICJVbmFtZSIgKSB7JG1hY2hpbmVfdW5hbWUgPSAkZmllbGRfZGF0
YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIkdlb21ldHJ5IiApIHsgJG1hY2hpbmVf
Z2VvbSA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2lmKCAkZmllbGRfdHlwZSBlcSAiRnVsbHNj
cmVlbiIgKSB7JG1hY2hpbmVfZnMgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxk
X3R5cGUgZXEgIkJpdG1hcF9VcGRhdGVzIiApIHskbWFjaGluZV9iaXRtYXBfdXBkID0gJGZp
ZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJLZXltYXAiICkgeyRtYWNo
aW5lX2ttYXAgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIk5v
UmVxTGljIiApIHskbWFjaGluZV9saWMgPSAkZmllbGRfZGF0YTt9IAogICAgZWxzaWYoICRm
aWVsZF90eXBlIGVxICJQYXNzdGhydSIgKSB7JG1hY2hpbmVfcGFzc3RocnUgPSAkZmllbGRf
ZGF0YTt9CiAgICBlbHNlIHtwcmludCAiQmFkIERhdGE6ICRmaWVsZF90eXBlIDogJGZpZWxk
X2RhdGFcbiI7fQoKICAgICMgc3R1ZmYgdGhlIGVpZ2h0aCBsaW5lIChob3BlZnVsbHkgTm9S
ZXFMaWMpIGludG8gdmFycwogICAgJHJhd19kYXRhID0gPENPTkZJRz47CiAgICBjaG9tcCAk
cmF3X2RhdGE7CiAgICAoICRmaWVsZF90eXBlLCAkZmllbGRfZGF0YSApID0gc3BsaXQgLz0v
LCAkcmF3X2RhdGEsMjsKICAgIGNob21wICRmaWVsZF90eXBlOwogICAgY2hvbXAgJGZpZWxk
X2RhdGE7CiAgICBpZiggJGZpZWxkX3R5cGUgZXEgIk5hbWUiICkgeyRtYWNoaW5lX25hbWUg
PSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIklQIiApIHskbWFj
aGluZV9pcCA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2lmKCAkZmllbGRfdHlwZSBlcSAiVW5h
bWUiICkgeyRtYWNoaW5lX3VuYW1lID0gJGZpZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVs
ZF90eXBlIGVxICJHZW9tZXRyeSIgKSB7ICRtYWNoaW5lX2dlb20gPSAkZmllbGRfZGF0YTt9
CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIkZ1bGxzY3JlZW4iICkgeyRtYWNoaW5lX2Zz
ID0gJGZpZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJCaXRtYXBfVXBk
YXRlcyIgKSB7JG1hY2hpbmVfYml0bWFwX3VwZCA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2lm
KCAkZmllbGRfdHlwZSBlcSAiS2V5bWFwIiApIHskbWFjaGluZV9rbWFwID0gJGZpZWxkX2Rh
dGE7fQogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJOb1JlcUxpYyIgKSB7JG1hY2hpbmVf
bGljID0gJGZpZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJQYXNzdGhy
dSIgKSB7JG1hY2hpbmVfcGFzc3RocnUgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNlIHtwcmlu
dCAiQmFkIERhdGE6ICRmaWVsZF90eXBlIDogJGZpZWxkX2RhdGFcbiI7fQoKICAgICMgc3R1
ZmYgdGhlIG5pbnRoIGxpbmUgKGhvcGVmdWxseSBQYXNzdGhydSkgaW50byB2YXJzCiAgICAk
cmF3X2RhdGEgPSA8Q09ORklHPjsKICAgIGNob21wICRyYXdfZGF0YTsKICAgICggJGZpZWxk
X3R5cGUsICRmaWVsZF9kYXRhICkgPSBzcGxpdCAvPS8sICRyYXdfZGF0YSwyOwogICAgY2hv
bXAgJGZpZWxkX3R5cGU7CiAgICBjaG9tcCAkZmllbGRfZGF0YTsKICAgIGlmKCAkZmllbGRf
dHlwZSBlcSAiTmFtZSIgKSB7JG1hY2hpbmVfbmFtZSA9ICRmaWVsZF9kYXRhO30KICAgIGVs
c2lmKCAkZmllbGRfdHlwZSBlcSAiSVAiICkgeyRtYWNoaW5lX2lwID0gJGZpZWxkX2RhdGE7
fQogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJVbmFtZSIgKSB7JG1hY2hpbmVfdW5hbWUg
PSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIkdlb21ldHJ5IiAp
IHsgJG1hY2hpbmVfZ2VvbSA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2lmKCAkZmllbGRfdHlw
ZSBlcSAiRnVsbHNjcmVlbiIgKSB7JG1hY2hpbmVfZnMgPSAkZmllbGRfZGF0YTt9CiAgICBl
bHNpZiggJGZpZWxkX3R5cGUgZXEgIkJpdG1hcF9VcGRhdGVzIiApIHskbWFjaGluZV9iaXRt
YXBfdXBkID0gJGZpZWxkX2RhdGE7fQogICAgZWxzaWYoICRmaWVsZF90eXBlIGVxICJLZXlt
YXAiICkgeyRtYWNoaW5lX2ttYXAgPSAkZmllbGRfZGF0YTt9CiAgICBlbHNpZiggJGZpZWxk
X3R5cGUgZXEgIk5vUmVxTGljIiApIHskbWFjaGluZV9saWMgPSAkZmllbGRfZGF0YTt9CiAg
ICBlbHNpZiggJGZpZWxkX3R5cGUgZXEgIlBhc3N0aHJ1IiApIHskbWFjaGluZV9wYXNzdGhy
dSA9ICRmaWVsZF9kYXRhO30KICAgIGVsc2Uge3ByaW50ICJCYWQgRGF0YTogJGZpZWxkX3R5
cGUgOiAkZmllbGRfZGF0YVxuIjt9CgogICAgIyBmaW5hbGx5LCBzdHVmZiBpdCBhbGwgaW50
byB0aGUgaGFzaGVzCiAgICBjaG9tcCAkbWFjaGluZV9uYW1lOwogICAgY2hvbXAgJG1hY2hp
bmVfaXA7CiAgICBjaG9tcCAkbWFjaGluZV91bmFtZTsKICAgIGNob21wICRtYWNoaW5lX2dl
b207CiAgICBjaG9tcCAkbWFjaGluZV9mczsKICAgIGNob21wICRtYWNoaW5lX2JpdG1hcF91
cGQ7CiAgICBjaG9tcCAkbWFjaGluZV9rbWFwOwogICAgY2hvbXAgJG1hY2hpbmVfcGFzc3Ro
cnU7CiAgICAkaXBfaGFzaHskbWFjaGluZV9uYW1lfSA9ICRtYWNoaW5lX2lwOwogICAgJHVu
YW1lX2hhc2h7JG1hY2hpbmVfbmFtZX0gPSAkbWFjaGluZV91bmFtZTsKICAgICRnZW9tX2hh
c2h7JG1hY2hpbmVfbmFtZX0gPSAkbWFjaGluZV9nZW9tOwogICAgJGZ1bGxzY3JlZW5faGFz
aHskbWFjaGluZV9uYW1lfSA9ICRtYWNoaW5lX2ZzOwogICAgJGJpdG1hcF91cGRfaGFzaHsk
bWFjaGluZV9uYW1lfSA9ICRtYWNoaW5lX2JpdG1hcF91cGQ7IAogICAgJGxpY2Vuc2VfaGFz
aHskbWFjaGluZV9uYW1lfSA9ICRtYWNoaW5lX2xpYzsKICAgICRrbWFwX2hhc2h7JG1hY2hp
bmVfbmFtZX0gPSAkbWFjaGluZV9rbWFwOyAKICAgICRwYXNzdGhydV9oYXNoeyRtYWNoaW5l
X25hbWV9ID0gJG1hY2hpbmVfcGFzc3RocnU7CiAgfQoKICBjbG9zZSBDT05GSUc7CgogICMg
YW5kIGxhc3QsIGJ1dCBub3QgbGVhc3QsIHN0dWZmIGl0IGFsbCBpbnRvIHRoZSBjbGlzdAog
IGZvciAobXkgJG49JGluZGV4bWF4LTE7ICRuPj0wOyAkbi0tKQogIHsgCiAgc3BsaWNlIEB7
ICRsaXN0MS0+e2RhdGF9IH0sICRuLCAxOwogIH0gCiAgQG1hY2hpbmVzID0ga2V5cyAlaXBf
aGFzaDsKICAkaW5kZXhtYXggPSAwOwogIGZvcmVhY2ggJG1hY2hpbmEgKHNvcnQgQG1hY2hp
bmVzKQogIHsKICAgIHB1c2ggQHskbGlzdDEtPntkYXRhfX0sIFskbWFjaGluYSwgJGlwX2hh
c2h7JG1hY2hpbmF9LCAkdW5hbWVfaGFzaHskbWFjaGluYX0sICRrbWFwX2hhc2h7JG1hY2hp
bmF9LCAkZ2VvbV9oYXNoeyRtYWNoaW5hfSwgJGZ1bGxzY3JlZW5faGFzaHskbWFjaGluYX0s
ICRiaXRtYXBfdXBkX2hhc2h7JG1hY2hpbmF9LCAkbGljZW5zZV9oYXNoeyRtYWNoaW5hfSwg
JHBhc3N0aHJ1X2hhc2h7JG1hY2hpbmF9IF07CiAgICAkaW5kZXhtYXgrKzsKICB9CiAgCn0K

--------------060103000108040102030702--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54C763D1.7020108>