public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: ada/9596: Internal compiler error during gtkada compilation
@ 2003-05-12  8:46 Dara Hazeghi
  0 siblings, 0 replies; 2+ messages in thread
From: Dara Hazeghi @ 2003-05-12  8:46 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR ada/9596; it has been noted by GNATS.

From: Dara Hazeghi <dhazeghi@yahoo.com>
To: grave@ipno.in2p3.fr, gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org
Cc:  
Subject: Re: ada/9596: Internal compiler error during gtkada compilation
Date: Mon, 12 May 2003 01:41:21 -0700

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit- 
 trail&database=gcc&pr=9596
 
 Hello,
 
 I can confirm that this code fails on 3.2, 3.3 branch and mainline  
 (20030510) on i686-linux.
 
 Dara
 


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

* ada/9596: Internal compiler error during gtkada compilation
@ 2003-02-06 13:46 grave
  0 siblings, 0 replies; 2+ messages in thread
From: grave @ 2003-02-06 13:46 UTC (permalink / raw)
  To: gcc-gnats


>Number:         9596
>Category:       ada
>Synopsis:       Internal compiler error during gtkada compilation
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Feb 06 13:46:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     xavier grave
>Release:        gcc version 3.2.2 20030131 (Debian prerelease)
>Organization:
>Environment:
Linux ipnnarval 2.4.20-rc3-ben0 #1 SMP lun nov 25 16:04:34 CET 2002 ppc unknown unknown GNU/Linux
>Description:

>How-To-Repeat:
gcc-3.2 -c -I. -O2 -gnatn -gnatwuwl -fPIC -I- gtk-extra-plot_data.adb
>Fix:

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

LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgICAgICBHdGtBZGEgLSBBZGE5NSBiaW5kaW5nIGZv
ciBHdGsrL0dub21lICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICBDb3B5cmln
aHQgKEMpIDE5OTgtMjAwMCBFLiBCcmlvdCwgSi4gQnJvYmVja2VyIGFuZCBBLiBDaGFybGV0ICAg
LS0KLS0gICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDEgQUNULUV1cm9wZSAg
ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgICAg
ICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsICAgICAgLS0K
LS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwg
aWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0
LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0byBwcm9kdWNlIGFuICAg
LS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAg
dGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90IGhv
d2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0
YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAg
ICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICA8ZGVzY3JpcHRpb24+Ci0tCi0tICBQaXhtYXBzIGFy
ZSBvZmYtc2NyZWVuIGRyYXdhYmxlcy4gVGhleSBjYW4gYmUgZHJhd24gdXBvbiB3aXRoIHRoZSBz
dGFuZGFyZAotLSAgZHJhd2luZyBwcmltaXRpdmVzLCB0aGVuIGNvcGllZCB0byBhbm90aGVyIGRy
YXdhYmxlIChzdWNoIGFzIGEgR2RrX1dpbmRvdykKLS0gIHdpdGggR2RrLlBpeG1hcC5EcmF3LiBU
aGUgZGVwdGggb2YgYSBwaXhtYXAgaXMgdGhlIG51bWJlciBvZiBiaXRzIHBlcgotLSAgcGl4ZWxz
LiBCaXRtYXBzIGFyZSBzaW1wbHkgcGl4bWFwcyB3aXRoIGEgZGVwdGggb2YgMS4gKFRoYXQgaXMs
IHRoZXkgYXJlCi0tICBtb25vY2hyb21lIGJpdG1hcHMgLSBlYWNoIHBpeGVsIGNhbiBiZSBlaXRo
ZXIgb24gb3Igb2ZmKS4KLS0gIEBweHJlZntQYWNrYWdlX0dkay5QaXhtYXB9IGZvciBtb3JlIGRl
dGFpbHMgb24gcGl4bWFwIGhhbmRsaW5nLgotLQotLSAgPC9kZXNjcmlwdGlvbj4KLS0gIDxjX3Zl
cnNpb24+MS4yLjc8L2NfdmVyc2lvbj4KCndpdGggR2xpYjsgdXNlIEdsaWI7Cgp3aXRoIEdkay5X
aW5kb3c7CgpwYWNrYWdlIEdkay5CaXRtYXAgaXMKCiAgIHN1YnR5cGUgR2RrX0JpdG1hcCBpcyBH
ZGsuR2RrX0JpdG1hcDsKICAgLS0gIEEgYmxhY2sgYW5kIHdoaXRlIGltYWdlLgogICAtLSAgVGhp
cyB0eXBlIGlzIG1haW5seSB1c2VkIGFzIGEgbWFzayB3aGVuIGRyYXdpbmcgb3RoZXIgY29sb3Jl
ZCBpbWFnZXMuCiAgIC0tICBFYWNoIHBpeGVsIGNhbiBoYXZlIHR3byB2YWx1ZXMsIDAgb3IgMS4K
CiAgIE51bGxfQml0bWFwIDogY29uc3RhbnQgR2RrX0JpdG1hcDsKCiAgIHByb2NlZHVyZSBHZGtf
TmV3IChCaXRtYXAgOiBvdXQgR2RrX0JpdG1hcDsKICAgICAgICAgICAgICAgICAgICAgIFdpbmRv
dyA6IGluICBHZGsuV2luZG93Lkdka19XaW5kb3c7CiAgICAgICAgICAgICAgICAgICAgICBXaWR0
aCAgOiBpbiAgR2ludDsKICAgICAgICAgICAgICAgICAgICAgIEhlaWdodCA6IGluICBHaW50KTsK
ICAgLS0gIENyZWF0ZSBhIG5ldyBiaXRtYXAgd2l0aCBhIGdpdmVuIHNpemUuCiAgIC0tICBXaW5k
b3cgaXMgdXNlZCB0byBkZXRlcm1pbmUgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBuZXcgYml0bWFw
LgogICAtLSAgQ2FuIGJlIGV2ZW50dWFsbHkgbnVsbCBpbiB3aGljaCBjYXNlIHRoZSByb290IHdp
bmRvdyBpcyB1c2VkLgogICAtLSAgV2lkdGggaXMgdGhlIHdpZHRoIG9mIHRoZSBuZXcgYml0bWFw
IGluIHBpeGVscy4KICAgLS0gIEhlaWdodCBpcyB0aGUgaGVpZ2h0IG9mIHRoZSBuZXcgYml0bWFw
IGluIHBpeGVscy4KCiAgIHByb2NlZHVyZSBSZWYgKEJpdG1hcCA6IGluIEdka19CaXRtYXApOwog
ICAtLSAgQWRkIGEgcmVmZXJlbmNlIHRvIGEgYml0bWFwLgoKICAgcHJvY2VkdXJlIFVucmVmIChC
aXRtYXAgOiBpbiBHZGtfQml0bWFwKTsKICAgLS0gIFRoaXMgaXMgdGhlIHVzdWFsIHdheSB0byBk
ZXN0cm95IGEgYml0bWFwLiBUaGUgbWVtb3J5IGlzIGZyZWVkIHdoZW4KICAgLS0gIHRoZXJlIGlz
IG5vIG1vcmUgcmVmZXJlbmNlCgogICBwcm9jZWR1cmUgQ3JlYXRlX0Zyb21fRGF0YSAoQml0bWFw
IDogICAgb3V0IEdka19CaXRtYXA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaW5k
b3cgOiBpbiAgICAgR2RrLldpbmRvdy5HZGtfV2luZG93OwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRGF0YSAgIDogaW4gICAgIFN0cmluZzsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdpZHRoICA6IGluICAgICBHaW50OwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSGVpZ2h0IDogaW4gICAgIEdpbnQpOwogICAtLSAgQ3JlYXRlIGEgYml0bWFwIGZyb20gZGF0
YSBpbiBYQk0gZm9ybWF0LgogICAtLSAgV2luZG93IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGRlZmF1
bHQgdmFsdWVzIGZvciB0aGUgbmV3IGJpdG1hcCwgY2FuIGJlCiAgIC0tICBudWxsIGluIHdoaWNo
IGNhc2UgdGhlIHJvb3Qgd2luZG93IGlzIHVzZWQuCiAgIC0tICBEYXRhIGlzIHRoZSBYQk0gZGF0
YS4KICAgLS0gIFdpZHRoIGlzIHRoZSB3aWR0aCBvZiB0aGUgbmV3IGJpdG1hcCBpbiBwaXhlbHMu
CiAgIC0tICBIZWlnaHQgaXMgdGhlIGhlaWdodCBvZiB0aGUgbmV3IGJpdG1hcCBpbiBwaXhlbHMu
Cgpwcml2YXRlCiAgIE51bGxfQml0bWFwIDogY29uc3RhbnQgR2RrX0JpdG1hcCA6PSBudWxsOwog
ICBwcmFnbWEgSW1wb3J0IChDLCBSZWYsICJnZGtfYml0bWFwX3JlZiIpOwogICBwcmFnbWEgSW1w
b3J0IChDLCBVbnJlZiwgImdka19iaXRtYXBfdW5yZWYiKTsKZW5kIEdkay5CaXRtYXA7Ci0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1w
IFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAg
ICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t
ICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0
ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0t
Ci0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAg
IC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l
cmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJv
c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90
aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3Ig
eW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0t
IGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSBy
ZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVy
IGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUg
ZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0t
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCgotLSAgPGRlc2NyaXB0aW9uPgotLQotLSAgVGhpcyBwYWNrYWdlIHBy
b3ZpZGVzIGFuIGludGVyZmFjZSB0byB0aGUgY29sb3IgaGFuZGxpbmcgZmFjaWxpdGllcyBpbgot
LSAgZ3RrKy4gSXQgaXMgYWJsZSB0byBoYW5kbGUgYW55IGtpbmQgb2YgdmlzdWFsIChtb25vY2hy
b21lLCBncmV5c2NhbGUsCi0tICBjb2xvciB3aXRoIGRpZmZlcmVudCBkZXB0aHMsIC4uLiksIGJ1
dCBwcm92aWRlcyBhIGNvbW1vbiBhbmQgZWFzeQotLSAgaW50ZXJmYWNlIGZvciBhbGwgb2YgdGhl
bS4KLS0gIFNvbWUgb2YgdGhlc2UgZnVuY3Rpb25zIGV4cGVjdCBhIENvbG9ybWFwLiBUaGVyZSBh
cmUgdHdvIHdheXMgeW91IGNhbgotLSAgZ2V0IHN1Y2ggYSBjb2xvcm1hcCwgZWl0aGVyIGEgc3lz
dGVtIGRlZmF1bHQgY29sb3JtYXAgb3IgYSBwZXItd2lkZ2V0Ci0tICBjb2xvcm1hcC4gSXQgaXMg
cmVjb21tZW5kZWQsIHVubGVzcyB5b3UgYXJlIHdyaXRpbmcgeW91ciBvd24gbmV3IHdpZGdldCwK
LS0gIHRvIGFsd2F5cyB1c2UgdGhlIHN5c3RlbSBkZWZhdWx0IENvbG9ybWFwLiBBbGwgdGhlIGZ1
bmN0aW9ucyB0byBnZXQKLS0gIHRoZXNlIGNvbG9ybWFwcyBhcmUgZm91bmQgaW4gR3RrLldpZGdl
dC4KLS0KLS0gIEdldHRpbmcgdGhlIFJlZC9HcmVlbi9CbHVlIGNvbXBvbmVudHMgY2FuIGJlIGRv
bmUgdGhyb3VnaCBQYXJzZSwgYW5kIGlzCi0tICBhY3R1YWxseSByZWNvbW1lbmRlZCwgc2luY2Ug
dGhlIGV4YWN0IGNvbG9yIGdlbmVyYWxseSBkZXBlbmRzIG9uIHRoZQotLSAgdmlzdWFsIHlvdXIg
YXBwbGljYXRpb24gaXMgcnVubmluZyBvbi4KLS0KLS0gIDwvZGVzY3JpcHRpb24+Ci0tICA8Y192
ZXJzaW9uPjEuMi42PC9jX3ZlcnNpb24+Cgp3aXRoIEdsaWI7IHVzZSBHbGliOwp3aXRoIEdkay5W
aXN1YWw7CgpwYWNrYWdlIEdkay5Db2xvciBpcwoKICAgdHlwZSBHZGtfQ29sb3IgaXMgcHJpdmF0
ZTsKICAgLS0gIEEgY29sb3IgdG8gYmUgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4uCiAgIC0tICBD
dXJyZW50bHksIEd0a0FkYSBvbmx5IHN1cHBvcnRzIHRoZSBSR0Igc3RhbmRhcmQsIGllIGVhY2gg
Y29sb3IgaXMKICAgLS0gIHNldCBieSBpdHMgcmVkLCBncmVlbiBhbmQgYmx1ZSBjb21wb25lbnRz
LgogICAtLSAgQW4gZXh0cmEgZmllbGQgKFBpeGVsKSBpcyB0aGUgaW50ZXJuYWwgcmVwcmVzZW50
YXRpb24gb2YgdGhlIGNvbG9yLAogICAtLSAgd2hpY2ggaXMgc2V0IG9uY2UgdGhlIGNvbG9yIGhh
cyBiZWVuIGFsbG9jYXRlZC4KCiAgIHR5cGUgR2RrX0NvbG9yX0FycmF5IGlzIGFycmF5IChOYXR1
cmFsIHJhbmdlIDw+KSBvZiBHZGtfQ29sb3I7CiAgIC0tICBBbiBhcnJheSBvZiBjb2xvcnMuCgog
ICBOdWxsX0NvbG9yIDogY29uc3RhbnQgR2RrX0NvbG9yOwogICAtLSAgTm8gY29sb3IuIEZvciBt
b3N0IGZ1bmN0aW9ucywgdGhpcyB3aWxsIHNlbGVjdCB0aGUgZGVmYXVsdCBjb2xvciBpbiB0aGUK
ICAgLS0gIGNvbnRleHQsIGFsdGhvdWdoIHRoaXMgZXhhY3Qgc3BlY2lmaWNhdGlvbiBkZXBlbmRz
IG9uIHRoZSBmdW5jdGlvbiB5b3UKICAgLS0gIHdhbnQgdG8gdXNlLgoKICAgdHlwZSBHZGtfQ29s
b3JtYXAgaXMgbmV3IENfUHJveHk7CiAgIC0tICBUaGUgc2V0IG9mIGNvbG9ycyB0aGUgY2FuIGJl
IGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuLgogICAtLSAgV2hlbiB0aGUgc2NyZWVuIGlzIG5vdCBh
IHRydWUtY29sb3Igc2NyZWVuIChpZSB0aGVyZSBpcyBvbmx5IGEgbGltaXRlZAogICAtLSAgbnVt
YmVyIG9mIHBvc3NpYmxlIGNvbG9ycywgbGlrZSAyNTYpLCB0aGUgY29sb3JzIGFyZSBpbiBmYWN0
IGluZGV4ZXMKICAgLS0gIGludG8gYSBjb2xvcm1hcCwgd2hpY2ggZ2l2ZXMgdGhlIGNvbXBvbmVu
dHMgb2YgdGhlIGNvbG9yLgogICAtLSAgVGhpcyBpcyB0aGUgc2FtZSBjb25jZXB0IGFzIGEgcGFs
ZXR0ZS4KCiAgIE51bGxfQ29sb3JtYXAgOiBjb25zdGFudCBHZGtfQ29sb3JtYXA7CgogICBXcm9u
Z19Db2xvciA6IGV4Y2VwdGlvbjsKICAgLS0gIEV4Y2VwdGlvbiByYWlzZWQgd2hlbiBzb21lIGZ1
bmN0aW9ucyBiZWxvdyBjb3VsZCBub3QgZmluZCBvciBhbGxvY2F0ZQogICAtLSAgYSBjb2xvciBv
biB0aGUgdXNlcidzIHN5c3RlbS4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogICAtLSBDcmVhdGluZyBhbmQgRGVzdHJveWluZyBjb2xvcnMgLS0KICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBQYXJzZSAoU3BlYyA6IGlu
IFN0cmluZykgcmV0dXJuIEdka19Db2xvcjsKICAgLS0gIFBhcnNlIHRoZSBzdHJpbmcgU3BlYywg
YW5kIGdldCBpdHMgUmVkL0dyZWVuL0JsdWUgY29tcG9uZW50cy4KICAgLS0gIFRoZSBjb2xvciBp
cyBub3QgYWxsb2NhdGVkLCBhbmQgeW91IG5lZWQgdG8gY2FsbCBBbGxvY19Db2xvci4KICAgLS0g
IElmIHRoZSBzdHJpbmcgY291bGQgbm90IGJlIHBhcnNlZCB0byBhbiBleGlzdGluZyBjb2xvciwg
V3JvbmdfQ29sb3IgaXMKICAgLS0gIHJhaXNlZC4KICAgLS0gIFRoZSBzdHJpbmcgY2FuIGJlIG9u
ZSBvZiA6CiAgIC0tCiAgIC0tICAtICJSQkc6RkYvRkYvRkYiIHdoZXJlIHRoZSAiRkYiIHN1YnN0
cmluZ3MgYXJlIHJlc3BlY3RpdmVseSB0aGUgdmFsdWUKICAgLS0gICAgb2YgdGhlIHJlZCwgZ3Jl
ZW4gYW5kIGJsdWUgY29tcG9uZW50cy4gU29tZSBvdGhlciBwcmVmaXhlcyB0aGFuIFJHQgogICAt
LSAgICBhcmUgZGVmaW5lZCBpbiB0aGUgWDExIGRlZmluaXRpb24sIHBsZWFzZSBzZWUgc29tZSBY
MTEgZG9jdW1lbnRhdGlvbgogICAtLSAgICAob3IgdGhlIG1hbiBwYWdlIFhQYXJzZUNvbG9yIG9u
IHVuaXggc3lzdGVtcykuCiAgIC0tCiAgIC0tICAtICJjb2xvcl9uYW1lIiB3aGljaCBjYW4gYmUg
YW55IGNvbG9yIG5hbWUgZGVmaW5lZCBpbiB0aGUgZmlsZSByZ2IudHh0CiAgIC0tICAgIG9mIHRo
ZSB1c2VyJ3Mgc3lzdGVtLiBZb3Ugc2hvdWxkIGFsd2F5cyBjaGVjayB0aGF0IFdyb25nX0NvbG9y
IHdhcyBub3QKICAgLS0gICAgcmFpc2VkLCBpbiBjYXNlIHRoZSBjb2xvciB3YXMgbm90IGtub3du
IG9uIHRoZSB1c2VyJ3Mgc3lzdGVtLiBUaGlzCiAgIC0tICAgIHN0cmluZyBpcyBjYXNlIGluc2Vu
c2l0aXZlLgoKICAgcHJvY2VkdXJlIEFsbG9jX0NvbG9yIChDb2xvcm1hcCAgIDogaW4gICAgIEdk
a19Db2xvcm1hcDsKICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciAgICAgIDogaW4gb3V0
IEdka19Db2xvcjsKICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZWFibGUgIDogaW4gICAg
IEJvb2xlYW4gOj0gRmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgQmVzdF9NYXRjaCA6
IGluICAgICBCb29sZWFuIDo9IFRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgU3VjY2Vz
cyAgICA6ICAgIG91dCBCb29sZWFuKTsKICAgLS0gIEFsbG9jYXRlIGEgbmV3IGNvbG9yLgogICAt
LSAgVGhlIGZpZWxkcyBSR0Igc2hvdWxkIGhhdmUgYmVlbiBzZXQgYmVmb3JlIGNhbGxpbmcgdGhp
cyBmdW5jdGlvbi4KICAgLS0gIElmIFdyaXRlYWJsZSBpcyBUcnVlLCB0aGUgY29sb3Igd2lsbCBi
ZSBhbGxvY2F0ZWQgcmVhZC93cml0ZSwgdGhhdCBjYW4KICAgLS0gIGJlIGNoYW5nZWQgYXQgYW55
IHRpbWUuIE5vdCBhbGwgdmlzdWFscyBzdXBwb3J0IHRoaXMuIE9uIG1vZGVybiBzeXN0ZW1zCiAg
IC0tICB0aGlzIHVzYWdlIGhhcyBiZWNvbWUgbGVzcyB1c2VmdWwgdGhhbiBiZWZvcmUsIHNpbmNl
IHJlZHJhd2luZyB0aGUKICAgLS0gIHNjcmVlbiB3aXRoIGEgbmV3IGNvbG9yIGlzIGFib3V0IGFz
IGZhc3QuCiAgIC0tICBJZiBCZXN0X01hdGNoIGlzIFRydWUsIGFuZCB0aGUgZXhhY3QgY29sb3Ig
Y2FuIG5vdCBiZSBhbGxvY2F0ZWQsIEd0a0FkYQogICAtLSAgd2lsbCBmaW5kIHRoZSBjbG9zZXN0
IHBvc3NpYmxlIG1hdGNoLCBhbmQgbW9kaWZ5IHRoZSBmaWVsZHMgUmVkLCBHcmVlbgogICAtLSAg
YW5kIEJsdWUgb2YgQ29sb3IuCiAgIC0tICBOb3RlIHRoYXQgdGhlIGFsbG9jYXRpb24gaGFzIG1v
cmUgY2hhbmNlcyB0byBzdWNjZWVkIGlmIFdyaXRlYWJsZSBpcwogICAtLSAgRmFsc2UgYW5kIEJl
c3RfTWF0Y2ggaXMgVHJ1ZS4KICAgLS0gIFdoZW4geW91IG5vIGxvbmdlciB1c2UgYSBjb2xvciwg
eW91IHNob3VsZCBjYWxsIEZyZWUuCgogICBwcm9jZWR1cmUgQWxsb2NfQ29sb3JzIChDb2xvcm1h
cCAgIDogaW4gICAgIEdka19Db2xvcm1hcDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29s
b3JzICAgICA6IGluIG91dCBHZGtfQ29sb3JfQXJyYXk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdyaXRlYWJsZSAgOiBpbiAgICAgQm9vbGVhbiA6PSBGYWxzZTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQmVzdF9NYXRjaCA6IGluICAgICBCb29sZWFuIDo9IFRydWU7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgOiAgICBvdXQgQm9vbGVhbl9BcnJheTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0ICAgICA6ICAgIG91dCBHaW50KTsKICAgLS0g
IEFsbG9jYXRlIGEgc2V0IG9mIGNvbG9ycy4KICAgLS0gIFRoZSBwYXJhbWV0ZXJzIGFyZSB0aGUg
c2FtZSBhcyBmb3IgQWxsb2NfQ29sb3IKICAgLS0gIFJlc3VsdCBpcyB0aGUgbnVtYmVyIG9mIGNv
bG9ycyBub3Qgc3VjY2Vzc2Z1bGx5IGFsbG9jYXRlZC4KICAgLS0KICAgLS0gIFRoZSBzaXplIG9m
IHRoZSBCb29sZWFuX0FycmF5IGlzIGVxdWFsIHRvIHRoZSBsZW5ndGggb2YgdGhlCiAgIC0tICBD
b2xvcnNfQXJyYXkuIFVzYWdlIG9mIGFuIGFycmF5IG9mIGEgZGlmZmVyZW50IHNpemUgd2lsbAog
ICAtLSAgcHJvYmFibHkgbGVhZCB0byBhIENvbnN0cmFpbnRfRXJyb3IuCgogICBwcm9jZWR1cmUg
QWxsb2MgKENvbG9ybWFwICA6IGluIEdka19Db2xvcm1hcDsKICAgICAgICAgICAgICAgICAgICBD
b2xvciAgICAgOiBpbiBvdXQgR2RrX0NvbG9yKTsKICAgLS0gIFNhbWUgZnVuY3Rpb24gYXMgQWxs
b2NfQ29sb3JzIGFib3ZlLCBidXQgZm9yIGEgc2luZ2xlIGNvbG9yLgogICAtLSAgVGhlIGNvbG9y
IGlzIGFsbG9jYXRlZCBub24td3JpdGVhYmxlLCBhbmQgdGhlIGJlc3QtbWF0Y2ggaXMgdGFrZW4u
CiAgIC0tICBSYWlzZXMgV3JvbmdfQ29sb3IgaWYgdGhlIGNvbG9yIGNvdWxkIG5vdCBiZSBhbGxv
Y2F0ZWQKCiAgIGZ1bmN0aW9uIFdoaXRlIChDb2xvcm1hcCAgOiBpbiBHZGtfQ29sb3JtYXApIHJl
dHVybiBHZGtfQ29sb3I7CiAgIC0tICBSZXR1cm4gdGhlIGRlZmF1bHQgd2hpdGUgY29sb3IgZm9y
IHRoZSBjb2xvcm1hcC4KICAgLS0gIElmIHRoaXMgY29sb3Igd2FzIG5vdCBmb3VuZCBvciBjb3Vs
ZCBub3QgYmUgYWxsb2NhdGVkLCBXcm9uZ19Db2xvciBpcwogICAtLSAgcmFpc2VkLgoKICAgZnVu
Y3Rpb24gQmxhY2sgKENvbG9ybWFwICA6IGluIEdka19Db2xvcm1hcCkgcmV0dXJuIEdka19Db2xv
cjsKICAgLS0gIFJldHVybiB0aGUgZGVmYXVsdCBibGFjayBjb2xvcnMgZm9yIHRoZSBjb2xvcm1h
cC4KICAgLS0gIElmIHRoaXMgY29sb3IgaXMgbm90IGZvdW5kIG9yIGNvdWxkIG5vdCBiZSBhbGxv
Y2F0ZWQsIFdyb25nX0NvbG9yIGlzCiAgIC0tICByYWlzZWQuCgogICBmdW5jdGlvbiBHZXRfU3lz
dGVtIHJldHVybiBHZGtfQ29sb3JtYXA7CiAgIC0tICBHZXQgdGhlIGRlZmF1bHQgY29sb3JtYXAg
Zm9yIHRoZSBzeXN0ZW0uCiAgIC0tICBUaGlzIGlzIHRoZSBzYW1lIGZ1bmN0aW9uIGFzIEd0ay5X
aWRnZXQuR2V0X0RlZmF1bHRfQ29sb3JtYXAuCgogICBwcm9jZWR1cmUgR2V0X1Zpc3VhbCAoQ29s
b3JtYXAgOiBpbiAgICAgR2RrX0NvbG9ybWFwOwogICAgICAgICAgICAgICAgICAgICAgICAgVmlz
dWFsICAgOiAgICBvdXQgR2RrLlZpc3VhbC5HZGtfVmlzdWFsKTsKICAgLS0gIEdldCB0aGUgdmlz
dWFsIGFzc29jaWF0ZWQgd2l0aCBhIGNvbG9ybWFwLgogICAtLSAgVGhlIG1haW4gaW5mb3JtYXRp
b24geW91IGNhbiBnZXQgZnJvbSB0aGVyZSBpcyB0aGUgZGVwdGggb2YgdGhlIGRpc3BsYXkuCgog
ICBwcm9jZWR1cmUgR2RrX05ldyAoQ29sb3JtYXAgICAgIDogICAgb3V0IEdka19Db2xvcm1hcDsK
ICAgICAgICAgICAgICAgICAgICAgIFZpc3VhbCAgICAgICA6IGluICAgICBHZGsuVmlzdWFsLkdk
a19WaXN1YWw7CiAgICAgICAgICAgICAgICAgICAgICBQcml2YXRlX0NtYXAgOiBpbiAgICAgQm9v
bGVhbik7CiAgIC0tICBDcmVhdGUgYSBuZXcgY29sb3JtYXAgZm9yIHRoZSB2aXN1YWwuCiAgIC0t
ICBJZiBQcml2YXRlX0NtYXAgaXMgdHJ1ZSwgdGhlbiB0aGUKICAgLS0gIGNvbG9ybWFwIHdvbid0
IGJlIG1vZGlmaWFibGUgb3V0c2lkZSB0aGlzIHNjb3BlLiBUaGlzIG1pZ2h0IHJlc3VsdCBpbgog
ICAtLSAgc29tZSBzdHJhbmdlIGNvbG9ycyBvbiB0aGUgZGlzcGxheS4uLgoKICAgcHJvY2VkdXJl
IFVucmVmIChDb2xvcm1hcCA6IGluIEdka19Db2xvcm1hcCk7CiAgIC0tICBVbnJlZiBpcyB0aGUg
b25seSB3YXkgdG8gZGVzdHJveSBhIGNvbG9ybWFwIG9uY2UgeW91IG5vIGxvbmdlciBuZWVkIGl0
LgogICAtLSAgTm90ZSB0aGF0IGJlY2F1c2UgZ3RrKyB1c2VzIHJlZmVyZW5jZSBjb3VudHMsIHRo
ZSBjb2xvcm1hcCB3aWxsIG5vdAogICAtLSAgYmUgYWN0dWFsbHkgZGVzdHJveWVkIHdoaWxlIGF0
IGxlYXN0IG9uZSBvYmplY3QgaXMgdXNpbmcgaXQuCgogICBwcm9jZWR1cmUgUmVmIChDb2xvcm1h
cCA6IGluIEdka19Db2xvcm1hcCk7CiAgIC0tICBJbmNyZW1lbnQgdGhlIHJlZi1jb3VudCBmb3Ig
dGhlIGNvbG9yLgogICAtLSAgWW91IHNob3VsZCBub3QgaGF2ZSB0byB1c2UgdGhpcyBmdW5jdGlv
bi4KCiAgIGZ1bmN0aW9uIEdldF9TeXN0ZW1fU2l6ZSByZXR1cm4gR2ludDsKICAgLS0gIFJldHVy
biB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGRlZmF1bHQgY29sb3JtYXAgb24gdGhlIHN5
c3RlbS4KCiAgIHByb2NlZHVyZSBGcmVlX0NvbG9ycyAoQ29sb3JtYXAgOiBpbiBHZGtfQ29sb3Jt
YXA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3JzICAgOiBpbiBHZGtfQ29sb3JfQXJy
YXkpOwogICAtLSAgRnJlZSBDb2xvcnMsIGFzc3VtaW5nIHRoZXkgYXJlIGFsbG9jYXRlZCBpbiBD
b2xvcm1hcC4KCiAgIHByb2NlZHVyZSBTdG9yZSAoQ29sb3JtYXAgOiBpbiBHZGtfQ29sb3JtYXA7
CiAgICAgICAgICAgICAgICAgICAgQ29sb3JzICAgOiBpbiBHZGtfQ29sb3JfQXJyYXkpOwogICAt
LSAgU3RvcmUgdGhlIENvbG9ycyBpbiB0aGUgQ29sb3JtYXAKCiAgIHByb2NlZHVyZSBBbGxvYyAo
Q29sb3JtYXAgICA6IGluIEdka19Db2xvcm1hcDsKICAgICAgICAgICAgICAgICAgICBDb250aWd1
b3VzIDogaW4gQm9vbGVhbjsKICAgICAgICAgICAgICAgICAgICBQbGFuZXMgICAgIDogaW4gICAg
IEd1bG9uZ19BcnJheTsKICAgICAgICAgICAgICAgICAgICBQaXhlbHMgICAgIDogaW4gICAgIEd1
bG9uZ19BcnJheTsKICAgICAgICAgICAgICAgICAgICBTdWNjZWVkZWQgIDogICAgb3V0IEJvb2xl
YW4pOwogICAtLSAgQWxsb2NhdGUgc29tZSBSZWFkL1dyaXRlIGNvbG9yIGNlbGxzLgogICAtLSAg
Q29sb3IgY2VsbHMnIHZhbHVlcyBjYW4gYmUgY2hhbmdlZAogICAtLSAgZHluYW1pY2FsbHkuIFRo
ZSBwaXhlbHMgYWxsb2NhdGVkIGFyZSByZXR1cm5lZCBpbiBQaXhlbHMuCiAgIC0tICBTZWUgWEFs
bG9jQ29sb3JDZWxscygzKSBvbiBVbml4IHN5c3RlbXMuCiAgIC0tICBUaGUgUGxhbmVzIHBhcmFt
ZXRlciBjYW4gYmUgdXNlZCB0byBub25kZXN0cnVjdGl2ZWx5IG92ZXJsYXkgb25lCiAgIC0tICBz
ZXQgb2YgZ3JhcGhpY3Mgb3ZlciBhbm90aGVyLiBTZWUgdGhlIFgxMSBtYW51YWwgZm9yIG1vcmUg
aW5mby4KICAgLS0gIE5vdGUgdGhhdCB0aGlzIGlzIGEgbG93LWxldmVsIGZ1bmN0aW9uIHdoaWNo
IHlvdSBzaG91bGQgcmFyZWx5CiAgIC0tICBoYXZlIHRvIHVzZS4KCiAgIHByb2NlZHVyZSBGcmVl
IChDb2xvcm1hcCA6IGluIEdka19Db2xvcm1hcDsKICAgICAgICAgICAgICAgICAgIFBpeGVscyAg
IDogaW4gR3Vsb25nX0FycmF5OwogICAgICAgICAgICAgICAgICAgUGxhbmVzICAgOiBpbiBHdWxv
bmcpOwogICAtLSAgRnJlZSBzb21lIGNvbG9ycyBpbiB0aGUgY29sb3JtYXAuCiAgIC0tICBTZWUg
WEZyZWVDb2xvcnMoMykgb24gVW5peCBzeXN0ZW1zLgoKICAgLS0gIDxkb2NfaWdub3JlPgogICBm
dW5jdGlvbiBIYXNoIChDb2xvcl9BIDogaW4gR2RrX0NvbG9yOwogICAgICAgICAgICAgICAgICBD
b2xvcl9CIDogaW4gR2RrX0NvbG9yKSByZXR1cm4gR3VpbnQ7CiAgIC0tICBSZXR1cm4gYSBoYXNo
IGNvZGUgZm9yIENvbG9yX0EuCiAgIC0tICBUaGlzIHNlZW1zIHRvIGJlIGEgaW50ZXJuYWwgZnVu
Y3Rpb24gZm9yIGd0aysgb25seS4KICAgLS0gIDwvZG9jX2lnbm9yZT4KCiAgIHByb2NlZHVyZSBD
aGFuZ2UgKENvbG9ybWFwICA6IGluIEdka19Db2xvcm1hcDsKICAgICAgICAgICAgICAgICAgICAg
Q29sb3IgICAgIDogaW4gb3V0IEdka19Db2xvcjsKICAgICAgICAgICAgICAgICAgICAgU3VjY2Vl
ZGVkIDogICAgb3V0IEJvb2xlYW4pOwogICAtLSAgQ2hhbmdlIHRoZSBSZWFkL1dyaXRlIGNvbG9y
bWFwIGNlbGwgY29ycmVzcG9uZGluZyB0byBDb2xvci4KICAgLS0gIFRoZSBuZXcgdmFsdWUgaXMg
dGhlIG9uZSBjb250YWluZWQgaW4gdGhlIFJlZCwgR3JlZW4gYW5kIEJsdWUKICAgLS0gIGZpZWxk
cyBvZiBDb2xvci4KCiAgIHByb2NlZHVyZSBDaGFuZ2UgKENvbG9ybWFwIDogaW4gR2RrX0NvbG9y
bWFwOwogICAgICAgICAgICAgICAgICAgICBOY29sb3JzICA6IGluIEdpbnQpOwogICAtLSAgQ2hh
bmdlcyB0aGUgZmlyc3QgTmNvbG9ycyBkZWZpbmVkIGluIENvbG9ybWFwLgoKICAgcHJvY2VkdXJl
IENvcHkgKFNvdXJjZSAgICAgIDogaW4gICAgIEdka19Db2xvcjsKICAgICAgICAgICAgICAgICAg
IERlc3RpbmF0aW9uIDogICAgb3V0IEdka19Db2xvcik7CiAgIC0tICBDb3B5IHRoZSBTb3VyY2Ug
Y29sb3IgdG8gRGVzdGluYXRpb24uCgogICBmdW5jdGlvbiBFcXVhbCAoQ29sb3JhLCBDb2xvcmIg
OiBpbiBHZGtfQ29sb3IpIHJldHVybiBCb29sZWFuOwogICAtLSAgVHJ1ZSBpZiB0aGUgUmVkLCBH
cmVlbiBhbmQgQmx1ZSBjb21wb25lbnRzIG9mIGJvdGggY29sb3JzIGFyZSBlcXVhbC4KCiAgIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBTZXR0aW5n
L0dldHRpbmcgdGhlIGZpZWxkcyBvZiBHZGtfQ29sb3IgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X1JnYiAoQ29sb3Ig
ICA6IG91dCBHZGtfQ29sb3I7CiAgICAgICAgICAgICAgICAgICAgICBSZWQsIEdyZWVuLCBCbHVl
IDogaW4gR3VzaG9ydCk7CiAgIC0tICBNb2RpZnkgdGhlIGZpZWxkcyBvZiB0aGUgY29sb3IuCiAg
IC0tICBZb3UgdGhlbiBoYXZlIHRvIGFsbG9jYXRlIHRoZSBjb2xvciB3aXRoIG9uZSBvZiB0aGUg
QWxsb2MqIGZ1bmN0aW9ucwogICAtLSAgYWJvdmUuCgogICBwcm9jZWR1cmUgU2V0X1BpeGVsIChD
b2xvciA6IGluIG91dCBHZGtfQ29sb3I7IFBpeGVsIDogR3Vsb25nKTsKICAgLS0gIFRoaXMgZnVu
Y3Rpb24gc2hvdWxkIGFsbW9zdCBuZXZlciBiZSB1c2VkLiBJbnN0ZWFkLCB1c2UgQWxsb2NfQ29s
b3IKCiAgIGZ1bmN0aW9uIFJlZCAoQ29sb3IgOiBpbiBHZGtfQ29sb3IpIHJldHVybiBHdXNob3J0
OwogICAtLSAgUmV0dXJuIHRoZSBSZWQgZmllbGQgb2YgQ29sb3IuCgogICBmdW5jdGlvbiBHcmVl
biAoQ29sb3IgOiBpbiBHZGtfQ29sb3IpIHJldHVybiBHdXNob3J0OwogICAtLSAgUmV0dXJuIHRo
ZSBHcmVlbiBmaWVsZCBvZiBDb2xvci4KCiAgIGZ1bmN0aW9uIEJsdWUgKENvbG9yIDogaW4gR2Rr
X0NvbG9yKSByZXR1cm4gR3VzaG9ydDsKICAgLS0gIFJldHVybiB0aGUgQmx1ZSBmaWVsZCBvZiBD
b2xvci4KCiAgIGZ1bmN0aW9uIFBpeGVsIChDb2xvciA6IGluIEdka19Db2xvcikgcmV0dXJuIEd1
bG9uZzsKICAgLS0gIFJldHVybiB0aGUgUGl4ZWwgZmllbGQgb2YgQ29sb3IuCgpwcml2YXRlCiAg
IE51bGxfQ29sb3JtYXAgOiBjb25zdGFudCBHZGtfQ29sb3JtYXAgOj0gbnVsbDsKCiAgIHR5cGUg
R2RrX0NvbG9yIGlzCiAgICAgIHJlY29yZAogICAgICAgICBQaXhlbCA6IEd1bG9uZzsKICAgICAg
ICAgUmVkICAgOiBHdXNob3J0OwogICAgICAgICBHcmVlbiA6IEd1c2hvcnQ7CiAgICAgICAgIEJs
dWUgIDogR3VzaG9ydDsKICAgICAgZW5kIHJlY29yZDsKICAgLS0gIFRoZSBmaWVsZHMgYXJlIHRv
IGJlIGNob3NlbiBiZXR3ZWVuIDAgYW5kIDY1NTM1LCBub3QgMCBhbmQgMjU1ISEhCgogICBOdWxs
X0NvbG9yIDogY29uc3RhbnQgR2RrX0NvbG9yIDo9IChHdWxvbmcnTGFzdCwgMSwgMCwgMCk7CiAg
IC0tICBOb3RlOiBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgR3RrQWRhLCBldmVyeXRpbWUgYSBj
b2xvciBpcyB1c2VkLCBpdAogICAtLSAgaXMgaW1wb3J0YW50IHRvIHRlc3Qgd2hldGhlciB0aGlz
IGlzIE51bGxfQ29sb3Igb3Igbm90LiBJZiBpdCBpcywgdGhlbgogICAtLSAgU3lzdGVtLk51bGxf
QWRkcmVzcyBzaG91bGQgYmUgcGFzc2VkIHRvIEMgaW5zdGVhZCBvZiBOdWxsX0NvbG9yJ0FkZHJl
c3MKICAgLS0gIHNvIHRoYXQgZ3RrKyBjYW4gcHJvdmlkZSBhIGRlZmF1bHQgdmFsdWUgZm9yIGNv
bG9ycy4KCiAgIHByYWdtYSBJbmxpbmUgKFNldF9SZ2IpOwogICBwcmFnbWEgSW5saW5lIChTZXRf
UGl4ZWwpOwogICBwcmFnbWEgSW5saW5lIChSZWQpOwogICBwcmFnbWEgSW5saW5lIChHcmVlbik7
CiAgIHByYWdtYSBJbmxpbmUgKEJsdWUpOwogICBwcmFnbWEgSW5saW5lIChQaXhlbCk7CiAgIHBy
YWdtYSBJbXBvcnQgKEMsIEdldF9TeXN0ZW1fU2l6ZSwgImdka19jb2xvcm1hcF9nZXRfc3lzdGVt
X3NpemUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X1N5c3RlbSwgImdka19jb2xvcm1hcF9n
ZXRfc3lzdGVtIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFJlZiwgImdka19jb2xvcm1hcF9yZWYi
KTsKICAgcHJhZ21hIEltcG9ydCAoQywgVW5yZWYsICJnZGtfY29sb3JtYXBfdW5yZWYiKTsKZW5k
IEdkay5Db2xvcjsKCi0tICA8ZXhhbXBsZT4KLS0gIC0tICBIZXJlIGlzIGFuIGV4YW1wbGUgaG93
IHlvdSBjYW4gYWxsb2NhdGUgYSBuZXcgY29sb3IsIHdoZW4geW91IGtub3cKLS0gIC0tICBpdHMg
cmVkL2dyZWVuL2JsdWUgY29tcG9uZW50czogTm90ZSB0aGF0IHdlIGFsbG9jYXRlIHdoaXRlIGlu
IGZhY3QKLS0gIC0tICBzaW5jZSB0aGUgbWF4aW1hbCB2YWx1ZSBmb3IgY29sb3IgY29tcG9uZW50
cyBpcyA2NTUzNS4KLS0gICAgIENvbG9yICAgOiBHZGtfQ29sb3I7Ci0tICAgICBTdWNjZXNzIDog
Qm9vbGVhbjsKLS0gICAgIFNldF9SYmcgKENvbG9yLCA2NTUzNSwgNjU1MzUsIDY1NTM1KTsKLS0g
ICAgIEFsbG9jX0NvbG9yIChDb2xvcm1hcCAgID0+IEd0ay5XaWRnZXQuR2V0X0RlZmF1bHRfQ29s
b3JtYXAsCi0tICAgICAgICAgICAgICAgICAgQ29sb3IgICAgICA9PiBDb2xvciwKLS0gICAgICAg
ICAgICAgICAgICBXcml0ZWFibGUgID0+IEZhbHNlLAotLSAgICAgICAgICAgICAgICAgIEJlc3Rf
TWF0Y2ggPT4gVHJ1ZSwKLS0gICAgICAgICAgICAgICAgICBTdWNjZXNzICAgID0+IFN1Y2Nlc3Mp
OwotLSAgICAgaWYgbm90IFN1Y2Nlc3MgdGhlbgotLSAgICAgICAgIC4uLjsgIC0tICBhbGxvY2F0
aW9uIGZhaWxlZAotLSAgICAgZW5kIGlmOwotLSAgPC9leGFtcGxlPgotLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotLSAgICAgICAgICBHdGtBZGEgLSBBZGE5NSBiaW5kaW5nIGZvciB0aGUgR2ltcCBUb29sa2l0
ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgIENv
cHlyaWdodCAoQykgMTk5OC0yMDAwICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAg
RW1tYW51ZWwgQnJpb3QsIEpvZWwgQnJvYmVja2VyIGFuZCBBcm5hdWQgQ2hhcmxldCAgICAgICAg
ICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAgICAtLQotLSBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAgICAgICAtLQotLSBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg
ICAgICAtLQotLSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgICAtLQotLSBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZiAgICAtLQotLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVSAtLQotLSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQot
LSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs
aWMgICAgICAgICAtLQotLSBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSAgICAgICAgICAgICAtLQotLSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgICAgICAtLQotLSBCb3N0b24sIE1B
IDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt
LQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCBpZiBvdGhlciBmaWxl
cyBpbnN0YW50aWF0ZSBnZW5lcmljcyBmcm9tICAtLQotLSB0aGlzIHVuaXQsIG9yIHlvdSBsaW5r
IHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzIHRvIHByb2R1Y2UgYW4gICAtLQotLSBleGVjdXRh
YmxlLCB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkgaXRzZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5n
ICAtLQotLSBleGVjdXRhYmxlIHRvIGJlIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlLiBUaGlzICAtLQotLSBleGNlcHRpb24gZG9lcyBub3QgaG93ZXZlciBpbnZhbGlk
YXRlIGFueSBvdGhlciByZWFzb25zIHdoeSB0aGUgICAtLQotLSBleGVjdXRhYmxlIGZpbGUgIG1p
Z2h0IGJlIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAgICAtLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQoKLS0gIDxkZXNjcmlwdGlvbj4KLS0gIFRoaXMgcGFja2FnZSBwcm92aWRlcyB0aGUg
Y2FwYWJpbGl0eSB0byBjcmVhdGUgcHJlZGVmaW5lZCBtb3VzZSBjdXJzb3JzCi0tICBhcyB3ZWxs
IGFzIHVzZXIgZGVmaW5lZCBvbmVzLgotLSAgPC9kZXNjcmlwdGlvbj4KLS0gIDxjX3ZlcnNpb24+
MS4yLjg8L2NfdmVyc2lvbj4KCndpdGggR2xpYjsKd2l0aCBHZGsuVHlwZXM7CndpdGggR2RrLkNv
bG9yOwoKcGFja2FnZSBHZGsuQ3Vyc29yIGlzCgogICB0eXBlIEdka19DdXJzb3IgaXMgbmV3IEdk
ay5DX1Byb3h5OwogICBOdWxsX0N1cnNvciA6IGNvbnN0YW50IEdka19DdXJzb3I7CgogICBwcm9j
ZWR1cmUgR2RrX05ldwogICAgIChXaWRnZXQgICAgICA6IG91dCBHZGtfQ3Vyc29yOwogICAgICBD
dXJzb3JfVHlwZSA6IGluICBHZGsuVHlwZXMuR2RrX0N1cnNvcl9UeXBlKTsKICAgLS0gIENyZWF0
ZSBhIG5ldyBzdGFuZGFyZCBjdXJzb3IuCgogICBwcm9jZWR1cmUgR2RrX05ldwogICAgIChXaWRn
ZXQgOiBvdXQgR2RrX0N1cnNvcjsKICAgICAgU291cmNlIDogaW4gR2RrLkdka19QaXhtYXA7CiAg
ICAgIE1hc2sgICA6IGluIEdkay5HZGtfUGl4bWFwOwogICAgICBGZyAgICAgOiBpbiBHZGsuQ29s
b3IuR2RrX0NvbG9yOwogICAgICBCZyAgICAgOiBpbiBHZGsuQ29sb3IuR2RrX0NvbG9yOwogICAg
ICBYICAgICAgOiBpbiBHbGliLkdpbnQ7CiAgICAgIFkgICAgICA6IGluIEdsaWIuR2ludCk7CiAg
IC0tICBDcmVhdGUgYSBuZXcgY3Vyc29yIGZyb20gYSBnaXZlbiBwaXhtYXAgYW5kIG1hc2suCiAg
IC0tICBCb3RoIHRoZSBwaXhtYXAgYW5kIG1hc2sgbXVzdCBoYXZlIGEgZGVwdGggb2YgMSAoaS5l
LiBlYWNoIHBpeGVsIGhhcwogICAtLSAgb25seSAyIHZhbHVlcyAtIG9uIG9yIG9mZikuIFRoZSBz
dGFuZGFyZCBjdXJzb3Igc2l6ZSBpcyAxNiBieSAxNiBwaXhlbHMuCiAgIC0tICAgLSBTb3VyY2Ug
aXMgdGhlIHBpeG1hcCBzcGVjaWZ5aW5nIHRoZSBjdXJzb3IuCiAgIC0tICAgLSBNYXNrIGlzIHRo
ZSBwaXhtYXAgc3BlY2lmeWluZyB0aGUgbWFzaywgd2hpY2ggbXVzdCBiZSB0aGUgc2FtZSBzaXpl
CiAgIC0tICAgYXMgc291cmNlLgogICAtLSAgIC0gRmcgaXMgdGhlIGZvcmVncm91bmQgY29sb3Is
IHVzZWQgZm9yIHRoZSBiaXRzIGluIHRoZSBzb3VyY2Ugd2hpY2ggYXJlCiAgIC0tICAgZW5hYmxl
ZC4gVGhlIGNvbG9yIGRvZXMgbm90IGhhdmUgdG8gYmUgYWxsb2NhdGVkIGZpcnN0LgogICAtLSAg
IC0gQmcgaXMgdGhlIGJhY2tncm91bmQgY29sb3IsIHVzZWQgZm9yIHRoZSBiaXRzIGluIHRoZSBz
b3VyY2Ugd2hpY2ggYXJlCiAgIC0tICAgZGlzYWJsZWQuIFRoZSBjb2xvciBkb2VzIG5vdCBoYXZl
IHRvIGJlIGFsbG9jYXRlZCBmaXJzdC4KICAgLS0gICAtIFggaXMgdGhlIGhvcml6b250YWwgb2Zm
c2V0IG9mIHRoZSAnaG90c3BvdCcgb2YgdGhlIGN1cnNvci4KICAgLS0gICAtIFkgaXMgdGhlIHZl
cnRpY2FsIG9mZnNldCBvZiB0aGUgJ2hvdHNwb3QnIG9mIHRoZSBjdXJzb3IuCgogICBwcm9jZWR1
cmUgRGVzdHJveSAoQ3Vyc29yIDogaW4gR2RrX0N1cnNvcik7CiAgIC0tICBEZXN0cm95IGEgY3Vy
c29yLCBmcmVlaW5nIGFueSByZXNvdXJjZXMgYWxsb2NhdGVkIGZvciBpdC4KCnByaXZhdGUKICAg
TnVsbF9DdXJzb3IgOiBjb25zdGFudCBHZGtfQ3Vyc29yIDo9IG51bGw7CiAgIHByYWdtYSBJbXBv
cnQgKEMsIERlc3Ryb3ksICJnZGtfY3Vyc29yX2Rlc3Ryb3kiKTsKZW5kIEdkay5DdXJzb3I7Ci0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBH
aW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAg
ICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTE5OTkgICAgICAgICAgICAgICAgICAgICAgIC0t
Ci0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFy
bGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAg
IC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0t
IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlm
IG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwg
b3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0t
Ci0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRo
ZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dl
dmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFi
bGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAg
IC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCgotLSAgPGRlc2NyaXB0aW9uPgotLSAgVGhpcyBwYWNrYWdlIHBy
b3ZpZGVzIGZ1bmN0aW9ucyBkZWFsaW5nIHdpdGggZXZlbnRzIGZyb20gdGhlIHdpbmRvdyBzeXN0
ZW0uCi0tICBJbiBHdGtBZGEgYXBwbGljYXRpb25zLCB0aGUgZXZlbnRzIGFyZSBoYW5kbGVkIGF1
dG9tYXRpY2FsbHkgaW4KLS0gIEd0ay5NYWluLkRvX0V2ZW50LCBhbmQgcGFzc2VkIG9uIHRvIHRo
ZSBhcHByb3ByaWF0ZSB3aWRnZXRzLCBzbyB0aGVzZQotLSAgZnVuY3Rpb25zIGFyZSByYXJlbHkg
bmVlZGVkLgotLQotLSAgISEgV2FybmluZyAhISBUaGlzIGlzIG9uZSBvZiB0aGUgb25seSBwYWNr
YWdlIHRoYXQgcmVxdWlyZXMgbWFudWFsCi0tICBtZW1vcnkgbWFuYWdlbWVudCBpbiBzb21lIGNh
c2VzLiBJZiB5b3UgdXNlIHRoZSBmdW5jdGlvbiBBbGxvY2F0ZSwKLS0gIHlvdSBoYXZlIHRvIHVz
ZSB0aGUgZnVuY3Rpb24gRnJlZSB0b28uLi4KLS0gIDwvZGVzY3JpcHRpb24+Cgp3aXRoIFN5c3Rl
bTsKd2l0aCBHbGliOyB1c2UgR2xpYjsKd2l0aCBHZGsuUmVjdGFuZ2xlOwp3aXRoIEdkay5UeXBl
czsKd2l0aCBHZGsuV2luZG93OwoKcGFja2FnZSBHZGsuRXZlbnQgaXMKCiAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSAgRGVmaW5pdGlvbiBvZiB0aGUgdHlwZXMgLS0KICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICB0eXBlIEdka19FdmVudCBpcyBuZXcg
R2RrLkNfUHJveHk7CgogICBzdWJ0eXBlIEdka19FdmVudF9BbnkgaXMgR2RrX0V2ZW50OwogICAt
LSAgQ2hhbmdlIGZyb20gR3RrQWRhMS4yLjM6IFRoZXJlIGlzIG5vIGxvbmdlciBhIHRhZ2dlZCB0
eXBlCiAgIC0tICBoaWVyYXJjaHksIG9ubHkgb25lIHR5cGUuCiAgIC0tICBIb3dldmVyIHRoZXJl
IGFyZSBub3cgYSBmZXcgcnVudGltZSB0ZXN0cyBmb3IgZWFjaCBvZiB0aGUKICAgLS0gIGZ1bmN0
aW9uLCB0byBjaGVjayB3aGV0aGVyIGEgZ2l2ZW4gZmllbGQgaXMgYXZhaWxhYmxlIG9yIG5vdC4K
ICAgLS0KICAgLS0gIEZpZWxkcyBjb21tb24gdG8gYWxsIGV2ZW50czogV2luZG93LCBTZW5kX0V2
ZW50LCBFdmVudF9UeXBlCgogICBzdWJ0eXBlIEdka19FdmVudF9CdXR0b24gaXMgR2RrX0V2ZW50
OwogICAtLSAgQSBidXR0b24gd2FzIHByZXNzZWQgb3IgcmVsZWFzZS4gUmVsZXZhbnQgZmllbGRz
OgogICAtLSAgVGltZSwgWCwgWSwgUHJlc3N1cmUsIFh0aWx0LCBZdGlsdCwgU3RhdGUsIEJ1dHRv
biwgU291cmNlLAogICAtLSAgRGV2aWNlX0lkLCBYX1Jvb3QsIFlfUm9vdCwgV2luZG93LgogICAt
LSAgVHlwZTogQnV0dG9uX1ByZXNzLCBHZGtfMkJ1dHRvbl9QcmVzcywgR2RrXzNCdXR0b25fUHJl
c3Mgb3IKICAgLS0gIEJ1dHRvbl9SZWxlYXNlLgoKICAgc3VidHlwZSBHZGtfRXZlbnRfQ29uZmln
dXJlIGlzIEdka19FdmVudDsKICAgLS0gIFRoZSB3aW5kb3cgY29uZmlndXJhdGlvbiBoYXMgY2hh
bmdlZDogZWl0aGVyIGl0IHdhcyByZW1hcHBlZCwKICAgLS0gIHJlc2l6ZWQsIG1vdmVkLCAuLi4K
ICAgLS0gIE5vdGUgdGhhdCB5b3UgdXN1YWxseSBkb24ndCBoYXZlIHRvIHJlZHJhdyB5b3VyIHdp
bmRvdyB3aGVuIHlvdQogICAtLSAgcmVjZWl2ZSBzdWNoIGFuIGV2ZW50LCBzaW5jZSBpdCBpcyBm
b2xsb3dlZCBieSBhbiBHZGtfRXZlbnRfRXhwb3NlLgogICAtLSAgUmVsZXZhbnQgZmllbGRzOiBY
LCBZLCBXaWR0aCwgSGVpZ2h0CiAgIC0tICBUeXBlOiBDb25maWd1cmUKCiAgIHN1YnR5cGUgR2Rr
X0V2ZW50X0Nyb3NzaW5nIGlzIEdka19FdmVudDsKICAgLS0gIFRoZSBtb3VzZSBoYXMgYmVlbiBt
b3ZlZCBpbiBvciBvdXQgb2YgdGhlIHdpbmRvdwogICAtLSAgUmVsZXZhbnQgZmllbGRzOiBUaW1l
LCBTdWJXaW5kb3csIFgsIFksIFhfUm9vdCwgWV9Sb290LCBNb2RlLAogICAtLSAgRGV0YWlsLCBG
b2N1cywgU3RhdGUKICAgLS0gIFR5cGU6IEVudGVyX05vdGlmeSwgTGVhdmVfTm90aWZ5CgogICBz
dWJ0eXBlIEdka19FdmVudF9FeHBvc2UgaXMgR2RrX0V2ZW50OwogICAtLSAgVGhlIHdpbmRvdyBu
ZWVkcyB0byBiZSByZWRyYXduLiBGb3IgZWZmaWNpZW5jeSwgZ3RrIGdpdmVzIHlvdSB0aGUKICAg
LS0gIHNtYWxsZXN0IGFyZWEgdGhhdCB5b3UgbmVlZCB0byByZWRyYXcKICAgLS0gIFJlbGV2YW50
IGZpZWxkczogQXJlYSwgQ291bnQsIEdyYXBoaWNzX0V4cG9zZQogICAtLSAgVHlwZTogRXhwb3Nl
CgogICBzdWJ0eXBlIEdka19FdmVudF9Ob19FeHBvc2UgaXMgR2RrX0V2ZW50OwogICAtLSAgSW5k
aWNhdGUgdGhhdCB0aGUgc291cmNlIHJlZ2lvbiB3YXMgY29tcGxldGVseSBhdmFpbGFibGUgd2hl
biBwYXJ0cyBvZgogICAtLSAgYSBkcmF3YWJsZSB3ZXJlIGNvcGllZC4KICAgLS0gIFRoaXMgaXMg
YWxzbyBlbWl0dGVkIHdoZW4gYSBnYyB3aG9zZSAiZXhwb3N1cmVzIiBhdHRyaWJ1dGUgaXMgc2V0
IHRvCiAgIC0tICBGYWxzZSBpbiBhIGNhbGwgdG8gQ29weV9BcmVhIG9yIERyYXdfUGl4bWFwLiBT
ZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yCiAgIC0tICBHZGsuR0MuU2V0X0V4cG9zdXJlcy4KICAg
LS0gIE5vIFJlbGV2ZW50IGZpZWxkcyBleGNlcHQgdGhlIGNvbW1vbiBvbmVzCiAgIC0tICBUeXBl
OiBOb19FeHBvc2UKCiAgIHN1YnR5cGUgR2RrX0V2ZW50X0ZvY3VzIGlzIEdka19FdmVudDsKICAg
LS0gIFRoZSBmb2N1cyBoYXMgY2hhbmdlZCBmb3IgYSB3aW5kb3cuCiAgIC0tICBSZWxldmFudCBm
aWVsZHM6IGluCiAgIC0tICBUeXBlOiBGb2N1c19DaGFuZ2UKCiAgIHN1YnR5cGUgR2RrX0V2ZW50
X01vdGlvbiBpcyBHZGtfRXZlbnQ7CiAgIC0tICBUaGUgbW91c2UgaGFzIG1vdmVkCiAgIC0tICBS
ZWxldmFudCBmaWVsZHM6IFRpbWUsIFgsIFksIFByZXNzdXJlLCBYdGlsdCwgWXRpbHQsIFN0YXRl
LAogICAtLSAgSXNfSGludCwgU291cmNlLCBEZXZpY2VfSWQsIFhfUm9vdCwgWV9Sb290CiAgIC0t
ICBUeXBlOiBNb3Rpb25fTm90aWZ5CgogICBzdWJ0eXBlIEdka19FdmVudF9LZXkgaXMgR2RrX0V2
ZW50OwogICAtLSAgQSBrZXlib2FyZCBrZXkgd2FzIHByZXNzZWQKICAgLS0gIFJlbGV2YW50IGZp
ZWxkczogVGltZSwgU3RhdGUsIEtleV9WYWwsIFN0cmluZwogICAtLSAgVHlwZTogS2V5X1ByZXNz
LCBLZXlfUmVsZWFzZQoKICAgc3VidHlwZSBHZGtfRXZlbnRfUHJvcGVydHkgaXMgR2RrX0V2ZW50
OwogICAtLSAgU29tZSBwcm9wZXJ0eSBvZiB0aGUgd2luZG93IHdhcyBtb2RpZmllZC4gR3RrQWRh
IHByb3ZpZGVzIGEgaGlnaGVyCiAgIC0tICBsZXZlbCBpbnRlcmZhY2UsIGFuZCB5b3UgYWxtb3N0
IG5ldmVyIG5lZWQgdG8gdXNlIHRoaXMgZXZlbnQuCiAgIC0tICBSZWxldmVudCBmaWVsZHM6IEF0
b20sIFRpbWUsIFByb3BlcnR5X1N0YXRlCiAgIC0tICBUeXBlOiBQcm9wZXJ0eV9Ob3RpZnkKCiAg
IHN1YnR5cGUgR2RrX0V2ZW50X1Byb3hpbWl0eSBpcyBHZGtfRXZlbnQ7CiAgIC0tICBmcm9tIGd0
ays6ICJUaGlzIGV2ZW50IHR5cGUgd2lsbCBiZSB1c2VkIHByZXR0eSByYXJlbHkuIEl0IG9ubHkg
aXMKICAgLS0gIGltcG9ydGFudCBmb3IgWElucHV0IGF3YXJlIHByb2dyYW1zIHRoYXQgYXJlIGRy
YXdpbmcgdGhlaXIgb3duCiAgIC0tICBjdXJzb3IiLiBUaGlzIGlzIG9ubHkgdXNlZCB3aXRoIG5v
biBzdGFuZGFyZCBpbnB1dCBkZXZpY2VzLCBsaWtlCiAgIC0tICBncmFwaGljIHRhYmxldHMuCiAg
IC0tICBSZWxldmFudCBmaWVsZHM6IFRpbWUsIFNvdXJjZSwgRGV2aWNlX0lkCiAgIC0tICBUeXBl
OiBQcm94aW1pdHlfSW4sIFByb3hpbWl0eV9PdXQKCiAgIHN1YnR5cGUgR2RrX0V2ZW50X1Zpc2li
aWxpdHkgaXMgR2RrX0V2ZW50OwogICAtLSAgVGhlIHZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIHdp
bmRvdyAocGFydGlhbGx5IHZpc2libHksIGZ1bGx5IHZpc2libGUsCiAgIC0tICBoaWRkZW4pLiBU
aGlzIGV2ZW50IGFsbW9zdCBuZXZlciBuZWVkIHRvIGJlIHVzZWQsIHNpbmNlIG90aGVyIGV2ZW50
cwogICAtLSAgYXJlIGdlbmVyYXRlZCBhdCB0aGUgc2FtZSB0aW1lLCBsaWtlIGV4cG9zZV9ldmVu
dHMKICAgLS0gIFJlbGV2YW50IGZpZWxkczogVmlzaWJpbGl0eV9TdGF0ZQogICAtLSAgdHlwZTog
VmlzaWJpbGl0eV9Ob3RpZnkKCiAgIHN1YnR5cGUgR2RrX0V2ZW50X1NlbGVjdGlvbiBpcyBHZGtf
RXZlbnQ7CiAgIC0tICBUaGlzIGlzIGhvdyBYMTEgaW1wbGVtZW50cyBhIHNpbXBsZSBjdXQtYW5k
LXBhc3RlIG1lY2hhbmlzbS4gSG93ZXZlciwKICAgLS0gIEd0a0FkYSBwcm92aWRlcyBhIGhpZ2hl
ciBsZXZlbCBpbnRlcmZhY2UgdG8gdGhlIHNlbGVjdGlvbiBtZWNoYW5pc20sCiAgIC0tICBzbyB0
aGlzIGV2ZW50IHdpbGwgYWxtb3N0IG5ldmVyIGJlIHVzZWQuCiAgIC0tICBSZWxldmFudCBmaWVs
ZHM6IFNlbGVjdGlvbiwgVGFyZ2V0LCBQcm9wZXJ0eSwgUmVxdWVzdG9yLCBUaW1lCiAgIC0tICBU
eXBlOiBTZWxlY3Rpb25fQ2xlYXIsIFNlbGVjdGlvbl9SZXF1ZXN0LCBTZWxlY3Rpb25fTm90aWZ5
CgogICBzdWJ0eXBlIEdka19FdmVudF9DbGllbnQgaXMgR2RrX0V2ZW50OwogICAtLSAgVGhpcyBp
cyBhbiBldmVudCB1c2VkIHRvIHNlbmQgYXJiaXRyYXJ5IGRhdGEgZnJvbSBvbmUgWCBhcHBsaWNh
dGlvbgogICAtLSAgdG8gYW5vdGhlci4gVGhpcyBldmVudCB0b28gaXMgYWxtb3N0IG5ldmVyIHVz
ZWQsIGFuZCBpcyBub3QgZG9jdW1lbnRlZAogICAtLSAgaGVyZS4gUGxlYXNlIGNvbnN1bHQgYW4g
WDExIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgIC0tICBSZWxldmFudCBm
aWVsZHM6IE1lc3NhZ2VfVHlwZSwgRGF0YQogICAtLSAgVHlwZTogQ2xpZW50X0V2ZW50CgogICAt
LSAgVGhlIGZvbGxvd2luZyBldmVudCB0eXBlcyBkbyBub3Qgc2VlbSB0byBoYXZlIGFueSBhc3Nv
Y2lhdGVkIHR5cGU6CiAgIC0tICBEZWxldGUsIERlc3Ryb3ksIE1hcCwgVW5tYXAsIERyYWdfRW50
ZXIsIERyYWdfTGVhdmUsIERyYWdfTW90aW9uLAogICAtLSAgRHJhZ19TdGF0dXMsIERyYWdfU3Rh
cnQsIERyYWdfRmluaXNoZWQKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KICAgLS0gU3BlY2lmaWMgZGVmaW5pdGlvbiBmb3IgdGhlIGZpZWxkcyAtLQogICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICB0eXBlIEdka19FdmVudF9D
bGllbnRfRGF0YV9Gb3JtYXQgaXMKICAgICAoQ2hhcl9BcnJheSwgU2hvcnRfQXJyYXksIExvbmdf
QXJyYXkpOwogICBmb3IgR2RrX0V2ZW50X0NsaWVudF9EYXRhX0Zvcm1hdCB1c2UKICAgICAoQ2hh
cl9BcnJheSAgPT4gOCwgU2hvcnRfQXJyYXkgPT4gMTYsIExvbmdfQXJyYXkgID0+IDMyKTsKICAg
LS0gIFZhbHVlcyBleHRyYWN0ZWQgZnJvbSB0aGUgWENsaWVudE1lc3NhZ2VFdmVudCBtYW4gcGFn
ZS4KCiAgIE51bWJlcl9PZl9DaGFyYWN0ZXJzIDogY29uc3RhbnQgOj0gMjA7CiAgIE51bWJlcl9P
Zl9TaG9ydHMgICAgIDogY29uc3RhbnQgOj0gMTA7CiAgIE51bWJlcl9PZl9Mb25ncyAgICAgIDog
Y29uc3RhbnQgOj0gNTsKCiAgIHR5cGUgR2RrX0V2ZW50X0NsaWVudF9EYXRhCiAgICAgKEZvcm1h
dCA6IEdka19FdmVudF9DbGllbnRfRGF0YV9Gb3JtYXQpIGlzCiAgIHJlY29yZAogICAgICBjYXNl
IEZvcm1hdCBpcwogICAgICAgICB3aGVuIENoYXJfQXJyYXkgPT4KICAgICAgICAgICAgQiA6IFN0
cmluZyAoMSAuLiBOdW1iZXJfT2ZfQ2hhcmFjdGVycyk7CiAgICAgICAgIHdoZW4gU2hvcnRfQXJy
YXkgPT4KICAgICAgICAgICAgUyA6IEdzaG9ydF9BcnJheSAoMSAuLiBOdW1iZXJfT2ZfU2hvcnRz
KTsKICAgICAgICAgd2hlbiBMb25nX0FycmF5ID0+CiAgICAgICAgICAgIEwgOiBHbG9uZ19BcnJh
eSAoMSAuLiBOdW1iZXJfT2ZfTG9uZ3MpOwogICAgICBlbmQgY2FzZTsKICAgZW5kIHJlY29yZDsK
CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEFjY2VzcyB0byBm
aWVsZHMgb2YgdGhlIGV2ZW50IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCgogICBJbnZhbGlkX0ZpZWxkIDogZXhjZXB0aW9uOwogICAtLSAgSWYgYSBmaWVsZCBkb2Vz
IG5vdCBleGlzdCBmb3IgdGhlIGV2ZW50IHlvdSBnYXZlLCBhbiBleGNlcHRpb24KICAgLS0gIElu
dmFsaWRfRmllbGQgaXMgcmFpc2VkCgogICBmdW5jdGlvbiBHZXRfRXZlbnRfVHlwZSAoRXZlbnQg
OiBpbiBHZGtfRXZlbnQpIHJldHVybiBUeXBlcy5HZGtfRXZlbnRfVHlwZTsKICAgLS0gIFRoZSB0
eXBlIG9mIHRoZSBldmVudC4KCiAgIGZ1bmN0aW9uIEdldF9TZW5kX0V2ZW50IChFdmVudCA6IGlu
IEdka19FdmVudCkgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBTZXQgdG8gdHJ1ZSBpZiB0aGUgZXZl
bnQgd2FzIGdlbmVyYXRlZCBieSB0aGUgYXBwbGljYXRpb24sIEZhbHNlCiAgIC0tICBpZiBnZW5l
cmF0ZWQgYnkgdGhlIFggc2VydmVyL1dpbjMyLgoKICAgZnVuY3Rpb24gR2V0X1dpbmRvdyAgICAo
RXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBHZGsuV2luZG93Lkdka19XaW5kb3c7CiAgIC0t
ICBUaGUgd2luZG93IHRoZSBldmVudCBvY2N1cmVkIG9uLgoKICAgZnVuY3Rpb24gR2V0X1RpbWUg
ICAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBHdWludDMyOwogICAtLSAgVGltZSB3
aGVuIHRoZSBldmVudCBvY2N1cmVkLgoKICAgZnVuY3Rpb24gR2V0X1ggICAgICAgICAoRXZlbnQg
OiBpbiBHZGtfRXZlbnQpIHJldHVybiBHZG91YmxlOwogICAtLSAgSG9yaXpvbnRhbCBjb29yZGlu
YXRlIG9mIHRoZSBtb3VzZSB3aGVuIHRoZSBldmVudCBvY2N1cmVkLgogICAtLSAgVGhlIGNvb3Jk
aW5hdGVzIGFyZSByZWxhdGl2ZSB0byB0aGUgcGFyZW50IHdpbmRvdy4KCiAgIGZ1bmN0aW9uIEdl
dF9ZICAgICAgICAgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gR2RvdWJsZTsKICAgLS0g
IFZlcnRpY2FsIGNvb3JkaW5hdGUgb2YgdGhlIG1vdXNlIHdoZW4gdGhlIGV2ZW50IG9jY3VyZWQu
CiAgIC0tICBUaGUgY29vcmRpbmF0ZXMgYXJlIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnQgd2luZG93
LgoKICAgZnVuY3Rpb24gR2V0X1hfUm9vdCAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVy
biBHZG91YmxlOwogICAtLSAgSG9yaXpvbnRhbCBjb29yZGluYXRlIG9mIHRoZSBtb3VzZSB3aGVu
IHRoZSBldmVudCBvY2N1cmVkLgogICAtLSAgUmVsYXRpdmUgdG8gdGhlIHJvb3Qgd2luZG93LgoK
ICAgZnVuY3Rpb24gR2V0X1lfUm9vdCAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBH
ZG91YmxlOwogICAtLSAgVmVydGljYWwgY29vcmRpbmF0ZSBvZiB0aGUgbW91c2Ugd2hlbiB0aGUg
ZXZlbnQgb2NjdXJlZC4KICAgLS0gIFJlbGF0aXZlIHRvIHRoZSByb290IHdpbmRvdy4KCiAgIGZ1
bmN0aW9uIEdldF9CdXR0b24gICAgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gR3VpbnQ7
CiAgIC0tICBOdW1iZXIgb2YgdGhlIGJ1dHRvbiB0aGF0IHdhcyBwcmVzc2VkLgoKICAgZnVuY3Rp
b24gR2V0X1N0YXRlICAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEdkay5UeXBlcy5HZGtfTW9kaWZpZXJfVHlwZTsKICAgLS0gIFN0YXRl
IG9mIHRoZSBtb3VzZSBidXR0b25zIGFuZCBrZXlib2FyZCBrZXlzIGp1c3QgcHJpb3IgdG8gdGhl
IGV2ZW50LgoKICAgZnVuY3Rpb24gR2V0X1N1YndpbmRvdyAoRXZlbnQgOiBpbiBHZGtfRXZlbnQp
IHJldHVybiBHZGsuV2luZG93Lkdka19XaW5kb3c7CiAgIC0tICBDaGlsZCB3aW5kb3cgZm9yIHRo
ZSBldmVudC4KICAgLS0gIEZvciBhbiBFbnRlcl9Ob3RpZnlfRXZlbnQsIHRoaXMgaXMgc2V0IHRv
IHRoZSBpbml0aWFsIHdpbmRvdyBmb3IgdGhlCiAgIC0tICBwb2ludGVyOyBmb3IgYW4gTGVhdmVf
Tm90aWZ5X0V2ZW50IHRoaXMgaXMgc2V0IHRvIHRoZSB3aW5kb3cgb2NjdXBpZWQKICAgLS0gIGJ5
IHRoZSBwb2ludGVyIGluIGl0cyBsYXN0IHBvc2l0aW9uLgoKICAgZnVuY3Rpb24gR2V0X01vZGUg
KEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gR2RrLlR5cGVzLkdka19Dcm9zc2luZ19Nb2Rl
OwogICAtLSAgUmV0dXJuIHRoZSBtb2RlIG9mIGFuIEV2ZW50LgogICAtLSAgU2V0IHRvIGluZGlj
YXRlIHdoZXRoZXIgdGhlIGV2ZW50cyBhcmUgbm9ybWFsIGV2ZW50cywgcHNldWRvLW1vdGlvbgog
ICAtLSAgZXZlbnRzIHdoZW4gYSBncmFiIGFjdGl2YXRlcyBvciBwc2V1ZG8tbW90aW9uIGV2ZW50
cyB3aGVuIGEgZ3JhYgogICAtLSAgZGVhdGl2YXRlcy4KCiAgIGZ1bmN0aW9uIEdldF9EZXRhaWwg
KEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gR2RrLlR5cGVzLkdka19Ob3RpZnlfVHlwZTsK
ICAgLS0gIFNldCB0byBpbmRpY2F0ZSB0aGUgbm90aWZ5IGRldGFpbHMuCiAgIC0tICBNb3N0IGFw
cGxpY2F0aW9ucyBjYW4gaWdub3JlIGV2ZW50cyB3aXRoIGEgTm90aWZ5IFZpcnR1YWwgb3IgYQog
ICAtLSAgTm90aWZ5X05vbl9MaW5lYXJfVmlydHVhbCBkZXRhaWwuCgogICBmdW5jdGlvbiBHZXRf
Rm9jdXMgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFNldCB0
byB0cnVlIGlmIHRoZSB3aW5kb3cgZm9yIHRoZSBldmVudCBpcyB0aGUgZm9jdXMgd2luZG93LgoK
ICAgZnVuY3Rpb24gR2V0X1ByZXNzdXJlICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBH
ZG91YmxlOwogICAtLSAgVGhpcyBpcyBzZXQgdG8gYSBjb25zdGFudCBpbiB0aGUgZ3RrKyBjb2Rl
IGl0c2VsZiwgc28gaXQKICAgLS0gIGlzIG1vc3QgcHJvYmFibHkgdXNlbGVzcy4uLiBJdHMgdmFs
dWUgaXMgMC41LgogICAtLSAgSXQgaXMgb25seSB1c2VkIHdpdGggc29tZSBzcGVjaWFsIGlucHV0
IGRldmljZXMsIGxpa2UgZHJhd2luZwogICAtLSAgdGFibGV0cywuLi4KCiAgIGZ1bmN0aW9uIEdl
dF9YdGlsdCAgICAgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gR2RvdWJsZTsKICAgLS0g
IFRoaXMgaXMgc2V0IHRvIGEgY29uc3RhbnQgaW4gdGhlIGd0aysgY29kZSBpdHNlbGYsIHNvIGl0
CiAgIC0tICBpcyBtb3N0IHByb2JhYmx5IHVzZWxlc3MuLi4gSXRzIHZhbHVlIGlzIDAuMC4KICAg
LS0gIEl0IGlzIG9ubHkgdXNlZCB3aXRoIHNvbWUgc3BlY2lhbCBpbnB1dCBkZXZpY2VzLCBsaWtl
IGRyYXdpbmcKICAgLS0gIHRhYmxldHMsLi4uCgogICBmdW5jdGlvbiBHZXRfWXRpbHQgICAgIChF
dmVudCA6IGluIEdka19FdmVudCkgcmV0dXJuIEdkb3VibGU7CiAgIC0tICBUaGlzIGlzIHNldCB0
byBhIGNvbnN0YW50IGluIHRoZSBndGsrIGNvZGUgaXRzZWxmLCBzbyBpdAogICAtLSAgaXMgbW9z
dCBwcm9iYWJseSB1c2VsZXNzLi4uIEl0cyB2YWx1ZSBpcyAwLjAuCiAgIC0tICBJdCBpcyBvbmx5
IHVzZWQgd2l0aCBzb21lIHNwZWNpYWwgaW5wdXQgZGV2aWNlcywgbGlrZSBkcmF3aW5nCiAgIC0t
ICB0YWJsZXRzLC4uLgoKICAgZnVuY3Rpb24gR2V0X1dpZHRoIChFdmVudCA6IGluIEdka19FdmVu
dCkgcmV0dXJuIEdpbnQxNjsKICAgLS0gIEdldCB0aGUgd2lkdGggaW4gYSBjb25maWd1cmUgZXZl
bnQuCgogICBmdW5jdGlvbiBHZXRfSGVpZ2h0IChFdmVudCA6IGluIEdka19FdmVudCkgcmV0dXJu
IEdpbnQxNjsKICAgLS0gIEdldCB0aGUgaGVpZ2h0IGluIGEgY29uZmlndXJlIGV2ZW50LgoKICAg
ZnVuY3Rpb24gR2V0X1NvdXJjZQogICAgIChFdmVudCA6IGluIEdka19FdmVudCkgcmV0dXJuIEdk
ay5UeXBlcy5HZGtfSW5wdXRfU291cmNlOwogICAtLSAgU2V0IHRvIGEgY29uc3RhbnQgZm9yIG5v
dyBpbiB0aGUgZ3RrKyBzb3VyY2UuLi4gUHJvYmFibHkgdXNlbGVzcy4KCiAgIGZ1bmN0aW9uIEdl
dF9EZXZpY2VfSWQKICAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBHZGsuVHlwZXMu
R2RrX0RldmljZV9JZDsKICAgLS0gIFNldCB0byBhIGNvbnN0YW50IGZvciBub3cgaW4gdGhlIGd0
aysgc291cmNlLi4uIFByb2JhYmx5IHVzZWxlc3MuCiAgIC0tICBTaW5jZSBtdWx0aXBsZSBpbnB1
dCBkZXZpY2VzIGNhbiBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUsIGxpa2UgYSBtb3VzZQogICAt
LSAgYW5kIGEgZ3JhcGhpYyB0YWJsZXQsIHRoaXMgaW5kaWNhdGVkIHdoaWNoIG9uZSBnZW5lcmF0
ZWQgdGhlIGV2ZW50LgoKICAgZnVuY3Rpb24gR2V0X0FyZWEgKEV2ZW50IDogaW4gR2RrX0V2ZW50
KSByZXR1cm4gUmVjdGFuZ2xlLkdka19SZWN0YW5nbGU7CiAgIC0tICBUaGUgbWluaW1hbCBhcmVh
IG9uIHdoaWNoIHRoZSBldmVudCBhcHBsaWVzLgogICAtLSAgRm9yIEV4cG9zZV9FdmVudHMsIHRo
aXMgaXMgdGhlIG1pbmltYWwgYXJlYSB0byByZWRyYXcuCgogICBmdW5jdGlvbiBHZXRfQ291bnQg
KEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gR2ludDsKICAgLS0gIE51bWJlciBvZiBFeHBv
c2VfRXZlbnRzIHRoYXQgYXJlIHRvIGZvbGxvdyB0aGlzIG9uZS4KICAgLS0gIE1vc3QgYXBwbGlj
YXRpb25zIGNhbiBpZ25vcmUgdGhlIGV2ZW50IGlmIENvdW50IGlzIG5vdCAwLCB3aGljaCBhbHNv
CiAgIC0tICBhbGxvd3MgZm9yIG9wdGltaXphdGlvbnMuCgogICBmdW5jdGlvbiBHZXRfSW4gKEV2
ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRydWUgaWYgdGhlIHdp
bmRvdyBoYXMgZ2FpbmVkIHRoZSBmb2N1cywgRmFsc2Ugb3RoZXJ3aXNlLgoKICAgZnVuY3Rpb24g
R2V0X0lzX0hpbnQgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gQm9vbGVhbjsKICAgLS0g
ID8/PwoKICAgZnVuY3Rpb24gR2V0X0tleV9WYWwgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1
cm4gR2RrLlR5cGVzLkdka19LZXlfVHlwZTsKICAgLS0gIENvZGUgb2YgdGhlIGtleSB0aGF0IHdh
cyBwcmVzc2VkIChhbmQgdGhhdCBnZW5lcmF0ZWQgdGhlIGV2ZW50LgoKICAgZnVuY3Rpb24gR2V0
X1N0cmluZyAgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gU3RyaW5nOwogICAtLSAgU3lt
Ym9sIG9mIHRoZSBrZXkgdGhhdCB3YXMgcHJlc3NlZCwgYXMgYSBzdHJpbmcuCgogICBmdW5jdGlv
biBHZXRfQXRvbSAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBHZGsuVHlwZXMuR2RrX0F0
b207CiAgIC0tICBJbmRpY2F0ZSB3aGljaCBwcm9wZXJ0eSBoYXMgY2hhbmdlZC4KICAgLS0gID8/
PyBBdG9tIHNob3VsZCBub3QgYmUgYSBHdWludAoKICAgZnVuY3Rpb24gR2V0X1Byb3BlcnR5X1N0
YXRlIChFdmVudCA6IGluIEdka19FdmVudCkgcmV0dXJuIEd1aW50OwogICAtLSAgPz8/IFRoZSBy
ZXR1cm4gdHlwZSBzaG91bGQgYmUgY2hhbmdlZC4KCiAgIGZ1bmN0aW9uIEdldF9WaXNpYmlsaXR5
X1N0YXRlCiAgICAgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gR2RrLlR5cGVzLkdka19W
aXNpYmlsaXR5X1N0YXRlOwogICAtLSAgUmV0dXJuIHRoZSBuZXcgdmlzaWJpbGl0eSBzdGF0ZSBm
b3IgdGhlIHdpbmRvdy4KCiAgIGZ1bmN0aW9uIEdldF9TZWxlY3Rpb24gKEV2ZW50IDogaW4gR2Rr
X0V2ZW50KSByZXR1cm4gR2RrLlR5cGVzLkdka19BdG9tOwogICAtLSAgV2hhdCB3YXMgc2VsZWN0
ZWQgaW4gdGhlIHdpbmRvdy4uLgoKICAgZnVuY3Rpb24gR2V0X1RhcmdldCAoRXZlbnQgOiBpbiBH
ZGtfRXZlbnQpIHJldHVybiBHZGsuVHlwZXMuR2RrX0F0b207CiAgIC0tICA/Pz8KCiAgIGZ1bmN0
aW9uIEdldF9Qcm9wZXJ0eSAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBHZGsuVHlwZXMu
R2RrX0F0b207CiAgIC0tICA/Pz8KCiAgIGZ1bmN0aW9uIEdldF9SZXF1ZXN0b3IgKEV2ZW50IDog
aW4gR2RrX0V2ZW50KSByZXR1cm4gR3VpbnQzMjsKICAgLS0gID8/PwoKICAgZnVuY3Rpb24gR2V0
X01lc3NhZ2VfVHlwZSAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBHZGsuVHlwZXMuR2Rr
X0F0b207CiAgIC0tICA/Pz8KCiAgIGZ1bmN0aW9uIEdldF9EYXRhIChFdmVudCA6IGluIEdka19F
dmVudCkgcmV0dXJuIEdka19FdmVudF9DbGllbnRfRGF0YTsKICAgLS0gID8/PwoKICAgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gTW9kaWZ5aW5nIHRoZSBmaWVs
ZHMgb2YgYW4gZXZlbnQgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KCiAgIHByb2NlZHVyZSBTZXRfV2luZG93IChFdmVudCA6IGluIEdka19FdmVudDsgV2luIDog
R2RrLldpbmRvdy5HZGtfV2luZG93KTsKICAgLS0gIFNldCB0aGUgV2luZG93IGZpZWxkIG9mIGFu
IGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9YICAgICAgKEV2ZW50IDogaW4gR2RrX0V2ZW50OyBY
IDogR2RvdWJsZSk7CiAgIC0tICBTZXQgdGhlIFggZmllbGQgb2YgYW4gZXZlbnQuCgogICBwcm9j
ZWR1cmUgU2V0X1kgICAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7IFkgOiBHZG91YmxlKTsKICAg
LS0gIFNldCB0aGUgWSBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHByb2NlZHVyZSBTZXRfWHJvb3Qg
IChFdmVudCA6IGluIEdka19FdmVudDsgWHJvb3QgOiBHZG91YmxlKTsKICAgLS0gIFNldCB0aGUg
WHJvb3QgZmllbGQgb2YgYW4gZXZlbnQuCgogICBwcm9jZWR1cmUgU2V0X1lyb290ICAoRXZlbnQg
OiBpbiBHZGtfRXZlbnQ7IFlyb290IDogR2RvdWJsZSk7CiAgIC0tICBTZXQgdGhlIFlyb290IGZp
ZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9XaWR0aCAgKEV2ZW50IDogaW4gR2Rr
X0V2ZW50OyBXaWR0aCA6IEdpbnQxNik7CiAgIC0tICBTZXQgdGhlIFdpZHRoIGZpZWxkIG9mIGFu
IGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9IZWlnaHQgKEV2ZW50IDogaW4gR2RrX0V2ZW50OyBI
ZWlnaHQgOiBHaW50MTYpOwogICAtLSAgU2V0IHRoZSBIZWlnaHQgZmllbGQgb2YgYW4gZXZlbnQu
CgogICBwcm9jZWR1cmUgU2V0X0J1dHRvbiAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7IEJ1dHRvbiA6
IEd1aW50KTsKICAgLS0gIFNldCB0aGUgQnV0dG9uIGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJv
Y2VkdXJlIFNldF9UaW1lIChFdmVudCA6IGluIEdka19FdmVudDsgVGltZSA6IEd1aW50MzIpOwog
ICAtLSAgU2V0IHRoZSB0aW1lIGZvciB0aGUgZXZlbnQuCiAgIC0tICBJZiBUaW1lIGlzIDAsIHRo
ZW4gaXQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IHRpbWUuCgogICBwcm9jZWR1cmUgU2V0X1N0YXRl
ICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0ZSA6
IGluIEdkay5UeXBlcy5HZGtfTW9kaWZpZXJfVHlwZSk7CiAgIC0tICBTZXQgdGhlIFN0YXRlIGZp
ZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9TdWJ3aW5kb3cgKEV2ZW50ICA6IGlu
IEdka19FdmVudDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdyA6IGluIEdkay5X
aW5kb3cuR2RrX1dpbmRvdyk7CiAgIC0tICBTZXQgdGhlIFN1YndpbmRvdyBmaWVsZCBvZiBhbiBl
dmVudC4KCiAgIHByb2NlZHVyZSBTZXRfTW9kZSAgIChFdmVudCA6IGluIEdka19FdmVudDsKICAg
ICAgICAgICAgICAgICAgICAgICAgIE1vZGUgIDogaW4gR2RrLlR5cGVzLkdka19Dcm9zc2luZ19N
b2RlKTsKICAgLS0gIFNldCB0aGUgTW9kZSBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHByb2NlZHVy
ZSBTZXRfRGV0YWlsIChFdmVudCAgOiBpbiBHZGtfRXZlbnQ7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBEZXRhaWwgOiBpbiBHZGsuVHlwZXMuR2RrX05vdGlmeV9UeXBlKTsKICAgLS0gIFNldCB0
aGUgRGV0YWlsIGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9Gb2N1cyAoRXZl
bnQgOiBpbiBHZGtfRXZlbnQ7IEhhc19Gb2N1cyA6IEJvb2xlYW4pOwogICAtLSAgU2V0IHRoZSBG
b2N1cyBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHByb2NlZHVyZSBTZXRfQXJlYSAgKEV2ZW50IDog
aW4gR2RrX0V2ZW50OyBBcmVhIDogUmVjdGFuZ2xlLkdka19SZWN0YW5nbGUpOwogICAtLSAgU2V0
IHRoZSBBcmVhIGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9JbiAgICAoRXZl
bnQgOiBpbiBHZGtfRXZlbnQ7IEZvY3VzX0luIDogQm9vbGVhbik7CiAgIC0tICBTZXQgdGhlIElu
IGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9Jc19IaW50IChFdmVudCA6IGlu
IEdka19FdmVudDsgSXNfSGludCA6IEJvb2xlYW4pOwogICAtLSAgU2V0IHRoZSBJc19IaW50IGZp
ZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9LZXlfVmFsIChFdmVudCA6IGluIEdk
a19FdmVudDsgS2V5IDogR2RrLlR5cGVzLkdka19LZXlfVHlwZSk7CiAgIC0tICBTZXQgdGhlIEtl
eV9WYWwgZmllbGQgb2YgYW4gZXZlbnQuCgogICBwcm9jZWR1cmUgU2V0X0F0b20gKEV2ZW50IDog
aW4gR2RrX0V2ZW50OyBBdG9tIDogR2RrLlR5cGVzLkdka19BdG9tKTsKICAgLS0gIFNldCB0aGUg
QXRvbSBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHByb2NlZHVyZSBTZXRfUHJvcGVydHlfU3RhdGUg
KEV2ZW50IDogaW4gR2RrX0V2ZW50OyBTdGF0ZSA6IEd1aW50KTsKICAgLS0gIFNldCB0aGUgUHJv
cGVydHlfU3RhdGUgZmllbGQgb2YgYW4gZXZlbnQuCgogICBwcm9jZWR1cmUgU2V0X1Zpc2liaWxp
dHlfU3RhdGUgKEV2ZW50IDogaW4gR2RrX0V2ZW50OwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFN0YXRlIDogR2RrLlR5cGVzLkdka19WaXNpYmlsaXR5X1N0YXRlKTsKICAgLS0g
IFNldCB0aGUgVmlzaWJpbGl0eV9TdGF0ZSBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHByb2NlZHVy
ZSBTZXRfU2VsZWN0aW9uIChFdmVudCA6IGluIEdka19FdmVudDsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNlbGVjdGlvbiA6IEdkay5UeXBlcy5HZGtfQXRvbSk7CiAgIC0tICBTZXQgdGhl
IFNlbGVjdGlvbiBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHByb2NlZHVyZSBTZXRfVGFyZ2V0IChF
dmVudCA6IGluIEdka19FdmVudDsgVGFyZ2V0IDogR2RrLlR5cGVzLkdka19BdG9tKTsKICAgLS0g
IFNldCB0aGUgVGFyZ2V0IGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9Qcm9w
ZXJ0eSAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIFBy
b3BlcnR5IDogR2RrLlR5cGVzLkdka19BdG9tKTsKICAgLS0gIFNldCB0aGUgUHJvcGVydHkgZmll
bGQgb2YgYW4gZXZlbnQuCgogICBwcm9jZWR1cmUgU2V0X1JlcXVlc3RvciAoRXZlbnQgOiBpbiBH
ZGtfRXZlbnQ7IFJlcXVlc3RvciA6IEd1aW50MzIpOwogICAtLSAgU2V0IHRoZSBSZXF1ZXN0b3Ig
ZmllbGQgb2YgYW4gZXZlbnQuCgogICBwcm9jZWR1cmUgU2V0X01lc3NhZ2VfVHlwZSAoRXZlbnQg
OiBpbiBHZGtfRXZlbnQ7IFR5cCA6IEdkay5UeXBlcy5HZGtfQXRvbSk7CiAgIC0tICBTZXQgdGhl
IE1lc3NhZ2VfVHlwZSBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHByb2NlZHVyZSBTZXRfU3RyaW5n
IChFdmVudCA6IGluIEdka19FdmVudDsgU3RyIDogU3RyaW5nKTsKICAgLS0gIFNldCB0aGUgc3Ry
aW5nIGFzc29jaWF0ZWQgd2l0aCBhbiBldmVudC4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAgIC0tIEdlbmVyYWwgZnVuY3Rpb25zIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgog
ICBwcm9jZWR1cmUgRGVlcF9Db3B5IChGcm9tIDogR2RrX0V2ZW50OyBUbyA6IG91dCBHZGtfRXZl
bnQpOwogICAtLSAgRGVlcCBjb3B5IGZvciBhbiBldmVudC4gVGhlIEMgc3RydWN0dXJlIGlzIGl0
c2VsZiBkdXBsaWNhdGVkLgogICAtLSAgWW91IG5lZWQgdG8gZGVhbGxvY2F0ZWQgaXQgeW91cnNl
bGYgd2l0aCBhIGNhbGwgdG8gRnJlZSBiZWxvdy4KCiAgIHByb2NlZHVyZSBHZXRfR3JhcGhpY3Nf
RXhwb3NlCiAgICAgKEV2ZW50ICA6IG91dCBHZGtfRXZlbnRfRXhwb3NlOwogICAgICBXaW5kb3cg
OiBpbiBHZGsuV2luZG93Lkdka19XaW5kb3cpOwogICAtLSAgV2FpdHMgZm9yIGEgR3JhcGhpY3NF
eHBvc2Ugb3IgTm9FeHBvc2UgZXZlbnQKICAgLS0gIElmIGl0IGdldHMgYSBHcmFwaGljc0V4cG9z
ZSBldmVudCwgaXQgcmV0dXJucyBhIHBvaW50ZXIgdG8gaXQsCiAgIC0tICBvdGhlcndpc2UgaXQg
cmV0dXJucyBhbiBldmVudCBmb3Igd2hpY2ggSXNfQ3JlYXRlZCBpcyBGYWxzZS4KICAgLS0KICAg
LS0gIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IHNjcm9sbGluZzogeW91
IG11c3QgY2FsbAogICAtLSAgR2RrLkdDLlNldF9FeHBvc3VyZXMgd2l0aCBUcnVlIG9uIHRoZSBH
QyB5b3UgYXJlIHVzaW5nIGZvciB0aGUKICAgLS0gIGRyYXdpbmcsIHNvIHRoYXQgYSBldmVudHMg
YXJlIGdlbmVyYXRlZCBmb3Igb2JzY3VyZWQgYXJlYXMgYW5kIGV2ZXJ5CiAgIC0tICB0aW1lIGEg
bmV3IHBhcnQgb2YgdGhlIHdpZGdldCBpcyBkcmF3bi4gSG93ZXZlciwgdGhlcmUgaXMgYSByYWNl
CiAgIC0tICBjb25kaXRpb24gaWYgbXVsdGlwbGUgc2Nyb2xscyBoYXBwZW4gYmVmb3JlIHlvdSBo
YXZlIGZpbmlzaGVkCiAgIC0tICBwcm9jZXNzaW5nIHRoZSBmaXJzdCBvbmUuIEEgd29ya2Fyb3Vu
ZCBpcyB0byBjYWxsIEdldF9HcmFwaGljc19FeHBvc2UKICAgLS0gIGFmdGVyIGV2ZXJ5IHNjcm9s
bCB1bnRpbCBpdCByZXR1cm5zIGEgbnVsbCBldmVudC4KCiAgIGZ1bmN0aW9uIEV2ZW50c19QZW5k
aW5nIHJldHVybiBCb29sZWFuOwogICAtLSAgSXMgdGhlcmUgYW55IGV2ZW50IHBlbmRpbmcgb24g
dGhlIHF1ZXVlID8KCiAgIHByb2NlZHVyZSBHZXQgKEV2ZW50IDogb3V0IEdka19FdmVudCk7CiAg
IC0tICBHZXQgdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlLgoKICAgcHJvY2VkdXJlIFBlZWsg
KEV2ZW50IDogb3V0IEdka19FdmVudCk7CiAgIC0tICBMb29rIGF0IHRoZSBuZXh0IGV2ZW50IG9u
IHRoZSBxdWV1ZSwgYnV0IGxlYXZlIGlmIHRoZXJlLgoKICAgcHJvY2VkdXJlIFB1dCAoRXZlbnQg
OiBpbiBHZGtfRXZlbnQpOwogICAtLSAgQWRkIGFuIGV2ZW50IG9uIHRoZSBxdWV1ZSAtIEJldHRl
ciB0byB1c2UgR3RrLlNpZ25hbC5FbWl0X0J5X05hbWUKCiAgIHByb2NlZHVyZSBTZXRfU2hvd19F
dmVudHMgKFNob3dfRXZlbnRzIDogaW4gQm9vbGVhbiA6PSBUcnVlKTsKICAgLS0gIEZvciBkZWJ1
ZyBwdXJwb3NlcywgeW91IGNhbiBjaG9vc2Ugd2hldGhlciB5b3Ugd2FudCB0byBzZWUgdGhlIGV2
ZW50cwogICAtLSAgR3RrQWRhIHJlY2VpdmVzLgoKICAgZnVuY3Rpb24gR2V0X1Nob3dfRXZlbnRz
IHJldHVybiBCb29sZWFuOwogICAtLSAgUmV0dXJuIHRoZSBjdXJyZW50IHN0YXRlIG9mIFNob3df
RXZlbnRzLgoKICAgcHJvY2VkdXJlIFNlbmRfQ2xpZW50X01lc3NhZ2VfVG9fQWxsIChFdmVudCA6
IGluIEdka19FdmVudCk7CiAgIC0tICBMb3cgbGV2ZWwgcm91dGluZSB0byBzZW5kIGFuIEV2ZW50
IHRvIGV2ZXJ5IHdpbmRvdy4KCiAgIGZ1bmN0aW9uIFNlbmRfQ2xpZW50X01lc3NhZ2UKICAgICAo
RXZlbnQgOiBpbiBHZGtfRXZlbnQ7CiAgICAgIFhpZCAgIDogaW4gR3VpbnQzMikgcmV0dXJuIEJv
b2xlYW47CiAgIC0tICBMb3cgbGV2ZWwgcm91dGluZSB0byBzZW5kIGFuIEV2ZW50IHRvIGEgc3Bl
Y2lmaWVkIFggd2luZG93LgoKICAgcHJvY2VkdXJlIEFsbG9jYXRlCiAgICAgKEV2ZW50ICAgICAg
OiBvdXQgR2RrX0V2ZW50OwogICAgICBFdmVudF9UeXBlIDogaW4gVHlwZXMuR2RrX0V2ZW50X1R5
cGU7CiAgICAgIFdpbmRvdyAgICAgOiBpbiBHZGsuV2luZG93Lkdka19XaW5kb3cpOwogICAtLSAg
Q3JlYXRlIGFuIGV2ZW50LCB3aG9zZSBmaWVsZHMgYXJlIHVuaW5pdGlhbGl6ZWQuCiAgIC0tICBZ
b3UgbmVlZCB0byB1c2UgdGhlIGZ1bmN0aW9uIFNldF8qIGFib3ZlIHRvIG1vZGlmeSB0aGVtLCBi
ZWZvcmUgeW91IGNhbgogICAtLSAgc2VuZCB0aGUgZXZlbnQgd2l0aCBFbWl0X0J5X05hbWUuCiAg
IC0tICAhIU5vdGUhITogVGhlIGV2ZW50IGhhcyB0byBiZSBmcmVlZCBpZiB5b3UgaGF2ZSBjYWxs
ZWQgdGhpcyBmdW5jdGlvbi4KICAgLS0gIFVzZSB0aGUgZnVuY3Rpb24gRnJlZS4KCiAgIHByb2Nl
ZHVyZSBGcmVlIChFdmVudCA6IGluIG91dCBHZGtfRXZlbnQpOwogICAtLSAgRnJlZSB0aGUgbWVt
b3J5IChhbmQgQyBzdHJ1Y3R1cmUpIGFzc29jaWF0ZWQgd2l0aCBhbiBldmVudC4KICAgLS0gIFlv
dSBuZWVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBvbmx5IGlmIHRoZSBldmVudCB3YXMgY3JlYXRl
ZCB0aHJvdWdoCiAgIC0tICBBbGxvY2F0ZSwgbm90IGlmIGl0IHdhcyBjcmVhdGVkIGJ5IEd0a0Fk
YSBpdHNlbGYgKG9yIHlvdSB3b3VsZCBnZXQKICAgLS0gIGEgc2VnbWVudGF0aW9uIGZhdWx0KS4K
CiAgIHR5cGUgRXZlbnRfSGFuZGxlcl9GdW5jIGlzIGFjY2VzcyBwcm9jZWR1cmUKICAgICAoRXZl
bnQgOiBTeXN0ZW0uQWRkcmVzczsgRGF0YSA6IFN5c3RlbS5BZGRyZXNzKTsKICAgLS0gIEZ1bmN0
aW9uIHRoYXQgY2FuIGJlIHVzZWQgYXMgYSBuZXcgZXZlbnQgaGFuZGxlci4KICAgLS0gIFVzZSBG
cm9tX0FkZHJlc3MgYmVsb3cgdG8gY29udmVydCB0byBhIHJlYWwgZXZlbnQgdHlwZS4KICAgLS0g
IFRoaXMgZnVuY3Rpb24gc2hvdWxkIGRpc3BhdGNoIGFsbCB0aGUgZXZlbnRzIHByb3Blcmx5LCBz
aW5jZSBpdCByZXBsYWNlcwogICAtLSAgY29tcGxldGx5IHRoZSBkZWZhdWx0IGV2ZW50IGhhbmRs
ZXIuIEhvd2V2ZXIsIGl0IGNhbiBjYWxsCiAgIC0tICBHdGsuTWFpbi5Eb19FdmVudCB0byB0YWtl
IGNhcmUgb2YgdGhlIGV2ZW50cyBpdCBkb2VzIG5vdCBrbm93IGhvdyB0bwogICAtLSAgaGFuZGxl
LgoKICAgcHJvY2VkdXJlIEV2ZW50X0hhbmRsZXJfU2V0CiAgICAgKEZ1bmMgOiBFdmVudF9IYW5k
bGVyX0Z1bmM7IERhdGEgOiBTeXN0ZW0uQWRkcmVzcyk7CiAgIC0tICBTZXQgdXAgYSBuZXcgZXZl
bnQgaGFuZGxlci4KICAgLS0gIFRoaXMgaGFuZGxlciByZXBsYWNlcyB0aGUgZGVmYXVsdCBHdGtB
ZGEgZXZlbnQgaGFuZGxlciwgYW5kIHRodXMgc2hvdWxkCiAgIC0tICBtYWtlIHN1cmUgdGhhdCBh
bGwgZXZlbnRzIGFyZSBjb3JyZWN0bHkgaGFuZGxlZC4KICAgLS0KICAgLS0gIE5vdGUgdGhhdCBt
YW5hZ2luZyB0aGUgbWVtb3J5IGZvciBEYXRhIGlzIHlvdXIgcmVzcG9uc2FiaWxpdHksIGFuZAog
ICAtLSAgRGF0YSBpcyBwYXNzZWQgYXMgaXMgdG8gRnVuYy4KCiAgIGZ1bmN0aW9uIEZyb21fQWRk
cmVzcyAoQyA6IFN5c3RlbS5BZGRyZXNzKSByZXR1cm4gR2RrX0V2ZW50OwogICAtLSAgQ29udmVy
dCBhIEMgaGFuZGxlciB0byB0aGUgbWF0Y2hpbmcgRXZlbnQgc3RydWN0dXJlLgoKICAgZnVuY3Rp
b24gVG9fQWRkcmVzcyAoQyA6IEdka19FdmVudCkgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAt
LSAgQ29udmVydCBhbiBldmVudCB0byB0aGUgdW5kZXJseWluZyBDIGhhbmRsZXIuCgogICBmdW5j
dGlvbiBJc19DcmVhdGVkIChFIDogR2RrX0V2ZW50KSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFJl
dHVybiBUcnVlIGlmIHRoZSB1bmRlcmx5aW5nIEMgZXZlbnQgaGFzIGJlZW4gY3JlYXRlZC4KCiAg
IC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gRGVzaWduIGlzc3VlcyAtLQogICAtLS0tLS0tLS0t
LS0tLS0tLS0tCiAgIC0tICBTZWUgZ2RrLWV2ZW50LmFkYiBmb3Igc29tZSBvZiB0aGUgZGVzaWdu
IGlzc3VlcyBiZWhpbmcgdGhhdCBwYWNrYWdlLgoKcHJpdmF0ZQogICBwcmFnbWEgSW1wb3J0IChD
LCBHZXRfRXZlbnRfVHlwZSwgImFkYV9nZGtfZXZlbnRfZ2V0X3R5cGUiKTsKICAgcHJhZ21hIElt
cG9ydCAoQywgR2V0X1dpbmRvdywgImFkYV9nZGtfZXZlbnRfZ2V0X3dpbmRvdyIpOwogICBwcmFn
bWEgSW1wb3J0IChDLCBHZXRfVGltZSwgImdka19ldmVudF9nZXRfdGltZSIpOwogICBwcmFnbWEg
SW1wb3J0IChDLCBQdXQsICJnZGtfZXZlbnRfcHV0Iik7CiAgIHByYWdtYSBJbXBvcnQKICAgICAo
QywgU2VuZF9DbGllbnRfTWVzc2FnZV9Ub19BbGwsICJnZGtfZXZlbnRfc2VuZF9jbGllbnRtZXNz
YWdlX3RvYWxsIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9XaW5kb3csICJhZGFfZ2RrX2V2
ZW50X3NldF93aW5kb3ciKTsKCmVuZCBHZGsuRXZlbnQ7Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAg
ICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1wIFRvb2xraXQgICAgICAgICAg
ICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChD
KSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICBFbW1hbnVlbCBC
cmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0ICAgICAgICAgIC0tCi0tICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciAgICAgIC0tCi0t
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgIC0t
Ci0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAg
IC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkg
VGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90aGVyIGZpbGVzIGluc3RhbnRp
YXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3IgeW91IGxpbmsgdGhpcyB1bml0
IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMg
IHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4
ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Uu
IFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyIGludmFsaWRhdGUgYW55IG90
aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgY292
ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgot
LSAgPGRlc2NyaXB0aW9uPgotLSAgVGhpcyBpcyB0aGUgYmFzZSBwYWNrYWdlIGZvciBoYW5kbGlu
ZyBmb250cy4KLS0gIEd0a0FkYSBrbm93cyBhYm91dCBiaXRtYXAgYW5kIHZlY3RvcmlhbCBmb250
cywgYW5kIGNhbiBkcmF3IGJvdGguCi0tICBUaGUgbGlzdCBvZiBmb250cyBhdmFpbGFibGUgdG8g
eW91IGRlcGVuZHMgb24gd2hhdCBpcyBpbnN0YWxsZWQgb24KLS0gIHlvdXIgc3lzdGVtLgotLQot
LSAgVGhlIG5hbWUgb2YgdGhlIGZvbnQgaXMgaW5kaWNhdGVkIGluIHRoZSBzdGFuZGFyZCBYMTEg
ZmFzaGlvbiwgbmFtZWx5OgotLSAgKGV4YW1wbGUgZXh0cmFjdGVkIGZyb20gdGhlIFhsaWIgbWFu
dWFsKToKLS0KLS0gIC1hZG9iZS1jb3VyaWVyLWJvbGQtby1ub3JtYWwtLTEwLTEwMC03NS03NS1t
LTYwLWlzbzg4NTktMQotLSAgd2hlcmU6Ci0tICAgIC0gYWRvYmUgICAgIDogZm91bmRyeQotLSAg
ICAtIGNvdXJpZXIgICA6IGZvbnQgZmFtaWx5Ci0tICAgIC0gYm9sZCAgICAgIDogd2VpZ2h0IChl
LmcuIGJvbGQsIG1lZGl1bSkKLS0gICAgLSBvICAgICAgICAgOiBzbGFudCAoZS5nLiByb21hbiwg
aXRhbGljLCBvYmxpcXVlKQotLSAgICAtIG5vcm1hbCAgICA6IHNldCB3aWR0aCAoZS5nLiBub3Jt
YWwsIGNvbmRlbnNlZCwgbmFycm93LCBkb3VibGUpCi0tICAgIC0gMTAgICAgICAgIDogcGl4ZWxz
Ci0tICAgIC0gMTAwICAgICAgIDogcG9pbnRzIChpbiB0ZW50aHMgb2YgYSBwb2ludCkKLS0gICAg
LSA3NSAgICAgICAgOiBob3Jpem9udGFsIHJlc29sdXRpb24gaW4gZHBpCi0tICAgIC0gNzUgICAg
ICAgIDogdmVydGljYWwgcmVzb2x1dGlvbiBpbiBkcGkKLS0gICAgLSBtICAgICAgICAgOiBzcGFj
aW5nIChlLmcuIG1vbm9zcGFjZSBvciBwcm9wb3J0aW9uYWwpCi0tICAgIC0gNjAgICAgICAgIDog
YXZlcmFnZSB3aWR0aCAoaW4gdGVudGhzIG9mIGEgcGl4ZWwpCi0tICAgIC0gaXNvODg1OS0xIDog
Y2hhcmFjdGVyIHNldAotLQotLSAgQW55IG9mIHRoZSBmaWVsZHMgY2FuIGhhdmUgYSAnKicgaW5z
dGVhZCwgc28gdGhhdCB0aGUgc3lzdGVtIHdpbGwKLS0gIGF1dG9tYXRpY2FsbHkgZmluZCBhIGZv
bnQgdGhhdCBtYXRjaGVzIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcsIGFuZCB3b24ndAotLSAgY2Fy
ZSBhYm91dCB0aGF0IHNwZWNpZmljIGZpZWxkLgotLQotLSAgQnV0IHRoZSBlYXNpZXN0IHdheSB0
byBzZWxlY3QgYSBmb250IGlzIGJ5IHVzaW5nIHNvbWUgZXh0ZXJuYWwgcHJvZ3JhbXMsCi0tICBm
b3IgaW5zdGFuY2UgeGZvbnRzZWwsIHhsc2ZvbnQsIGdmb250c2VsLCBvciBldmVuIHRoZSBmb250
IHNlbGVjdGlvbgotLSAgZGlhbG9nIGV4YW1wbGUgaW4gdGhlIHRlc3RndGsvIGRpcmVjdG9yeSBv
ZiB0aGUgR3RrQWRhIGRpc3RyaWJ1dGlvbi4KLS0KLS0gIEBweHJlZntQYWNrYWdlX0d0ay5FeHRy
YS5Qc0ZvbnR9IGZvciBhIHBhY2thZ2UgdGhhdCBwcm9jZXNzZXMgcG9zdHNjcmlwdAotLSAgZm9u
dHMsIHdpdGggdGhlaXIgbW9yZSB1c3VhbCBuYW1lcywgYW5kIGNhbiBlYXNpbHkgY29udmVydCB0
aGVtIHRvIHN0YW5kYXJkCi0tICBHZGtfRm9udCBzdHJ1Y3R1cmVzLgotLQotLSAgU29tZSBvZiB0
aGUgZnVuY3Rpb25zIGJlbG93IHNob3VsZCBiZSB1c2VkIG9ubHkgZm9yIHdpZGUtY2hhcmFjdGVy
IHN0cmluZ3MuCi0tICBUaGlzIGlzIG5lZWRlZCBmb3IgbGFuZ3VhZ2VzIHdpdGggbW9yZSB0aGFu
IDI1NiBjaGFyYWN0ZXJzLgotLQotLSAgV2lkZSBjaGFyYWN0ZXIgdmFsdWVzIGJldHdlZW4gMCBh
bmQgMTI3IGFyZSBhbHdheXMgaWRlbnRpY2FsIGluIG1lYW5pbmcgdG8KLS0gIHRoZSBBU0NJSSBj
aGFyYWN0ZXIgY29kZXMuCi0tICBBbiBhbHRlcm5hdGl2ZSB0byB3aWRlIGNoYXJhY3RlcnMgaXMg
bXVsdGktYnl0ZSBjaGFyYWN0ZXJzLCB3aGljaCBleHRlbmQKLS0gIG5vcm1hbCBjaGFyIHN0cmlu
Z3MgdG8gY29wZSB3aXRoIGxhcmdlciBjaGFyYWN0ZXIgc2V0cy4gQXMgdGhlIG5hbWUKLS0gIHN1
Z2dlc3RzLCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgdXNlIGEgZGlmZmVyZW50IG51bWJlciBvZiBi
eXRlcyB0byBzdG9yZQotLSAgZGlmZmVyZW50IGNoYXJhY3RlciBjb2Rlcy4gRm9yIGV4YW1wbGUg
Y29kZXMgMC0xMjcgKGkuZS4gdGhlIEFTQ0lJIGNvZGVzKQotLSAgb2Z0ZW4gdXNlIGp1c3Qgb25l
IGJ5dGUgb2YgbWVtb3J5LCB3aGlsZSBvdGhlciBjb2RlcyBtYXkgdXNlIDIsIDMgb3IgZXZlbgot
LSAgNCBieXRlcy4gTXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGhhdmUgdGhlIGFkdmFudGFnZSB0aGF0
IHRoZXkgY2FuIG9mdGVuIGJlCi0tICB1c2VkIGluIGFuIGFwcGxpY2F0aW9uIHdpdGggbGl0dGxl
IGNoYW5nZSwgc2luY2Ugc3RyaW5ncyBhcmUgc3RpbGwKLS0gIHJlcHJlc2VudGVkIGFzIGFycmF5
cyBvZiBjaGFyIHZhbHVlcy4gSG93ZXZlciBtdWx0aS1ieXRlIHN0cmluZ3MgYXJlIG11Y2gKLS0g
IGVhc2llciB0byBtYW5pcHVsYXRlIHNpbmNlIHRoZSBjaGFyYWN0ZXIgYXJlIGFsbCBvZiB0aGUg
c2FtZSBzaXplLgotLQotLSAgT24gVW5peCBzeXN0ZW1zLCB0aGUgZXh0ZXJuYWwgdXRpbGl0eSAn
eGZkJyBjYW4gYmUgdXNlZCB0byBkaXNwbGF5IGFsbAotLSAgdGhlIGNoYXJhY3RlcnMgaW4gYSBm
b250LgotLQotLSAgPC9kZXNjcmlwdGlvbj4KLS0gIDxjX3ZlcnNpb24+MS4yLjc8L2NfdmVyc2lv
bj4KLS0gIDxzY3JlZW5zaG90PmZvbnQ8L3NjcmVlbnNob3Q+Cgp3aXRoIEdsaWI7IHVzZSBHbGli
Owp3aXRoIEdkay5UeXBlczsKCnBhY2thZ2UgR2RrLkZvbnQgaXMKCiAgIHR5cGUgR2RrX0ZvbnQg
aXMgbmV3IEdkay5DX1Byb3h5OwogICAtLSAgQSBmb250IHVzZWQgdG8gZHJhdyB0ZXh0LgogICAt
LSAgVGhpcyBjYW4gcmVwcmVzZW50IGEgYml0bWFwIGZvbnQsIGEgc2NhbGFibGUgKHZlY3Rvcmlh
bCkgZm9udCwgb3IKICAgLS0gIGEgZm9udHNldC4gQSBmb250c2V0IGlzIGEgbGlzdCBvZiBjb21t
YS1zZXBhcmF0ZWQgZm9udHMsIHRoYXQgcGVybWl0cwogICAtLSAgR3RrQWRhIHRvIG9idGFpbiB0
aGUgZm9udHMgbmVlZGVkIGZvciBhIHZhcmlldHkgb2YgbG9jYWxlcyBmcm9tIGEKICAgLS0gIHNp
bmdsZSBsb2NhbGUtaW5kZXBlbmRlbnQgYmFzZSBmb250IG5hbWUuIFRoZSBzaW5nbGUgYmFzZSBm
b250IG5hbWUKICAgLS0gIHNob3VsZCBuYW1lIGEgZmFtaWx5IG9mIGZvbnRzIHdob3NlIG1lbWJl
cnMgYXJlIGVuY29kZWQgaW4gdGhlIHZhcmlvdXMKICAgLS0gIGNoYXJzZXRzIG5lZWRlZCBieSB0
aGUgbG9jYWxlcyBvZiBpbnRlcmVzdC4KICAgLS0gIFRoZSBhbGdvcml0aG0gdXNlZCB0byBzZWxl
Y3QgdGhlIGZvbnQgaXMgZGVzY3JpYmVkIGluIHRoZSBtYW51YWwgcGFnZQogICAtLSAgZm9yIFhD
cmVhdGVGb250U2V0KDNYKS4KCiAgIE51bGxfRm9udCA6IGNvbnN0YW50IEdka19Gb250OwoKICAg
cHJvY2VkdXJlIExvYWQgKEZvbnQgICAgICA6ICAgIG91dCBHZGtfRm9udDsKICAgICAgICAgICAg
ICAgICAgIEZvbnRfTmFtZSA6IGluICAgICBTdHJpbmcpOwogICAtLSAgTG9hZCBhIG5ldyBmb250
LCBnaXZlbiBpdHMgbmFtZS4KICAgLS0gIFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAgYmVmb3JlIHVz
aW5nIGEgZm9udC4KICAgLS0gIFRoZSBmb250IGlzIGZpcnN0IGxvb2tlZCB1cCBpbiB0aGUgY2Fj
aGUsIGFuZCBpZiBpdCB3YXMgYWxyZWFkeQogICAtLSAgbG9hZGVkLCBpdCBpcyBub3QgcmVsb2Fk
ZWQgYWdhaW4uIFRodXMsIGl0IGRvZXMgbm90IGhhcm0gdG8gY2FsbAogICAtLSAgdGhpcyBmdW5j
dGlvbiBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIEZvbnRfTmFtZS4KICAgLS0gIE51bGxf
Rm9udCBpcyByZXR1cm5lZCBpZiB0aGUgZm9udCBjb3VsZCBub3QgYmUgbG9hZGVkLgoKICAgcHJv
Y2VkdXJlIEZvbnRzZXRfTG9hZCAoRm9udCAgICAgICAgIDogICBvdXQgR2RrX0ZvbnQ7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEZvbnRzZXRfTmFtZSA6IGluICAgIFN0cmluZyk7CiAgIC0t
ICBMb2FkIGEgbmV3IGZvbnQgc2V0LgogICAtLSAgRm9udHNldF9OYW1lIGlzIGEgY29tbWEtc2Vw
YXJhdGVkIGxpc3Qgb2YgZm9udHMgdGhhdCB3aWxsIGJlIGxvYWRlZAogICAtLSAgYXMgcGFydCBv
ZiB0aGUgZm9udHNldC4KCiAgIHByb2NlZHVyZSBSZWYgKEZvbnQgOiBpbiBHZGtfRm9udCk7CiAg
IC0tICBJbmNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudGVyIGZvciB0aGUgZm9udC4KICAgLS0g
IFlvdSBzaG91bGQgbm90IG1ha2UgYW55IGFzc3VtcHRpb24gb2YgdGhlIGluaXRpYWwgdmFsdWUg
b2YgdGhlIGZvbnRzCiAgIC0tICByZXR1cm5lZCBieSBMb2FkIG9yIEZvbnRzZXRfTG9hZCwgc2lu
Y2UgdGhlc2UgY2FuIGJlIGV4dHJhY3RlZCBmcm9tIGEKICAgLS0gIGNhY2hlLgoKICAgcHJvY2Vk
dXJlIFVucmVmIChGb250IDogaW4gR2RrX0ZvbnQpOwogICAtLSAgRGVjcmVtZW50IHRoZSByZWZl
cmVuY2UgY291bnRlciBmb3IgdGhlIGZvbnQuCiAgIC0tICBXaGVuIHRoaXMgY291bnRlciByZWFj
aGVzIDAsIHRoZSBmb250IGlzIGRlbGV0ZWQgZnJvbSBtZW1vcnkuCgogICBmdW5jdGlvbiBJZCAo
Rm9udCA6IGluIEdka19Gb250KSByZXR1cm4gR2ludDsKICAgLS0gIFJldHVybiB0aGUgWCBmb250
IGlkIGZvciB0aGUgZm9udC4KICAgLS0gIFRoaXMgSWQgd2lsbCBvbmx5IGJlIG5lZWRlZCBpZiB5
b3Ugd2FudCB0byBjYWxsIGRpcmVjdGx5IFgxMSBmdW5jdGlvbnMsCiAgIC0tICB5b3Ugd29uJ3Qg
bmVlZCBpdCB3aXRoIEd0a0FkYS4KCiAgIGZ1bmN0aW9uIEVxdWFsIChGb250YSwgRm9udGIgOiBp
biBHZGtfRm9udCkgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBDb21wYXJlIHR3byBmb250cyBvciB0
d28gZm9udHNldHMgZm9yIGVxdWFsaXR5LgogICAtLSAgVHdvIGZvbnRzIGFyZSBlcXVhbCBpZiB0
aGV5IGhhdmUgdGhlIHNhbWUgZm9udCBJZC4KICAgLS0gIFR3byBmb250c2V0cyBhcmUgZXF1YWwg
aWYgdGhlIG5hbWUgZ2l2ZW4gdG8gRm9udHNldF9Mb2FkIHdhcyB0aGUgc2FtZS4KCiAgIGZ1bmN0
aW9uIEdldF9Bc2NlbnQgKEZvbnQgOiBpbiBHZGtfRm9udCkgcmV0dXJuIEdpbnQ7CiAgIC0tICBS
ZXR1cm4gdGhlIG1heGltYWwgYXNjZW50IGZvciB0aGUgZm9udC4KICAgLS0gIFRoaXMgaXMgdGhl
IGxvZ2ljYWwgZXh0ZW50IGFib3ZlIHRoZSBiYXNlbGluZSBmb3Igc3BhY2luZyBiZXR3ZWVuIHR3
bwogICAtLSAgbGluZXMuCgogICBmdW5jdGlvbiBHZXRfRGVzY2VudCAoRm9udCA6IGluIEdka19G
b250KSByZXR1cm4gR2ludDsKICAgLS0gIFJldHVybiB0aGUgbWF4aW1hbCBkZXNjZW50IGZvciB0
aGUgZm9udC4KICAgLS0gIFRoaXMgaXMgdGhlIGxvZ2ljYWwgZXh0ZW50IGJlbG93IHRoZSBiYXNl
bGluZSBmb3Igc3BhY2luZyBiZXR3ZWVuIHR3bwogICAtLSAgbGluZXMuCgogICBmdW5jdGlvbiBT
dHJpbmdfV2lkdGggKEZvbnQgOiBpbiBHZGtfRm9udDsKICAgICAgICAgICAgICAgICAgICAgICAg
ICBTdHIgIDogaW4gU3RyaW5nKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdpbnQ7
CiAgIC0tICBSZXR1cm4gdGhlIHdpZHRoIGluIHBpeGVscyB0aGF0IFN0ciB3aWxsIG9jY3VweSBp
ZiBkcmF3biB3aXRoIEZvbnQuCiAgIC0tICBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgdGhlIGRpc3Rh
bmNlIGJldHdlZW4gdGhlIG9yaWdpbiBvZiB0aGUgdGV4dCBhbmQKICAgLS0gIHRoZSBwb3NpdGlv
biBhdCB3aGljaCB0aGUgbmV4dCBzdHJpbmcgc2hvdWxkIGJlIGRyYXduLgoKICAgZnVuY3Rpb24g
VGV4dF9XaWR0aCAoRm9udCA6IGluIEdka19Gb250OwogICAgICAgICAgICAgICAgICAgICAgICBU
ZXh0IDogaW4gU3RyaW5nKQogICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHaW50OwogICAt
LSAgVGhpcyBpcyB0aGUgc2FtZSBmdW5jdGlvbiBhcyBTdHJpbmdfV2lkdGguCiAgIC0tICBJbiBD
LCB0aGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIHRvIG1lYXN1cmUgb25seSB0aGUgd2lkdGggb2Yg
YSBwYXJ0CiAgIC0tICBvZiB0aGUgc3RyaW5nLCBidXQgeW91IGNhbiBzaW1wbHkgcGFzcyBpdCBh
IHN1YnN0cmluZyBpbiBBZGEuCgogICBmdW5jdGlvbiBUZXh0X1dpZHRoIChGb250IDogaW4gR2Rr
X0ZvbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgOiBpbiBHZGsuVHlwZXMuR2RrX1dT
dHJpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdpbnQ7CiAgIC0tICBSZXR1cm4g
dGhlIHdpZHRoIGluIHBpeGVscyB0aGF0IFRleHQgd2lsbCBvY2N1cHkgb24gdGhlIHNjcmVlbi4K
ICAgLS0gIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHVzZWQgd2l0aCBzdHJpbmdzIHRoYXQgY29u
dGFpbiBVbmljb2RlCiAgIC0tICBjaGFyYWN0ZXJzCgogICBmdW5jdGlvbiBDaGFyX1dpZHRoIChG
b250IDogaW4gR2RrX0ZvbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgIENoYXIgOiBpbiBDaGFy
YWN0ZXIpCiAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdpbnQ7CiAgIC0tICBSZXR1cm4g
dGhlIHdpZHRoIGluIHBpeGVscyBvY2N1cGllZCBieSBhIHNpbmdsZSBjaGFyYWN0ZXIgb24gdGhl
IHNjcmVlbi4KICAgLS0gIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyB0aGUgZGlzdGFuY2UgYmV0d2Vl
biBDaGFyJ3Mgb3JpZ2luIG9uIHRoZSBzY3JlZW4KICAgLS0gIGFuZCB0aGUgb3JpZ2luIG9mIHRo
ZSBuZXh0IGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nLgoKICAgZnVuY3Rpb24gQ2hhcl9XaWR0aCAo
Rm9udCA6IGluIEdka19Gb250OwogICAgICAgICAgICAgICAgICAgICAgICBDaGFyIDogaW4gR2Rr
LlR5cGVzLkdka19XQ2hhcikKICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2ludDsKICAg
LS0gIFJldHVybiB0aGUgd2lkdGggaW4gcGl4ZWxzIG9jY3VwaWVkIGJ5IGEgc2luZ2xlIHdpZGUt
Y2hhcmFjdGVyLgoKICAgZnVuY3Rpb24gU3RyaW5nX01lYXN1cmUgKEZvbnQgOiBpbiBHZGtfRm9u
dDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0ciAgOiBpbiBTdHJpbmcpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBHaW50OwogICAtLSAgRGV0ZXJtaW5lIHRoZSBkaXN0
YW5jZSBmcm9tIHRoZSBvcmlnaW4gdG8gdGhlIHJpZ2h0bW9zdCBwb3J0aW9uIG9mIFN0ci4KICAg
LS0gIFRoaXMgaXMgbm90IHRoZSBjb3JyZWN0IHZhbHVlIGZvciBkZXRlcm1pbmluZyB0aGUgb3Jp
Z2luIG9mIHRoZSBuZXh0CiAgIC0tICBwb3J0aW9uIHdoZW4gZHJhd2luZyB0ZXh0IGluIG11bHRp
cGxlIHBpZWNlcy4KICAgLS0gIFNlZSBTdHJpbmdfV2lkdGggaW5zdGVhZC4KCiAgIGZ1bmN0aW9u
IFRleHRfTWVhc3VyZSAoRm9udCA6IGluIEdka19Gb250OwogICAgICAgICAgICAgICAgICAgICAg
ICAgIFRleHQgOiBpbiBTdHJpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2lu
dDsKICAgLS0gIFNhbWUgZnVuY3Rpb24gYSBTdHJpbmdfTWVhc3VyZS4KICAgLS0gIEluIEMsIHRo
aXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWVhc3VyZSBvbmx5IHRoZSB3aWR0aCBvZiBhIHBh
cnQgb2YKICAgLS0gIHRoZSBzdHJpbmcsIGJ1dCB5b3UgY2FuIHNpbXBseSBwYXNzIGl0IGEgc3Vi
c3RyaW5nIGluIEFkYS4KICAgLS0gIFRoaXMgaXMgYWxzbyBjYWxsZWQgdGhlIHJpZ2h0IGJlYXJp
bmcgb2YgdGhlIHN0cmluZy4KCiAgIGZ1bmN0aW9uIENoYXJfTWVhc3VyZSAoRm9udCA6IGluIEdk
a19Gb250OwogICAgICAgICAgICAgICAgICAgICAgICAgIENoYXIgOiBpbiBDaGFyYWN0ZXIpCiAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2ludDsKICAgLS0gIFJldHVybiB0aGUgd2lk
dGggaW4gcGl4ZWxzIG9mIENoYXIuCiAgIC0tICBBcyBvcHBvc2VkIHRvIENoYXJfV2lkdGgsIHRo
ZSB2YWx1ZSByZXR1cm5lZCBpcyBub3QgdGhlIGRpc3RhbmNlIGF0CiAgIC0tICB3aGljaCB0aGUg
bmV4dCBjaGFyYWN0ZXIgc2hvdWxkIGJlIGRyYXduLgogICAtLSAgVGhpcyBpcyBhbHNvIGNhbGxl
ZCB0aGUgcmlnaHQgYmVhcmluZyBvZiB0aGUgY2hhcmFjdGVyLgoKICAgcHJvY2VkdXJlIFN0cmlu
Z19FeHRlbnRzIChGb250ICAgICA6IGluICAgICBHZGsuRm9udC5HZGtfRm9udDsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTdHIgICAgICA6IGluICAgICBTdHJpbmc7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTGJlYXJpbmcgOiAgICBvdXQgR2ludDsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSYmVhcmluZyA6ICAgIG91dCBHaW50OwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdpZHRoICAgIDogICAgb3V0IEdpbnQ7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQXNjZW50ICAgOiAgICBvdXQgR2ludDsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBEZXNjZW50ICA6ICAgIG91dCBHaW50KTsKICAgLS0gIFJldHVybiB0aGUgbWV0cmljcyBmb3Ig
YSBnaXZlbiB0ZXh0LgogICAtLSAgU2VlIHRoZSBwaWN0dXJlIGZvciBtb3JlIGV4cGxhbmF0aW9u
cyBvbiBhbGwgdGhlIGZpZWxkcy4KICAgLS0gIExiZWFyaW5nIDogT3JpZ2luIHRvIGxlZnQgZWRn
ZSBvZiBjaGFyYWN0ZXIuCiAgIC0tICBSYmVhcmluZyA6IE9yaWdpbiB0byByaWdodCBlZGdlIG9m
IGNoYXJhY3Rlci4KICAgLS0gIFdpZHRoICAgIDogQWR2YW5jZSB0byBuZXh0IGNoYXJhY3Rlcidz
IG9yaWdpbi4KICAgLS0gIEFzY2VudCAgIDogQmFzZWxpbmUgdG8gdG9wIGVkZ2Ugb2YgY2hhcmFj
dGVyLgogICAtLSAgRGVzY2VudCAgOiBCYXNlbGluZSB0byBib3R0b20gZWRnZSBvZiBjaGFyYWN0
ZXIuCgogICBwcm9jZWR1cmUgVGV4dF9FeHRlbnRzIChGb250ICAgICAgICA6IGluICAgICBHZGtf
Rm9udDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dCAgICAgICAgOiBpbiAgICAgU3Ry
aW5nOwogICAgICAgICAgICAgICAgICAgICAgICAgICBMYmVhcmluZyAgICA6ICAgIG91dCBHaW50
OwogICAgICAgICAgICAgICAgICAgICAgICAgICBSYmVhcmluZyAgICA6ICAgIG91dCBHaW50Owog
ICAgICAgICAgICAgICAgICAgICAgICAgICBXaWR0aCAgICAgICA6ICAgIG91dCBHaW50OwogICAg
ICAgICAgICAgICAgICAgICAgICAgICBBc2NlbnQgICAgICA6ICAgIG91dCBHaW50OwogICAgICAg
ICAgICAgICAgICAgICAgICAgICBEZXNjZW50ICAgICA6ICAgIG91dCBHaW50KTsKICAgLS0gIFJl
dHVybiBhbGwgdGhlIG1ldHJpY3MgZm9yIGEgZ2l2ZW4gdGV4dC4KICAgLS0gIFNlZSB0aGUgcGlj
dHVyZSBmb3IgbW9yZSBleHBsYW5hdGlvbnMgb24gYWxsIHRoZSBmaWVsZHMuCiAgIC0tICBpbiBD
LCB0aGlzIGZ1bmN0aW9uIHdvdWxkIGJlIHVzZWQgZm9yIHBhcnQgb2YgYSBzdHJpbmcsIHdoaWNo
IHlvdSBjYW4KICAgLS0gIHNpbXVsYXRlIGluIEFkYSB3aXRoIGEgc3Vic3RyaW5nLgoKICAgcHJv
Y2VkdXJlIFRleHRfRXh0ZW50cyAoRm9udCAgICAgICAgOiBpbiAgICAgR2RrX0ZvbnQ7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFRleHQgICAgICAgIDogaW4gICAgIEdkay5UeXBlcy5HZGtf
V1N0cmluZzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgTGJlYXJpbmcgICAgOiAgICBvdXQg
R2ludDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgUmJlYXJpbmcgICAgOiAgICBvdXQgR2lu
dDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgV2lkdGggICAgICAgOiAgICBvdXQgR2ludDsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQXNjZW50ICAgICAgOiAgICBvdXQgR2ludDsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRGVzY2VudCAgICAgOiAgICBvdXQgR2ludCk7CiAgIC0t
ICBSZXR1cm4gYWxsIHRoZSBtZXRyaWNzIGZvciBhIGdpdmVuIHdpZGUtY2hhcmFjdGVyIHN0cmlu
Zy4KICAgLS0gIFNlZSB0aGUgcGljdHVyZSBmb3IgbW9yZSBleHBsYW5hdGlvbnMgb24gdGhlIHJl
dHVybmVkIHZhbHVlcy4KCiAgIGZ1bmN0aW9uIFN0cmluZ19IZWlnaHQgKEZvbnQgOiBpbiBHZGtf
Rm9udDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyICA6IGluIFN0cmluZykKICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2ludDsKICAgLS0gIFJldHVybiB0aGUgaGVpZ2h0
IGluIHBpeGVscyBvZiB0aGUgc3RyaW5nLgogICAtLSAgVGhpcyBpcyB0aGUgdG90YWwgaGVpZ2h0
LCBhbmQgeW91IGNhbiBub3QgZWFzaWx5IHRlbGwgaG93IHRoaXMgaGVpZ2h0CiAgIC0tICBpcyBz
cGxpdCBhcm91bmQgdGhlIGJhc2VsaW5lLgoKICAgZnVuY3Rpb24gVGV4dF9IZWlnaHQgKEZvbnQg
OiBpbiBHZGtfRm9udDsKICAgICAgICAgICAgICAgICAgICAgICAgIFN0ciAgOiBpbiBTdHJpbmcp
CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHaW50OwogICAtLSAgU2FtZSBhcyBTdHJp
bmdfSGVpZ2h0LgogICAtLSAgSW4gQywgdGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBtZWFz
dXJlIG9ubHkgdGhlIHdpZHRoIG9mIGEgcGFydCBvZgogICAtLSAgdGhlIHN0cmluZywgYnV0IHlv
dSBjYW4gc2ltcGx5IHBhc3MgaXQgYSBzdWJzdHJpbmcgaW4gQWRhLgogICAtLSAgVGhpcyBpcyBh
bHNvIGNhbGxlZCB0aGUgcmlnaHQgYmVhcmluZyBvZiB0aGUgc3RyaW5nLgoKICAgZnVuY3Rpb24g
Q2hhcl9IZWlnaHQgKEZvbnQgOiBpbiBHZGtfRm9udDsKICAgICAgICAgICAgICAgICAgICAgICAg
IENoYXIgOiBpbiBDaGFyYWN0ZXIpCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHaW50
OwogICAtLSAgUmV0dXJuIHRoZSB0b3RhbCBoZWlnaHQgaW4gcGl4ZWxzIG9mIGEgc2luZ2xlIGNo
YXJhY3Rlci4KCgpwcml2YXRlCiAgIE51bGxfRm9udCA6IGNvbnN0YW50IEdka19Gb250IDo9IG51
bGw7CiAgIHByYWdtYSBJbXBvcnQgKEMsIENoYXJfSGVpZ2h0LCAiZ2RrX2NoYXJfaGVpZ2h0Iik7
CiAgIHByYWdtYSBJbXBvcnQgKEMsIElkLCAiZ2RrX2ZvbnRfaWQiKTsKICAgcHJhZ21hIEltcG9y
dCAoQywgUmVmLCAiZ2RrX2ZvbnRfcmVmIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFVucmVmLCAi
Z2RrX2ZvbnRfdW5yZWYiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X0FzY2VudCwgImFkYV9n
ZGtfZm9udF9nZXRfYXNjZW50Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9EZXNjZW50LCAi
YWRhX2dka19mb250X2dldF9kZXNjZW50Iik7CmVuZCBHZGsuRm9udDsKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LS0gICAgICAgICAgR3RrQWRhIC0gQWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAg
ICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5
cmlnaHQgKEMpIDE5OTgtMjAwMCAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVt
bWFudWVsIEJyaW90LCBKb2VsIEJyb2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAg
LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAg
ICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj
ICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAw
MjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K
LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMg
aW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0
aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJs
ZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAg
LS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0
ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdo
dCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KCi0tICA8ZGVzY3JpcHRpb24+Ci0tCi0tICBBIGdyYXBoaWMgY29udGV4dCBpcyBhIHN0
cnVjdHVyZSB0aGF0IGRlc2NyaWJlcyBhbGwgdGhlIGF0dHJpYnV0ZXMKLS0gIHVzZWQgYnkgdGhl
IGRyYXdpbmcgZnVuY3Rpb25zIGluIEdkay4KLS0gIFRoZSBjb2xvcnMsIGxpbmUgc3R5bGVzLCBG
aWxsIHN0eWxlcyBhbmQgc28gb24gYXJlIGRlZmluZWQgdGhyb3VnaAotLSAgdGhpcyBzdHJ1Y3R1
cmUuCi0tCi0tICBPbiBYMTEgc3lzdGVtcywgdGhpcyBzdHJ1Y3R1cmUgaXMgc3RvcmVkIGRpcmVj
dGx5IG9uIHRoZSBYU2VydmVyLAotLSAgd2hpY2ggc3BlZWRzIHVwIHRoZSB0cmFuc2ZlciBvZiB0
aGUgZHJhd2luZyBhdHRyaWJ1dGVzIGEgbG90LiBJbnN0ZWFkCi0tICBvZiB0cmFuc2ZlcnJpbmcg
YWxsIG9mIHRoZW0gZXZlcnkgdGltZSB5b3UgY2FsbCBvbmUgb2YgdGhlIGRyYXdpbmcKLS0gIGZ1
bmN0aW9ucywgeW91IHNpbXBseSBzcGVjaWZ5IHdoaWNoIEdDIHlvdSB3YW50IHRvIHVzZS4KLS0K
LS0gIFRodXMsIGl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBhcyBtYW55IEdDcyBhcyB5b3Ug
bmVlZCwgaW5zdGVhZAotLSAgb2YgY3JlYXRpbmcgYSBzaW5nbGUgb25lIHRoYXQgaXMgbW9kaWZp
ZWQgZXZlcnkgdGltZSB5b3UgbmVlZCB0bwotLSAgbW9kaWZ5IG9uZSBvZiB0aGUgYXR0cmlidXRl
cy4KLS0KLS0gIE9uIFVuaXggbWFjaGluZXMsIHlvdSBzaG91bGQgaGF2ZSBhIGxvb2sgYXQgdGhl
IGV4dGVybmFsIHV0aWxpdHkgJ3hnYycKLS0gIHdoaWNoIGRlbW9uc3RyYXRlcyBhbGwgdGhlIGJh
c2ljIHNldHRpbmdzIG9mIHRoZSBncmFwaGljIGNvbnRleHRzLgotLQotLSAgPC9kZXNjcmlwdGlv
bj4KLS0gIDxjX3ZlcnNpb24+MS4yLjY8L2NfdmVyc2lvbj4KCndpdGggR2xpYjsgdXNlIEdsaWI7
CndpdGggR2RrLkNvbG9yOwp3aXRoIEdkay5Gb250Owp3aXRoIEdkay5SZWN0YW5nbGU7CndpdGgg
R2RrLlJlZ2lvbjsKd2l0aCBHZGsuVHlwZXM7CndpdGggR2RrLldpbmRvdzsKCnBhY2thZ2UgR2Rr
LkdDIGlzCgogICBzdWJ0eXBlIEdka19HQyBpcyBHZGsuR2RrX0dDOwogICAtLSAgQSBncmFwaGlj
IGNvbnRleHQgdGhhdCBjb250YWluIGFsbCB0aGUgaW5mb3JtYXRpb24gdG8gZHJhdyBncmFwaGlj
cwogICAtLSAgb24gdGhlIHNjcmVlbi4KICAgLS0gIENyZWF0aW5nIHRoZXNlIEdDIGlzIG1vcmUg
ZWZmaWNpZW50IHRoYW4gcGFzc2luZyBhIGxvdCBvZiBwYXJhbWV0ZXJzCiAgIC0tICB0byBlYWNo
IG9mIHRoZSBkcmF3aW5nIGZ1bmN0aW9ucywgc2luY2UgdGhlc2UgR0MgYXJlIHN0b3JlZCBvbiB0
aGUKICAgLS0gIHNlcnZlciBzaWRlIGFuZCBkbyBub3QgbmVlZCB0byBiZSBwYXNzIHRocm91Z2gg
dGhlIG5ldHdvcmsuCgogICB0eXBlIEdka19HQ19WYWx1ZXMgaXMgbmV3IEdkay5DX1Byb3h5Owog
ICAtLSAgQSBzdHJ1Y3R1cmUgdXNlZCBvbiB0aGUgY2xpZW50IHNpZGUgdG8gc3RvcmUgdGhlIHNh
bWUgaW5mb3JtYXRpb24KICAgLS0gIGFzIHRoZSBHQy4gQ3JlYXRpbmcgYSBHQyBmcm9tIHRoaXMg
c3RydWN0dXJlIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4KICAgLS0gIGNhbGxpbmcgYSBsb3Qgb2Yg
ZnVuY3Rpb25zIHRvIG1vZGlmeSB0aGUgR0MgZGlyZWN0bHksIHNpbmNlIHRoZXJlIGlzCiAgIC0t
ICBhIHNpbmdsZSBjYWxsIHRvIHRoZSBzZXJ2ZXIuCgogICBOdWxsX0dDIDogY29uc3RhbnQgR2Rr
X0dDOwogICBOdWxsX0dDX1ZhbHVlcyA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXM7CgogICAtLS0t
LS0tLS0tLS0KICAgLS0gR2RrX0dDIC0tCiAgIC0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIEdk
a19OZXcgKEdDICAgICA6ICAgIG91dCBHZGtfR0M7CiAgICAgICAgICAgICAgICAgICAgICBXaW5k
b3cgOiBpbiAgICAgR2RrLldpbmRvdy5HZGtfV2luZG93KTsKICAgLS0gIENyZWF0ZSBhIG5ldyBn
cmFwaGljIGNvbnRleHQuCiAgIC0tICBUaGUgd2luZG93IG11c3QgaGF2ZSBiZWVuIHJlYWxpemVk
IGZpcnN0IChzbyB0aGF0IGl0IGlzIGFzc29jaWF0ZWQKICAgLS0gIHdpdGggc29tZSByZXNvdXJj
ZXMgb24gdGhlIFhzZXJ2ZXIpLgogICAtLSAgVGhlIEdDIGNhbiB0aGVuIGJlIHVzZWQgZm9yIGFu
eSB3aW5kb3cgdGhhdCBoYXMgdGhlIHNhbWUgcm9vdCB3aW5kb3csCiAgIC0tICBhbmQgc2FtZSBj
b2xvciBkZXB0aCBhcyBXaW5kb3cuCiAgIC0tICBTZWUgdGhlIG1hbnVhbCBwYWdlIGZvciBYQ3Jl
YXRlR0Mgb24gVW5peCBzeXN0ZW1zIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKICAgcHJvY2VkdXJl
IEdka19OZXcgKEdDICAgICAgICAgIDogICAgb3V0IEdka19HQzsKICAgICAgICAgICAgICAgICAg
ICAgIFdpbmRvdyAgICAgIDogaW4gICAgIEdkay5XaW5kb3cuR2RrX1dpbmRvdzsKICAgICAgICAg
ICAgICAgICAgICAgIFZhbHVlcyAgICAgIDogaW4gICAgIEdka19HQ19WYWx1ZXM7CiAgICAgICAg
ICAgICAgICAgICAgICBWYWx1ZXNfTWFzayA6IGluICAgICBUeXBlcy5HZGtfR0NfVmFsdWVzX01h
c2spOwogICAtLSAgQ3JlYXRlIGEgbmV3IGdyYXBoaWMgY29udGV4dC4KICAgLS0gIEl0IGlzIGRp
cmVjdGx5IGNyZWF0ZWQgd2l0aCB0aGUgdmFsdWVzIHNldCBpbiBWYWx1ZXMsIGFuZCB3aG9zZQog
ICAtLSAgYXNzb2NpYXRlZCBmaWVsZCBoYXMgYmVlbiBzZXQgaW4gVmFsdWVzX01hc2suCiAgIC0t
ICBUaGlzIGlzIGZhc3RlciB0aGFuIGNhbGxpbmcgdGhlIHNpbXBsZSBHZGtfTmV3IGZ1bmN0aW9u
IGFuZCBlYWNoIG9mCiAgIC0tICBvdGhlciBmdW5jdGlvbnMgaW4gdGhpcyBwYWNrYWdlLCBzaW5j
ZSBlYWNoIG9mIHRoZW0gcmVxdWlyZXMgYSBjYWxsCiAgIC0tICB0byB0aGUgc2VydmVyLgoKICAg
cHJvY2VkdXJlIERlc3Ryb3kgKEdDIDogaW4gR2RrX0dDKTsKICAgLS0gIEZyZWUgdGhlIG1lbW9y
eSBhbGxvY2F0ZWQgb24gdGhlIHNlcnZlciBmb3IgdGhlIGdyYXBoaWMgY29udGV4dC4KICAgLS0g
IEdyYXBoaWMgY29udGV4dHMgYXJlIG5ldmVyIGZyZWVkIGF1dG9tYXRpY2FsbHkgYnkgR3RrQWRh
LCB0aGlzIGlzCiAgIC0tICB0aGUgdXNlciByZXNwb25zaWJpbGl0eSB0byBkbyBzby4KCiAgIHBy
b2NlZHVyZSBSZWYgKEdDIDogaW4gR2RrX0dDKTsKICAgLS0gIEluY3JlbWVudCB0aGUgcmVmZXJl
bmNlIGNvdW50aW5nIGZvciB0aGUgZ3JhcGhpYyBjb250ZXh0LgogICAtLSAgWW91IHNob3VsZCB1
c3VhbGx5IG5vdCBoYXZlIHRvIHVzZSBpdC4KCiAgIHByb2NlZHVyZSBVbnJlZiAoR0MgOiBpbiBH
ZGtfR0MpOwogICAtLSAgRGVjcmVtZW50IHRoZSByZWZlcmVuY2UgY291bnRpbmcgZm9yIHRoZSBn
cmFwaGljIGNvbnRleHQuCiAgIC0tICBXaGVuIHRoaXMgcmVhY2hlcyAwLCB0aGUgZ3JhcGhpYyBj
b250ZXh0IGlzIGRlc3Ryb3llZC4KCiAgIHByb2NlZHVyZSBHZXRfVmFsdWVzIChHQyAgICAgOiBp
biBHZGtfR0M7CiAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMgOiBpbiBHZGtfR0NfVmFs
dWVzKTsKICAgLS0gIEdldCB0aGUgdmFsdWVzIHNldCBpbiB0aGUgR0MuCiAgIC0tICBUaGlzIGNv
cGllcyB0aGUgdmFsdWVzIGZyb20gdGhlIHNlcnZlciB0byBjbGllbnQsIGFsbG93aW5nIGZhc3Rl
cgogICAtLSAgbW9kaWZpY2F0aW9ucy4gVmFsdWVzIGNhbiB0aGVuIGJlIGNvcGllZCBiYWNrIHRv
IHRoZSBzZXJ2ZXIgYnkKICAgLS0gIGNyZWF0aW5nIGEgbmV3IGdyYXBoaWMgY29udGV4dCB3aXRo
IHRoZSBmdW5jdGlvbiBHZGtfTmV3IGFib3ZlLgogICAtLSAgVmFsdWVzIHNob3VsZCBoYXZlIGJl
ZW4gYWxsb2NhdGVkIGZpcnN0IHdpdGggYSBjYWxsIHRvIEdka19OZXcuCgogICBwcm9jZWR1cmUg
U2V0X0ZvcmVncm91bmQgKEdDICAgIDogaW4gR2RrX0dDOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENvbG9yIDogaW4gR2RrLkNvbG9yLkdka19Db2xvcik7CiAgIC0tICBTZXQgdGhlIGZv
cmVncm91bmQgY29sb3IgZm9yIHRoZSBncmFwaGljIGNvbnRleHQuCiAgIC0tICBUaGlzIGNvbG9y
IGlzIHRoZSBvbmUgdGhhdCBpcyB1c2VkIGJ5IG1vc3QgZHJhd2luZyBmdW5jdGlvbnMuCgogICBw
cm9jZWR1cmUgU2V0X0JhY2tncm91bmQgKEdDICAgICA6IGluIEdka19HQzsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDb2xvciAgOiBpbiBHZGsuQ29sb3IuR2RrX0NvbG9yKTsKICAgLS0g
IFNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGdyYXBoaWMgY29udGV4dC4KCiAgIHBy
b2NlZHVyZSBTZXRfRm9udCAoR0MgICA6IGluIEdka19HQzsKICAgICAgICAgICAgICAgICAgICAg
ICBGb250IDogaW4gR2RrLkZvbnQuR2RrX0ZvbnQpOwogICAtLSAgU2V0IHRoZSBmb250IHVzZWQg
YnkgdGhlIGdyYXBoaWMgY29udGV4dC4KICAgLS0gIFRoaXMgZm9udCBpcyB1c2VkIGJ5IHRoZSBm
dW5jdGlvbiBHZGsuRHJhd2FibGUuRHJhd19UZXh0LgoKICAgcHJvY2VkdXJlIFNldF9GdW5jdGlv
biAoR0MgICA6IGluIEdka19HQzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgRnVuYyA6IGlu
IFR5cGVzLkdka19GdW5jdGlvbik7CiAgIC0tICBTZXQgdGhlIGZ1bmN0aW9uIGluIHRoZSBncmFw
aGljIGNvbnRleHQuCiAgIC0tICBUaGlzIGZ1bmN0aW9uIHNwZWNpZmllcyBob3cgdGhlIHBvaW50
cyBhcmUgcHV0IG9uIHRoZSBzY3JlZW4sIGllCiAgIC0tICBpZiBHdGtBZGEgaG93IEd0a0FkYSBz
aG91bGQgbWl4IHRoZSBwb2ludCBhbHJlYWR5IG9uIHRoZSBzY3JlZW4KICAgLS0gIGFuZCB0aGUg
bmV3IHBvaW50IGJlaW5nIHB1dC4KICAgLS0gIE5vdGUgdGhhdCBzZXR0aW5nIHRoZSBmdW5jdGlv
biB0byBHZGtfWG9yIGlzIG5vdCB0aGUgcmlnaHQgd2F5CiAgIC0tICB0byBkbyBhbmltYXRpb24u
IFlvdSBzaG91bGQgaW5zdGVhZCBzYXZlIHRoZSBiYWNrZ3JvdW5kIHBpeG1hcCwKICAgLS0gIHB1
dCB0aGUgaW1hZ2UsIGFuZCB0aGVuIHJlc3RvcmUgdGhlIGJhY2tncm91bmQuCiAgIC0tCiAgIC0t
ICBJbiBnZW5lcmFsLCB0aGVyZSBhcmUgdGhyZWUgYmFzaWMgc3RlcHMgdG8gZHJhd2luZzogcmVh
ZGluZyB0aGUgc291cmNlCiAgIC0tICBwaXhlbHMsIHJlYWRpbmcgdGhlIGRlc3RpbmF0aW9uIHBp
eGVscywgYW5kIHdyaXRpbmcgdGhlIGRlc3RpbmF0aW9uCiAgIC0tICBwaXhlbHMuICBTb21lIGZ1
bmN0aW9ucyBvbmx5IHBlcmZvcm0gdGhlIHRoaXJkIHN0ZXAgKFNldCBhbmQgQ2xlYXIpLAogICAt
LSAgc29tZSBkbyBub3QgbmVlZCB0aGUgbWlkZGxlIHN0ZXAgKENvcHkpLCB3aGVyZWFzIG1vc3Qg
cmVxdWlyZSB0aGUgdGhyZWUKICAgLS0gIHN0ZXBzLCBhbmQgdGh1cyBjYW4gYmUgbXVjaCBzbG93
ZXIuCgogICBwcm9jZWR1cmUgU2V0X0ZpbGwgKEdDICAgOiBpbiBHZGtfR0M7CiAgICAgICAgICAg
ICAgICAgICAgICAgRmlsbCA6IGluIFR5cGVzLkdka19GaWxsKTsKICAgLS0gIFNldCB0aGUgcGF0
dGVybiB1c2VkIGZvciBmaWxsaW5nIHRoZSBwb2x5Z29ucy4KCiAgIHByb2NlZHVyZSBTZXRfVGls
ZSAoR0MgICA6IGluIEdka19HQzsKICAgICAgICAgICAgICAgICAgICAgICBUaWxlIDogaW4gR2Rr
Lkdka19QaXhtYXApOwoKICAgcHJvY2VkdXJlIFNldF9TdGlwcGxlIChHQyAgICAgIDogaW4gR2Rr
X0dDOwogICAgICAgICAgICAgICAgICAgICAgICAgIFN0aXBwbGUgOiBpbiBHZGsuR2RrX1BpeG1h
cCk7CgogICBwcm9jZWR1cmUgU2V0X0NsaXBfTWFzayAoR0MgICAgOiBpbiBHZGsuR0MuR2RrX0dD
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFzayAgOiBpbiBHZGsuR2RrX0JpdG1hcCk7
CiAgIC0tICBJZiBNYXNrIGlzIHNldCB0byBOdWxsX0JpdG1hcCwgdGhlbiBubyBjbGlwX21hc2sg
aXMgdXNlZCBmb3IgZHJhd2luZy4KICAgLS0gIFBvaW50cyB3aWxsIGJlIGRyYXduIHRocm91Z2gg
dGhpcyBHQyBvbmx5IHdoZXJlIHRoZSBiaXRzIGFyZSBzZXQgdG8gMQogICAtLSAgaW4gdGhlIG1h
c2suIFNlZSBhbHNvIHRoZSBmdW5jdGlvbiBTZXRfQ2xpcF9PcmlnaW4gZm9yCiAgIC0tICBob3cg
dG8gbW92ZSB0aGUgbWFzayBpbnNpZGUgdGhlIEdDLgoKICAgcHJvY2VkdXJlIFNldF9Uc19Pcmln
aW4gKEdDICAgOiBpbiBHZGtfR0M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBYLCBZIDog
aW4gR2ludCk7CiAgIC0tICBTZXQgdGhlIFRpbGUgYW5kIFN0aXBwbGUgb3JpZ2luIGluIHRoZSBn
cmFwaGljIGNvbnRleHQuCgogICBwcm9jZWR1cmUgU2V0X0NsaXBfT3JpZ2luIChHQyAgIDogaW4g
R2RrX0dDOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYLCBZIDogaW4gR2ludCk7CiAg
IC0tICBTZXQgdGhlIG9yaWdpbiBvZiB0aGUgY2xpcCBtYXNrLgogICAtLSAgU2VlIHRoZSBmdW5j
dGlvbnMgU2V0X0NsaXBfUmVjdGFuZ2xlLCBTZXRfQ2xpcF9SZWdpb24gYW5kCiAgIC0tICBHZGsu
Qml0bWFwLlNldF9DbGlwX01hc2sgZm9yIG1vcmUgZXhwbGFuYXRpb24uCgogICBwcm9jZWR1cmUg
U2V0X0NsaXBfUmVjdGFuZ2xlCiAgICAgKEdDICAgICAgICA6IGluIEdka19HQzsKICAgICAgUmVj
dGFuZ2xlIDogaW4gR2RrLlJlY3RhbmdsZS5HZGtfUmVjdGFuZ2xlKTsKICAgLS0gIFNldCB0aGUg
Y2xpcCByZWN0YW5nbGUuCiAgIC0tICBPbmx5IHRoZSBwb2ludHMgdGhhdCBhcmUgZHJhd24gaW5z
aWRlIHRoaXMgcmVjdGFuZ2xlIHdpbGwgYmUgZGlzcGxheWVkCiAgIC0tICBvbiB0aGUgc2NyZWVu
LiBOb3RlIHRoYXQgeW91IG1pZ2h0IGhhdmUgdG8gbW9kaWZ5IHRoZSBDbGlwIG9yaWdpbiBmaXJz
dAogICAtLSAgd2l0aCBTZXRfQ2xpcF9PcmlnaW4uCiAgIC0tICBTZWUgU2V0X0NsaXBfTWFzayB0
byBkZWxldGUgdGhlIGN1cnJlbnQgY2xpcCBtYXNrLgoKICAgcHJvY2VkdXJlIFNldF9DbGlwX1Jl
Z2lvbiAoR0MgICAgIDogaW4gR2RrX0dDOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
ZWdpb24gOiBpbiBHZGsuUmVnaW9uLkdka19SZWdpb24pOwogICAtLSAgRGVmaW5lIGEgY2xpcCBy
ZWdpb24gb24gdGhlIHNjcmVlbi4KICAgLS0gIFRoaXMgaXMganVzdCBsaWtlIFNldF9DbGlwX1Jl
Y3RhbmdsZSwgZXhjZXB0IHRoYXQgYSByZWdpb24gaXMgYSBtb3JlCiAgIC0tICBjb21wbGV4IHJl
Z2lvbiwgdGhhdCBjYW4gYmUgdGhlIGludGVyc2VjdGlvbiBvciB1bmlvbiBvZiBtdWx0aXBsZQog
ICAtLSAgcmVjdGFuZ2xlcy4gTm90ZSB0aGF0IHRoZSBDbGlwX09yaWdpbiBjYW4gaGF2ZSBhbiBp
bmZsdWVuY2Ugb24gdGhpcwogICAtLSAgZnVuY3Rpb24uCgogICBwcm9jZWR1cmUgU2V0X1N1Yndp
bmRvdyAoR0MgICA6IGluIEdka19HQzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGUg
OiBpbiBUeXBlcy5HZGtfU3Vid2luZG93X01vZGUpOwogICAtLSAgU2V0IHRoZSBzdWJ3aW5kb3cg
bW9kZSBmb3IgdGhlIGdyYXBoaWMgY29udGV4dC4KICAgLS0gIFRoaXMgc3BlY2lmaWVzIHdoZXRo
ZXIgdGhlIGRyYXdpbmcgcm91dGluZXMgc2hvdWxkIGJlIGNsaXBwZWQgdG8KICAgLS0gIHRoZSBz
cGVjaWZpYyB3aW5kb3cgdGhleSBhcmUgZHJhd24gaW50bywgb3IgaWYgdGhleSBzaG91bGQgZXh0
ZW5kCiAgIC0tICB0byBzdWJ3aW5kb3dzIGFzIHdlbGwuCgogICBwcm9jZWR1cmUgU2V0X0V4cG9z
dXJlcyAoR0MgICAgICAgIDogaW4gR2RrX0dDOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
RXhwb3N1cmVzIDogaW4gQm9vbGVhbik7CiAgIC0tICBFeHBvc3VyZXMgaW5kaWNhdGVzIHdoZXRo
ZXIgeW91IHdhbnQgImV4cG9zZSIgYW5kICJub2V4cG9zZSIgZXZlbnRzIHRvCiAgIC0tICBiZSBy
ZXBvcnRlZCB3aGVuIGNhbGxpbmcgQ29weV9BcmVhIGFuZCBDb3B5X1BsYW5lIHdpdGggdGhpcyBH
Qy4KICAgLS0gIFlvdSBzaG91bGQgZGlzYWJsZSB0aGlzIGlmIHlvdSBkb24ndCBuZWVkIHRoZSBl
dmVudCBhbmQgd2FudCB0byBvcHRpbWl6ZQogICAtLSAgeW91ciBhcHBsaWNhdGlvbi4KICAgLS0g
IElmIEV4cG9zdXJlcyBpcyBUcnVlLCB0aGVuIGFueSBjYWxsIHRvIENvcHlfQXJlYSBvciBEcmF3
X1BpeG1hcCB3aWxsCiAgIC0tICBnZW5lcmF0ZSBhbiBleHBvc2UgZXZlbnQuIE90aGVyd2lzZSwg
dGhlc2Ugd2lsbCBnZW5lcmF0ZSBhIG5vX2V4cG9zZQogICAtLSAgZXZlbnQuCgogICBwcm9jZWR1
cmUgU2V0X0xpbmVfQXR0cmlidXRlcyAoR0MgICAgICAgICA6IGluIEdka19HQzsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExpbmVfV2lkdGggOiBpbiBHaW50OwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTGluZV9TdHlsZSA6IGluIFR5cGVzLkdka19MaW5lX1N0
eWxlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FwX1N0eWxlICA6IGluIFR5
cGVzLkdka19DYXBfU3R5bGU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKb2lu
X1N0eWxlIDogaW4gVHlwZXMuR2RrX0pvaW5fU3R5bGUpOwogICAtLSAgU2V0IHRoZSBsaW5lIGF0
dHJpYnV0ZXMgZm9yIHRoaXMgR0MuCiAgIC0tICBMaW5lX1dpZHRoIGlzIHRoZSB3aWR0aCBvZiB0
aGUgbGluZS4gSWYgaXRzIHZhbHVlIGlzIDAsIHRoZSBsaW5lIGlzIGFzCiAgIC0tICB0aGluIGFz
IHBvc3NpYmxlLCBwb3NzaWJseSBldmVuIG1vcmUgc28gdGhhbiBpZiB0aGUgd2lkdGggaXMgMS4g
SXQgaXMKICAgLS0gIGFsc28gZmFzdGVyIHRvIGRyYXcgYSBsaW5lIHdpdGggd2lkdGggMCB0aGFu
IGFueSBvdGhlciBsaW5lIHdpZHRoLgogICAtLQogICAtLSAgTGluZV9TdHlsZSBzcGVjaWZpZXMg
d2hldGhlciB0aGUgbGluZSBzaG91bGQgYmUgc29saWQgb3IgZGFzaGVkLgogICAtLSAgV2l0aCBM
aW5lX09uX09mZl9EYXNoLCB0aGUgY29sb3JzIGFyZSBhbHRlcm5hdGl2ZWx5IHRoZSBmb3JlZ3Jv
dW5kCiAgIC0tICBjb2xvciwgYW5kIGJsYW5rLiBXaXRoIExpbmVfRG91YmxlX0Rhc2gsIHRoZSBj
b2xvcnMgYXJlCiAgIC0tICBhbHRlcm5hdGl2ZWx5IHRoZSBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3Jv
dW5kIGNvbG9ycy4KICAgLS0KICAgLS0gIENhcF9TdHlsZSBzcGVjaWZpZXMgaG93IHRoZSBsaW5l
IHNob3VsZCBlbmQsIGVpdGhlciBmbGF0IG9yIHJvdW5kZWQuCiAgIC0tCiAgIC0tICBKb2luX1N0
eWxlIHNwZWNpZmllcyBob3cgdHdvIGNvbnNlY3V0aXZlIGxpbmVzIGRyYXduIGJ5IERyYXdfTGlu
ZXMgYXJlCiAgIC0tICBjb25uZWN0ZWQuCgogICBwcm9jZWR1cmUgU2V0X0Rhc2hlcyAoR2MgICAg
ICAgICAgOiBpbiBHZGtfR0M7CiAgICAgICAgICAgICAgICAgICAgICAgICBEYXNoX09mZnNldCA6
IGluIEdpbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBEYXNoX0xpc3QgICA6IGluIEd1Y2hh
cl9BcnJheSk7CiAgIC0tICBTcGVjaWZ5IHRoZSBkYXNoIHBhdHRlcm4gd2hlbiB0aGUgbGluZSdz
IHN0eWxlIGlzIGFueXRoaW5nIGJ1dCBzb2xpZC4KICAgLS0gIFRoZSB2YWx1ZXMgaW4gdGhlIGFy
cmF5IGFsdGVybmF0aXZlbHkgZ2l2ZSB0aGUgbGVuZ3RoIChpbiBwaXhlbHMpIG9mCiAgIC0tICB0
aGUgcGxhaW4gZGFzaCwgdGhlIGVtcHR5IGRhc2gsIHRoZSBzZWNvbmQgcGxhaW4gZGFzaCwgLi4u
IE5vbmUgb2YKICAgLS0gIHRoZXNlIHZhbHVlcyBjYW4gYmUgMC4gSWYgdGhlcmUgaXMgYW4gb2Rk
IG51bWJlciBvZiBpdGVtcyBpbiBEYXNoX0xpc3QsCiAgIC0tICB0aGlzIGlzIGVxdWl2YWxlbnQg
dG8gZ2l2aW5nIHRoZSBhcnJheSBjb25jYXRlbmF0ZWQgd2l0aCBpdHNlbGYuCiAgIC0tICBEYXNo
X09mZnNldCBzcGVjaWZpZXMgdGhlIHBoYXNlIG9mIHRoZSBwYXR0ZXJuIHRvIHN0YXJ0IHdpdGgu
CgogICBwcm9jZWR1cmUgQ29weSAoRHN0X0dDIDogaW4gR2RrX0dDOwogICAgICAgICAgICAgICAg
ICAgU3JjX0dDIDogaW4gR2RrX0dDKTsKICAgLS0gIENvcHkgYSBTcmNfR0MgdG8gRHN0X0dDLgoK
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBHZGtfQ29sb3JfVmFsdWVzIC0tCiAgIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEdka19OZXcgcmV0dXJuIEdka19HQ19W
YWx1ZXM7CiAgIC0tICBBbGxvY2F0ZSBhIG5ldyBWYWx1ZXMgc3RydWN0dXJlIG9uIHRoZSBjbGll
bnQuCiAgIC0tICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgYSBDIHN0cnVjdHVy
ZSwgYW5kIHRodXMgbmVlZHMgdG8KICAgLS0gIGJlIGZyZWVkIHdpdGggYSBjYWxsIHRvIEZyZWUg
YmVsb3cuCgogICBwcm9jZWR1cmUgRnJlZSAoVmFsdWVzIDogaW4gR2RrX0dDX1ZhbHVlcyk7CiAg
IC0tICBGcmVlIHRoZSBDIHN0cnVjdHVyZSBhc3NvY2lhdGVkIHdpdGggVmFsdWVzLgoKICAgcHJv
Y2VkdXJlIFNldF9Gb3JlZ3JvdW5kIChWYWx1ZXMgOiBpbiBHZGtfR0NfVmFsdWVzOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENvbG9yICA6IGluIEdkay5Db2xvci5HZGtfQ29sb3IpOwog
ICAtLSAgU2FtZSBhcyBTZXRfRm9yZWdyb3VuZCwgYnV0IG9uIHRoZSBjbGllbnQgc2lkZQoKICAg
cHJvY2VkdXJlIFNldF9CYWNrZ3JvdW5kIChWYWx1ZXMgOiBpbiBHZGtfR0NfVmFsdWVzOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yICA6IGluIEdkay5Db2xvci5HZGtfQ29sb3Ip
OwogICAtLSAgU2FtZSBhcyBTZXRfQmFja2dyb3VuZCwgYnV0IG9uIHRoZSBjbGllbnQgc2lkZQoK
ICAgcHJvY2VkdXJlIFNldF9Gb250IChWYWx1ZXMgOiBpbiBHZGtfR0NfVmFsdWVzOwogICAgICAg
ICAgICAgICAgICAgICAgIEZvbnQgICA6IGluIEdkay5Gb250Lkdka19Gb250KTsKICAgLS0gIFNh
bWUgYXMgU2V0X0ZvbnQsIGJ1dCBvbiB0aGUgY2xpZW50IHNpZGUKCiAgIHByb2NlZHVyZSBTZXRf
RnVuY3Rpb24gKFZhbHVlcyA6IGluIEdka19HQ19WYWx1ZXM7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZ1bmMgICA6IGluIFR5cGVzLkdka19GdW5jdGlvbik7CiAgIC0tICBTYW1lIGFzIFNl
dF9GdW5jdGlvbiwgYnV0IG9uIHRoZSBjbGllbnQgc2lkZQoKICAgcHJvY2VkdXJlIFNldF9GaWxs
IChWYWx1ZXMgOiBpbiBHZGtfR0NfVmFsdWVzOwogICAgICAgICAgICAgICAgICAgICAgIEZpbGwg
ICA6IGluIFR5cGVzLkdka19GaWxsKTsKICAgLS0gIFNhbWUgYXMgU2V0X0ZpbGwsIGJ1dCBvbiB0
aGUgY2xpZW50IHNpZGUKCiAgIHByb2NlZHVyZSBTZXRfVHNfT3JpZ2luIChWYWx1ZXMgOiBpbiBH
ZGtfR0NfVmFsdWVzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgWCwgWSAgIDogaW4gR2lu
dCk7CiAgIC0tICBTYW1lIGFzIFNldF9Uc19PcmlnaW4sIGJ1dCBvbiB0aGUgY2xpZW50IHNpZGUK
CiAgIHByb2NlZHVyZSBTZXRfQ2xpcF9PcmlnaW4gKFZhbHVlcyA6IGluIEdka19HQ19WYWx1ZXM7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFgsIFkgICA6IGluIEdpbnQpOwogICAtLSAg
U2FtZSBhcyBTZXRfQ2xpcF9PcmlnaW4sIGJ1dCBvbiB0aGUgY2xpZW50IHNpZGUKCiAgIHByb2Nl
ZHVyZSBTZXRfU3Vid2luZG93IChWYWx1ZXMgOiBpbiBHZGtfR0NfVmFsdWVzOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTW9kZSAgIDogaW4gVHlwZXMuR2RrX1N1YndpbmRvd19Nb2RlKTsK
ICAgLS0gIFNhbWUgYXMgU2V0X1N1YndpbmRvdywgYnV0IG9uIHRoZSBjbGllbnQgc2lkZQoKICAg
cHJvY2VkdXJlIFNldF9FeHBvc3VyZXMgKFZhbHVlcyAgICA6IGluIEdka19HQ19WYWx1ZXM7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBvc3VyZXMgOiBpbiBCb29sZWFuKTsKICAgLS0g
IFNhbWUgYXMgU2V0X0V4cG9zdXJlcywgYnV0IG9uIHRoZSBjbGllbnQgc2lkZQoKICAgcHJvY2Vk
dXJlIFNldF9MaW5lX0F0dHJpYnV0ZXMgKFZhbHVlcyAgICAgOiBpbiBHZGtfR0NfVmFsdWVzOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZV9XaWR0aCA6IGluIEdpbnQ7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5lX1N0eWxlIDogaW4gVHlwZXMuR2Rr
X0xpbmVfU3R5bGU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXBfU3R5bGUg
IDogaW4gVHlwZXMuR2RrX0NhcF9TdHlsZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEpvaW5fU3R5bGUgOiBpbiBUeXBlcy5HZGtfSm9pbl9TdHlsZSk7CiAgIC0tICBTYW1lIGFz
IFNldF9MaW5lX0F0dHJpYnV0ZXMsIGJ1dCBvbiB0aGUgY2xpZW50IHNpZGUKCnByaXZhdGUKICAg
TnVsbF9HQyA6IGNvbnN0YW50IEdka19HQyA6PSBudWxsOwogICBOdWxsX0dDX1ZhbHVlcyA6IGNv
bnN0YW50IEdka19HQ19WYWx1ZXMgOj0gbnVsbDsKCiAgIHByYWdtYSBJbXBvcnQgKEMsIENvcHks
ICJnZGtfZ2NfY29weSIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBEZXN0cm95LCAiZ2RrX2djX2Rl
c3Ryb3kiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgRnJlZSwgImFkYV9nZGtfZ2NfZnJlZV92YWx1
ZXMiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X1ZhbHVlcywgImdka19nY19nZXRfdmFsdWVz
Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFJlZiwgImdka19nY19yZWYiKTsKICAgcHJhZ21hIElt
cG9ydCAoQywgVW5yZWYsICJnZGtfZ2NfdW5yZWYiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0
X1N0aXBwbGUsICJnZGtfZ2Nfc2V0X3N0aXBwbGUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0
X1RpbGUsICJnZGtfZ2Nfc2V0X3RpbGUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X0NsaXBf
TWFzaywgImdka19nY19zZXRfY2xpcF9tYXNrIik7CmVuZCBHZGsuR0M7Ci0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1wIFRvb2xraXQg
ICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgQ29w
eXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICBF
bW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0ICAgICAgICAg
IC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0tCi0tIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciAg
ICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgIC0tCi0tIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp
YyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwg
d3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJvc3RvbiwgTUEg
MDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t
Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90aGVyIGZpbGVz
IGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3IgeW91IGxpbmsg
dGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0tIGV4ZWN1dGFi
bGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcg
IC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyIGludmFsaWRh
dGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUgZmlsZSAgbWln
aHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0tCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCgotLSAgPGRlc2NyaXB0aW9uPgotLQotLSAgUGl4bWFwcyBhcmUgb2ZmLXNjcmVlbiBk
cmF3YWJsZXMuIFRoZXkgY2FuIGJlIGRyYXduIHVwb24gd2l0aCB0aGUgc3RhbmRhcmQKLS0gIGRy
YXdpbmcgcHJpbWl0aXZlcywgdGhlbiBjb3BpZWQgdG8gYW5vdGhlciBkcmF3YWJsZSAoc3VjaCBh
cyBhIEdka19XaW5kb3cpCi0tICB3aXRoIEdkay5QaXhtYXAuRHJhdy4gVGhlIGRlcHRoIG9mIGEg
cGl4bWFwIGlzIHRoZSBudW1iZXIgb2YgYml0cyBwZXIKLS0gIHBpeGVscy4gQml0bWFwcyBhcmUg
c2ltcGx5IHBpeG1hcHMgd2l0aCBhIGRlcHRoIG9mIDEuIChUaGF0IGlzLCB0aGV5IGFyZQotLSAg
bW9ub2Nocm9tZSBiaXRtYXBzIC0gZWFjaCBwaXhlbCBjYW4gYmUgZWl0aGVyIG9uIG9yIG9mZiku
Ci0tICBAcHhyZWZ7UGFja2FnZV9HZGsuQml0bWFwfSBmb3IgbW9yZSBkZXRhaWxzIG9uIGJpdG1h
cCBoYW5kbGluZy4KLS0KLS0gIDwvZGVzY3JpcHRpb24+Ci0tICA8Y192ZXJzaW9uPjEuMi43PC9j
X3ZlcnNpb24+Cgp3aXRoIEdsaWI7IHVzZSBHbGliOwp3aXRoIEdkay5CaXRtYXA7CndpdGggR2Rr
LkNvbG9yOwp3aXRoIEdkay5XaW5kb3c7CndpdGggR3RrYWRhLlR5cGVzOwoKcGFja2FnZSBHZGsu
UGl4bWFwIGlzCgogICBzdWJ0eXBlIEdka19QaXhtYXAgaXMgR2RrLkdka19QaXhtYXA7CiAgIC0t
ICBBIHNlcnZlci1zaWRlIGltYWdlLgogICAtLSAgWW91IGNhbiBjcmVhdGUgYW4gZW1wdHkgcGl4
bWFwLCBvciBsb2FkIGlmIGZyb20gZXh0ZXJuYWwgZmlsZXMgaW4KICAgLS0gIGJpdG1hcCBhbmQg
cGl4bWFwIGZvcm1hdC4gU2VlIEdkay5QaXhidWYgaWYgeW91IG5lZWQgdG8gbG9hZAogICAtLSAg
aW1hZ2VzIGluIG90aGVyIGZvcm1hdHMuCgogICBOdWxsX1BpeG1hcCA6IGNvbnN0YW50IEdka19Q
aXhtYXA7CgogICBwcm9jZWR1cmUgR2RrX05ldyAoUGl4bWFwIDogICAgb3V0IEdka19QaXhtYXA7
CiAgICAgICAgICAgICAgICAgICAgICBXaW5kb3cgOiBpbiAgICAgR2RrLldpbmRvdy5HZGtfV2lu
ZG93OwogICAgICAgICAgICAgICAgICAgICAgV2lkdGggIDogaW4gICAgIEdpbnQ7CiAgICAgICAg
ICAgICAgICAgICAgICBIZWlnaHQgOiBpbiAgICAgR2ludDsKICAgICAgICAgICAgICAgICAgICAg
IERlcHRoICA6IGluICAgICBHaW50IDo9IC0xKTsKICAgLS0gIENyZWF0ZSBhIG5ldyBwaXhtYXAg
d2l0aCBhIGdpdmVuIHNpemUuCiAgIC0tICBXaW5kb3cgaXMgdXNlZCB0byBkZXRlcm1pbmUgZGVm
YXVsdCB2YWx1ZXMgZm9yIHRoZSBuZXcgcGl4bWFwLgogICAtLSAgQ2FuIGJlIGV2ZW50dWFsbHkg
bnVsbC4KICAgLS0gIFdpZHRoIGlzIHRoZSB3aWR0aCBvZiB0aGUgbmV3IHBpeG1hcCBpbiBwaXhl
bHMuCiAgIC0tICBIZWlnaHQgaXMgdGhlIGhlaWdodCBvZiB0aGUgbmV3IHBpeG1hcCBpbiBwaXhl
bHMuCiAgIC0tICBEZXB0aCBpcyB0aGUgZGVwdGggKG51bWJlciBvZiBiaXRzIHBlciBwaXhlbCkg
b2YgdGhlIG5ldyBwaXhtYXAuCiAgIC0tICBJZiAtMSwgYW5kIHdpbmRvdyBpcyBub3QgbnVsbCwg
dGhlIGRlcHRoIG9mIHRoZSBuZXcgcGl4bWFwIHdpbGwgYmUKICAgLS0gIGVxdWFsIHRvIHRoYXQg
b2Ygd2luZG93LgogICAtLSAgQXV0b21hdGljYWxseSByZWZlcmVuY2UgdGhlIHBpeG1hcCBvbmNl
LgoKICAgcHJvY2VkdXJlIFJlZiAoUGl4bWFwIDogaW4gR2RrX1BpeG1hcCk7CiAgIC0tICBBZGQg
YSByZWZlcmVuY2UgdG8gYSBwaXhtYXAuCgogICBwcm9jZWR1cmUgVW5yZWYgKFBpeG1hcCA6IGlu
IEdka19QaXhtYXApOwogICAtLSAgVGhpcyBpcyB0aGUgdXN1YWwgd2F5IHRvIGRlc3Ryb3kgYSBw
aXhtYXAuIFRoZSBtZW1vcnkgaXMgZnJlZWQgd2hlbgogICAtLSAgdGhlcmUgaXMgbm8gbW9yZSBy
ZWZlcmVuY2UKCiAgIHByb2NlZHVyZSBDcmVhdGVfRnJvbV9EYXRhIChQaXhtYXAgOiAgICBvdXQg
R2RrX1BpeG1hcDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdyA6IGluICAg
ICBHZGsuV2luZG93Lkdka19XaW5kb3c7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE
YXRhICAgOiBpbiAgICAgU3RyaW5nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2lk
dGggIDogaW4gICAgIEdpbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWlnaHQg
OiBpbiAgICAgR2ludDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcHRoICA6IGlu
ICAgICBHaW50OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmcgICAgIDogaW4gICAg
IENvbG9yLkdka19Db2xvcjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJnICAgICA6
IGluICAgICBDb2xvci5HZGtfQ29sb3IpOwogICAtLSAgQ3JlYXRlIGEgcGl4bWFwIGZyb20gZGF0
YSBpbiBYQk0gZm9ybWF0LgogICAtLSAgV2luZG93IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGRlZmF1
bHQgdmFsdWVzIGZvciB0aGUgbmV3IGJpdG1hcCwgY2FuIGJlCiAgIC0tICBudWxsIGluIHdoaWNo
IGNhc2UgdGhlIHJvb3Qgd2luZG93IGlzIHVzZWQuCiAgIC0tICBEYXRhIGlzIHRoZSBYQk0gZGF0
YS4KICAgLS0gIFdpZHRoIGlzIHRoZSB3aWR0aCBvZiB0aGUgbmV3IGJpdG1hcCBpbiBwaXhlbHMu
CiAgIC0tICBIZWlnaHQgaXMgdGhlIGhlaWdodCBvZiB0aGUgbmV3IGJpdG1hcCBpbiBwaXhlbHMu
CiAgIC0tICBEZXB0aCBpcyB0aGUgZGVwdGggKG51bWJlciBvZiBiaXRzIHBlciBwaXhlbCkgb2Yg
dGhlIG5ldyBwaXhtYXAuCiAgIC0tICBGZyBpcyB0aGUgZm9yZWdyb3VuZCBjb2xvci4KICAgLS0g
IEJnIGlzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLgoKICAgcHJvY2VkdXJlIENyZWF0ZV9Gcm9tX1hw
bSAoUGl4bWFwICAgICAgOiAgICBvdXQgR2RrX1BpeG1hcDsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2luZG93ICAgICAgOiBpbiAgICAgR2RrLldpbmRvdy5HZGtfV2luZG93OwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBNYXNrICAgICAgICA6IGluIG91dCBHZGsuQml0bWFw
Lkdka19CaXRtYXA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zcGFyZW50IDog
aW4gICAgIEdkay5Db2xvci5HZGtfQ29sb3I7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEZpbGVuYW1lICAgIDogaW4gICAgIFN0cmluZyk7CiAgIC0tICBDcmVhdGUgYSBwaXhtYXAgZnJv
bSBhIFhQTSBmaWxlLgogICAtLSAgV2luZG93IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGRlZmF1bHQg
dmFsdWVzIGZvciB0aGUgbmV3IHBpeG1hcC4KICAgLS0gIE1hc2sgaXMgYSBwb2ludGVyIHRvIGEg
cGxhY2UgdG8gc3RvcmUgYSBiaXRtYXAgcmVwcmVzZW50aW5nIHRoZQogICAtLSAgdHJhbnNwYXJl
bmN5IG1hc2sgb2YgdGhlIFhQTSBmaWxlLiBDYW4gYmUgbnVsbCwgaW4gd2hpY2ggY2FzZQogICAt
LSAgdHJhbnNwYXJlbmN5IHdpbGwgYmUgaWdub3JlZC4KICAgLS0gIFRyYW5zcGFyZW50IGlzIHRo
ZSBjb2xvciB0byBiZSB1c2VkIGZvciB0aGUgcGl4ZWxzIHRoYXQgYXJlIHRyYW5zcGFyZW50CiAg
IC0tICBpbiB0aGUgaW5wdXQgZmlsZS4gQ2FuIGJlIG51bGwsIGluIHdoaWNoIGNhc2UgYSBkZWZh
dWx0IGNvbG9yIHdpbGwgYmUKICAgLS0gIHVzZWQuCiAgIC0tICBGaWxlbmFtZSBpcyB0aGUgZmls
ZW5hbWUgb2YgYSBmaWxlIGNvbnRhaW5pbmcgWFBNIGRhdGEuCgogICBwcm9jZWR1cmUgQ3JlYXRl
X0Zyb21fWHBtIChQaXhtYXAgICAgICA6ICAgIG91dCBHZGtfUGl4bWFwOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXaW5kb3cgICAgICA6IGluICAgICBHZGsuV2luZG93Lkdka19XaW5k
b3c7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9ybWFwICAgIDogaW4gICAgIEdk
ay5Db2xvci5HZGtfQ29sb3JtYXA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hc2sg
ICAgICAgIDogaW4gb3V0IEdkay5CaXRtYXAuR2RrX0JpdG1hcDsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVHJhbnNwYXJlbnQgOiBpbiAgICAgR2RrLkNvbG9yLkdka19Db2xvcjsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgOiBpbiAgICAgU3RyaW5nKTsK
ICAgLS0gIENyZWF0ZSBhIHBpeG1hcCBmcm9tIGEgWFBNIGZpbGUgdXNpbmcgYSBwYXJ0aWN1bGFy
IGNvbG9ybWFwLgogICAtLSAgV2luZG93IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGRlZmF1bHQgdmFs
dWVzIGZvciB0aGUgbmV3IHBpeG1hcC4gQ2FuIGJlCiAgIC0tICBudWxsIGlmIGNvbG9ybWFwIGlz
IGdpdmVuLgogICAtLSAgQ29sb3JtYXAgaXMgdGhlIEdka19Db2xvcm1hcCB0aGF0IHRoZSBuZXcg
cGl4bWFwIHdpbGwgdXNlLiBJZiBvbWl0dGVkLAogICAtLSAgdGhlIGNvbG9ybWFwIGZvciB3aW5k
b3cgd2lsbCBiZSB1c2VkLgogICAtLSAgTWFzayBpcyBhIHBvaW50ZXIgdG8gYSBwbGFjZSB0byBz
dG9yZSBhIGJpdG1hcCByZXByZXNlbnRpbmcgdGhlCiAgIC0tICB0cmFuc3BhcmVuY3kgbWFzayBv
ZiB0aGUgWFBNIGZpbGUuIENhbiBiZSBudWxsLCBpbiB3aGljaCBjYXNlCiAgIC0tICB0cmFuc3Bh
cmVuY3kgd2lsbCBiZSBpZ25vcmVkLgogICAtLSAgVHJhbnNwYXJlbnQgaXMgdGhlIGNvbG9yIHRv
IGJlIHVzZWQgZm9yIHRoZSBwaXhlbHMgdGhhdCBhcmUgdHJhbnNwYXJlbnQKICAgLS0gIGluIHRo
ZSBpbnB1dCBmaWxlLiBDYW4gYmUgbnVsbCwgaW4gd2hpY2ggY2FzZSBhIGRlZmF1bHQgY29sb3Ig
d2lsbCBiZQogICAtLSAgdXNlZC4KICAgLS0gIEZpbGVuYW1lIGlzIHRoZSBmaWxlbmFtZSBvZiBh
IGZpbGUgY29udGFpbmluZyBYUE0gZGF0YS4KCiAgIHByb2NlZHVyZSBDcmVhdGVfRnJvbV9YcG1f
RAogICAgIChQaXhtYXAgICAgICA6ICAgIG91dCBHZGtfUGl4bWFwOwogICAgICBXaW5kb3cgICAg
ICA6IGluICAgICBHZGsuV2luZG93Lkdka19XaW5kb3c7CiAgICAgIE1hc2sgICAgICAgIDogaW4g
b3V0IEdkay5CaXRtYXAuR2RrX0JpdG1hcDsKICAgICAgVHJhbnNwYXJlbnQgOiBpbiAgICAgR2Rr
LkNvbG9yLkdka19Db2xvcjsKICAgICAgRGF0YSAgICAgICAgOiBpbiAgICAgR3RrYWRhLlR5cGVz
LkNoYXJzX1B0cl9BcnJheSk7CiAgIC0tICBDcmVhdGUgYSBwaXhtYXAgZnJvbSBkYXRhIGluIFhQ
TSBmb3JtYXQuCiAgIC0tICBXaW5kb3cgaXMgdXNlZCB0byBkZXRlcm1pbmUgZGVmYXVsdCB2YWx1
ZXMgZm9yIHRoZSBuZXcgcGl4bWFwLgogICAtLSAgTWFzayBpcyBhIHBvaW50ZXIgdG8gYSBwbGFj
ZSB0byBzdG9yZSBhIGJpdG1hcCByZXByZXNlbnRpbmcgdGhlCiAgIC0tICB0cmFuc3BhcmVuY3kg
bWFzayBvZiB0aGUgWFBNIGZpbGUuIENhbiBiZSBudWxsLCBpbiB3aGljaCBjYXNlCiAgIC0tICB0
cmFuc3BhcmVuY3kgd2lsbCBiZSBpZ25vcmVkLgogICAtLSAgVHJhbnNwYXJlbnQgd2lsbCBiZSB1
c2VkIGZvciB0aGUgcGl4ZWxzIHRoYXQgYXJlIHRyYW5zcGFyZW50IGluIHRoZQogICAtLSAgaW5w
dXQgZmlsZS4gQ2FuIGJlIG51bGwgaW4gd2hpY2ggY2FzZSBhIGRlZmF1bHQgY29sb3Igd2lsbCBi
ZSB1c2VkLgogICAtLSAgRGF0YSBpcyBhIHBvaW50ZXIgdG8gYSBzdHJpbmcgY29udGFpbmluZyB0
aGUgWFBNIGRhdGEuCgogICBwcm9jZWR1cmUgQ3JlYXRlX0Zyb21fWHBtX0QKICAgICAoUGl4bWFw
ICAgICAgOiAgICBvdXQgR2RrX1BpeG1hcDsKICAgICAgV2luZG93ICAgICAgOiBpbiAgICAgR2Rr
LldpbmRvdy5HZGtfV2luZG93OwogICAgICBDb2xvcm1hcCAgICA6IGluICAgICBHZGsuQ29sb3Iu
R2RrX0NvbG9ybWFwOwogICAgICBNYXNrICAgICAgICA6IGluIG91dCBHZGsuQml0bWFwLkdka19C
aXRtYXA7CiAgICAgIFRyYW5zcGFyZW50IDogaW4gICAgIEdkay5Db2xvci5HZGtfQ29sb3I7CiAg
ICAgIERhdGEgICAgICAgIDogaW4gICAgIEd0a2FkYS5UeXBlcy5DaGFyc19QdHJfQXJyYXkpOwog
ICAtLSAgQ3JlYXRlIGEgcGl4bWFwIGZyb20gZGF0YSBpbiBYUE0gZm9ybWF0IHVzaW5nIGEgcGFy
dGljdWxhciBjb2xvcm1hcC4KICAgLS0gIFdpbmRvdyBpcyB1c2VkIHRvIGRldGVybWluZSBkZWZh
dWx0IHZhbHVlcyBmb3IgdGhlIG5ldyBwaXhtYXAuCiAgIC0tICBDb2xvcm1hcCBpcyB0aGUgR2Rr
X0NvbG9ybWFwIHRoYXQgdGhlIG5ldyBwaXhtYXAgd2lsbCBiZSB1c2UuIElmCiAgIC0tICBvbWl0
dGVkLCB0aGUgY29sb3JtYXAgZm9yIHdpbmRvdyB3aWxsIGJlIHVzZWQuCiAgIC0tICBNYXNrIGlz
IGEgcG9pbnRlciB0byBhIHBsYWNlIHRvIHN0b3JlIGEgYml0bWFwIHJlcHJlc2VudGluZyB0aGUK
ICAgLS0gIHRyYW5zcGFyZW5jeSBtYXNrIG9mIHRoZSBYUE0gZmlsZS4gQ2FuIGJlIG51bGwsIGlu
IHdoaWNoIGNhc2UKICAgLS0gIHRyYW5zcGFyZW5jeSB3aWxsIGJlIGlnbm9yZWQuCiAgIC0tICBU
cmFuc3BhcmVudCB3aWxsIGJlIHVzZWQgZm9yIHRoZSBwaXhlbHMgdGhhdCBhcmUgdHJhbnNwYXJl
bnQgaW4gdGhlCiAgIC0tICBpbnB1dCBmaWxlLiBDYW4gYmUgbnVsbCBpbiB3aGljaCBjYXNlIGEg
ZGVmYXVsdCBjb2xvciB3aWxsIGJlIHVzZWQuCiAgIC0tICBEYXRhIGlzIGEgcG9pbnRlciB0byBh
IHN0cmluZyBjb250YWluaW5nIHRoZSBYUE0gZGF0YS4KCnByaXZhdGUKICAgTnVsbF9QaXhtYXAg
OiBjb25zdGFudCBHZGtfUGl4bWFwIDo9IG51bGw7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFJlZiwg
Imdka19waXhtYXBfcmVmIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFVucmVmLCAiZ2RrX3BpeG1h
cF91bnJlZiIpOwplbmQgR2RrLlBpeG1hcDsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3Rr
QWRhIC0gQWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0K
LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgt
MTk5OSAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBK
b2VsIEJyb2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IEdlbmVyYWwgUHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LiAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAg
ICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0g
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAg
ICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUg
UGxhY2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K
LS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2Vu
ZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBv
dGhlciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAg
ZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJs
ZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAg
LS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVh
c29ucyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5
IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCndpdGggR2xp
YjsgdXNlIEdsaWI7CgpwYWNrYWdlIEdkay5SZWN0YW5nbGUgaXMKCiAgIHR5cGUgR2RrX1JlY3Rh
bmdsZSBpcyByZWNvcmQKICAgICAgWCAgICAgIDogR2ludDE2OwogICAgICBZICAgICAgOiBHaW50
MTY7CiAgICAgIFdpZHRoICA6IEd1aW50MTY7CiAgICAgIEhlaWdodCA6IEd1aW50MTY7CiAgIGVu
ZCByZWNvcmQ7CiAgIHByYWdtYSBQYWNrIChHZGtfUmVjdGFuZ2xlKTsKCiAgIEZ1bGxfQXJlYSA6
IGNvbnN0YW50IEdka19SZWN0YW5nbGU7CiAgIC0tICBUaGUgY29uc3RhbnQgYWJvdmUgY2FuIGJl
IHVzZWQgaW4gR3RrLldpZGdldC5EcmF3IHdoZW4geW91IHdhbnQgdG8KICAgLS0gIHJlZHJhdyB0
aGUgd2hvbGUgd2lkZ2V0CgogICBwcm9jZWR1cmUgSW50ZXJzZWN0CiAgICAgKFNyYzEgICAgICA6
IGluICAgICBHZGtfUmVjdGFuZ2xlOwogICAgICBTcmMyICAgICAgOiBpbiAgICAgR2RrX1JlY3Rh
bmdsZTsKICAgICAgRGVzdCAgICAgIDogICAgb3V0IEdka19SZWN0YW5nbGU7CiAgICAgIEludGVy
c2VjdCA6ICAgIG91dCBCb29sZWFuKTsKCiAgIHByb2NlZHVyZSBVbmlvbgogICAgIChTcmMxIDog
aW4gICAgIEdka19SZWN0YW5nbGU7CiAgICAgIFNyYzIgOiBpbiAgICAgR2RrX1JlY3RhbmdsZTsK
ICAgICAgRGVzdCA6ICAgIG91dCBHZGtfUmVjdGFuZ2xlKTsKCnByaXZhdGUKCiAgIEZ1bGxfQXJl
YSA6IGNvbnN0YW50IEdka19SZWN0YW5nbGUgOj0KICAgICAoR2ludDE2J0ZpcnN0LCBHaW50MTYn
Rmlyc3QsIEd1aW50MTYnTGFzdCwgR3VpbnQxNidMYXN0KTsKCmVuZCBHZGsuUmVjdGFuZ2xlOwot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotLSAgICAgICAgICBHdGtBZGEgLSBBZGE5NSBiaW5kaW5nIGZvciB0aGUg
R2ltcCBUb29sa2l0ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAg
ICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5OC0xOTk5ICAgICAgICAgICAgICAgICAgICAgICAt
LQotLSAgICAgICAgRW1tYW51ZWwgQnJpb3QsIEpvZWwgQnJvYmVja2VyIGFuZCBBcm5hdWQgQ2hh
cmxldCAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAgICAtLQotLSBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAgICAg
ICAtLQotLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIgICAgICAtLQotLSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAtLQotLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgICAtLQotLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZiAgICAtLQotLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSAtLQotLSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAtLQotLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
R2VuZXJhbCBQdWJsaWMgICAgICAgICAtLQotLSBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSAgICAgICAgICAgICAtLQotLSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgICAgICAtLQot
LSBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCBp
ZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0ZSBnZW5lcmljcyBmcm9tICAtLQotLSB0aGlzIHVuaXQs
IG9yIHlvdSBsaW5rIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzIHRvIHByb2R1Y2UgYW4gICAt
LQotLSBleGVjdXRhYmxlLCB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkgaXRzZWxmIGNhdXNlICB0
aGUgcmVzdWx0aW5nICAtLQotLSBleGVjdXRhYmxlIHRvIGJlIGNvdmVyZWQgYnkgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzICAtLQotLSBleGNlcHRpb24gZG9lcyBub3QgaG93
ZXZlciBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSB0aGUgICAtLQotLSBleGVjdXRh
YmxlIGZpbGUgIG1pZ2h0IGJlIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAg
ICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQoKd2l0aCBHbGliOyB1c2UgR2xpYjsKd2l0aCBHZGsuUmVjdGFu
Z2xlOwp3aXRoIEdkay5UeXBlczsKCnBhY2thZ2UgR2RrLlJlZ2lvbiBpcwoKICAgdHlwZSBHZGtf
UmVnaW9uIGlzIG5ldyBHZGsuQ19Qcm94eTsKICAgTnVsbF9SZWdpb24gOiBjb25zdGFudCBHZGtf
UmVnaW9uOwoKICAgcHJvY2VkdXJlIEdka19OZXcgKFJlZ2lvbiA6IG91dCBHZGtfUmVnaW9uKTsK
CiAgIHByb2NlZHVyZSBEZXN0cm95IChSZWdpb24gOiBpbiBvdXQgR2RrX1JlZ2lvbik7CgogICBw
cm9jZWR1cmUgR2V0X0NsaXBib3gKICAgICAoUmVnaW9uICAgIDogaW4gICAgIEdka19SZWdpb247
CiAgICAgIFJlY3RhbmdsZSA6ICAgIG91dCBHZGsuUmVjdGFuZ2xlLkdka19SZWN0YW5nbGUpOwoK
ICAgZnVuY3Rpb24gRW1wdHkgKFJlZ2lvbiA6IGluIEdka19SZWdpb24pIHJldHVybiBCb29sZWFu
OwoKICAgZnVuY3Rpb24gIj0iIChMZWZ0LCBSaWdodCA6IGluIEdka19SZWdpb24pIHJldHVybiBC
b29sZWFuOwoKICAgZnVuY3Rpb24gUG9pbnRfSW4KICAgICAoUmVnaW9uIDogaW4gR2RrX1JlZ2lv
bjsKICAgICAgWCwgWSAgIDogaW4gSW50ZWdlcikgcmV0dXJuIEJvb2xlYW47CgogICBmdW5jdGlv
biBSZWN0X0luCiAgICAgKFJlZ2lvbiA6IGluIEdka19SZWdpb247CiAgICAgIFJlY3QgICA6IGlu
IFJlY3RhbmdsZS5HZGtfUmVjdGFuZ2xlKSByZXR1cm4gVHlwZXMuR2RrX092ZXJsYXBfVHlwZTsK
CiAgIHByb2NlZHVyZSBQb2x5Z29uCiAgICAgKFJlZ2lvbiA6ICAgIG91dCBHZGtfUmVnaW9uOwog
ICAgICBQb2ludHMgOiBpbiAgICAgR2RrLlR5cGVzLkdka19Qb2ludHNfQXJyYXk7CiAgICAgIEZp
bGxfUnVsZSA6IGluICAgICBUeXBlcy5HZGtfRmlsbF9SdWxlKTsKCiAgIHByb2NlZHVyZSBPZmZz
ZXQKICAgICAoUmVnaW9uIDogaW4gR2RrX1JlZ2lvbjsKICAgICAgRHggICAgIDogaW4gR2ludDsK
ICAgICAgRHkgICAgIDogaW4gR2ludCk7CgogICBwcm9jZWR1cmUgU2hyaW5rCiAgICAgKFJlZ2lv
biA6IGluIEdka19SZWdpb247CiAgICAgIER4ICAgICA6IGluIEdpbnQ7CiAgICAgIER5ICAgICA6
IGluIEdpbnQpOwoKICAgcHJvY2VkdXJlIFVuaW9uX1dpdGhfUmVjdAogICAgIChSZXN1bHQgOiAg
ICBvdXQgR2RrX1JlZ2lvbjsKICAgICAgUmVnaW9uIDogaW4gICAgIEdka19SZWdpb247CiAgICAg
IFJlY3QgICA6IGluICAgICBSZWN0YW5nbGUuR2RrX1JlY3RhbmdsZSk7CgogICBwcm9jZWR1cmUg
SW50ZXJzZWN0CiAgICAgKFJlc3VsdCAgOiAgICBvdXQgR2RrX1JlZ2lvbjsKICAgICAgU291cmNl
MSA6IGluICAgICBHZGtfUmVnaW9uOwogICAgICBTb3VyY2UyIDogaW4gICAgIEdka19SZWdpb24p
OwoKICAgcHJvY2VkdXJlIFVuaW9uCiAgICAgKFJlc3VsdCAgOiAgICAgb3V0IEdka19SZWdpb247
CiAgICAgIFNvdXJjZTEgOiBpbiAgICAgIEdka19SZWdpb247CiAgICAgIFNvdXJjZTIgOiBpbiAg
ICAgIEdka19SZWdpb24pOwoKICAgcHJvY2VkdXJlIFN1YnN0cmFjdAogICAgIChSZXN1bHQgIDog
ICAgIG91dCBHZGtfUmVnaW9uOwogICAgICBTb3VyY2UxIDogaW4gICAgICBHZGtfUmVnaW9uOwog
ICAgICBTb3VyY2UyIDogaW4gICAgICBHZGtfUmVnaW9uKTsKCiAgIHByb2NlZHVyZSBHZGtfWG9y
CiAgICAgKFJlc3VsdCAgOiAgICAgb3V0IEdka19SZWdpb247CiAgICAgIFNvdXJjZTEgOiBpbiAg
ICAgIEdka19SZWdpb247CiAgICAgIFNvdXJjZTIgOiBpbiAgICAgIEdka19SZWdpb24pOwoKcHJp
dmF0ZQogICBOdWxsX1JlZ2lvbiA6IGNvbnN0YW50IEdka19SZWdpb24gOj0gbnVsbDsKICAgcHJh
Z21hIEltcG9ydCAoQywgT2Zmc2V0LCAiZ2RrX3JlZ2lvbl9vZmZzZXQiKTsKICAgcHJhZ21hIElt
cG9ydCAoQywgU2hyaW5rLCAiZ2RrX3JlZ2lvbl9zaHJpbmsiKTsKZW5kIEdkay5SZWdpb247Ci0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBH
aW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAg
ICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTE5OTkgICAgICAgICAgICAgICAgICAgICAgIC0t
Ci0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFy
bGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAg
IC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0t
IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlm
IG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwg
b3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0t
Ci0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRo
ZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dl
dmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFi
bGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAg
IC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCgp3aXRoIEdsaWI7IHVzZSBHbGliOwoKcGFja2FnZSBHZGsuVHlw
ZXMgaXMKCiAgIHR5cGUgR2RrX0dlb21ldHJ5IGlzIHJlY29yZAogICAgICBNaW5fV2lkdGggICA6
IEdpbnQ7CiAgICAgIE1pbl9IZWlnaHQgIDogR2ludDsKICAgICAgTWF4X1dpZHRoICAgOiBHaW50
OwogICAgICBNYXhfSGVpZ2h0ICA6IEdpbnQ7CiAgICAgIEJhc2VfV2lkdGggIDogR2ludDsKICAg
ICAgQmFzZV9IZWlnaHQgOiBHaW50OwogICAgICBXaWR0aF9JbmMgICA6IEdpbnQ7CiAgICAgIEhl
aWdodF9JbmMgIDogR2ludDsKICAgICAgTWluX0FzcGVjdCAgOiBHZG91YmxlOwogICAgICBNYXhf
QXNwZWN0ICA6IEdkb3VibGU7CiAgIGVuZCByZWNvcmQ7CiAgIHByYWdtYSBQYWNrIChHZGtfR2Vv
bWV0cnkpOwoKICAgdHlwZSBHZGtfUG9pbnQgaXMgcmVjb3JkCiAgICAgIFggOiBHaW50MTY7CiAg
ICAgIFkgOiBHaW50MTY7CiAgIGVuZCByZWNvcmQ7CiAgIHByYWdtYSBQYWNrIChHZGtfUG9pbnQp
OwogICBmb3IgR2RrX1BvaW50J1NpemUgdXNlIEdpbnQnU2l6ZTsKCiAgIHR5cGUgR2RrX1BvaW50
c19BcnJheSBpcyBhcnJheSAoUG9zaXRpdmUgcmFuZ2UgPD4pIG9mIEdka19Qb2ludDsKICAgcHJh
Z21hIFBhY2sgKEdka19Qb2ludHNfQXJyYXkpOwoKICAgdHlwZSBHZGtfU2VnbWVudCBpcyByZWNv
cmQKICAgICAgWDEgOiBHaW50MTY7CiAgICAgIFkxIDogR2ludDE2OwogICAgICBYMiA6IEdpbnQx
NjsKICAgICAgWTIgOiBHaW50MTY7CiAgIGVuZCByZWNvcmQ7CiAgIHByYWdtYSBQYWNrIChHZGtf
U2VnbWVudCk7CiAgIGZvciBHZGtfU2VnbWVudCdTaXplIHVzZSA2NDsKCiAgIHR5cGUgR2RrX1Nl
Z21lbnRzX0FycmF5IGlzIGFycmF5IChQb3NpdGl2ZSByYW5nZSA8Pikgb2YgR2RrX1NlZ21lbnQ7
CiAgIHByYWdtYSBQYWNrIChHZGtfU2VnbWVudHNfQXJyYXkpOwoKICAgLS0KICAgLS0gIFNlZSBh
dCB0aGUgZW5kIG9mIHRoZSBwYWNrYWdlIGEgbGlzdCBvZiBhbGwgdGhlIHR5cGVzIHRoYXQKICAg
LS0gIGhhdmUgbm90IGJlZW4gImJvdW5kIi4KICAgLS0KCiAgIHR5cGUgR2RrX0F0b20gaXMgbmV3
IEd1bG9uZzsKICAgLS0gIFRoaXMgdHlwZSByZXByZXNlbnRzIGEgcHJvcGVydHkgb2YgdGhlIFgt
c2VydmVyLCB0aGF0IGNhbiBiZQogICAtLSAgbWFuaXB1bGF0ZWQgdGhyb3VnaCBmdW5jdGlvbnMg
aW4gR2RrLlByb3BlcnR5LiBUaGV5IGhhdmUgYW4gYXNzb2NpYXRlZAogICAtLSAgbmFtZSwgdGhh
dCBjYW4gYmUgcHJpbnRlZCwgYXMgd2VsbCBhcyBhIHZhbHVlIHdob3NlIHR5cGUgbWF5IHZhcnku
CgogICB0eXBlIEdka19BeGlzX1VzZSBpcwogICAgIChBeGlzX0lnbm9yZSwKICAgICAgQXhpc19Y
LAogICAgICBBeGlzX1ksCiAgICAgIEF4aXNfUHJlc3N1cmUsCiAgICAgIEF4aXNfWF9UaWx0LAog
ICAgICBBeGlzX1lfVGlsdCwKICAgICAgQXhpc19MYXN0KTsKCiAgIHR5cGUgR2RrX0J5dGVfT3Jk
ZXIgaXMgKExzYl9GaXJzdCwgTXNiX0ZpcnN0KTsKCiAgIHR5cGUgR2RrX0NhcF9TdHlsZSBpcyAo
Q2FwX05vdF9MYXN0LCBDYXBfQnV0dCwgQ2FwX1JvdW5kLCBDYXBfUHJvamVjdGluZyk7CgogICB0
eXBlIEdka19Dcm9zc2luZ19Nb2RlIGlzIChDcm9zc2luZ19Ob3JtYWwsIENyb3NzaW5nX0dyYWIs
IENyb3NzaW5nX1VuZ3JhYik7CgogICB0eXBlIEdka19DdXJzb3JfVHlwZSBpcwogICAgIChYX0N1
cnNvciwKICAgICAgQXJyb3csCiAgICAgIEJhc2VkX0Fycm93X0Rvd24sCiAgICAgIEJhc2VkX0Fy
cm93X1VwLAogICAgICBCb2F0LAogICAgICBCb2dvc2l0eSwKICAgICAgQm90dG9tX0xlZnRfQ29y
bmVyLAogICAgICBCb3R0b21fUmlnaHRfQ29ybmVyLAogICAgICBCb3R0b21fU2lkZSwKICAgICAg
Qm90dG9tX1RlZSwKICAgICAgQm94X1NwaXJhbCwKICAgICAgQ2VudGVyX1B0ciwKICAgICAgQ2ly
Y2xlLAogICAgICBDbG9jaywKICAgICAgQ29mZmVlX011ZywKICAgICAgQ3Jvc3MsCiAgICAgIENy
b3NzX1JldmVyc2UsCiAgICAgIENyb3NzaGFpciwKICAgICAgRGlhbW9uZF9Dcm9zcywKICAgICAg
RG90LAogICAgICBEb3Rib3gsCiAgICAgIERvdWJsZV9BcnJvdywKICAgICAgRHJhZnRfTGFyZ2Us
CiAgICAgIERyYWZ0X1NtYWxsLAogICAgICBEcmFwZWRfQm94LAogICAgICBFeGNoYW5nZSwKICAg
ICAgRmxldXIsCiAgICAgIEdvYmJsZXIsCiAgICAgIEd1bWJ5LAogICAgICBIYW5kMSwKICAgICAg
SGFuZDIsCiAgICAgIEhlYXJ0LAogICAgICBJY29uLAogICAgICBJcm9uX0Nyb3NzLAogICAgICBM
ZWZ0X1B0ciwKICAgICAgTGVmdF9TaWRlLAogICAgICBMZWZ0X1RlZSwKICAgICAgTGVmdGJ1dHRv
biwKICAgICAgTGxfQW5nbGUsCiAgICAgIExyX0FuZ2xlLAogICAgICBNYW4sCiAgICAgIE1pZGRs
ZWJ1dHRvbiwKICAgICAgTW91c2UsCiAgICAgIFBlbmNpbCwKICAgICAgUGlyYXRlLAogICAgICBQ
bHVzLAogICAgICBRdWVzdGlvbl9BcnJvdywKICAgICAgUmlnaHRfUHRyLAogICAgICBSaWdodF9T
aWRlLAogICAgICBSaWdodF9UZWUsCiAgICAgIFJpZ2h0YnV0dG9uLAogICAgICBSdGxfTG9nbywK
ICAgICAgU2FpbGJvYXQsCiAgICAgIFNiX0Rvd25fQXJyb3csCiAgICAgIFNiX0hfRG91YmxlX0Fy
cm93LAogICAgICBTYl9MZWZ0X0Fycm93LAogICAgICBTYl9SaWdodF9BcnJvdywKICAgICAgU2Jf
VXBfQXJyb3csCiAgICAgIFNiX1ZfRG91YmxlX0Fycm93LAogICAgICBTaHV0dGxlLAogICAgICBT
aXppbmcsCiAgICAgIFNwaWRlciwKICAgICAgU3ByYXljYW4sCiAgICAgIFN0YXIsCiAgICAgIFRh
cmdldCwKICAgICAgVGNyb3NzLAogICAgICBUb3BfTGVmdF9BcnJvdywKICAgICAgVG9wX0xlZnRf
Q29ybmVyLAogICAgICBUb3BfUmlnaHRfQ29ybmVyLAogICAgICBUb3BfU2lkZSwKICAgICAgVG9w
X1RlZSwKICAgICAgVHJlaywKICAgICAgVWxfQW5nbGUsCiAgICAgIFVtYnJlbGxhLAogICAgICBV
cl9BbmdsZSwKICAgICAgV2F0Y2gsCiAgICAgIFh0ZXJtKTsKCiAgIHR5cGUgR2RrX0RldmljZV9J
ZCBpcyBuZXcgR3VpbnQzMjsKICAgLS0gIFRoaXMgdHlwZSBpcyBzcGVjaWZpYyB0byBHdGtBZGEu
IEluIEdkaywgZ3VpbnQzMiBpcyB1c2VkIGluc3RlYWQuCgogICB0eXBlIEdka19FdmVudF9NYXNr
IGlzIG1vZCAyICoqIDIxOwogICAtLSAgTm90ZSB0aGF0IHlvdSBuZWVkIHRvIGNoYW5nZSB0aGUg
ZXZlbnQgbWFzayBvZiBhIHdpZGdldCBpZiB5b3Ugd2FudAogICAtLSAgdG8gYmUgYWJsZSB0byBn
ZXQgc29tZSBldmVudHMuIFRvIGNoYW5nZSB0aGlzIG1hc2ssIHRoZSB3aWRnZXQKICAgLS0gIG11
c3QgZmlyc3QgYmUgVW5yZWFsaXplZC4KCiAgIE51bGxfRXZlbnRfTWFzayAgICAgICAgICA6IGNv
bnN0YW50IEdka19FdmVudF9NYXNrOwogICBFeHBvc3VyZV9NYXNrICAgICAgICAgICAgOiBjb25z
dGFudCBHZGtfRXZlbnRfTWFzazsKCiAgIFBvaW50ZXJfTW90aW9uX01hc2sgICAgICA6IGNvbnN0
YW50IEdka19FdmVudF9NYXNrOwogICAtLSAgRXZlcnkgdGltZSB0aGUgbW91c2UgbW92ZXMsIEd0
a0FkYSB3aWxsIHNlbmQgYSBNb3Rpb25fTm90aWZ5IGV2ZW50LgogICAtLSAgVGhlc2UgZXZlbnRz
IHdpbGwgYmUgc2VudCBhcyBmYXN0IGFzIHBvc3NpYmxlLCBhbmQgeW91ciBhcHBsaWNhdGlvbgog
ICAtLSAgbmVlZHMgdG8gYmUgYWJsZSB0byByZXNwb25kIGFzIGZhc3QgYXMgcG9zc2libGUgKGdl
bmVyYWxseSBhYm91dAogICAtLSAgMjAwIGV2ZW50cyBwZXIgc2Vjb25kKS4KCiAgIFBvaW50ZXJf
TW90aW9uX0hpbnRfTWFzayA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrOwogICAtLSAgR3RrQWRh
IHdpbGwgb25seSBzZW5kIG9uZSBNb3Rpb25fTm90aWZ5IGV2ZW50IHdoZW4gdGhlIG1vdXNlIG1v
dmVzLgogICAtLSAgVGhlIGhhbmRsZXIgc2hvdWxkIGNhbGwgR2RrLldpbmRvdy5HZXRfUG9pbnRl
ciwgdG8gZ2V0IHRoZSBjdXJyZW50CiAgIC0tICBwb3NpdGlvbiBhbmQgc2lnbmFscyBHdGtBZGEg
dGhhdCBpdCBpcyByZWFkeSB0byBnZXQgYW5vdGhlcgogICAtLSAgTW90aW9uX05vdGlmeSBzaWdu
YWwuIE5vIG5ldyBNb3Rpb25fTm90aWZ5IHdpbGwgYmUgc2VudCB1bnRpbAogICAtLSAgR2V0X1Bv
aW50ZXIgaGFzIGJlZW4gY2FsbGVkLgoKICAgQnV0dG9uX01vdGlvbl9NYXNrICAgICAgIDogY29u
c3RhbnQgR2RrX0V2ZW50X01hc2s7CiAgIEJ1dHRvbjFfTW90aW9uX01hc2sgICAgICA6IGNvbnN0
YW50IEdka19FdmVudF9NYXNrOwogICBCdXR0b24yX01vdGlvbl9NYXNrICAgICAgOiBjb25zdGFu
dCBHZGtfRXZlbnRfTWFzazsKICAgQnV0dG9uM19Nb3Rpb25fTWFzayAgICAgIDogY29uc3RhbnQg
R2RrX0V2ZW50X01hc2s7CiAgIEJ1dHRvbl9QcmVzc19NYXNrICAgICAgICA6IGNvbnN0YW50IEdk
a19FdmVudF9NYXNrOwogICBCdXR0b25fUmVsZWFzZV9NYXNrICAgICAgOiBjb25zdGFudCBHZGtf
RXZlbnRfTWFzazsKICAgS2V5X1ByZXNzX01hc2sgICAgICAgICAgIDogY29uc3RhbnQgR2RrX0V2
ZW50X01hc2s7CiAgIEtleV9SZWxlYXNlX01hc2sgICAgICAgICA6IGNvbnN0YW50IEdka19FdmVu
dF9NYXNrOwogICBFbnRlcl9Ob3RpZnlfTWFzayAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRf
TWFzazsKICAgTGVhdmVfTm90aWZ5X01hc2sgICAgICAgIDogY29uc3RhbnQgR2RrX0V2ZW50X01h
c2s7CiAgIEZvY3VzX0NoYW5nZV9NYXNrICAgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNr
OwogICBTdHJ1Y3R1cmVfTWFzayAgICAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzazsK
ICAgUHJvcGVydHlfQ2hhbmdlX01hc2sgICAgIDogY29uc3RhbnQgR2RrX0V2ZW50X01hc2s7CiAg
IFZpc2liaWxpdHlfTm90aWZ5X01hc2sgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrOwogICBQ
cm94aW1pdHlfSW5fTWFzayAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzazsKICAgUHJv
eGltaXR5X091dF9NYXNrICAgICAgIDogY29uc3RhbnQgR2RrX0V2ZW50X01hc2s7CiAgIEFsbF9F
dmVudHNfTWFzayAgICAgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrOwoKICAgdHlwZSBH
ZGtfRXZlbnRfVHlwZSBpcwogICAgIChOb3RoaW5nLAogICAgICBEZWxldGUsCiAgICAgIERlc3Ry
b3ksCiAgICAgIEV4cG9zZSwKICAgICAgTW90aW9uX05vdGlmeSwKICAgICAgQnV0dG9uX1ByZXNz
LAogICAgICBHZGtfMmJ1dHRvbl9QcmVzcywgIC0tICBEb3VibGUtY2xpY2sKICAgICAgR2RrXzNi
dXR0b25fUHJlc3MsICAtLSAgVHJpcGxlLWNsaWNrCiAgICAgIEJ1dHRvbl9SZWxlYXNlLAogICAg
ICBLZXlfUHJlc3MsCiAgICAgIEtleV9SZWxlYXNlLAogICAgICBFbnRlcl9Ob3RpZnksCiAgICAg
IExlYXZlX05vdGlmeSwKICAgICAgRm9jdXNfQ2hhbmdlLAogICAgICBDb25maWd1cmUsCiAgICAg
IE1hcCwKICAgICAgVW5tYXAsCiAgICAgIFByb3BlcnR5X05vdGlmeSwKICAgICAgU2VsZWN0aW9u
X0NsZWFyLAogICAgICBTZWxlY3Rpb25fUmVxdWVzdCwKICAgICAgU2VsZWN0aW9uX05vdGlmeSwK
ICAgICAgUHJveGltaXR5X0luLAogICAgICBQcm94aW1pdHlfT3V0LAogICAgICBEcmFnX0VudGVy
LAogICAgICBEcmFnX0xlYXZlLAogICAgICBEcmFnX01vdGlvbiwKICAgICAgRHJhZ19TdGF0dXMs
CiAgICAgIERyb3BfU3RhcnQsCiAgICAgIERyb3BfRmluaXNoZWQsCiAgICAgIENsaWVudF9FdmVu
dCwKICAgICAgVmlzaWJpbGl0eV9Ob3RpZnksCiAgICAgIE5vX0V4cG9zZSk7CgogICB0eXBlIEdk
a19FeHRlbnNpb25fTW9kZSBpcwogICAgIChFeHRlbnNpb25fRXZlbnRzX05vbmUsIEV4dGVuc2lv
bl9FdmVudHNfQWxsLCBFeHRlbnNpb25fRXZlbnRzX0N1cnNvcik7CgogICB0eXBlIEdka19GaWxs
IGlzIChTb2xpZCwgVGlsZWQsIFN0aXBwbGVkLCBPcGFxdWVfU3RpcHBsZWQpOwoKICAgdHlwZSBH
ZGtfRmlsbF9SdWxlIGlzIChFdmVuX09kZF9SdWxlLCBXaW5kaW5nX1J1bGUpOwoKICAgdHlwZSBH
ZGtfRnVuY3Rpb24gaXMKICAgICAoQ29weSwKICAgICAgSW52ZXJ0LAogICAgICBHZGtfWG9yLAog
ICAgICBDbGVhciwKICAgICAgR2RrX0FuZCwKICAgICAgQW5kX1JldmVyc2UsCiAgICAgIEFuZF9J
bnZlcnQsCiAgICAgIE5vb3AsCiAgICAgIEdka19PciwKICAgICAgRXF1aXYsCiAgICAgIE9yX1Jl
dmVyc2UsCiAgICAgIENvcHlfSW52ZXJ0LAogICAgICBPcl9JbnZlcnQsCiAgICAgIE5hbmQsCiAg
ICAgIFNldCk7CgogICB0eXBlIEdka19Kb2luX1N0eWxlIGlzIChKb2luX01pdGVyLCBKb2luX1Jv
dW5kLCBKb2luX0JldmVsKTsKCiAgIHR5cGUgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZSBpcyBuZXcg
R3VpbnQ7CiAgIEljX1N0eWxlICAgICAgICAgICAgICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJp
YnV0ZXNfVHlwZTsKICAgSWNfQ2xpZW50X1dpbmRvdyAgICAgICAgOiBjb25zdGFudCBHZGtfSUNf
QXR0cmlidXRlc19UeXBlOwogICBJY19Gb2N1c19XaW5kb3cgICAgICAgICA6IGNvbnN0YW50IEdk
a19JQ19BdHRyaWJ1dGVzX1R5cGU7CiAgIEljX0ZpbHRlcl9FdmVudHMgICAgICAgIDogY29uc3Rh
bnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZTsKICAgSWNfU3BvdF9Mb2NhdGlvbiAgICAgICAgOiBj
b25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlOwogICBJY19MaW5lX1NwYWNpbmcgICAgICAg
ICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGU7CiAgIEljX0N1cnNvciAgICAgICAg
ICAgICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZTsKICAgSWNfUHJlZWRpdF9G
b250c2V0ICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlOwogICBJY19QcmVl
ZGl0X0FyZWEgICAgICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGU7CiAgIElj
X1ByZWVkaXRfQXJlYV9OZWVkZWQgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZTsK
ICAgSWNfUHJlZWRpdF9Gb3JlZ3JvdW5kICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19U
eXBlOwogICBJY19QcmVlZGl0X0JhY2tncm91bmQgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1
dGVzX1R5cGU7CiAgIEljX1ByZWVkaXRfUGl4bWFwICAgICAgIDogY29uc3RhbnQgR2RrX0lDX0F0
dHJpYnV0ZXNfVHlwZTsKICAgSWNfUHJlZWRpdF9Db2xvcm1hcCAgICAgOiBjb25zdGFudCBHZGtf
SUNfQXR0cmlidXRlc19UeXBlOwogICBJY19TdGF0dXNfRm9udHNldCAgICAgICA6IGNvbnN0YW50
IEdka19JQ19BdHRyaWJ1dGVzX1R5cGU7CiAgIEljX1N0YXR1c19BcmVhICAgICAgICAgIDogY29u
c3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZTsKICAgSWNfU3RhdHVzX0FyZWFfTmVlZGVkICAg
OiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlOwogICBJY19TdGF0dXNfRm9yZWdyb3Vu
ZCAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGU7CiAgIEljX1N0YXR1c19CYWNr
Z3JvdW5kICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZTsKICAgSWNfU3RhdHVz
X1BpeG1hcCAgICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlOwogICBJY19T
dGF0dXNfQ29sb3JtYXAgICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGU7CiAg
IEljX0FsbF9SZXEgICAgICAgICAgICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlw
ZTsKICAgSWNfUHJlZWRpdF9BcmVhX1JlcSAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRl
c19UeXBlOwogICBJY19QcmVlZGl0X1Bvc2l0aW9uX1JlcSA6IGNvbnN0YW50IEdka19JQ19BdHRy
aWJ1dGVzX1R5cGU7CiAgIEljX1N0YXR1c19BcmVhX1JlcSAgICAgIDogY29uc3RhbnQgR2RrX0lD
X0F0dHJpYnV0ZXNfVHlwZTsKCiAgIHR5cGUgR2RrX0lNX1N0eWxlIGlzIG5ldyBHdWludDsKICAg
SW1fUHJlZWRpdF9BcmVhICAgICAgOiBjb25zdGFudCBHZGtfSU1fU3R5bGU7CiAgIEltX1ByZWVk
aXRfQ2FsbGJhY2tzIDogY29uc3RhbnQgR2RrX0lNX1N0eWxlOwogICBJbV9QcmVlZGl0X1Bvc2l0
aW9uICA6IGNvbnN0YW50IEdka19JTV9TdHlsZTsKICAgSW1fUHJlZWRpdF9Ob3RoaW5nICAgOiBj
b25zdGFudCBHZGtfSU1fU3R5bGU7CiAgIEltX1ByZWVkaXRfTm9uZSAgICAgIDogY29uc3RhbnQg
R2RrX0lNX1N0eWxlOwogICBJbV9QcmVlZGl0X01hc2sgICAgICA6IGNvbnN0YW50IEdka19JTV9T
dHlsZTsKICAgSW1fU3RhdHVzX0FyZWEgICAgICAgOiBjb25zdGFudCBHZGtfSU1fU3R5bGU7CiAg
IEltX1N0YXR1c19DYWxsYmFja3MgIDogY29uc3RhbnQgR2RrX0lNX1N0eWxlOwogICBJbV9TdGF0
dXNfTm90aGluZyAgICA6IGNvbnN0YW50IEdka19JTV9TdHlsZTsKICAgSW1fU3RhdHVzX05vbmUg
ICAgICAgOiBjb25zdGFudCBHZGtfSU1fU3R5bGU7CiAgIEltX1N0YXR1c19NYXNrICAgICAgIDog
Y29uc3RhbnQgR2RrX0lNX1N0eWxlOwoKICAgdHlwZSBHZGtfSW5wdXRfQ29uZGl0aW9uIGlzIChJ
bnB1dF9SZWFkLCBJbnB1dF9Xcml0ZSwgSW5wdXRfRXhjZXB0aW9uKTsKCiAgIHR5cGUgR2RrX0lu
cHV0X01vZGUgaXMgKE1vZGVfRGlzYWJsZWQsIE1vZGVfU2NyZWVuLCBNb2RlX1dpbmRvdyk7Cgog
ICB0eXBlIEdka19JbnB1dF9Tb3VyY2UgaXMKICAgICAoU291cmNlX01vdXNlLAogICAgICBTb3Vy
Y2VfUGVuLAogICAgICBTb3VyY2VfRXJhc2VyLAogICAgICBTb3VyY2VfQ3Vyc29yKTsKCiAgIHR5
cGUgR2RrX0tleV9UeXBlIGlzIG5ldyBHdWludDsKICAgLS0gIHNlZSBHZGsuVHlwZXMuS2V5c3lt
cyBmb3Iga2V5IHR5cGUgY29uc3RhbnRzCgogICB0eXBlIEdka19MaW5lX1N0eWxlIGlzIChMaW5l
X1NvbGlkLCBMaW5lX09uX09mZl9EYXNoLCBMaW5lX0RvdWJsZV9EYXNoKTsKCiAgIHR5cGUgR2Rr
X01vZGlmaWVyX1R5cGUgaXMgbmV3IEd1aW50OwogICBTaGlmdF9NYXNrICAgIDogY29uc3RhbnQg
R2RrX01vZGlmaWVyX1R5cGU7CiAgIExvY2tfTWFzayAgICAgOiBjb25zdGFudCBHZGtfTW9kaWZp
ZXJfVHlwZTsKICAgQ29udHJvbF9NYXNrICA6IGNvbnN0YW50IEdka19Nb2RpZmllcl9UeXBlOwog
ICBNb2QxX01hc2sgICAgIDogY29uc3RhbnQgR2RrX01vZGlmaWVyX1R5cGU7CiAgIE1vZDJfTWFz
ayAgICAgOiBjb25zdGFudCBHZGtfTW9kaWZpZXJfVHlwZTsKICAgTW9kM19NYXNrICAgICA6IGNv
bnN0YW50IEdka19Nb2RpZmllcl9UeXBlOwogICBNb2Q0X01hc2sgICAgIDogY29uc3RhbnQgR2Rr
X01vZGlmaWVyX1R5cGU7CiAgIE1vZDVfTWFzayAgICAgOiBjb25zdGFudCBHZGtfTW9kaWZpZXJf
VHlwZTsKICAgQnV0dG9uMV9NYXNrICA6IGNvbnN0YW50IEdka19Nb2RpZmllcl9UeXBlOwogICBC
dXR0b24yX01hc2sgIDogY29uc3RhbnQgR2RrX01vZGlmaWVyX1R5cGU7CiAgIEJ1dHRvbjNfTWFz
ayAgOiBjb25zdGFudCBHZGtfTW9kaWZpZXJfVHlwZTsKICAgQnV0dG9uNF9NYXNrICA6IGNvbnN0
YW50IEdka19Nb2RpZmllcl9UeXBlOwogICBCdXR0b241X01hc2sgIDogY29uc3RhbnQgR2RrX01v
ZGlmaWVyX1R5cGU7CiAgIFJlbGVhc2VfTWFzayAgOiBjb25zdGFudCBHZGtfTW9kaWZpZXJfVHlw
ZTsKICAgTW9kaWZpZXJfTWFzayA6IGNvbnN0YW50IEdka19Nb2RpZmllcl9UeXBlOwoKICAgdHlw
ZSBHZGtfTm90aWZ5X1R5cGUgaXMKICAgICAoTm90aWZ5X0FuY2VzdG9yLAogICAgICBOb3RpZnlf
VmlydHVhbCwKICAgICAgTm90aWZ5X0luZmVyaW9yLAogICAgICBOb3RpZnlfTm9uX0xpbmVhciwK
ICAgICAgTm90aWZ5X05vbl9MaW5lYXJfVmlydHVhbCwKICAgICAgTm90aWZ5X1Vua25vd24pOwoK
ICAgdHlwZSBHZGtfT3ZlcmxhcF9UeXBlIGlzCiAgICAgKE92ZXJsYXBfUmVjdGFuZ2xlX0luLAog
ICAgICBPdmVybGFwX1JlY3RhbmdsZV9PdXQsCiAgICAgIE92ZXJsYXBfUmVjdGFuZ2xlX1BhcnQp
OwoKICAgdHlwZSBHZGtfUHJvcF9Nb2RlIGlzCiAgICAgKFByb3BfTW9kZV9SZXBsYWNlLCBQcm9w
X01vZGVfUHJlcGVuZCwgUHJvcF9Nb2RlX0FwcGVuZCk7CgogICB0eXBlIEdka19TdWJ3aW5kb3df
TW9kZSBpcyAoQ2xpcF9CeV9DaGlsZHJlbiwgSW5jbHVkZV9JbmZlcmlvcnMpOwoKICAgdHlwZSBH
ZGtfR0NfVmFsdWVzX01hc2sgaXMgbmV3IEd1aW50OwogICBHQ19Gb3JlZ3JvdW5kICAgIDogY29u
c3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrOwogICBHQ19CYWNrZ3JvdW5kICAgIDogY29uc3RhbnQg
R2RrX0dDX1ZhbHVlc19NYXNrOwogICBHQ19Gb250ICAgICAgICAgIDogY29uc3RhbnQgR2RrX0dD
X1ZhbHVlc19NYXNrOwogICBHQ19GdW5jdGlvbiAgICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVl
c19NYXNrOwogICBHQ19GaWxsICAgICAgICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNr
OwogICBHQ19UaWxlICAgICAgICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrOwogICBH
Q19TdGlwcGxlICAgICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrOwogICBHQ19DbGlw
X01hc2sgICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrOwogICBHQ19TdWJ3aW5kb3cg
ICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrOwogICBHQ19Uc19YX09yaWdpbiAgIDog
Y29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrOwogICBHQ19UeF9ZX09yaWdpbiAgIDogY29uc3Rh
bnQgR2RrX0dDX1ZhbHVlc19NYXNrOwogICBHQ19DbGlwX1hfT3JpZ2luIDogY29uc3RhbnQgR2Rr
X0dDX1ZhbHVlc19NYXNrOwogICBHQ19DbGlwX1lfT3JpZ2luIDogY29uc3RhbnQgR2RrX0dDX1Zh
bHVlc19NYXNrOwogICBHQ19FeHBvc3VyZXMgICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19N
YXNrOwogICBHQ19MaW5lX1dpZHRoICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrOwog
ICBHQ19MaW5lX1N0eWxlICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrOwogICBHQ19D
YXBfU3R5bGUgICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrOwogICBHQ19Kb2luX1N0
eWxlICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrOwoKICAgdHlwZSBHZGtfVmlzaWJp
bGl0eV9TdGF0ZSBpcwogICAgIChWaXNpYmlsaXR5X1Vub2JzY3VyZWQsCiAgICAgIFZpc2liaWxp
dHlfUGFydGlhbCwKICAgICAgVmlzaWJpbGl0eV9GdWxseV9PYnNjdXJlZCk7CgogICB0eXBlIEdk
a19WaXN1YWxfVHlwZSBpcwogICAgIChWaXN1YWxfU3RhdGljX0dyYXksCiAgICAgIFZpc3VhbF9H
cmF5c2NhbGUsCiAgICAgIFZpc3VhbF9TdGF0aWNfQ29sb3IsCiAgICAgIFZpc3VhbF9Qc2V1ZG9f
Q29sb3IsCiAgICAgIFZpc3VhbF9UcnVlX0NvbG9yLAogICAgICBWaXN1YWxfRGlyZWN0X0NvbG9y
KTsKCiAgIHR5cGUgR2RrX1dpbmRvd19BdHRyaWJ1dGVzX1R5cGUgaXMgbmV3IEd1aW50OwogICBX
YV9UaXRsZSAgICA6IGNvbnN0YW50IEdka19XaW5kb3dfQXR0cmlidXRlc19UeXBlOwogICBXYV9Y
ICAgICAgICA6IGNvbnN0YW50IEdka19XaW5kb3dfQXR0cmlidXRlc19UeXBlOwogICBXYV9ZICAg
ICAgICA6IGNvbnN0YW50IEdka19XaW5kb3dfQXR0cmlidXRlc19UeXBlOwogICBXYV9DdXJzb3Ig
ICA6IGNvbnN0YW50IEdka19XaW5kb3dfQXR0cmlidXRlc19UeXBlOwogICBXYV9Db2xvcm1hcCA6
IGNvbnN0YW50IEdka19XaW5kb3dfQXR0cmlidXRlc19UeXBlOwogICBXYV9WaXN1YWwgICA6IGNv
bnN0YW50IEdka19XaW5kb3dfQXR0cmlidXRlc19UeXBlOwogICBXYV9XbWNsYXNzICA6IGNvbnN0
YW50IEdka19XaW5kb3dfQXR0cmlidXRlc19UeXBlOwogICBXYV9Ob3JlZGlyICA6IGNvbnN0YW50
IEdka19XaW5kb3dfQXR0cmlidXRlc19UeXBlOwoKICAgdHlwZSBHZGtfV2luZG93X0NsYXNzIGlz
IChJbnB1dF9PdXRwdXQsIElucHV0X09ubHkpOwoKICAgdHlwZSBHZGtfV2luZG93X0hpbnRzIGlz
IG5ldyBHdWludDsKICAgR2RrX0hpbnRfUG9zICAgICAgICA6IGNvbnN0YW50IEdka19XaW5kb3df
SGludHM7CiAgIEdka19IaW50X01pbl9TaXplICAgOiBjb25zdGFudCBHZGtfV2luZG93X0hpbnRz
OwogICBHZGtfSGludF9NYXhfU2l6ZSAgIDogY29uc3RhbnQgR2RrX1dpbmRvd19IaW50czsKICAg
R2RrX0hpbnRfQmFzZV9TaXplICA6IGNvbnN0YW50IEdka19XaW5kb3dfSGludHM7CiAgIEdka19I
aW50X0FzcGVjdCAgICAgOiBjb25zdGFudCBHZGtfV2luZG93X0hpbnRzOwogICBHZGtfSGludF9S
ZXNpemVfSW5jIDogY29uc3RhbnQgR2RrX1dpbmRvd19IaW50czsKCiAgIHR5cGUgR2RrX1dpbmRv
d19UeXBlIGlzCiAgICAgKFdpbmRvd19Sb290LAogICAgICBXaW5kb3dfVG9wbGV2ZWwsCiAgICAg
IFdpbmRvd19DaGlsZCwKICAgICAgV2luZG93X0RpYWxvZywKICAgICAgV2luZG93X1RlbXAsCiAg
ICAgIFdpbmRvd19QaXhtYXAsCiAgICAgIFdpbmRvd19Gb3JlaWduKTsKCiAgIHR5cGUgR2RrX1dt
X0RlY29yYXRpb24gaXMgbmV3IEd1aW50OwogICBEZWNvcl9BbGwgICAgICA6IGNvbnN0YW50IEdk
a19XbV9EZWNvcmF0aW9uOwogICBEZWNvcl9Cb3JkZXIgICA6IGNvbnN0YW50IEdka19XbV9EZWNv
cmF0aW9uOwogICBEZWNvcl9SZXNpemVfSCA6IGNvbnN0YW50IEdka19XbV9EZWNvcmF0aW9uOwog
ICBEZWNvcl9UaXRsZSAgICA6IGNvbnN0YW50IEdka19XbV9EZWNvcmF0aW9uOwogICBEZWNvcl9N
ZW51ICAgICA6IGNvbnN0YW50IEdka19XbV9EZWNvcmF0aW9uOwogICBEZWNvcl9NaW5pbWl6ZSA6
IGNvbnN0YW50IEdka19XbV9EZWNvcmF0aW9uOwogICBEZWNvcl9NYXhpbWl6ZSA6IGNvbnN0YW50
IEdka19XbV9EZWNvcmF0aW9uOwoKICAgdHlwZSBHZGtfV21fRnVuY3Rpb24gaXMgbmV3IEd1aW50
OwogICBGdW5jX0FsbCAgICAgIDogY29uc3RhbnQgR2RrX1dtX0Z1bmN0aW9uOwogICBGdW5jX1Jl
c2l6ZSAgIDogY29uc3RhbnQgR2RrX1dtX0Z1bmN0aW9uOwogICBGdW5jX01vdmUgICAgIDogY29u
c3RhbnQgR2RrX1dtX0Z1bmN0aW9uOwogICBGdW5jX01pbmltaXplIDogY29uc3RhbnQgR2RrX1dt
X0Z1bmN0aW9uOwogICBGdW5jX01heGltaXplIDogY29uc3RhbnQgR2RrX1dtX0Z1bmN0aW9uOwog
ICBGdW5jX0Nsb3NlICAgIDogY29uc3RhbnQgR2RrX1dtX0Z1bmN0aW9uOwoKICAgc3VidHlwZSBH
ZGtfV0NoYXIgaXMgU3RhbmRhcmQuV2lkZV9DaGFyYWN0ZXI7CiAgIHN1YnR5cGUgR2RrX1dTdHJp
bmcgaXMgU3RhbmRhcmQuV2lkZV9TdHJpbmc7CiAgIC0tICBHZGsgZG9lcyBub3QgZGVmaW5lIGEg
R2RrX1dTdHJpbmcgdHlwZSwgYnV0IHVzZXMgcG9pbnRlcnMKICAgLS0gIHRvIEdka19XQ2hhciBp
bnN0ZWFkLgoKcHJpdmF0ZQoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSAgUHJp
dmF0ZSBjb25zdGFudHMgIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIE51bGxf
RXZlbnRfTWFzayAgICAgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrIDo9IDA7CiAgIEV4
cG9zdXJlX01hc2sgICAgICAgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrIDo9IDIgKiog
MTsKICAgUG9pbnRlcl9Nb3Rpb25fTWFzayAgICAgIDogY29uc3RhbnQgR2RrX0V2ZW50X01hc2sg
Oj0gMiAqKiAyOwogICBQb2ludGVyX01vdGlvbl9IaW50X01hc2sgOiBjb25zdGFudCBHZGtfRXZl
bnRfTWFzayA6PSAyICoqIDM7CiAgIEJ1dHRvbl9Nb3Rpb25fTWFzayAgICAgICA6IGNvbnN0YW50
IEdka19FdmVudF9NYXNrIDo9IDIgKiogNDsKICAgQnV0dG9uMV9Nb3Rpb25fTWFzayAgICAgIDog
Y29uc3RhbnQgR2RrX0V2ZW50X01hc2sgOj0gMiAqKiA1OwogICBCdXR0b24yX01vdGlvbl9NYXNr
ICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzayA6PSAyICoqIDY7CiAgIEJ1dHRvbjNfTW90
aW9uX01hc2sgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrIDo9IDIgKiogNzsKICAgQnV0
dG9uX1ByZXNzX01hc2sgICAgICAgIDogY29uc3RhbnQgR2RrX0V2ZW50X01hc2sgOj0gMiAqKiA4
OwogICBCdXR0b25fUmVsZWFzZV9NYXNrICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzayA6
PSAyICoqIDk7CiAgIEtleV9QcmVzc19NYXNrICAgICAgICAgICA6IGNvbnN0YW50IEdka19FdmVu
dF9NYXNrIDo9IDIgKiogMTA7CiAgIEtleV9SZWxlYXNlX01hc2sgICAgICAgICA6IGNvbnN0YW50
IEdka19FdmVudF9NYXNrIDo9IDIgKiogMTE7CiAgIEVudGVyX05vdGlmeV9NYXNrICAgICAgICA6
IGNvbnN0YW50IEdka19FdmVudF9NYXNrIDo9IDIgKiogMTI7CiAgIExlYXZlX05vdGlmeV9NYXNr
ICAgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrIDo9IDIgKiogMTM7CiAgIEZvY3VzX0No
YW5nZV9NYXNrICAgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrIDo9IDIgKiogMTQ7CiAg
IFN0cnVjdHVyZV9NYXNrICAgICAgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrIDo9IDIg
KiogMTU7CiAgIFByb3BlcnR5X0NoYW5nZV9NYXNrICAgICA6IGNvbnN0YW50IEdka19FdmVudF9N
YXNrIDo9IDIgKiogMTY7CiAgIFZpc2liaWxpdHlfTm90aWZ5X01hc2sgICA6IGNvbnN0YW50IEdk
a19FdmVudF9NYXNrIDo9IDIgKiogMTc7CiAgIFByb3hpbWl0eV9Jbl9NYXNrICAgICAgICA6IGNv
bnN0YW50IEdka19FdmVudF9NYXNrIDo9IDIgKiogMTg7CiAgIFByb3hpbWl0eV9PdXRfTWFzayAg
ICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrIDo9IDIgKiogMTk7CiAgIFN1YnN0cnVjdHVy
ZV9NYXNrICAgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrIDo9IDIgKiogMjA7CiAgIEFs
bF9FdmVudHNfTWFzayAgICAgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrIDo9IDE2IzFG
RkZGRiM7CgogICBJY19TdHlsZSAgICAgICAgICAgICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRy
aWJ1dGVzX1R5cGUgOj0gMiAqKiAwOwogICBJY19DbGllbnRfV2luZG93ICAgICAgICA6IGNvbnN0
YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiAxOwogICBJY19Gb2N1c19XaW5kb3cg
ICAgICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiAyOwogICBJ
Y19GaWx0ZXJfRXZlbnRzICAgICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUg
Oj0gMiAqKiAzOwogICBJY19TcG90X0xvY2F0aW9uICAgICAgICA6IGNvbnN0YW50IEdka19JQ19B
dHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiA0OwogICBJY19MaW5lX1NwYWNpbmcgICAgICAgICA6IGNv
bnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiA1OwogICBJY19DdXJzb3IgICAg
ICAgICAgICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiA2Owog
ICBJY19QcmVlZGl0X0ZvbnRzZXQgICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5
cGUgOj0gMiAqKiAxMDsKICAgSWNfUHJlZWRpdF9BcmVhICAgICAgICAgOiBjb25zdGFudCBHZGtf
SUNfQXR0cmlidXRlc19UeXBlIDo9IDIgKiogMTE7CiAgIEljX1ByZWVkaXRfQXJlYV9OZWVkZWQg
IDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZSA6PSAyICoqIDEyOwogICBJY19QcmVl
ZGl0X0ZvcmVncm91bmQgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAq
KiAxMzsKICAgSWNfUHJlZWRpdF9CYWNrZ3JvdW5kICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmli
dXRlc19UeXBlIDo9IDIgKiogMTQ7CiAgIEljX1ByZWVkaXRfUGl4bWFwICAgICAgIDogY29uc3Rh
bnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZSA6PSAyICoqIDE1OwogICBJY19QcmVlZGl0X0NvbG9y
bWFwICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiAxNjsKICAg
SWNfU3RhdHVzX0ZvbnRzZXQgICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBl
IDo9IDIgKiogMjE7CiAgIEljX1N0YXR1c19BcmVhICAgICAgICAgIDogY29uc3RhbnQgR2RrX0lD
X0F0dHJpYnV0ZXNfVHlwZSA6PSAyICoqIDIyOwogICBJY19TdGF0dXNfQXJlYV9OZWVkZWQgICA6
IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiAyMzsKICAgSWNfU3RhdHVz
X0ZvcmVncm91bmQgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlIDo9IDIgKiog
MjQ7CiAgIEljX1N0YXR1c19CYWNrZ3JvdW5kICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0
ZXNfVHlwZSA6PSAyICoqIDI1OwogICBJY19TdGF0dXNfUGl4bWFwICAgICAgICA6IGNvbnN0YW50
IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiAyNjsKICAgSWNfU3RhdHVzX0NvbG9ybWFw
ICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlIDo9IDIgKiogMjc7CiAgIElj
X0FsbF9SZXEgICAgICAgICAgICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZSA6
PQogICAgIEljX1N0eWxlIG9yIEljX0NsaWVudF9XaW5kb3c7CiAgIEljX1ByZWVkaXRfQXJlYV9S
ZXEgICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZSA6PQogICAgIEljX1ByZWVk
aXRfQXJlYSBvciBJY19QcmVlZGl0X0ZvbnRzZXQ7CiAgIEljX1ByZWVkaXRfUG9zaXRpb25fUmVx
IDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZSA6PQogICAgIEljX1ByZWVkaXRfQXJl
YSBvciBJY19TcG90X0xvY2F0aW9uIG9yIEljX1ByZWVkaXRfRm9udHNldDsKICAgSWNfU3RhdHVz
X0FyZWFfUmVxICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlIDo9CiAgICAg
SWNfU3RhdHVzX0FyZWEgb3IgSWNfU3RhdHVzX0ZvbnRzZXQ7CgogICBJbV9QcmVlZGl0X0FyZWEg
ICAgICA6IGNvbnN0YW50IEdka19JTV9TdHlsZSA6PSAxNiMwMDAxIzsKICAgSW1fUHJlZWRpdF9D
YWxsYmFja3MgOiBjb25zdGFudCBHZGtfSU1fU3R5bGUgOj0gMTYjMDAwMiM7CiAgIEltX1ByZWVk
aXRfUG9zaXRpb24gIDogY29uc3RhbnQgR2RrX0lNX1N0eWxlIDo9IDE2IzAwMDQjOwogICBJbV9Q
cmVlZGl0X05vdGhpbmcgICA6IGNvbnN0YW50IEdka19JTV9TdHlsZSA6PSAxNiMwMDA4IzsKICAg
SW1fUHJlZWRpdF9Ob25lICAgICAgOiBjb25zdGFudCBHZGtfSU1fU3R5bGUgOj0gMTYjMDAxMCM7
CiAgIEltX1ByZWVkaXRfTWFzayAgICAgIDogY29uc3RhbnQgR2RrX0lNX1N0eWxlIDo9IDE2IzAw
MUYjOwogICBJbV9TdGF0dXNfQXJlYSAgICAgICA6IGNvbnN0YW50IEdka19JTV9TdHlsZSA6PSAx
NiMwMTAwIzsKICAgSW1fU3RhdHVzX0NhbGxiYWNrcyAgOiBjb25zdGFudCBHZGtfSU1fU3R5bGUg
Oj0gMTYjMDIwMCM7CiAgIEltX1N0YXR1c19Ob3RoaW5nICAgIDogY29uc3RhbnQgR2RrX0lNX1N0
eWxlIDo9IDE2IzA0MDAjOwogICBJbV9TdGF0dXNfTm9uZSAgICAgICA6IGNvbnN0YW50IEdka19J
TV9TdHlsZSA6PSAxNiMwODAwIzsKICAgSW1fU3RhdHVzX01hc2sgICAgICAgOiBjb25zdGFudCBH
ZGtfSU1fU3R5bGUgOj0gMTYjMEYwMCM7CgogICBTaGlmdF9NYXNrICAgOiBjb25zdGFudCBHZGtf
TW9kaWZpZXJfVHlwZSA6PSAyICoqIDA7CiAgIExvY2tfTWFzayAgICA6IGNvbnN0YW50IEdka19N
b2RpZmllcl9UeXBlIDo9IDIgKiogMTsKICAgQ29udHJvbF9NYXNrIDogY29uc3RhbnQgR2RrX01v
ZGlmaWVyX1R5cGUgOj0gMiAqKiAyOwogICBNb2QxX01hc2sgICAgOiBjb25zdGFudCBHZGtfTW9k
aWZpZXJfVHlwZSA6PSAyICoqIDM7CiAgIE1vZDJfTWFzayAgICA6IGNvbnN0YW50IEdka19Nb2Rp
Zmllcl9UeXBlIDo9IDIgKiogNDsKICAgTW9kM19NYXNrICAgIDogY29uc3RhbnQgR2RrX01vZGlm
aWVyX1R5cGUgOj0gMiAqKiA1OwogICBNb2Q0X01hc2sgICAgOiBjb25zdGFudCBHZGtfTW9kaWZp
ZXJfVHlwZSA6PSAyICoqIDY7CiAgIE1vZDVfTWFzayAgICA6IGNvbnN0YW50IEdka19Nb2RpZmll
cl9UeXBlIDo9IDIgKiogNzsKICAgQnV0dG9uMV9NYXNrIDogY29uc3RhbnQgR2RrX01vZGlmaWVy
X1R5cGUgOj0gMiAqKiA4OwogICBCdXR0b24yX01hc2sgOiBjb25zdGFudCBHZGtfTW9kaWZpZXJf
VHlwZSA6PSAyICoqIDk7CiAgIEJ1dHRvbjNfTWFzayA6IGNvbnN0YW50IEdka19Nb2RpZmllcl9U
eXBlIDo9IDIgKiogMTA7CiAgIEJ1dHRvbjRfTWFzayA6IGNvbnN0YW50IEdka19Nb2RpZmllcl9U
eXBlIDo9IDIgKiogMTE7CiAgIEJ1dHRvbjVfTWFzayA6IGNvbnN0YW50IEdka19Nb2RpZmllcl9U
eXBlIDo9IDIgKiogMTI7CiAgIFJlbGVhc2VfTWFzayAgOiBjb25zdGFudCBHZGtfTW9kaWZpZXJf
VHlwZSA6PSAyICoqIDEzOwogICBNb2RpZmllcl9NYXNrIDogY29uc3RhbnQgR2RrX01vZGlmaWVy
X1R5cGUgOj0gMTYjM0ZGRiM7CgogICBXYV9UaXRsZSAgICA6IGNvbnN0YW50IEdka19XaW5kb3df
QXR0cmlidXRlc19UeXBlIDo9IDIgKiogMTsKICAgV2FfWCAgICAgICAgOiBjb25zdGFudCBHZGtf
V2luZG93X0F0dHJpYnV0ZXNfVHlwZSA6PSAyICoqIDI7CiAgIFdhX1kgICAgICAgIDogY29uc3Rh
bnQgR2RrX1dpbmRvd19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiAzOwogICBXYV9DdXJzb3IgICA6
IGNvbnN0YW50IEdka19XaW5kb3dfQXR0cmlidXRlc19UeXBlIDo9IDIgKiogNDsKICAgV2FfQ29s
b3JtYXAgOiBjb25zdGFudCBHZGtfV2luZG93X0F0dHJpYnV0ZXNfVHlwZSA6PSAyICoqIDU7CiAg
IFdhX1Zpc3VhbCAgIDogY29uc3RhbnQgR2RrX1dpbmRvd19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAq
KiA2OwogICBXYV9XbWNsYXNzICA6IGNvbnN0YW50IEdka19XaW5kb3dfQXR0cmlidXRlc19UeXBl
IDo9IDIgKiogNzsKICAgV2FfTm9yZWRpciAgOiBjb25zdGFudCBHZGtfV2luZG93X0F0dHJpYnV0
ZXNfVHlwZSA6PSAyICoqIDg7CgogICBHQ19Gb3JlZ3JvdW5kICAgIDogY29uc3RhbnQgR2RrX0dD
X1ZhbHVlc19NYXNrIDo9IDIgKiogMDsKICAgR0NfQmFja2dyb3VuZCAgICA6IGNvbnN0YW50IEdk
a19HQ19WYWx1ZXNfTWFzayA6PSAyICoqIDE7CiAgIEdDX0ZvbnQgICAgICAgICAgOiBjb25zdGFu
dCBHZGtfR0NfVmFsdWVzX01hc2sgOj0gMiAqKiAyOwogICBHQ19GdW5jdGlvbiAgICAgIDogY29u
c3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrIDo9IDIgKiogMzsKICAgR0NfRmlsbCAgICAgICAgICA6
IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzayA6PSAyICoqIDQ7CiAgIEdDX1RpbGUgICAgICAg
ICAgOiBjb25zdGFudCBHZGtfR0NfVmFsdWVzX01hc2sgOj0gMiAqKiA1OwogICBHQ19TdGlwcGxl
ICAgICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrIDo9IDIgKiogNjsKICAgR0NfQ2xp
cF9NYXNrICAgICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzayA6PSAyICoqIDc7CiAgIEdD
X1N1YndpbmRvdyAgICAgOiBjb25zdGFudCBHZGtfR0NfVmFsdWVzX01hc2sgOj0gMiAqKiA4Owog
ICBHQ19Uc19YX09yaWdpbiAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrIDo9IDIgKiog
OTsKICAgR0NfVHhfWV9PcmlnaW4gICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzayA6PSAy
ICoqIDEwOwogICBHQ19DbGlwX1hfT3JpZ2luIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNr
IDo9IDIgKiogMTE7CiAgIEdDX0NsaXBfWV9PcmlnaW4gOiBjb25zdGFudCBHZGtfR0NfVmFsdWVz
X01hc2sgOj0gMiAqKiAxMjsKICAgR0NfRXhwb3N1cmVzICAgICA6IGNvbnN0YW50IEdka19HQ19W
YWx1ZXNfTWFzayA6PSAyICoqIDEzOwogICBHQ19MaW5lX1dpZHRoICAgIDogY29uc3RhbnQgR2Rr
X0dDX1ZhbHVlc19NYXNrIDo9IDIgKiogMTQ7CiAgIEdDX0xpbmVfU3R5bGUgICAgOiBjb25zdGFu
dCBHZGtfR0NfVmFsdWVzX01hc2sgOj0gMiAqKiAxNTsKICAgR0NfQ2FwX1N0eWxlICAgICA6IGNv
bnN0YW50IEdka19HQ19WYWx1ZXNfTWFzayA6PSAyICoqIDE2OwogICBHQ19Kb2luX1N0eWxlICAg
IDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrIDo9IDIgKiogMTc7CgogICBHZGtfSGludF9Q
b3MgICAgICAgIDogY29uc3RhbnQgR2RrX1dpbmRvd19IaW50cyA6PSAyICoqIDA7CiAgIEdka19I
aW50X01pbl9TaXplICAgOiBjb25zdGFudCBHZGtfV2luZG93X0hpbnRzIDo9IDIgKiogMTsKICAg
R2RrX0hpbnRfTWF4X1NpemUgICA6IGNvbnN0YW50IEdka19XaW5kb3dfSGludHMgOj0gMiAqKiAy
OwogICBHZGtfSGludF9CYXNlX1NpemUgIDogY29uc3RhbnQgR2RrX1dpbmRvd19IaW50cyA6PSAy
ICoqIDM7CiAgIEdka19IaW50X0FzcGVjdCAgICAgOiBjb25zdGFudCBHZGtfV2luZG93X0hpbnRz
IDo9IDIgKiogNDsKICAgR2RrX0hpbnRfUmVzaXplX0luYyA6IGNvbnN0YW50IEdka19XaW5kb3df
SGludHMgOj0gMiAqKiA1OwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0t
ICBSZXByZXNlbnRhdGlvbiBjbGF1c2VzICAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KCiAgIGZvciBHZGtfRXZlbnRfVHlwZSB1c2UKICAgICAoTm90aGluZyA9PiAtMSwKICAg
ICAgRGVsZXRlID0+IDAsCiAgICAgIERlc3Ryb3kgPT4gMSwKICAgICAgRXhwb3NlID0+IDIsCiAg
ICAgIE1vdGlvbl9Ob3RpZnkgPT4gMywKICAgICAgQnV0dG9uX1ByZXNzID0+IDQsCiAgICAgIEdk
a18yYnV0dG9uX1ByZXNzID0+IDUsCiAgICAgIEdka18zYnV0dG9uX1ByZXNzID0+IDYsCiAgICAg
IEJ1dHRvbl9SZWxlYXNlID0+IDcsCiAgICAgIEtleV9QcmVzcyA9PiA4LAogICAgICBLZXlfUmVs
ZWFzZSA9PiA5LAogICAgICBFbnRlcl9Ob3RpZnkgPT4gMTAsCiAgICAgIExlYXZlX05vdGlmeSA9
PiAxMSwKICAgICAgRm9jdXNfQ2hhbmdlID0+IDEyLAogICAgICBDb25maWd1cmUgPT4gMTMsCiAg
ICAgIE1hcCA9PiAxNCwKICAgICAgVW5tYXAgPT4gMTUsCiAgICAgIFByb3BlcnR5X05vdGlmeSA9
PiAxNiwKICAgICAgU2VsZWN0aW9uX0NsZWFyID0+IDE3LAogICAgICBTZWxlY3Rpb25fUmVxdWVz
dCA9PiAxOCwKICAgICAgU2VsZWN0aW9uX05vdGlmeSA9PiAxOSwKICAgICAgUHJveGltaXR5X0lu
ID0+IDIwLAogICAgICBQcm94aW1pdHlfT3V0ID0+IDIxLAogICAgICBEcmFnX0VudGVyID0+IDIy
LAogICAgICBEcmFnX0xlYXZlID0+IDIzLAogICAgICBEcmFnX01vdGlvbiA9PiAyNCwKICAgICAg
RHJhZ19TdGF0dXMgPT4gMjUsCiAgICAgIERyb3BfU3RhcnQgPT4gMjYsCiAgICAgIERyb3BfRmlu
aXNoZWQgPT4gMjcsCiAgICAgIENsaWVudF9FdmVudCA9PiAyOCwKICAgICAgVmlzaWJpbGl0eV9O
b3RpZnkgPT4gMjksCiAgICAgIE5vX0V4cG9zZSA9PiAzMCk7CgogICBmb3IgR2RrX0lucHV0X0Nv
bmRpdGlvbiB1c2UKICAgICAoSW5wdXRfUmVhZCAgICAgID0+IDIgKiogMCwKICAgICAgSW5wdXRf
V3JpdGUgICAgID0+IDIgKiogMSwKICAgICAgSW5wdXRfRXhjZXB0aW9uID0+IDIgKiogMik7Cgog
ICBmb3IgR2RrX1N1YndpbmRvd19Nb2RlIHVzZSAoQ2xpcF9CeV9DaGlsZHJlbiAgPT4gMCwgSW5j
bHVkZV9JbmZlcmlvcnMgPT4gMSk7CgogICAtLSAgV2FybmluZyA6IHRoZXNlIHZhbHVlcyBzaG91
bGQgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0aCBnZGsvZ2RjdXJzb3JzLmgKICAgLS0gID8/PyBI
b3dldmVyLCBzaW5jZSB0aGVzZSB2YWx1ZXMgYXJlIGltcG9ydGVkIGZyb20gWGxpYiwgaXQgaXMg
dW5saWtlbHkKICAgLS0gIHRoYXQgdGhleSB3aWxsIGNoYW5nZSBzb29uLgoKICAgZm9yIEdka19D
dXJzb3JfVHlwZSB1c2UKICAgICAoWF9DdXJzb3IgPT4gMCwKICAgICAgQXJyb3cgICAgPT4gMiwK
ICAgICAgQmFzZWRfQXJyb3dfRG93biA9PiA0LAogICAgICBCYXNlZF9BcnJvd19VcCA9PiA2LAog
ICAgICBCb2F0ID0+IDgsCiAgICAgIEJvZ29zaXR5ID0+IDEwLAogICAgICBCb3R0b21fTGVmdF9D
b3JuZXIgPT4gMTIsCiAgICAgIEJvdHRvbV9SaWdodF9Db3JuZXIgPT4gMTQsCiAgICAgIEJvdHRv
bV9TaWRlID0+IDE2LAogICAgICBCb3R0b21fVGVlID0+IDE4LAogICAgICBCb3hfU3BpcmFsID0+
IDIwLAogICAgICBDZW50ZXJfUHRyID0+IDIyLAogICAgICBDaXJjbGUgPT4gMjQsCiAgICAgIENs
b2NrID0+IDI2LAogICAgICBDb2ZmZWVfTXVnID0+IDI4LAogICAgICBDcm9zcyA9PiAzMCwKICAg
ICAgQ3Jvc3NfUmV2ZXJzZSA9PiAzMiwKICAgICAgQ3Jvc3NoYWlyID0+IDM0LAogICAgICBEaWFt
b25kX0Nyb3NzID0+IDM2LAogICAgICBEb3QgPT4gMzgsCiAgICAgIERvdGJveCA9PiA0MCwKICAg
ICAgRG91YmxlX0Fycm93ID0+IDQyLAogICAgICBEcmFmdF9MYXJnZSA9PiA0NCwKICAgICAgRHJh
ZnRfU21hbGwgPT4gNDYsCiAgICAgIERyYXBlZF9Cb3ggPT4gNDgsCiAgICAgIEV4Y2hhbmdlID0+
IDUwLAogICAgICBGbGV1ciA9PiA1MiwKICAgICAgR29iYmxlciA9PiA1NCwKICAgICAgR3VtYnkg
PT4gNTYsCiAgICAgIEhhbmQxID0+IDU4LAogICAgICBIYW5kMiA9PiA2MCwKICAgICAgSGVhcnQg
PT4gNjIsCiAgICAgIEljb24gPT4gNjQsCiAgICAgIElyb25fQ3Jvc3MgPT4gNjYsCiAgICAgIExl
ZnRfUHRyID0+IDY4LAogICAgICBMZWZ0X1NpZGUgPT4gNzAsCiAgICAgIExlZnRfVGVlID0+IDcy
LAogICAgICBMZWZ0YnV0dG9uID0+IDc0LAogICAgICBMbF9BbmdsZSA9PiA3NiwKICAgICAgTHJf
QW5nbGUgPT4gNzgsCiAgICAgIE1hbiA9PiA4MCwKICAgICAgTWlkZGxlYnV0dG9uID0+IDgyLAog
ICAgICBNb3VzZSA9PiA4NCwKICAgICAgUGVuY2lsID0+IDg2LAogICAgICBQaXJhdGUgPT4gODgs
CiAgICAgIFBsdXMgPT4gOTAsCiAgICAgIFF1ZXN0aW9uX0Fycm93ID0+IDkyLAogICAgICBSaWdo
dF9QdHIgPT4gOTQsCiAgICAgIFJpZ2h0X1NpZGUgPT4gOTYsCiAgICAgIFJpZ2h0X1RlZSA9PiA5
OCwKICAgICAgUmlnaHRidXR0b24gPT4gMTAwLAogICAgICBSdGxfTG9nbyA9PiAxMDIsCiAgICAg
IFNhaWxib2F0ID0+IDEwNCwKICAgICAgU2JfRG93bl9BcnJvdyA9PiAxMDYsCiAgICAgIFNiX0hf
RG91YmxlX0Fycm93ID0+IDEwOCwKICAgICAgU2JfTGVmdF9BcnJvdyA9PiAxMTAsCiAgICAgIFNi
X1JpZ2h0X0Fycm93ID0+IDExMiwKICAgICAgU2JfVXBfQXJyb3cgPT4gMTE0LAogICAgICBTYl9W
X0RvdWJsZV9BcnJvdyA9PiAxMTYsCiAgICAgIFNodXR0bGUgPT4gMTE4LAogICAgICBTaXppbmcg
PT4gMTIwLAogICAgICBTcGlkZXIgPT4gMTIyLAogICAgICBTcHJheWNhbiA9PiAxMjQsCiAgICAg
IFN0YXIgPT4gMTI2LAogICAgICBUYXJnZXQgPT4gMTI4LAogICAgICBUY3Jvc3MgPT4gMTMwLAog
ICAgICBUb3BfTGVmdF9BcnJvdyA9PiAxMzIsCiAgICAgIFRvcF9MZWZ0X0Nvcm5lciA9PiAxMzQs
CiAgICAgIFRvcF9SaWdodF9Db3JuZXIgPT4gMTM2LAogICAgICBUb3BfU2lkZSA9PiAxMzgsCiAg
ICAgIFRvcF9UZWUgPT4gMTQwLAogICAgICBUcmVrID0+IDE0MiwKICAgICAgVWxfQW5nbGUgPT4g
MTQ0LAogICAgICBVbWJyZWxsYSA9PiAxNDYsCiAgICAgIFVyX0FuZ2xlID0+IDE0OCwKICAgICAg
V2F0Y2ggPT4gMTUwLAogICAgICBYdGVybSA9PiAxNTIpOwoKICAgRGVjb3JfQWxsICAgICAgOiBj
b25zdGFudCBHZGtfV21fRGVjb3JhdGlvbiA6PSAyICoqIDA7CiAgIERlY29yX0JvcmRlciAgIDog
Y29uc3RhbnQgR2RrX1dtX0RlY29yYXRpb24gOj0gMiAqKiAxOwogICBEZWNvcl9SZXNpemVfSCA6
IGNvbnN0YW50IEdka19XbV9EZWNvcmF0aW9uIDo9IDIgKiogMjsKICAgRGVjb3JfVGl0bGUgICAg
OiBjb25zdGFudCBHZGtfV21fRGVjb3JhdGlvbiA6PSAyICoqIDM7CiAgIERlY29yX01lbnUgICAg
IDogY29uc3RhbnQgR2RrX1dtX0RlY29yYXRpb24gOj0gMiAqKiA0OwogICBEZWNvcl9NaW5pbWl6
ZSA6IGNvbnN0YW50IEdka19XbV9EZWNvcmF0aW9uIDo9IDIgKiogNTsKICAgRGVjb3JfTWF4aW1p
emUgOiBjb25zdGFudCBHZGtfV21fRGVjb3JhdGlvbiA6PSAyICoqIDY7CgogICBGdW5jX0FsbCAg
ICAgIDogY29uc3RhbnQgR2RrX1dtX0Z1bmN0aW9uIDo9IDIgKiogMDsKICAgRnVuY19SZXNpemUg
ICA6IGNvbnN0YW50IEdka19XbV9GdW5jdGlvbiA6PSAyICoqIDE7CiAgIEZ1bmNfTW92ZSAgICAg
OiBjb25zdGFudCBHZGtfV21fRnVuY3Rpb24gOj0gMiAqKiAyOwogICBGdW5jX01pbmltaXplIDog
Y29uc3RhbnQgR2RrX1dtX0Z1bmN0aW9uIDo9IDIgKiogMzsKICAgRnVuY19NYXhpbWl6ZSA6IGNv
bnN0YW50IEdka19XbV9GdW5jdGlvbiA6PSAyICoqIDQ7CiAgIEZ1bmNfQ2xvc2UgICAgOiBjb25z
dGFudCBHZGtfV21fRnVuY3Rpb24gOj0gMiAqKiA1OwplbmQgR2RrLlR5cGVzOwoKLS0gIFRoZSBm
b2xsb3dpbmcgdHlwZXMgd2VyZSBub3QgYm91bmQgYmVjYXVzZSBpdCBkaWQgbm90IHNlZW0KLS0g
IHRvIGJlIG5lY2Vzc2FyeSAoeWV0KS4KLS0KLS0gICsgR2RrQ29sb3JDb250ZXh0TW9kZQotLSAg
KyBHZGtDcm9zc2luZ01vZGUKLS0gICsgR2RrRmlsdGVyUmV0dXJuCi0tICArIEdka0ZvbnRUeXBl
Ci0tICArIEdka05vdGlmeVR5cGUKLS0gICsgR2RrUHJvcGVydHlTdGF0ZQotLSAgKyBHZGtTdGF0
dXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0gQWRhOTUgYmluZGluZyBmb3Ig
dGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAg
ICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMTk5OSAgICAgICAgICAgICAgICAgICAg
ICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJyb2JlY2tlciBhbmQgQXJuYXVk
IENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAgLS0KLS0gbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAg
ICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K
LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsICAgICAg
LS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlv
biwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1
bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0byBwcm9kdWNlIGFu
ICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVz
ZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBH
TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90
IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlICAgLS0KLS0gZXhl
Y3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNl
LiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCndpdGggR2xpYjsgdXNlIEdsaWI7CndpdGggR2xpYi5H
bGlzdDsKcHJhZ21hIEVsYWJvcmF0ZV9BbGwgKEdsaWIuR2xpc3QpOwoKd2l0aCBHZGsuVHlwZXM7
CndpdGggU3lzdGVtOwp3aXRoIFVuY2hlY2tlZF9Db252ZXJzaW9uOwoKcGFja2FnZSBHZGsuVmlz
dWFsIGlzCgogICB0eXBlIEdka19WaXN1YWwgaXMgbmV3IEdkay5DX1Byb3h5OwogICBOdWxsX1Zp
c3VhbCA6IGNvbnN0YW50IEdka19WaXN1YWw7CiAgIC0tICBUaGlzIHR5cGUgaXMgbm90IHByaXZh
dGUgYmVjYXVzZSB3ZSBuZWVkIHRoZSBmdWxsIGRlY2xhcmF0aW9uCiAgIC0tICB0byBpbnN0YW5j
aWF0ZSBHbGliLkdsaXN0LkdlbmVyaWNfTGlzdCB3aXRoIGl0LgoKICAgdHlwZSBHZGtfVmlzdWFs
X1R5cGVfQXJyYXkgaXMgYXJyYXkgKE5hdHVyYWwgcmFuZ2UgPD4pCiAgICAgb2YgVHlwZXMuR2Rr
X1Zpc3VhbF9UeXBlOwoKICAgZnVuY3Rpb24gR2V0X0Jlc3RfRGVwdGggcmV0dXJuIEdpbnQ7Cgog
ICBmdW5jdGlvbiBHZXRfQmVzdF9UeXBlIHJldHVybiBUeXBlcy5HZGtfVmlzdWFsX1R5cGU7Cgog
ICBwcm9jZWR1cmUgR2V0X1N5c3RlbSAoVmlzdWFsIDogb3V0IEdka19WaXN1YWwpOwoKICAgcHJv
Y2VkdXJlIEdldF9CZXN0IChWaXN1YWwgOiBvdXQgR2RrX1Zpc3VhbCk7CgogICBwcm9jZWR1cmUg
R2V0X0Jlc3QKICAgICAoVmlzdWFsIDogICAgb3V0IEdka19WaXN1YWw7CiAgICAgIERlcHRoICA6
IGluICAgICBHaW50KTsKCiAgIHByb2NlZHVyZSBHZXRfQmVzdAogICAgIChWaXN1YWwgICAgICA6
ICAgIG91dCBHZGtfVmlzdWFsOwogICAgICBWaXN1YWxfVHlwZSA6IGluICAgICBUeXBlcy5HZGtf
VmlzdWFsX1R5cGUpOwoKICAgcHJvY2VkdXJlIEdldF9CZXN0CiAgICAgKFZpc3VhbCAgICAgIDog
ICAgb3V0IEdka19WaXN1YWw7CiAgICAgIERlcHRoICAgICAgIDogaW4gICAgIEdpbnQ7CiAgICAg
IFZpc3VhbF9UeXBlIDogaW4gICAgIFR5cGVzLkdka19WaXN1YWxfVHlwZSk7CgogICBmdW5jdGlv
biBRdWVyeV9EZXB0aHMgcmV0dXJuIEdpbnRfQXJyYXk7CgogICBmdW5jdGlvbiBRdWVyeV9WaXN1
YWxfVHlwZXMgcmV0dXJuIEdka19WaXN1YWxfVHlwZV9BcnJheTsKCiAgIGZ1bmN0aW9uIENvbnZl
cnQgaXMgbmV3IFVuY2hlY2tlZF9Db252ZXJzaW9uIChHZGtfVmlzdWFsLCBTeXN0ZW0uQWRkcmVz
cyk7CiAgIGZ1bmN0aW9uIENvbnZlcnQgaXMgbmV3IFVuY2hlY2tlZF9Db252ZXJzaW9uIChTeXN0
ZW0uQWRkcmVzcywgR2RrX1Zpc3VhbCk7CgogICBwYWNrYWdlIEdka19WaXN1YWxfTGlzdCBpcyBu
ZXcgR2xpYi5HbGlzdC5HZW5lcmljX0xpc3QgKEdka19WaXN1YWwpOwoKICAgZnVuY3Rpb24gTGlz
dF9WaXN1YWxzIHJldHVybiBHZGtfVmlzdWFsX0xpc3QuR2xpc3Q7Cgpwcml2YXRlCiAgIE51bGxf
VmlzdWFsIDogY29uc3RhbnQgR2RrX1Zpc3VhbCA6PSBudWxsOwogICBwcmFnbWEgSW1wb3J0IChD
LCBHZXRfQmVzdF9EZXB0aCwgImdka192aXN1YWxfZ2V0X2Jlc3RfZGVwdGgiKTsKICAgcHJhZ21h
IEltcG9ydCAoQywgR2V0X0Jlc3RfVHlwZSwgImdka192aXN1YWxfZ2V0X2Jlc3RfdHlwZSIpOwpl
bmQgR2RrLlZpc3VhbDsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0gQWRhOTUg
YmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMCAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJyb2JlY2tl
ciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAg
ICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi
bGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0g
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0K
LS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0
ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVj
aWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAg
LS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0
byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5
IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3Zl
cmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0
aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhl
ICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1
YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICBBIEdka19XaW5kb3cgaXMg
dGhlIHBoeXNpY2FsIHdpbmRvdyB0aGF0IGFwcGVhcnMgb24gdGhlIHNjcmVlbi4KLS0gIFRoaXMg
aXMgdGhlIGxvdy1sZXZlbCBzdHJ1Y3R1cmUga25vd24gdG8gdGhlIFggc2VydmVyIG9yIHRvIFdp
bjMyLgotLSAgQWxsIHRoZSB3aWRnZXRzIGFyZSBpbnRlcm5hbGx5IGFzc29jaWF0ZWQgd2l0aCBh
IHNwZWNpZmljIEdka19XaW5kb3csCi0tICB0aGF0IGhvbGRzIGF0dHJpYnV0ZXMgc3VjaCBhcyB0
aGUgd2luZG93IGRlY29yYXRpb24sIHdoZXRoZXIgdGhlIHdpbmRvdwotLSAgY2FuIGJlIGludGVy
YWN0aXZlbHkgcmVzaXplZCwuLi4KLS0KLS0gIE9uIHNvbWUgc3lzdGVtcywgdGhlIGdyYXBoaWMg
c2VydmVyIGtub3dzIGhvdyB0byBkaXNwbGF5IG5vbi1yZWN0YW5ndWxhcgotLSAgd2luZG93cyAo
dGhpcyBpcyBwYXJ0IG9mIHRoZSBYIGV4dGVuc2lvbnMpLgotLQotLSAgSWYgeW91IHNpbXBseSB3
YW50IHRvIGNyZWF0ZSBhIHNpbXBseSB3aW5kb3csIHlvdSBzaG91bGQgaW5zdGVhZCBsb29rCi0t
ICBhdCB0aGUgZnVuY3Rpb25zIHByb3ZpZGVkIGluIEd0ay5XaW5kb3cgYW5kIEd0ay5XaWRnZXQs
IHdoaWNoIGFyZSBoaWdoZXIKLS0gIGxldmVsIHRoYW4gdGhlc2UuIFNlZSBhbHNvIHRoZSBmdW5j
dGlvbiBHdGsuV2lkZ2V0LkdldF9XaW5kb3cgdG8gZ2V0IHRoZQotLSAgR2RrX1dpbmRvdyBhc3Nv
Y2lhdGVkIHdpdGggYSB3aWRnZXQuIEJlIGF3YXJlIHRoYXQgc29tZSBvZiB0aGVtIGRvbid0IGhh
dmUKLS0gIHN1Y2ggd2luZG93cyEKLS0KLS0gIFNjcm9sbGluZyBjYW4gYmUgaW1wbGVtZW50ZWQg
aW4gc2V2ZXJhbCB3YXlzIHdpdGggR3RrQWRhICh0b3BsZXZlbAotLSAgc2Nyb2xsaW5nIHNob3Vs
ZCBiZSBkb25lIHdpdGggdGhlIEd0a19TY3JvbGxlZF9XaW5kb3cgd2lkZ2V0LCBidXQgeW91Ci0t
ICBtaWdodCB3YW50IHRvIGhhbmRsZSBzY3JvbGxpbmcgeW91cnNlbGYpLiBTZWUgdGhlIGZ1bmN0
aW9uCi0tICBHZGsuRXZlbnQuR2V0X0dyYXBoaWNzX0V4cG9zZSBmb3IgbW9yZSBpbmZvcm1hdGlv
bi4KLS0gIDxjX3ZlcnNpb24+MS4yLjc8L2NfdmVyc2lvbj4KCndpdGggU3lzdGVtOwp3aXRoIEds
aWI7IHVzZSBHbGliOwp3aXRoIEdsaWIuR2xpc3Q7CndpdGggR2RrOwp3aXRoIEdkay5Db2xvcjsK
d2l0aCBHZGsuQ3Vyc29yOwp3aXRoIEdkay5UeXBlczsKd2l0aCBHZGsuVmlzdWFsOwp3aXRoIEdk
ay5XaW5kb3dfQXR0cjsKd2l0aCBVbmNoZWNrZWRfQ29udmVyc2lvbjsKCnBhY2thZ2UgR2RrLldp
bmRvdyBpcwoKICAgc3VidHlwZSBHZGtfV2luZG93IGlzIEdkay5HZGtfV2luZG93OwoKICAgTnVs
bF9XaW5kb3cgOiBjb25zdGFudCBHZGtfV2luZG93OwoKICAgcHJvY2VkdXJlIEdka19OZXcKICAg
ICAoV2luZG93ICAgICAgICAgIDogb3V0IEdka19XaW5kb3c7CiAgICAgIFBhcmVudCAgICAgICAg
ICA6IEdka19XaW5kb3c7CiAgICAgIEF0dHJpYnV0ZXMgICAgICA6IEdkay5XaW5kb3dfQXR0ci5H
ZGtfV2luZG93X0F0dHI7CiAgICAgIEF0dHJpYnV0ZXNfTWFzayA6IEdkay5UeXBlcy5HZGtfV2lu
ZG93X0F0dHJpYnV0ZXNfVHlwZSk7CgogICBwcm9jZWR1cmUgRm9yZWlnbl9OZXcgKFdpbmRvdyA6
IG91dCBHZGtfV2luZG93OyBBbl9JZCA6IEd1aW50MzIpOwoKICAgcHJvY2VkdXJlIERlc3Ryb3kg
KFdpbmRvdyA6IGluIG91dCBHZGtfV2luZG93KTsKICAgLS0gIERlc3Ryb3kgYSB3aW5kb3cgYW5k
IGFsbCBpdHMgY2hpbGRyZW4uCgogICBwcm9jZWR1cmUgUmVmIChXaW5kb3cgOiBHZGtfV2luZG93
KTsKICAgLS0gIEluY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50ZXIgYXNzb2NpYXRlZCB3aXRo
IHdpbmRvdy4KCiAgIHByb2NlZHVyZSBVbnJlZiAoV2luZG93IDogR2RrX1dpbmRvdyk7CiAgIC0t
ICBEZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudGVyIGFzc29jaWF0ZWQgd2l0aCB3aW5kb3cu
CgogICBwcm9jZWR1cmUgV2luZG93X0F0X1BvaW50ZXIKICAgICAoV2luX1ggIDogb3V0IEdpbnQ7
CiAgICAgIFdpbl9ZICA6IG91dCBHaW50OwogICAgICBXaW5kb3cgOiBvdXQgR2RrX1dpbmRvdyk7
CiAgIC0tICBSZXR1cm4gdGhlIHdpbmRvdyBhbmQgdGhlIGNvb3JkaW5hdGVzIGNvcnJlc3BvbmRp
bmcgdG8gdGhlIGN1cnJlbnQKICAgLS0gIHBvc2l0aW9uIG9mIHRoZSBjdXJzb3IuCgogICBwcm9j
ZWR1cmUgU2hvdyAoV2luZG93IDogR2RrX1dpbmRvdyk7CgogICBwcm9jZWR1cmUgSGlkZSAoV2lu
ZG93IDogR2RrX1dpbmRvdyk7CgogICBwcm9jZWR1cmUgV2l0aGRyYXcgKFdpbmRvdyA6IEdka19X
aW5kb3cpOwoKICAgcHJvY2VkdXJlIE1vdmUKICAgICAoV2luZG93IDogR2RrX1dpbmRvdzsKICAg
ICAgWCAgICAgIDogR2ludDsKICAgICAgWSAgICAgIDogR2ludCk7CgogICBwcm9jZWR1cmUgUmVz
aXplCiAgICAgKFdpbmRvdyA6IEdka19XaW5kb3c7CiAgICAgIFdpZHRoICA6IEdpbnQ7CiAgICAg
IEhlaWdodCA6IEdpbnQpOwoKICAgcHJvY2VkdXJlIE1vdmVfUmVzaXplCiAgICAgKFdpbmRvdyA6
IEdka19XaW5kb3c7CiAgICAgIFggICAgICA6IEdpbnQ7CiAgICAgIFkgICAgICA6IEdpbnQ7CiAg
ICAgIFdpZHRoICA6IEdpbnQ7CiAgICAgIEhlaWdodCA6IEdpbnQpOwoKICAgcHJvY2VkdXJlIFJl
cGFyZW50CiAgICAgKFdpbmRvdyAgICAgOiBHZGtfV2luZG93OwogICAgICBOZXdfUGFyZW50IDog
R2RrX1dpbmRvdzsKICAgICAgWCAgICAgICAgICA6IEdpbnQ7CiAgICAgIFkgICAgICAgICAgOiBH
aW50KTsKCiAgIHByb2NlZHVyZSBDbGVhciAoV2luZG93IDogR2RrX1dpbmRvdyk7CgogICBwcm9j
ZWR1cmUgQ2xlYXJfQXJlYQogICAgIChXaW5kb3cgOiBHZGtfV2luZG93OwogICAgICBYICAgICAg
OiBHaW50OwogICAgICBZICAgICAgOiBHaW50OwogICAgICBXaWR0aCAgOiBHaW50OwogICAgICBI
ZWlnaHQgOiBHaW50KTsKICAgLS0gIERvZXMgbm90IGdlbmVyYXRlIGFuIGV4cG9zZSBldmVudC4K
CiAgIHByb2NlZHVyZSBDbGVhcl9BcmVhX0UKICAgICAoV2luZG93IDogR2RrX1dpbmRvdzsKICAg
ICAgWCAgICAgIDogR2ludDsKICAgICAgWSAgICAgIDogR2ludDsKICAgICAgV2lkdGggIDogR2lu
dDsKICAgICAgSGVpZ2h0IDogR2ludCk7CiAgIC0tICBTYW1lIGFzIENsZWFyX0FyZWEsIGJ1dCBn
ZW5lcmF0ZXMgYW4gZXhwb3NlIGV2ZW50LgoKICAgcHJvY2VkdXJlIENvcHlfQXJlYQogICAgIChX
aW5kb3cgICAgICAgIDogR2RrX1dpbmRvdzsKICAgICAgR2MgICAgICAgICAgICA6IEdkay5HZGtf
R0M7CiAgICAgIFggICAgICAgICAgICAgOiBHaW50OwogICAgICBZICAgICAgICAgICAgIDogR2lu
dDsKICAgICAgU291cmNlX1dpbmRvdyA6IEdka19XaW5kb3c7CiAgICAgIFNvdXJjZV9YICAgICAg
OiBHaW50OwogICAgICBTb3VyY2VfWSAgICAgIDogR2ludDsKICAgICAgV2lkdGggICAgICAgICA6
IEdpbnQ7CiAgICAgIEhlaWdodCAgICAgICAgOiBHaW50KTsKCiAgIHByb2NlZHVyZSBHZGtfUmFp
c2UgKFdpbmRvdyA6IEdka19XaW5kb3cpOwoKICAgcHJvY2VkdXJlIExvd2VyIChXaW5kb3cgOiBH
ZGtfV2luZG93KTsKCiAgIHByb2NlZHVyZSBTZXRfT3ZlcnJpZGVfUmVkaXJlY3QKICAgICAoV2lu
ZG93ICAgICAgICAgICAgOiBHZGtfV2luZG93OwogICAgICBPdmVycmlkZV9SZWRpcmVjdCA6IEJv
b2xlYW4gOj0gVHJ1ZSk7CgogICBwcm9jZWR1cmUgU2V0X0NoaWxkX1NoYXBlcyAoV2luZG93IDog
R2RrX1dpbmRvdyk7CgogICBwcm9jZWR1cmUgTWVyZ2VfQ2hpbGRfU2hhcGVzIChXaW5kb3cgOiBH
ZGtfV2luZG93KTsKCiAgIGZ1bmN0aW9uIElzX1Zpc2libGUgKFdpbmRvdyA6IEdka19XaW5kb3cp
IHJldHVybiBCb29sZWFuOwoKICAgZnVuY3Rpb24gSXNfVmlld2FibGUgKFdpbmRvdyA6IEdka19X
aW5kb3cpIHJldHVybiBCb29sZWFuOwoKICAgcHJvY2VkdXJlIFNldF9IaW50cwogICAgIChXaW5k
b3cgICAgIDogR2RrX1dpbmRvdzsKICAgICAgWCAgICAgICAgICA6IEdpbnQ7CiAgICAgIFkgICAg
ICAgICAgOiBHaW50OwogICAgICBNaW5fV2lkdGggIDogR2ludDsKICAgICAgTWluX0hlaWdodCA6
IEdpbnQ7CiAgICAgIE1heF9XaWR0aCAgOiBHaW50OwogICAgICBNYXhfSGVpZ2h0IDogR2ludDsK
ICAgICAgRmxhZ3MgICAgICA6IEdkay5UeXBlcy5HZGtfV2luZG93X0hpbnRzKTsKCiAgIHByb2Nl
ZHVyZSBTZXRfR2VvbWV0cnlfSGludHMKICAgICAoV2luZG93ICAgOiBHZGtfV2luZG93OwogICAg
ICBHZW9tZXRyeSA6IGluIG91dCBHZGsuVHlwZXMuR2RrX0dlb21ldHJ5OwogICAgICBGbGFncyAg
ICA6IEdkay5UeXBlcy5HZGtfV2luZG93X0hpbnRzKTsKCiAgIHByb2NlZHVyZSBTZXRfVGl0bGUg
KFdpbmRvdyA6IEdka19XaW5kb3c7IFRpdGxlIDogU3RyaW5nKTsKCiAgIHByb2NlZHVyZSBTZXRf
Um9sZSAoV2luZG93IDogR2RrX1dpbmRvdzsgUm9sZSA6IFN0cmluZyk7CgogICBwcm9jZWR1cmUg
U2V0X1RyYW5zaWVudF9Gb3IKICAgICAoV2luZG93IDogR2RrX1dpbmRvdzsgTGVhZGVyIDogR2Rr
X1dpbmRvdyk7CgogICBwcm9jZWR1cmUgU2V0X0JhY2tncm91bmQKICAgICAoV2luZG93IDogR2Rr
X1dpbmRvdzsgQ29sb3IgOiBHZGsuQ29sb3IuR2RrX0NvbG9yKTsKCiAgIHByb2NlZHVyZSBTZXRf
QmFja19QaXhtYXAKICAgICAoV2luZG93ICAgICAgICAgIDogR2RrX1dpbmRvdzsKICAgICAgUGl4
bWFwICAgICAgICAgIDogR2RrLkdka19QaXhtYXA7CiAgICAgIFBhcmVudF9SZWxhdGl2ZSA6IEJv
b2xlYW4pOwoKICAgcHJvY2VkdXJlIFNldF9DdXJzb3IKICAgICAoV2luZG93IDogR2RrX1dpbmRv
dzsgQ3Vyc29yIDogR2RrLkN1cnNvci5HZGtfQ3Vyc29yKTsKICAgLS0gIE5vdGU6IHRoZSB3aW5k
b3cgbXVzdCBiZSByZWFsaXplZCBmaXJzdCwgaWUgaGF2ZSBhbiBhc3NvY2lhdGVkIFgxMS9XaW4z
MgogICAtLSAgd2luZG93LgoKICAgcHJvY2VkdXJlIFNldF9Db2xvcm1hcAogICAgIChXaW5kb3cg
OiBHZGtfV2luZG93OyBDb2xvcm1hcCA6IEdkay5Db2xvci5HZGtfQ29sb3JtYXApOwoKICAgcHJv
Y2VkdXJlIEdldF9HZW9tZXRyeQogICAgIChXaW5kb3cgOiBHZGtfV2luZG93OwogICAgICBYICAg
ICAgOiBvdXQgR2ludDsKICAgICAgWSAgICAgIDogb3V0IEdpbnQ7CiAgICAgIFdpZHRoICA6IG91
dCBHaW50OwogICAgICBIZWlnaHQgOiBvdXQgR2ludDsKICAgICAgRGVwdGggIDogb3V0IEdpbnQp
OwogICAtLSAgWW91IGNhbiBnZXQgdGhlIHNpemUgb2YgdGhlIHJvb3Qgd2luZG93IChpZSB0aGUg
c2l6ZSBvZiB0aGUgc2NyZWVuKQogICAtLSAgc2ltcGx5IGJ5IGdpdmluZyBOdWxsX1dpbmRvdyBh
cyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhpcyBwcm9jZWR1cmUuCgogICBwcm9jZWR1cmUgR2V0
X1Bvc2l0aW9uCiAgICAgKFdpbmRvdyA6IEdka19XaW5kb3c7CiAgICAgIFggICAgICA6IG91dCBH
aW50OwogICAgICBZICAgICAgOiBvdXQgR2ludCk7CgogICBwcm9jZWR1cmUgR2V0X1NpemUKICAg
ICAoV2luZG93IDogR2RrX1dpbmRvdzsKICAgICAgV2lkdGggIDogb3V0IEdpbnQ7CiAgICAgIEhl
aWdodCA6IG91dCBHaW50KTsKCiAgIGZ1bmN0aW9uIEdldF9WaXN1YWwgKFdpbmRvdyA6IEdka19X
aW5kb3cpIHJldHVybiBHZGsuVmlzdWFsLkdka19WaXN1YWw7CgogICBmdW5jdGlvbiBHZXRfQ29s
b3JtYXAgKFdpbmRvdyA6IEdka19XaW5kb3cpIHJldHVybiBHZGsuQ29sb3IuR2RrX0NvbG9ybWFw
OwoKICAgZnVuY3Rpb24gR2V0X1R5cGUgKFdpbmRvdyA6IEdka19XaW5kb3cpIHJldHVybiBHZGsu
VHlwZXMuR2RrX1dpbmRvd19UeXBlOwoKICAgcHJvY2VkdXJlIEdldF9PcmlnaW4KICAgICAoV2lu
ZG93ICA6IEdka19XaW5kb3c7CiAgICAgIFggICAgICAgOiBvdXQgR2ludDsKICAgICAgWSAgICAg
ICA6IG91dCBHaW50OwogICAgICBTdWNjZXNzIDogb3V0IEJvb2xlYW4pOwoKICAgcHJvY2VkdXJl
IEdldF9EZXNrX1JlbGF0aXZlX09yaWdpbgogICAgIChXaW5kb3cgIDogR2RrX1dpbmRvdzsKICAg
ICAgWCAgICAgICA6IG91dCBHaW50OwogICAgICBZICAgICAgIDogb3V0IEdpbnQ7CiAgICAgIFN1
Y2Nlc3MgOiBvdXQgQm9vbGVhbik7CgogICBwcm9jZWR1cmUgR2V0X1Jvb3RfT3JpZ2luCiAgICAg
KFdpbmRvdyA6IEdka19XaW5kb3c7CiAgICAgIFggICAgICA6IG91dCBHaW50OwogICAgICBZICAg
ICAgOiBvdXQgR2ludCk7CgogICBwcm9jZWR1cmUgR2V0X1BvaW50ZXIKICAgICAoV2luZG93IDog
R2RrX1dpbmRvdzsKICAgICAgWCAgICAgIDogb3V0IEdpbnQ7CiAgICAgIFkgICAgICA6IG91dCBH
aW50OwogICAgICBNYXNrICAgOiBvdXQgR2RrLlR5cGVzLkdka19Nb2RpZmllcl9UeXBlOwogICAg
ICBSZXN1bHQgOiBvdXQgR2RrX1dpbmRvdyk7CgogICBmdW5jdGlvbiBHZXRfUGFyZW50IChXaW5k
b3cgOiBHZGtfV2luZG93KSByZXR1cm4gR2RrX1dpbmRvdzsKCiAgIGZ1bmN0aW9uIEdldF9Ub3Bs
ZXZlbCAoV2luZG93IDogR2RrX1dpbmRvdykgcmV0dXJuIEdka19XaW5kb3c7CgogICBmdW5jdGlv
biBHZXRfRXZlbnRzIChXaW5kb3cgOiBHZGtfV2luZG93KSByZXR1cm4gR2RrLlR5cGVzLkdka19F
dmVudF9NYXNrOwoKICAgcHJvY2VkdXJlIFNldF9FdmVudHMKICAgICAoV2luZG93IDogR2RrX1dp
bmRvdzsgRXZlbnRfTWFzayA6IEdkay5UeXBlcy5HZGtfRXZlbnRfTWFzayk7CgogICBwcm9jZWR1
cmUgU2V0X0ljb24KICAgICAoV2luZG93ICAgICAgOiBHZGtfV2luZG93OwogICAgICBJY29uX1dp
bmRvdyA6IEdka19XaW5kb3c7CiAgICAgIFBpeG1hcCAgICAgIDogR2RrX1BpeG1hcDsKICAgICAg
TWFzayAgICAgICAgOiBHZGtfQml0bWFwKTsKCiAgIHByb2NlZHVyZSBTZXRfSWNvbl9OYW1lCiAg
ICAgKFdpbmRvdyA6IEdka19XaW5kb3c7CiAgICAgIE5hbWUgICA6IFN0cmluZyk7CgogICBwcm9j
ZWR1cmUgU2V0X0dyb3VwIChXaW5kb3cgOiBHZGtfV2luZG93OyBMZWFkZXIgOiBHZGtfV2luZG93
KTsKCiAgIHByb2NlZHVyZSBTZXRfRGVjb3JhdGlvbnMKICAgICAoV2luZG93ICAgICAgOiBHZGtf
V2luZG93OwogICAgICBEZWNvcmF0aW9ucyA6IEdkay5UeXBlcy5HZGtfV21fRGVjb3JhdGlvbik7
CgogICBwcm9jZWR1cmUgU2V0X0Z1bmN0aW9ucwogICAgIChXaW5kb3cgICAgOiBHZGtfV2luZG93
OwogICAgICBGdW5jdGlvbnMgOiBHZGsuVHlwZXMuR2RrX1dtX0Z1bmN0aW9uKTsKCiAgIC0tICBH
ZGtfV2luZG93X0xpc3QKICAgLS0KICAgZnVuY3Rpb24gQ29udmVydCBpcyBuZXcgVW5jaGVja2Vk
X0NvbnZlcnNpb24gKEdka19XaW5kb3csIFN5c3RlbS5BZGRyZXNzKTsKICAgZnVuY3Rpb24gQ29u
dmVydCBpcyBuZXcgVW5jaGVja2VkX0NvbnZlcnNpb24gKFN5c3RlbS5BZGRyZXNzLCBHZGtfV2lu
ZG93KTsKCiAgIHBhY2thZ2UgR2RrX1dpbmRvd19MaXN0IGlzIG5ldwogICAgIEdsaWIuR2xpc3Qu
R2VuZXJpY19MaXN0IChHcG9pbnRlciA9PiBHZGtfV2luZG93KTsKCiAgIGZ1bmN0aW9uIEdldF9D
aGlsZHJlbgogICAgIChXaW5kb3cgOiBHZGtfV2luZG93KSByZXR1cm4gR2RrX1dpbmRvd19MaXN0
LkdsaXN0OwoKICAgZnVuY3Rpb24gR2V0X1RvcGxldmVscyByZXR1cm4gR2RrX1dpbmRvd19MaXN0
LkdsaXN0OwoKcHJpdmF0ZQoKICAgTnVsbF9XaW5kb3cgOiBjb25zdGFudCBHZGtfV2luZG93IDo9
IG51bGw7CiAgIHByYWdtYSBJbXBvcnQgKEMsIENsZWFyLCAiZ2RrX3dpbmRvd19jbGVhciIpOwog
ICBwcmFnbWEgSW1wb3J0IChDLCBDbGVhcl9BcmVhLCAiZ2RrX3dpbmRvd19jbGVhcl9hcmVhIik7
CiAgIHByYWdtYSBJbXBvcnQgKEMsIENsZWFyX0FyZWFfRSwgImdka193aW5kb3dfY2xlYXJfYXJl
YV9lIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIENvcHlfQXJlYSwgImdka193aW5kb3dfY29weV9h
cmVhIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9FdmVudHMsICJnZGtfd2luZG93X2dldF9l
dmVudHMiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X0dlb21ldHJ5LCAiZ2RrX3dpbmRvd19n
ZXRfZ2VvbWV0cnkiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X1BhcmVudCwgImdka193aW5k
b3dfZ2V0X3BhcmVudCIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfUG9zaXRpb24sICJnZGtf
d2luZG93X2dldF9wb3NpdGlvbiIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfUm9vdF9Pcmln
aW4sICJnZGtfd2luZG93X2dldF9yb290X29yaWdpbiIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBH
ZXRfU2l6ZSwgImdka193aW5kb3dfZ2V0X3NpemUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0
X1RvcGxldmVsLCAiZ2RrX3dpbmRvd19nZXRfdG9wbGV2ZWwiKTsKICAgcHJhZ21hIEltcG9ydCAo
QywgR2V0X1R5cGUsICJnZGtfd2luZG93X2dldF90eXBlIik7CiAgIHByYWdtYSBJbXBvcnQgKEMs
IEhpZGUsICJnZGtfd2luZG93X2hpZGUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgTG93ZXIsICJn
ZGtfd2luZG93X2xvd2VyIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIE1lcmdlX0NoaWxkX1NoYXBl
cywgImdka193aW5kb3dfbWVyZ2VfY2hpbGRfc2hhcGVzIik7CiAgIHByYWdtYSBJbXBvcnQgKEMs
IE1vdmUsICJnZGtfd2luZG93X21vdmUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgTW92ZV9SZXNp
emUsICJnZGtfd2luZG93X21vdmVfcmVzaXplIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdka19S
YWlzZSwgImdka193aW5kb3dfcmFpc2UiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgUmVmLCAiZ2Rr
X3dpbmRvd19yZWYiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgUmVwYXJlbnQsICJnZGtfd2luZG93
X3JlcGFyZW50Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFJlc2l6ZSwgImdka193aW5kb3dfcmVz
aXplIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9DaGlsZF9TaGFwZXMsICJnZGtfd2luZG93
X3NldF9jaGlsZF9zaGFwZXMiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X0RlY29yYXRpb25z
LCAiZ2RrX3dpbmRvd19zZXRfZGVjb3JhdGlvbnMiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0
X0V2ZW50cywgImdka193aW5kb3dfc2V0X2V2ZW50cyIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBT
ZXRfRnVuY3Rpb25zLCAiZ2RrX3dpbmRvd19zZXRfZnVuY3Rpb25zIik7CiAgIHByYWdtYSBJbXBv
cnQgKEMsIFNldF9HZW9tZXRyeV9IaW50cywgImdka193aW5kb3dfc2V0X2dlb21ldHJ5X2hpbnRz
Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9Hcm91cCwgImdka193aW5kb3dfc2V0X2dyb3Vw
Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9IaW50cywgImdka193aW5kb3dfc2V0X2hpbnRz
Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9UcmFuc2llbnRfRm9yLCAiZ2RrX3dpbmRvd19z
ZXRfdHJhbnNpZW50X2ZvciIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBTaG93LCAiZ2RrX3dpbmRv
d19zaG93Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFVucmVmLCAiZ2RrX3dpbmRvd191bnJlZiIp
OwogICBwcmFnbWEgSW1wb3J0IChDLCBXaXRoZHJhdywgImdka193aW5kb3dfd2l0aGRyYXciKTsK
ICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X0N1cnNvciwgImdka193aW5kb3dfc2V0X2N1cnNvciIp
OwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfQ29sb3JtYXAsICJnZGtfd2luZG93X2dldF9jb2xv
cm1hcCIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfVmlzdWFsLCAiZ2RrX3dpbmRvd19nZXRf
dmlzdWFsIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9Db2xvcm1hcCwgImdka193aW5kb3df
c2V0X2NvbG9ybWFwIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9JY29uLCAiZ2RrX3dpbmRv
d19zZXRfaWNvbiIpOwplbmQgR2RrLldpbmRvdzsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAg
R3RrQWRhIC0gQWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAg
LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5
OTgtMTk5OSAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90
LCBKb2VsIEJyb2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLiAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0g
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0K
LS0gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
ICAgICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1w
bGUgUGxhY2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBV
U0EuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUg
Z2VuZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0
aCBvdGhlciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5p
dCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0
YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhp
cyAgLS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIg
cmVhc29ucyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVk
IGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCndpdGgg
R2RrLkNvbG9yOwp3aXRoIEdkay5DdXJzb3I7CndpdGggR2RrLlR5cGVzOwp3aXRoIEdkay5WaXN1
YWw7CndpdGggR2xpYjsKCnBhY2thZ2UgR2RrLldpbmRvd19BdHRyIGlzCgogICB0eXBlIEdka19X
aW5kb3dfQXR0ciBpcyBuZXcgQ19Qcm94eTsKICAgTnVsbF9XaW5kb3dfQXR0ciA6IGNvbnN0YW50
IEdka19XaW5kb3dfQXR0cjsKCiAgIHByb2NlZHVyZSBHZGtfTmV3CiAgICAgKFdpbmRvd19BdHRy
ICAgICAgIDogICAgb3V0IEdka19XaW5kb3dfQXR0cjsKICAgICAgVGl0bGUgICAgICAgICAgICAg
OiBpbiAgICAgU3RyaW5nIDo9ICIiOwogICAgICBFdmVudF9NYXNrICAgICAgICA6IGluICAgICBH
ZGsuVHlwZXMuR2RrX0V2ZW50X01hc2sgOj0KICAgICAgICBHZGsuVHlwZXMuTnVsbF9FdmVudF9N
YXNrOwogICAgICBYLCBZICAgICAgICAgICAgICA6IGluICAgICBHbGliLkdpbnQxNiA6PSAwOwog
ICAgICBXaWR0aCAgICAgICAgICAgICA6IGluICAgICBHbGliLkdpbnQxNiA6PSAwOwogICAgICBI
ZWlnaHQgICAgICAgICAgICA6IGluICAgICBHbGliLkdpbnQxNiA6PSAwOwogICAgICBXY2xhc3Mg
ICAgICAgICAgICA6IGluICAgICBHZGsuVHlwZXMuR2RrX1dpbmRvd19DbGFzcyA6PQogICAgICAg
IEdkay5UeXBlcy5JbnB1dF9PdXRwdXQ7CiAgICAgIFZpc3VhbCAgICAgICAgICAgIDogaW4gICAg
IEdkay5WaXN1YWwuR2RrX1Zpc3VhbCA6PQogICAgICAgIEdkay5WaXN1YWwuTnVsbF9WaXN1YWw7
CiAgICAgIENvbG9ybWFwICAgICAgICAgIDogaW4gICAgIEdkay5Db2xvci5HZGtfQ29sb3JtYXAg
Oj0KICAgICAgICBHZGsuQ29sb3IuTnVsbF9Db2xvcm1hcDsKICAgICAgV2luZG93X1R5cGUgICAg
ICAgOiBpbiAgICAgR2RrLlR5cGVzLkdka19XaW5kb3dfVHlwZSA6PQogICAgICAgIEdkay5UeXBl
cy5XaW5kb3dfUm9vdDsKICAgICAgQ3Vyc29yICAgICAgICAgICAgOiBpbiAgICAgR2RrLkN1cnNv
ci5HZGtfQ3Vyc29yIDo9CiAgICAgICAgR2RrLkN1cnNvci5OdWxsX0N1cnNvcjsKICAgICAgV21j
bGFzc19OYW1lICAgICAgOiBpbiAgICAgU3RyaW5nIDo9ICIiOwogICAgICBXbWNsYXNzX0NsYXNz
ICAgICA6IGluICAgICBTdHJpbmcgOj0gIiI7CiAgICAgIE92ZXJyaWRlX1JlZGlyZWN0IDogaW4g
ICAgIEJvb2xlYW4gOj0gVHJ1ZSk7CgogICBwcm9jZWR1cmUgRGVzdHJveSAoV2luZG93X0F0dHIg
OiBpbiBvdXQgR2RrX1dpbmRvd19BdHRyKTsKCiAgIHByb2NlZHVyZSBTZXRfVGl0bGUKICAgICAo
V2luZG93X0F0dHIgOiBpbiBHZGtfV2luZG93X0F0dHI7CiAgICAgIFRpdGxlICAgICAgIDogaW4g
U3RyaW5nKTsKCiAgIGZ1bmN0aW9uIEdldF9UaXRsZSAoV2luZG93X0F0dHIgOiBpbiBHZGtfV2lu
ZG93X0F0dHIpIHJldHVybiBTdHJpbmc7CgogICBwcm9jZWR1cmUgU2V0X0V2ZW50X01hc2sKICAg
ICAoV2luZG93X0F0dHIgOiBpbiBHZGtfV2luZG93X0F0dHI7CiAgICAgIEV2ZW50X01hc2sgIDog
aW4gR2RrLlR5cGVzLkdka19FdmVudF9NYXNrKTsKCiAgIGZ1bmN0aW9uIEdldF9FdmVudF9NYXNr
CiAgICAgKFdpbmRvd19BdHRyIDogaW4gR2RrX1dpbmRvd19BdHRyKQogICAgICByZXR1cm4gR2Rr
LlR5cGVzLkdka19FdmVudF9NYXNrOwoKICAgcHJvY2VkdXJlIFNldF9YCiAgICAgKFdpbmRvd19B
dHRyIDogaW4gR2RrX1dpbmRvd19BdHRyOwogICAgICBYICAgICAgICAgICA6IGluIEdsaWIuR2lu
dDE2KTsKCiAgIGZ1bmN0aW9uIEdldF9YIChXaW5kb3dfQXR0ciA6IGluIEdka19XaW5kb3dfQXR0
cikgcmV0dXJuIEdsaWIuR2ludDE2OwoKCiAgIHByb2NlZHVyZSBTZXRfWQogICAgIChXaW5kb3df
QXR0ciA6IGluIEdka19XaW5kb3dfQXR0cjsKICAgICAgWSAgICAgICAgICAgOiBpbiBHbGliLkdp
bnQxNik7CgogICBmdW5jdGlvbiBHZXRfWSAoV2luZG93X0F0dHIgOiBpbiBHZGtfV2luZG93X0F0
dHIpIHJldHVybiBHbGliLkdpbnQxNjsKCiAgIHByb2NlZHVyZSBTZXRfV2lkdGgKICAgICAoV2lu
ZG93X0F0dHIgOiBpbiBHZGtfV2luZG93X0F0dHI7CiAgICAgIFdpZHRoICAgICAgIDogaW4gR2xp
Yi5HaW50MTYpOwoKICAgZnVuY3Rpb24gR2V0X1dpZHRoIChXaW5kb3dfQXR0ciA6IGluIEdka19X
aW5kb3dfQXR0cikgcmV0dXJuIEdsaWIuR2ludDE2OwoKICAgcHJvY2VkdXJlIFNldF9IZWlnaHQK
ICAgICAoV2luZG93X0F0dHIgOiBpbiBHZGtfV2luZG93X0F0dHI7CiAgICAgIEhlaWdodCAgICAg
IDogaW4gR2xpYi5HaW50MTYpOwoKICAgZnVuY3Rpb24gR2V0X0hlaWdodCAoV2luZG93X0F0dHIg
OiBpbiBHZGtfV2luZG93X0F0dHIpIHJldHVybiBHbGliLkdpbnQxNjsKCiAgIHByb2NlZHVyZSBT
ZXRfV2luZG93X0NsYXNzCiAgICAgKFdpbmRvd19BdHRyIDogaW4gR2RrX1dpbmRvd19BdHRyOwog
ICAgICBXY2xhc3MgICAgICA6IGluIEdkay5UeXBlcy5HZGtfV2luZG93X0NsYXNzKTsKCiAgIGZ1
bmN0aW9uIEdldF9XaW5kb3dfQ2xhc3MKICAgICAoV2luZG93X0F0dHIgOiBpbiBHZGtfV2luZG93
X0F0dHIpIHJldHVybiBHZGsuVHlwZXMuR2RrX1dpbmRvd19DbGFzczsKCiAgIHByb2NlZHVyZSBT
ZXRfVmlzdWFsCiAgICAgKFdpbmRvd19BdHRyIDogaW4gR2RrX1dpbmRvd19BdHRyOwogICAgICBW
aXN1YWwgICAgICA6IGluIEdkay5WaXN1YWwuR2RrX1Zpc3VhbCk7CgogICBmdW5jdGlvbiBHZXRf
VmlzdWFsCiAgICAgKFdpbmRvd19BdHRyIDogaW4gR2RrX1dpbmRvd19BdHRyKSByZXR1cm4gR2Rr
LlZpc3VhbC5HZGtfVmlzdWFsOwoKICAgcHJvY2VkdXJlIFNldF9Db2xvcm1hcAogICAgIChXaW5k
b3dfQXR0ciA6IGluIEdka19XaW5kb3dfQXR0cjsKICAgICAgQ29sb3JtYXAgICAgOiBpbiBHZGsu
Q29sb3IuR2RrX0NvbG9ybWFwKTsKCiAgIGZ1bmN0aW9uIEdldF9Db2xvcm1hcAogICAgIChXaW5k
b3dfQXR0ciA6IGluIEdka19XaW5kb3dfQXR0cikgcmV0dXJuIEdkay5Db2xvci5HZGtfQ29sb3Jt
YXA7CgogICBwcm9jZWR1cmUgU2V0X1dpbmRvd19UeXBlCiAgICAgKFdpbmRvd19BdHRyIDogaW4g
R2RrX1dpbmRvd19BdHRyOwogICAgICBXaW5kb3dfVHlwZSA6IGluIEdkay5UeXBlcy5HZGtfV2lu
ZG93X1R5cGUpOwoKICAgZnVuY3Rpb24gR2V0X1dpbmRvd19UeXBlCiAgICAgKFdpbmRvd19BdHRy
IDogaW4gR2RrX1dpbmRvd19BdHRyKSByZXR1cm4gR2RrLlR5cGVzLkdka19XaW5kb3dfVHlwZTsK
CiAgIHByb2NlZHVyZSBTZXRfQ3Vyc29yCiAgICAgKFdpbmRvd19BdHRyIDogaW4gR2RrX1dpbmRv
d19BdHRyOwogICAgICBDdXJzb3IgICAgICA6IGluIEdkay5DdXJzb3IuR2RrX0N1cnNvcik7Cgog
ICBmdW5jdGlvbiBHZXRfQ3Vyc29yCiAgICAgKFdpbmRvd19BdHRyIDogaW4gR2RrX1dpbmRvd19B
dHRyKQogICAgICByZXR1cm4gR2RrLkN1cnNvci5HZGtfQ3Vyc29yOwoKICAgcHJvY2VkdXJlIFNl
dF9XbWNsYXNzX05hbWUKICAgICAoV2luZG93X0F0dHIgIDogaW4gR2RrX1dpbmRvd19BdHRyOwog
ICAgICBXbWNsYXNzX05hbWUgOiBpbiBTdHJpbmcpOwoKICAgZnVuY3Rpb24gR2V0X1dtY2xhc3Nf
TmFtZSAoV2luZG93X0F0dHIgOiBpbiBHZGtfV2luZG93X0F0dHIpIHJldHVybiBTdHJpbmc7CgoK
ICAgcHJvY2VkdXJlIFNldF9XbWNsYXNzX0NsYXNzCiAgICAgKFdpbmRvd19BdHRyICAgOiBpbiBH
ZGtfV2luZG93X0F0dHI7CiAgICAgIFdtY2xhc3NfQ2xhc3MgOiBpbiBTdHJpbmcpOwoKICAgZnVu
Y3Rpb24gR2V0X1dtY2xhc3NfQ2xhc3MgKFdpbmRvd19BdHRyIDogaW4gR2RrX1dpbmRvd19BdHRy
KSByZXR1cm4gU3RyaW5nOwoKICAgcHJvY2VkdXJlIFNldF9PdmVycmlkZV9SZWRpcmVjdAogICAg
IChXaW5kb3dfQXR0ciAgICAgICA6IGluIEdka19XaW5kb3dfQXR0cjsKICAgICAgT3ZlcnJpZGVf
UmVkaXJlY3QgOiBpbiBCb29sZWFuKTsKCiAgIGZ1bmN0aW9uIEdldF9PdmVycmlkZV9SZWRpcmVj
dAogICAgIChXaW5kb3dfQXR0ciA6IGluIEdka19XaW5kb3dfQXR0cikgcmV0dXJuIEJvb2xlYW47
Cgpwcml2YXRlCiAgIE51bGxfV2luZG93X0F0dHIgOiBjb25zdGFudCBHZGtfV2luZG93X0F0dHIg
Oj0gbnVsbDsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X0NvbG9ybWFwLCAiYWRhX2dka193aW5k
b3dfYXR0cl9nZXRfY29sb3JtYXAiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X0N1cnNvciwg
ImFkYV9nZGtfd2luZG93X2F0dHJfZ2V0X2N1cnNvciIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBH
ZXRfRXZlbnRfTWFzaywgImFkYV9nZGtfd2luZG93X2F0dHJfZ2V0X2V2ZW50X21hc2siKTsKICAg
cHJhZ21hIEltcG9ydCAoQywgR2V0X0hlaWdodCwgImFkYV9nZGtfd2luZG93X2F0dHJfZ2V0X2hl
aWdodCIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfVmlzdWFsLCAiYWRhX2dka193aW5kb3df
YXR0cl9nZXRfdmlzdWFsIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9XaWR0aCwgImFkYV9n
ZGtfd2luZG93X2F0dHJfZ2V0X3dpZHRoIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9XaW5k
b3dfQ2xhc3MsICJhZGFfZ2RrX3dpbmRvd19hdHRyX2dldF93Y2xhc3MiKTsKICAgcHJhZ21hIElt
cG9ydCAoQywgR2V0X1dpbmRvd19UeXBlLCAiYWRhX2dka193aW5kb3dfYXR0cl9nZXRfd2luZG93
X3R5cGUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X1gsICJhZGFfZ2RrX3dpbmRvd19hdHRy
X2dldF94Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9ZLCAiYWRhX2dka193aW5kb3dfYXR0
cl9nZXRfeSIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBTZXRfQ29sb3JtYXAsICJhZGFfZ2RrX3dp
bmRvd19hdHRyX3NldF9jb2xvcm1hcCIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBTZXRfQ3Vyc29y
LCAiYWRhX2dka193aW5kb3dfYXR0cl9zZXRfY3Vyc29yIik7CiAgIHByYWdtYSBJbXBvcnQgKEMs
IFNldF9FdmVudF9NYXNrLCAiYWRhX2dka193aW5kb3dfYXR0cl9zZXRfZXZlbnRfbWFzayIpOwog
ICBwcmFnbWEgSW1wb3J0IChDLCBTZXRfSGVpZ2h0LCAiYWRhX2dka193aW5kb3dfYXR0cl9zZXRf
aGVpZ2h0Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9WaXN1YWwsICJhZGFfZ2RrX3dpbmRv
d19hdHRyX3NldF92aXN1YWwiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X1dpZHRoLCAiYWRh
X2dka193aW5kb3dfYXR0cl9zZXRfd2lkdGgiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X1dp
bmRvd19DbGFzcywgImFkYV9nZGtfd2luZG93X2F0dHJfc2V0X3djbGFzcyIpOwogICBwcmFnbWEg
SW1wb3J0IChDLCBTZXRfV2luZG93X1R5cGUsICJhZGFfZ2RrX3dpbmRvd19hdHRyX3NldF93aW5k
b3dfdHlwZSIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBTZXRfWCwgImFkYV9nZGtfd2luZG93X2F0
dHJfc2V0X3giKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X1ksICJhZGFfZ2RrX3dpbmRvd19h
dHRyX3NldF95Iik7CmVuZCBHZGsuV2luZG93X0F0dHI7Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAg
ICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1wIFRvb2xraXQgICAgICAgICAg
ICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChD
KSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICBFbW1hbnVlbCBC
cmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0ICAgICAgICAgIC0tCi0tICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciAgICAgIC0tCi0t
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgIC0t
Ci0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAg
IC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkg
VGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90aGVyIGZpbGVzIGluc3RhbnRp
YXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3IgeW91IGxpbmsgdGhpcyB1bml0
IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMg
IHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4
ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Uu
IFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyIGludmFsaWRhdGUgYW55IG90
aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgY292
ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgot
LSAgPGRlc2NyaXB0aW9uPgotLQotLSAgVGhpcyBpcyB0aGUgdG9wIGxldmVsIHBhY2thZ2Ugb2Yg
dGhlIEdkayBoaWVyYXJjaHkuCi0tICBJdCBwcm92aWRlcyB0aGUgdHlwZSBkZWZpbml0aW9ucyB1
c2VkIHRvIGFjY2VzcyB1bmRlcmx5aW5nIEMgc3RydWN0dXJlcy4KLS0KLS0gIDwvZGVzY3JpcHRp
b24+Cgp3aXRoIEdsaWI7CgpwYWNrYWdlIEdkayBpcwogICBwcmFnbWEgUHJlZWxhYm9yYXRlOwoK
ICAgc3VidHlwZSBDX1Byb3h5IGlzIEdsaWIuQ19Qcm94eTsKICAgdHlwZSBHZGtfR0MgaXMgbmV3
IENfUHJveHk7CiAgIHR5cGUgR2RrX1dpbmRvdyBpcyBuZXcgQ19Qcm94eTsKICAgc3VidHlwZSBH
ZGtfRHJhd2FibGUgaXMgR2RrX1dpbmRvdzsKICAgc3VidHlwZSBHZGtfUGl4bWFwIGlzIEdka19E
cmF3YWJsZTsKICAgc3VidHlwZSBHZGtfQml0bWFwIGlzIEdka19EcmF3YWJsZTsKCmVuZCBHZGs7
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRo
ZSBHaW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg
ICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAgICAg
IC0tCi0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBD
aGFybGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAg
ICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBHZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0t
Ci0tIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24s
IGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5p
dCwgb3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAg
IC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2Ug
IHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05V
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBo
b3dldmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1
dGFibGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4g
ICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpwYWNrYWdlIGJvZHkgR2xpYi5HbGlzdCBpcwoKICAgdXNl
IHR5cGUgU3lzdGVtLkFkZHJlc3M7CgogICBwYWNrYWdlIGJvZHkgR2VuZXJpY19MaXN0IGlzCiAg
ICAgIC0tLS0tLS0tLS0tCiAgICAgIC0tIEFsbG9jIC0tCiAgICAgIC0tLS0tLS0tLS0tCgogICAg
ICBwcm9jZWR1cmUgQWxsb2MgKExpc3QgOiBvdXQgR2xpc3QpIGlzCiAgICAgICAgIGZ1bmN0aW9u
IEludGVybmFsIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgcHJhZ21hIEltcG9ydCAo
QywgSW50ZXJuYWwsICJnX2xpc3RfYWxsb2MiKTsKICAgICAgYmVnaW4KICAgICAgICAgU2V0X09i
amVjdCAoTGlzdCwgSW50ZXJuYWwpOwogICAgICBlbmQgQWxsb2M7CgogICAgICAtLS0tLS0tLS0t
LS0KICAgICAgLS0gQXBwZW5kIC0tCiAgICAgIC0tLS0tLS0tLS0tLQoKICAgICAgcHJvY2VkdXJl
IEFwcGVuZAogICAgICAgIChMaXN0IDogaW4gb3V0IEdsaXN0OwogICAgICAgICBEYXRhIDogaW4g
R3BvaW50ZXIpCiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lz
dGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhIDogU3lzdGVtLkFk
ZHJlc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7
CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19saXN0X2FwcGVuZCIpOwog
ICAgICBiZWdpbgogICAgICAgICBTZXRfT2JqZWN0IChMaXN0LCBJbnRlcm5hbCAoR2V0X09iamVj
dCAoTGlzdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJ0IChE
YXRhKSkpOwogICAgICBlbmQgQXBwZW5kOwoKICAgICAgLS0tLS0tLS0tLS0tCiAgICAgIC0tIENv
bmNhdCAtLQogICAgICAtLS0tLS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIENvbmNhdAogICAgICAg
IChMaXN0MSA6IGluIEdsaXN0OwogICAgICAgICBMaXN0MiA6IGluIEdsaXN0KQogICAgICAgICBy
ZXR1cm4gR2xpc3QKICAgICAgaXMKICAgICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKExpc3QxIDog
U3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0MiA6IFN5c3Rl
bS5BZGRyZXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRy
ZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImdfbGlzdF9hcHBlbmQi
KTsKICAgICAgICAgVG1wIDogR2xpc3Q7CiAgICAgIGJlZ2luCiAgICAgICAgIFNldF9PYmplY3Qg
KFRtcCwgSW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QxKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR2V0X09iamVjdCAoTGlzdDIpKSk7CiAgICAgICAgIHJldHVybiBUbXA7
CiAgICAgIGVuZCBDb25jYXQ7CgogICAgICAtLS0tLS0tLS0tLS0KICAgICAgLS0gSW5zZXJ0IC0t
CiAgICAgIC0tLS0tLS0tLS0tLQoKICAgICAgcHJvY2VkdXJlIEluc2VydAogICAgICAgIChMaXN0
ICAgICA6IGluIG91dCBHbGlzdDsKICAgICAgICAgRGF0YSAgICAgOiBpbiAgICAgR3BvaW50ZXI7
CiAgICAgICAgIFBvc2l0aW9uIDogaW4gICAgIEdpbnQpCiAgICAgIGlzCiAgICAgICAgIGZ1bmN0
aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBEYXRhIDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBQb3MgIDogR2ludCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTeXN0ZW0u
QWRkcmVzczsKICAgICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJnX2xpc3RfaW5z
ZXJ0Iik7CiAgICAgIGJlZ2luCiAgICAgICAgIFNldF9PYmplY3QgKExpc3QsIEludGVybmFsIChH
ZXRfT2JqZWN0IChMaXN0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv
bnZlcnQgKERhdGEpLCBQb3NpdGlvbikpOwogICAgICBlbmQgSW5zZXJ0OwoKICAgICAgLS0tLS0t
LS0tLQogICAgICAtLSBGaW5kIC0tCiAgICAgIC0tLS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIEZp
bmQKICAgICAgICAoTGlzdCA6IGluIEdsaXN0OwogICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIp
CiAgICAgICAgIHJldHVybiBHbGlzdAogICAgICBpcwogICAgICAgICBmdW5jdGlvbiBJbnRlcm5h
bCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0
YSA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN5
c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImdfbGlz
dF9maW5kIik7CiAgICAgICAgIFRtcCA6IEdsaXN0OwogICAgICBiZWdpbgogICAgICAgICBTZXRf
T2JqZWN0IChUbXAsIEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ29udmVydCAoRGF0YSkpKTsKICAgICAgICAgcmV0dXJuIFRt
cDsKICAgICAgZW5kIEZpbmQ7CgogICAgICAtLS0tLS0tLS0tLQogICAgICAtLSBGaXJzdCAtLQog
ICAgICAtLS0tLS0tLS0tLQoKICAgICAgZnVuY3Rpb24gRmlyc3QgKExpc3QgOiBpbiBHbGlzdCkK
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHbGlzdAogICAgICBpcwogICAgICAgICBmdW5j
dGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0IChD
LCBJbnRlcm5hbCwgImdfbGlzdF9maXJzdCIpOwogICAgICAgICBUbXAgOiBHbGlzdDsKICAgICAg
YmVnaW4KICAgICAgICAgU2V0X09iamVjdCAoVG1wLCBJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlz
dCkpKTsKICAgICAgICAgcmV0dXJuIFRtcDsKICAgICAgZW5kIEZpcnN0OwoKICAgICAgLS0tLS0t
LS0tLQogICAgICAtLSBGcmVlIC0tCiAgICAgIC0tLS0tLS0tLS0KCiAgICAgIHByb2NlZHVyZSBG
cmVlIChMaXN0IDogaW4gb3V0IEdsaXN0KSBpcwogICAgICAgICBwcm9jZWR1cmUgSW50ZXJuYWwg
KExpc3QgOiBTeXN0ZW0uQWRkcmVzcyk7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVy
bmFsLCAiZ19saXN0X2ZyZWUiKTsKICAgICAgYmVnaW4KICAgICAgICAgSW50ZXJuYWwgKEdldF9P
YmplY3QgKExpc3QpKTsKICAgICAgZW5kIEZyZWU7CgogICAgICAtLS0tLS0tLS0tLS0tLQogICAg
ICAtLSBHZXRfRGF0YSAtLQogICAgICAtLS0tLS0tLS0tLS0tLQoKICAgICAgZnVuY3Rpb24gR2V0
X0RhdGEgKExpc3QgOiBpbiBHbGlzdCkgcmV0dXJuIEdwb2ludGVyIGlzCiAgICAgICAgIGZ1bmN0
aW9uIEludGVybmFsIChMaXN0IDogaW4gU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQg
KEMsIEludGVybmFsLCAiYWRhX2xpc3RfZ2V0X2RhdGEiKTsKICAgICAgYmVnaW4KICAgICAgICAg
cmV0dXJuIENvbnZlcnQgKEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSkpOwogICAgICBlbmQg
R2V0X0RhdGE7CgogICAgICAtLS0tLS0tLS0tLS0tLQogICAgICAtLSBHZXRfRGF0YSAtLQogICAg
ICAtLS0tLS0tLS0tLS0tLQoKICAgICAgZnVuY3Rpb24gR2V0X0RhdGFfQWRkcmVzcyAoTGlzdCA6
IGluIEdsaXN0KSByZXR1cm4gU3lzdGVtLkFkZHJlc3MgaXMKICAgICAgICAgZnVuY3Rpb24gSW50
ZXJuYWwgKExpc3QgOiBpbiBTeXN0ZW0uQWRkcmVzcykKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50
ZXJuYWwsICJhZGFfbGlzdF9nZXRfZGF0YSIpOwogICAgICBiZWdpbgogICAgICAgICByZXR1cm4g
SW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpKTsKICAgICAgZW5kIEdldF9EYXRhX0FkZHJlc3M7
CgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAgR2V0X0dwb2ludGVyICAtLQog
ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgZnVuY3Rpb24gR2V0X0dwb2ludGVyIChM
aXN0IDogaW4gR2xpc3QpIHJldHVybiBHcG9pbnRlciBpcwogICAgICBiZWdpbgogICAgICAgICBy
ZXR1cm4gQ29udmVydCAoR2V0X09iamVjdCAoTGlzdCkpOwogICAgICBlbmQgR2V0X0dwb2ludGVy
OwoKICAgICAgLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSBHZXRfT2JqZWN0IC0tCiAgICAgIC0t
LS0tLS0tLS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIEdldF9PYmplY3QgKE9iaiA6IGluIEdsaXN0
KQogICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3MgaXMKICAg
ICAgYmVnaW4KICAgICAgICAgcmV0dXJuIE9iai5QdHI7CiAgICAgIGVuZCBHZXRfT2JqZWN0OwoK
ICAgICAgLS0tLS0tLS0tLS0KICAgICAgLS0gSW5kZXggLS0KICAgICAgLS0tLS0tLS0tLS0KCiAg
ICAgIGZ1bmN0aW9uIEluZGV4CiAgICAgICAgKExpc3QgOiBpbiBHbGlzdDsKICAgICAgICAgRGF0
YSA6IGluIEdwb2ludGVyKQogICAgICAgICByZXR1cm4gR2ludAogICAgICBpcwogICAgICAgICBm
dW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRGF0YSA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEdpbnQ7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAi
Z19saXN0X2luZGV4Iik7CiAgICAgIGJlZ2luCiAgICAgICAgIHJldHVybiBJbnRlcm5hbCAoR2V0
X09iamVjdCAoTGlzdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVydCAoRGF0YSkp
OwogICAgICBlbmQgSW5kZXg7CgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gIElz
X0NyZWF0ZWQgIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgZnVuY3Rpb24gSXNf
Q3JlYXRlZCAoTGlzdCA6IGluIEdsaXN0KSByZXR1cm4gQm9vbGVhbiBpcwogICAgICBiZWdpbgog
ICAgICAgICByZXR1cm4gR2V0X09iamVjdCAoTGlzdCkgLz0gU3lzdGVtLk51bGxfQWRkcmVzczsK
ICAgICAgZW5kIElzX0NyZWF0ZWQ7CgogICAgICAtLS0tLS0tLS0tCiAgICAgIC0tIExhc3QgLS0K
ICAgICAgLS0tLS0tLS0tLQoKICAgICAgZnVuY3Rpb24gTGFzdCAoTGlzdCA6IGluIEdsaXN0KSBy
ZXR1cm4gR2xpc3QgaXMKICAgICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKExpc3QgOiBTeXN0ZW0u
QWRkcmVzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTeXN0ZW0uQWRkcmVz
czsKICAgICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJnX2xpc3RfbGFzdCIpOwog
ICAgICAgICBUbXAgOiBHbGlzdDsKICAgICAgYmVnaW4KICAgICAgICAgU2V0X09iamVjdCAoVG1w
LCBJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlzdCkpKTsKICAgICAgICAgcmV0dXJuIFRtcDsKICAg
ICAgZW5kIExhc3Q7CgogICAgICAtLS0tLS0tLS0tLS0KICAgICAgLS0gTGVuZ3RoIC0tCiAgICAg
IC0tLS0tLS0tLS0tLQoKICAgICAgZnVuY3Rpb24gTGVuZ3RoIChMaXN0IDogaW4gR2xpc3QpIHJl
dHVybiBHdWludCBpcwogICAgICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5B
ZGRyZXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEd1aW50OwogICAgICAg
ICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImdfbGlzdF9sZW5ndGgiKTsKICAgICAgYmVn
aW4KICAgICAgICAgcmV0dXJuIEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSk7CiAgICAgIGVu
ZCBMZW5ndGg7CgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gTGlzdF9SZXZlcnNl
IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgcHJvY2VkdXJlIExpc3RfUmV2ZXJz
ZSAoTGlzdCA6IGluIG91dCBHbGlzdCkgaXMKICAgICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKExp
c3QgOiBTeXN0ZW0uQWRkcmVzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBT
eXN0ZW0uQWRkcmVzczsKICAgICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJnX2xp
c3RfcmV2ZXJzZSIpOwogICAgICBiZWdpbgogICAgICAgICBTZXRfT2JqZWN0IChMaXN0LCBJbnRl
cm5hbCAoR2V0X09iamVjdCAoTGlzdCkpKTsKICAgICAgZW5kIExpc3RfUmV2ZXJzZTsKCiAgICAg
IC0tLS0tLS0tLS0KICAgICAgLS0gTmV4dCAtLQogICAgICAtLS0tLS0tLS0tCgogICAgICBmdW5j
dGlvbiBOZXh0IChMaXN0IDogaW4gR2xpc3QpIHJldHVybiBHbGlzdCBpcwogICAgICAgICBmdW5j
dGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0IChD
LCBJbnRlcm5hbCwgImFkYV9saXN0X25leHQiKTsKICAgICAgICAgVG1wIDogR2xpc3Q7CiAgICAg
IGJlZ2luCiAgICAgICAgIFNldF9PYmplY3QgKFRtcCwgSW50ZXJuYWwgKEdldF9PYmplY3QgKExp
c3QpKSk7CiAgICAgICAgIHJldHVybiBUbXA7CiAgICAgIGVuZCBOZXh0OwoKICAgICAgLS0tLS0t
LS0tCiAgICAgIC0tIE50aCAtLQogICAgICAtLS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIE50aAog
ICAgICAgIChMaXN0IDogaW4gR2xpc3Q7CiAgICAgICAgIE4gICAgOiBpbiBHdWludCkKICAgICAg
ICAgcmV0dXJuIEdsaXN0CiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0
IDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOICAgIDogR3Vp
bnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAg
ICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19saXN0X250aCIpOwogICAgICAg
ICBUbXAgOiBHbGlzdDsKICAgICAgYmVnaW4KICAgICAgICAgU2V0X09iamVjdCAoVG1wLCBJbnRl
cm5hbCAoR2V0X09iamVjdCAoTGlzdCksIE4pKTsKICAgICAgICAgcmV0dXJuIFRtcDsKICAgICAg
ZW5kIE50aDsKCiAgICAgIC0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIE50aF9EYXRhIC0tCiAgICAg
IC0tLS0tLS0tLS0tLS0tCgogICAgICBmdW5jdGlvbiBOdGhfRGF0YQogICAgICAgIChMaXN0IDog
aW4gR2xpc3Q7CiAgICAgICAgIE4gICAgOiBpbiBHdWludCkKICAgICAgICAgcmV0dXJuIEdwb2lu
dGVyCiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFk
ZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOICAgIDogR3VpbnQpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdt
YSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19saXN0X250aF9kYXRhIik7CiAgICAgIGJlZ2luCiAg
ICAgICAgIHJldHVybiBDb252ZXJ0IChJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlzdCksIE4pKTsK
ICAgICAgZW5kIE50aF9EYXRhOwoKICAgICAgLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gUG9zaXRp
b24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIFBvc2l0aW9uCiAgICAg
ICAgKExpc3QgOiBpbiBHbGlzdDsKICAgICAgICAgTGluayA6IGluIEdsaXN0KQogICAgICAgICBy
ZXR1cm4gR2ludAogICAgICBpcwogICAgICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5
c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluayA6IFN5c3RlbS5B
ZGRyZXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdpbnQ7CiAgICAgICAg
IHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19saXN0X3Bvc2l0aW9uIik7CiAgICAgIGJl
Z2luCiAgICAgICAgIHJldHVybiBJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlzdCksIEdldF9PYmpl
Y3QgKExpbmspKTsKICAgICAgZW5kIFBvc2l0aW9uOwoKICAgICAgLS0tLS0tLS0tLS0tLQogICAg
ICAtLSBQcmVwZW5kIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0KCiAgICAgIHByb2NlZHVyZSBQcmVw
ZW5kCiAgICAgICAgKExpc3QgOiBpbiBvdXQgR2xpc3Q7CiAgICAgICAgIERhdGEgOiBpbiBHcG9p
bnRlcikKICAgICAgaXMKICAgICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKExpc3QgOiBTeXN0ZW0u
QWRkcmVzczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgOiBTeXN0ZW0uQWRkcmVz
cykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAg
ICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJnX2xpc3RfcHJlcGVuZCIpOwogICAg
ICBiZWdpbgogICAgICAgICBTZXRfT2JqZWN0IChMaXN0LCBJbnRlcm5hbCAoR2V0X09iamVjdCAo
TGlzdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJ0IChEYXRh
KSkpOwogICAgICBlbmQgUHJlcGVuZDsKCiAgICAgIC0tLS0tLS0tLS0KICAgICAgLS0gUHJldiAt
LQogICAgICAtLS0tLS0tLS0tCgogICAgICBmdW5jdGlvbiBQcmV2IChMaXN0IDogaW4gR2xpc3Qp
IHJldHVybiBHbGlzdCBpcwogICAgICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3Rl
bS5BZGRyZXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRy
ZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImFkYV9saXN0X3ByZXYi
KTsKICAgICAgICAgVG1wIDogR2xpc3Q7CiAgICAgIGJlZ2luCiAgICAgICAgIFNldF9PYmplY3Qg
KFRtcCwgSW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpKSk7CiAgICAgICAgIHJldHVybiBUbXA7
CiAgICAgIGVuZCBQcmV2OwoKICAgICAgLS0tLS0tLS0tLS0tCiAgICAgIC0tIFJlbW92ZSAtLQog
ICAgICAtLS0tLS0tLS0tLS0KCiAgICAgIHByb2NlZHVyZSBSZW1vdmUKICAgICAgICAoTGlzdCA6
IGluIG91dCBHbGlzdDsKICAgICAgICAgRGF0YSA6IGluIEdwb2ludGVyKQogICAgICBpcwogICAg
ICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRGF0YSA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0
IChDLCBJbnRlcm5hbCwgImdfbGlzdF9yZW1vdmUiKTsKICAgICAgYmVnaW4KICAgICAgICAgU2V0
X09iamVjdCAoTGlzdCwgSW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVydCAoRGF0YSkpKTsKICAgICAgZW5kIFJlbW92
ZTsKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIFJlbW92ZV9MaW5rIC0tCiAgICAg
IC0tLS0tLS0tLS0tLS0tLS0tCgogICAgICBwcm9jZWR1cmUgUmVtb3ZlX0xpbmsKICAgICAgICAo
TGlzdCA6IGluIG91dCBHbGlzdDsKICAgICAgICAgTGluayA6IGluIEdsaXN0KQogICAgICBpcwog
ICAgICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTGluayA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEgSW1w
b3J0IChDLCBJbnRlcm5hbCwgImdfbGlzdF9yZW1vdmVfbGluayIpOwogICAgICBiZWdpbgogICAg
ICAgICBTZXRfT2JqZWN0IChMaXN0LCBJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlzdCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRfT2JqZWN0IChMaW5rKSkpOwogICAg
ICBlbmQgUmVtb3ZlX0xpbms7CgogICAgICAtLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIFNldF9P
YmplY3QgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgcHJvY2VkdXJlIFNldF9PYmpl
Y3QgKE9iaiAgIDogaW4gb3V0IEdsaXN0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFs
dWUgOiBpbiAgICAgU3lzdGVtLkFkZHJlc3MpIGlzCiAgICAgIGJlZ2luCiAgICAgICAgIE9iai5Q
dHIgOj0gVmFsdWU7CiAgICAgIGVuZCBTZXRfT2JqZWN0OwoKICAgZW5kIEdlbmVyaWNfTGlzdDsK
ZW5kIEdsaWIuR2xpc3Q7CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICBHdGtBZGEgLSBBZGE5
NSBiaW5kaW5nIGZvciB0aGUgR2ltcCBUb29sa2l0ICAgICAgICAgICAgICAtLQotLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAtLQotLSAgICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5OC0yMDAwICAgICAg
ICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgRW1tYW51ZWwgQnJpb3QsIEpvZWwgQnJvYmVj
a2VyIGFuZCBBcm5hdWQgQ2hhcmxldCAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
ICAgICAtLQotLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ
dWJsaWMgICAgICAgICAgICAgICAtLQotLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgICAgICAtLQotLSB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAtLQotLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwgICAtLQotLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAtLQotLSBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSAtLQot
LSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAg
ICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAtLQotLSBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSAgICAgICAgICAgICAt
LQotLSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1
aXRlIDMzMCwgICAgICAtLQotLSBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNw
ZWNpYWwgZXhjZXB0aW9uLCBpZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0ZSBnZW5lcmljcyBmcm9t
ICAtLQotLSB0aGlzIHVuaXQsIG9yIHlvdSBsaW5rIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVz
IHRvIHByb2R1Y2UgYW4gICAtLQotLSBleGVjdXRhYmxlLCB0aGlzICB1bml0ICBkb2VzIG5vdCAg
YnkgaXRzZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5nICAtLQotLSBleGVjdXRhYmxlIHRvIGJlIGNv
dmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzICAtLQotLSBleGNl
cHRpb24gZG9lcyBub3QgaG93ZXZlciBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSB0
aGUgICAtLQotLSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJlIGNvdmVyZWQgYnkgdGhlICBHTlUg
UHVibGljIExpY2Vuc2UuICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0gIDxkZXNjcmlwdGlvbj4K
LS0KLS0gIFRoaXMgcGFja2FnZSBpbXBsZW1lbnRzIGEgZ2VuZXJpYyBkb3VibGUtbGlua2VkIGxp
c3QuCi0tICBTdWNoIGxpc3RzIGFyZSB1c2VkIHRocm91Z2hvdXQgR3RrQWRhIHRvIGNvbnRhaW4g
bGlzdHMgb2Ygd2lkZ2V0cwotLSAgKGZvciB0aGUgY2hpbGRyZW4gb2YgY29udGFpbmVycywgb3Ig
Zm9yIHRoZSBsaXN0IG9mIHNlbGVjdGVkIHdpZGdldHMKLS0gIGluIGEgR3RrX0NsaXN0IGZvciBp
bnN0YW5jZSksIGxpc3Qgb2Ygc3RyaW5ncyAoZm9yIEd0a19Db21ib19Cb3gpLC4uLgotLQotLSAg
VGhleSBwcm92aWRlIGEgY29tbW9uIGludGVyZmFjZSB0byB0cmF2ZXJzZSB0aGVzZSBsaXN0cy4K
LS0KLS0gIE9uZSB1c2VmdWwgbm90ZTogeW91IHNob3VsZCBvbmx5IEZyZWUgdGhlIGxpc3RzIHRo
YXQgeW91IGhhdmUgYWxsb2NhdGVkCi0tICB5b3Vyc2VsZiwgYW5kIG5vdCB0aGUgbGlzdHMgdGhh
dCBhcmUgcmV0dXJuZWQgYnkgdGhlIHN1YnByb2dyYW1zIGluCi0tICBHdGtBZGEgYW5kIHNob3Vs
ZCBiZSBsZWZ0IHVuZGVyIEd0a0FkYSdzIGNvbnRyb2wuCi0tCi0tICBTZWUgdGhlIGV4YW1wbGUg
YmVsb3cgZm9yIGFuIGV4YW1wbGUgb24gaG93IHRvIHRyYXZlcnNlIGEgbGlzdC4KLS0KLS0gIElu
c3RhbnRpYXRpbmcgdGhlIHBhY2thZ2UgR2VuZXJpY19MaXN0IHJlcXVpcmVzIHR3byBmdW5jdGlv
bnMgdG8gY29udmVydAotLSAgYmFjayBhbmQgZm9ydGggYmV0d2VlbiB5b3VyIGRhdGEgdHlwZSBh
bmQgYSBTeXN0ZW0uQWRkcmVzcyB3aGljaCBpcyB0aGUKLS0gIHR5cGUgc3RvcmVkIGF0IHRoZSBD
IGxldmVsLgotLSAgTm90ZSB0aGF0IHRoZSBsaXN0cyB1c2VkIGluIEd0a0FkYSBhbHJlYWR5IGhh
dmUgYXNzb2NpYXRlZCBwYWNrYWdlcywgbGlrZQotLSAgR3RrLkVudW1zLkdpbnRfTGlzdCwgR3Rr
LkVudW1zLlN0cmluZ19MaXN0IG9yIEd0ay5XaWRnZXQuV2lkZ2V0X0xpc3QuCi0tCi0tICA8L2Rl
c2NyaXB0aW9uPgotLSAgPGNfc3luY2hybz4xLjIuNjwvY19zeW5jaHJvPgoKd2l0aCBTeXN0ZW07
CgpwYWNrYWdlIEdsaWIuR2xpc3QgaXMKCgogICBnZW5lcmljCiAgICAgIC0tICA8ZG9jX2lnbm9y
ZT4KCiAgICAgIHR5cGUgR3BvaW50ZXIgKDw+KSBpcyBwcml2YXRlOwogICAgICB3aXRoIGZ1bmN0
aW9uIENvbnZlcnQgKFAgOiBHcG9pbnRlcikgcmV0dXJuIFN5c3RlbS5BZGRyZXNzIGlzIDw+Owog
ICAgICB3aXRoIGZ1bmN0aW9uIENvbnZlcnQgKFMgOiBTeXN0ZW0uQWRkcmVzcykgcmV0dXJuIEdw
b2ludGVyIGlzIDw+OwoKICAgICAgLS0gIDwvZG9jX2lnbm9yZT4KCiAgIHBhY2thZ2UgR2VuZXJp
Y19MaXN0IGlzCgogICAgICB0eXBlIEdsaXN0IGlzIHByaXZhdGU7CiAgICAgIC0tICBUaGlzIHR5
cGUgaXMgYm90aCBhIGxpc3QgYW5kIGFuIGl0ZW0gaW4gdGhlIGxpc3QuCiAgICAgIC0tICBFYWNo
IGl0ZW0gcG9pbnRzIHRvIGl0cyBzdWNjZXNzb3IuCgogICAgICBOdWxsX0xpc3QgOiBjb25zdGFu
dCBHbGlzdDsKCiAgICAgIHByb2NlZHVyZSBBbGxvYyAoTGlzdCA6IG91dCBHbGlzdCk7CiAgICAg
IC0tICBBbGxvY2F0ZSBhIG5ldyBpdGVtIGluIHRoZSBsaXN0LgogICAgICAtLSAgVGhpcyBpdGVt
IGlzbid0IGFzc29jaWF0ZWQgd2l0aCBhbnkgZGF0YS4KICAgICAgLS0gIFlvdSBwcm9iYWJseSBk
b24ndCBoYXZlIHRvIHVzZSB0aGlzIHN1YnByb2dyYW0sIHNpbmNlIEFwcGVuZCwKICAgICAgLS0g
IEluc2VydCwgUHJlcGVuZCwgZXRjLiBhbHJlYWR5IGhhbmRsZSB0aGUgYWxsb2NhdGlvbiBmb3Ig
eW91IGFuZAogICAgICAtLSAgZ2l2ZSBhIG5ldyB2YWx1ZSB0byB0aGUgaXRlbS4KCiAgICAgIHBy
b2NlZHVyZSBBcHBlbmQgKExpc3QgOiBpbiBvdXQgR2xpc3Q7CiAgICAgICAgICAgICAgICAgICAg
ICAgIERhdGEgOiBpbiBHcG9pbnRlcik7CiAgICAgIC0tICBBZGQgYSBuZXcgaXRlbSBhdCB0aGUg
ZW5kIG9mIHRoZSBsaXN0LCBhbmQgc3RvcmVzIHRoZSBuZXcgbGlzdAogICAgICAtLSAgZGlyZWN0
bHkgYmFjayBpbiBMaXN0LgogICAgICAtLSAgVGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBvcGVyYXRp
b24gaXMgTyhuKQoKICAgICAgZnVuY3Rpb24gQ29uY2F0IChMaXN0MSA6IGluIEdsaXN0OwogICAg
ICAgICAgICAgICAgICAgICAgIExpc3QyIDogaW4gR2xpc3QpCiAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gR2xpc3Q7CiAgICAgIC0tICBDb25jYXRlbmF0ZSB0d28gbGlzdHMsIGFuZCByZXR1
cm4gdGhlIHJlc3VsdC4KICAgICAgLS0gIExpc3QyIGlzIGFkZGVkIGF0IHRoZSBlbmQgb2YgTGlz
dDEuCiAgICAgIC0tICBUaGUgY29tcGxleGl0eSBpcyBPKG4xKSAoZGVwZW5kcyBvbiB0aGUgc2l6
ZSBvZiBMaXN0MSkuCgogICAgICBwcm9jZWR1cmUgSW5zZXJ0IChMaXN0IDogaW4gb3V0IEdsaXN0
OwogICAgICAgICAgICAgICAgICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXI7CiAgICAgICAgICAg
ICAgICAgICAgICAgIFBvc2l0aW9uIDogaW4gR2ludCk7CiAgICAgIC0tICBJbnNlcnQgYW4gaXRl
bSBpbiB0aGUgbWlkZGxlIG9mIGEgbGlzdC4KICAgICAgLS0gIElmIFBvc2l0aW9uIGlzIDAsIHRo
ZSBpdGVtIGlzIGFkZGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3QsIGlmCiAgICAgIC0t
ICBpdCBpcyBuZWdhdGl2ZSB0aGUgaXRlbSBpcyBhZGRlZCBhdCB0aGUgZW5kLgogICAgICAtLSAg
VGhlIGNvbXBsZXhpdHkgaXMgTyhQb3NpdGlvbikuCgogICAgICBmdW5jdGlvbiBGaW5kIChMaXN0
IDogaW4gR2xpc3Q7CiAgICAgICAgICAgICAgICAgICAgIERhdGEgOiBpbiBHcG9pbnRlcikKICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gR2xpc3Q7CiAgICAgIC0tICBGaW5kIGEgdmFsdWUgaW4g
dGhlIGxpc3QsIGFuZCByZXR1cm4gdGhlIGZpcnN0IGl0ZW0gdGhhdCBjb250YWlucyBpdC4KICAg
ICAgLS0gIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IHdvcmsgaWYgdGhlIGZ1bmN0
aW9uIENvbnZlcnQgZG9lcwogICAgICAtLSAgbm90IHJldHVybiB0aGUgc2FtZSB2YWx1ZSBmb3Ig
dHdvIGlkZW50aWNhbCB2YWx1ZXMuCgogICAgICBmdW5jdGlvbiBGaXJzdCAoTGlzdCA6IGluIEds
aXN0KSByZXR1cm4gR2xpc3Q7CiAgICAgIC0tICBSZXR1cm4gdGhlIGZpcnN0IGl0ZW0gaW4gdGhl
IGxpc3QuCiAgICAgIC0tICBOb3RlIHRoYXQgaWYgTGlzdCBpcyBpbiBmYWN0IGFuIGl0ZW0gb2Yg
YSBsYXJnZXIgbGlzdCwgdGhlIHJldHVybgogICAgICAtLSAgdmFsdWUgaXMgdGhlIGZpcnN0IGl0
ZW0gaW4gdGhlIGxhcmdlciBsaXN0IGl0c2VsZi4KCiAgICAgIHByb2NlZHVyZSBGcmVlIChMaXN0
IDogaW4gb3V0IEdsaXN0KTsKICAgICAgLS0gIEZyZWUgdGhlIGxpc3QgKGJ1dCBkb2VzIG5vdCBm
cmVlIHRoZSBkYXRhIGluIGVhY2ggb2YgaXRzIGVsZW1lbnRzKS4KICAgICAgLS0gIFRoaXMgb25s
eSBmcmVlcyB0aGUgbWVtb3J5IGFzc29jaWF0ZWQgd2l0aCB0aGUgbGlzdCBpdHNlbGYuCiAgICAg
IC0tICBZb3Ugc2hvdWxkIG9ubHkgdXNlIHRoaXMgZnVuY3Rpb24gb24gdGhlIGxpc3RzIHRoYXQK
ICAgICAgLS0gIHlvdSBoYXZlIGNyZWF0ZWQgeW91cnNlbGYsIG5vdCBvbiB0aGUgbGlzdCB0aGF0
IGFyZSByZXR1cm5lZCBieSBzb21lCiAgICAgIC0tICBmdW5jdGlvbnMgaW4gR3RrQWRhIChsaWtl
IEd0ay5DbGlzdC5HZXRfU2VsZWN0aW9uKS4gVGhlc2UgZnVuY3Rpb25zCiAgICAgIC0tICByZXR1
cm4gZGlyZWN0bHkgdGhlIGxpc3QgbWFuYWdlZCBieSB0aGUgdW5kZXJseWluZyBDIHdpZGdldCwg
YW5kIHlvdQogICAgICAtLSAgc2hvdWxkIG5ldmVyIGZyZWUgdGhlIHJlc3VsdCB5b3Vyc2VsZi4K
ICAgICAgLS0KICAgICAgLS0gIE5vdGUgYWxzbyB0aGF0IHRoZSBtZW1vcnkgbWlnaHQgbm90IGJl
IGFjdHVhbGx5IGZyZWVkLiBGb3IgZWZmaWNpZW5jeQogICAgICAtLSAgcmVhc29ucywgR3RrQWRh
IHdpbGwga2VlcCB0aGUgbWVtb3J5IGFsbG9jYXRlZCBhbmQgdHJ5IHRvIHJldXNlIGl0IGFzCiAg
ICAgIC0tICBtdWNoIGFzIHBvc3NpYmxlLgoKICAgICAgZnVuY3Rpb24gR2V0X0RhdGEgKExpc3Qg
OiBpbiBHbGlzdCkgcmV0dXJuIEdwb2ludGVyOwogICAgICAtLSAgUmV0dXJuIHRoZSB2YWx1ZSBw
b2ludGVkIHRvIGJ5IExpc3QuCiAgICAgIC0tICBUaGUgU3lzdGVtLkFkZHJlc3MgY29udGFpbmVy
IGluIHRoZSBDIGxpc3QgaXMgY29udmVydGVkIHRvIGEgR3BvaW50ZXIKICAgICAgLS0gIHRocm91
Z2ggYSBjYWxsIHRvIENvbnZlcnQuCgogICAgICBmdW5jdGlvbiBHZXRfRGF0YV9BZGRyZXNzIChM
aXN0IDogaW4gR2xpc3QpIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgLS0gIFJldHVybiBk
aXJlY3RseSB0aGUgU3lzdGVtLkFkZHJlc3MgY29udGFpbmVkIGluIHRoZSBDIGxpc3QuCiAgICAg
IC0tICBUaGlzIGlzIHVzZWQgbWFpbmx5IGludGVybmFsbHkgaW4gR3RrQWRhIHRvIGltcGxlbWVu
dCBTdHJpbmcgbGlzdHMsCiAgICAgIC0tICBhbmQgeW91IHNob3VsZCBub3QgaGF2ZSB0byB1c2Ug
dGhpcyBzdWJwcm9ncmFtIHlvdXJzZWxmLgoKICAgICAgLS0gIDxkb2NfaWdub3JlPgogICAgICBm
dW5jdGlvbiBHZXRfR3BvaW50ZXIgKExpc3QgOiBpbiBHbGlzdCkgcmV0dXJuIEdwb2ludGVyOwog
ICAgICAtLSAgU29tZXRpbWVzLCB0aGUgZGF0YSBpcyBub3Qgc3RvcmVkIGluIHRoZSAiZGF0YSIg
ZmllbGQKICAgICAgLS0gIG9mIGVhY2ggY2VsbCwgYnV0IHJhdGhlciBhdCBlYWNoIGNlbGwuIElu
IHN1Y2ggY2FzZXMsCiAgICAgIC0tICB0byByZXRyaWV2ZSB0aGUgYWRkcmVzcyBvZiB0aGUgZGF0
YSwgd2UgbmVlZCB0byByZXR1cm4KICAgICAgLS0gIHRoZSBhZGRyZXNzIG9mIHRoZSBjZWxsIGl0
c2VsZiwgaW5zdGVkIG9mIHRoZSBhZGRyZXNzCiAgICAgIC0tICBwb2ludGVkIHRvIGJ5IGRhdGEu
CiAgICAgIC0tCiAgICAgIC0tICBFeDogdGhlIEd0a0NUcmVlIHJvd19saXN0LgogICAgICAtLSAg
PC9kb2NfaWdub3JlPgoKICAgICAgZnVuY3Rpb24gSW5kZXggKExpc3QgOiBpbiBHbGlzdDsKICAg
ICAgICAgICAgICAgICAgICAgIERhdGEgOiBpbiBHcG9pbnRlcikKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEdpbnQ7CiAgICAgIC0tICBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBl
bGVtZW50IGluIExJU1QgdGhhdCBjb250YWlucyBEYXRhLgogICAgICAtLSAgTm90ZSB0aGF0IHRo
aXMgZnVuY3Rpb24gaXMgaXJyZWxldmFudCBpZiBDb252ZXJ0IGRvZXMgbm90IHJldHVybiB0aGUK
ICAgICAgLS0gIHNhbWUgdmFsdWUgZm9yIHR3byBpZGVudGljYWwgZGF0YS4KCiAgICAgIGZ1bmN0
aW9uIExhc3QgKExpc3QgOiBpbiBHbGlzdCkgcmV0dXJuIEdsaXN0OwogICAgICAtLSAgUmV0dXJu
IHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGxpc3QuCgogICAgICBmdW5jdGlvbiBMZW5ndGggKExp
c3QgOiBpbiBHbGlzdCkgcmV0dXJuIEd1aW50OwogICAgICAtLSAgUmV0dXJuIHRoZSBudW1iZXIg
b2YgZWxlbWVudHMgaW4gdGhlIGxpc3QuCiAgICAgIC0tICBUaGUgbGFzdCBpdGVtJ3MgaW5kZXgg
aXMgTGVuZ3RoIC0gMS4KCiAgICAgIHByb2NlZHVyZSBMaXN0X1JldmVyc2UgKExpc3QgOiBpbiBv
dXQgR2xpc3QpOwogICAgICAtLSAgUmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlIGxpc3QgKHRoZSBs
YXN0IGl0ZW0gYmVjb21lcyB0aGUgZmlyc3QsIGV0Yy4pCgogICAgICBmdW5jdGlvbiBOZXh0IChM
aXN0IDogaW4gR2xpc3QpIHJldHVybiBHbGlzdDsKICAgICAgLS0gIFJldHVybnMgdGhlIEl0ZW0g
Zm9sbG93aW5nIExJU1QgaW4gdGhlIGdsb2JhbCBsaXN0IHRoYXQgY29udGFpbnMKICAgICAgLS0g
IGJvdGguCiAgICAgIC0tICBJZiB0aGVyZSBpcyBubyBzdWNoIGl0ZW0sIHJldHVybiBOdWxsX0xp
c3QuIFRoaXMgaXMgaG93IHlvdQogICAgICAtLSAgc3RvcCBpdGVyYXRpbmcgb3ZlciBhIGxpc3Qu
CgogICAgICBmdW5jdGlvbiBOdGggKExpc3QgOiBpbiBHbGlzdDsKICAgICAgICAgICAgICAgICAg
ICBOICAgIDogaW4gR3VpbnQpCiAgICAgICAgICAgICAgICAgICByZXR1cm4gR2xpc3Q7CiAgICAg
IC0tICBHaXZlIHRoZSBudGggaXRlbSBmb2xsb3dpbmcgTElTVCBpbiB0aGUgZ2xvYmFsIGxpc3Qg
dGhhdAogICAgICAtLSAgY29udGFpbnMgYm90aC4KICAgICAgLS0gIElmIHRoZXJlIGlzIG5vIHN1
Y2ggaXRlbSwgcmV0dXJuIE51bGxfTGlzdC4KCiAgICAgIGZ1bmN0aW9uIE50aF9EYXRhIChMaXN0
IDogaW4gR2xpc3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICBOIDogaW4gR3VpbnQpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBHcG9pbnRlcjsKICAgICAgLS0gIFJldHVybiB0aGUg
RGF0YSBjb250YWluZWQgaW4gdGhlIE4tdGggaXRlbSBvZiBMaXN0LgogICAgICAtLSAgVGhlIHJl
c3VsdCBpcyB1bmRlZmluZWQgaWYgdGhlcmUgaXMgbm8gc3VjaCBpdGVtIGluIHRoZSBsaXN0Lgog
ICAgICAtLSAgVGhlIGFjdHVhbCByZXN1bHQgaW4gdGhhdCBjYXNlIGlzIHRoZSByZXN1bHQgb2YK
ICAgICAgLS0gICAgICBDb252ZXJ0IChTeXN0ZW0uTnVsbF9BZGRyZXNzKTsKICAgICAgLS0gIHdo
aWNoIG1pZ2h0IG5vdCBtZWFuIGFueXRoaW5nLgoKICAgICAgZnVuY3Rpb24gUG9zaXRpb24gKExp
c3QgOiBpbiBHbGlzdDsKICAgICAgICAgICAgICAgICAgICAgICAgIExpbmsgOiBpbiBHbGlzdCkK
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdpbnQ7CiAgICAgIC0tICBSZXR1cm4gdGhl
IHBvc2l0aW9uIG9mIExpbmsgaW4gdGhlIExpc3QuCiAgICAgIC0tICBJZiBMaW5rIGlzIG5vdCBj
b250YWluZWQgaW4gdGhlIGxpc3QsIC0xIGlzIHJldHVybmVkLgoKICAgICAgcHJvY2VkdXJlIFBy
ZXBlbmQgKExpc3QgOiBpbiBvdXQgR2xpc3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICBEYXRh
IDogaW4gR3BvaW50ZXIpOwogICAgICAtLSAgQWRkIGFuIGl0ZW0gYXQgdGhlIGJlZ2lubmluZyBv
ZiB0aGUgbGlzdC4KICAgICAgLS0gIFRoaXMgb3BlcmF0aW9uIGFsd2F5cyBzdWNjZWVkLgoKICAg
ICAgZnVuY3Rpb24gUHJldiAoTGlzdCA6IGluIEdsaXN0KSByZXR1cm4gR2xpc3Q7CiAgICAgIC0t
ICBSZXR1cm4gdGhlIGl0ZW0gYmVmb3JlIExpc3QgaW4gdGhlIGdsb2JhbCBsaXN0IHRoYXQgY29u
dGFpbnMgYm90aC4KICAgICAgLS0gIFJldHVybiBOdWxsX0xpc3QgaWYgdGhlcmUgaXMgbm8gc3Vj
aCBpdGVtLgoKICAgICAgcHJvY2VkdXJlIFJlbW92ZSAoTGlzdCA6IGluIG91dCBHbGlzdDsKICAg
ICAgICAgICAgICAgICAgICAgICAgRGF0YSA6IGluIEdwb2ludGVyKTsKICAgICAgLS0gIFJlbW92
ZSB0aGUgZmlyc3QgaXRlbSBpbiBMaXN0IHRoYXQgY29udGFpbnMgRGF0YS4KICAgICAgLS0gIE5v
dGUgdGhhdCB0aGlzIG9wZXJhdGlvbiBjYW4gc3VjY2VlZCBvbmx5IGlmIENvbnZlcnQgYWx3YXlz
IHJldHVybgogICAgICAtLSAgdGhlIHNhbWUgYWRkcmVzcyBmb3IgYSBnaXZlbiB2YWx1ZS4KCiAg
ICAgIHByb2NlZHVyZSBSZW1vdmVfTGluayAoTGlzdCA6IGluIG91dCBHbGlzdDsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMaW5rIDogaW4gR2xpc3QpOwogICAgICAtLSAgUmVtb3ZlIExp
bmsgZnJvbSB0aGUgbGlzdCB0byB3aGljaCBpdCBiZWxvbmdzLgogICAgICAtLSAgSWYgdGhhdCBs
aXN0IGlzIG5vdCBMaXN0LCBubyBlcnJvciBpcyByZXR1cm5lZCwgYnV0IExpbmsgaXMgcmVtb3Zl
ZAogICAgICAtLSAgYW55d2F5LgoKICAgICAgZnVuY3Rpb24gSXNfQ3JlYXRlZCAoTGlzdCA6IGlu
IEdsaXN0KSByZXR1cm4gQm9vbGVhbjsKICAgICAgLS0gIFJldHVybiBUcnVlIGlmIHRoZXJlIGlz
IGEgQyB3aWRnZXQgYXNzb2NpYXRlZCB3aXRoIExpc3QuCgogICAgICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KICAgICAgLS0gSW50ZXJuYWwgZnVuY3Rpb25zIC0tCiAgICAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogICAgICAtLSAgUGxlYXNlIGRvIG5vdCB1c2UgdGhlIGZvbGxvd2luZyBm
dW5jdGlvbnMuIFRoZXkgYXJlIHVzZWQgaW50ZXJuYWxseQogICAgICAtLSAgYnkgR3RrQWRhLgog
ICAgICAtLSAgPGRvY19pZ25vcmU+CgogICAgICBmdW5jdGlvbiBHZXRfT2JqZWN0IChPYmogOiBp
biBHbGlzdCkgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICAtLSAgUmV0dXJucyB0aGUgQyBv
YmplY3QgY29udGFpbmVkIGluIE9CSi4KICAgICAgcHJhZ21hIElubGluZSAoR2V0X09iamVjdCk7
CgogICAgICBwcm9jZWR1cmUgU2V0X09iamVjdCAoT2JqIDogaW4gb3V0IEdsaXN0OyBWYWx1ZSAg
OiBpbiBTeXN0ZW0uQWRkcmVzcyk7CiAgICAgIC0tICBNb2RpZmllcyB0aGUgQyBvYmplY3QgY29u
dGFpbmVkIGluIE9CSi4KICAgICAgcHJhZ21hIElubGluZSAoU2V0X09iamVjdCk7CgogICAgICAt
LSAgPC9kb2NfaWdub3JlPgoKICAgcHJpdmF0ZQoKICAgICAgdHlwZSBHbGlzdCBpcwogICAgICAg
ICByZWNvcmQKICAgICAgICAgICAgUHRyIDogU3lzdGVtLkFkZHJlc3MgOj0gU3lzdGVtLk51bGxf
QWRkcmVzczsKICAgICAgICAgZW5kIHJlY29yZDsKICAgICAgTnVsbF9MaXN0IDogY29uc3RhbnQg
R2xpc3QgOj0gKFB0ciA9PiBTeXN0ZW0uTnVsbF9BZGRyZXNzKTsKICAgZW5kIEdlbmVyaWNfTGlz
dDsKCmVuZCBHbGliLkdsaXN0OwoKLS0gIDxleGFtcGxlPgotLSAgPGluY2x1ZGU+Li4vZXhhbXBs
ZXMvZG9jdW1lbnRhdGlvbi9nbGlzdF90cmF2ZXJzZS5hZGI8L2luY2x1ZGU+Ci0tICA8L2V4YW1w
bGU+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9y
IHRoZSBHaW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAg
ICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1
ZCBDaGFybGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAg
ICAgICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0t
Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAg
IC0tCi0tIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRp
b24sIGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMg
dW5pdCwgb3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBh
biAgIC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1
c2UgIHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5v
dCBob3dldmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4
ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5z
ZS4gICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpwYWNrYWdlIGJvZHkgR2xpYi5HU2xpc3QgaXMKCiAg
IHBhY2thZ2UgYm9keSBHZW5lcmljX1NMaXN0IGlzCiAgICAgIC0tLS0tLS0tLS0tCiAgICAgIC0t
IEFsbG9jIC0tCiAgICAgIC0tLS0tLS0tLS0tCgogICAgICBwcm9jZWR1cmUgQWxsb2MgKExpc3Qg
OiBvdXQgR1NsaXN0KSBpcwogICAgICAgICBmdW5jdGlvbiBJbnRlcm5hbCByZXR1cm4gU3lzdGVt
LkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19zbGlzdF9h
bGxvYyIpOwogICAgICBiZWdpbgogICAgICAgICBTZXRfT2JqZWN0IChMaXN0LCBJbnRlcm5hbCk7
CiAgICAgIGVuZCBBbGxvYzsKCiAgICAgIC0tLS0tLS0tLS0tLQogICAgICAtLSBBcHBlbmQgLS0K
ICAgICAgLS0tLS0tLS0tLS0tCgogICAgICBwcm9jZWR1cmUgQXBwZW5kCiAgICAgICAgKExpc3Qg
OiBpbiBvdXQgR1NsaXN0OwogICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIpCiAgICAgIGlzCiAg
ICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBEYXRhIDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBv
cnQgKEMsIEludGVybmFsLCAiZ19zbGlzdF9hcHBlbmQiKTsKICAgICAgYmVnaW4KICAgICAgICAg
U2V0X09iamVjdCAoTGlzdCwgSW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVydCAoRGF0YSkpKTsKICAgICAgZW5kIEFw
cGVuZDsKCiAgICAgIC0tLS0tLS0tLS0tLQogICAgICAtLSBDb25jYXQgLS0KICAgICAgLS0tLS0t
LS0tLS0tCgogICAgICBmdW5jdGlvbiBDb25jYXQKICAgICAgICAoTGlzdDEgOiBpbiBHU2xpc3Q7
CiAgICAgICAgIExpc3QyIDogaW4gR1NsaXN0KQogICAgICAgICByZXR1cm4gR1NsaXN0CiAgICAg
IGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0MSA6IFN5c3RlbS5BZGRyZXNzOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdDIgOiBTeXN0ZW0uQWRkcmVzcykKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgcHJh
Z21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJnX3NsaXN0X2FwcGVuZCIpOwogICAgICAgICBUbXAg
OiBHU2xpc3Q7CiAgICAgIGJlZ2luCiAgICAgICAgIFNldF9PYmplY3QgKFRtcCwgSW50ZXJuYWwg
KEdldF9PYmplY3QgKExpc3QxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R2V0X09iamVjdCAoTGlzdDIpKSk7CiAgICAgICAgIHJldHVybiBUbXA7CiAgICAgIGVuZCBDb25j
YXQ7CgogICAgICAtLS0tLS0tLS0tLS0tLQogICAgICAtLSBHZXRfRGF0YSAtLQogICAgICAtLS0t
LS0tLS0tLS0tLQoKICAgICAgZnVuY3Rpb24gR2V0X0RhdGEgKExpc3QgOiBpbiBHU2xpc3QpCiAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR3BvaW50ZXIKICAgICAgaXMKICAgICAgICAg
ZnVuY3Rpb24gSW50ZXJuYWwgKExpc3QgOiBTeXN0ZW0uQWRkcmVzcykgcmV0dXJuIFN5c3RlbS5B
ZGRyZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImFkYV9nc2xpc3Rf
Z2V0X2RhdGEiKTsKICAgICAgYmVnaW4KICAgICAgICAgcmV0dXJuIENvbnZlcnQgKEludGVybmFs
IChHZXRfT2JqZWN0IChMaXN0KSkpOwogICAgICBlbmQgR2V0X0RhdGE7CgogICAgICAtLS0tLS0t
LS0tLS0KICAgICAgLS0gSW5zZXJ0IC0tCiAgICAgIC0tLS0tLS0tLS0tLQoKICAgICAgcHJvY2Vk
dXJlIEluc2VydAogICAgICAgIChMaXN0ICAgICA6IGluIG91dCBHU2xpc3Q7CiAgICAgICAgIERh
dGEgICAgIDogaW4gICAgIEdwb2ludGVyOwogICAgICAgICBQb3NpdGlvbiA6IGluICAgICBHaW50
KQogICAgICBpcwogICAgICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRy
ZXNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA6IFN5c3RlbS5BZGRyZXNzOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zICA6IEdpbnQpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQg
KEMsIEludGVybmFsLCAiZ19zbGlzdF9pbnNlcnQiKTsKICAgICAgYmVnaW4KICAgICAgICAgU2V0
X09iamVjdCAoTGlzdCwgSW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVydCAoRGF0YSksIFBvc2l0aW9uKSk7CiAgICAg
IGVuZCBJbnNlcnQ7CgogICAgICAtLS0tLS0tLS0tCiAgICAgIC0tIEZpbmQgLS0KICAgICAgLS0t
LS0tLS0tLQoKICAgICAgZnVuY3Rpb24gRmluZAogICAgICAgIChMaXN0IDogaW4gR1NsaXN0Owog
ICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIpCiAgICAgICAgIHJldHVybiBHU2xpc3QKICAgICAg
aXMKICAgICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKExpc3QgOiBTeXN0ZW0uQWRkcmVzczsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgOiBTeXN0ZW0uQWRkcmVzcykKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgcHJhZ21h
IEltcG9ydCAoQywgSW50ZXJuYWwsICJnX3NsaXN0X2ZpbmQiKTsKICAgICAgICAgVG1wIDogR1Ns
aXN0OwogICAgICBiZWdpbgogICAgICAgICBTZXRfT2JqZWN0IChUbXAsIEludGVybmFsIChHZXRf
T2JqZWN0IChMaXN0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVy
dCAoRGF0YSkpKTsKICAgICAgICAgcmV0dXJuIFRtcDsKICAgICAgZW5kIEZpbmQ7CgogICAgICAt
LS0tLS0tLS0tCiAgICAgIC0tIEZyZWUgLS0KICAgICAgLS0tLS0tLS0tLQoKICAgICAgcHJvY2Vk
dXJlIEZyZWUgKExpc3QgOiBpbiBvdXQgR1NsaXN0KSBpcwogICAgICAgICBwcm9jZWR1cmUgSW50
ZXJuYWwgKExpc3QgOiBTeXN0ZW0uQWRkcmVzcyk7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMs
IEludGVybmFsLCAiZ19zbGlzdF9mcmVlIik7CiAgICAgIGJlZ2luCiAgICAgICAgIEludGVybmFs
IChHZXRfT2JqZWN0IChMaXN0KSk7CiAgICAgIGVuZCBGcmVlOwoKICAgICAgLS0tLS0tLS0tLS0t
LS0tLQogICAgICAtLSBHZXRfT2JqZWN0IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0KCiAgICAg
IGZ1bmN0aW9uIEdldF9PYmplY3QgKE9iaiA6IGluIEdTbGlzdCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzIGlzCiAgICAgIGJlZ2luCiAgICAgICAgIHJl
dHVybiBPYmouUHRyOwogICAgICBlbmQgR2V0X09iamVjdDsKCiAgICAgIC0tLS0tLS0tLS0tCiAg
ICAgIC0tIEluZGV4IC0tCiAgICAgIC0tLS0tLS0tLS0tCgogICAgICBmdW5jdGlvbiBJbmRleAog
ICAgICAgIChMaXN0IDogaW4gR1NsaXN0OwogICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIpCiAg
ICAgICAgIHJldHVybiBHaW50CiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChM
aXN0IDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhIDog
U3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2ludDsK
ICAgICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJnX3NsaXN0X2luZGV4Iik7CiAg
ICAgIGJlZ2luCiAgICAgICAgIHJldHVybiBJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlzdCksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVydCAoRGF0YSkpOwogICAgICBlbmQgSW5kZXg7
CgogICAgICAtLS0tLS0tLS0tCiAgICAgIC0tIExhc3QgLS0KICAgICAgLS0tLS0tLS0tLQoKICAg
ICAgZnVuY3Rpb24gTGFzdCAoTGlzdCA6IGluIEdTbGlzdCkgcmV0dXJuIEdTbGlzdCBpcwogICAg
ICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEg
SW1wb3J0IChDLCBJbnRlcm5hbCwgImdfc2xpc3RfbGFzdCIpOwogICAgICAgICBUbXAgOiBHU2xp
c3Q7CiAgICAgIGJlZ2luCiAgICAgICAgIFNldF9PYmplY3QgKFRtcCwgSW50ZXJuYWwgKEdldF9P
YmplY3QgKExpc3QpKSk7CiAgICAgICAgIHJldHVybiBUbXA7CiAgICAgIGVuZCBMYXN0OwoKICAg
ICAgLS0tLS0tLS0tLS0tCiAgICAgIC0tIExlbmd0aCAtLQogICAgICAtLS0tLS0tLS0tLS0KCiAg
ICAgIGZ1bmN0aW9uIExlbmd0aCAoTGlzdCA6IGluIEdTbGlzdCkgcmV0dXJuIEd1aW50IGlzCiAg
ICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gR3VpbnQ7CiAgICAgICAgIHByYWdtYSBJbXBvcnQg
KEMsIEludGVybmFsLCAiZ19zbGlzdF9sZW5ndGgiKTsKICAgICAgYmVnaW4KICAgICAgICAgcmV0
dXJuIEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSk7CiAgICAgIGVuZCBMZW5ndGg7CgogICAg
ICAtLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gTGlzdF9SZXZlcnNlIC0tCiAgICAgIC0tLS0t
LS0tLS0tLS0tLS0tLQoKICAgICAgcHJvY2VkdXJlIExpc3RfUmV2ZXJzZSAoTGlzdCA6IGluIG91
dCBHU2xpc3QpIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFk
ZHJlc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7
CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19zbGlzdF9yZXZlcnNlIik7
CiAgICAgIGJlZ2luCiAgICAgICAgIFNldF9PYmplY3QgKExpc3QsIEludGVybmFsIChHZXRfT2Jq
ZWN0IChMaXN0KSkpOwogICAgICBlbmQgTGlzdF9SZXZlcnNlOwoKICAgICAgLS0tLS0tLS0tLQog
ICAgICAtLSBOZXh0IC0tCiAgICAgIC0tLS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIE5leHQgKExp
c3QgOiBpbiBHU2xpc3QpIHJldHVybiBHU2xpc3QgaXMKICAgICAgICAgZnVuY3Rpb24gSW50ZXJu
YWwgKExpc3QgOiBTeXN0ZW0uQWRkcmVzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWws
ICJhZGFfZ3NsaXN0X25leHQiKTsKICAgICAgICAgVG1wIDogR1NsaXN0OwogICAgICBiZWdpbgog
ICAgICAgICBTZXRfT2JqZWN0IChUbXAsIEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSkpOwog
ICAgICAgICByZXR1cm4gVG1wOwogICAgICBlbmQgTmV4dDsKCiAgICAgIC0tLS0tLS0tLQogICAg
ICAtLSBOdGggLS0KICAgICAgLS0tLS0tLS0tCgogICAgICBmdW5jdGlvbiBOdGgKICAgICAgICAo
TGlzdCA6IGluIEdTbGlzdDsKICAgICAgICAgTiAgICA6IGluIEd1aW50KQogICAgICAgICByZXR1
cm4gR1NsaXN0CiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lz
dGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOICAgIDogR3VpbnQpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAg
IHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19zbGlzdF9udGgiKTsKICAgICAgICAgVG1w
IDogR1NsaXN0OwogICAgICBiZWdpbgogICAgICAgICBTZXRfT2JqZWN0IChUbXAsIEludGVybmFs
IChHZXRfT2JqZWN0IChMaXN0KSwgTikpOwogICAgICAgICByZXR1cm4gVG1wOwogICAgICBlbmQg
TnRoOwoKICAgICAgLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gTnRoX0RhdGEgLS0KICAgICAgLS0t
LS0tLS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIE50aF9EYXRhCiAgICAgICAgKExpc3QgOiBpbiBH
U2xpc3Q7CiAgICAgICAgIE4gICAgOiBpbiBHdWludCkKICAgICAgICAgcmV0dXJuIEdwb2ludGVy
CiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJl
c3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOICAgIDogR3VpbnQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJ
bXBvcnQgKEMsIEludGVybmFsLCAiZ19zbGlzdF9udGhfZGF0YSIpOwogICAgICBiZWdpbgogICAg
ICAgICByZXR1cm4gQ29udmVydCAoSW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpLCBOKSk7CiAg
ICAgIGVuZCBOdGhfRGF0YTsKCiAgICAgIC0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIFBvc2l0aW9u
IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tCgogICAgICBmdW5jdGlvbiBQb3NpdGlvbgogICAgICAg
IChMaXN0IDogaW4gR1NsaXN0OwogICAgICAgICBMaW5rIDogaW4gR1NsaXN0KQogICAgICAgICBy
ZXR1cm4gR2ludAogICAgICBpcwogICAgICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5
c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluayA6IFN5c3RlbS5B
ZGRyZXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdpbnQ7CiAgICAgICAg
IHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19zbGlzdF9wb3NpdGlvbiIpOwogICAgICBi
ZWdpbgogICAgICAgICByZXR1cm4gSW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpLCBHZXRfT2Jq
ZWN0IChMaW5rKSk7CiAgICAgIGVuZCBQb3NpdGlvbjsKCiAgICAgIC0tLS0tLS0tLS0tLS0KICAg
ICAgLS0gUHJlcGVuZCAtLQogICAgICAtLS0tLS0tLS0tLS0tCgogICAgICBwcm9jZWR1cmUgUHJl
cGVuZAogICAgICAgIChMaXN0IDogaW4gb3V0IEdTbGlzdDsKICAgICAgICAgRGF0YSA6IGluIEdw
b2ludGVyKQogICAgICBpcwogICAgICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3Rl
bS5BZGRyZXNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA6IFN5c3RlbS5BZGRy
ZXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwog
ICAgICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImdfc2xpc3RfcHJlcGVuZCIpOwog
ICAgICBiZWdpbgogICAgICAgICBTZXRfT2JqZWN0IChMaXN0LCBJbnRlcm5hbCAoR2V0X09iamVj
dCAoTGlzdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJ0IChE
YXRhKSkpOwogICAgICBlbmQgUHJlcGVuZDsKCiAgICAgIC0tLS0tLS0tLS0tLQogICAgICAtLSBS
ZW1vdmUgLS0KICAgICAgLS0tLS0tLS0tLS0tCgogICAgICBwcm9jZWR1cmUgUmVtb3ZlCiAgICAg
ICAgKExpc3QgOiBpbiBvdXQgR1NsaXN0OwogICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIpCiAg
ICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3M7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhIDogU3lzdGVtLkFkZHJlc3MpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHBy
YWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19zbGlzdF9yZW1vdmUiKTsKICAgICAgYmVnaW4K
ICAgICAgICAgU2V0X09iamVjdCAoTGlzdCwgSW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVydCAoRGF0YSkpKTsKICAg
ICAgZW5kIFJlbW92ZTsKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIFJlbW92ZV9M
aW5rIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tCgogICAgICBwcm9jZWR1cmUgUmVtb3ZlX0xp
bmsKICAgICAgICAoTGlzdCA6IGluIG91dCBHU2xpc3Q7CiAgICAgICAgIExpbmsgOiBpbiBHU2xp
c3QpCiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFk
ZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5rIDogU3lzdGVtLkFkZHJlc3Mp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAg
ICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19zbGlzdF9yZW1vdmVfbGluayIpOwog
ICAgICBiZWdpbgogICAgICAgICBTZXRfT2JqZWN0IChMaXN0LCBJbnRlcm5hbCAoR2V0X09iamVj
dCAoTGlzdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRfT2JqZWN0
IChMaW5rKSkpOwogICAgICBlbmQgUmVtb3ZlX0xpbms7CgogICAgICAtLS0tLS0tLS0tLS0tLS0t
CiAgICAgIC0tIFNldF9PYmplY3QgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgcHJv
Y2VkdXJlIFNldF9PYmplY3QgKE9iaiAgIDogaW4gb3V0IEdTbGlzdDsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFZhbHVlIDogaW4gICAgIFN5c3RlbS5BZGRyZXNzKSBpcwogICAgICBiZWdp
bgogICAgICAgICBPYmouUHRyIDo9IFZhbHVlOwogICAgICBlbmQgU2V0X09iamVjdDsKCiAgIGVu
ZCBHZW5lcmljX1NMaXN0OwplbmQgR2xpYi5HU2xpc3Q7CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAg
ICAgICBHdGtBZGEgLSBBZGE5NSBiaW5kaW5nIGZvciB0aGUgR2ltcCBUb29sa2l0ICAgICAgICAg
ICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAo
QykgMTk5OC0yMDAwICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgRW1tYW51ZWwg
QnJpb3QsIEpvZWwgQnJvYmVja2VyIGFuZCBBcm5hdWQgQ2hhcmxldCAgICAgICAgICAtLQotLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yICAgICAtLQotLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAgICAgICAtLQotLSBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgICAgICAtLQot
LSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgICAtLQotLSBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAt
LQotLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVSAtLQotLSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAg
ICAtLQotLSBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRv
IHRoZSAgICAgICAgICAgICAtLQotLSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5
IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgICAgICAtLQotLSBCb3N0b24sIE1BIDAyMTExLTEz
MDcsIFVTQS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCBpZiBvdGhlciBmaWxlcyBpbnN0YW50
aWF0ZSBnZW5lcmljcyBmcm9tICAtLQotLSB0aGlzIHVuaXQsIG9yIHlvdSBsaW5rIHRoaXMgdW5p
dCB3aXRoIG90aGVyIGZpbGVzIHRvIHByb2R1Y2UgYW4gICAtLQotLSBleGVjdXRhYmxlLCB0aGlz
ICB1bml0ICBkb2VzIG5vdCAgYnkgaXRzZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5nICAtLQotLSBl
eGVjdXRhYmxlIHRvIGJlIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
LiBUaGlzICAtLQotLSBleGNlcHRpb24gZG9lcyBub3QgaG93ZXZlciBpbnZhbGlkYXRlIGFueSBv
dGhlciByZWFzb25zIHdoeSB0aGUgICAtLQotLSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJlIGNv
dmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAgICAtLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK
LS0gIDxkZXNjcmlwdGlvbj4KLS0KLS0gIFRoaXMgcGFja2FnZXMgcHJvdmlkZXMgdGhlIGltcGxl
bWVudGF0aW9uIG9mIGEgZ2VuZXJpYyBzaW5nbGUtbGlua2VkCi0tICBsaXN0LgotLSAgT25lIGlu
c3RhbnRpYXRpb24gaXMgZm91bmQgaW4gR3RrLldpZGdldC5XaWRnZXRfU2xpc3QgZm9yIGEgbGlz
dCBvZgotLSAgd2lkZ2V0cy4KLS0KLS0gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiBHbGliLkds
aXN0IGZvciBtb3JlIGluZm9ybWF0aW9uLCBpdCBwcm92aWRlcwotLSAgdGhlIHNhbWUgQVBJIGFz
IHRoaXMgcGFja2FnZS4KLS0gIFNpbmdsZSBsaW5rZWQgbGlzdHMgYXJlIHRyYXZlcnNlZCB0aGUg
c2FtZSB3YXkgYXMgZG91YmxlLWxpbmtlZCBsaXN0cywKLS0gIGV2ZW4gdGhvdWdoIG1vc3Qgc3Vi
cHJvZ3JhbXMgYXJlIGxlc3MgZWZmaWNpZW50IHRoYW4gdGhlaXIKLS0gIGRvdWJsZS1saW5rZWQg
Y291bnRlcnBhcnRzLgotLQotLSAgPC9kZXNjcmlwdGlvbj4KLS0gIDxjX3ZlcnNpb24+MS4yLjY8
L2NfdmVyc2lvbj4KCndpdGggU3lzdGVtOwoKcGFja2FnZSBHbGliLkdTbGlzdCBpcwoKICAgLS0g
IDxkb2NfaWdub3JlPgoKICAgZ2VuZXJpYwogICAgICB0eXBlIEdwb2ludGVyICg8PikgaXMgcHJp
dmF0ZTsKICAgICAgd2l0aCBmdW5jdGlvbiBDb252ZXJ0IChQIDogR3BvaW50ZXIpIHJldHVybiBT
eXN0ZW0uQWRkcmVzcyBpcyA8PjsKICAgICAgd2l0aCBmdW5jdGlvbiBDb252ZXJ0IChTIDogU3lz
dGVtLkFkZHJlc3MpIHJldHVybiBHcG9pbnRlciBpcyA8PjsKICAgcGFja2FnZSBHZW5lcmljX1NM
aXN0IGlzCgogICAgICB0eXBlIEdTbGlzdCBpcyBwcml2YXRlOwogICAgICBOdWxsX0xpc3QgOiBj
b25zdGFudCBHU2xpc3Q7CgogICAgICBwcm9jZWR1cmUgQWxsb2MgKExpc3QgOiBvdXQgR1NsaXN0
KTsKICAgICAgcHJvY2VkdXJlIEFwcGVuZCAoTGlzdCA6IGluIG91dCBHU2xpc3Q7CiAgICAgICAg
ICAgICAgICAgICAgICAgIERhdGEgOiBpbiBHcG9pbnRlcik7CiAgICAgIGZ1bmN0aW9uIENvbmNh
dCAoTGlzdDEgOiBpbiBHU2xpc3Q7CiAgICAgICAgICAgICAgICAgICAgICAgTGlzdDIgOiBpbiBH
U2xpc3QpCiAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdTbGlzdDsKICAgICAgcHJvY2Vk
dXJlIEluc2VydCAoTGlzdCA6IGluIG91dCBHU2xpc3Q7CiAgICAgICAgICAgICAgICAgICAgICAg
IERhdGEgOiBpbiBHcG9pbnRlcjsKICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gOiBp
biBHaW50KTsKICAgICAgZnVuY3Rpb24gRmluZCAoTGlzdCA6IGluIEdTbGlzdDsKICAgICAgICAg
ICAgICAgICAgICAgRGF0YSA6IGluIEdwb2ludGVyKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gR1NsaXN0OwogICAgICBwcm9jZWR1cmUgRnJlZSAoTGlzdCA6IGluIG91dCBHU2xpc3QpOwog
ICAgICBmdW5jdGlvbiBHZXRfRGF0YSAoTGlzdCA6IGluIEdTbGlzdCkKICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBHcG9pbnRlcjsKICAgICAgZnVuY3Rpb24gSW5kZXggKExpc3QgOiBp
biBHU2xpc3Q7CiAgICAgICAgICAgICAgICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIpCiAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gR2ludDsKICAgICAgZnVuY3Rpb24gTGFzdCAoTGlzdCA6
IGluIEdTbGlzdCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdTbGlzdDsKICAgICAgZnVu
Y3Rpb24gTGVuZ3RoIChMaXN0IDogaW4gR1NsaXN0KQogICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBHdWludDsKICAgICAgcHJvY2VkdXJlIExpc3RfUmV2ZXJzZSAoTGlzdCA6IGluIG91dCBH
U2xpc3QpOwogICAgICBmdW5jdGlvbiBOZXh0IChMaXN0IDogaW4gR1NsaXN0KQogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gR1NsaXN0OwogICAgICBmdW5jdGlvbiBOdGggKExpc3QgOiBpbiBH
U2xpc3Q7CiAgICAgICAgICAgICAgICAgICAgTiAgICA6IGluIEd1aW50KQogICAgICAgICAgICAg
ICAgICAgIHJldHVybiBHU2xpc3Q7CiAgICAgIGZ1bmN0aW9uIE50aF9EYXRhIChMaXN0IDogaW4g
R1NsaXN0OwogICAgICAgICAgICAgICAgICAgICAgICAgTiA6IGluIEd1aW50KQogICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIEdwb2ludGVyOwogICAgICBmdW5jdGlvbiBQb3NpdGlvbiAo
TGlzdCA6IGluIEdTbGlzdDsKICAgICAgICAgICAgICAgICAgICAgICAgIExpbmsgOiBpbiBHU2xp
c3QpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2ludDsKICAgICAgcHJvY2VkdXJl
IFByZXBlbmQgKExpc3QgOiBpbiBvdXQgR1NsaXN0OwogICAgICAgICAgICAgICAgICAgICAgICAg
RGF0YSA6IGluIEdwb2ludGVyKTsKICAgICAgcHJvY2VkdXJlIFJlbW92ZSAoTGlzdCA6IGluIG91
dCBHU2xpc3Q7CiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgOiBpbiBHcG9pbnRlcik7CiAg
ICAgIHByb2NlZHVyZSBSZW1vdmVfTGluayAoTGlzdCA6IGluIG91dCBHU2xpc3Q7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTGluayA6IGluIEdTbGlzdCk7CiAgICAgIGZ1bmN0aW9uIEdl
dF9PYmplY3QgKE9iaiA6IGluIEdTbGlzdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICBwcmFnbWEgSW5saW5lIChHZXRfT2JqZWN0KTsKICAg
ICAgcHJvY2VkdXJlIFNldF9PYmplY3QgKE9iaiAgICA6IGluIG91dCBHU2xpc3Q7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgOiBpbiAgICAgU3lzdGVtLkFkZHJlc3MpOwogICAg
ICBwcmFnbWEgSW5saW5lIChTZXRfT2JqZWN0KTsKICAgcHJpdmF0ZQoKICAgICAgdHlwZSBHU2xp
c3QgaXMKICAgICAgICAgcmVjb3JkCiAgICAgICAgICAgIFB0ciA6IFN5c3RlbS5BZGRyZXNzIDo9
IFN5c3RlbS5OdWxsX0FkZHJlc3M7CiAgICAgICAgIGVuZCByZWNvcmQ7CiAgICAgIE51bGxfTGlz
dCA6IGNvbnN0YW50IEdTbGlzdCA6PSAoUHRyID0+IFN5c3RlbS5OdWxsX0FkZHJlc3MpOwogICBl
bmQgR2VuZXJpY19TTGlzdDsKCiAgIC0tICA8L2RvY19pZ25vcmU+CgplbmQgR2xpYi5HU2xpc3Q7
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRo
ZSBHaW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg
ICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAgICAg
IC0tCi0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBD
aGFybGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAg
ICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBHZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0t
Ci0tIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24s
IGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5p
dCwgb3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAg
IC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2Ug
IHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05V
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBo
b3dldmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1
dGFibGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4g
ICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotLSAgPGRlc2NyaXB0aW9uPgotLQotLSAgVGhpcyBwYWNr
YWdlIHByb3ZpZGVzIGRlZmluaXRpb25zIGZvciB0aGUgYmFzaWMgdHlwZXMgdXNlZCBpbiBHbGli
LAotLSAgR2RrIGFuZCBHdGsuCi0tCi0tICA8L2Rlc2NyaXB0aW9uPgoKd2l0aCBBZGEuVW5jaGVj
a2VkX0RlYWxsb2NhdGlvbjsKd2l0aCBBZGEuVW5jaGVja2VkX0NvbnZlcnNpb247CndpdGggU3lz
dGVtOwp3aXRoIEludGVyZmFjZXMuQzsKCnBhY2thZ2UgR2xpYiBpcwogICBwcmFnbWEgUHJlZWxh
Ym9yYXRlOwoKICAgcGFja2FnZSBDIHJlbmFtZXMgSW50ZXJmYWNlcy5DOwogICB1c2UgdHlwZSBD
LmludDsKICAgdXNlIHR5cGUgQy51bnNpZ25lZDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KICAgLS0gVGhlIGJhc2ljIHR5cGVzIGRlZmluZWQgYnkgZ2xpYiAtLQog
ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICB0eXBlIEdzaG9ydCBp
cyBuZXcgQy5zaG9ydDsKICAgdHlwZSBHbG9uZyAgaXMgbmV3IEMubG9uZzsKICAgdHlwZSBHaW50
ICAgaXMgbmV3IEMuaW50OwogICB0eXBlIEdjaGFyICBpcyBuZXcgQy5jaGFyOwogICB0eXBlIEdi
b29sZWFuIGlzIG5ldyBHaW50OwoKICAgdHlwZSBHdXNob3J0IGlzIG5ldyBDLnVuc2lnbmVkX3No
b3J0OwogICB0eXBlIEd1bG9uZyAgaXMgbmV3IEMudW5zaWduZWRfbG9uZzsKICAgdHlwZSBHdWlu
dCAgIGlzIG5ldyBDLnVuc2lnbmVkOwogICB0eXBlIEd1Y2hhciAgaXMgbmV3IEMudW5zaWduZWRf
Y2hhcjsKCiAgIHR5cGUgR2Zsb2F0ICBpcyBuZXcgQy5DX2Zsb2F0OwogICB0eXBlIEdkb3VibGUg
aXMgbmV3IEMuZG91YmxlOwoKICAgc3VidHlwZSBHaW50OCAgaXMgR2ludCByYW5nZSAtKDIgKiog
NykgLi4gKDIgKiogNyAtIDEpOwogICBzdWJ0eXBlIEdpbnQxNiBpcyBHaW50IHJhbmdlIC0oMiAq
KiAxNSkgLi4gKDIgKiogMTUgLSAxKTsKICAgc3VidHlwZSBHaW50MzIgaXMgR2ludCByYW5nZSAt
KDIgKiogMzEpIC4uICgyICoqIDMxIC0gMSk7CgogICBzdWJ0eXBlIEd1aW50OCAgaXMgR3VpbnQg
cmFuZ2UgR3VpbnQnRmlyc3QgLi4gKDIgKiogOCAtIDEpOwogICBzdWJ0eXBlIEd1aW50MTYgaXMg
R3VpbnQgcmFuZ2UgR3VpbnQnRmlyc3QgLi4gKDIgKiogMTYgLSAxKTsKICAgc3VidHlwZSBHdWlu
dDMyIGlzIEd1aW50IHJhbmdlIEd1aW50J0ZpcnN0IC4uICgyICoqIDMyIC0gMSk7CgogICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNvbWUgQXJyYXkgdHlwZXMgLS0KICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQoKICAgdHlwZSBHYm9vbGVhbl9BcnJheSBpcyBhcnJheSAoTmF0dXJhbCBy
YW5nZSA8Pikgb2YgR2Jvb2xlYW47CiAgIHR5cGUgR3Nob3J0X0FycmF5ICAgaXMgYXJyYXkgKE5h
dHVyYWwgcmFuZ2UgPD4pIG9mIEdzaG9ydDsKICAgdHlwZSBHbG9uZ19BcnJheSAgICBpcyBhcnJh
eSAoTmF0dXJhbCByYW5nZSA8Pikgb2YgR2xvbmc7CiAgIHR5cGUgR2ludF9BcnJheSAgICAgaXMg
YXJyYXkgKE5hdHVyYWwgcmFuZ2UgPD4pIG9mIEdpbnQ7CiAgIHR5cGUgR3VpbnRfQXJyYXkgICAg
aXMgYXJyYXkgKE5hdHVyYWwgcmFuZ2UgPD4pIG9mIEd1aW50OwogICB0eXBlIEd1aW50MzJfQXJy
YXkgIGlzIGFycmF5IChOYXR1cmFsIHJhbmdlIDw+KSBvZiBHdWludDMyOwogICB0eXBlIEd1c2hv
cnRfQXJyYXkgIGlzIGFycmF5IChOYXR1cmFsIHJhbmdlIDw+KSBvZiBHdXNob3J0OwogICB0eXBl
IEd1bG9uZ19BcnJheSAgIGlzIGFycmF5IChOYXR1cmFsIHJhbmdlIDw+KSBvZiBHdWxvbmc7CiAg
IHR5cGUgR2Zsb2F0X0FycmF5ICAgaXMgYXJyYXkgKE5hdHVyYWwgcmFuZ2UgPD4pIG9mIEdmbG9h
dDsKICAgdHlwZSBHdWNoYXJfQXJyYXkgICBpcyBhcnJheSAoTmF0dXJhbCByYW5nZSA8Pikgb2Yg
R3VjaGFyOwogICB0eXBlIEdkb3VibGVfQXJyYXkgIGlzIGFycmF5IChOYXR1cmFsIHJhbmdlIDw+
KSBvZiBHZG91YmxlOwoKICAgdHlwZSBCb29sZWFuX0FycmF5ICBpcyBhcnJheSAoTmF0dXJhbCBy
YW5nZSA8Pikgb2YgQm9vbGVhbjsKCiAgIHR5cGUgU2hvcnRfQXJyYXkgICAgaXMgYXJyYXkgKE5h
dHVyYWwgcmFuZ2UgPD4pIG9mIEMuc2hvcnQ7CiAgIHR5cGUgTG9uZ19BcnJheSAgICAgaXMgYXJy
YXkgKE5hdHVyYWwgcmFuZ2UgPD4pIG9mIEMubG9uZzsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KICAgLS0gQ29udmVyc2lvbiBzZXJ2aWNlcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCgogICBmdW5jdGlvbiBUb19Cb29sZWFuX0FycmF5IChBIDogaW4gR2Jvb2xlYW5fQXJy
YXkpIHJldHVybiBCb29sZWFuX0FycmF5OwogICAtLSAgQ29udmVydCBhIEMtc3R5bGUgYm9vbGVh
biBhcnJheSBpbnRvIGFuIEFkYS1zdHlsZSBhcnJheS4KCiAgIGZ1bmN0aW9uIFRvX0Jvb2xlYW4g
KFZhbHVlIDogaW4gR2Jvb2xlYW4pIHJldHVybiBCb29sZWFuOwogICAtLSAgQ29udmVydCBhIEMg
Ym9vbGVhbiBpbnRvIGFuIEFkYSBib29sZWFuLgoKICAgZnVuY3Rpb24gVG9fQm9vbGVhbiAoVmFs
dWUgOiBpbiBHaW50KSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIENvbnZlcnQgYSBDIGludCBpbnRv
IGFuIEFkYSBib29sZWFuLgoKICAgZnVuY3Rpb24gVG9fQm9vbGVhbiAoVmFsdWUgOiBpbiBHdWlu
dCkgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBDb252ZXJ0IGEgQyB1aW50IGludG8gYW4gQWRhIGJv
b2xlYW4uCgogICBmdW5jdGlvbiBUb19HYm9vbGVhbiAoQm9vbCA6IGluIEJvb2xlYW4pIHJldHVy
biBHYm9vbGVhbjsKICAgLS0gIENvbnZlcnQgYW4gQWRhIGJvb2xlYW4gaW50byBhIEMgYm9vbGVh
bi4KCiAgIGZ1bmN0aW9uIFRvX0dpbnQgKEJvb2wgOiBpbiBCb29sZWFuKSByZXR1cm4gR2ludDsK
ICAgLS0gIENvbnZlcnQgYW4gQWRhIGJvb2xlYW4gaW50byBhIEMgaW50LgoKICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KICAgLS0gU29tZSBBY2Nlc3MgdHlwZXMgLS0KICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KCiAgIHR5cGUgR3VjaGFyX0FycmF5X0FjY2VzcyBpcyBhY2Nlc3MgR3VjaGFy
X0FycmF5OwoKICAgdHlwZSBTdHJpbmdfUHRyIGlzIGFjY2VzcyBhbGwgU3RyaW5nOwoKICAgLS0g
IDxkb2NfaWdub3JlPgogICBwcm9jZWR1cmUgRnJlZSBpcyBuZXcgQWRhLlVuY2hlY2tlZF9EZWFs
bG9jYXRpb24KICAgICAoT2JqZWN0ID0+IEd1Y2hhcl9BcnJheSwgTmFtZSA9PiBHdWNoYXJfQXJy
YXlfQWNjZXNzKTsKCiAgIHByb2NlZHVyZSBGcmVlIGlzIG5ldyBBZGEuVW5jaGVja2VkX0RlYWxs
b2NhdGlvbgogICAgIChPYmplY3QgPT4gU3RyaW5nLCBOYW1lID0+IFN0cmluZ19QdHIpOwogICAt
LSAgPC9kb2NfaWdub3JlPgoKICAgLS0gIDxkb2NfaWdub3JlPgogICB0eXBlIENfRHVtbXkgaXMg
bGltaXRlZCBwcml2YXRlOwogICAtLSAgPC9kb2NfaWdub3JlPgoKICAgdHlwZSBDX1Byb3h5IGlz
IGFjY2VzcyBDX0R1bW15OwogICAtLSAgR2VuZXJhbCBwcm94eSBmb3IgQyBzdHJ1Y3R1cmVzLgog
ICAtLSAgVGhpcyB0eXBlIGlzIHVzZWQgaW5zdGVhZCBvZiBTeXN0ZW0uQWRkcmVzcyBzbyB0aGF0
IHRoZSB2YXJpYWJsZXMgYXJlCiAgIC0tICBhdXRvbWF0aWNhbGx5IGluaXRpYWxpemVkIHRvICdu
dWxsJy4KICAgLS0gIFRoZSB2YWx1ZSBwb2ludGVkIHRvIGlzIGlycmVsZXZhbnQsIGFuZCBpbiBm
YWN0IHNob3VsZCBub3QgYmUgYWNjZXNzZWQuCiAgIC0tICBJdCBoYXMgdGh1cyBiZWVuIG1hZGUg
bGltaXRlZCBwcml2YXRlIHdpdGggbm8gc3VicHJvZ3JhbSB0byBhY2Nlc3MgaXQuCiAgIC0tICBD
X1Byb3h5IGlzIGEgcHVibGljIHR5cGUgc28gdGhhdCBvbmUgY2FuIGNvbXBhcmUgZGlyZWN0bHkg
dGhlIHZhbHVlCiAgIC0tICBvZiB0aGUgdmFyaWFibGVzIHdpdGggJ251bGwnLgoKICAgLS0gIDxk
b2NfaWdub3JlPgogICBwcmFnbWEgQ29udmVudGlvbiAoQywgQ19Qcm94eSk7CgogICBmdW5jdGlv
biBDb252ZXJ0IGlzIG5ldyBBZGEuVW5jaGVja2VkX0NvbnZlcnNpb24gKFN5c3RlbS5BZGRyZXNz
LCBDX1Byb3h5KTsKICAgZnVuY3Rpb24gQ29udmVydCBpcyBuZXcgQWRhLlVuY2hlY2tlZF9Db252
ZXJzaW9uIChDX1Byb3h5LCBTeXN0ZW0uQWRkcmVzcyk7CiAgIC0tICBDb252ZXJ0cyBmcm9tIGEg
U3lzdGVtLkFkZHJlc3MgcmV0dXJuZWQgYnkgYSBDIGZ1bmN0aW9uIHRvIGFuCiAgIC0tICBpbnRl
cm5hbCBDX1Byb3h5LgoKICAgLS0gIDwvZG9jX2lnbm9yZT4KCiAgIC0tLS0tLS0tLS0tLQogICAt
LSBRdWFya3MgLS0KICAgLS0tLS0tLS0tLS0tCgogICB0eXBlIEdRdWFyayBpcyBuZXcgR3VpbnQz
MjsKICAgLS0gIFJlcHJlc2VudHMgYSBzdHJpbmcgaW50ZXJuYWxseSBpbiBHdGtBZGEuIE9uY2Ug
eW91IGtub3cgdGhlCiAgIC0tICBlcXVpdmFsZW50IGZvciBhIHN0cmluZywgeW91IGNhbiBhbHdh
eXMgdXNlIGl0IGluc3RlYWQgb2YgdGhlIHN0cmluZywKICAgLS0gIHdoaWNoIHByb3ZpZGVzIGEg
ZmFzdGVyIGFjY2VzcyBmb3IgYWxsIHRoZSBmdW5jdGlvbnMgdGhhdCB1c2UgaHRhYmxlcwogICAt
LSAgaW4gR3RrQWRhLgogICAtLSAgVGhlcmUgaXMgYSBnbG9iYWwgaHRhYmxlIHRoYXQgY29udGFp
bnMgYWxsIHRoZSBxdWFya3MgZGVmaW5lZCBpbgogICAtLSAgeW91ciBhcHBsaWNhdGlvbiBhbmQg
R3RrQWRhIGl0c2VsZi4KCiAgIFVua25vd25fUXVhcmsgOiBjb25zdGFudCBHUXVhcmsgOj0gMDsK
CiAgIGZ1bmN0aW9uIFF1YXJrX0Zyb21fU3RyaW5nIChJZCA6IGluIFN0cmluZykgcmV0dXJuIEdR
dWFyazsKICAgLS0gIFJldHVybiwgb3IgY3JlYXRlIHRoZSBxdWFyayBhc3NvY2lhdGVkIHdpdGgg
dGhlIHN0cmluZy4KICAgLS0gIE5vdGUgdGhhdCBpZiB0aGUgcXVhcmsgZG9lcyBub3QgYWxyZWFk
eSBleGlzdCwgYW4gZW50cnkgaXMgY3JlYXRlZCBmb3IKICAgLS0gIGl0IGluIHRoZSBnbG9iYWwg
aHRhYmxlIGZvciBxdWFya3MuCgogICBmdW5jdGlvbiBRdWFya19UcnlfU3RyaW5nIChJZCA6IGlu
IFN0cmluZykgcmV0dXJuIEdRdWFyazsKICAgLS0gIFJldHVybiB0aGUgcXVhcmsgYXNzb2NpYXRl
ZCB3aXRoIHRoZSBzdHJpbmcsIGlmIGl0IGV4aXN0cy4KICAgLS0gIElmIGl0IGRvZXMgbm90IGV4
aXN0LCByZXR1cm4gVW5rbm93bl9RdWFyay4KCnByaXZhdGUKICAgdHlwZSBDX0R1bW15IGlzIG51
bGwgcmVjb3JkOwogICAtLSAgVGhpcyBhcnJheSBjYW4gY29udGFpbiBhbnl0aGluZywgc2luY2Ug
aXQgaXMgbmV2ZXIgdXNlZCBvbiB0aGUgQWRhIHNpZGUKICAgLS0gIGFueXdheS4KCmVuZCBHbGli
OwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICBHdGtBZGEgLSBBZGE5NSBiaW5kaW5nIGZvciB0
aGUgR2ltcCBUb29sa2l0ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAg
ICAgICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5OC0xOTk5ICAgICAgICAgICAgICAgICAgICAg
ICAtLQotLSAgICAgICAgRW1tYW51ZWwgQnJpb3QsIEpvZWwgQnJvYmVja2VyIGFuZCBBcm5hdWQg
Q2hhcmxldCAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAgICAtLQotLSBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAg
ICAgICAtLQotLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIgICAgICAtLQotLSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAtLQotLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwgICAtLQotLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZiAgICAtLQotLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSAtLQotLSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAtLQot
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAtLQotLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAtLQotLSBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSAgICAgICAgICAgICAtLQotLSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgICAgICAt
LQotLSBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9u
LCBpZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0ZSBnZW5lcmljcyBmcm9tICAtLQotLSB0aGlzIHVu
aXQsIG9yIHlvdSBsaW5rIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzIHRvIHByb2R1Y2UgYW4g
ICAtLQotLSBleGVjdXRhYmxlLCB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkgaXRzZWxmIGNhdXNl
ICB0aGUgcmVzdWx0aW5nICAtLQotLSBleGVjdXRhYmxlIHRvIGJlIGNvdmVyZWQgYnkgdGhlIEdO
VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzICAtLQotLSBleGNlcHRpb24gZG9lcyBub3Qg
aG93ZXZlciBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSB0aGUgICAtLQotLSBleGVj
dXRhYmxlIGZpbGUgIG1pZ2h0IGJlIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2Uu
ICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKd2l0aCBHZGs7IHVzZSBHZGs7CndpdGggR2RrLlR5cGVz
Owp3aXRoIEd0ay5PYmplY3Q7CgpwYWNrYWdlIEd0ay5BY2NlbF9Hcm91cCBpcwoKICAgdHlwZSBH
dGtfQWNjZWxfR3JvdXAgaXMgbmV3IEdkay5DX1Byb3h5OwogICB0eXBlIEd0a19BY2NlbF9FbnRy
eSBpcyBuZXcgR2RrLkNfUHJveHk7CgogICB0eXBlIEd0a19BY2NlbF9GbGFncyBpcyBuZXcgR3Vp
bnQ7CiAgIEFjY2VsX1Zpc2libGUgICAgICAgIDogY29uc3RhbnQgR3RrX0FjY2VsX0ZsYWdzOwog
ICBBY2NlbF9TaWduYWxfVmlzaWJsZSA6IGNvbnN0YW50IEd0a19BY2NlbF9GbGFnczsKICAgQWNj
ZWxfTG9ja2VkICAgICAgICAgOiBjb25zdGFudCBHdGtfQWNjZWxfRmxhZ3M7CiAgIEFjY2VsX01h
c2sgICAgICAgICAgIDogY29uc3RhbnQgR3RrX0FjY2VsX0ZsYWdzOwoKICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KICAgLS0gIEFjY2VsZXJhdG9yIEdyb3VwcyAgLS0KICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBHdGtfTmV3IChXaWRnZXQgOiBvdXQgR3Rr
X0FjY2VsX0dyb3VwKTsKCiAgIGZ1bmN0aW9uIEdldF9EZWZhdWx0IHJldHVybiBHdGtfQWNjZWxf
R3JvdXA7CgogICAtLSAgcHJvY2VkdXJlIFJlZgogICAtLSAgcHJvY2VkdXJlIFVucmVmCgogICBm
dW5jdGlvbiBBY3RpdmF0ZQogICAgIChBY2NlbF9Hcm91cCA6IGluIEd0a19BY2NlbF9Hcm91cDsK
ICAgICAgQWNjZWxfS2V5ICAgOiBpbiBHZGsuVHlwZXMuR2RrX0tleV9UeXBlOwogICAgICBBY2Nl
bF9Nb2RzICA6IGluIEdkay5UeXBlcy5HZGtfTW9kaWZpZXJfVHlwZSkgcmV0dXJuIEJvb2xlYW47
CgogICBmdW5jdGlvbiBBY2NlbF9Hcm91cHNfQWN0aXZhdGUKICAgICAoT2JqZWN0ICAgICA6IGFj
Y2VzcyBHdGsuT2JqZWN0Lkd0a19PYmplY3RfUmVjb3JkJ0NsYXNzOwogICAgICBBY2NlbF9LZXkg
IDogaW4gR2RrLlR5cGVzLkdka19LZXlfVHlwZTsKICAgICAgQWNjZWxfTW9kcyA6IGluIEdkay5U
eXBlcy5HZGtfTW9kaWZpZXJfVHlwZSkgcmV0dXJuIEJvb2xlYW47CgogICBwcm9jZWR1cmUgQXR0
YWNoCiAgICAgKEFjY2VsX0dyb3VwIDogaW4gR3RrX0FjY2VsX0dyb3VwOwogICAgICBPYmplY3Qg
ICAgICA6IGFjY2VzcyBHdGsuT2JqZWN0Lkd0a19PYmplY3RfUmVjb3JkJ0NsYXNzKTsKICAgLS0g
IE9iamVjdCBzaG91bGQgYmUgYWJsZSB0byBnZXQga2V5X3ByZXNzIGFuZCBrZXlfcmVsZWFzZSBl
dmVudHMgKGllCiAgIC0tICB0aGlzIHdvbid0IHdvcmsgaW4gYSBHdGtfQm94IHdoaWNoIGhhcyBu
byB3aW5kb3cpLgogICAtLSAgVGhlIHJlY29tbWVuZGVkIHdheSBpcyB0byBhdHRhY2ggdGhlIEFj
Y2VsX0dyb3VwIHRvIHRoZSB0b3BsZXZlbCB3aW5kb3cuCgogICBwcm9jZWR1cmUgRGV0YWNoCiAg
ICAgKEFjY2VsX0dyb3VwIDogaW4gR3RrX0FjY2VsX0dyb3VwOwogICAgICBPYmplY3QgICAgICA6
IGFjY2VzcyBHdGsuT2JqZWN0Lkd0a19PYmplY3RfUmVjb3JkJ0NsYXNzKTsKCiAgIHByb2NlZHVy
ZSBMb2NrIChBY2NlbF9Hcm91cCA6IGluIEd0a19BY2NlbF9Hcm91cCk7CgogICBwcm9jZWR1cmUg
VW5sb2NrIChBY2NlbF9Hcm91cCA6IGluIEd0a19BY2NlbF9Hcm91cCk7CgogICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gIEFjY2VsZXJhdG9yIEdyb3VwIEVudHJpZXMg
IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24gR2V0
X0VudHJ5CiAgICAgKEFjY2VsX0dyb3VwIDogaW4gR3RrX0FjY2VsX0dyb3VwOwogICAgICBBY2Nl
bF9LZXkgICA6IGluIEdkay5UeXBlcy5HZGtfS2V5X1R5cGU7CiAgICAgIEFjY2VsX01vZHMgIDog
aW4gR2RrLlR5cGVzLkdka19Nb2RpZmllcl9UeXBlKSByZXR1cm4gR3RrX0FjY2VsX0VudHJ5OwoK
ICAgcHJvY2VkdXJlIExvY2tfRW50cnkKICAgICAoQWNjZWxfR3JvdXAgOiBpbiBHdGtfQWNjZWxf
R3JvdXA7CiAgICAgIEFjY2VsX0tleSAgIDogaW4gR2RrLlR5cGVzLkdka19LZXlfVHlwZTsKICAg
ICAgQWNjZWxfTW9kcyAgOiBpbiBHZGsuVHlwZXMuR2RrX01vZGlmaWVyX1R5cGUpOwoKICAgcHJv
Y2VkdXJlIFVubG9ja19FbnRyeQogICAgIChBY2NlbF9Hcm91cCA6IGluIEd0a19BY2NlbF9Hcm91
cDsKICAgICAgQWNjZWxfS2V5ICAgOiBpbiBHZGsuVHlwZXMuR2RrX0tleV9UeXBlOwogICAgICBB
Y2NlbF9Nb2RzICA6IGluIEdkay5UeXBlcy5HZGtfTW9kaWZpZXJfVHlwZSk7CgogICBwcm9jZWR1
cmUgQWRkCiAgICAgKEFjY2VsX0dyb3VwICA6IGluIEd0a19BY2NlbF9Hcm91cDsKICAgICAgQWNj
ZWxfS2V5ICAgIDogaW4gICAgIEdkay5UeXBlcy5HZGtfS2V5X1R5cGU7CiAgICAgIEFjY2VsX01v
ZHMgICA6IGluICAgICBHZGsuVHlwZXMuR2RrX01vZGlmaWVyX1R5cGU7CiAgICAgIEFjY2VsX0Zs
YWdzICA6IGluICAgICBHdGtfQWNjZWxfRmxhZ3M7CiAgICAgIE9iamVjdCAgICAgICA6IGFjY2Vz
cyBHdGsuT2JqZWN0Lkd0a19PYmplY3RfUmVjb3JkJ0NsYXNzOwogICAgICBBY2NlbF9TaWduYWwg
OiBpbiAgICAgU3RyaW5nKTsKCiAgIHByb2NlZHVyZSBSZW1vdmUKICAgICAoQWNjZWxfR3JvdXAg
OiBpbiBHdGtfQWNjZWxfR3JvdXA7CiAgICAgIEFjY2VsX0tleSAgIDogaW4gICAgIEdkay5UeXBl
cy5HZGtfS2V5X1R5cGU7CiAgICAgIEFjY2VsX01vZHMgIDogaW4gICAgIEdkay5UeXBlcy5HZGtf
TW9kaWZpZXJfVHlwZTsKICAgICAgT2JqZWN0ICAgICAgOiBhY2Nlc3MgR3RrLk9iamVjdC5HdGtf
T2JqZWN0X1JlY29yZCdDbGFzcyk7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg
LS0gIEFjY2VsZXJhdG9yIFNpZ25hbHMgIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQoKICAgcHJvY2VkdXJlIEhhbmRsZV9BZGQKICAgICAoT2JqZWN0ICAgICAgICAgIDogYWNjZXNz
IEd0ay5PYmplY3QuR3RrX09iamVjdF9SZWNvcmQnQ2xhc3M7CiAgICAgIEFjY2VsX1NpZ25hbF9J
ZCA6IGluICAgICBHdWludDsKICAgICAgQWNjZWxfR3JvdXAgICAgIDogaW4gICAgIEd0a19BY2Nl
bF9Hcm91cDsKICAgICAgQWNjZWxfS2V5ICAgICAgIDogaW4gICAgIEdkay5UeXBlcy5HZGtfS2V5
X1R5cGU7CiAgICAgIEFjY2VsX01vZHMgICAgICA6IGluICAgICBHZGsuVHlwZXMuR2RrX01vZGlm
aWVyX1R5cGU7CiAgICAgIEFjY2VsX0ZsYWdzICAgICA6IGluICAgICBHdGtfQWNjZWxfRmxhZ3Mp
OwoKICAgcHJvY2VkdXJlIEhhbmRsZV9SZW1vdmUKICAgICAoT2JqZWN0ICAgICAgOiBhY2Nlc3Mg
R3RrLk9iamVjdC5HdGtfT2JqZWN0X1JlY29yZCdDbGFzczsKICAgICAgQWNjZWxfR3JvdXAgOiBp
biAgICAgR3RrX0FjY2VsX0dyb3VwOwogICAgICBBY2NlbF9LZXkgICA6IGluICAgICBHZGsuVHlw
ZXMuR2RrX0tleV9UeXBlOwogICAgICBBY2NlbF9Nb2RzICA6IGluICAgICBHZGsuVHlwZXMuR2Rr
X01vZGlmaWVyX1R5cGUpOwoKICAgLS0gIGZ1bmN0aW9uIENyZWF0ZV9BZGQKICAgLS0gIGZ1bmN0
aW9uIENyZWF0ZV9SZW1vdmUKICAgLS0gIHByb2NlZHVyZSBNYXJzaGFsX0FkZAogICAtLSAgcHJv
Y2VkdXJlIE1hcnNoYWxfUmVtb3ZlCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gIE1p
c2NlbGxhbmVvdXMgIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIGZ1bmN0aW9u
IEFjY2VsX0dyb3Vwc19Gcm9tX09iamVjdAogICAtLSAgZnVuY3Rpb24gRW50cmllc19Gcm9tX09i
amVjdAoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gIEFjY2VsZXJhdG9ycyAgLS0KICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEFjY2VsZXJhdG9yX1ZhbGlkCiAgICAg
KEtleXZhbCAgICA6IGluIEdkay5UeXBlcy5HZGtfS2V5X1R5cGU7CiAgICAgIE1vZGlmaWVycyA6
IGluIEdkay5UeXBlcy5HZGtfTW9kaWZpZXJfVHlwZSkgcmV0dXJuIEJvb2xlYW47CgogICBwcm9j
ZWR1cmUgQWNjZWxlcmF0b3JfUGFyc2UKICAgICAoQWNjZWxlcmF0b3IgICAgICA6IGluICAgICBT
dHJpbmc7CiAgICAgIEFjY2VsZXJhdG9yX0tleSAgOiAgICBvdXQgR2RrLlR5cGVzLkdka19LZXlf
VHlwZTsKICAgICAgQWNjZWxlcmF0b3JfTW9kcyA6ICAgIG91dCBHZGsuVHlwZXMuR2RrX01vZGlm
aWVyX1R5cGUpOwoKICAgZnVuY3Rpb24gQWNjZWxlcmF0b3JfTmFtZQogICAgIChBY2NlbGVyYXRv
cl9LZXkgIDogaW4gR2RrLlR5cGVzLkdka19LZXlfVHlwZTsKICAgICAgQWNjZWxlcmF0b3JfTW9k
cyA6IGluIEdkay5UeXBlcy5HZGtfTW9kaWZpZXJfVHlwZSkgcmV0dXJuIFN0cmluZzsKCiAgIHBy
b2NlZHVyZSBBY2NlbGVyYXRvcl9TZXRfRGVmYXVsdF9Nb2RfTWFzawogICAgIChEZWZhdWx0X01v
ZF9NYXNrIDogaW4gR2RrLlR5cGVzLkdka19Nb2RpZmllcl9UeXBlKTsKCiAgIGZ1bmN0aW9uIEFj
Y2VsZXJhdG9yX0dldF9EZWZhdWx0X01vZF9NYXNrCiAgICAgcmV0dXJuIEdkay5UeXBlcy5HZGtf
TW9kaWZpZXJfVHlwZTsKCnByaXZhdGUKCiAgIEFjY2VsX1Zpc2libGUgICAgICAgIDogY29uc3Rh
bnQgR3RrX0FjY2VsX0ZsYWdzIDo9IDIgKiogMDsKICAgQWNjZWxfU2lnbmFsX1Zpc2libGUgOiBj
b25zdGFudCBHdGtfQWNjZWxfRmxhZ3MgOj0gMiAqKiAxOwogICBBY2NlbF9Mb2NrZWQgICAgICAg
ICA6IGNvbnN0YW50IEd0a19BY2NlbF9GbGFncyA6PSAyICoqIDI7CiAgIEFjY2VsX01hc2sgICAg
ICAgICAgIDogY29uc3RhbnQgR3RrX0FjY2VsX0ZsYWdzIDo9IDE2IzA3IzsKCiAgIHByYWdtYSBJ
bXBvcnQgKEMsIEFjY2VsZXJhdG9yX1NldF9EZWZhdWx0X01vZF9NYXNrLAogICAgICAgICAgICAg
ICAgICAiZ3RrX2FjY2VsZXJhdG9yX3NldF9kZWZhdWx0X21vZF9tYXNrIik7CiAgIHByYWdtYSBJ
bXBvcnQgKEMsIEFjY2VsZXJhdG9yX0dldF9EZWZhdWx0X01vZF9NYXNrLAogICAgICAgICAgICAg
ICAgICAiZ3RrX2FjY2VsZXJhdG9yX2dldF9kZWZhdWx0X21vZF9tYXNrIik7CiAgIHByYWdtYSBJ
bXBvcnQgKEMsIEdldF9EZWZhdWx0LCAiZ3RrX2FjY2VsX2dyb3VwX2dldF9kZWZhdWx0Iik7CiAg
IHByYWdtYSBJbXBvcnQgKEMsIExvY2ssICJndGtfYWNjZWxfZ3JvdXBfbG9jayIpOwogICBwcmFn
bWEgSW1wb3J0IChDLCBVbmxvY2ssICJndGtfYWNjZWxfZ3JvdXBfdW5sb2NrIik7CmVuZCBHdGsu
QWNjZWxfR3JvdXA7Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJp
bmRpbmcgZm9yIHRoZSBHaW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t
Ci0tICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAgICAg
ICAgICAgICAgICAgIC0tCi0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIg
YW5kIEFybmF1ZCBDaGFybGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAg
IC0tCi0tIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp
YyAgICAgICAgICAgICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0t
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUg
MzMwLCAgICAgIC0tCi0tIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lh
bCBleGNlcHRpb24sIGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0t
Ci0tIHRoaXMgdW5pdCwgb3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8g
cHJvZHVjZSBhbiAgIC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBp
dHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJl
ZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlv
biBkb2VzIG5vdCBob3dldmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAg
IC0tCi0tIGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJs
aWMgTGljZW5zZS4gICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotLSAgPGRlc2NyaXB0aW9uPgotLQot
LSAgVGhpcyBvYmplY3QgcmVwcmVzZW50cyBhbiBhZGp1c3RhYmxlIGJvdW5kZWQgdmFsdWUuCi0t
ICBJdCBpcyB1c2VkIGluIG1hbnkgb3RoZXIgd2lkZ2V0cyB0aGF0IGhhdmUgc3VjaCBpbnRlcm5h
bCB2YWx1ZXMsCi0tICBsaWtlIEd0a19TY3JvbGxiYXIsIEd0a19TcGluX0J1dHRvbiwgR3RrX1Jh
bmdlLCAuLi4KLS0gIE1vZGlmeWluZyB0aGUgdmFsdWUgb2YgdGhlc2Ugd2lkZ2V0cyBpcyBkb25l
IHRocm91Z2ggdGhlaXIKLS0gIGFzc29jaWF0ZWQgYWRqdXN0bWVudHMuCi0tCi0tICBUaGUgbW9k
aWZpY2F0aW9uIG9mIHRoZSB2YWx1ZSBpcyBsZWZ0IHRvIHRoZSB1c2VyLCB3aG8gc2hvdWxkCi0t
ICBjYWxsIFZhbHVlX0NoYW5nZWQgb3IgQ2hhbmdlZCB0byBlbWl0IHRoZSByZWxldmFudCBzaWdu
YWxzLgotLQotLSAgPC9kZXNjcmlwdGlvbj4KLS0gIDxleGFtcGxlPgotLQotLSAgVGhlIG1lYW5p
bmcgb2YgdGhlIG1vc3QgaW1wb3J0YW50IGZpZWxkcyBjYW4gYmUgZXhwbGFpbmVkIG9uIHRoZQot
LSAgZm9sbG93aW5nIGZpZ3VyZSAoaW1hZ2luZSB0aGlzIGlzIGEgc2Nyb2xsYmFyKToKLS0KLS0g
ICAgIFstLS0tLS0tfD09PT09PT09PT09PT09PT09fC0tLS0tLS0tLS0tLS0tLS0tLS1dCi0tICAg
IGxvd2VyICAgIHZhbHVlICAgICAgICB2YWx1ZSArIHBhZ2Vfc2l6ZSAgICAgICB1cHBlcgotLQot
LSAgPC9leGFtcGxlPgotLSAgPGNfdmVyc2lvbj4xLjIuNjwvY192ZXJzaW9uPgoKd2l0aCBHdGsu
RGF0YTsKCnBhY2thZ2UgR3RrLkFkanVzdG1lbnQgaXMKCiAgIHR5cGUgR3RrX0FkanVzdG1lbnRf
UmVjb3JkIGlzIG5ldyBEYXRhLkd0a19EYXRhX1JlY29yZCB3aXRoIHByaXZhdGU7CiAgIHR5cGUg
R3RrX0FkanVzdG1lbnQgaXMgYWNjZXNzIGFsbCBHdGtfQWRqdXN0bWVudF9SZWNvcmQnQ2xhc3M7
CgogICBOdWxsX0FkanVzdG1lbnQgOiBjb25zdGFudCBHdGtfQWRqdXN0bWVudDsKCiAgIHByb2Nl
ZHVyZSBHdGtfTmV3IChBZGp1c3RtZW50ICAgICA6IG91dCBHdGtfQWRqdXN0bWVudDsKICAgICAg
ICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgIDogaW4gICAgIEdmbG9hdDsKICAgICAgICAg
ICAgICAgICAgICAgIExvd2VyICAgICAgICAgIDogaW4gICAgIEdmbG9hdDsKICAgICAgICAgICAg
ICAgICAgICAgIFVwcGVyICAgICAgICAgIDogaW4gICAgIEdmbG9hdDsKICAgICAgICAgICAgICAg
ICAgICAgIFN0ZXBfSW5jcmVtZW50IDogaW4gICAgIEdmbG9hdDsKICAgICAgICAgICAgICAgICAg
ICAgIFBhZ2VfSW5jcmVtZW50IDogaW4gICAgIEdmbG9hdDsKICAgICAgICAgICAgICAgICAgICAg
IFBhZ2VfU2l6ZSAgICAgIDogaW4gICAgIEdmbG9hdCk7CiAgIC0tICBDcmVhdGUgYSBuZXcgYWRq
dXN0bWVudC4KICAgLS0gIFZhbHVlIGlzIHRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZSBhZGp1c3Rt
ZW50LiBJdCBtdXN0IGJlIGluIHRoZQogICAtLSAgcmFuZ2UgKExvd2VyIC4uIFVwcGVyKSBhbmQg
dGhlIGFkanVzdG1lbnQncyB2YWx1ZSB3aWxsIG5ldmVyIGJlCiAgIC0tICBvdXRzaWRlIHRoaXMg
cmFuZ2UuCiAgIC0tICBTdGVwX0luY3JlbWVudCBpcyB0aGUgdmFsdWUgdXNlZCB0byBtYWtlIG1p
bm9yIGFkanVzdG1lbnRzLCBzdWNoCiAgIC0tICBhcyB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0
aGUgYXJyb3dzIG9mIGEgc2Nyb2xsYmFyLgogICAtLSAgUGFnZV9JbmNyZW1lbnQgaXMgdXNlZCB0
byBtYWtlIG1ham9yIGFkanVzdG1lbnRzLCBzdWNoIGFzIHdoZW4KICAgLS0gIHRoZSB1c2VyIGNs
aWNrcyBpbiB0aGUgdGhyb3VnaCBvbiBhIHNjcm9sbGJhci4KICAgLS0gIFBhZ2VfU2l6ZSBpcyB0
aGUgc2l6ZSBvZiB0aGUgYXJlYSB0aGF0IGlzIGN1cnJlbnRseSB2aXNpYmxlCiAgIC0tICAoZm9y
IGluc3RhbmNlIGluIGEgR3RrX1Njcm9sbGVkX1dpbmRvdykuCgogICBwcm9jZWR1cmUgSW5pdGlh
bGl6ZSAoQWRqdXN0bWVudCAgICAgOiBhY2Nlc3MgR3RrX0FkanVzdG1lbnRfUmVjb3JkJ0NsYXNz
OwogICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgOiBpbiAgICAgR2Zsb2F0
OwogICAgICAgICAgICAgICAgICAgICAgICAgTG93ZXIgICAgICAgICAgOiBpbiAgICAgR2Zsb2F0
OwogICAgICAgICAgICAgICAgICAgICAgICAgVXBwZXIgICAgICAgICAgOiBpbiAgICAgR2Zsb2F0
OwogICAgICAgICAgICAgICAgICAgICAgICAgU3RlcF9JbmNyZW1lbnQgOiBpbiAgICAgR2Zsb2F0
OwogICAgICAgICAgICAgICAgICAgICAgICAgUGFnZV9JbmNyZW1lbnQgOiBpbiAgICAgR2Zsb2F0
OwogICAgICAgICAgICAgICAgICAgICAgICAgUGFnZV9TaXplICAgICAgOiBpbiAgICAgR2Zsb2F0
KTsKICAgLS0gIEludGVybmFsIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLgogICAtLSAgU2VlIHRo
ZSBzZWN0aW9uICJDcmVhdGluZyB5b3VyIG93biB3aWRnZXRzIiBpbiB0aGUgZG9jdW1lbnRhdGlv
bi4KCiAgIGZ1bmN0aW9uIEdldF9UeXBlIHJldHVybiBHdGsuR3RrX1R5cGU7CiAgIC0tICBSZXR1
cm4gdGhlIGludGVybmFsIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIEd0a19BZGp1c3RtZW50LgoK
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gUmVhZCBmdW5jdGlvbnMgLS0KICAgLS0tLS0t
LS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEdldF9WYWx1ZSAoQWRqdXN0bWVudCA6IGFjY2Vz
cyBHdGtfQWRqdXN0bWVudF9SZWNvcmQpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2Zs
b2F0OwogICAtLSAgUmV0dXJuIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBhZGp1c3RtZW50LgoK
ICAgZnVuY3Rpb24gR2V0X0xvd2VyIChBZGp1c3RtZW50IDogYWNjZXNzIEd0a19BZGp1c3RtZW50
X1JlY29yZCkKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHZmxvYXQ7CiAgIC0tICBSZXR1
cm4gdGhlIGxvd2VyIGJvdW5kIG9mIHRoZSBhZGp1c3RtZW50LgoKICAgZnVuY3Rpb24gR2V0X1Vw
cGVyIChBZGp1c3RtZW50IDogYWNjZXNzIEd0a19BZGp1c3RtZW50X1JlY29yZCkKICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBHZmxvYXQ7CiAgIC0tICBSZXR1cm4gdGhlIHVwcGVyIGJvdW5k
IG9mIHRoZSBhZGp1c3RtZW50LgoKICAgZnVuY3Rpb24gR2V0X1N0ZXBfSW5jcmVtZW50IChBZGp1
c3RtZW50IDogYWNjZXNzIEd0a19BZGp1c3RtZW50X1JlY29yZCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBHZmxvYXQ7CiAgIC0tICBSZXR1cm4gdGhlIHN0ZXAgaW5jcmVt
ZW50IG9mIHRoZSBhZGp1c3RtZW50LgoKICAgZnVuY3Rpb24gR2V0X1BhZ2VfSW5jcmVtZW50IChB
ZGp1c3RtZW50IDogYWNjZXNzIEd0a19BZGp1c3RtZW50X1JlY29yZCkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBHZmxvYXQ7CiAgIC0tICBSZXR1cm4gdGhlIHBhZ2UgaW5j
cmVtZW50IG9mIHRoZSBhZGp1c3RtZW50LgoKICAgZnVuY3Rpb24gR2V0X1BhZ2VfU2l6ZSAoQWRq
dXN0bWVudCA6IGFjY2VzcyBHdGtfQWRqdXN0bWVudF9SZWNvcmQpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEdmbG9hdDsKICAgLS0gIFJldHVybiB0aGUgcGFnZSBzaXplIG9mIHRo
ZSBhZGp1c3RtZW50LgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFdyaXRlIGZ1bmN0
aW9ucyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfVXBwZXIg
KEFkanVzdG1lbnQgOiBhY2Nlc3MgR3RrX0FkanVzdG1lbnRfUmVjb3JkOwogICAgICAgICAgICAg
ICAgICAgICAgICBVcHBlciAgICAgIDogaW4gR2Zsb2F0KTsKICAgLS0gIE1vZGlmeSB0aGUgdXBw
ZXIgYm91bmQgb2YgdGhlIGFkanVzdG1lbnQuCiAgIC0tICBZb3Ugc2hvdWxkIGNhbGwgQ2hhbmdl
ZCBhZnRlciBtb2RpZnlpbmcgdGhpcyB2YWx1ZS4KCiAgIHByb2NlZHVyZSBTZXRfTG93ZXIgKEFk
anVzdG1lbnQgOiBhY2Nlc3MgR3RrX0FkanVzdG1lbnRfUmVjb3JkOwogICAgICAgICAgICAgICAg
ICAgICAgICBMb3dlciAgICAgIDogaW4gR2Zsb2F0KTsKICAgLS0gIE1vZGlmeSB0aGUgbG93ZXIg
Ym91bmQgb2YgdGhlIGFkanVzdG1lbnQuCiAgIC0tICBZb3Ugc2hvdWxkIGNhbGwgQ2hhbmdlZCBh
ZnRlciBtb2RpZnlpbmcgdGhpcyB2YWx1ZS4KCiAgIHByb2NlZHVyZSBTZXRfVmFsdWUgKEFkanVz
dG1lbnQgOiBhY2Nlc3MgR3RrX0FkanVzdG1lbnRfUmVjb3JkOwogICAgICAgICAgICAgICAgICAg
ICAgICBWYWx1ZSAgICAgIDogaW4gR2Zsb2F0KTsKICAgLS0gIE1vZGlmeSB0aGUgY3VycmVudCB2
YWx1ZSBvZiB0aGUgYWRqdXN0bWVudC4KICAgLS0gIFlvdSBkbyBub3QgbmVlZCB0byBjYWxsIFZh
bHVlX0NoYW5nZWQgYWZ0ZXIgbW9kaWZ5aW5nIHRoaXMgdmFsdWUsCiAgIC0tICB0aGlzIGlzIGRv
bmUgYXV0b21hdGljYWxseS4KCiAgIHByb2NlZHVyZSBTZXRfUGFnZV9TaXplIChBZGp1c3RtZW50
IDogYWNjZXNzIEd0a19BZGp1c3RtZW50X1JlY29yZDsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBhZ2VfU2l6ZSAgOiBpbiBHZmxvYXQpOwogICAtLSAgTW9kaWZ5IHRoZSBwYWdlIHNpemUg
b2YgdGhlIGFkanVzdG1lbnQuCiAgIC0tICBZb3Ugc2hvdWxkIGNhbGwgQ2hhbmdlZCBhZnRlciBt
b2RpZnlpbmcgdGhpcyB2YWx1ZS4KCiAgIHByb2NlZHVyZSBTZXRfUGFnZV9JbmNyZW1lbnQgKEFk
anVzdG1lbnQgICAgIDogYWNjZXNzIEd0a19BZGp1c3RtZW50X1JlY29yZDsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUGFnZV9JbmNyZW1lbnQgOiBpbiBHZmxvYXQpOwogICAtLSAg
TW9kaWZ5IHRoZSBwYWdlIGluY3JlbWVudCBvZiB0aGUgYWRqdXN0bWVudC4KICAgLS0gIFlvdSBz
aG91bGQgY2FsbCBDaGFuZ2VkIGFmdGVyIG1vZGlmeWluZyB0aGlzIHZhbHVlLgoKICAgcHJvY2Vk
dXJlIFNldF9TdGVwX0luY3JlbWVudCAoQWRqdXN0bWVudCA6IGFjY2VzcyBHdGtfQWRqdXN0bWVu
dF9SZWNvcmQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0ZXBfSW5jcmVtZW50
IDogaW4gR2Zsb2F0KTsKICAgLS0gIE1vZGlmeSB0aGUgc3RlcCBpbmNyZW1lbnQgb2YgdGhlIGFk
anVzdG1lbnQuCiAgIC0tICBZb3Ugc2hvdWxkIGNhbGwgQ2hhbmdlZCBhZnRlciBtb2RpZnlpbmcg
dGhpcyB2YWx1ZS4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIE1pc2MgZnVuY3Rpb25z
IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgQ2xhbXBfUGFnZSAoQWRq
dXN0bWVudCA6IGFjY2VzcyBHdGtfQWRqdXN0bWVudF9SZWNvcmQ7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBMb3dlciAgICAgIDogaW4gICAgIEdmbG9hdDsKICAgICAgICAgICAgICAgICAgICAg
ICAgIFVwcGVyICAgICAgOiBpbiAgICAgR2Zsb2F0KTsKICAgLS0gIFVwZGF0ZSB0aGUgQWRqdXN0
bWVudCB2YWx1ZSB0byBlbnN1cmUgdGhhdCB0aGUgcmFuZ2UgYmV0d2VlbiBMb3dlciBhbmQKICAg
LS0gIFVwcGVyIGlzIGluIHRoZSBjdXJyZW50IHBhZ2UgKGkuZS4gYmV0d2VlbiB2YWx1ZSBhbmQg
dmFsdWUgKwogICAtLSAgcGFnZV9zaXplKS4gSWYgdGhlIHJhbmdlIGlzIGxhcmdlciB0aGFuIHRo
ZSBwYWdlIHNpemUsIHRoZW4gb25seSB0aGUKICAgLS0gIHN0YXJ0IG9mIGl0IHdpbGwgYmUgaW4g
dGhlIGN1cnJlbnQgcGFnZS4KICAgLS0gIEEgInZhbHVlX2NoYW5nZWQiIHNpZ25hbCB3aWxsIGJl
IGVtaXR0ZWQgaWYgdGhlIHZhbHVlIGlzIGNoYW5nZWQuCgogICAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAgIC0tIFNpZ25hbHMgZW1pc3Npb24gLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK
ICAgcHJvY2VkdXJlIENoYW5nZWQgKEFkanVzdG1lbnQgOiBhY2Nlc3MgR3RrX0FkanVzdG1lbnRf
UmVjb3JkKTsKICAgLS0gIEVtaXQgdGhlICJjaGFuZ2VkIiBzaWduYWwgb24gQWRqdXN0bWVudC4K
ICAgLS0gIFRoaXMgd2FybnMgYW55IGxpc3RlbmVyIHRoYXQgc29tZSBmaWVsZCBvdGhlciB0aGFu
IHRoZSB2YWx1ZSBoYXMgYmVlbgogICAtLSAgY2hhbmdlZC4KCiAgIHByb2NlZHVyZSBWYWx1ZV9D
aGFuZ2VkIChBZGp1c3RtZW50IDogYWNjZXNzIEd0a19BZGp1c3RtZW50X1JlY29yZCk7CiAgIC0t
ICBFbWl0IHRoZSAidmFsdWVfY2hhbmdlZCIgc2lnbmFsIG9uIEFkanVzdG1lbnQuCiAgIC0tICBU
aGlzIHdhcm5zIGFueSBsaXN0ZW5lciB0aGF0IHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkLgoK
ICAgLS0tLS0tLS0tLS0tLQogICAtLSBTaWduYWxzIC0tCiAgIC0tLS0tLS0tLS0tLS0KCiAgIC0t
ICA8c2lnbmFscz4KICAgLS0gIFRoZSBmb2xsb3dpbmcgbmV3IHNpZ25hbHMgYXJlIGRlZmluZWQg
Zm9yIHRoaXMgd2lkZ2V0OgogICAtLQogICAtLSAgLSAiY2hhbmdlZCIKICAgLS0gICAgcHJvY2Vk
dXJlIEhhbmRsZXIgKEFkanVzdG1lbnQgOiBhY2Nlc3MgR3RrX0FkanVzdG1lbnRfUmVjb3JkJ0Ns
YXNzKTsKICAgLS0KICAgLS0gICAgVGhpcyBzaWduYWwgaXMgZW1pdHRlZCBldmVyeSB0aW1lIG9u
ZSBvZiB0aGUgcGFyYW1ldGVycyBpcyBtb2RpZmllZCwKICAgLS0gICAgZXhjZXB0IHRoZSB2YWx1
ZS4KICAgLS0KICAgLS0gIC0gInZhbHVlX2NoYW5nZWQiCiAgIC0tICAgIHByb2NlZHVyZSBIYW5k
bGVyIChBZGp1c3RtZW50IDogYWNjZXNzIEd0a19BZGp1c3RtZW50X1JlY29yZCdDbGFzcyk7CiAg
IC0tCiAgIC0tICAgIFRoaXMgc2lnbmFsIGlzIGVtaXR0ZWQgZXZlcnkgdGltZSB0aGUgdmFsdWUg
b2YgdGhlIGFkanVzdG1lbnQgaXMKICAgLS0gICAgbW9kaWZpZWQKICAgLS0gIDwvc2lnbmFscz4K
CnByaXZhdGUKCiAgIHR5cGUgR3RrX0FkanVzdG1lbnRfUmVjb3JkIGlzIG5ldyBEYXRhLkd0a19E
YXRhX1JlY29yZCB3aXRoIG51bGwgcmVjb3JkOwoKICAgTnVsbF9BZGp1c3RtZW50IDogY29uc3Rh
bnQgR3RrX0FkanVzdG1lbnQgOj0gbnVsbDsKCiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9UeXBl
LCAiZ3RrX2FkanVzdG1lbnRfZ2V0X3R5cGUiKTsKZW5kIEd0ay5BZGp1c3RtZW50OwoKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0gQWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAg
VG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAg
ICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMTk5OSAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
ICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJyb2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQg
ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgICAgICAgLS0K
LS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAg
LS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy
YWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9z
dG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3Ro
ZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5
b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0g
ZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJl
c3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIg
aW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBm
aWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KCi0tICA8ZGVzY3JpcHRpb24+Ci0tCi0tICBBYnN0cmFjdCBjbGFzcyBm
b3Igb2JqZWN0cyBjb250YWluaW5nIGRhdGEKLS0gIFRoaXMgb2JqZWN0IGlzIGN1cnJlbnRseSBu
b3QgdmVyeSB1c2VmdWwgc2luY2UgaXQgb25seSBwcm92aWRlcwotLSAgYSBzaW5nbGUgImRpc2Nv
bm5lY3QiIHNpZ25hbC4KLS0KLS0gIFRoaXMgaXMgdGhlICJNb2RlbCIgaW4gdGhlIE1vZGVsL1Zp
ZXcvQ29udHJvbGxlciBmcmFtZXdvcmsuCi0tICA8L2Rlc2NyaXB0aW9uPgotLSAgPGNfdmVyc2lv
bj4xLjIuNjwvY192ZXJzaW9uPgoKd2l0aCBHdGsuT2JqZWN0OwoKcGFja2FnZSBHdGsuRGF0YSBp
cwoKICAgdHlwZSBHdGtfRGF0YV9SZWNvcmQgaXMgbmV3IE9iamVjdC5HdGtfT2JqZWN0X1JlY29y
ZCB3aXRoIHByaXZhdGU7CiAgIHR5cGUgR3RrX0RhdGEgaXMgYWNjZXNzIGFsbCBHdGtfRGF0YV9S
ZWNvcmQnQ2xhc3M7CgogICBmdW5jdGlvbiBHZXRfVHlwZSByZXR1cm4gR3RrLkd0a19UeXBlOwog
ICAtLSAgUmV0dXJuIHRoZSBpbnRlcm5hbCB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggYSBHdGtfRGF0
YS4KCiAgIC0tLS0tLS0tLS0tLS0KICAgLS0gU2lnbmFscyAtLQogICAtLS0tLS0tLS0tLS0tCgog
ICAtLSAgPHNpZ25hbHM+CiAgIC0tICBUaGUgZm9sbG93aW5nIG5ldyBzaWduYWxzIGFyZSBkZWZp
bmVkIGZvciB0aGlzIHdpZGdldDoKICAgLS0KICAgLS0gIC0gImRpc2Nvbm5lY3QiCiAgIC0tICAg
IHByb2NlZHVyZSBIYW5kbGVyIChEYXRhIDogYWNjZXNzIEd0a19EYXRhX1JlY29yZCdDbGFzcyk7
CiAgIC0tCiAgIC0tICAgIEVtaXR0ZWQganVzdCBiZWZvcmUgRGF0YSBpcyBkZXN0cm95ZWQuCiAg
IC0tICA8L3NpZ25hbHM+Cgpwcml2YXRlCiAgIHR5cGUgR3RrX0RhdGFfUmVjb3JkIGlzIG5ldyBP
YmplY3QuR3RrX09iamVjdF9SZWNvcmQgd2l0aCBudWxsIHJlY29yZDsKICAgcHJhZ21hIEltcG9y
dCAoQywgR2V0X1R5cGUsICJndGtfZGF0YV9nZXRfdHlwZSIpOwplbmQgR3RrLkRhdGE7Ci0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1w
IFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAg
ICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTE5OTkgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t
ICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0
ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0t
Ci0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAg
IC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l
cmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJv
c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90
aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3Ig
eW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0t
IGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSBy
ZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVy
IGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUg
ZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0t
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCgp3aXRoIEdsaWI7CndpdGggR2xpYi5HbGlzdDsKcHJhZ21hIEVsYWJv
cmF0ZV9BbGwgKEdsaWIuR2xpc3QpOwoKd2l0aCBTeXN0ZW07CgpwYWNrYWdlIEd0ay5FbnVtcyBp
cwoKICAgdHlwZSBHdGtfU3RhdGVfVHlwZSBpcwogICAgIChTdGF0ZV9Ob3JtYWwsCiAgICAgIFN0
YXRlX0FjdGl2ZSwKICAgICAgU3RhdGVfUHJlbGlnaHQsCiAgICAgIFN0YXRlX1NlbGVjdGVkLAog
ICAgICBTdGF0ZV9JbnNlbnNpdGl2ZSk7CgogICB0eXBlIEd0a19XaW5kb3dfVHlwZSBpcyAoV2lu
ZG93X1RvcGxldmVsLCBXaW5kb3dfRGlhbG9nLCBXaW5kb3dfUG9wdXApOwoKICAgdHlwZSBHdGtf
QnV0dG9uX0FjdGlvbiBpcyBuZXcgR3VpbnQ7CiAgIEJ1dHRvbl9JZ25vcmVkIDogY29uc3RhbnQg
R3RrX0J1dHRvbl9BY3Rpb24gOj0gMDsKICAgQnV0dG9uX1NlbGVjdHMgOiBjb25zdGFudCBHdGtf
QnV0dG9uX0FjdGlvbiA6PSAxICoqIDA7CiAgIEJ1dHRvbl9EcmFncyAgIDogY29uc3RhbnQgR3Rr
X0J1dHRvbl9BY3Rpb24gOj0gMSAqKiAxOwogICBCdXR0b25fRXhwYW5kcyA6IGNvbnN0YW50IEd0
a19CdXR0b25fQWN0aW9uIDo9IDEgKiogMjsKCiAgIHR5cGUgR3RrX0J1dHRvbl9Cb3hfU3R5bGUg
aXMKICAgICAoQnV0dG9uYm94X0RlZmF1bHRfU3R5bGUsCiAgICAgIEJ1dHRvbmJveF9TcHJlYWQs
CiAgICAgIEJ1dHRvbmJveF9FZGdlLAogICAgICBCdXR0b25ib3hfU3RhcnQsCiAgICAgIEJ1dHRv
bmJveF9FbmQpOwoKICAgdHlwZSBHdGtfRGlyZWN0aW9uX1R5cGUgaXMKICAgICAoRGlyX1RhYl9G
b3J3YXJkLAogICAgICBEaXJfVGFiX0JhY2t3YXJkLAogICAgICBEaXJfVXAsCiAgICAgIERpcl9E
b3duLAogICAgICBEaXJfTGVmdCwKICAgICAgRGlyX1JpZ2h0KTsKCiAgIHR5cGUgR3RrX1NoYWRv
d19UeXBlIGlzCiAgICAgKFNoYWRvd19Ob25lLAogICAgICBTaGFkb3dfSW4sCiAgICAgIFNoYWRv
d19PdXQsCiAgICAgIFNoYWRvd19FdGNoZWRfSW4sCiAgICAgIFNoYWRvd19FdGNoZWRfT3V0KTsK
CiAgIHR5cGUgR3RrX0Fycm93X1R5cGUgaXMgKEFycm93X1VwLCBBcnJvd19Eb3duLCBBcnJvd19M
ZWZ0LCBBcnJvd19SaWdodCk7CgogICB0eXBlIEd0a19DZWxsX1R5cGUgaXMKICAgICAoQ2VsbF9F
bXB0eSwKICAgICAgQ2VsbF9UZXh0LAogICAgICBDZWxsX1BpeG1hcCwKICAgICAgQ2VsbF9QaXh0
ZXh0LAogICAgICBDZWxsX1dpZGdldCk7CgogICB0eXBlIEd0a19QYWNrX1R5cGUgaXMgKFBhY2tf
U3RhcnQsIFBhY2tfRW5kKTsKCiAgIHR5cGUgR3RrX1BvbGljeV9UeXBlIGlzIChQb2xpY3lfQWx3
YXlzLCBQb2xpY3lfQXV0b21hdGljLCBQb2xpY3lfTmV2ZXIpOwoKICAgdHlwZSBHdGtfVXBkYXRl
X1R5cGUgaXMKICAgICAoVXBkYXRlX0NvbnRpbnVvdXMsCiAgICAgIFVwZGF0ZV9EaXNjb250aW51
b3VzLAogICAgICBVcGRhdGVfRGVsYXllZCk7CgogICB0eXBlIEd0a19SZWxpZWZfU3R5bGUgaXMg
KFJlbGllZl9Ob3JtYWwsIFJlbGllZl9IYWxmLCBSZWxpZWZfTm9uZSk7CgogICB0eXBlIEd0a19B
dHRhY2hfT3B0aW9ucyBpcyBuZXcgR2xpYi5HdWludDMyOwogICBFeHBhbmQgOiBjb25zdGFudCBH
dGtfQXR0YWNoX09wdGlvbnMgOj0gMTsKICAgU2hyaW5rIDogY29uc3RhbnQgR3RrX0F0dGFjaF9P
cHRpb25zIDo9IDI7CiAgIEZpbGwgICA6IGNvbnN0YW50IEd0a19BdHRhY2hfT3B0aW9ucyA6PSA0
OwoKICAgdHlwZSBHdGtfV2luZG93X1Bvc2l0aW9uIGlzCiAgICAgKFdpbl9Qb3NfTm9uZSwKICAg
ICAgV2luX1Bvc19DZW50ZXIsCiAgICAgIFdpbl9Qb3NfTW91c2UsCiAgICAgIFdpbl9Qb3NfQ2Vu
dGVyX0Fsd2F5cyk7CgogICB0eXBlIEd0a19TdWJtZW51X0RpcmVjdGlvbiBpcyAoRGlyZWN0aW9u
X0xlZnQsIERpcmVjdGlvbl9SaWdodCk7CgogICB0eXBlIEd0a19TdWJtZW51X1BsYWNlbWVudCBp
cyAoVG9wX0JvdHRvbSwgTGVmdF9SaWdodCk7CgogICB0eXBlIEd0a19SZXNpemVfTW9kZSBpcwog
ICAgIChSZXNpemVfUGFyZW50LCAgICAgLS0gIFBhc3MgcmVxdWVzdCB0byB0aGUgcGFyZW50CiAg
ICAgIFJlc2l6ZV9RdWV1ZSwgICAgICAtLSAgUXVldWUgcmVzaXplcyBvbiB0aGlzIHdpZGdldAog
ICAgICBSZXNpemVfSW1tZWRpYXRlKTsgLS0gIFBlcmZvcm0gdGhlIHJlc2l6ZXMgbm93CgogICB0
eXBlIEd0a19NZXRyaWNfVHlwZSBpcyAoUGl4ZWxzLCBJbmNoZXMsIENlbnRpbWV0ZXJzKTsKCiAg
IHR5cGUgR3RrX1Njcm9sbF9UeXBlIGlzCiAgICAgKFNjcm9sbF9Ob25lLAogICAgICBTY3JvbGxf
U3RlcF9CYWNrd2FyZCwKICAgICAgU2Nyb2xsX1N0ZXBfRm9yd2FyZCwKICAgICAgU2Nyb2xsX1Bh
Z2VfQmFja3dhcmQsCiAgICAgIFNjcm9sbF9QYWdlX0ZvcndhcmQsCiAgICAgIFNjcm9sbF9KdW1w
KTsKCiAgIHR5cGUgR3RrX1Ryb3VnaF9UeXBlIGlzCiAgICAgKFRyb3VnaF9Ob25lLAogICAgICBU
cm91Z2hfU3RhcnQsCiAgICAgIFRyb3VnaF9FbmQsCiAgICAgIFRyb3VnaF9KdW1wKTsKCiAgIHR5
cGUgR3RrX1Bvc2l0aW9uX1R5cGUgaXMKICAgICAoUG9zX0xlZnQsCiAgICAgIFBvc19SaWdodCwK
ICAgICAgUG9zX1RvcCwKICAgICAgUG9zX0JvdHRvbSk7CgogICB0eXBlIEd0a19QcmV2aWV3X1R5
cGUgaXMgKFByZXZpZXdfQ29sb3IsIFByZXZpZXdfR3JheXNjYWxlKTsKCiAgIHR5cGUgR3RrX0p1
c3RpZmljYXRpb24gaXMKICAgICAoSnVzdGlmeV9MZWZ0LAogICAgICBKdXN0aWZ5X1JpZ2h0LAog
ICAgICBKdXN0aWZ5X0NlbnRlciwKICAgICAgSnVzdGlmeV9GaWxsKTsKCiAgIHR5cGUgR3RrX1Nl
bGVjdGlvbl9Nb2RlIGlzCiAgICAgKFNlbGVjdGlvbl9TaW5nbGUsCiAgICAgIFNlbGVjdGlvbl9C
cm93c2UsCiAgICAgIFNlbGVjdGlvbl9NdWx0aXBsZSwKICAgICAgU2VsZWN0aW9uX0V4dGVuZGVk
KTsKCiAgIHR5cGUgR3RrX09yaWVudGF0aW9uIGlzIChPcmllbnRhdGlvbl9Ib3Jpem9udGFsLCBP
cmllbnRhdGlvbl9WZXJ0aWNhbCk7CgogICB0eXBlIEd0a19TcGluX0J1dHRvbl9VcGRhdGVfUG9s
aWN5IGlzIChVcGRhdGVfQWx3YXlzLCBVcGRhdGVfSWZfVmFsaWQpOwoKICAgdHlwZSBHdGtfVG9v
bGJhcl9DaGlsZF9UeXBlIGlzCiAgICAgKFRvb2xiYXJfQ2hpbGRfU3BhY2UsCiAgICAgIFRvb2xi
YXJfQ2hpbGRfQnV0dG9uLAogICAgICBUb29sYmFyX0NoaWxkX1RvZ2dsZWJ1dHRvbiwKICAgICAg
VG9vbGJhcl9DaGlsZF9SYWRpb2J1dHRvbiwKICAgICAgVG9vbGJhcl9DaGlsZF9XaWRnZXQpOwoK
ICAgdHlwZSBHdGtfVG9vbGJhcl9TdHlsZSBpcyAoVG9vbGJhcl9JY29ucywgVG9vbGJhcl9UZXh0
LCBUb29sYmFyX0JvdGgpOwoKICAgdHlwZSBHdGtfVG9vbGJhcl9TcGFjZV9TdHlsZSBpcyAoVG9v
bGJhcl9TcGFjZV9FbXB0eSwgVG9vbGJhcl9TcGFjZV9MaW5lKTsKCiAgIHR5cGUgR3RrX1RyZWVf
Vmlld19Nb2RlIGlzIChUcmVlX1ZpZXdfTGluZSwgVHJlZV9WaWV3X0l0ZW0pOwoKICAgdHlwZSBH
dGtfVmlzaWJpbGl0eSBpcwogICAgIChWaXNpYmlsaXR5X05vbmUsIFZpc2liaWxpdHlfUGFydGlh
bCwgVmlzaWJpbGl0eV9GdWxsKTsKCiAgIHR5cGUgR3RrX1Byb2dyZXNzX0Jhcl9TdHlsZSBpcwog
ICAgIChQcm9ncmVzc19Db250aW51b3VzLCBQcm9ncmVzc19EaXNjcmV0ZSk7CgogICB0eXBlIEd0
a19Qcm9ncmVzc19CYXJfT3JpZW50YXRpb24gaXMKICAgICAoUHJvZ3Jlc3NfTGVmdF9Ub19SaWdo
dCwKICAgICAgUHJvZ3Jlc3NfUmlnaHRfVG9fTGVmdCwKICAgICAgUHJvZ3Jlc3NfQm90dG9tX1Rv
X1RvcCwKICAgICAgUHJvZ3Jlc3NfVG9wX1RvX0JvdHRvbSk7CgogICB0eXBlIEd0a19DdHJlZV9M
aW5lX1N0eWxlIGlzCiAgICAgKEN0cmVlX0xpbmVzX05vbmUsCiAgICAgIC0tICBObyBsaW5lIHdp
bGwgYmUgZHJhd24gaW4gdGhlIEN0cmVlCgogICAgICBDdHJlZV9MaW5lc19Tb2xpZCwKICAgICAg
LS0gIFNvbGlkIGxpbmVzIHdpbGwgYmUgZHJhd24KCiAgICAgIEN0cmVlX0xpbmVzX0RvdHRlZCwK
ICAgICAgLS0gIERvdHRlZCBsaW5lcyB3aWxsIGJlIGRyYXduCgogICAgICBDdHJlZV9MaW5lc19U
YWJiZWQKICAgICAgLS0gIFRoZSB0cmVlIHdvbid0IGJlIGhpZ2hsaWdodGVkIGJ5IGxpbmVzIGJ1
dCBieSB0YWJzIHN1cnJvdW5kaW5nIG5vZGVzCiAgICAgKTsKICAgLS0gIFNlZSBHdGsuQ3RyZWUu
U2V0X0xpbmVfU3R5bGUgZm9yIG1vcmUgZGV0YWlscy4KCiAgIHR5cGUgR3RrX0N0cmVlX0V4cGFu
ZGVyX1N0eWxlIGlzCiAgICAgKEN0cmVlX0V4cGFuZGVyX05vbmUsCiAgICAgIC0tICBObyBwaXht
YXAgd2lsbCBiZSBkcmF3biwgeW91IHdpbGwgaGF2ZSB0byBkb3VibGUtY2xpY2sgb24gdGhlIG5v
ZGUgdG8KICAgICAgLS0gIGV4cGFuZCBpdC4KCiAgICAgIEN0cmVlX0V4cGFuZGVyX1NxdWFyZSwK
ICAgICAgLS0gIFRoZSBwaXhtYXAgd2lsbCBiZSBhIHNxdWFyZQoKICAgICAgQ3RyZWVfRXhwYW5k
ZXJfVHJpYW5nbGUsCiAgICAgIC0tICBUaGUgcGl4bWFwIHdpbGwgYmUgYSB0cmlhbmdsZQoKICAg
ICAgQ3RyZWVfRXhwYW5kZXJfQ2lyY3VsYXIKICAgICAgLS0gIFRoZSBwaXhtYXAgd2lsbCBiZSBh
IGNpcmNsZQogICAgICk7CiAgIC0tICBTZWUgR3RrLkN0cmVlLlNldF9FeHBhbmRlcl9TdHlsZSBm
b3IgbW9yZSBkZXRhaWxzLgoKICAgLS0gIFNvbWUgR2xpYiBpbnN0YW50aWF0aW9ucwoKICAgZnVu
Y3Rpb24gQ29udmVydCAoUyA6IFN0cmluZykgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICBmdW5j
dGlvbiBDb252ZXJ0IChTIDogU3lzdGVtLkFkZHJlc3MpIHJldHVybiBTdHJpbmc7CiAgIGZ1bmN0
aW9uIENvbnZlcnRfSSAoSSA6IEdpbnQpIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgZnVuY3Rp
b24gQ29udmVydF9BIChTIDogU3lzdGVtLkFkZHJlc3MpIHJldHVybiBHaW50OwogICBwcmFnbWEg
SW1wb3J0IChDLCBDb252ZXJ0X0ksICJjb252ZXJ0X2kiKTsKICAgcHJhZ21hIEltcG9ydCAoQywg
Q29udmVydF9BLCAiY29udmVydF9hIik7CgogICBwYWNrYWdlIFN0cmluZ19MaXN0IGlzIG5ldyBH
bGliLkdsaXN0LkdlbmVyaWNfTGlzdCAoU3RyaW5nKTsKICAgLS0gIFdhcm5pbmc6IHdoZW4geW91
IGNyZWF0ZSB0aGlzIGxpc3QsIG5ldyBtZW1vcnkgZ2V0cyBhbGxvY2F0ZWQgZm9yCiAgIC0tICBh
bGwgdGhlIHN0cmluZ3MuIFlvdSBzaG91bGQgdXNlIHRoZSBmdW5jdGlvbiBGcmVlX1N0cmluZ19M
aXN0CiAgIC0tICBpbnN0ZWFkIG9mIEdsaWIuR2xpc3QuRnJlZSB0byBiZSBzdXJlIHRvIGZyZWUg
dGhpcyBtZW1vcnkuCgogICBwcm9jZWR1cmUgRnJlZV9TdHJpbmdfTGlzdCAoTGlzdCA6IGluIG91
dCBTdHJpbmdfTGlzdC5HbGlzdCk7CiAgIC0tICBGcmVlIHRoZSBtZW1vcnkgb2NjdXBpZWQgYnkg
YWxsIHRoZSBzdHJpbmdzIGluIHRoZSBsaXN0LCBhcyB3ZWxsCiAgIC0tICBhcyB0aGUgbWVtb3J5
IG9jY3VwaWVkIGJ5IHRoZSBsaXN0IGl0c2VsZi4KCiAgIHBhY2thZ2UgR2ludF9MaXN0IGlzIG5l
dwogICAgIEdsaWIuR2xpc3QuR2VuZXJpY19MaXN0IChHaW50LCBDb252ZXJ0X0ksIENvbnZlcnRf
QSk7CgogICBmdW5jdGlvbiBDb252ZXJ0X1VJIChJIDogR3VpbnQpIHJldHVybiBTeXN0ZW0uQWRk
cmVzczsKICAgZnVuY3Rpb24gQ29udmVydF9VQSAoUyA6IFN5c3RlbS5BZGRyZXNzKSByZXR1cm4g
R3VpbnQ7CiAgIHByYWdtYSBJbXBvcnQgKEMsIENvbnZlcnRfVUksICJjb252ZXJ0X3VpIik7CiAg
IHByYWdtYSBJbXBvcnQgKEMsIENvbnZlcnRfVUEsICJjb252ZXJ0X3VhIik7CiAgIHBhY2thZ2Ug
R3VpbnRfTGlzdCBpcyBuZXcKICAgICBHbGliLkdsaXN0LkdlbmVyaWNfTGlzdCAoR3VpbnQsIENv
bnZlcnRfVUksIENvbnZlcnRfVUEpOwoKZW5kIEd0ay5FbnVtczsKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0g
ICAgICAgICAgR3RrQWRhIC0gQWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAg
ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmln
aHQgKEMpIDIwMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFu
dWVsIEJyaW90LCBKb2VsIEJyb2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0K
LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAg
LS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLiAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg
ICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAg
ICAgICAgLS0KLS0gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgICAgICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjEx
MS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5z
dGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlz
IHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwg
dGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0K
LS0gZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBh
bnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBi
ZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KCndpdGggR2xpYjsgICAgICAgICB1c2UgR2xpYjsKd2l0aCBHdGsuV2lkZ2V0OyAgIHVzZSBH
dGsuV2lkZ2V0Owp3aXRoIEd0a2FkYS5UeXBlczsgdXNlIEd0a2FkYS5UeXBlczsKd2l0aCBHZGsu
Q29sb3I7ICAgIHVzZSBHZGsuQ29sb3I7CndpdGggSW50ZXJmYWNlcy5DOyB1c2UgSW50ZXJmYWNl
cy5DOwoKcGFja2FnZSBib2R5IEd0ay5FeHRyYS5QbG90X0RhdGEgaXMKCiAgIC0tLS0tLS0tLS0t
LS0KICAgLS0gR3RrX05ldyAtLQogICAtLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgR3RrX05l
dwogICAgIChEYXRhIDogb3V0IEd0a19QbG90X0RhdGE7IEZ1bmMgOiBQbG90X0Z1bmN0aW9uIDo9
IG51bGwpIGlzCiAgIGJlZ2luCiAgICAgIERhdGEgOj0gbmV3IEd0a19QbG90X0RhdGFfUmVjb3Jk
OwogICAgICBJbml0aWFsaXplIChEYXRhLCBGdW5jKTsKICAgZW5kIEd0a19OZXc7CgogICAtLS0t
LS0tLS0tLS0tLS0tCiAgIC0tIEluaXRpYWxpemUgLS0KICAgLS0tLS0tLS0tLS0tLS0tLQoKICAg
cHJvY2VkdXJlIEluaXRpYWxpemUKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1Jl
Y29yZCdDbGFzczsgRnVuYyA6IFBsb3RfRnVuY3Rpb24gOj0gbnVsbCkKICAgaXMKICAgICAgZnVu
Y3Rpb24gSW50ZXJuYWwgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICBwcmFnbWEgSW1wb3J0
IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfbmV3Iik7CgogICAgICBmdW5jdGlvbiBJbnRl
cm5hbDIgKEZ1bmMgOiBQbG90X0Z1bmN0aW9uKSByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAg
IHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsMiwgImd0a19wbG90X2RhdGFfbmV3X2Z1bmN0aW9u
Iik7CiAgIGJlZ2luCiAgICAgIGlmIEZ1bmMgPSBudWxsIHRoZW4KICAgICAgICAgU2V0X09iamVj
dCAoRGF0YSwgSW50ZXJuYWwpOwogICAgICBlbHNlCiAgICAgICAgIFNldF9PYmplY3QgKERhdGEs
IEludGVybmFsMiAoRnVuYykpOwogICAgICBlbmQgaWY7CiAgICAgIEluaXRpYWxpemVfVXNlcl9E
YXRhIChEYXRhKTsKICAgZW5kIEluaXRpYWxpemU7CgogICAtLS0tLS0tLS0tLS0tLQogICAtLSBT
ZXRfTmFtZSAtLQogICAtLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNldF9OYW1lIChEYXRh
IDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBOYW1lIDogU3RyaW5nKSBpcwogICAgICBw
cm9jZWR1cmUgSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRkcmVzczsgTmFtZSA6IGluIFN0cmlu
Zyk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9zZXRf
bmFtZSIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIE5hbWUg
JiBBU0NJSS5OVUwpOwogICBlbmQgU2V0X05hbWU7CgogICAtLS0tLS0tLS0tLQogICAtLSBQYWlu
dCAtLQogICAtLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFBhaW50IChEYXRhIDogYWNjZXNzIEd0
a19QbG90X0RhdGFfUmVjb3JkKSBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERhdGEgOiBT
eXN0ZW0uQWRkcmVzcyk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bs
b3RfZGF0YV9wYWludCIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0
YSkpOwogICBlbmQgUGFpbnQ7CgogICAtLS0tLS0tLS0tLS0tLS0tLQogICAtLSBEcmF3X1BvaW50
cyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIERyYXdfUG9pbnRzIChEYXRh
IDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBOIDogR2ludCkgaXMKICAgICAgcHJvY2Vk
dXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3M7IE4gOiBHaW50KTsKICAgICAgcHJh
Z21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2RyYXdfcG9pbnRzIik7CiAg
IGJlZ2luCiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgTik7CiAgIGVuZCBEcmF3
X1BvaW50czsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIERyYXdfU3ltYm9sIC0tCiAgIC0t
LS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgRHJhd19TeW1ib2wKICAgICAoRGF0YSA6IGFj
Y2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgWCwgWSA6IEdkb3VibGUpCiAgIGlzCiAgICAgIHBy
b2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzOyBYLCBZIDogR2RvdWJsZSk7
CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9kcmF3X3N5
bWJvbCIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIFgsIFkp
OwogICBlbmQgRHJhd19TeW1ib2w7CgogICAtLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9Qb2lu
dHMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNldF9Qb2ludHMKICAgICAo
RGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgWCAgICA6IEdkb3VibGVf
QXJyYXlfQWNjZXNzOwogICAgICBZICAgIDogR2RvdWJsZV9BcnJheV9BY2Nlc3M7CiAgICAgIER4
ICAgOiBHZG91YmxlX0FycmF5X0FjY2VzczsKICAgICAgRHkgICA6IEdkb3VibGVfQXJyYXlfQWNj
ZXNzKQogICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERhdGEgICAgICAgOiBpbiBTeXN0
ZW0uQWRkcmVzczsKICAgICAgICAgICAgICAgICAgICAgICAgICBYICAgICAgICAgIDogaW4gU3lz
dGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgWSAgICAgICAgICA6IGluIFN5
c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAgICAgICAgICAgICAgIER4ICAgICAgICAgOiBpbiBT
eXN0ZW0uQWRkcmVzczsKICAgICAgICAgICAgICAgICAgICAgICAgICBEeSAgICAgICAgIDogaW4g
U3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtX1BvaW50cyA6IGlu
IEdpbnQpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFf
c2V0X3BvaW50cyIpOwogICAgICBYYSwgWWEsIER4YSwgRHlhIDogU3lzdGVtLkFkZHJlc3MgOj0g
U3lzdGVtLk51bGxfQWRkcmVzczsKICAgYmVnaW4KICAgICAgaWYgWCAvPSBudWxsIHRoZW4KICAg
ICAgICAgWGEgOj0gWCAoWCdGaXJzdCknQWRkcmVzczsKICAgICAgZW5kIGlmOwoKICAgICAgaWYg
WSAvPSBudWxsIHRoZW4KICAgICAgICAgWWEgOj0gWSAoWSdGaXJzdCknQWRkcmVzczsKICAgICAg
ZW5kIGlmOwoKICAgICAgaWYgRHggLz0gbnVsbCB0aGVuCiAgICAgICAgIER4YSA6PSBEeCAoRHgn
Rmlyc3QpJ0FkZHJlc3M7CiAgICAgIGVuZCBpZjsKCiAgICAgIGlmIER5IC89IG51bGwgdGhlbgog
ICAgICAgICBEeWEgOj0gRHkgKER5J0ZpcnN0KSdBZGRyZXNzOwogICAgICBlbmQgaWY7CgogICAg
ICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIFhhLCBZYSwgRHhhLCBEeWEsIFgnTGVuZ3Ro
KTsKICAgZW5kIFNldF9Qb2ludHM7CgogICAtLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEdldF9Qb2lu
dHMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIEdldF9Qb2ludHMKICAgICAo
RGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgWCAgICA6IG91dCBQb2lu
dHNfQXJyYXk7CiAgICAgIFkgICAgOiBvdXQgUG9pbnRzX0FycmF5OwogICAgICBEeCAgIDogb3V0
IFBvaW50c19BcnJheTsKICAgICAgRHkgICA6IG91dCBQb2ludHNfQXJyYXkpCiAgIGlzCiAgICAg
IHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSAgICAgICA6IGluIFN5c3RlbS5BZGRyZXNzOwogICAg
ICAgICAgICAgICAgICAgICAgICAgIFggICAgICAgICAgOiBvdXQgU3lzdGVtLkFkZHJlc3M7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgWSAgICAgICAgICA6IG91dCBTeXN0ZW0uQWRkcmVzczsK
ICAgICAgICAgICAgICAgICAgICAgICAgICBEeCAgICAgICAgIDogb3V0IFN5c3RlbS5BZGRyZXNz
OwogICAgICAgICAgICAgICAgICAgICAgICAgIER5ICAgICAgICAgOiBvdXQgU3lzdGVtLkFkZHJl
c3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtX1BvaW50cyA6IG91dCBHaW50KTsKICAg
ICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2dldF9wb2ludHMi
KTsKICAgICAgTnVtX1BvaW50cyA6IEdpbnQ7CiAgICAgIFgxLCBZMSwgRHgxLCBEeTEgOiBTeXN0
ZW0uQWRkcmVzczsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBY
MSwgWTEsIER4MSwgRHkxLCBOdW1fUG9pbnRzKTsKICAgICAgWCAgOj0gKFBvaW50cyA9PiBUb19E
b3VibGVfQXJyYXkgKFgxKSwgIE51bV9Qb2ludHMgPT4gTnVtX1BvaW50cyk7CiAgICAgIFkgIDo9
IChQb2ludHMgPT4gVG9fRG91YmxlX0FycmF5IChZMSksICBOdW1fUG9pbnRzID0+IE51bV9Qb2lu
dHMpOwogICAgICBEeCA6PSAoUG9pbnRzID0+IFRvX0RvdWJsZV9BcnJheSAoRHgxKSwgTnVtX1Bv
aW50cyA9PiBOdW1fUG9pbnRzKTsKICAgICAgRHkgOj0gKFBvaW50cyA9PiBUb19Eb3VibGVfQXJy
YXkgKER5MSksIE51bV9Qb2ludHMgPT4gTnVtX1BvaW50cyk7CiAgIGVuZCBHZXRfUG9pbnRzOwoK
ICAgLS0tLS0tLS0tLS0KICAgLS0gU2V0X1ggLS0KICAgLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVy
ZSBTZXRfWAogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBYIDogR2Rv
dWJsZV9BcnJheV9BY2Nlc3MpCiAgIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6
IFN5c3RlbS5BZGRyZXNzOyBYIDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0
IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfc2V0X3giKTsKICAgYmVnaW4KICAgICAgcHJh
Z21hIEFzc2VydCAoR2V0X051bXBvaW50cyAoRGF0YSkgPSBYJ0xlbmd0aCk7CiAgICAgIEludGVy
bmFsIChHZXRfT2JqZWN0IChEYXRhKSwgWCAoWCdGaXJzdCknQWRkcmVzcyk7CiAgIGVuZCBTZXRf
WDsKCiAgIC0tLS0tLS0tLS0tCiAgIC0tIFNldF9ZIC0tCiAgIC0tLS0tLS0tLS0tCgogICBwcm9j
ZWR1cmUgU2V0X1kKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgWSA6
IEdkb3VibGVfQXJyYXlfQWNjZXNzKQogICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERh
dGEgOiBTeXN0ZW0uQWRkcmVzczsgWSA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIElt
cG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3NldF95Iik7CiAgIGJlZ2luCiAgICAg
IHByYWdtYSBBc3NlcnQgKEdldF9OdW1wb2ludHMgKERhdGEpID0gWSdMZW5ndGgpOwogICAgICBJ
bnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIFkgKFknRmlyc3QpJ0FkZHJlc3MpOwogICBlbmQg
U2V0X1k7CgogICAtLS0tLS0tLS0tLQogICAtLSBTZXRfWiAtLQogICAtLS0tLS0tLS0tLQoKICAg
cHJvY2VkdXJlIFNldF9aCiAgICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7
IFogOiBHZG91YmxlX0FycmF5X0FjY2VzcykKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFs
IChEYXRhIDogU3lzdGVtLkFkZHJlc3M7IFogOiBTeXN0ZW0uQWRkcmVzcyk7CiAgICAgIHByYWdt
YSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9zZXRfeiIpOwogICBiZWdpbgog
ICAgICBwcmFnbWEgQXNzZXJ0IChHZXRfTnVtcG9pbnRzIChEYXRhKSA9IFonTGVuZ3RoKTsKICAg
ICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBaIChaJ0ZpcnN0KSdBZGRyZXNzKTsKICAg
ZW5kIFNldF9aOwoKICAgLS0tLS0tLS0tLS0KICAgLS0gU2V0X0EgLS0KICAgLS0tLS0tLS0tLS0K
CiAgIHByb2NlZHVyZSBTZXRfQQogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVj
b3JkOyBBIDogR2RvdWJsZV9BcnJheV9BY2Nlc3MpCiAgIGlzCiAgICAgIHByb2NlZHVyZSBJbnRl
cm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzOyBBIDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBw
cmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfc2V0X2EiKTsKICAgYmVn
aW4KICAgICAgcHJhZ21hIEFzc2VydCAoR2V0X051bXBvaW50cyAoRGF0YSkgPSBBJ0xlbmd0aCk7
CiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgQSAoQSdGaXJzdCknQWRkcmVzcyk7
CiAgIGVuZCBTZXRfQTsKCiAgIC0tLS0tLS0tLS0tLQogICAtLSBTZXRfRHggLS0KICAgLS0tLS0t
LS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X0R4CiAgICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3Rf
RGF0YV9SZWNvcmQ7IER4IDogR2RvdWJsZV9BcnJheV9BY2Nlc3MpCiAgIGlzCiAgICAgIHByb2Nl
ZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzOyBEeCA6IFN5c3RlbS5BZGRyZXNz
KTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3NldF9k
eCIpOwogICBiZWdpbgogICAgICBwcmFnbWEgQXNzZXJ0IChHZXRfTnVtcG9pbnRzIChEYXRhKSA9
IER4J0xlbmd0aCk7CiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgRHggKER4J0Zp
cnN0KSdBZGRyZXNzKTsKICAgZW5kIFNldF9EeDsKCiAgIC0tLS0tLS0tLS0tLQogICAtLSBTZXRf
RHkgLS0KICAgLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X0R5CiAgICAgKERhdGEgOiBh
Y2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IER5IDogR2RvdWJsZV9BcnJheV9BY2Nlc3MpCiAg
IGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzOyBEeSA6
IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtf
cGxvdF9kYXRhX3NldF9keSIpOwogICBiZWdpbgogICAgICBwcmFnbWEgQXNzZXJ0IChHZXRfTnVt
cG9pbnRzIChEYXRhKSA9IER5J0xlbmd0aCk7CiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0IChE
YXRhKSwgRHkgKER5J0ZpcnN0KSdBZGRyZXNzKTsKICAgZW5kIFNldF9EeTsKCiAgIC0tLS0tLS0t
LS0tLQogICAtLSBTZXRfRHogLS0KICAgLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X0R6
CiAgICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IER6IDogR2RvdWJsZV9B
cnJheV9BY2Nlc3MpCiAgIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3Rl
bS5BZGRyZXNzOyBEeiA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywg
SW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3NldF9keiIpOwogICBiZWdpbgogICAgICBwcmFnbWEg
QXNzZXJ0IChHZXRfTnVtcG9pbnRzIChEYXRhKSA9IER6J0xlbmd0aCk7CiAgICAgIEludGVybmFs
IChHZXRfT2JqZWN0IChEYXRhKSwgRHogKER6J0ZpcnN0KSdBZGRyZXNzKTsKICAgZW5kIFNldF9E
ejsKCiAgIC0tLS0tLS0tLS0tLQogICAtLSBTZXRfRGEgLS0KICAgLS0tLS0tLS0tLS0tCgogICBw
cm9jZWR1cmUgU2V0X0RhCiAgICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7
IERhIDogR2RvdWJsZV9BcnJheV9BY2Nlc3MpCiAgIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5h
bCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzOyBEYSA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJh
Z21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3NldF9kYSIpOwogICBiZWdp
bgogICAgICBwcmFnbWEgQXNzZXJ0IChHZXRfTnVtcG9pbnRzIChEYXRhKSA9IERhJ0xlbmd0aCk7
CiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgRGEgKERhJ0ZpcnN0KSdBZGRyZXNz
KTsKICAgZW5kIFNldF9EYTsKCiAgIC0tLS0tLS0tLS0tCiAgIC0tIEdldF9YIC0tCiAgIC0tLS0t
LS0tLS0tCgogICBmdW5jdGlvbiBHZXRfWCAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1Jl
Y29yZCkgcmV0dXJuIFBvaW50c19BcnJheSBpcwogICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoRGF0
YSA6IFN5c3RlbS5BZGRyZXNzOyBOdW1fUG9pbnRzIDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAg
IHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWws
ICJndGtfcGxvdF9kYXRhX2dldF94Iik7CgogICAgICBOdW1fUG9pbnRzIDogYWxpYXNlZCBHaW50
OwogICAgICBTIDogU3lzdGVtLkFkZHJlc3MgOj0gSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEp
LCBOdW1fUG9pbnRzJ0FkZHJlc3MpOwogICBiZWdpbgogICAgICByZXR1cm4gKFBvaW50cyA9PiBU
b19Eb3VibGVfQXJyYXkgKFMpLCBOdW1fUG9pbnRzID0+IE51bV9Qb2ludHMpOwogICBlbmQgR2V0
X1g7CgogICAtLS0tLS0tLS0tLQogICAtLSBHZXRfWSAtLQogICAtLS0tLS0tLS0tLQoKICAgZnVu
Y3Rpb24gR2V0X1kgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpIHJldHVybiBQ
b2ludHNfQXJyYXkgaXMKICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRk
cmVzczsgTnVtX1BvaW50cyA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICByZXR1cm4gU3lzdGVt
LkFkZHJlc3M7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0
YV9nZXRfeSIpOwoKICAgICAgTnVtX1BvaW50cyA6IGFsaWFzZWQgR2ludDsKICAgICAgUyA6IFN5
c3RlbS5BZGRyZXNzIDo9IEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgTnVtX1BvaW50cydB
ZGRyZXNzKTsKICAgYmVnaW4KICAgICAgcmV0dXJuIChQb2ludHMgPT4gVG9fRG91YmxlX0FycmF5
IChTKSwgTnVtX1BvaW50cyA9PiBOdW1fUG9pbnRzKTsKICAgZW5kIEdldF9ZOwoKICAgLS0tLS0t
LS0tLS0KICAgLS0gR2V0X1ogLS0KICAgLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEdldF9aIChE
YXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKSByZXR1cm4gUG9pbnRzX0FycmF5IGlz
CiAgICAgIGZ1bmN0aW9uIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3M7IE51bV9Qb2lu
dHMgOiBTeXN0ZW0uQWRkcmVzcykKICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAg
ICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfZ2V0X3oiKTsKCiAg
ICAgIE51bV9Qb2ludHMgOiBhbGlhc2VkIEdpbnQ7CiAgICAgIFMgOiBTeXN0ZW0uQWRkcmVzcyA6
PSBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIE51bV9Qb2ludHMnQWRkcmVzcyk7CiAgIGJl
Z2luCiAgICAgIHJldHVybiAoUG9pbnRzID0+IFRvX0RvdWJsZV9BcnJheSAoUyksIE51bV9Qb2lu
dHMgPT4gTnVtX1BvaW50cyk7CiAgIGVuZCBHZXRfWjsKCiAgIC0tLS0tLS0tLS0tCiAgIC0tIEdl
dF9BIC0tCiAgIC0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBHZXRfQSAoRGF0YSA6IGFjY2VzcyBH
dGtfUGxvdF9EYXRhX1JlY29yZCkgcmV0dXJuIFBvaW50c19BcnJheSBpcwogICAgICBmdW5jdGlv
biBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzOyBOdW1fUG9pbnRzIDogU3lzdGVtLkFk
ZHJlc3MpCiAgICAgICAgIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgcHJhZ21hIEltcG9y
dCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2dldF9hIik7CgogICAgICBOdW1fUG9pbnRz
IDogYWxpYXNlZCBHaW50OwogICAgICBTIDogU3lzdGVtLkFkZHJlc3MgOj0gSW50ZXJuYWwgKEdl
dF9PYmplY3QgKERhdGEpLCBOdW1fUG9pbnRzJ0FkZHJlc3MpOwogICBiZWdpbgogICAgICByZXR1
cm4gKFBvaW50cyA9PiBUb19Eb3VibGVfQXJyYXkgKFMpLCBOdW1fUG9pbnRzID0+IE51bV9Qb2lu
dHMpOwogICBlbmQgR2V0X0E7CgogICAtLS0tLS0tLS0tLS0KICAgLS0gR2V0X0R4IC0tCiAgIC0t
LS0tLS0tLS0tLQoKICAgZnVuY3Rpb24gR2V0X0R4IChEYXRhIDogYWNjZXNzIEd0a19QbG90X0Rh
dGFfUmVjb3JkKSByZXR1cm4gUG9pbnRzX0FycmF5IGlzCiAgICAgIGZ1bmN0aW9uIEludGVybmFs
IChEYXRhIDogU3lzdGVtLkFkZHJlc3M7IE51bV9Qb2ludHMgOiBTeXN0ZW0uQWRkcmVzcykKICAg
ICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRl
cm5hbCwgImd0a19wbG90X2RhdGFfZ2V0X2R4Iik7CgogICAgICBOdW1fUG9pbnRzIDogYWxpYXNl
ZCBHaW50OwogICAgICBTIDogU3lzdGVtLkFkZHJlc3MgOj0gSW50ZXJuYWwgKEdldF9PYmplY3Qg
KERhdGEpLCBOdW1fUG9pbnRzJ0FkZHJlc3MpOwogICBiZWdpbgogICAgICByZXR1cm4gKFBvaW50
cyA9PiBUb19Eb3VibGVfQXJyYXkgKFMpLCBOdW1fUG9pbnRzID0+IE51bV9Qb2ludHMpOwogICBl
bmQgR2V0X0R4OwoKICAgLS0tLS0tLS0tLS0tCiAgIC0tIEdldF9EeSAtLQogICAtLS0tLS0tLS0t
LS0KCiAgIGZ1bmN0aW9uIEdldF9EeSAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29y
ZCkgcmV0dXJuIFBvaW50c19BcnJheSBpcwogICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoRGF0YSA6
IFN5c3RlbS5BZGRyZXNzOyBOdW1fUG9pbnRzIDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgIHJl
dHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJn
dGtfcGxvdF9kYXRhX2dldF9keSIpOwoKICAgICAgTnVtX1BvaW50cyA6IGFsaWFzZWQgR2ludDsK
ICAgICAgUyA6IFN5c3RlbS5BZGRyZXNzIDo9IEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwg
TnVtX1BvaW50cydBZGRyZXNzKTsKICAgYmVnaW4KICAgICAgcmV0dXJuIChQb2ludHMgPT4gVG9f
RG91YmxlX0FycmF5IChTKSwgTnVtX1BvaW50cyA9PiBOdW1fUG9pbnRzKTsKICAgZW5kIEdldF9E
eTsKCiAgIC0tLS0tLS0tLS0tLQogICAtLSBHZXRfRHogLS0KICAgLS0tLS0tLS0tLS0tCgogICBm
dW5jdGlvbiBHZXRfRHogKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpIHJldHVy
biBQb2ludHNfQXJyYXkgaXMKICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0u
QWRkcmVzczsgTnVtX1BvaW50cyA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICByZXR1cm4gU3lz
dGVtLkFkZHJlc3M7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3Rf
ZGF0YV9nZXRfZHoiKTsKCiAgICAgIE51bV9Qb2ludHMgOiBhbGlhc2VkIEdpbnQ7CiAgICAgIFMg
OiBTeXN0ZW0uQWRkcmVzcyA6PSBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIE51bV9Qb2lu
dHMnQWRkcmVzcyk7CiAgIGJlZ2luCiAgICAgIHJldHVybiAoUG9pbnRzID0+IFRvX0RvdWJsZV9B
cnJheSAoUyksIE51bV9Qb2ludHMgPT4gTnVtX1BvaW50cyk7CiAgIGVuZCBHZXRfRHo7CgogICAt
LS0tLS0tLS0tLS0KICAgLS0gR2V0X0RhIC0tCiAgIC0tLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24g
R2V0X0RhICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkgcmV0dXJuIFBvaW50
c19BcnJheSBpcwogICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNz
OyBOdW1fUG9pbnRzIDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgIHJldHVybiBTeXN0ZW0uQWRk
cmVzczsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2dl
dF9kYSIpOwoKICAgICAgTnVtX1BvaW50cyA6IGFsaWFzZWQgR2ludDsKICAgICAgUyA6IFN5c3Rl
bS5BZGRyZXNzIDo9IEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgTnVtX1BvaW50cydBZGRy
ZXNzKTsKICAgYmVnaW4KICAgICAgcmV0dXJuIChQb2ludHMgPT4gVG9fRG91YmxlX0FycmF5IChT
KSwgTnVtX1BvaW50cyA9PiBOdW1fUG9pbnRzKTsKICAgZW5kIEdldF9EYTsKCiAgIC0tLS0tLS0t
LS0tLS0tLS0tLS0KICAgLS0gU2V0X051bXBvaW50cyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0t
CgogICBwcm9jZWR1cmUgU2V0X051bXBvaW50cyAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRh
X1JlY29yZDsgTnVtIDogR2ludCkgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDog
U3lzdGVtLkFkZHJlc3M7IE51bSA6IEdpbnQpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRl
cm5hbCwgImd0a19wbG90X2RhdGFfc2V0X251bXBvaW50cyIpOwogICBiZWdpbgogICAgICBJbnRl
cm5hbCAoR2V0X09iamVjdCAoRGF0YSksIE51bSk7CiAgIGVuZCBTZXRfTnVtcG9pbnRzOwoKICAg
LS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBHZXRfTnVtcG9pbnRzIC0tCiAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEdldF9OdW1wb2ludHMgKERhdGEgOiBhY2Nlc3MgR3RrX1Bs
b3RfRGF0YV9SZWNvcmQpIHJldHVybiBHaW50IGlzCiAgICAgIGZ1bmN0aW9uIEludGVybmFsIChE
YXRhIDogU3lzdGVtLkFkZHJlc3MpIHJldHVybiBHaW50OwogICAgICBwcmFnbWEgSW1wb3J0IChD
LCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfZ2V0X251bXBvaW50cyIpOwogICBiZWdpbgogICAg
ICByZXR1cm4gSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpKTsKICAgZW5kIEdldF9OdW1wb2lu
dHM7CgogICAtLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9MYWJlbHMgLS0KICAgLS0tLS0tLS0t
LS0tLS0tLQoKICAgcHJvY2VkdXJlIFNldF9MYWJlbHMKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtf
UGxvdF9EYXRhX1JlY29yZDsKICAgICAgTGFiZWxzIDogR3RrYWRhLlR5cGVzLkNoYXJzX1B0cl9B
cnJheSkKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJl
c3M7IExhYmVscyA6IENoYXJzX1B0cl9BcnJheSk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIElu
dGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9zZXRfbGFiZWxzIik7CiAgIGJlZ2luCiAgICAgIEludGVy
bmFsIChHZXRfT2JqZWN0IChEYXRhKSwgTGFiZWxzKTsKICAgZW5kIFNldF9MYWJlbHM7CgogICAt
LS0tLS0tLS0tLS0tLS0tCiAgIC0tIEdldF9MYWJlbHMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLQoK
ICAgZnVuY3Rpb24gR2V0X0xhYmVscyAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29y
ZCkKICAgICAgcmV0dXJuIEd0a2FkYS5UeXBlcy5DaGFyc19QdHJfQXJyYXkKICAgaXMKICAgICAg
dHlwZSBTdHJfQXJyYXkgaXMgYXJyYXkgKE5hdHVyYWwpIG9mIENoYXJzX1B0cjsKICAgICAgZnVu
Y3Rpb24gSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRkcmVzcykgcmV0dXJuIFN0cl9BcnJheTsK
ICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2dldF9sYWJl
bHMiKTsKCiAgICAgIE4gOiBjb25zdGFudCBzaXplX3QgOj0gc2l6ZV90IChHZXRfTnVtcG9pbnRz
IChEYXRhKSk7CiAgIGJlZ2luCiAgICAgIHJldHVybiBDaGFyc19QdHJfQXJyYXkKICAgICAgICAo
SW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpKSgwIC4uIEludGVnZXIgKE4pIC0gMSkpOwogICBl
bmQgR2V0X0xhYmVsczsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNob3dfTGFiZWxzIC0t
CiAgIC0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2hvd19MYWJlbHMKICAgICAoRGF0
YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgU2hvdyA6IEJvb2xlYW4pCiAgIGlzCiAg
ICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzOyBTaG93IDogR2lu
dCk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9zaG93
X2xhYmVscyIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIEJv
b2xlYW4nUG9zIChTaG93KSk7CiAgIGVuZCBTaG93X0xhYmVsczsKCiAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogICAtLSBMYWJlbHNfU2V0X0F0dHJpYnV0ZXMgLS0KICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgTGFiZWxzX1NldF9BdHRyaWJ1dGVzCiAg
ICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIEZvbnQgOiBTdHJp
bmc7CiAgICAgIEhlaWdodCA6IEdpbnQ7CiAgICAgIEFuZ2xlICA6IEdpbnQ7CiAgICAgIEZvcmVn
cm91bmQgOiBHZGsuQ29sb3IuR2RrX0NvbG9yOwogICAgICBCYWNrZ3JvdW5kIDogR2RrLkNvbG9y
Lkdka19Db2xvcikKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsCiAgICAgICAgKERhdGEg
OiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgRm9udCA6IFN0cmluZzsKICAgICAgICAgSGVpZ2h0
LCBBbmdsZSA6IEdpbnQ7CiAgICAgICAgIEZvcmVncm91bmQsIEJhY2tncm91bmQgOiBTeXN0ZW0u
QWRkcmVzcyk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0
YV9sYWJlbHNfc2V0X2F0dHJpYnV0ZXMiKTsKCiAgICAgIEYgOiBhbGlhc2VkIEdka19Db2xvciA6
PSBGb3JlZ3JvdW5kOwogICAgICBCIDogYWxpYXNlZCBHZGtfQ29sb3IgOj0gQmFja2dyb3VuZDsK
ICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBGb250ICYgQVNDSUku
TlVMLCBIZWlnaHQsIEFuZ2xlLAogICAgICAgICAgICAgICAgRidBZGRyZXNzLCBCJ0FkZHJlc3Mp
OwogICBlbmQgTGFiZWxzX1NldF9BdHRyaWJ1dGVzOwoKICAgLS0tLS0tLS0tLS0tLS0tLQogICAt
LSBTZXRfU3ltYm9sIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfU3lt
Ym9sCiAgICAgKERhdGEgICAgICAgICA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAg
ICAgVGhlX1R5cGUgICAgIDogUGxvdF9TeW1ib2xfVHlwZTsKICAgICAgU3R5bGUgICAgICAgIDog
UGxvdF9TeW1ib2xfU3R5bGU7CiAgICAgIFNpemUgICAgICAgICA6IEdpbnQ7CiAgICAgIExpbmVf
V2lkdGggICA6IEdmbG9hdDsKICAgICAgQ29sb3IgICAgICAgIDogR2RrLkNvbG9yLkdka19Db2xv
cjsKICAgICAgQm9yZGVyX0NvbG9yIDogR2RrLkNvbG9yLkdka19Db2xvcikKICAgaXMKICAgICAg
cHJvY2VkdXJlIEludGVybmFsCiAgICAgICAgKERhdGEgICAgICAgICAgICAgICAgICA6IFN5c3Rl
bS5BZGRyZXNzOwogICAgICAgICBUaGVfVHlwZSwgU3R5bGUsIFNpemUgOiBHaW50OwogICAgICAg
ICBMaW5lX1dpZHRoICAgICAgICAgICAgOiBHZmxvYXQ7CiAgICAgICAgIENvbG9yLCBCb3JkZXJf
Q29sb3IgICA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJu
YWwsICJndGtfcGxvdF9kYXRhX3NldF9zeW1ib2wiKTsKICAgICAgQyA6IGFsaWFzZWQgR2RrX0Nv
bG9yIDo9IENvbG9yOwogICAgICBCIDogYWxpYXNlZCBHZGtfQ29sb3IgOj0gQm9yZGVyX0NvbG9y
OwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIFBsb3RfU3ltYm9s
X1R5cGUnUG9zIChUaGVfVHlwZSksCiAgICAgICAgICAgICAgICBQbG90X1N5bWJvbF9TdHlsZSdQ
b3MgKFN0eWxlKSwgU2l6ZSwgTGluZV9XaWR0aCwKICAgICAgICAgICAgICAgIEMnQWRkcmVzcywg
QidBZGRyZXNzKTsKICAgZW5kIFNldF9TeW1ib2w7CgogICAtLS0tLS0tLS0tLS0tLS0tCiAgIC0t
IEdldF9TeW1ib2wgLS0KICAgLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIEdldF9TeW1i
b2wKICAgICAoRGF0YSAgICAgICAgIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwogICAg
ICBUaGVfVHlwZSAgICAgOiBvdXQgUGxvdF9TeW1ib2xfVHlwZTsKICAgICAgU3R5bGUgICAgICAg
IDogb3V0IFBsb3RfU3ltYm9sX1N0eWxlOwogICAgICBTaXplICAgICAgICAgOiBvdXQgR2ludDsK
ICAgICAgTGluZV9XaWR0aCAgIDogb3V0IEdpbnQ7CiAgICAgIENvbG9yICAgICAgICA6IG91dCBH
ZGsuQ29sb3IuR2RrX0NvbG9yOwogICAgICBCb3JkZXJfQ29sb3IgOiBvdXQgR2RrLkNvbG9yLkdk
a19Db2xvcikKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsCiAgICAgICAgKERhdGEgICAg
ICAgICA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBUaGVfVHlwZSAgICAgOiBvdXQgUGxvdF9T
eW1ib2xfVHlwZTsKICAgICAgICAgU3R5bGUgICAgICAgIDogb3V0IFBsb3RfU3ltYm9sX1N0eWxl
OwogICAgICAgICBTaXplICAgICAgICAgOiBvdXQgR2ludDsKICAgICAgICAgTGluZV9XaWR0aCAg
IDogb3V0IEdpbnQ7CiAgICAgICAgIENvbG9yICAgICAgICA6IFN5c3RlbS5BZGRyZXNzOwogICAg
ICAgICBCb3JkZXJfQ29sb3IgOiBTeXN0ZW0uQWRkcmVzcyk7CiAgICAgIHByYWdtYSBJbXBvcnQg
KEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9nZXRfc3ltYm9sIik7CiAgICAgIEMsIEIgOiBh
bGlhc2VkIEdka19Db2xvcjsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERh
dGEpLCBUaGVfVHlwZSwgU3R5bGUsIFNpemUsIExpbmVfV2lkdGgsCiAgICAgICAgICAgICAgICBD
J0FkZHJlc3MsIEInQWRkcmVzcyk7CiAgICAgIENvbG9yIDo9IEM7CiAgICAgIEJvcmRlcl9Db2xv
ciA6PSBCOwogICBlbmQgR2V0X1N5bWJvbDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0g
U2V0X0Nvbm5lY3RvciAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0
X0Nvbm5lY3RvcgogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBDb25u
ZWN0b3IgOiBQbG90X0Nvbm5lY3RvcikKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChE
YXRhIDogU3lzdGVtLkFkZHJlc3M7IENvbm5lY3RvciA6IEdpbnQpOwogICAgICBwcmFnbWEgSW1w
b3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfc2V0X2Nvbm5lY3RvciIpOwogICBiZWdp
bgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIFBsb3RfQ29ubmVjdG9yJ1BvcyAo
Q29ubmVjdG9yKSk7CiAgIGVuZCBTZXRfQ29ubmVjdG9yOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0t
LQogICAtLSBHZXRfQ29ubmVjdG9yIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0
aW9uIEdldF9Db25uZWN0b3IgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpCiAg
ICAgIHJldHVybiBQbG90X0Nvbm5lY3RvcgogICBpcwogICAgICBmdW5jdGlvbiBJbnRlcm5hbCAo
RGF0YSA6IFN5c3RlbS5BZGRyZXNzKSByZXR1cm4gR2ludDsKICAgICAgcHJhZ21hIEltcG9ydCAo
QywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2dldF9jb25uZWN0b3IiKTsKICAgYmVnaW4KICAg
ICAgcmV0dXJuIFBsb3RfQ29ubmVjdG9yJ1ZhbCAoSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEp
KSk7CiAgIGVuZCBHZXRfQ29ubmVjdG9yOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
ICAtLSBTZXRfTGluZV9BdHRyaWJ1dGVzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
CiAgIHByb2NlZHVyZSBTZXRfTGluZV9BdHRyaWJ1dGVzCiAgICAgKERhdGEgIDogYWNjZXNzIEd0
a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBTdHlsZSA6IFBsb3RfTGluZV9TdHlsZTsKICAgICAg
V2lkdGggOiBHZmxvYXQ7CiAgICAgIENvbG9yIDogR2RrLkNvbG9yLkdka19Db2xvcikKICAgaXMK
ICAgICAgcHJvY2VkdXJlIEludGVybmFsCiAgICAgICAgKERhdGEgIDogU3lzdGVtLkFkZHJlc3M7
CiAgICAgICAgIFN0eWxlIDogR2ludDsKICAgICAgICAgV2lkdGggOiBHZmxvYXQ7CiAgICAgICAg
IENvbG9yIDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5h
bCwgImd0a19wbG90X2RhdGFfc2V0X2xpbmVfYXR0cmlidXRlcyIpOwogICAgICBDIDogYWxpYXNl
ZCBHZGtfQ29sb3IgOj0gQ29sb3I7CiAgIGJlZ2luCiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0
IChEYXRhKSwgUGxvdF9MaW5lX1N0eWxlJ1BvcyAoU3R5bGUpLCBXaWR0aCwKICAgICAgICAgICAg
ICAgIEMnQWRkcmVzcyk7CiAgIGVuZCBTZXRfTGluZV9BdHRyaWJ1dGVzOwoKICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogICAtLSBHZXRfTGluZV9BdHRyaWJ1dGVzIC0tCiAgIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBHZXRfTGluZV9BdHRyaWJ1dGVzCiAgICAg
KERhdGEgIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBTdHlsZSA6IG91dCBQ
bG90X0xpbmVfU3R5bGU7CiAgICAgIFdpZHRoIDogb3V0IEdmbG9hdDsKICAgICAgQ29sb3IgOiBv
dXQgR2RrLkNvbG9yLkdka19Db2xvcikKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsCiAg
ICAgICAgKERhdGEgIDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIFN0eWxlIDogb3V0IFBsb3Rf
TGluZV9TdHlsZTsKICAgICAgICAgV2lkdGggOiBvdXQgR2Zsb2F0OwogICAgICAgICBDb2xvciA6
IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtf
cGxvdF9kYXRhX2dldF9saW5lX2F0dHJpYnV0ZXMiKTsKICAgICAgQyA6IGFsaWFzZWQgR2RrX0Nv
bG9yOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIFN0eWxlLCBX
aWR0aCwgQydBZGRyZXNzKTsKICAgICAgQ29sb3IgOj0gQzsKICAgZW5kIEdldF9MaW5lX0F0dHJp
YnV0ZXM7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9YX0F0dHJpYnV0ZXMg
LS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNldF9YX0F0dHJpYnV0
ZXMKICAgICAoRGF0YSAgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIFN0eWxl
IDogUGxvdF9MaW5lX1N0eWxlOwogICAgICBXaWR0aCA6IEdmbG9hdDsKICAgICAgQ29sb3IgOiBH
ZGsuQ29sb3IuR2RrX0NvbG9yKQogICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwKICAgICAg
ICAoRGF0YSAgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgU3R5bGUgOiBHaW50OwogICAgICAg
ICBXaWR0aCA6IEdmbG9hdDsKICAgICAgICAgQ29sb3IgOiBTeXN0ZW0uQWRkcmVzcyk7CiAgICAg
IHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9zZXRfeF9hdHRyaWJ1
dGVzIik7CiAgICAgIEMgOiBhbGlhc2VkIEdka19Db2xvciA6PSBDb2xvcjsKICAgYmVnaW4KICAg
ICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBQbG90X0xpbmVfU3R5bGUnUG9zIChTdHls
ZSksIFdpZHRoLAogICAgICAgICAgICAgICAgQydBZGRyZXNzKTsKICAgZW5kIFNldF9YX0F0dHJp
YnV0ZXM7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9ZX0F0dHJpYnV0ZXMg
LS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNldF9ZX0F0dHJpYnV0
ZXMKICAgICAoRGF0YSAgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIFN0eWxl
IDogUGxvdF9MaW5lX1N0eWxlOwogICAgICBXaWR0aCA6IEdmbG9hdDsKICAgICAgQ29sb3IgOiBH
ZGsuQ29sb3IuR2RrX0NvbG9yKQogICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwKICAgICAg
ICAoRGF0YSAgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgU3R5bGUgOiBHaW50OwogICAgICAg
ICBXaWR0aCA6IEdmbG9hdDsKICAgICAgICAgQ29sb3IgOiBTeXN0ZW0uQWRkcmVzcyk7CiAgICAg
IHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9zZXRfeV9hdHRyaWJ1
dGVzIik7CiAgICAgIEMgOiBhbGlhc2VkIEdka19Db2xvciA6PSBDb2xvcjsKICAgYmVnaW4KICAg
ICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBQbG90X0xpbmVfU3R5bGUnUG9zIChTdHls
ZSksIFdpZHRoLAogICAgICAgICAgICAgICAgQydBZGRyZXNzKTsKICAgZW5kIFNldF9ZX0F0dHJp
YnV0ZXM7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9aX0F0dHJpYnV0ZXMg
LS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNldF9aX0F0dHJpYnV0
ZXMKICAgICAoRGF0YSAgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIFN0eWxl
IDogUGxvdF9MaW5lX1N0eWxlOwogICAgICBXaWR0aCA6IEdmbG9hdDsKICAgICAgQ29sb3IgOiBH
ZGsuQ29sb3IuR2RrX0NvbG9yKQogICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwKICAgICAg
ICAoRGF0YSAgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgU3R5bGUgOiBHaW50OwogICAgICAg
ICBXaWR0aCA6IEdmbG9hdDsKICAgICAgICAgQ29sb3IgOiBTeXN0ZW0uQWRkcmVzcyk7CiAgICAg
IHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9zZXRfel9hdHRyaWJ1
dGVzIik7CiAgICAgIEMgOiBhbGlhc2VkIEdka19Db2xvciA6PSBDb2xvcjsKICAgYmVnaW4KICAg
ICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBQbG90X0xpbmVfU3R5bGUnUG9zIChTdHls
ZSksIFdpZHRoLAogICAgICAgICAgICAgICAgQydBZGRyZXNzKTsKICAgZW5kIFNldF9aX0F0dHJp
YnV0ZXM7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNob3dfWGVycmJhcnMgLS0KICAg
LS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNob3dfWGVycmJhcnMgKERhdGEgOiBh
Y2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAo
RGF0YSA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWws
ICJndGtfcGxvdF9kYXRhX3Nob3dfeGVycmJhcnMiKTsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwg
KEdldF9PYmplY3QgKERhdGEpKTsKICAgZW5kIFNob3dfWGVycmJhcnM7CgogICAtLS0tLS0tLS0t
LS0tLS0tLS0tCiAgIC0tIFNob3dfWWVycmJhcnMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLQoK
ICAgcHJvY2VkdXJlIFNob3dfWWVycmJhcnMgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9S
ZWNvcmQpIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNz
KTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3Nob3df
eWVycmJhcnMiKTsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpKTsK
ICAgZW5kIFNob3dfWWVycmJhcnM7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNob3df
WmVycmJhcnMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNob3dfWmVy
cmJhcnMgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpIGlzCiAgICAgIHByb2Nl
ZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9y
dCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3Nob3dfemVycmJhcnMiKTsKICAgYmVnaW4K
ICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpKTsKICAgZW5kIFNob3dfWmVycmJhcnM7
CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEhpZGVfWGVycmJhcnMgLS0KICAgLS0tLS0t
LS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIEhpZGVfWGVycmJhcnMgKERhdGEgOiBhY2Nlc3Mg
R3RrX1Bsb3RfRGF0YV9SZWNvcmQpIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6
IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtf
cGxvdF9kYXRhX2hpZGVfeGVycmJhcnMiKTsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9P
YmplY3QgKERhdGEpKTsKICAgZW5kIEhpZGVfWGVycmJhcnM7CgogICAtLS0tLS0tLS0tLS0tLS0t
LS0tCiAgIC0tIEhpZGVfWWVycmJhcnMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJv
Y2VkdXJlIEhpZGVfWWVycmJhcnMgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQp
IGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzKTsKICAg
ICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2hpZGVfeWVycmJh
cnMiKTsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpKTsKICAgZW5k
IEhpZGVfWWVycmJhcnM7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEhpZGVfWmVycmJh
cnMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIEhpZGVfWmVycmJhcnMg
KERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpIGlzCiAgICAgIHByb2NlZHVyZSBJ
bnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywg
SW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2hpZGVfemVycmJhcnMiKTsKICAgYmVnaW4KICAgICAg
SW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpKTsKICAgZW5kIEhpZGVfWmVycmJhcnM7CgogICAt
LS0tLS0tLS0tLS0tLS0KICAgLS0gRmlsbF9BcmVhIC0tCiAgIC0tLS0tLS0tLS0tLS0tLQoKICAg
cHJvY2VkdXJlIEZpbGxfQXJlYSAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsg
RmlsbCA6IEJvb2xlYW4pIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3Rl
bS5BZGRyZXNzOyBGaWxsIDogR2ludCk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFs
LCAiZ3RrX3Bsb3RfZGF0YV9maWxsX2FyZWEiKTsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdl
dF9PYmplY3QgKERhdGEpLCBCb29sZWFuJ1BvcyAoRmlsbCkpOwogICBlbmQgRmlsbF9BcmVhOwoK
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gQXJlYV9Jc19GaWxsZWQgLS0KICAgLS0tLS0t
LS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEFyZWFfSXNfRmlsbGVkIChEYXRhIDogYWNjZXNz
IEd0a19QbG90X0RhdGFfUmVjb3JkKQogICAgICByZXR1cm4gQm9vbGVhbgogICBpcwogICAgICBm
dW5jdGlvbiBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzKSByZXR1cm4gR2ludDsKICAg
ICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2FyZWFfaXNfZmls
bGVkIik7CiAgIGJlZ2luCiAgICAgIHJldHVybiBCb29sZWFuJ1ZhbCAoSW50ZXJuYWwgKEdldF9P
YmplY3QgKERhdGEpKSk7CiAgIGVuZCBBcmVhX0lzX0ZpbGxlZDsKCiAgIC0tLS0tLS0tLS0tLS0t
LS0KICAgLS0gU2V0X0xlZ2VuZCAtLQogICAtLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUg
U2V0X0xlZ2VuZCAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgTGVnZW5kIDog
U3RyaW5nKQogICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRk
cmVzczsgTGVnZW5kIDogU3RyaW5nKTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWws
ICJndGtfcGxvdF9kYXRhX3NldF9sZWdlbmQiKTsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdl
dF9PYmplY3QgKERhdGEpLCBMZWdlbmQgJiBBU0NJSS5OVUwpOwogICBlbmQgU2V0X0xlZ2VuZDsK
CiAgIC0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNob3dfTGVnZW5kIC0tCiAgIC0tLS0tLS0tLS0t
LS0tLS0tCgogICBwcm9jZWR1cmUgU2hvd19MZWdlbmQgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3Rf
RGF0YV9SZWNvcmQpIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5B
ZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRh
X3Nob3dfbGVnZW5kIik7CiAgIGJlZ2luCiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRh
KSk7CiAgIGVuZCBTaG93X0xlZ2VuZDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEhpZGVf
TGVnZW5kIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgSGlkZV9MZWdlbmQg
KERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpIGlzCiAgICAgIHByb2NlZHVyZSBJ
bnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywg
SW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2hpZGVfbGVnZW5kIik7CiAgIGJlZ2luCiAgICAgIElu
dGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSk7CiAgIGVuZCBIaWRlX0xlZ2VuZDsKCiAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9MZWdlbmRfUHJlY2lzaW9uIC0tCiAgIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X0xlZ2VuZF9QcmVjaXNp
b24KICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgUHJlY2lzaW9uIDog
R2ludCkKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJl
c3M7IFByZWNpc2lvbiA6IEdpbnQpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwg
Imd0a19wbG90X2RhdGFfc2V0X2xlZ2VuZF9wcmVjaXNpb24iKTsKICAgYmVnaW4KICAgICAgSW50
ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBQcmVjaXNpb24pOwogICBlbmQgU2V0X0xlZ2VuZF9Q
cmVjaXNpb247CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBHZXRfTGVnZW5k
X1ByZWNpc2lvbiAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24g
R2V0X0xlZ2VuZF9QcmVjaXNpb24gKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQp
CiAgICAgIHJldHVybiBHaW50CiAgIGlzCiAgICAgIGZ1bmN0aW9uIEludGVybmFsIChEYXRhIDog
U3lzdGVtLkFkZHJlc3MpIHJldHVybiBHaW50OwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRl
cm5hbCwgImd0a19wbG90X2RhdGFfZ2V0X2xlZ2VuZF9wcmVjaXNpb24iKTsKICAgYmVnaW4KICAg
ICAgcmV0dXJuIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSk7CiAgIGVuZCBHZXRfTGVnZW5k
X1ByZWNpc2lvbjsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9HcmFkaWVu
dF9NYXNrIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X0dy
YWRpZW50X01hc2sKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgTWFz
ayA6IFBsb3RfR3JhZGllbnQpCiAgIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6
IFN5c3RlbS5BZGRyZXNzOyBNYXNrIDogR2ludCk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIElu
dGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9zZXRfZ3JhZGllbnRfbWFzayIpOwogICBiZWdpbgogICAg
ICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIFBsb3RfR3JhZGllbnQnUG9zIChNYXNrKSk7
CiAgIGVuZCBTZXRfR3JhZGllbnRfTWFzazsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg
IC0tIEdldF9HcmFkaWVudF9NYXNrIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBm
dW5jdGlvbiBHZXRfR3JhZGllbnRfTWFzayAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1Jl
Y29yZCkKICAgICAgcmV0dXJuIFBsb3RfR3JhZGllbnQKICAgaXMKICAgICAgZnVuY3Rpb24gSW50
ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRkcmVzcykgcmV0dXJuIEdpbnQ7CiAgICAgIHByYWdtYSBJ
bXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9nZXRfZ3JhZGllbnRfbWFzayIpOwog
ICBiZWdpbgogICAgICByZXR1cm4gUGxvdF9HcmFkaWVudCdWYWwgKEludGVybmFsIChHZXRfT2Jq
ZWN0IChEYXRhKSkpOwogICBlbmQgR2V0X0dyYWRpZW50X01hc2s7CgogICAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogICAtLSBHcmFkaWVudF9TZXRfVmlzaWJsZSAtLQogICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIEdyYWRpZW50X1NldF9WaXNpYmxlCiAgICAg
KERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IFZpc2libGUgOiBCb29sZWFuKQog
ICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRkcmVzczsgVmlz
aWJsZSA6IEdpbnQpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90
X2RhdGFfZ3JhZGllbnRfc2V0X3Zpc2libGUiKTsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdl
dF9PYmplY3QgKERhdGEpLCBCb29sZWFuJ1BvcyAoVmlzaWJsZSkpOwogICBlbmQgR3JhZGllbnRf
U2V0X1Zpc2libGU7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEdyYWRpZW50X1Zp
c2libGUgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24gR3JhZGllbnRf
VmlzaWJsZSAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkKICAgICAgcmV0dXJu
IEJvb2xlYW4KICAgaXMKICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRk
cmVzcykgcmV0dXJuIEdpbnQ7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3Rr
X3Bsb3RfZGF0YV9ncmFkaWVudF92aXNpYmxlIik7CiAgIGJlZ2luCiAgICAgIHJldHVybiBCb29s
ZWFuJ1ZhbCAoSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpKSk7CiAgIGVuZCBHcmFkaWVudF9W
aXNpYmxlOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBTZXRfR3JhZGllbnRf
Q29sb3JzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRf
R3JhZGllbnRfQ29sb3JzCiAgICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7
CiAgICAgIE1pbiwgTWF4IDogR2RrLkNvbG9yLkdka19Db2xvcikKICAgaXMKICAgICAgcHJvY2Vk
dXJlIEludGVybmFsIChEYXRhLCBNaW4sIE1heCA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJh
Z21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3NldF9ncmFkaWVudF9jb2xv
cnMiKTsKICAgICAgTWkgOiBhbGlhc2VkIEdka19Db2xvciA6PSBNaW47CiAgICAgIE1hIDogYWxp
YXNlZCBHZGtfQ29sb3IgOj0gTWF4OwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVj
dCAoRGF0YSksIE1pJ0FkZHJlc3MsIE1hJ0FkZHJlc3MpOwogICBlbmQgU2V0X0dyYWRpZW50X0Nv
bG9yczsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gR2V0X0dyYWRpZW50X0Nv
bG9ycyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgR2V0X0dy
YWRpZW50X0NvbG9ycwogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwog
ICAgICBNaW4sIE1heCA6IG91dCBHZGsuQ29sb3IuR2RrX0NvbG9yKQogICBpcwogICAgICBwcm9j
ZWR1cmUgSW50ZXJuYWwgKERhdGEsIE1pbiwgTWF4IDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBw
cmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfZ2V0X2dyYWRpZW50X2Nv
bG9ycyIpOwogICAgICBNaSwgTWEgOiBhbGlhc2VkIEdka19Db2xvcjsKICAgYmVnaW4KICAgICAg
SW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBNaSdBZGRyZXNzLCBNYSdBZGRyZXNzKTsKICAg
ICAgTWluIDo9IE1pOwogICAgICBNYXggOj0gTWE7CiAgIGVuZCBHZXRfR3JhZGllbnRfQ29sb3Jz
OwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9HcmFkaWVudCAtLQogICAtLS0tLS0t
LS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfR3JhZGllbnQKICAgICAoRGF0YSAgICAgOiBh
Y2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIE1pbiwgTWF4IDogR2RvdWJsZTsKICAg
ICAgTmxldmVscyAgOiBHaW50KQogICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERhdGEg
OiBTeXN0ZW0uQWRkcmVzczsgTWluLCBNYXggOiBHZG91YmxlOyBOIDogR2ludCk7CiAgICAgIHBy
YWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9zZXRfZ3JhZGllbnQiKTsK
ICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBNaW4sIE1heCwgTmxl
dmVscyk7CiAgIGVuZCBTZXRfR3JhZGllbnQ7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0g
R2V0X0dyYWRpZW50IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIEdldF9H
cmFkaWVudAogICAgIChEYXRhICAgICA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAg
ICAgTWluLCBNYXggOiBvdXQgR2RvdWJsZTsKICAgICAgTmxldmVscyAgOiBvdXQgR2ludCkKICAg
aXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3M7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgTWluLCBNYXggOiBvdXQgR2RvdWJsZTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICBOIDogb3V0IEdpbnQpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRl
cm5hbCwgImd0a19wbG90X2RhdGFfZ2V0X2dyYWRpZW50Iik7CiAgIGJlZ2luCiAgICAgIEludGVy
bmFsIChHZXRfT2JqZWN0IChEYXRhKSwgTWluLCBNYXgsIE5sZXZlbHMpOwogICBlbmQgR2V0X0dy
YWRpZW50OwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEdldF9HcmFkaWVudF9M
ZXZlbCAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBHZXRfR3Jh
ZGllbnRfTGV2ZWwKICAgICAoRGF0YSAgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAg
ICAgIExldmVsIDogR2RvdWJsZTsKICAgICAgQ29sb3IgOiBvdXQgR2RrLkNvbG9yLkdka19Db2xv
cikKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3M7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgTGV2ZWwgOiBHZG91YmxlOwogICAgICAgICAgICAg
ICAgICAgICAgICAgIENvbG9yIDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0
IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfZ2V0X2dyYWRpZW50X2xldmVsIik7CiAgICAg
IEMgOiBhbGlhc2VkIEdka19Db2xvcjsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9PYmpl
Y3QgKERhdGEpLCBMZXZlbCwgQydBZGRyZXNzKTsKICAgICAgQ29sb3IgOj0gQzsKICAgZW5kIEdl
dF9HcmFkaWVudF9MZXZlbDsKCiAgIC0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9MaW5rIC0tCiAg
IC0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X0xpbmsKICAgICAoRGF0YSA6IGFjY2Vz
cyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgTGluayA6IFN5c3RlbS5BZGRyZXNzKQogICBp
cwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERhdGEsIExpbmsgOiBTeXN0ZW0uQWRkcmVzcyk7
CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9zZXRfbGlu
ayIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIExpbmspOwog
ICBlbmQgU2V0X0xpbms7CgogICAtLS0tLS0tLS0tLS0tLQogICAtLSBHZXRfTGluayAtLQogICAt
LS0tLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24gR2V0X0xpbmsgKERhdGEgOiBhY2Nlc3MgR3RrX1Bs
b3RfRGF0YV9SZWNvcmQpCiAgICAgIHJldHVybiBTeXN0ZW0uQWRkcmVzcwogICBpcwogICAgICBm
dW5jdGlvbiBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzKSByZXR1cm4gU3lzdGVtLkFk
ZHJlc3M7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9n
ZXRfbGluayIpOwogICBiZWdpbgogICAgICByZXR1cm4gSW50ZXJuYWwgKEdldF9PYmplY3QgKERh
dGEpKTsKICAgZW5kIEdldF9MaW5rOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gUmVtb3Zl
X0xpbmsgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBSZW1vdmVfTGluayAo
RGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkgaXMKICAgICAgcHJvY2VkdXJlIElu
dGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJ
bnRlcm5hbCwgImd0a19wbG90X2RhdGFfcmVtb3ZlX2xpbmsiKTsKICAgYmVnaW4KICAgICAgSW50
ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpKTsKICAgZW5kIFJlbW92ZV9MaW5rOwplbmQgR3RrLkV4
dHJhLlBsb3RfRGF0YTsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0gQWRhOTUg
YmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDIwMDAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJyb2JlY2tl
ciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAg
ICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi
bGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0g
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0K
LS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0
ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVj
aWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAg
LS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0
byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5
IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3Zl
cmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0
aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhl
ICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1
YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICA8ZGVzY3JpcHRpb24+Ci0t
ICBUaGlzIHBhY2thZ2UgZGVmaW5lcyB0aGUgcm9vdCBvZiB0aGUgcGxvdCBoaWVyYXJjaHkuIEl0
IGRlZmluZXMgc2V2ZXJhbAotLSAgZGlzcGxheSBzdHJhdGVnaWVzIHRoYXQgY2FuIGJlIHVzZWQg
dG8gc2hvdyBzY2llbnRpZmljIGRhdGEgb24gdGhlCi0tICBzY3JlZW4gKHNlZSB0aGUgY2hpbGRy
ZW4gZm9yIDNELCBwb2xhciwgYmFycywuLi4pCi0tCi0tICBBbGwgY29vcmRpbmF0ZXMgYXJlIGlu
IHBlcmNlbnQgb2YgdGhlIHRvdGFsIHNpemUgYWxsb2NhdGVzIGZvciB0aGUgZGF0YQotLSAgc2V0
IChpZSB0aGUgYWN0dWFsIHBvc2l0aW9uIGlzICh4ICogd2lkdGgsIHkgKiBoZWlnaHQpLCB3aGVy
ZSAoeCwgeSkgaXMKLS0gIHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhlIGRhdGEgc2V0IGFuZCAod2lk
dGgsIGhlaWdodCkgaXRzIGFsbG9jYXRlZCBzY3JlZW4KLS0gIHNpemUuCi0tICA8L2Rlc2NyaXB0
aW9uPgotLSAgPGNfdmVyc2lvbj5ndGsrZXh0cmEgMC45OS4xNDxjX3ZlcnNpb24+Cgp3aXRoIEds
aWI7IHVzZSBHbGliOwp3aXRoIEd0ay5XaWRnZXQ7CndpdGggR3RrYWRhLlR5cGVzOwp3aXRoIEdk
ay5Db2xvcjsKd2l0aCBVbmNoZWNrZWRfQ29udmVyc2lvbjsKCnBhY2thZ2UgR3RrLkV4dHJhLlBs
b3RfRGF0YSBpcwoKICAgdHlwZSBHdGtfUGxvdF9EYXRhX1JlY29yZCBpcyBuZXcgR3RrLldpZGdl
dC5HdGtfV2lkZ2V0X1JlY29yZCB3aXRoIHByaXZhdGU7CiAgIHR5cGUgR3RrX1Bsb3RfRGF0YSBp
cyBhY2Nlc3MgYWxsIEd0a19QbG90X0RhdGFfUmVjb3JkJ0NsYXNzOwogICAtLSAgQSBzZXQgb2Yg
dmFsdWVzIHRoYXQgY2FuIGJlIHJlcHJlc2VudGVkIG9uIHRoZSBzY3JlZW4uIFRoZXJlIGFyZQog
ICAtLSAgc2V2ZXJhbCBzdHJhdGVnaWVzIHRvIHNldCB0aGUgdmFsdWVzLCBlaXRoZXIgZXhwbGlj
aXRlbHkgaW4geW91cgogICAtLSAgYXBwbGljYXRpb24sIG9yIGJ5IGhhdmluZyB0aGVtIGF1dG9t
YXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGEgZnVuY3Rpb24uCgogICAtLS0tLS0tLS0tLQogICAtLSBU
eXBlcyAtLQogICAtLS0tLS0tLS0tLQoKICAgdHlwZSBOb19SYW5nZV9HZG91YmxlX0FycmF5IGlz
IGFycmF5IChOYXR1cmFsKSBvZiBHZG91YmxlOwogICAtLSAgQW4gYXJyYXkgb2YgdmFsdWVzLgog
ICAtLSAgVGhpcyBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGUgZGF0YSB2YWx1ZXMgZGlzcGxheWVk
IGluIHRoZSBwbG90LgogICAtLSAgVGhpcyBhcnJheSBkb2VzIG5vdCBoYXZlIGFueSByYW5nZSBp
bmZvcm1hdGlvbiAoc28gdGhhdCBpdCBjYW4gYmUKICAgLS0gIGVhc2lseSByZXR1cm5lZCBmcm9t
IGEgQyBmdW5jdGlvbiwgd2l0aG91dCByZXF1aXJpbmcgYW4gZXh0cmEKICAgLS0gIGNvcHkgb2Yg
dGhlIHRhYmxlKS4gWW91IGNhbiBub3QgdXNlICdSYW5nZSBvbiB0aGlzIGFycmF5LgoKICAgdHlw
ZSBOb19SYW5nZV9HZG91YmxlX0FycmF5X0FjY2VzcyBpcyBhY2Nlc3MgYWxsIE5vX1JhbmdlX0dk
b3VibGVfQXJyYXk7CiAgIC0tICBBbiBhY2Nlc3MgdG8gYSBmbGF0IGFycmF5LgoKICAgdHlwZSBH
ZG91YmxlX0FycmF5X0FjY2VzcyBpcyBhY2Nlc3MgYWxsIEdsaWIuR2RvdWJsZV9BcnJheTsKICAg
LS0gIFRoZSByZWFzb24gd2UgdXNlIHRoaXMgdHlwZSBpbiB0aGUgZnVuY3Rpb25zIGJlbG93IGlz
IGJlY2F1c2UKICAgLS0gIGd0aystZXh0cmEgZG9lcyBub3Qga2VlcCBhIGNvcHkgb2YgdGhlIGFy
cmF5cywgYnV0IHBvaW50cyB0byB0aGUgb25lCiAgIC0tICBnaXZlbiBpbiBhcmd1bWVudC4gVGh1
cywgdGhlIEFkYSBhcnJheXMgc2hvdWxkIG5vdCBiZSBhbGxvY2F0ZWQgb24gdGhlCiAgIC0tICBz
dGFjaywgb3IgYXQgbGVhc3QgdGhleSBzaG91bGQgYmUgYXQgbGlicmFyeSBsZXZlbC4gVXNpbmcg
dGhpcyAnQWNjZXNzCiAgIC0tICB3aWxsIGZvcmNlIHRoZSBjb21waWxlciB0byBkbyB0aGUgY2hl
Y2sgZm9yIHVzLgoKICAgdHlwZSBQb2ludHNfQXJyYXkgaXMgcmVjb3JkCiAgICAgIFBvaW50cyAg
ICAgOiBOb19SYW5nZV9HZG91YmxlX0FycmF5X0FjY2VzczsKICAgICAgTnVtX1BvaW50cyA6IEdp
bnQgOj0gMDsKICAgZW5kIHJlY29yZDsKICAgLS0gIFRoZSBwb2ludHMgYXJlIGluZGV4ZWQgZnJv
bSAwIHRvIE51bV9Qb2ludHMtMS4KICAgLS0gIE5vdGUgdGhhdCB5b3UgY2FuJ3QgdXNlICdSYW5n
ZSwgJ0ZpcnN0IG9yICdMYXN0IG9uIFBvaW50cy4KCgogICB0eXBlIFBsb3RfQ29ubmVjdG9yIGlz
IChDb25uZWN0X05vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tICBObyBjb25uZWN0
aW9uCgogICAgICAgICAgICAgICAgICAgICAgICAgICBDb25uZWN0X1N0cmFpZ2h0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAtLSAgc3RyYWlnaHQgbGluZQoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ29ubmVjdF9TcGxpbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tICBz
cGxpbmUgb3IgQmV6aWVyIGN1cnZlCgogICAgICAgICAgICAgICAgICAgICAgICAgICBDb25uZWN0
X0h2X1N0ZXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tICBIb3Jpem9udGFsIHRoZW4g
dmVydGljYWwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbm5lY3RfVmhfU3RlcCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0gIFZlcnRpY2FsIHRoZW4gaG9yaXpvbnRhbAoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ29ubmVjdF9NaWRkbGVfU3RlcAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAtLSAgU3BsaXQgaW4gdGhlIG1pZGRsZQogICAgICAgICAgICAgICAgICAg
ICAgICAgICApOwogICAtLSAgVGhlIHR5cGUgb2YgY29ubmVjdGlvbiBiZXR3ZWVuIHR3byBhZGph
Y2VudCBwb2ludHMgaW4gYSBncmFwaC4KCiAgIHR5cGUgUGxvdF9HcmFkaWVudCBpcyBuZXcgSW50
ZWdlcjsKICAgLS0gIEluZGljYXRlIHdoaWNoIGNvbG9yIGNvbXBvbmVudHMgdmFyeSBhbG9uZyB0
aGUgZ3JhZGllbnQKCiAgIEdyYWRpZW50X0ggOiBjb25zdGFudCBQbG90X0dyYWRpZW50OyAtLSAg
SHVlCiAgIEdyYWRpZW50X1YgOiBjb25zdGFudCBQbG90X0dyYWRpZW50OyAtLSAgVmFsdWUKICAg
R3JhZGllbnRfUyA6IGNvbnN0YW50IFBsb3RfR3JhZGllbnQ7IC0tICBTYXR1cmF0aW9uCgogICB0
eXBlIFBsb3RfU3ltYm9sX1R5cGUgaXMgKFN5bWJvbF9Ob25lLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFN5bWJvbF9TcXVhcmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lt
Ym9sX0NpcmNsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeW1ib2xfVXBfVHJpYW5n
bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3ltYm9sX0Rvd25fVHJpYW5nbGUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3ltYm9sX1JpZ2h0X1RyaWFuZ2xlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFN5bWJvbF9MZWZ0X1RyaWFuZ2xlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFN5bWJvbF9EaWFtb25kLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFN5bWJvbF9QbHVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5bWJvbF9Dcm9z
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeW1ib2xfU3RhciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTeW1ib2xfRG90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFN5bWJvbF9JbXB1bHNlKTsKICAgLS0gIFR5cGUgb2Ygc3ltYm9sIHVzZWQgdG8gcmVwcmVzZW50
IHRoZSBwb2ludHMgaW4gYSBncmFwaC4KCiAgIHR5cGUgUGxvdF9TeW1ib2xfU3R5bGUgaXMgKFN5
bWJvbF9FbXB0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3ltYm9sX0ZpbGxlZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3ltYm9sX09wYXF1ZSk7CiAgIC0tICBTdHls
ZSB1c2VkIHRvIGRyYXcgdGhlIHBvaW50cyBpbiBhIGdyYXBoLgoKICAgdHlwZSBQbG90X0xpbmVf
U3R5bGUgaXMgKExpbmVfTm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmVfU29s
aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5lX0RvdHRlZCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExpbmVfRGFzaGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
TGluZV9Eb3RfRGFzaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmVfRG90X0RvdF9E
YXNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZV9Eb3RfRGFzaF9EYXNoKTsKICAg
LS0gIExpbmVzIHVzZWQgdG8gY29ubmVjdCB0d28gYWRqYWNlbnQgcG9pbnRzIGluIGEgZ3JhcGgu
CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBQbG90IGZ1bmN0aW9ucyAtLQogICAtLS0t
LS0tLS0tLS0tLS0tLS0tLQogICAtLSAgUGxvdCBmdW5jdGlvbnMgc2hvdWxkIGdlbmVyYXRlIGEg
dW5pcXVlIFkgdmFsdWUgZ2l2ZW4gYSBwYXJhbWV0ZXIuCiAgIC0tICBUaGVzZSBjYW4gYmUgdXNl
ZCBmb3IgaW5zdGFuY2UgdG8gcmVwcmVzZW50IGV4YWN0bHkgbWF0aGVtYXRpY2FsCiAgIC0tICBm
dW5jdGlvbnMuCiAgIC0tICBOb3RlIHRoYXQgZHVlIHRvIHRoZSBDIGludGVyZmFjZSwgdGhlIHN1
YnByb2dyYW1zIGluIEd0ay5FeHRyYS5QbG90IGFuZAogICAtLSAgaW4gdGhpcyBwYWNrYWdlIGV4
cGVjdCBmdW5jdGlvbnMgdGhhdCB0YWtlIGEgU3lzdGVtLkFkZHJlc3MgYXMgYQogICAtLSAgcGFy
YW1ldGVyLiBIb3dldmVyLCBzaW5jZSBpdCBpcyBtdWNoIG1vcmUgY29udmVuaWVudCBpbiB5b3Vy
IGFwcGxpY2F0aW9uCiAgIC0tICB0byBnZXQgYSBHdGtfUGxvdF9SZWNvcmQgZGlyZWN0bHksIEd0
a0FkYSBpbmNsdWRlcyBhIGdlbmVyaWMgZnVuY3Rpb24KICAgLS0gIHRoYXQgYXV0b21hdGljYWxs
eSBkb2VzIHRoZSBjb252ZXJzaW9uIGZvciB5b3UgKHNlZQogICAtLSAgR3RrLlBsb3QuR2VuZXJp
Y19QbG90X0Z1bmN0aW9uKS4KCiAgIHR5cGUgUGxvdF9GdW5jdGlvbiBpcyBhY2Nlc3MgZnVuY3Rp
b24KICAgICAoUGxvdCAgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAgU2V0ICAgOiBHdGtfUGxvdF9E
YXRhOwogICAgICBYICAgICA6IEdkb3VibGU7CiAgICAgIEVycm9yIDogYWNjZXNzIEdib29sZWFu
KQogICAgIHJldHVybiBHZG91YmxlOwogICAtLSAgRnVuY3Rpb24gdXNlZCBmb3IgcGxvdHRpbmcu
CiAgIC0tICBJdCBzaG91bGQgcmV0dXJuIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggWCBpbiBp
dHMgZ3JhcGgsIGFuZCBzZXQKICAgLS0gIEVycm9yIHRvIFRydWUgaWYgdGhlcmUgd2FzIGFuIGVy
cm9yIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSB2YWx1ZS4KCiAgIHByYWdtYSBDb252ZW50aW9uIChD
LCBQbG90X0Z1bmN0aW9uKTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gQ3Jl
YXRpbmcgYSBEYXRhIHNldCAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9j
ZWR1cmUgR3RrX05ldyAoRGF0YSA6IG91dCBHdGtfUGxvdF9EYXRhOyBGdW5jIDogUGxvdF9GdW5j
dGlvbiA6PSBudWxsKTsKICAgLS0gIENyZWF0ZXMgYSBuZXcgZGF0YSBzZXQuIEl0cyB2YWx1ZXMg
Y2FuIGVpdGhlciBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseQogICAtLSAgZnJvbSBGdW5jLCBv
ciB3aWxsIGhhdmUgdG8gYmUgc2V0IGV4cGxpY2l0ZWx5IHVzaW5nIHRoZSBvdGhlcgogICAtLSAg
c3VicHJvZ3JhbXMgaW4gdGhpcyBwYWNrYWdlLgoKICAgcHJvY2VkdXJlIEluaXRpYWxpemUKICAg
ICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCdDbGFzczsgRnVuYyA6IFBsb3Rf
RnVuY3Rpb24gOj0gbnVsbCk7CiAgIC0tICBJbnRlcm5hbCBpbml0aWFsaXphdGlvbiBmdW5jdGlv
bi4KICAgLS0gIFNlZSB0aGUgc2VjdGlvbiAiQ3JlYXRpbmcgeW91ciBvd24gd2lkZ2V0cyIgaW4g
dGhlIGRvY3VtZW50YXRpb24uCgogICBmdW5jdGlvbiBHZXRfVHlwZSByZXR1cm4gR3RrLkd0a19U
eXBlOwogICAtLSAgUmV0dXJuIHRoZSBpbnRlcm5hbCB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggYSBH
dGtfUGxvdF9EYXRhLgoKICAgcHJvY2VkdXJlIFNldF9OYW1lIChEYXRhIDogYWNjZXNzIEd0a19Q
bG90X0RhdGFfUmVjb3JkOyBOYW1lIDogU3RyaW5nKTsKICAgLS0gIFNldCB0aGUgbmFtZSB1c2Vk
IGludGVybmFsbHkgZm9yIHRoYXQgZGF0YXNldC4KICAgLS0gIFRoaXMgbmFtZSBkb2VzIG5vdCBh
cHBlYXIgYW55d2hlcmUgb24gdGhlIHNjcmVlbiwgYnV0IGl0IGlzIGVhc2llciB0bwogICAtLSAg
ZmluZCB0aGUgZGF0YXNldCBhZnRlcndhcmQgYnkgdXNpbmcgdGhpcyBuYW1lLgoKICAgLS0tLS0t
LS0tLS0tLS0tLS0tLQogICAtLSBEcmF3aW5nIGEgc2V0IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0t
LS0KICAgLS0gIEFsdGhvdWdoIGEgc2V0IGlzIGJhc2ljYWxseSBhIGxpc3Qgb2YgdmFsdWVzLCBp
dCBpcyBjbG9zZWx5IGFzc29jaWF0ZWQKICAgLS0gIHdpdGggaXRzIHJlcHJlc2VudGF0aW9uIG9u
IHRoZSBzY3JlZW4gKHNlZSB0aGUgY2hpbGRyZW4gb2YgR3RrX1Bsb3RfRGF0YQogICAtLSAgZm9y
IHZhcmlvdXMgcG9zc2libGUgcmVwcmVzZW50YXRpb25zKS4KICAgLS0gIFRoZSBHdGsuRXh0cmEg
cGFja2FnZXMgYXJlIGRlc2lnbmVkIHNvIHRoYXQgdGhlIGRyYXdpbmcgY2FuIGJlIGRvbmUKICAg
LS0gIGVpdGhlciB0byB0aGUgc2NyZWVuICh0aHJvdWdoIGEgR2RrIGFkYXB0ZXIpLCB0byBhIHBv
c3RzY3JpcHQgZmlsZSBmb3IKICAgLS0gIGVhc3kgcHJpbnRpbmcsIG9yIHRvIGFueSBvdGhlciBt
ZWRpYS4KCiAgIHByb2NlZHVyZSBQYWludCAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1Jl
Y29yZCk7CiAgIC0tICBFbWl0cyB0aGUgImRyYXdfZGF0YSIgc2lnbmFsIHRvIHJlcXVlc3QgYSBy
ZWRyYXdpbmcgb2YgdGhlIGRhdGEgc2V0LgoKICAgcHJvY2VkdXJlIERyYXdfUG9pbnRzIChEYXRh
IDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBOIDogR2ludCk7CiAgIC0tICBEcmF3IGF0
IG1vc3QgTiB2YWx1ZXMgb2YgdGhlIERhdGEgc2V0IG9uIHRoZSBzY3JlZW4uIElmIE4gaXMgZ3Jl
YXRlcgogICAtLSAgdGhhbiB0aGUgYWN0dWFsIG51bWJlciBvZiB2YWx1ZXMgaW4gRGF0YSwgdGhl
biB0aGV5IGFyZSBhbGwgZGlzcGxheWVkLgoKICAgcHJvY2VkdXJlIERyYXdfU3ltYm9sIChEYXRh
IDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBYLCBZIDogR2RvdWJsZSk7CiAgIC0tICBE
cmF3IHRoZSBjdXJyZW50IHN5bWJvbCAoc2VlIFNldF9TeW1ib2wpIGF0IHNwZWNpZmljIGNvb3Jk
aW5hdGVzIG9uCiAgIC0tICB0aGUgc2NyZWVuLgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogICAtLSBNYW5pcHVsYXRpbmcgdmFsdWVzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KCiAgIHByb2NlZHVyZSBTZXRfUG9pbnRzCiAgICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3Rf
RGF0YV9SZWNvcmQ7CiAgICAgIFggICAgOiBHZG91YmxlX0FycmF5X0FjY2VzczsKICAgICAgWSAg
ICA6IEdkb3VibGVfQXJyYXlfQWNjZXNzOwogICAgICBEeCAgIDogR2RvdWJsZV9BcnJheV9BY2Nl
c3M7CiAgICAgIER5ICAgOiBHZG91YmxlX0FycmF5X0FjY2Vzcyk7CiAgIC0tICBTZXQgc29tZSBl
eHBsaWNpdCBwb2ludHMgaW4gdGhlIHNldC4KICAgLS0gIE5vdGUgdGhhdCB0aGUgc2V0IG11c3Qg
bm90IGJlIGFzc29jaWF0ZWQgd2l0aCBhIGZ1bmN0aW9uLCBvciB0aGUgcG9pbnRzCiAgIC0tICB3
aWxsIHNpbXBseSBiZSBpZ25vcmVkLgogICAtLSAgQWxsIG9mIHRoZSBhcnJheXMgbXVzdCBoYXZl
IHRoZSBzYW1lIGxlbmd0aCwgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZAogICAtLSAgb3RoZXJ3
aXNlLgogICAtLSAgWCBhbmQgWSBhcmUgdGhlIGxpc3Qgb2YgY29vcmRpbmF0ZXMgb2YgdGhlIHBv
aW50cy4KICAgLS0gIER4IGFuZCBEeSBhcmUgdGhlIGxpc3Qgb2Ygc2l6ZSAocHJlY2lzaW9uKSBv
ZiB0aGVzZSBwb2ludHMuIEEgYmlnZ2VyCiAgIC0tICBzeW1ib2wgd2lsbCBiZSBkaXNwbGF5ZWQg
Zm9yIHRoZSBwb2ludCB3aG9zZSAoRHgsIER5KSB2YWx1ZSBpcyBiaWdnZXIuCgogICBwcm9jZWR1
cmUgR2V0X1BvaW50cwogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwog
ICAgICBYICAgIDogb3V0IFBvaW50c19BcnJheTsKICAgICAgWSAgICA6IG91dCBQb2ludHNfQXJy
YXk7CiAgICAgIER4ICAgOiBvdXQgUG9pbnRzX0FycmF5OwogICAgICBEeSAgIDogb3V0IFBvaW50
c19BcnJheSk7CiAgIC0tICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBwb2ludHMgaW4gdGhlIHNl
dC4KICAgLS0gIE51bGwtbGVuZ3RoIGFycmF5cyBhcmUgcmV0dXJuZWQgaWYgdGhlIHNldCBpcyBh
c3NvY2lhdGVkIHdpdGggYQogICAtLSAgZnVuY3Rpb24sIHNpbmNlIG5vIGV4cGxpY2l0IHBvaW50
IGhhcyBiZWVuIHNldC4KICAgLS0gIFNlZSBTZXRfUG9pbnRzIGZvciBhIGRlZmluaXRpb24gb2Yg
WCwgWSwgRHggYW5kIER5LgoKICAgcHJvY2VkdXJlIFNldF9YCiAgICAgKERhdGEgOiBhY2Nlc3Mg
R3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IFggOiBHZG91YmxlX0FycmF5X0FjY2Vzcyk7CiAgIHByb2Nl
ZHVyZSBTZXRfWQogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBZIDog
R2RvdWJsZV9BcnJheV9BY2Nlc3MpOwogICBwcm9jZWR1cmUgU2V0X1oKICAgICAoRGF0YSA6IGFj
Y2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgWiA6IEdkb3VibGVfQXJyYXlfQWNjZXNzKTsKICAg
cHJvY2VkdXJlIFNldF9BCiAgICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7
IEEgOiBHZG91YmxlX0FycmF5X0FjY2Vzcyk7CiAgIC0tICBTZXQgdGhlIHZhbHVlcyBmb3Igb25l
IHNwZWNpZmljIGNvb3JkaW5hdGUgaW4gdGhlIHNldC4KICAgLS0gIFRoZSBhcnJheSBtdXN0IGhh
dmUgYSBsZW5ndGggb2YgR2V0X051bXBvaW50cyAoaWYgR3RrQWRhIHdhcwogICAtLSAgY29tcGls
ZWQgd2l0aCBhc3NlcnRpb25zIGVuYWJsZWQsIGFuIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCBp
ZiB0aGUKICAgLS0gIGxlbmd0aCBhcmUgZGlmZmVyZW50KS4KICAgLS0gIE5vIGNvcHkgb2YgdGhl
IGFycmF5IGlzIG1hZGUgZm9yIGVmZmljaWVuY3kgcmVhc29ucywgdGh1cyBtb2RpZnlpbmcKICAg
LS0gIHRoZSBhcnJheSBjb250ZW50IGxhdGVyIG9uIHdpbGwgYWxzbyBtb2RpZnkgdGhlIHBsb3Qu
CiAgIC0tCiAgIC0tICAiQSIgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBzeW1i
b2xzLiBXaGVuIHBsb3R0aW5nIGJveGVzIGluCiAgIC0tICB0d28gZGltZW5zaW9ucywgIloiIGlz
IHVzZWQgdG8gc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgYm94LgoKICAgcHJvY2VkdXJlIFNldF9E
eAogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBEeCA6IEdkb3VibGVf
QXJyYXlfQWNjZXNzKTsKICAgcHJvY2VkdXJlIFNldF9EeQogICAgIChEYXRhIDogYWNjZXNzIEd0
a19QbG90X0RhdGFfUmVjb3JkOyBEeSA6IEdkb3VibGVfQXJyYXlfQWNjZXNzKTsKICAgcHJvY2Vk
dXJlIFNldF9EegogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBEeiA6
IEdkb3VibGVfQXJyYXlfQWNjZXNzKTsKICAgLS0gIFNldCB0aGUgcHJlY2lzaW9uIG9mIHRoZSBw
b2ludHMgaW4gdGhlIHNldC4gQSBiaWdnZXIgc3ltYm9sIGlzIGRpc3BsYXllZAogICAtLSAgZm9y
IHRoZSBwb2ludHMgd2hvc2UgKER4LCBEeSwgRHopIGlzIGJpZ2dlci4KICAgLS0gIFRoZSBhcnJh
eSBtdXN0IGhhdmUgYSBsZW5ndGggb2YgR2V0X051bXBvaW50cyAoaWYgR3RrQWRhIHdhcwogICAt
LSAgY29tcGlsZWQgd2l0aCBhc3NlcnRpb25zIGVuYWJsZWQsIGFuIGV4Y2VwdGlvbiB3aWxsIGJl
IHJhaXNlZCBpZiB0aGUKICAgLS0gIGxlbmd0aCBhcmUgZGlmZmVyZW50KS4KICAgLS0gIE5vIGNv
cHkgb2YgdGhlIGFycmF5IGlzIG1hZGUgZm9yIGVmZmljaWVuY3kgcmVhc29ucywgdGh1cyBtb2Rp
ZnlpbmcKICAgLS0gIHRoZSBhcnJheSBjb250ZW50IGxhdGVyIG9uIHdpbGwgYWxzbyBtb2RpZnkg
dGhlIHBsb3QuCgogICBwcm9jZWR1cmUgU2V0X0RhCiAgICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bs
b3RfRGF0YV9SZWNvcmQ7IERhIDogR2RvdWJsZV9BcnJheV9BY2Nlc3MpOwogICAtLSAgU3BlY2lm
aWVzIHRoZSBjb2xvcnMgdG8gdXNlIGZvciB0aGUgcG9pbnRzLgogICAtLSAgVGhlIGNvbG9yIG9m
IHRoZSBzeW1ib2xzIGlzIGRldGVtaW5lZCB1c2luZyB0aGUgZ3JhZGllbnQuIHRoZSBncmFkaWVu
dAogICAtLSAgaGFzIChtaW4sIG1heCkgdmFsdWVzLCBhbmQgY29ycmVzcG9uZGluZyBjb2xvcnMu
IFRoZSBzeW1ib2wncyBjb2xvciBpcwogICAtLSAgaW50ZXJwb2xhdGVkIGJldHdlZW4gdGhlc2Ug
dmFsdWVzIHVzaW5nIGh1ZS9zYXR1cmF0aW9uL3ZhbHVlIGRlcGVuZGluZwogICAtLSAgb24gdGhl
IGdyYWRpZW50X21hc2suCgogICBmdW5jdGlvbiBHZXRfWCAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bs
b3RfRGF0YV9SZWNvcmQpIHJldHVybiBQb2ludHNfQXJyYXk7CiAgIGZ1bmN0aW9uIEdldF9ZICAo
RGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkgcmV0dXJuIFBvaW50c19BcnJheTsK
ICAgZnVuY3Rpb24gR2V0X1ogIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKSBy
ZXR1cm4gUG9pbnRzX0FycmF5OwogICBmdW5jdGlvbiBHZXRfQSAgKERhdGEgOiBhY2Nlc3MgR3Rr
X1Bsb3RfRGF0YV9SZWNvcmQpIHJldHVybiBQb2ludHNfQXJyYXk7CiAgIGZ1bmN0aW9uIEdldF9E
eCAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkgcmV0dXJuIFBvaW50c19BcnJh
eTsKICAgZnVuY3Rpb24gR2V0X0R5IChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3Jk
KSByZXR1cm4gUG9pbnRzX0FycmF5OwogICBmdW5jdGlvbiBHZXRfRHogKERhdGEgOiBhY2Nlc3Mg
R3RrX1Bsb3RfRGF0YV9SZWNvcmQpIHJldHVybiBQb2ludHNfQXJyYXk7CiAgIGZ1bmN0aW9uIEdl
dF9EYSAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkgcmV0dXJuIFBvaW50c19B
cnJheTsKICAgLS0gIFJldHVybiB0aGUgY29vcmRpbmF0ZXMgZm9yIHRoZSBwb2ludHMgaW4gdGhl
IHNldC4KICAgLS0gIFRoaXMgaXMgYSBkaXJlY3QgYWNjZXNzIHRvIHRoZSB1bmRlcmx5aW5nIEMg
YXJyYXksIHRodXMgbW9kaWZ5aW5nIHRoaXMKICAgLS0gIGFycmF5J3MgY29udGVudHMgYWxzbyBt
b2RpZmllcyB0aGUgZ3JhcGguCiAgIC0tICBTZWUgdGhlIGNvcnJlc3BvbmRpbmcgU2V0XyogZnVu
Y3Rpb25zIGZvciBhIGRlZmluaXRpb24gb2YgdGhlCiAgIC0tICBjb29yZGluYXRlcwoKICAgcHJv
Y2VkdXJlIFNldF9OdW1wb2ludHMgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7
IE51bSA6IEdpbnQpOwogICAtLSAgU2V0IHRoZSBudW1iZXIgb2YgcG9pbnRzIHRoYXQgc2hvdWxk
IGJlIGV4cGVjdGVkIGluIHRoZSBncmFwaC4KICAgLS0gIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90
IGF1dG9tYXRpY2FsbHkgcmVzaXplIGFsbCB0aGUgaW50ZXJuYWwgc3RydWN0dXJlLAogICAtLSAg
aXQganVzdCBpbmRpY2F0ZXMgd2hhdCBzaXplIHRoZSBwYXJhbWV0ZXJzIHRvIFNldF9YLCBTZXRf
WSwuLi4gc2hvdWxkCiAgIC0tICBoYXZlLgoKICAgZnVuY3Rpb24gR2V0X051bXBvaW50cyAoRGF0
YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkgcmV0dXJuIEdpbnQ7CiAgIC0tICBSZXR1
cm4gdGhlIG51bWJlciBvZiBwb2ludHMgZXhwZWN0ZWQgaW4gdGhlIGdyYXBoLgoKICAgLS0tLS0t
LS0tLS0tCiAgIC0tIExhYmVscyAtLQogICAtLS0tLS0tLS0tLS0KICAgLS0gIEVhY2ggcG9pbnQg
aW4gdGhlIGRhdGEgc2V0IGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggYSBsYWJlbCB0aGF0IGRlc2Ny
aWJlcwogICAtLSAgaXQuIFRoaXMgaXMgb25seSByZWxldmFudCBmb3IgZGF0YSBzZXRzIHdoZXJl
IHlvdSBleHBsaWNpdGVseSBnaXZlCiAgIC0tICB2YWx1ZXMsIG5vdCB3aGVuIHRoZSB2YWx1ZXMg
YXJlIGdlbmVyYXRlZCBieSBhIGZ1bmN0aW9uLgoKICAgcHJvY2VkdXJlIFNldF9MYWJlbHMKICAg
ICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgTGFiZWxzIDogR3Rr
YWRhLlR5cGVzLkNoYXJzX1B0cl9BcnJheSk7CiAgIC0tICBTZXQgdGhlIGxhYmVscyBhc3NvY2lh
dGVkIHdoaWNoIGVhY2ggcG9pbnQgaW4gdGhlIGNhbnZhcy4KICAgLS0gIFRoZXJlIG11c3QgYmUg
YXQgbGVhc3QgR2V0X051bXBvaW50cyBlbGVtZW50cyBpbiBMYWJlbHMsIG9yIHRoZQogICAtLSAg
YmVoYXZpb3IgaXMgdW5kZWZpbmVkCgogICBmdW5jdGlvbiBHZXRfTGFiZWxzIChEYXRhIDogYWNj
ZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKQogICAgICByZXR1cm4gR3RrYWRhLlR5cGVzLkNoYXJz
X1B0cl9BcnJheTsKICAgLS0gIFJldHVybiB0aGUgbGFiZWxzIGFzc29jaWF0ZWQgd2l0aCB0aGUg
cG9pbnRzIGluIHRoZSBkYXRhIHNldC4KICAgLS0gIE5vdGUgdGhhdCB0aGlzIHJldHVybnMgYSAq
Y29weSogb2YgdGhlIGFjdHVhbCBhcnJheSwgYW5kIHRodXMgbWlnaHQKICAgLS0gIGJlIGV4cGVu
c2l2ZSB0byBjYWxsLgoKICAgcHJvY2VkdXJlIFNob3dfTGFiZWxzIChEYXRhIDogYWNjZXNzIEd0
a19QbG90X0RhdGFfUmVjb3JkOyBTaG93IDogQm9vbGVhbik7CiAgIC0tICBJbmRpY2F0ZSB3aGV0
aGVyIHRoZSBsYWJlbHMgc2hvdWxkIGJlIGRpc3BsYXllZCBuZXh0IHRvIGVhY2ggcG9pbnQgaW4K
ICAgLS0gIHRoZSBkYXRhIHNldC4gVGhpcyBoYXMgbm8gZWZmZWN0IGlmIG5vIGxhYmVscyB3ZXJl
IHNwZWNpZmllZC4KCiAgIHByb2NlZHVyZSBMYWJlbHNfU2V0X0F0dHJpYnV0ZXMKICAgICAoRGF0
YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgRm9udCA6IFN0cmluZzsKICAg
ICAgSGVpZ2h0IDogR2ludDsKICAgICAgQW5nbGUgIDogR2ludDsKICAgICAgRm9yZWdyb3VuZCA6
IEdkay5Db2xvci5HZGtfQ29sb3I7CiAgICAgIEJhY2tncm91bmQgOiBHZGsuQ29sb3IuR2RrX0Nv
bG9yKTsKICAgLS0gIFNldCB0aGUgcHJvcGVydGllcyBvZiB0aGUgbGFiZWxzCgogICAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFN5bWJvbHMgYW5kIENvbm5lY3RvcnMgLS0KICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSAgRWFjaCBwb2ludCB0aGF0IGlzIGV4
cGxpY2l0ZWx5IHNldCBpbiB0aGUgZGF0YSBzZXQgdGhyb3VnaCB0aGUKICAgLS0gIFNldF9YLCBT
ZXRfWSwuLi4gc3VicHJvZ3JhbXMgaXMgdmlzdWFsbHkgYXNzb2NpYXRlZCB3aXRoIGEgc3ltYm9s
LiBUaGVyZQogICAtLSAgYXJlIHNldmVyYWwgcmVwcmVzZW50YXRpb25zIGZvciB0aGUgc3ltYm9s
cy4KICAgLS0KICAgLS0gIEFsbCB0aGVzZSBzeW1ib2xzIGFyZSB0aGVuIGNvbm5lY3RlZCBieSBh
IGxpbmUsIGEgY3VydmUgb3IgYW55IG90aGVyCiAgIC0tICBsaW5rLiBUaGVzZSBhcmUgY2FsbGVk
IGNvbm5lY3RvcnMuCiAgIC0tCiAgIC0tICBFYWNoIHN5bWJvbCwgaW4gYWRkaXRpb24gdG8gYmVp
bmcgY29ubmVjdGVkIHRvIHRoZSBuZXh0IG9uZSB3aXRoIGEKICAgLS0gIGNvbm5lY3RvciwgY2Fu
IGFsc28gYmUgbGlua2VkIHRvIHRoZSBheGlzIFg9MCwgWT0wIG9yIFo9MCBzbyB0aGF0IGl0IGlz
CiAgIC0tICBlYXNpZXIgdG8gcmVhZCBpdHMgY29vcmRpbmF0ZXMuIFRoZXNlIGFyZSBjYWxsZWQg
ZXJyYmFycywgYW5kIHRoZXkgbXVzdAogICAtLSAgYmUgZXhwbGljaXRlbHkgc2hvd24uCgogICBw
cm9jZWR1cmUgU2V0X1N5bWJvbAogICAgIChEYXRhICAgICAgICAgOiBhY2Nlc3MgR3RrX1Bsb3Rf
RGF0YV9SZWNvcmQ7CiAgICAgIFRoZV9UeXBlICAgICA6IFBsb3RfU3ltYm9sX1R5cGU7CiAgICAg
IFN0eWxlICAgICAgICA6IFBsb3RfU3ltYm9sX1N0eWxlOwogICAgICBTaXplICAgICAgICAgOiBH
aW50OwogICAgICBMaW5lX1dpZHRoICAgOiBHZmxvYXQ7CiAgICAgIENvbG9yICAgICAgICA6IEdk
ay5Db2xvci5HZGtfQ29sb3I7CiAgICAgIEJvcmRlcl9Db2xvciA6IEdkay5Db2xvci5HZGtfQ29s
b3IpOwogICAtLSAgU2V0IHRoZSB2aXN1YWwgYXNwZWN0IG9mIHRoZSBzeW1ib2xzLgoKICAgcHJv
Y2VkdXJlIEdldF9TeW1ib2wKICAgICAoRGF0YSAgICAgICAgIDogYWNjZXNzIEd0a19QbG90X0Rh
dGFfUmVjb3JkOwogICAgICBUaGVfVHlwZSAgICAgOiBvdXQgUGxvdF9TeW1ib2xfVHlwZTsKICAg
ICAgU3R5bGUgICAgICAgIDogb3V0IFBsb3RfU3ltYm9sX1N0eWxlOwogICAgICBTaXplICAgICAg
ICAgOiBvdXQgR2ludDsKICAgICAgTGluZV9XaWR0aCAgIDogb3V0IEdpbnQ7CiAgICAgIENvbG9y
ICAgICAgICA6IG91dCBHZGsuQ29sb3IuR2RrX0NvbG9yOwogICAgICBCb3JkZXJfQ29sb3IgOiBv
dXQgR2RrLkNvbG9yLkdka19Db2xvcik7CiAgIC0tICBSZXR1cm4gdGhlIHZpc3VhbCBjaGFyYWN0
ZXJpc3RpY3Mgb2YgdGhlIHN5bWJvbHMuCgogICBwcm9jZWR1cmUgU2V0X0Nvbm5lY3RvcgogICAg
IChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBDb25uZWN0b3IgOiBQbG90X0Nv
bm5lY3Rvcik7CiAgIC0tICBTZXQgdGhlIHN0eWxlIG9mIHRoZSBjb25uZWN0b3JzLgoKICAgZnVu
Y3Rpb24gR2V0X0Nvbm5lY3RvciAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkK
ICAgICAgcmV0dXJuIFBsb3RfQ29ubmVjdG9yOwogICAtLSAgUmV0dXJuIHRoZSBjb25uZWN0b3Ig
c3R5bGUgdXNlZCBmb3IgdGhlIGRhdGEgc2V0LgoKICAgcHJvY2VkdXJlIFNldF9MaW5lX0F0dHJp
YnV0ZXMKICAgICAoRGF0YSAgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIFN0
eWxlIDogUGxvdF9MaW5lX1N0eWxlOwogICAgICBXaWR0aCA6IEdmbG9hdDsKICAgICAgQ29sb3Ig
OiBHZGsuQ29sb3IuR2RrX0NvbG9yKTsKICAgLS0gIFNldCB0aGUgbGluZSBzdHlsZSB1c2VkIGZv
ciB0aGUgY29ubmVjdG9ycy4KCiAgIHByb2NlZHVyZSBHZXRfTGluZV9BdHRyaWJ1dGVzCiAgICAg
KERhdGEgIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBTdHlsZSA6IG91dCBQ
bG90X0xpbmVfU3R5bGU7CiAgICAgIFdpZHRoIDogb3V0IEdmbG9hdDsKICAgICAgQ29sb3IgOiBv
dXQgR2RrLkNvbG9yLkdka19Db2xvcik7CiAgIC0tICBSZXR1cm4gdGhlIGxpbmUgYXR0cmlidXRl
cyB1c2VkIGZvciB0aGUgY29ubmVjdG9ycy4KCiAgIHByb2NlZHVyZSBTZXRfWF9BdHRyaWJ1dGVz
CiAgICAgKERhdGEgIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBTdHlsZSA6
IFBsb3RfTGluZV9TdHlsZTsKICAgICAgV2lkdGggOiBHZmxvYXQ7CiAgICAgIENvbG9yIDogR2Rr
LkNvbG9yLkdka19Db2xvcik7CiAgIC0tICBTZXQgdGhlIHN0eWxlIG9mIHRoZSBsaW5lcyB1c2Vk
IHRvIGNvbm5lY3QgdGhlIHN5bWJvbHMgdG8gdGhlIFggYXhpcy4KCiAgIHByb2NlZHVyZSBTZXRf
WV9BdHRyaWJ1dGVzCiAgICAgKERhdGEgIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwog
ICAgICBTdHlsZSA6IFBsb3RfTGluZV9TdHlsZTsKICAgICAgV2lkdGggOiBHZmxvYXQ7CiAgICAg
IENvbG9yIDogR2RrLkNvbG9yLkdka19Db2xvcik7CiAgIC0tICBTZXQgdGhlIHN0eWxlIG9mIHRo
ZSBsaW5lcyB1c2VkIHRvIGNvbm5lY3QgdGhlIHN5bWJvbHMgdG8gdGhlIFkgYXhpcy4KCiAgIHBy
b2NlZHVyZSBTZXRfWl9BdHRyaWJ1dGVzCiAgICAgKERhdGEgIDogYWNjZXNzIEd0a19QbG90X0Rh
dGFfUmVjb3JkOwogICAgICBTdHlsZSA6IFBsb3RfTGluZV9TdHlsZTsKICAgICAgV2lkdGggOiBH
ZmxvYXQ7CiAgICAgIENvbG9yIDogR2RrLkNvbG9yLkdka19Db2xvcik7CiAgIC0tICBTZXQgdGhl
IHN0eWxlIG9mIHRoZSBsaW5lcyB1c2VkIHRvIGNvbm5lY3QgdGhlIHN5bWJvbHMgdG8gdGhlIFog
YXhpcy4KCiAgIHByb2NlZHVyZSBTaG93X1hlcnJiYXJzIChEYXRhIDogYWNjZXNzIEd0a19QbG90
X0RhdGFfUmVjb3JkKTsKICAgcHJvY2VkdXJlIFNob3dfWWVycmJhcnMgKERhdGEgOiBhY2Nlc3Mg
R3RrX1Bsb3RfRGF0YV9SZWNvcmQpOwogICBwcm9jZWR1cmUgU2hvd19aZXJyYmFycyAoRGF0YSA6
IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCk7CiAgIC0tICBJbmRpY2F0ZSB0aGF0IGVhY2gg
c3ltYm9sIHNob3VsZCBiZSBjb25uZWN0ZWQgdG8gdGhlIHZhcmlvdXMgYXhpcwoKICAgcHJvY2Vk
dXJlIEhpZGVfWGVycmJhcnMgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpOwog
ICBwcm9jZWR1cmUgSGlkZV9ZZXJyYmFycyAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1Jl
Y29yZCk7CiAgIHByb2NlZHVyZSBIaWRlX1plcnJiYXJzIChEYXRhIDogYWNjZXNzIEd0a19QbG90
X0RhdGFfUmVjb3JkKTsKICAgLS0gIEluZGljYXRlIHRoZSB0aGUgc3ltYm9sIHNob3VsZCBub3Qg
YmUgY29ubmVjdGVkIHRvIHRoZSBheGlzLgoKICAgcHJvY2VkdXJlIEZpbGxfQXJlYSAoRGF0YSA6
IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgRmlsbCA6IEJvb2xlYW4pOwogICAtLSAgSW5k
aWNhdGUgd2hldGhlciB0aGUgYXJlYSBiZXR3ZWVuIHR3byBwb2ludHMgc2hvdWxkIGJlIGZpbGxl
ZCBvciBub3QuCgogICBmdW5jdGlvbiBBcmVhX0lzX0ZpbGxlZCAoRGF0YSA6IGFjY2VzcyBHdGtf
UGxvdF9EYXRhX1JlY29yZCkKICAgICAgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBJbmRpY2F0ZSB3
aGV0aGVyIHRoZSBhcmVhIGJldHdlZW4gdHdvIHBvaW50cyBpcyBmaWxsZWQuCgogICAtLS0tLS0t
LS0tLS0tCiAgIC0tIExlZ2VuZHMgLS0KICAgLS0tLS0tLS0tLS0tLQogICAtLSAgSW4gYWRkaXRp
b24gdG8gdGhlIGRyYXdpbmcgY29ycmVzcG9uZGluZyB0byB0aGUgZGF0YSBzZXQsIGl0IGlzIHBv
c3NpYmxlCiAgIC0tICB0byBkaXNwbGF5IGEgYm94IHRoYXQgY29udGFpbnMgYSBsZWdlbmQuIFRo
aXMgaXMgcGFydGljdWxhcnkgdXNlZnVsIHdoZW4KICAgLS0gIG11bHRpcGxlIGRhdGEgc2V0cyBh
cmUgZGlzcGxheWVkIG9uIHRoZSBzYW1lIHBsb3QuCgogICBwcm9jZWR1cmUgU2V0X0xlZ2VuZCAo
RGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgTGVnZW5kIDogU3RyaW5nKTsKICAg
LS0gIFNldCB0aGUgc3RyaW5nIHByaW50ZWQgaW4gdGhlIGxlZ2VuZCBmb3IgdGhhdCBkYXRhIHNl
dC4KICAgLS0gIE5vdGUgdGhhdCBhbiBlbnRyeSBjYW4gZXhpc3QgaW4gdGhlIGxlZ2VuZCBldmVu
IGlmIHRoZXJlIGlzIG5vIG5hbWUKICAgLS0gIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JhcGguCgog
ICBwcm9jZWR1cmUgU2hvd19MZWdlbmQgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNv
cmQpOwogICAtLSAgQW4gZW50cnkgd2lsbCBiZSBtYWRlIGluIHRoZSBwbG90J3MgbGVnZW5kIGZv
ciB0aGF0IGRhdGFzZXQuCgogICBwcm9jZWR1cmUgSGlkZV9MZWdlbmQgKERhdGEgOiBhY2Nlc3Mg
R3RrX1Bsb3RfRGF0YV9SZWNvcmQpOwogICAtLSAgTm8gZW50cnkgd2lsbCBhcHBlYXIgaW4gdGhl
IHBsb3QncyBsZWdlbmQgZm9yIHRoYXQgZGF0YXNldC4KCiAgIHByb2NlZHVyZSBTZXRfTGVnZW5k
X1ByZWNpc2lvbgogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBQcmVj
aXNpb24gOiBHaW50KTsKICAgLS0gIE51bWJlciBvZiBkaWdpdHMgdG8gZGlzcGxheSB3aGVuIHRo
ZSBsZWdlbmRzIGlzIGFzc29jaWF0ZWQgd2l0aCB2YWx1ZXMsCiAgIC0tICBhcyBpcyB0aGUgY2Fz
ZSBmb3IgZ3JhZGllbnRzLgoKICAgZnVuY3Rpb24gR2V0X0xlZ2VuZF9QcmVjaXNpb24gKERhdGEg
OiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpCiAgICAgIHJldHVybiBHaW50OwogICAtLSAg
UmV0dXJuIHRoZSBudW1iZXIgb2YgZGlnaXRzIHVzZWQgZm9yIHZhbHVlcyBpbiB0aGUgbGVnZW5k
CgogICAtLS0tLS0tLS0tLS0tLS0KICAgLS0gR3JhZGllbnRzIC0tCiAgIC0tLS0tLS0tLS0tLS0t
LQogICAtLSAgVGhlIHN5bWJvbHMgZGlzcGxheWVkIGluIHRoZSBwbG90IGNhbiBiZSBhc3NpZ25l
ZCBzcGVjaWZpYyBjb2xvcnMuIEJ1dAogICAtLSAgdGhleSBjYW4gYWxzbyBjb21wdXRlIHRoZWly
IG93biBjb2xvciBieSBwaWNraW5nIGl0IGluIGEgZ3JhZGllbnQsCiAgIC0tICBkZXBlbmRpbmcg
b24gdGhlIHZhbHVlLgoKICAgcHJvY2VkdXJlIFNldF9HcmFkaWVudF9NYXNrCiAgICAgKERhdGEg
OiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IE1hc2sgOiBQbG90X0dyYWRpZW50KTsKICAg
LS0gIEluZGljYXRlcyB3aGljaCBjb21wb25lbnQgb2YgdGhlIGNvbG9ycyB2YXJ5IGFsb25nIHRo
ZSBncmFkaWVudC4KCiAgIGZ1bmN0aW9uIEdldF9HcmFkaWVudF9NYXNrIChEYXRhIDogYWNjZXNz
IEd0a19QbG90X0RhdGFfUmVjb3JkKQogICAgICByZXR1cm4gUGxvdF9HcmFkaWVudDsKICAgLS0g
IFJldHVybiB0aGUgbWFzayB1c2VkIGZvciB0aGUgZ3JhZGllbnQuCgogICBwcm9jZWR1cmUgR3Jh
ZGllbnRfU2V0X1Zpc2libGUKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29y
ZDsgVmlzaWJsZSA6IEJvb2xlYW4pOwogICAtLSAgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdyYWRp
ZW50IHNob3VsZCBiZSB2aXNpYmxlCgogICBmdW5jdGlvbiBHcmFkaWVudF9WaXNpYmxlIChEYXRh
IDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKQogICAgICByZXR1cm4gQm9vbGVhbjsKICAg
LS0gIFJldHVybiBUcnVlIGlmIHRoZSBncmFkaWVudCBpcyBjdXJyZW50bHkgdmlzaWJsZQoKICAg
cHJvY2VkdXJlIFNldF9HcmFkaWVudF9Db2xvcnMKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxv
dF9EYXRhX1JlY29yZDsKICAgICAgTWluLCBNYXggOiBHZGsuQ29sb3IuR2RrX0NvbG9yKTsKICAg
LS0gIFNldCB0aGUgY29sb3JzIHRoYXQgZGVmaW5lIHRoZSBncmFkaWVudC4gVGhlIGNvbG9ycyB3
aWxsIHZhcnkgZnJvbQogICAtLSAgTWluIHRvIE1heCBhbG9uZyB0aGUgY29tcG9uZW50cyBzcGVj
aWZpZWQgaW4gU2V0X0dyYWRpZW50X01hc2suCgogICBwcm9jZWR1cmUgR2V0X0dyYWRpZW50X0Nv
bG9ycwogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBNaW4s
IE1heCA6IG91dCBHZGsuQ29sb3IuR2RrX0NvbG9yKTsKICAgLS0gIFJldHVybiB0aGUgY29sb3Jz
IHRoYXQgZGVmaW5lIHRoZSByYW5nZQoKICAgcHJvY2VkdXJlIFNldF9HcmFkaWVudAogICAgIChE
YXRhICAgICA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgTWluLCBNYXggOiBH
ZG91YmxlOwogICAgICBObGV2ZWxzICA6IEdpbnQpOwogICAtLSAgRGVmaW5lIHRoZSB2YWx1ZXMg
YXNzb2NpYXRlZCB3aXRoIHRoZSBtaW5pbWFsIGNvbG9yIGFuZCB0aGUgbWF4aW1hbAogICAtLSAg
Y29sb3IuIEFueSB2YWx1ZSBpbiBiZXR3ZWVuIHdpbGwgaGF2ZSBhIGNvbG9yIGNvbXB1dGVkIGlu
IGJldHdlZW4uCiAgIC0tICBObGV2ZWxzIGlzIHRoZSBudW1iZXIgb2YgdGlja3MgdG8gZGlzcGxh
eSBpbiB0aGUgZ3JhZGllbnQuCgogICBwcm9jZWR1cmUgR2V0X0dyYWRpZW50CiAgICAgKERhdGEg
ICAgIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBNaW4sIE1heCA6IG91dCBH
ZG91YmxlOwogICAgICBObGV2ZWxzICA6IG91dCBHaW50KTsKICAgLS0gIFJldHVybiB0aGUgdmFs
dWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWluaW1hbCBhbmQgbWF4aW1hbCBjb2xvcnMuCgogICBw
cm9jZWR1cmUgR2V0X0dyYWRpZW50X0xldmVsCiAgICAgKERhdGEgIDogYWNjZXNzIEd0a19QbG90
X0RhdGFfUmVjb3JkOwogICAgICBMZXZlbCA6IEdkb3VibGU7CiAgICAgIENvbG9yIDogb3V0IEdk
ay5Db2xvci5HZGtfQ29sb3IpOwogICAtLSAgUmV0dXJuIHRoZSBjb2xvciBhc3NvY2lhdGVkIHdp
dGggYSBzcGVjaWZpYyBsZXZlbC4KICAgLS0gIFRoZSBjb2xvciBkZXBlbmRzIG9uIHRoZSBwYXJh
bWV0ZXJzIHRvIFNldF9HcmFkaWVudCBhbmQKICAgLS0gIFNldF9HcmFkaWVudF9Db2xvcnMuCgog
ICAtLS0tLS0tLS0tLS0tLS0KICAgLS0gVXNlciBEYXRhIC0tCiAgIC0tLS0tLS0tLS0tLS0tLQog
ICAtLSAgSXQgaXMgcG9zc2libGUgdG8gYXNzb2NpYXRlZCB5b3VyIG93biB1c2VyIGRhdGEgd2l0
aCBhIHBsb3QuIFRoaXMgaXMKICAgLS0gIHRoZSBtZWNoYW5pc20gcHJvdmlkZWQgYnkgdGhlIEMg
dmVyc2lvbiBvZiBndGtleHRyYS4gSG93ZXZlciwgdGhlIGJlc3QKICAgLS0gIHdheSB0byBkbyB0
aGlzIGluIEFkYSBpcyB0byBpbmhlcml0IGZyb20gR3RrX1Bsb3RfRGF0YV9SZWNvcmQgKG9yIG9u
ZQogICAtLSAgb2YgaXRzIGNoaWxkcmVuKSwgYW5kIGFkZCB5b3VyIG93biBmaWVsZHMuCgogICBw
cm9jZWR1cmUgU2V0X0xpbmsKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29y
ZDsKICAgICAgTGluayA6IFN5c3RlbS5BZGRyZXNzKTsKICAgLS0gIEFzc29jaWF0ZSBzb21lIHVz
ZXIgZGF0YSB3aXRoIERhdGEuCiAgIC0tICBJdCBpcyB0aGUgcmVzcG9uc2FiaWxpdHkgb2YgdGhl
IHVzZXIgdG8gZG8gc29tZSBjb252ZXJ0IGNvbnZlcnNpb24gdG8KICAgLS0gIFN5c3RlbS5BZGRy
ZXNzLgoKICAgZnVuY3Rpb24gR2V0X0xpbmsgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9S
ZWNvcmQpCiAgICAgIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgLS0gIFJldHVybiB0aGUgdXNl
ciBkYXRhIGFzc29jaWF0ZWQgd2l0aCBEYXRhLCBvciBOdWxsX0FkZHJlc3MgaWYgdGhlcmUgaXMK
ICAgLS0gIG5vbmUuCgogICBwcm9jZWR1cmUgUmVtb3ZlX0xpbmsgKERhdGEgOiBhY2Nlc3MgR3Rr
X1Bsb3RfRGF0YV9SZWNvcmQpOwogICAtLSAgUmVtb3ZlIHRoZSB1c2VyIGRhdGEgYXNzb2NpYXRl
ZCB3aXRoIERhdGEuCgoKICAgLS0gIDxkb2NfaWdub3JlPgogICBmdW5jdGlvbiBUb19Eb3VibGVf
QXJyYXkgaXMgbmV3IFVuY2hlY2tlZF9Db252ZXJzaW9uCiAgICAgKFN5c3RlbS5BZGRyZXNzLCBO
b19SYW5nZV9HZG91YmxlX0FycmF5X0FjY2Vzcyk7CiAgIC0tICA8L2RvY19pZ25vcmU+Cgpwcml2
YXRlCiAgIHR5cGUgR3RrX1Bsb3RfRGF0YV9SZWNvcmQgaXMgbmV3IEd0ay5XaWRnZXQuR3RrX1dp
ZGdldF9SZWNvcmQgd2l0aAogICAgIG51bGwgcmVjb3JkOwoKICAgR3JhZGllbnRfSCA6IGNvbnN0
YW50IFBsb3RfR3JhZGllbnQgOj0gMTsKICAgR3JhZGllbnRfViA6IGNvbnN0YW50IFBsb3RfR3Jh
ZGllbnQgOj0gMjsKICAgR3JhZGllbnRfUyA6IGNvbnN0YW50IFBsb3RfR3JhZGllbnQgOj0gNDsK
CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9UeXBlLCAiZ3RrX3Bsb3RfZGF0YV9nZXRfdHlwZSIp
OwplbmQgR3RrLkV4dHJhLlBsb3RfRGF0YTsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3Rr
QWRhIC0gQWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0K
LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDIwMDAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBK
b2VsIEJyb2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IEdlbmVyYWwgUHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LiAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAg
ICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0g
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAg
ICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUg
UGxhY2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K
LS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2Vu
ZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBv
dGhlciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAg
ZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJs
ZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAg
LS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVh
c29ucyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5
IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICA8ZGVz
Y3JpcHRpb24+Ci0tICBUaGlzIGlzIHRoZSB0b3AgbGV2ZWwgcGFja2FnZSBvZiB0aGUgR3RrLkV4
dHJhIHdpZGdldCBoaWVyYXJjaHkuCi0tICA8L2Rlc2NyaXB0aW9uPgoKcGFja2FnZSBHdGsuRXh0
cmEgaXMKZW5kIEd0ay5FeHRyYTsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0g
QWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMCAg
ICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJy
b2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy
YWwgUHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0K
LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUg
LS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAg
ICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Ug
LSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMg
YSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3Mg
ZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBm
aWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBu
b3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBi
ZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0g
ZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3
aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAg
R05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICA8ZGVzY3JpcHRp
b24+Ci0tICBUaGlzIGlzIHRoZSBiYXNlIGNsYXNzIG9mIHRoZSB3aWRnZXQgaGllcmFyY2h5Lgot
LSAgRXZlcnl0aGluZyBpbiBHdGtBZGEgaW5oZXJpdHMgZnJvbSB0aGlzIGNsYXNzIEd0a19PYmpl
Y3QsIGV4Y2VwdCBmb3IgYSBmZXcKLS0gIHN0cnVjdHVyZXMgaW4gdGhlIEdkay4qIHBhY2thZ2Vz
IChsb3ctbGV2ZWwgZHJhd2luZyByb3V0aW5lcykuCi0tCi0tICBUaGlzIGNsYXNzIHByb3ZpZGVz
IGEgc2V0IG9mIGhhbmRmdWwgZmVhdHVyZXMgdGhhdCB5b3UgY2FuIGNob29zZSB0byByZXVzZQot
LSAgaW4geW91ciBhcHBsaWNhdGlvbnM6Ci0tCi0tICAtIFJlZmVyZW5jZSBjb3VudGluZzogYW4g
b2JqZWN0IGlzIG5vdCBkZWxldGVkIHdoaWxlIHRoZXJlIGV4aXN0cyBhdCBsZWFzdAotLSAgICBv
bmUgcmVmZXJlbmNlIHRvIGl0LiBBbHRob3VnaCBHdGtBZGEgbW9zdGx5IHRha2VzIGNhcmUgb2Yg
dGhhdCBhc3BlY3QKLS0gICAgdHJhbnNwYXJlbnRseSwgeW91IG1pZ2h0IG5lZWQgaW4gc29tZSBv
YnNjdXJlIGNhc2VzIHRvIGluY3JlbWVudCBvcgotLSAgICBkZWNyZW1lbnQgdGhlIHJlZmVyZW5j
ZSBjb3VudGluZyBmb3IgYSB3aWRnZXQgbWFudWFsbHksIHNvIHRoYXQgaXQgaXMgbm90Ci0tICAg
IHJlbW92ZWQgZnJvbSBtZW1vcnkgd2hpbGUgeW91IHN0aWxsIG5lZWQgaXQuCi0tCi0tICAtIFVz
ZXIgZGF0YTogYW55IG51bWJlciBvZiBkYXRhIGNhbiBiZSBhdHRhY2hlZCB0byBhIEd0a19PYmpl
Y3Qgb3Igb25lIG9mCi0tICAgIGl0cyBjaGlsZHJlbi4gVGhlc2VzIGRhdGEgYXJlIHJlZmVyZW5j
ZXMgYnkgYSBTdHJpbmcsIGluIGEgaGFzaC10YWJsZS4KLS0gICAgR3RrQWRhIGl0c2VsZiB1c2Vz
IHRoaXMgZmVhdHVyZSB0byBwcm92aWRlIGFuIGVhc3kgY29udmVyc2lvbiBiZXR3ZWVuIEMKLS0g
ICAgYW5kIEFkYSB3aWRnZXRzLgotLSAgICBBbHRob3VnaCB5b3UgbWlnaHQgcHJlZmVyIHRvIGhh
dmUgYSBjb21wbGV0ZWx5IG9iamVjdC1vcmllbnRlZAotLSAgICBhcHBsaWNhdGlvbiAoYW5kIHRo
dXMgYXNzb2NpYXRlIGRhdGEgdGhyb3VnaCBjbGFzcyBpbmhlcml0YW5jZSksIGl0Ci0tICAgIG1p
Z2h0IGJlIGNvbnZlbmllbnQgdG8gZGlyZWN0bHkgYXR0YWNoIHNvbWUgZGF0YSB0byB5b3VyIG9i
amVjdHMuCi0tCi0tICAtIEl0IGFsc28gY29udGFpbnMgdGhlIGJhc2ljIHN0cnVjdHVyZXMgYW5k
IHN1YnByb2dyYW1zIHJlcXVpcmVkIGZvciBzaWduYWwKLS0gICAgZW1pc3Npb24uIFRoaXMgaXMg
b2YgY291cnNlIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBzaWduYWwgbWVjaGFuaXNtIGluCi0tICAg
IEd0a0FkYSBpdHNlbGYsIGJ1dCBjYW4gYWxzbyBiZSB1c2VkIHRvIGltcGxlbWVudCBhIE1vZGVs
L1ZpZXcvQ29udHJvbGxlcgotLSAgICBmcmFtZXdvcmsuCi0tCi0tICBOb3RlIHRoYXQgYSBsb3Qg
b2YgZnVuY3Rpb25zIHByb3ZpZGVkIGluIHRoZSBDIGludGVyZmFjZSBhcmUgbm90IHByb3ZpZGVk
Ci0tICBoZXJlLiBUaGV5IGFyZSB1c2VkIHRvIGVtdWxhdGUgYW4gb2JqZWN0LW9yaWVudGVkIGxh
bmd1YWdlIGluIEMsIHdoaWNoIGNhbgotLSAgb2YgY291cnNlIGJlIGRvbmUgbXVjaCBtb3JlIGNv
bnZlbmllbnRseSBpbiBBZGEuIFRoZXJlZm9yZSBtb3N0IG9mIHRoZXNlCi0tICBmdW5jdGlvbnMg
YXJlIG5vdCBuZWVkZWQuCi0tCi0tICBIZXJlIGlzIGEgYnJpZWYgZXhwbGFuYXRpb24gb24gaG93
IHRoZSByZWZlcmVuY2UgY291bnRpbmcgYW5kIGRlc3RydWN0aW9uCi0tICBwcm9jZXNzIHdvcmsu
IFlvdSBzaG91bGQgbm90IGhhdmUgdG8gdW5kZXJzdGFuZCBhbGwgdGhpcyB0byB1c2UgR3RrQWRh
LCBidXQKLS0gIGl0IG1pZ2h0IGhlbHAgYW55d2F5LgotLQotLSAgV2hlbiBhbiBvYmplY3QgKGRl
c2NlbmRhbnQgb2YgR3RrLk9iamVjdCkgaXMgY3JlYXRlZCwgaXQgaGFzIGluaXRpYWxseSBhCi0t
ICByZWZfY291bnQgb2YgMS4gQSBmbGFnIGlzIHNldCB0byBzYXkgdGhlIG9iamVjdCBpcyAiZmxv
YXRpbmciLiAgU2VlIHRoZQotLSAgRmxhZ3MgZnVuY3Rpb25zIGluIHRoaXMgcGFja2FnZSBmb3Ig
aG93IHRvIHJldHJpZXZlIHRoZSBzdGF0dXMgb2YgdGhpcwotLSAgZmxhZy4KLS0KLS0gIFdoZW4g
dGhlIG9iamVjdCBnZXRzIGEgcGFyZW50IChpZSBHdGsuV2lkZ2V0LlNldF9QYXJlbnQgaXMgY2Fs
bGVkLCBwb3NzaWJseQotLSAgZnJvbSBvdGhlciBzdWJwcm9ncmFtcyBsaWtlIEd0ay5Db250YWlu
ZXIuQWRkLCBHdGsuQm94LlBhY2tfU3RhcnQsIC4uLiksCi0tICB0aGUgcmVmX2NvdW50IG9mIHRo
ZSBvYmplY3QgaXMgaW5jcmVtZW50ZWQgdG8gMi4KLS0gIElmIHRoZSBvYmplY3Qgd2FzIHN0aWxs
ICJmbG9hdGluZyIsIGl0IGlzIGFsc28gInNpbmtlZCIsIGllIGl0cyByZWZfY291bnQKLS0gIGlz
IGRlY3JlbWVudGVkIHRvIDEsIGFuZCB0aGUgImZsb2F0aW5nIiBmbGFnIGlzIGNsZWFyZWQuCi0t
Ci0tICBUaGUgc2FtZSBiZWhhdmlvciBhcyBhYm92ZSBoYXBwZW5zIHdoZW4gdGhlIG9iamVjdCBp
cyByZWdpc3RlcmVkIGFzIGEKLS0gIHRvcC1sZXZlbCB3aWRnZXQgKGkuZS4gd2Uga25vdyBpdCB3
b24ndCBoYXZlIGFueSBwYXJlbnQpLgotLQotLSAgVGh1cyB0aGUgbm9ybWFsIGxpZmUgY3ljbGUg
b2YgYW4gb2JqZWN0IGlzIHRvIGhhdmUgYSByZWZfY291bnQgdG8gMSwgYW5kCi0tICBub3QgYmUg
YSAiZmxvYXRpbmciIG9iamVjdC4KLS0KLS0gIFdoZW4gdGhlIG9iamVjdCBpcyBkZXN0cm95ZWQs
IHRoZSBmb2xsb3dpbmcgaGFwcGVuczoKLS0gICAgIEEgdGVtcG9yYXJ5IHJlZmVyZW5jZSB0byB0
aGUgb2JqZWN0IGlzIGNyZWF0ZWQgKGNhbGwgdG8gUmVmKSwgYW5kCi0tICAgICAgICByZWZfY291
bnQgdG8gMi4KLS0gICAgIFRoZSBvYmplY3QgaXMgc2h1dGRvd246Ci0tICAgICAgICBJdCBpcyBy
ZW1vdmVkIGZyb20gaXRzIHBhcmVudCAoaWYgYW55KSwgYW5kIGl0cyByZWZfY291bnQgaXMKLS0g
ICAgICAgICAgZGVjcmVtZW50ZWQgdG8gMS4KLS0gICAgICAgIFRoZSAiZGVzdHJveSIgc2lnbmFs
IGlzIGVtaXR0ZWQsIHRoZSB1c2VyJ3MgaGFuZGxlcnMgYXJlIGNhbGxlZCwKLS0gICAgICAgICAg
YW5kIHRoZW4gYWxsIHRoZSBoYW5kbGVycyBjb25uZWN0ZWQgdG8gdGhlIG9iamVjdCBhcmUgZGVz
dHJveWVkLgotLSAgICAgVGhlIG9iamVjdCBpcyB1bnJlZi1lZC4gSWYgaXRzIHJlZl9jb3VudCBn
b2VzIGRvd24gdG8gMCAobm9ybWFsIGNhc2UpLAotLSAgICAgICAgdGhlIG1lbW9yeSB1c2VkIGJ5
IHRoZSBvYmplY3QgYW5kIGl0cyB1c2VyX2RhdGEgaXMgZnJlZWQuCi0tCi0tICA8L2Rlc2NyaXB0
aW9uPgotLSAgPGNfdmVyc2lvbj4xLjIuNjwvY192ZXJzaW9uPgoKd2l0aCBTeXN0ZW07CndpdGgg
R3RrYWRhLlR5cGVzOwoKcGFja2FnZSBHdGsuT2JqZWN0IGlzCgogICB0eXBlIEd0a19PYmplY3Rf
UmVjb3JkIGlzIG5ldyBHdGsuUm9vdF9UeXBlIHdpdGggcHJpdmF0ZTsKICAgdHlwZSBHdGtfT2Jq
ZWN0IGlzIGFjY2VzcyBhbGwgR3RrX09iamVjdF9SZWNvcmQnQ2xhc3M7CgogICBwcm9jZWR1cmUg
UmVmIChPYmplY3QgOiBhY2Nlc3MgR3RrX09iamVjdF9SZWNvcmQpOwogICAtLSAgSW5jcmVtZW50
IHRoZSByZWZlcmVuY2UgY291bnQgb24gdGhlIG9iamVjdC4KICAgLS0gIFNpbmNlIGFuIG9iamVj
dCBpcyBub3QgZGVsZXRlZCB3aGlsZSBpdHMgcmVmZXJlbmNlIGNvdW50IGlzIG5vdCBudWxsLAog
ICAtLSAgdGhpcyBpcyBhIHdheSB0byBrZWVwIGFuIG9iamVjdCBpbiBtZW1vcnkuCiAgIC0tICBH
dGtBZGEgbW9zdGx5IHRha2VzIGNhcmUgb2YgZXZlcnl0aGluZywgYW5kIHlvdSBzaG91bGQgbm90
IG5lZWQgdGhpcwogICAtLSAgZnVuY3Rpb24gZXhjZXB0IGluIHNwZWNpYWwgY2FzZXMuCgogICBw
cm9jZWR1cmUgVW5yZWYgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZCk7CiAgIC0t
ICBEZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudCBmb3IgYW4gb2JqZWN0LgogICAtLSAgSWYg
aXQgcGFzc2VkIGZyb20gMSB0byAwLCB0aGVuIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUg
b2JqZWN0IGlzCiAgIC0tICBmcmVlZCwgYW5kIHRoZSBvYmplY3Qgbm8gbG9uZ2VyIHVzYWJsZS4K
ICAgLS0gIEl0IGlzIGJldHRlciB0byB1c2UgRGVzdHJveSB0aGFuIFVucmVmIHRvIGRlc3Ryb3kg
YW4gb2JqZWN0LCBhbHRob3VnaAogICAtLSAgYm90aCBtaWdodCBiZSBhY2NlcHRhYmxlLgoKICAg
cHJvY2VkdXJlIFNpbmsgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZCk7CiAgIC0t
ICBTaW5rIHRoZSBvYmplY3QuCiAgIC0tICBJZiB0aGUgb2JqZWN0IGlzIGZsb2F0aW5nIChkb2Vz
IG5vdCBoYXZlIGEgcGFyZW50IHlldCksIGl0IGlzIHVucmVmLWVkCiAgIC0tICBvbmNlIGFuZCB0
aGUgZmxvYXRpbmcgZmxhZyBpcyBjbGVhcmVkLgoKICAgcHJvY2VkdXJlIERlc3Ryb3kgKE9iamVj
dCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZCk7CiAgIC0tICBEZXN0cm95IHRoZSBvYmplY3Qu
CiAgIC0tICBUaGlzIGVtaXRzIGEgImRlc3Ryb3kiIHNpZ25hbCwgY2FsbHMgYWxsIHlvdXIgaGFu
ZGxlcnMsIGFuZCB0aGVuCiAgIC0tICB1bmNvbm5lY3RzIHRoZW0gYWxsLiBUaGUgb2JqZWN0IGlz
IHRoZW4gdW5yZWYtZWQsIGFuZCBpZiBpdHMgcmVmZXJlbmNlCiAgIC0tICBjb3VudCBnb2VzIGRv
d24gdG8gMCwgdGhlIG1lbW9yeSBhc3NvY2lhdGVkIHdpdGggdGhlIG9iamVjdCBhbmQgaXRzCiAg
IC0tICB1c2VyIGRhdGEgaXMgZnJlZWQuCiAgIC0tICBOb3RlIHRoYXQgd2hlbiB5b3UgZGVzdHJv
eSBoYW5kbGVycyBhcmUgY2FsbGVkLCB0aGUgdXNlcl9kYXRhIGlzIHN0aWxsCiAgIC0tICBhdmFp
bGFibGUuCgogICBmdW5jdGlvbiBHZXRfVHlwZSByZXR1cm4gR3RrLkd0a19UeXBlOwogICAtLSAg
UmV0dXJuIHRoZSBpbnRlcm5hbCB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggYSBHdGtfT2JqZWN0IGlu
dGVybmFsbHkuCiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9UeXBlLCAiZ3RrX29iamVjdF9nZXRf
dHlwZSIpOwoKICAgZnVuY3Rpb24gR2V0X1R5cGUgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0
X1JlY29yZCkgcmV0dXJuIEd0a19UeXBlOwogICAtLSAgUmV0dXJuIHRoZSB0eXBlIG9mIE9iamVj
dC4KICAgLS0gIFRoaXMgZnVuY3Rpb24gaXMgbW9zdGx5IHVzZWQgaW50ZXJuYWxseSwgc2luY2Ug
aW4gQWRhIHlvdSBjYW4gc2ltcGx5CiAgIC0tICB0ZXN0IHdoZXRoZXIgYW4gb2JqZWN0IGJlbG9u
ZyB0byBhIGNsYXNzIHdpdGggYSBzdGF0ZW1lbnQgbGlrZToKICAgLS0KICAgLS0gICAgIGlmIE9i
amVjdCBpbiBHdGtfQnV0dG9uX1JlY29yZCdDbGFzcyB0aGVuIC4uLgogICAtLQogICAtLSAgd2hp
Y2ggaXMgZWFzaWVyLgoKICAgLS0tLS0tLS0tLS0tLQogICAtLSAgRmxhZ3MgIC0tCiAgIC0tLS0t
LS0tLS0tLS0KICAgLS0gIEVhY2ggb2JqZWN0IGlzIGFzc29jaWF0ZWQgd2l0aCBhIHNldCBvZiBm
bGFncywgdGhhdCByZXBvcnRzIHRoZSBzdGF0ZQogICAtLSAgb2YgdGhlIG9iamVjdC4KICAgLS0g
IFRoZSBmb2xsb3dpbmcgZmxhZ3MgYXJlIGtub3duIGJ5IGFsbCBvYmplY3RzOgogICAtLQogICAt
LSAgLSAiRGVzdHJveWVkIjoKICAgLS0gICAgIFNldCBpZiB0aGUgb2JqZWN0IGlzIG1hcmtlZCBh
cyBkZXN0cm95ZWQgKGlmIGl0cyByZWZlcmVuY2UgY291bnQgaXMKICAgLS0gICAgIG5vdCB5ZXQg
MCwgdGhlIG1lbW9yeSBoYXMgbm90IGJlZW4gZnJlZWQsIGJ1dCB5b3Ugc2hvdWxkIG5vdCB1c2Ug
aXQKICAgLS0gICAgIGFueXdheSkuCiAgIC0tCiAgIC0tICAtICJGbG9hdGluZyI6CiAgIC0tICAg
ICBUaGUgb2JqZWN0IGhhcyBubyBwYXJlbnQgeWV0LCBzaW5jZSBpdCB3YXMganVzdCBjcmVhdGVk
LiBJdHMKICAgLS0gICAgIHJlZmVyZW5jZSBjb3VudCBpcyBzdGlsbCAxIChhcyBpdCB3YXMgaW5p
dGlhbGx5KS4gVGhpcyBmbGFnIGlzCiAgIC0tICAgICBjbGVhcmVkIGFzIHNvb24gYXMgU2V0X1Bh
cmVudCBpcyBjYWxsZWQgb24gdGhlIHdpZGdldCBvciB0aGUgd2lkZ2V0CiAgIC0tICAgICBpcyBx
dWFsaWZpZWQgYXMgYSB0b3BsZXZlbCB3aWRnZXQgKHNlZQogICAtLSAgICAgR3RrLkNvbnRhaW5l
ci5SZWdpc3Rlcl9Ub3BsZXZlbCkuCiAgIC0tCiAgIC0tICAtICJDb25uZWN0ZWQiOgogICAtLSAg
ICAgU2V0IGlmIHRoZSBvYmplY3QgaXMgY29ubmVjdGVkIHRvIGF0IGxlYXN0IG9uZSBoYW5kbGVy
CiAgIC0tCiAgIC0tICAtICJDb25zdHJ1Y3RlZCI6CiAgIC0tICAgICBTZXQgaWYgdGhlIG9iamVj
dCBoYXMgYmVlbiBmdWxseSBjb25zdHJ1Y3RlZCwgYW5kIGlzIG5vdyB1c2FibGUuCiAgIC0tICAg
ICBFdmVyeSB0aW1lIHlvdSBjcmVhdGUgYW4gb2JqZWN0IGF0IHRoZSBHdGtBZGEgbGV2ZWwsIHRo
ZSBvYmplY3Qgd2lsbAogICAtLSAgICAgYmUgZnVsbHkgY29uc3RydWN0ZWQsIGFuZCB5b3Ugc2hv
dWxkbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhhdAogICAtLSAgICAgZmxhZy4KCiAgIERlc3Ry
b3llZCAgIDogY29uc3RhbnQgOj0gMiAqKiAwOwogICBGbG9hdGluZyAgICA6IGNvbnN0YW50IDo9
IDIgKiogMTsKICAgQ29ubmVjdGVkICAgOiBjb25zdGFudCA6PSAyICoqIDI7CiAgIENvbnN0cnVj
dGVkIDogY29uc3RhbnQgOj0gMiAqKiAzOwoKICAgZnVuY3Rpb24gRmxhZ3MgKE9iamVjdCA6IGFj
Y2VzcyBHdGtfT2JqZWN0X1JlY29yZCkgcmV0dXJuIEd1aW50MzI7CiAgIC0tICBSZXR1cm4gdGhl
IGZsYWdzIHRoYXQgYXJlIHNldCBmb3IgdGhlIG9iamVjdCwgYXMgYSBiaW5hcnkgbWFzay4KCiAg
IHByb2NlZHVyZSBTZXRfRmxhZ3MgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZDsK
ICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3MgIDogaW4gICAgIEd1aW50MzIpOwogICAtLSAg
U2V0IHNvbWUgc3BlY2lmaWMgZmxhZ3MgZm9yIHRoZSBvYmplY3QuCiAgIC0tICBGbGFncyBpcyBh
IG1hc2sgdGhhdCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBjdXJyZW50IGZsYWdzIG9mIHRoZSBvYmpl
Y3QuCgogICBwcm9jZWR1cmUgVW5zZXRfRmxhZ3MgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0
X1JlY29yZDsKICAgICAgICAgICAgICAgICAgICAgICAgICBGbGFncyAgOiBpbiAgICAgR3VpbnQz
Mik7CiAgIC0tICBVbnNldCBzb21lIHNwZWNpZmljIGZsYWdzIGZvciB0aGUgb2JqZWN0LgogICAt
LSAgRmxhZ3MgaXMgYSBtYXNrIHRoYXQgd2lsbCBiZSBkZWxldGVkIGZyb20gdGhlIGN1cnJlbnQg
ZmxhZ3Mgb2YgdGhlCiAgIC0tICBvYmplY3QuCgogICBmdW5jdGlvbiBGbGFnX0lzX1NldCAoT2Jq
ZWN0IDogYWNjZXNzIEd0a19PYmplY3RfUmVjb3JkOwogICAgICAgICAgICAgICAgICAgICAgICAg
RmxhZyAgIDogaW4gICAgIEd1aW50MzIpCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBC
b29sZWFuOwogICAtLSAgUmV0dXJuIFRydWUgaWYgdGhlIHNwZWNpZmljIGZsYWcgRmxhZyBpcyBz
ZXQgZm9yIHRoZSBvYmplY3QuCgogICBmdW5jdGlvbiBEZXN0cm95ZWRfSXNfU2V0IChPYmplY3Qg
OiBhY2Nlc3MgR3RrX09iamVjdF9SZWNvcmQnQ2xhc3MpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBUZXN0IGlmIHRoZSBEZXN0cm95ZWQgZmxhZyBp
cyBzZXQgZm9yIHRoZSBvYmplY3QuCgogICBmdW5jdGlvbiBGbG9hdGluZ19Jc19TZXQgKE9iamVj
dCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZCdDbGFzcykKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBCb29sZWFuOwogICAtLSAgVGVzdCBpZiB0aGUgRmxvYXRpbmcgZmxhZyBp
cyBzZXQgZm9yIHRoZSBvYmplY3QuCgogICBmdW5jdGlvbiBDb25uZWN0ZWRfSXNfU2V0IChPYmpl
Y3QgOiBhY2Nlc3MgR3RrX09iamVjdF9SZWNvcmQnQ2xhc3MpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBUZXN0IGlmIHRoZSBDb25uZWN0ZWQgZmxh
ZyBpcyBzZXQgZm9yIHRoZSBvYmplY3QuCgogICBmdW5jdGlvbiBDb25zdHJ1Y3RlZF9Jc19TZXQg
KE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZCdDbGFzcykKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuOwogICAtLSAgVGVzdCBpZiB0aGUgQ29uc3Ry
dWN0ZWQgZmxhZyBpcyBzZXQgZm9yIHRoZSBvYmplY3QKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAgIC0tIENyZWF0aW5nIG5ldyB3aWRnZXRzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAgIC0tICBUaGVzZSB0eXBlcyBhbmQgZnVuY3Rpb25zIGFyZSB1c2VkIG9ubHkg
d2hlbiBjcmVhdGluZyBuZXcgd2lkZ2V0IHR5cGVzCiAgIC0tICBkaXJlY3RseSBpbiBBZGEuIFRo
ZXNlIGZ1bmN0aW9ucyBpbml0aWFsaXplIHRoZSBjbGFzc2VzIHNvIHRoYXQgdGhleSBhcmUKICAg
LS0gIGNvcnJlY3RseSByZWNvZ25pemVkIGJ5IGd0aysgaXRzZWxmCiAgIC0tICBTZWUgdGhlIEd0
a0FkYSB1c2VyJ3MgZ3VpZGUgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRvIGNyZWF0ZSB5
b3VyCiAgIC0tICBvd24gd2lkZ2V0IHR5cGVzIGluIEFkYS4KCiAgIHR5cGUgU2lnbmFsX1BhcmFt
ZXRlcl9UeXBlcyBpcyBhcnJheSAoTmF0dXJhbCByYW5nZSA8PiwgTmF0dXJhbCByYW5nZSA8PikK
ICAgICBvZiBHdGtfVHlwZTsKICAgLS0gIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgcGFyYW1ldGVy
cyBmb3IgZWFjaCBldmVudC4KICAgLS0gIEVhY2ggZXZlbnQgZGVmaW5lZCB3aXRoIEluaXRpYWxp
emVfQ2xhc3NfUmVjb3JkIGJlbG93IHNob3VsZCBoYXZlIGFuCiAgIC0tICBlbnRyeSBpbiB0aGlz
IHRhYmxlLiBJZiBHdGtfVHlwZV9Ob25lIGlzIGZvdW5kIGluIHRoZSB0YWJsZSwgaXQgaXMKICAg
LS0gIGlnbm9yZWQuIEZvciBpbnN0YW5jZSwgYSBTaWduYWxfUGFyYW1ldGVyX1R5cGUgbGlrZToK
ICAgLS0gICAgKDEgPT4gKDEgPT4gR2RrX1R5cGVfR2RrX0V2ZW50LCAyID0+IEdka19UeXBlX05v
bmRlKSwKICAgLS0gICAgIDIgPT4gKDEgPT4gR2RrX1R5cGVfSW50LCAgICAgICAyID0+IEdka19U
eXBlX0ludCkpOwogICAtLSAgZGVmaW5lcyB0d28gc2lnbmFscywgdGhlIGZpcnN0IHdpdGggYSBz
aW5nbGUgR2RrX0V2ZW50IHBhcmFtZXRlciwgdGhlCiAgIC0tICBzZWNvbmQgd2l0aCB0d28gaW50
cyBwYXJhbWV0ZXJzLgoKICAgTnVsbF9QYXJhbWV0ZXJfVHlwZXMgOiBjb25zdGFudCBTaWduYWxf
UGFyYW1ldGVyX1R5cGVzICgxIC4uIDAsIDEgLi4gMCkgOj0KICAgICAob3RoZXJzID0+IChvdGhl
cnMgPT4gR3RrX1R5cGVfTm9uZSkpOwogICAtLSAgQW4gZW1wdHkgYXJyYXksIHVzZWQgYXMgYSBk
ZWZhdWx0IHBhcmFtZXRlciBpbiBJbml0aWFsaXplX0NsYXNzX1JlY29yZC4KCiAgIHByb2NlZHVy
ZSBJbml0aWFsaXplX0NsYXNzX1JlY29yZAogICAgIChPYmplY3QgICAgICAgICAgICAgICAgICAg
IDogYWNjZXNzIEd0a19PYmplY3RfUmVjb3JkJ0NsYXNzOwogICAgICBTaWduYWxzICAgICAgICAg
ICAgICAgICAgIDogR3RrYWRhLlR5cGVzLkNoYXJzX1B0cl9BcnJheTsKICAgICAgQ2xhc3NfUmVj
b3JkICAgICAgICAgICAgICA6IGluIG91dCBTeXN0ZW0uQWRkcmVzczsKICAgICAgUGFyYW1ldGVy
cyAgICAgICAgICAgICAgICA6IFNpZ25hbF9QYXJhbWV0ZXJfVHlwZXMgOj0KICAgICAgICBOdWxs
X1BhcmFtZXRlcl9UeXBlczsKICAgICAgU2Nyb2xsX0FkanVzdG1lbnRzX1NpZ25hbCA6IEd1aW50
IDo9IDApOwogICAtLSAgQ3JlYXRlIHRoZSBjbGFzcyByZWNvcmQgZm9yIGEgbmV3IHdpZGdldCB0
eXBlLgogICAtLSAgSXQgaXMgYXNzb2NpYXRlZCB3aXRoIFNpZ25hbHMnTGVuZ3RoIG5ldyBzaWdu
YWxzLiBBIHBvaW50ZXIgdG8gdGhlCiAgIC0tICBuZXdseSBjcmVhdGVkIHN0cnVjdHVyZSBpcyBh
bHNvIHJldHVybmVkIGluIENsYXNzX1JlY29yZC4KICAgLS0gIElmIENsYXNzX1JlY29yZCAvPSBT
eXN0ZW0uTnVsbF9BZGRyZXNzLCBubyBtZW1vcnkgYWxsb2NhdGlvbiBpcwogICAtLSAgcGVyZm9y
bWVkLCB3ZSBqdXN0IHJldXNlIGl0LgogICAtLSAgTm90ZTogVGhlIHVuZGVybHlpbmcgQyB3aWRn
ZXQgbXVzdCBhbHJlYWR5IGhhdmUgYmVlbiBpbml0aWFsaXplZAogICAtLSAgYnkgYSBjYWxsIHRv
IGl0cyBwYXJlbnQncyBJbml0aWFsaXplIGZ1bmN0aW9uLgogICAtLSAgUGFyYW1ldGVycydMZW5n
dGggc2hvdWxkIGJlIHRoZSBzYW1lIGFzIFNpZ25hbHMnTGVuZ3RoLCBvciB0aGUgcmVzdWx0CiAg
IC0tICBpcyB1bmRlZmluZWQuCiAgIC0tICBBcyBhIHNwZWNpYWwgY2FzZSwgaWYgUGFyYW1ldGVy
cyBoYXMgaXRzIGRlZmF1bHQgdmFsdWUsIGFsbCBzaWduYWxzIGFyZQogICAtLSAgY3JlYXRlZCB3
aXRoIG5vIGFyZ3VtZW50LiBUaGlzIGlzIGRvbmUgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkK
ICAgLS0gIG1haW5seSwgYW5kIHlvdSBzaG91bGQgaW5zdGVhZCBnaXZlIGl0IGFuIGV4cGxpY2l0
IHZhbHVlLgogICAtLQogICAtLSAgU2Nyb2xsX0FkanVzdG1lbnRzX1NpZ25hbCBpcyB0aGUgaW5k
ZXggb2YgdGhlIG5ldyBzaWduYWwgdGhhdCB3aWxsIGJlCiAgIC0tICBlbWl0dGVkIHdoZW4gR3Rr
LldpZGdldC5TZXRfU2Nyb2xsX0FkanVzdG1lbnRzIGlzIGNhbGxlZC4gSWYgaXQgaXMgMCwKICAg
LS0gIG5vIHNpZ25hbCBpcyBlbWl0dGVkLiBUaGUgZmlyc3Qgc2lnbmFsIGluIFNpZ25hbHMgaGFz
IGluZGV4IDEuIE5vdGUKICAgLS0gIHRoYXQgdGhlIGhhbmRsZXJzIGZvciB0aGlzIHNpZ25hbCB0
YWtlIHR3byBhcmd1bWVudHMgaW4gYWRkaXRpb24gdG8gdGhlCiAgIC0tICB3aWRnZXQgKHRoZSBo
b3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBhZGp1c3RtZW50cyB0byBiZSB1c2VkKS4gU2VlCiAgIC0t
ICBHdGsuU2Nyb2xsZWRfV2luZG93IGFuZCBHdGsuV2lkZ2V0LlNldF9TY3JvbGxfQWR1c3RtZW50
IGZvciBtb3JlCiAgIC0tICBpbmZvcm1hdGlvbiBvbiB0aGlzIHNpZ25hbC4KICAgLS0KICAgLS0g
IE9ubHkgdGhlIHNpZ25hbHMgd2l0aCBubyBwYXJhbWV0ZXIgY2FuIGJlIGNvbm5lY3RlZCBmcm9t
IEMuIEhvd2V2ZXIsCiAgIC0tICBhbnkgc2lnbmFsIGNhbiBiZSBjb25uZWN0ZWQgZnJvbSBBZGEu
IFRoaXMgaXMgZHVlIHRvIHRoZSB3YXkgd2UgZGVmaW5lCiAgIC0tICBkZWZhdWx0IG1hcnNoYWxs
ZXJzIGZvciB0aGUgc2lnbmFscy4KCiAgIC0tLS0tLS0tLS0tLS0tLQogICAtLSBVc2VyX0RhdGEg
LS0KICAgLS0tLS0tLS0tLS0tLS0tCiAgIC0tICBUaGlzIHBhY2thZ2UgYWxsb3cgeW91IHRvIGFz
c29jaWF0ZSB5b3VyIG93biBEYXRhIHRvIHRoZSBDIHdpZGdldHMuIE5vCiAgIC0tICB0eXBlIHZl
cmlmaWNhdGlvbiBpcyBtYWRlIHRvIGNoZWNrIGlmIHlvdSBhcmUgdXNpbmcgdGhlIGNvcnJlY3QK
ICAgLS0gIG1hdGNoaW5nIEdldCBmdW5jdGlvbi4gVGhpcyBpcyB5b3VyIG93biByZXNwb25zYWJp
bGl0eS4KICAgLS0KICAgLS0gIFdlIHJlY29tbWVuZCB1c2luZyB0aGlzIHBhY2thZ2Ugb25seSBp
ZiB5b3Ugd2FudCB5b3VyIGRhdGEgdG8gYmUKICAgLS0gIGF2YWlsYWJsZSBmcm9tIHlvdXIgb3du
IEMgY29kZS4gSWYgeW91IGp1c3Qgd2FudCB0byBhY2Nlc3MgaXQgZnJvbSBBZGEsCiAgIC0tICB5
b3Ugc2hvdWxkIGNvbnNpZGVyIGNyZWF0aW5nIGEgbmV3IHRhZ2dlZCB0eXBlIGluc3RlYWQuCgog
ICAtLSAgPGRvY19pZ25vcmU+CgogICBnZW5lcmljCiAgICAgIHR5cGUgRGF0YV9UeXBlICg8Pikg
aXMgcHJpdmF0ZTsKICAgcGFja2FnZSBVc2VyX0RhdGEgaXMKICAgICAgZnVuY3Rpb24gR2V0IChP
YmplY3QgOiBhY2Nlc3MgR3RrX09iamVjdF9SZWNvcmQnQ2xhc3M7CiAgICAgICAgICAgICAgICAg
ICAgSWQgICAgIDogaW4gU3RyaW5nIDo9ICJ1c2VyX2RhdGEiKSByZXR1cm4gRGF0YV9UeXBlOwog
ICAgICAtLSAgR2V0IHRoZSBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGtleSBJRC4K
ICAgICAgLS0gIFJhaXNlIEd0a2FkYS5UeXBlcy5EYXRhX0Vycm9yIGlmIHRoZXJlIGlzIG5vbmUu
CgogICAgICBwcm9jZWR1cmUgU2V0IChPYmplY3QgOiBhY2Nlc3MgR3RrX09iamVjdF9SZWNvcmQn
Q2xhc3M7CiAgICAgICAgICAgICAgICAgICAgIERhdGEgICA6IGluIERhdGFfVHlwZTsKICAgICAg
ICAgICAgICAgICAgICAgSWQgICAgIDogaW4gU3RyaW5nIDo9ICJ1c2VyX2RhdGEiKTsKICAgICAg
LS0gIEFzc29jaWF0ZSBzb21lIG5ldyB1c2VyIGRhdGEgd2l0aCB0aGUgb2JqZWN0LgogICAgICAt
LSAgVGhlIHN0cmluZ3Mgc3RhcnRpbmcgd2l0aCAiZ3RrYWRhXyIgYXJlIHJlc2VydmVkIGZvciBH
dGtBZGEncwogICAgICAtLSAgaW50ZXJuYWwgdXNlLCBwbGVhc2UgYXZvaWQgdXNpbmcgdGhlbS4K
CiAgICAgIHByb2NlZHVyZSBSZW1vdmUgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29y
ZCdDbGFzczsKICAgICAgICAgICAgICAgICAgICAgICAgSWQgICAgIDogaW4gU3RyaW5nIDo9ICJ1
c2VyX2RhdGEiKTsKICAgICAgLS0gIFJlbW92ZSBzb21lIGRhdGEgZnJvbSB0aGUgb2JqZWN0Cgog
ICAgICBmdW5jdGlvbiBHZXQgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZCdDbGFz
czsKICAgICAgICAgICAgICAgICAgICBJZCAgICAgOiBpbiBHbGliLkdRdWFyaykKICAgICAgICAg
ICAgICAgICAgIHJldHVybiBEYXRhX1R5cGU7CiAgICAgIC0tICBTYW1lIGZ1bmN0aW9uIGFzIEdl
dCBhYm92ZSwgYnV0IHVzZXMgZGlyZWN0bHkgdGhlIFF1YXJrIGFzc29jaWF0ZWQKICAgICAgLS0g
IHdpdGggdGhlIHN0cmluZywgd2hpY2ggc3BlZWRzIHVwIHRoZSBhY2Nlc3MgdGltZSBzaWduaWZp
Y2FudGx5LgoKICAgICAgcHJvY2VkdXJlIFNldCAoT2JqZWN0IDogYWNjZXNzIEd0a19PYmplY3Rf
UmVjb3JkJ0NsYXNzOwogICAgICAgICAgICAgICAgICAgICBEYXRhICAgOiBpbiBEYXRhX1R5cGU7
CiAgICAgICAgICAgICAgICAgICAgIElkICAgICA6IGluIEdsaWIuR1F1YXJrKTsKICAgICAgLS0g
IFNhbWUgZnVuY3Rpb24gYXMgU2V0IGFib3ZlLCBidXQgdXNlcyBkaXJlY3RseSB0aGUgUXVhcmsg
YXNzb2NpYXRlZAogICAgICAtLSAgd2l0aCB0aGUgc3RyaW5nLCB3aGljaCBzcGVlZHMgdXAgdGhl
IGFjY2VzcyB0aW1lIHNpZ25pZmljYW50bHkuCgogICAgICBwcm9jZWR1cmUgUmVtb3ZlIChPYmpl
Y3QgOiBhY2Nlc3MgR3RrX09iamVjdF9SZWNvcmQnQ2xhc3M7CiAgICAgICAgICAgICAgICAgICAg
ICAgIElkICAgICA6IGluIEdsaWIuR1F1YXJrKTsKICAgICAgLS0gIFNhbWUgZnVuY3Rpb24gYXMg
UmVtb3ZlIGFib3ZlLCBidXQgdXNlcyBkaXJlY3RseSB0aGUgUXVhcmsgYXNzb2NpYXRlZAogICAg
ICAtLSAgd2l0aCB0aGUgc3RyaW5nLCB3aGljaCBzcGVlZHMgdXAgdGhlIGFjY2VzcyB0aW1lIHNp
Z25pZmljYW50bHkuCgogICBlbmQgVXNlcl9EYXRhOwoKICAgLS0gIDwvZG9jX2lnbm9yZT4KCiAg
IC0tLS0tLS0tLS0tLS0KICAgLS0gU2lnbmFscyAtLQogICAtLS0tLS0tLS0tLS0tCgogICAtLSAg
PHNpZ25hbHM+CiAgIC0tICBUaGUgZm9sbG93aW5nIG5ldyBzaWduYWxzIGFyZSBkZWZpbmVkIGZv
ciB0aGlzIHdpZGdldDoKICAgLS0KICAgLS0gIC0gImRlc3Ryb3kiCiAgIC0tICAgIHByb2NlZHVy
ZSBIYW5kbGVyIChPYmplY3QgOiBhY2Nlc3MgR3RrX09iamVjdF9SZWNvcmQnQ2xhc3MpOwogICAt
LQogICAtLSAgICBSYWlzZWQgd2hlbiB0aGUgb2JqZWN0IGlzIGFib3V0IHRvIGJlIGRlc3Ryb3ll
ZC4gVGhlICJkZXN0cm95ZWQiCiAgIC0tICAgIGZsYWcgaGFzIGJlZW4gc2V0IG9uIHRoZSBvYmpl
Y3QgZmlyc3QuIEhhbmRsZXJzIHNob3VsZCBub3Qga2VlcAogICAtLSAgICBhIHJlZmVyZW5jZSBv
biB0aGUgb2JqZWN0LgogICAtLSAgICBOb3RlIHRoYXQgd2hlbiB5b3VyIGRlc3Ryb3kgaGFuZGxl
cnMgYXJlIGNhbGxlZCwgdGhlIHVzZXJfZGF0YSBpcwogICAtLSAgICBzdGlsbCBhdmFpbGFibGUu
CiAgIC0tICAgIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRlc3Ryb3lzIGFsbCB0aGUgaGFu
ZGxlcnMuCiAgIC0tICA8L3NpZ25hbHM+Cgpwcml2YXRlCiAgIHR5cGUgR3RrX09iamVjdF9SZWNv
cmQgaXMgbmV3IEd0ay5Sb290X1R5cGUgd2l0aCBudWxsIHJlY29yZDsKCiAgIHByYWdtYSBJbmxp
bmUgKERlc3Ryb3llZF9Jc19TZXQpOwogICBwcmFnbWEgSW5saW5lIChGbG9hdGluZ19Jc19TZXQp
OwogICBwcmFnbWEgSW5saW5lIChDb25uZWN0ZWRfSXNfU2V0KTsKICAgcHJhZ21hIElubGluZSAo
Q29uc3RydWN0ZWRfSXNfU2V0KTsKCmVuZCBHdGsuT2JqZWN0OwoKLS0gIEZ1bmN0aW9ucyB0aGF0
IGhhdmUgbm8gQWRhIGVxdWl2YWxlbnQ6Ci0tICAtIGd0a19vYmplY3RfY2xhc3NfdXNlcl9zaWdu
YWxfbmV3Ci0tICAtIGd0a19vYmplY3RfY2xhc3NfdXNlcl9zaWduYWxfbmV3dgotLSAgLSBndGtf
b2JqZWN0X25ldwotLSAgLSBndGtfb2JqZWN0X25ld3YKLS0gIC0gZ3RrX29iamVjdF9kZWZhdWx0
X2NvbnN0cnVjdAotLSAgLSBndGtfb2JqZWN0X2NvbnN0cnVjdGVkCi0tICAtIGd0a19vYmplY3Rf
d2Vha3JlZgotLSAgLSBndGtfb2JqZWN0X3dlYWt1bnJlZgotLSAgLSBndGtfb2JqZWN0X2dldHYK
LS0gIC0gZ3RrX29iamVjdF9nZXQKLS0gIC0gZ3RrX29iamVjdF9zZXQKLS0gIC0gZ3RrX29iamVj
dF9zZXR2Ci0tICAtIGd0a19vYmplY3RfcXVlcnlfYXJncwotLSAgLSBndGtfb2JqZWN0X2NsYXNz
X2FkZF9zaWduYWxzID0+IGluIEluaXRpYWxpemVfQ2xhc3NfUmVjb3JkCi0tICAtIGd0a19vYmpl
Y3RfYWRkX2FyZ190eXBlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1
IGJpbmRpbmcgZm9yIHRoZSBHaW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC0tCi0tICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAg
ICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNr
ZXIgYW5kIEFybmF1ZCBDaGFybGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig
ICAgIC0tCi0tIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1
YmxpYyAgICAgICAgICAgICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0t
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAg
ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0t
Ci0tIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3Vp
dGUgMzMwLCAgICAgIC0tCi0tIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3Bl
Y2lhbCBleGNlcHRpb24sIGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20g
IC0tCi0tIHRoaXMgdW5pdCwgb3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMg
dG8gcHJvZHVjZSBhbiAgIC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBi
eSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292
ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2Vw
dGlvbiBkb2VzIG5vdCBob3dldmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRo
ZSAgIC0tCi0tIGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQ
dWJsaWMgTGljZW5zZS4gICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgp3aXRoIEdkazsgdXNlIEdkazsK
d2l0aCBHZGsuQ29sb3I7CndpdGggR2RrLkdDOwp3aXRoIEdkay5Gb250Owp3aXRoIEdkay5UeXBl
czsKd2l0aCBHZGsuUGl4bWFwOwp3aXRoIEdkay5XaW5kb3c7CndpdGggR3RrLkVudW1zOwoKcGFj
a2FnZSBHdGsuU3R5bGUgaXMKCiAgIHR5cGUgR3RrX1N0eWxlIGlzIG5ldyBHZGsuQ19Qcm94eTsK
ICAgLS0gIFR5cGUgdXNlZCB0byBoYW5kbGUgc3R5bGVzLgogICAtLSAgQHB4cmVme1BhY2thZ2Vf
R3RrLldpZGdldH0gZm9yIHN0eWxlIGhhbmRsaW5nLgoKICAgTnVsbF9TdHlsZSA6IGNvbnN0YW50
IEd0a19TdHlsZSA6PSBudWxsOwoKICAgcHJvY2VkdXJlIEd0a19OZXcgKFN0eWxlIDogb3V0IEd0
a19TdHlsZSk7CgogICBmdW5jdGlvbiBDb3B5IChTb3VyY2UgOiBpbiBHdGtfU3R5bGUpIHJldHVy
biBHdGtfU3R5bGU7CgogICBmdW5jdGlvbiBBdHRhY2gKICAgICAoU3R5bGUgIDogaW4gR3RrX1N0
eWxlOwogICAgICBXaW5kb3cgOiBpbiBHZGsuV2luZG93Lkdka19XaW5kb3cpIHJldHVybiBHdGtf
U3R5bGU7CgogICBwcm9jZWR1cmUgRGV0YWNoIChTdHlsZSA6IGluIEd0a19TdHlsZSk7CgogICBw
cm9jZWR1cmUgU2V0X0JhY2tncm91bmQKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsK
ICAgICAgV2luZG93ICAgICA6IGluIEdkay5XaW5kb3cuR2RrX1dpbmRvdzsKICAgICAgU3RhdGVf
VHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKTsKCiAgIHByb2NlZHVyZSBTZXRfRm9yZWdy
b3VuZAogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDog
aW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIENvbG9yICAgICAgOiBpbiBHZGsuQ29sb3Iu
R2RrX0NvbG9yKTsKCiAgIHByb2NlZHVyZSBTZXRfRmcKICAgICAoU3R5bGUgICAgICA6IGluIEd0
a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAg
ICBDb2xvciAgICAgIDogaW4gR2RrLkNvbG9yLkdka19Db2xvcikgcmVuYW1lcyBTZXRfRm9yZWdy
b3VuZDsKCiAgIGZ1bmN0aW9uIEdldF9Gb3JlZ3JvdW5kCiAgICAgKFN0eWxlICAgICAgOiBpbiBH
dGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0
dXJuIEdkay5Db2xvci5HZGtfQ29sb3I7CgogICBmdW5jdGlvbiBHZXRfRmcKICAgICAoU3R5bGUg
ICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0
ZV9UeXBlKSByZXR1cm4gR2RrLkNvbG9yLkdka19Db2xvcgogICAgICByZW5hbWVzIEdldF9Gb3Jl
Z3JvdW5kOwoKICAgcHJvY2VkdXJlIFNldF9CYWNrZ3JvdW5kCiAgICAgKFN0eWxlICAgICAgOiBp
biBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsK
ICAgICAgQ29sb3IgICAgICA6IGluIEdkay5Db2xvci5HZGtfQ29sb3IpOwoKICAgcHJvY2VkdXJl
IFNldF9CZwogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBl
IDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIENvbG9yICAgICAgOiBpbiBHZGsuQ29s
b3IuR2RrX0NvbG9yKSByZW5hbWVzIFNldF9CYWNrZ3JvdW5kOwoKICAgZnVuY3Rpb24gR2V0X0Jh
Y2tncm91bmQKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlw
ZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2RrLkNvbG9yLkdka19Db2xvcjsK
CiAgIGZ1bmN0aW9uIEdldF9CZwogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAg
ICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBHZGsuQ29sb3Iu
R2RrX0NvbG9yCiAgICAgIHJlbmFtZXMgR2V0X0JhY2tncm91bmQ7CgogICBwcm9jZWR1cmUgU2V0
X0xpZ2h0CiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUg
OiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgQ29sb3IgICAgICA6IGluIEdkay5Db2xv
ci5HZGtfQ29sb3IpOwoKICAgZnVuY3Rpb24gR2V0X0xpZ2h0CiAgICAgKFN0eWxlICAgICAgOiBp
biBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkg
cmV0dXJuIEdkay5Db2xvci5HZGtfQ29sb3I7CgogICBwcm9jZWR1cmUgU2V0X0RhcmsKICAgICAo
U3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0
a19TdGF0ZV9UeXBlOwogICAgICBDb2xvciAgICAgIDogaW4gR2RrLkNvbG9yLkdka19Db2xvcik7
CgogICBmdW5jdGlvbiBHZXRfRGFyawogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwog
ICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBHZGsuQ29s
b3IuR2RrX0NvbG9yOwoKICAgcHJvY2VkdXJlIFNldF9NaWRkbGUKICAgICAoU3R5bGUgICAgICA6
IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBl
OwogICAgICBDb2xvciAgICAgIDogaW4gR2RrLkNvbG9yLkdka19Db2xvcik7CgogICBwcm9jZWR1
cmUgU2V0X01pZAogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9U
eXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIENvbG9yICAgICAgOiBpbiBHZGsu
Q29sb3IuR2RrX0NvbG9yKSByZW5hbWVzIFNldF9NaWRkbGU7CgogICBmdW5jdGlvbiBHZXRfTWlk
ZGxlCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBp
biBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0dXJuIEdkay5Db2xvci5HZGtfQ29sb3I7CgogICBm
dW5jdGlvbiBHZXRfTWlkCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0
YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0dXJuIEdkay5Db2xvci5HZGtf
Q29sb3IKICAgICAgcmVuYW1lcyBHZXRfTWlkZGxlOwoKICAgcHJvY2VkdXJlIFNldF9UZXh0CiAg
ICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVt
cy5HdGtfU3RhdGVfVHlwZTsKICAgICAgQ29sb3IgICAgICA6IGluIEdkay5Db2xvci5HZGtfQ29s
b3IpOwoKICAgZnVuY3Rpb24gR2V0X1RleHQKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHls
ZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2Rr
LkNvbG9yLkdka19Db2xvcjsKCiAgIHByb2NlZHVyZSBTZXRfQmFzZQogICAgIChTdHlsZSAgICAg
IDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5
cGU7CiAgICAgIENvbG9yICAgICAgOiBpbiBHZGsuQ29sb3IuR2RrX0NvbG9yKTsKCiAgIGZ1bmN0
aW9uIEdldF9CYXNlCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRl
X1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0dXJuIEdkay5Db2xvci5HZGtfQ29s
b3I7CgogICBwcm9jZWR1cmUgU2V0X0JsYWNrCiAgICAgKFN0eWxlIDogaW4gR3RrX1N0eWxlOwog
ICAgICBDb2xvciA6IGluIEdkay5Db2xvci5HZGtfQ29sb3IpOwoKICAgZnVuY3Rpb24gR2V0X0Js
YWNrIChTdHlsZSA6IGluIEd0a19TdHlsZSkgcmV0dXJuIEdkay5Db2xvci5HZGtfQ29sb3I7Cgog
ICBwcm9jZWR1cmUgU2V0X1doaXRlIChTdHlsZSA6IGluIEd0a19TdHlsZTsgQ29sb3IgOiBpbiBH
ZGsuQ29sb3IuR2RrX0NvbG9yKTsKCiAgIGZ1bmN0aW9uIEdldF9XaGl0ZSAoU3R5bGUgOiBpbiBH
dGtfU3R5bGUpIHJldHVybiBHZGsuQ29sb3IuR2RrX0NvbG9yOwoKICAgcHJvY2VkdXJlIFNldF9G
b250IChTdHlsZSA6IGluIEd0a19TdHlsZTsgRm9udCA6IGluIEdkay5Gb250Lkdka19Gb250KTsK
CiAgIGZ1bmN0aW9uIEdldF9Gb250IChTdHlsZSA6IGluIEd0a19TdHlsZSkgcmV0dXJuIEdkay5G
b250Lkdka19Gb250OwoKICAgcHJvY2VkdXJlIFNldF9CbGFja19HQyAoU3R5bGUgOiBpbiBHdGtf
U3R5bGU7IEdDIDogaW4gR2RrLkdDLkdka19HQyk7CgogICBmdW5jdGlvbiBHZXRfQmxhY2tfR0Mg
KFN0eWxlIDogaW4gR3RrX1N0eWxlKSByZXR1cm4gR2RrLkdDLkdka19HQzsKCiAgIHByb2NlZHVy
ZSBTZXRfQmxhY2sKICAgICAoU3R5bGUgOiBpbiBHdGtfU3R5bGU7IEdDIDogaW4gR2RrLkdDLkdk
a19HQykgcmVuYW1lcyBTZXRfQmxhY2tfR0M7CgogICBmdW5jdGlvbiBHZXRfQmxhY2sKICAgICAo
U3R5bGUgOiBpbiBHdGtfU3R5bGUpIHJldHVybiBHZGsuR0MuR2RrX0dDIHJlbmFtZXMgR2V0X0Js
YWNrX0dDOwoKICAgcHJvY2VkdXJlIFNldF9XaGl0ZV9HQyAoU3R5bGUgOiBpbiBHdGtfU3R5bGU7
IEdDIDogaW4gR2RrLkdDLkdka19HQyk7CgogICBmdW5jdGlvbiBHZXRfV2hpdGVfR0MgKFN0eWxl
IDogaW4gR3RrX1N0eWxlKSByZXR1cm4gR2RrLkdDLkdka19HQzsKCiAgIHByb2NlZHVyZSBTZXRf
V2hpdGUKICAgICAoU3R5bGUgOiBpbiBHdGtfU3R5bGU7IEdDIDogaW4gR2RrLkdDLkdka19HQykg
cmVuYW1lcyBTZXRfV2hpdGVfR0M7CgogICBmdW5jdGlvbiBHZXRfV2hpdGUKICAgICAoU3R5bGUg
OiBpbiBHdGtfU3R5bGUpIHJldHVybiBHZGsuR0MuR2RrX0dDIHJlbmFtZXMgR2V0X1doaXRlX0dD
OwoKICAgcHJvY2VkdXJlIFNldF9Gb3JlZ3JvdW5kX0dDCiAgICAgKFN0eWxlICAgICAgOiBpbiBH
dGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAg
ICAgR0MgICAgICAgICA6IGluIEdkay5HQy5HZGtfR0MpOwoKICAgZnVuY3Rpb24gR2V0X0ZvcmVn
cm91bmRfR0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlw
ZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2RrLkdDLkdka19HQzsKCiAgIHBy
b2NlZHVyZSBTZXRfRm9yZWdyb3VuZAogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwog
ICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIEdDICAgICAg
ICAgOiBpbiBHZGsuR0MuR2RrX0dDKSByZW5hbWVzIFNldF9Gb3JlZ3JvdW5kX0dDOwoKICAgZnVu
Y3Rpb24gR2V0X0ZvcmVncm91bmQKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAg
ICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2RrLkdDLkdk
a19HQwogICAgICByZW5hbWVzIEdldF9Gb3JlZ3JvdW5kX0dDOwoKICAgcHJvY2VkdXJlIFNldF9G
ZwogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4g
RW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIEdDICAgICAgICAgOiBpbiBHZGsuR0MuR2RrX0dD
KSByZW5hbWVzIFNldF9Gb3JlZ3JvdW5kX0dDOwoKICAgZnVuY3Rpb24gR2V0X0ZnCiAgICAgKFN0
eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtf
U3RhdGVfVHlwZSkgcmV0dXJuIEdkay5HQy5HZGtfR0MKICAgICAgcmVuYW1lcyBHZXRfRm9yZWdy
b3VuZF9HQzsKCiAgIHByb2NlZHVyZSBTZXRfRmdfR0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0
a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAg
ICBHQyAgICAgICAgIDogaW4gR2RrLkdDLkdka19HQykgcmVuYW1lcyBTZXRfRm9yZWdyb3VuZF9H
QzsKCiAgIGZ1bmN0aW9uIEdldF9GZ19HQwogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxl
OwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBHZGsu
R0MuR2RrX0dDCiAgICAgIHJlbmFtZXMgR2V0X0ZvcmVncm91bmRfR0M7CgogICBwcm9jZWR1cmUg
U2V0X0JhY2tncm91bmRfR0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAg
U3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBHQyAgICAgICAgIDog
aW4gR2RrLkdDLkdka19HQyk7CgogICBmdW5jdGlvbiBHZXRfQmFja2dyb3VuZF9HQwogICAgIChT
dHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3Rr
X1N0YXRlX1R5cGUpIHJldHVybiBHZGsuR0MuR2RrX0dDOwoKICAgcHJvY2VkdXJlIFNldF9CYWNr
Z3JvdW5kCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUg
OiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgR0MgICAgICAgICA6IGluIEdkay5HQy5H
ZGtfR0MpIHJlbmFtZXMgU2V0X0JhY2tncm91bmRfR0M7CgogICBmdW5jdGlvbiBHZXRfQmFja2dy
b3VuZAogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDog
aW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBHZGsuR0MuR2RrX0dDCiAgICAgIHJlbmFt
ZXMgR2V0X0JhY2tncm91bmRfR0M7CgogICBwcm9jZWR1cmUgU2V0X0JnCiAgICAgKFN0eWxlICAg
ICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVf
VHlwZTsKICAgICAgR0MgICAgICAgICA6IGluIEdkay5HQy5HZGtfR0MpIHJlbmFtZXMgU2V0X0Jh
Y2tncm91bmRfR0M7CgogICBmdW5jdGlvbiBHZXRfQmcKICAgICAoU3R5bGUgICAgICA6IGluIEd0
a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1
cm4gR2RrLkdDLkdka19HQwogICAgICByZW5hbWVzIEdldF9CYWNrZ3JvdW5kX0dDOwoKICAgcHJv
Y2VkdXJlIFNldF9CZ19HQwogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBT
dGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIEdDICAgICAgICAgOiBp
biBHZGsuR0MuR2RrX0dDKSByZW5hbWVzIFNldF9CYWNrZ3JvdW5kX0dDOwoKICAgZnVuY3Rpb24g
R2V0X0JnX0dDCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5
cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0dXJuIEdkay5HQy5HZGtfR0MKICAgICAg
cmVuYW1lcyBHZXRfQmFja2dyb3VuZF9HQzsKCiAgIHByb2NlZHVyZSBTZXRfTGlnaHRfR0MKICAg
ICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1z
Lkd0a19TdGF0ZV9UeXBlOwogICAgICBHQyAgICAgICAgIDogaW4gR2RrLkdDLkdka19HQyk7Cgog
ICBmdW5jdGlvbiBHZXRfTGlnaHRfR0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsK
ICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2RrLkdD
Lkdka19HQzsKCiAgIHByb2NlZHVyZSBTZXRfTGlnaHQKICAgICAoU3R5bGUgICAgICA6IGluIEd0
a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAg
ICBHQyAgICAgICAgIDogaW4gR2RrLkdDLkdka19HQykgcmVuYW1lcyBTZXRfTGlnaHRfR0M7Cgog
ICBmdW5jdGlvbiBHZXRfTGlnaHQKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAg
ICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2RrLkdDLkdk
a19HQwogICAgICByZW5hbWVzIEdldF9MaWdodF9HQzsKCiAgIHByb2NlZHVyZSBTZXRfRGFya19H
QwogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4g
RW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIEdDICAgICAgICAgOiBpbiBHZGsuR0MuR2RrX0dD
KTsKCiAgIGZ1bmN0aW9uIEdldF9EYXJrX0dDCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5
bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0dXJuIEdk
ay5HQy5HZGtfR0M7CgogICBwcm9jZWR1cmUgU2V0X0RhcmsKICAgICAoU3R5bGUgICAgICA6IGlu
IEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwog
ICAgICBHQyAgICAgICAgIDogaW4gR2RrLkdDLkdka19HQykgcmVuYW1lcyBTZXRfRGFya19HQzsK
CiAgIGZ1bmN0aW9uIEdldF9EYXJrCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAg
ICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0dXJuIEdkay5HQy5H
ZGtfR0MKICAgICAgcmVuYW1lcyBHZXRfRGFya19HQzsKCiAgIHByb2NlZHVyZSBTZXRfTWlkZGxl
X0dDCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBp
biBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgR0MgICAgICAgICA6IGluIEdkay5HQy5HZGtf
R0MpOwoKICAgZnVuY3Rpb24gR2V0X01pZGRsZV9HQwogICAgIChTdHlsZSAgICAgIDogaW4gR3Rr
X1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVy
biBHZGsuR0MuR2RrX0dDOwoKICAgcHJvY2VkdXJlIFNldF9NaWRkbGUKICAgICAoU3R5bGUgICAg
ICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9U
eXBlOwogICAgICBHQyAgICAgICAgIDogaW4gR2RrLkdDLkdka19HQykgcmVuYW1lcyBTZXRfTWlk
ZGxlX0dDOwoKICAgZnVuY3Rpb24gR2V0X01pZGRsZQogICAgIChTdHlsZSAgICAgIDogaW4gR3Rr
X1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVy
biBHZGsuR0MuR2RrX0dDCiAgICAgIHJlbmFtZXMgR2V0X01pZGRsZV9HQzsKCiAgIHByb2NlZHVy
ZSBTZXRfTWlkX0dDCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRl
X1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgR0MgICAgICAgICA6IGluIEdk
ay5HQy5HZGtfR0MpIHJlbmFtZXMgU2V0X01pZGRsZV9HQzsKCiAgIGZ1bmN0aW9uIEdldF9NaWRf
R0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGlu
IEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2RrLkdDLkdka19HQwogICAgICByZW5hbWVz
IEdldF9NaWRkbGVfR0M7CgogICBwcm9jZWR1cmUgU2V0X01pZAogICAgIChTdHlsZSAgICAgIDog
aW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7
CiAgICAgIEdDICAgICAgICAgOiBpbiBHZGsuR0MuR2RrX0dDKSByZW5hbWVzIFNldF9NaWRkbGVf
R0M7CgogICBmdW5jdGlvbiBHZXRfTWlkCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7
CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0dXJuIEdkay5H
Qy5HZGtfR0MKICAgICAgcmVuYW1lcyBHZXRfTWlkZGxlX0dDOwoKICAgcHJvY2VkdXJlIFNldF9U
ZXh0X0dDCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUg
OiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgR0MgICAgICAgICA6IGluIEdkay5HQy5H
ZGtfR0MpOwoKICAgZnVuY3Rpb24gR2V0X1RleHRfR0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0
a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1
cm4gR2RrLkdDLkdka19HQzsKCiAgIHByb2NlZHVyZSBTZXRfVGV4dAogICAgIChTdHlsZSAgICAg
IDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5
cGU7CiAgICAgIEdDICAgICAgICAgOiBpbiBHZGsuR0MuR2RrX0dDKSByZW5hbWVzIFNldF9UZXh0
X0dDOwoKICAgZnVuY3Rpb24gR2V0X1RleHQKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHls
ZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2Rr
LkdDLkdka19HQwogICAgICByZW5hbWVzIEdldF9UZXh0X0dDOwoKICAgcHJvY2VkdXJlIFNldF9C
YXNlX0dDCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUg
OiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgR0MgICAgICAgICA6IGluIEdkay5HQy5H
ZGtfR0MpOwoKICAgZnVuY3Rpb24gR2V0X0Jhc2VfR0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0
a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1
cm4gR2RrLkdDLkdka19HQzsKCiAgIHByb2NlZHVyZSBTZXRfQmFzZQogICAgIChTdHlsZSAgICAg
IDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5
cGU7CiAgICAgIEdDICAgICAgICAgOiBpbiBHZGsuR0MuR2RrX0dDKSByZW5hbWVzIFNldF9CYXNl
X0dDOwoKICAgZnVuY3Rpb24gR2V0X0Jhc2UKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHls
ZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2Rr
LkdDLkdka19HQwogICAgICByZW5hbWVzIEdldF9CYXNlX0dDOwoKICAgcHJvY2VkdXJlIFNldF9C
Z19QaXhtYXAKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlw
ZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBQaXhtYXAgICAgIDogaW4gR2RrLlBp
eG1hcC5HZGtfUGl4bWFwKTsKCiAgIGZ1bmN0aW9uIEdldF9CZ19QaXhtYXAKICAgICAoU3R5bGUg
ICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0
ZV9UeXBlKSByZXR1cm4gR2RrLlBpeG1hcC5HZGtfUGl4bWFwOwoKICAgZnVuY3Rpb24gWF9UaGlj
a25lc3MgKFN0eWxlIDogaW4gR3RrX1N0eWxlKSByZXR1cm4gR2ludDsKICAgLS0gIFdpZHRoIG9m
IHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXJzIGFuZCByYW5nZXMgd2hlbiBTdHlsZSBpcyBhcHBsaWVk
LgogICAtLSAgSW4gZmFjdCwgdGhpcyB0aGlja25lc3MgaXMgdXNlZCBmb3IgYSBsb3Qgb2Ygd2lk
Z2V0cyB3aG9zZSB3aWR0aAogICAtLSAgZG9lcyBub3QgZGVwZW5kIG9uIHRoZWlyIGNvbnRlbnQs
IHN1Y2ggYXMgcnVsZXJzLC4uLgoKICAgZnVuY3Rpb24gWV9UaGlja25lc3MgKFN0eWxlIDogaW4g
R3RrX1N0eWxlKSByZXR1cm4gR2ludDsKICAgLS0gIEhlaWdodCBvZiB0aGUgaG9yaXpvbnRhbCBz
Y3JvbGxiYXJzIGFuZCByYW5nZXMgd2hlbiBTdHlsZSBpcyBhcHBsaWVkLgoKICAgcHJvY2VkdXJl
IERyYXdfSGxpbmUKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgV2luZG93
ICAgICA6IGluIEdkay5XaW5kb3cuR2RrX1dpbmRvdzsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVu
dW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBYMSwgWDIgICAgIDogaW4gR2ludDsKICAgICAgWSAg
ICAgICAgICA6IGluIEdpbnQpOwoKICAgcHJvY2VkdXJlIERyYXdfVmxpbmUKICAgICAoU3R5bGUg
ICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgV2luZG93ICAgICA6IGluIEdkay5XaW5kb3cuR2Rr
X1dpbmRvdzsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAg
ICBZMSwgWTIgICAgIDogaW4gR2ludDsKICAgICAgWCAgICAgICAgICA6IGluIEdpbnQpOwoKICAg
cHJvY2VkdXJlIERyYXdfU2hhZG93CiAgICAgKFN0eWxlICAgICAgIDogaW4gR3RrX1N0eWxlOwog
ICAgICBXaW5kb3cgICAgICA6IGluIEdkay5XaW5kb3cuR2RrX1dpbmRvdzsKICAgICAgU3RhdGVf
VHlwZSAgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgU2hhZG93X1R5cGUgOiBpbiBF
bnVtcy5HdGtfU2hhZG93X1R5cGU7CiAgICAgIFgsIFkgICAgICAgIDogaW4gR2ludDsKICAgICAg
V2lkdGggICAgICAgOiBpbiBHaW50OwogICAgICBIZWlnaHQgICAgICA6IGluIEdpbnQpOwoKICAg
cHJvY2VkdXJlIERyYXdfUG9seWdvbgogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwog
ICAgICBXaW5kb3cgICAgIDogaW4gR2RrLldpbmRvdy5HZGtfV2luZG93OwogICAgICBTdGF0ZV9U
eXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIFNoYWRvd19UeXBlIDogaW4gRW51
bXMuR3RrX1NoYWRvd19UeXBlOwogICAgICBQb2ludHMgICAgIDogaW4gR2RrLlR5cGVzLkdka19Q
b2ludHNfQXJyYXk7CiAgICAgIEZpbGwgICAgICAgOiBpbiBCb29sZWFuKTsKCiAgIHByb2NlZHVy
ZSBEcmF3X0Fycm93CiAgICAgKFN0eWxlICAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBXaW5k
b3cgICAgICA6IGluIEdkay5XaW5kb3cuR2RrX1dpbmRvdzsKICAgICAgU3RhdGVfVHlwZSAgOiBp
biBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgU2hhZG93X1R5cGUgOiBpbiBFbnVtcy5HdGtf
U2hhZG93X1R5cGU7CiAgICAgIEFycm93X1R5cGUgIDogaW4gRW51bXMuR3RrX0Fycm93X1R5cGU7
CiAgICAgIEZpbGwgICAgICAgIDogaW4gQm9vbGVhbjsKICAgICAgWCwgWSAgICAgICAgOiBpbiBH
aW50OwogICAgICBXaWR0aCAgICAgICA6IGluIEdpbnQ7CiAgICAgIEhlaWdodCAgICAgIDogaW4g
R2ludCk7CgogICBwcm9jZWR1cmUgRHJhd19EaWFtb25kCiAgICAgKFN0eWxlICAgICAgIDogaW4g
R3RrX1N0eWxlOwogICAgICBXaW5kb3cgICAgICA6IGluIEdkay5XaW5kb3cuR2RrX1dpbmRvdzsK
ICAgICAgU3RhdGVfVHlwZSAgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgU2hhZG93
X1R5cGUgOiBpbiBFbnVtcy5HdGtfU2hhZG93X1R5cGU7CiAgICAgIFgsIFkgICAgICAgIDogaW4g
R2ludDsKICAgICAgV2lkdGggICAgICAgOiBpbiBHaW50OwogICAgICBIZWlnaHQgICAgICA6IGlu
IEdpbnQpOwoKICAgcHJvY2VkdXJlIERyYXdfT3ZhbAogICAgIChTdHlsZSAgICAgICA6IGluIEd0
a19TdHlsZTsKICAgICAgV2luZG93ICAgICAgOiBpbiBHZGsuV2luZG93Lkdka19XaW5kb3c7CiAg
ICAgIFN0YXRlX1R5cGUgIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIFNoYWRvd19U
eXBlIDogaW4gRW51bXMuR3RrX1NoYWRvd19UeXBlOwogICAgICBYLCBZICAgICAgICA6IGluIEdp
bnQ7CiAgICAgIFdpZHRoICAgICAgIDogaW4gR2ludDsKICAgICAgSGVpZ2h0ICAgICAgOiBpbiBH
aW50KTsKCiAgIHByb2NlZHVyZSBEcmF3X1N0cmluZwogICAgIChTdHlsZSAgICAgICA6IGluIEd0
a19TdHlsZTsKICAgICAgV2luZG93ICAgICAgOiBpbiBHZGsuV2luZG93Lkdka19XaW5kb3c7CiAg
ICAgIFN0YXRlX1R5cGUgIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIFgsIFkgICAg
ICAgIDogaW4gR2ludDsKICAgICAgU3RyICAgICAgICAgOiBpbiBTdHJpbmcpOwoKICAgcHJvY2Vk
dXJlIFJlZiAoT2JqZWN0IDogaW4gR3RrX1N0eWxlKTsKICAgcHJvY2VkdXJlIFVucmVmIChPYmpl
Y3QgOiBpbiBHdGtfU3R5bGUpOwoKcHJpdmF0ZQogICBwcmFnbWEgSW1wb3J0IChDLCBBdHRhY2gs
ICJndGtfc3R5bGVfYXR0YWNoIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIENvcHksICJndGtfc3R5
bGVfY29weSIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBEZXRhY2gsICJndGtfc3R5bGVfZGV0YWNo
Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFJlZiwgImd0a19zdHlsZV9yZWYiKTsKICAgcHJhZ21h
IEltcG9ydCAoQywgVW5yZWYsICJndGtfc3R5bGVfdW5yZWYiKTsKICAgcHJhZ21hIEltcG9ydCAo
QywgRHJhd19EaWFtb25kLCAiZ3RrX2RyYXdfZGlhbW9uZCIpOwogICBwcmFnbWEgSW1wb3J0IChD
LCBEcmF3X0hsaW5lLCAiZ3RrX2RyYXdfaGxpbmUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgRHJh
d19PdmFsLCAiZ3RrX2RyYXdfb3ZhbCIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBEcmF3X1NoYWRv
dywgImd0a19kcmF3X3NoYWRvdyIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBEcmF3X1ZsaW5lLCAi
Z3RrX2RyYXdfdmxpbmUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X0ZvbnQsICJhZGFfc3R5
bGVfc2V0X2ZvbnQiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X0ZvbnQsICJhZGFfc3R5bGVf
Z2V0X2ZvbnQiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X0JsYWNrX0dDLCAiYWRhX3N0eWxl
X3NldF9ibGFja19nYyIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfQmxhY2tfR0MsICJhZGFf
c3R5bGVfZ2V0X2JsYWNrX2djIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9XaGl0ZV9HQywg
ImFkYV9zdHlsZV9zZXRfd2hpdGVfZ2MiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X1doaXRl
X0dDLCAiYWRhX3N0eWxlX2dldF93aGl0ZV9nYyIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBYX1Ro
aWNrbmVzcywgImFkYV9zdHlsZV9nZXRfeF90aGlja25lc3MiKTsKICAgcHJhZ21hIEltcG9ydCAo
QywgWV9UaGlja25lc3MsICJhZGFfc3R5bGVfZ2V0X3lfdGhpY2tuZXNzIik7CmVuZCBHdGsuU3R5
bGU7Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9y
IHRoZSBHaW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAg
ICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1
ZCBDaGFybGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAg
ICAgICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0t
Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAg
IC0tCi0tIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRp
b24sIGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMg
dW5pdCwgb3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBh
biAgIC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1
c2UgIHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5v
dCBob3dldmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4
ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5z
ZS4gICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotLSAgPGRlc2NyaXB0aW9uPgotLQotLSAgVGhpcyB3
aWRnZXQgaXMgdGhlIGJhc2Ugb2YgdGhlIHRyZWUgZm9yIGRpc3BsYXlhYmxlIG9iamVjdHMuCi0t
ICAoQSBkaXNwbGF5YWJsZSBvYmplY3QgaXMgb25lIHdoaWNoIHRha2VzIHVwIHNvbWUgYW1vdW50
Ci0tICBvZiBzY3JlZW4gcmVhbCBlc3RhdGUpLiBJdCBwcm92aWRlcyBhIGNvbW1vbiBiYXNlIGFu
ZCBpbnRlcmZhY2UKLS0gIHdoaWNoIGFjdHVhbCB3aWRnZXRzIG11c3QgYWRoZXJlIHRvLgotLQot
LSAgVGhpcyBwYWNrYWdlIHByb3ZpZGVzIHNvbWUgc2VydmljZXMgd2hpY2ggbWlnaHQgaGF2ZSBi
ZWVuIG1vcmUgYXBwcm9wcmlhdGUKLS0gIGluIHNvbWUgb3RoZXIgcGFja2FnZXMsIGJ1dCBjb3Vs
ZCBub3QgYmVjYXVzZSBvZiBkZXBlbmRlbmN5IGNpcmN1bGFyaXRpZXMKLS0gICh0aGVyZSBhcmUg
Zm9yIGluc3RhbmNlIHNvbWUgZnVuY3Rpb25zIHJlbGF0aW5nIHRvIGNvbG9ycyBhbmQgY29sb3Jt
YXBzKS4KLS0gIFdlIGhhdmUgdHJpZWQgdG8gcmVmZXJlbmNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0
aGUgb3RoZXIgcGFja2FnZXMgYXMgd2VsbC4KLS0KLS0gIDwvZGVzY3JpcHRpb24+Ci0tICA8Y192
ZXJzaW9uPjEuMi42PC9jX3ZlcnNpb24+Cgp3aXRoIEdkay5Db2xvcjsKd2l0aCBHZGsuRXZlbnQ7
CndpdGggR2RrLkJpdG1hcDsKd2l0aCBHZGsuUmVjdGFuZ2xlOwp3aXRoIEdkay5UeXBlczsKd2l0
aCBHZGsuVmlzdWFsOwp3aXRoIEdkay5XaW5kb3c7CndpdGggR3RrLkFjY2VsX0dyb3VwOwp3aXRo
IEd0ay5BZGp1c3RtZW50Owp3aXRoIEd0ay5FbnVtczsKd2l0aCBHdGsuT2JqZWN0Owp3aXRoIEd0
ay5TdHlsZTsKd2l0aCBHbGliLkdsaXN0Owp3aXRoIEdsaWIuR1NsaXN0Owp3aXRoIFN5c3RlbTsK
cHJhZ21hIEVsYWJvcmF0ZV9BbGwgKEdsaWIuR1NsaXN0KTsKCnBhY2thZ2UgR3RrLldpZGdldCBp
cwoKICAgdHlwZSBHdGtfV2lkZ2V0X1JlY29yZCBpcyBuZXcgT2JqZWN0Lkd0a19PYmplY3RfUmVj
b3JkIHdpdGggcHJpdmF0ZTsKICAgdHlwZSBHdGtfV2lkZ2V0IGlzIGFjY2VzcyBhbGwgR3RrX1dp
ZGdldF9SZWNvcmQnQ2xhc3M7CgogICB0eXBlIEd0a19SZXF1aXNpdGlvbiBpcyByZWNvcmQKICAg
ICAgV2lkdGggIDogR2ludDE2OwogICAgICBIZWlnaHQgOiBHaW50MTY7CiAgIGVuZCByZWNvcmQ7
CiAgIC0tICBHdGtfUmVxdWlzaXRpb24gaXMgdGhlIGRlc2lyZWQgYW1vdW50IG9mIHNjcmVlbiBy
ZWFsLWVzdGF0ZSBhIHdpZGdldAogICAtLSAgcmVxdWVzdHMgdG8gdGhlIHNlcnZlci4gSXRzIHJl
YWwgYWxsb2NhdGVkIHNpemUgbWlnaHQgYmUgZGlmZmVyZW50LgogICAtLSAgU2VlIHRoZSBzZWN0
aW9uIGluIHRoZSBHdGtBZGEgdXNlciBndWlkZSBvbiBob3cgdG8gY3JlYXRlIG5ldyB3aWRnZXRz
CiAgIC0tICBpbiBBZGEsIGFuZCB0aGUgZXhhbXBsZXMvYmFzZV93aWRnZXQgZGlyZWN0b3J5IGZv
ciBhbiBleGFtcGxlIG9uIGhvdyB0bwogICAtLSAgdXNlIHRoaXMuCiAgIHByYWdtYSBQYWNrIChH
dGtfUmVxdWlzaXRpb24pOwoKICAgdHlwZSBHdGtfUmVxdWlzaXRpb25fQWNjZXNzIGlzIGFjY2Vz
cyBhbGwgR3RrX1JlcXVpc2l0aW9uOwogICAtLSAgVGhpcyB0eXBlIGlzIHVzZWQgdG8gY3JlYXRl
IG5ldyB3aWRnZXRzLgoKICAgdHlwZSBHdGtfQWxsb2NhdGlvbiBpcyByZWNvcmQKICAgICAgWCAg
ICAgIDogR2ludDE2OwogICAgICBZICAgICAgOiBHaW50MTY7CiAgICAgIFdpZHRoICA6IEd1aW50
MTY7CiAgICAgIEhlaWdodCA6IEd1aW50MTY7CiAgIGVuZCByZWNvcmQ7CiAgIC0tICBHdGtfQWxs
b2NhdGlvbiBpbmRpY2F0ZXMgYSBzaXplIGFuZCBwb3NpdGlvbiBhIHdpZGdldCB3YXMgYWxsb2Nh
dGVkLgogICAtLSAgU2VlIHRoZSBzZWN0aW9uIGluIHRoZSB1c2VyIGd1aWRlIG9uIGhvdyB0byBj
cmVhdGUgbmV3IHdpZGdldHMgZm9yIG1vcmUKICAgLS0gIGluZm9ybWF0aW9uLgogICBwcmFnbWEg
UGFjayAoR3RrX0FsbG9jYXRpb24pOwoKICAgdHlwZSBHdGtfQWxsb2NhdGlvbl9BY2Nlc3MgaXMg
YWNjZXNzIGFsbCBHdGtfQWxsb2NhdGlvbjsKICAgLS0gIFRoaXMgdHlwZSBpcyB1c2VkIHRvIGNy
ZWF0ZSBuZXcgd2lkZ2V0cy4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gV2lk
Z2V0cycgbGlmZSBjeWNsZSAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9j
ZWR1cmUgSW5pdGlhbGl6ZV9XaWRnZXQgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29y
ZCdDbGFzcyk7CiAgIC0tICBJbnRlcm5hbCBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4KICAgLS0g
IFNlZSB0aGUgc2VjdGlvbiAiQ3JlYXRpbmcgeW91ciBvd24gd2lkZ2V0cyIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24uCgogICBwcm9jZWR1cmUgRGVzdHJveV9DYiAoV2lkZ2V0IDogYWNjZXNzIEd0a19X
aWRnZXRfUmVjb3JkJ0NsYXNzKTsKICAgLS0gIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHVzZWQg
YXMgYSBjYWxsYmFjayB0byBkZXN0cm95IGEgd2lkZ2V0LgogICAtLSAgQWxsIGl0IGRvZXMgaXMg
Y2FsbCBEZXN0cm95IG9uIGl0cyBhcmd1bWVudCwgYnV0IGl0cyBwcm9maWxlIGlzCiAgIC0tICBj
b21wYXRpYmxlIHdpdGggdGhlIGhhbmRsZXJzIGZvdW5kIGluIEd0ay5IYW5kbGVycy4KCiAgIHBy
b2NlZHVyZSBVbnBhcmVudCAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNz
KTsKICAgLS0gIERldGFjaCB0aGUgd2lkZ2V0IGZyb20gaXRzIHBhcmVudC4KICAgLS0gIEFzIGEg
c2lkZSBlZmZlY3QsIHRoZSB3aWRnZXQgd2lsbCBiZSBlcmFzZWQgZnJvbSB0aGUgc2NyZWVuLgog
ICAtLSAgTm90ZSB0aGF0IFdpZGdldCB3aWxsIGJlIGRlc3Ryb3llZCBpZiBpdHMgcmVmZXJlbmNl
IGNvdW50IHJlYWNoZXMgMC4KICAgLS0gIFRodXMsIGlmIHlvdSB3YW50IHRvIHJldXNlIGl0LCB5
b3Ugc2hvdWxkIGZpcnN0IEd0ay5PYmplY3QuUmVmIGl0LAogICAtLSAgYmVmb3JlIGNhbGxpbmcg
VW5wYXJlbnQuCgogICBwcm9jZWR1cmUgU2hvdyAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRf
UmVjb3JkKTsKICAgLS0gIFNjaGVkdWxlIHRoZSB3aWRnZXQgdG8gYmUgZGlzcGxheWVkIG9uIHRo
ZSBzY3JlZW4gd2hlbiBpdHMgcGFyZW50IGlzCiAgIC0tICBhbHNvIHNob3duIChlbWl0cyB0aGUg
InNob3ciIHNpZ25hbCkuCiAgIC0tICBJZiBpdHMgYW5jZXN0b3JzIGFyZSBhbHJlYWR5IG1hcHBl
ZCB0byB0aGUgc2NyZWVuLCB0aGVuIHRoZSB3aWRnZXQgaXMKICAgLS0gIGltbWVkaWF0ZWx5IGRp
c3BsYXllZCB0aHJvdWdoIGEgY2FsbCB0byBNYXAgYmVsb3cuCgogICBwcm9jZWR1cmUgU2hvd19O
b3cgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCk7CiAgIC0tICBTaG93IHRoZSB3
aWRnZXQuCiAgIC0tICBJZiBpdCBpcyBhbiB1bm1hcHBlZCB0b3BsZXZlbCB3aWRnZXQsIHdhaXQg
Zm9yIGl0IHRvIGJlIG1hcHBlZC4gVGhpcwogICAtLSAgY3JlYXRlcyBhIHJlY3Vyc2l2ZSBtYWlu
X2xvb3AuCgogICBwcm9jZWR1cmUgSGlkZSAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVj
b3JkKTsKICAgLS0gIEhpZGUgdGhlIHdpZGdldCBmcm9tIHRoZSBzY3JlZW4gKGVtaXRzIHRoZSAi
aGlkZSIgc2lnbmFsKS4KICAgLS0gIElmIFdpZGdldCB3YXMgdmlzaWJsZSwgaXQgaXMgaW1tZWRp
YXRlbHkgaGlkZGVuLgogICAtLSAgSWYgb25lIG9mIGl0cyBhbmNlc3RvciBpcyBsYXRlciBzaG93
biBvbiB0aGUgc2NyZWVuLCBXaWRnZXQgd29uJ3QKICAgLS0gIGFwcGVhci4KCiAgIHByb2NlZHVy
ZSBTaG93X0FsbCAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKTsKICAgLS0gIFNo
b3cgV2lkZ2V0IGFuZCBhbGwgaXRzIGNoaWxkcmVuIHJlY3Vyc2l2ZWx5LgoKICAgcHJvY2VkdXJl
IEhpZGVfQWxsIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgSGlk
ZSBXaWRnZXQgYW5kIGFsbCBpdHMgY2hpbGRyZW4uCiAgIC0tICBOb3RlIHRoYXQgaWYgeW91IHNp
bXBseSB3YW50IHRvIGRlbGV0ZSBXaWRnZXQgZnJvbSB0aGUgc2NyZWVuLCB5b3UgY2FuCiAgIC0t
ICBzaW1wbHkgY2FsbCB0aGUgSGlkZSBzdWJwcm9ncmFtIG9uIGl0LiBUaGlzIHByb2NlZHVyZSBI
aWRlX0FsbCBzaG91bGQKICAgLS0gIG9ubHkgYmUgdXNlZCBpZiB5b3Ugd2FudCB0byB1bnNjaGVk
dWxlIGEgd2lkZ2V0IHRvIGJlIGRpc3BsYXllZCBsYXRlciwKICAgLS0gIG5vdCB0byByZW1vdmUg
YW4gYWN0dWFsIHdpZGdldCBmcm9tIHRoZSBzY3JlZW4uCgogICBwcm9jZWR1cmUgTWFwIChXaWRn
ZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgTWFwIGEgd2lkZ2V0IHRvIHRo
ZSBzY3JlZW4uCiAgIC0tICBBIHdpbmRvdyBpcyBjcmVhdGVkIGZvciBpdCBvbiB0aGUgc2NyZWVu
ICh0aHJvdWdoIGEgY2FsbCB0byBSZWFsaXplKSBhbmQKICAgLS0gIFdpZGdldCBpcyB0aGVuIGRy
YXduIG9uIHRoZSBzY3JlZW4gKGlmIGl0cyBhbmNlc3RvcnMgYXJlIGFsc28gbWFwcGVkKS4KICAg
LS0gIFRoaXMgZnVuY3Rpb24gaXMgcmVjdXJzaXZlIGFuZCB3aWxsIGFsc28gbWFwIGFsbCB0aGUg
Y2hpbGRyZW4gb2YgV2lkZ2V0LgogICAtLQogICAtLSAgSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNl
IHRoZSBoaWdoZXItbGV2ZWwgU2hvdyBpbnN0ZWFkLgoKICAgcHJvY2VkdXJlIFVubWFwIChXaWRn
ZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgVW5tYXAgYSB3aWRnZXQgZnJv
bSB0aGUgc2NyZWVuLgogICAtLSAgVGhpcyByZXN1bHRzIGluIHRoZSB3aWRnZXQgYmVpbmcgaGlk
ZGVuLCBidXQgbm90IGRlc3Ryb3llZC4gSXQgY2FuIGJlCiAgIC0tICBzaG93biBhZ2FpbiBhbnkg
dGltZSB0aHJvdWdoIGEgY2FsbCB0byBNYXAgKHByb3ZpZGVkIGl0cyBhbmNlc3RvcnMgYXJlCiAg
IC0tICBhbHNvIG1hcHBlZCkuCiAgIC0tCiAgIC0tICBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2Ug
dGhlIGhpZ2hlci1sZXZlbCBIaWRlIGluc3RlYWQuCgogICBwcm9jZWR1cmUgUmVhbGl6ZSAoV2lk
Z2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKTsKICAgLS0gIENyZWF0ZSBhIHdpbmRvdyBm
b3IgV2lkZ2V0IGFuZCBpdHMgYW5jZXN0b3JzIChlbWl0IHRoZSAicmVhbGl6ZSIgc2lnbmFsKQog
ICAtLSAgVGhpcyBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIHdpZGdldCB3aWxsIGFwcGVhciBvbiB0
aGUgc2NyZWVuLCBidXQKICAgLS0gIHJlc291cmNlcyBzdWNoIGFzIGNvbG9ybWFwcywgZXRjLiBi
ZWNvbWUgYXZhaWxhYmxlLgogICAtLSAgU29tZSByb3V0aW5lcyByZXF1aXJlIHRoYXQgdGhlIHdp
ZGdldCBpcyByZWFsaXplZCBiZWZvcmUgYW55IGNhbGwuCiAgIC0tICBZb3UgbXVzdCBzZXQgdGhl
IEV2ZW50X01hc2sgYmVmb3JlIGNhbGxpbmcgdGhpcyByb3V0aW5lIGlmIHlvdSB3YW50IHRvCiAg
IC0tICBjaGFuZ2UgaXQgZnJvbSBpdHMgZGVmYXVsdCB2YWx1ZS4KCiAgIHByb2NlZHVyZSBVbnJl
YWxpemUgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCk7CiAgIC0tICBIaWRlIHRo
ZSB3aWRnZXQgZnJvbSB0aGUgc2NyZWVuIGFuZCBkZWxldGVzIHRoZSBhc3NvY2lhdGVkIHdpbmRv
dy4KICAgLS0gIFRoaXMgZG9lcyBub3QgZGVzdHJveSB0aGUgd2lkZ2V0IGl0c2VsZiwgb25seSBp
dHMgc2VydmVyLXNpZGUKICAgLS0gIHJlc291cmNlcy4KCiAgIGdlbmVyaWMKICAgICAgdHlwZSBX
aWRnZXRfVHlwZSBpcyBuZXcgR3RrX1dpZGdldF9SZWNvcmQgd2l0aCBwcml2YXRlOwogICAgICB3
aXRoIHByb2NlZHVyZSBSZWFsaXplX1Byb2MgKFdpZGdldCA6IGFjY2VzcyBXaWRnZXRfVHlwZSdD
bGFzcyk7CiAgIHBhY2thZ2UgUmVhbGl6ZV9IYW5kbGluZyBpcwoKICAgICAgcHJvY2VkdXJlIFNl
dF9SZWFsaXplIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3MpOwogICAg
ICAtLSAgU2V0IHRoZSByZWFsaXplIGhhbmRsZXIgYXQgdGhlIGxvdyBsZXZlbC4KICAgICAgLS0g
IFRoaXMgaXMgbmVlZGVkIHRvIHJlcGxhY2UgdGhlIGRlZmF1bHQgcmVhbGl6ZSBpbiBuZXcgd2lk
Z2V0cy4KCiAgIGVuZCBSZWFsaXplX0hhbmRsaW5nOwoKICAgZnVuY3Rpb24gR2V0X1R5cGUgcmV0
dXJuIEd0ay5HdGtfVHlwZTsKICAgLS0gIFJldHVybiB0aGUgaW50ZXJuYWwgdmFsdWUgYXNzb2Np
YXRlZCB3aXRoIGEgR3RrX1dpZGdldC4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0g
RHJhd2luZyBhIHdpZGdldCAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1
cmUgUXVldWVfRHJhdyAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKTsKICAgLS0g
IEFkZCBhIGRyYXdpbmcgcmVxdWVzdCB0byB0aGUgZXZlbnQgcXVldWUgZm9yIHRoZSB3aG9sZSB3
aWRnZXQuCiAgIC0tICBUaGlzIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gY2FsbGluZyBEcmF3IGRp
cmVjdGx5LCBzaW5jZSBHdGtBZGEgZ3JvdXBzCiAgIC0tICBkcmF3aW5nIHJlcXVlc3RzIGFzIG11
Y2ggYXMgcG9zc2libGUgdG8gc3BlZWQgdXAgdGhlIGRyYXdpbmcgcHJvY2Vzcy4KICAgLS0gIFRo
ZSBhY3R1YWwgZHJhd2luZyB3aWxsIHRha2UgcGxhY2UgYXMgc29vbiBhcyBHdGtBZGEgaXMgbm90
IGJ1c3kKICAgLS0gIHByb2Nlc3Npbmcgb3RoZXIgZXZlbnRzLCBidXQgYmVmb3JlIGlkbGUgZXZl
bnRzLgoKICAgcHJvY2VkdXJlIFF1ZXVlX0RyYXdfQXJlYQogICAgIChXaWRnZXQgOiBhY2Nlc3Mg
R3RrX1dpZGdldF9SZWNvcmQ7CiAgICAgIFggICAgICA6IEdpbnQ7CiAgICAgIFkgICAgICA6IEdp
bnQ7CiAgICAgIFdpZHRoICA6IEdpbnQ7CiAgICAgIEhlaWdodCA6IEdpbnQpOwogICAtLSAgQWRk
IGEgZHJhd2luZyByZXF1ZXN0IHRvIHRoZSBldmVudCBxdWV1ZSBmb3IgcGFydCBvZiB0aGUgd2lk
Z2V0LgogICAtLSAgVGhpcyBpcyBtb3JlIGVmZmljaWVudCB0aGF0IGNhbGxpbmcgRHJhdyBkaXJl
Y3RseSAoc2VlIFF1ZXVlX0RyYXcpLgoKICAgcHJvY2VkdXJlIFF1ZXVlX0NsZWFyIChXaWRnZXQg
OiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgQWRkIGEgY2xlYXIgcmVxdWVzdCB0
byB0aGUgZXZlbnQgcXVldWUgZm9yIHRoZSB3aG9sZSB3aWRnZXQuCiAgIC0tICBUaGlzIGlzIGFk
ZGVkIHRvIHRoZSBzYW1lIGxpc3QgYXMgZm9yIFF1ZXVlX0RyYXcsIGFuZCB0aHVzIGlzIGNvYWxl
c2NlZAogICAtLSAgYXMgbXVjaCBhcyBwb3NzaWJsZSB3aXRoIG90aGVyIGRyYXdpbmcgcmVxdWVz
dHMuCgogICBwcm9jZWR1cmUgUXVldWVfQ2xlYXJfQXJlYQogICAgIChXaWRnZXQgOiBhY2Nlc3Mg
R3RrX1dpZGdldF9SZWNvcmQ7CiAgICAgIFggICAgICA6IEdpbnQ7CiAgICAgIFkgICAgICA6IEdp
bnQ7CiAgICAgIFdpZHRoICA6IEdpbnQ7CiAgICAgIEhlaWdodCA6IEdpbnQpOwogICAtLSAgQWRk
IGEgY2xlYXIgcmVxdWVzdCB0byB0aGUgZXZlbnQgcXVldWUgZm9yIHBhcnQgb2YgdGhlIHdpZGdl
dC4KICAgLS0gIFRoaXMgaXMgYWRkZWQgdG8gdGhlIHNhbWUgbGlzdCBhcyBmb3IgUXVldWVfRHJh
dywgYW5kIHRodXMgaXMgY29hbGVzY2VkCiAgIC0tICBhcyBtdWNoIGFzIHBvc3NpYmxlIHdpdGgg
b3RoZXIgZHJhd2luZyByZXF1ZXN0cy4KCiAgIHByb2NlZHVyZSBRdWV1ZV9SZXNpemUgKFdpZGdl
dCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCk7CiAgIC0tICBRdWV1ZSBkcmF3aW5nIHJlcXVl
c3RzIGFmdGVyIGEgcmVzaXppbmcgb2YgdGhlIHdpZGdldC4KICAgLS0gIFRoaXMgY2xlYXJzIHRo
ZSB3aWRnZXQsIGFuZCBpdHMgcGFyZW50IGlmIGFueSwgc28gdGhhdCBldmVyeXRoaW5nIGlzCiAg
IC0tICBjb3JyZWN0bHkgcmVkcmF3bi4KICAgLS0gIFlvdSBzaG91bGQgbm90IGhhdmUgdG8gY2Fs
bCB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5LgoKICAgcHJvY2VkdXJlIERyYXcKICAgICAoV2lkZ2V0
IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBBcmVhICAgOiBpbiBHZGsuUmVjdGFu
Z2xlLkdka19SZWN0YW5nbGUgOj0gR2RrLlJlY3RhbmdsZS5GdWxsX0FyZWEpOwogICAtLSAgRW1p
dCBhICJkcmF3IiBzaWduYWwgZm9yIGEgc3BlY2lmaWMgYXJlYSBvZiB0aGUgd2lkZ2V0LgogICAt
LSAgVGhlIHZpc3VhbCBhc3BlY3QgbWlnaHQgYmUgZGlmZmVyZW50IHdoZXRoZXIgdGhlIHdpZGdl
dCBoYXMgdGhlIGZvY3VzCiAgIC0tICBvciBub3QuCgogICBwcm9jZWR1cmUgRHJhd19Gb2N1cyAo
V2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKTsKICAgLS0gIEVtaXQgYSAiZHJhd19m
b2N1cyIgc2lnbmFsIGZvciB0aGUgd2lkZ2V0LgogICAtLSAgVGhlIHdpZGdldCB3aWxsIGJlIHBh
aW50ZWQgYXMgaXQgYXBwZWFycyB3aGVuIGl0IGhhcyB0aGUgZm9jdXMuCgogICBwcm9jZWR1cmUg
RHJhd19EZWZhdWx0IChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAg
RW1pdCBhICJkcmF3X2RlZmF1bHQiIHNpZ25hbCBmb3IgdGhlIHdpZGdldC4KICAgLS0gIFRoZSB3
aWRnZXQgd2lsbCBiZSBwYWludGVkIGFzIGl0IGFwcGVhcnMgd2hlbiBpdCBkb2Vzbid0IGhhdmUg
dGhlIGZvY3VzLgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU2l6ZSBhbmQgcG9z
aXRpb24gLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTaXplX1Jl
cXVlc3QKICAgICAoV2lkZ2V0ICAgICAgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7CiAgICAg
IFJlcXVpc2l0aW9uIDogaW4gb3V0IEd0a19SZXF1aXNpdGlvbik7CiAgIC0tICBFbWl0IGEgInNp
emVfcmVxdWVzdCIgZXZlbnQgZm9yIHRoZSB3aWRnZXQKCiAgIHByb2NlZHVyZSBTaXplX0FsbG9j
YXRlCiAgICAgKFdpZGdldCAgICAgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7CiAgICAgIEFs
bG9jYXRpb24gOiBpbiBvdXQgR3RrX0FsbG9jYXRpb24pOwogICAtLSAgRW1pdCBhICJzaXplX2Fs
bG9jYXRlIiBldmVudCBmb3IgdGhlIHdpZGdldC4KICAgLS0gIEFsbG9jYXRpb24nc2l6ZSBpcyBm
aXJzdCBjb25zdHJhaW5lZCB0byBhIHJhbmdlIGJldHdlZW4gMXgxIGFuZAogICAtLSAgMzI3Njd4
MzI3NjcuCiAgIC0tICBBIGNsZWFyIGFuZCBkcmF3IHJlcXVlc3QgaXMgYWxzbyBxdWV1ZWQgaWYg
cmVxdWlyZWQuCgogICBmdW5jdGlvbiBHZXRfQ2hpbGRfUmVxdWlzaXRpb24KICAgICAoV2lkZ2V0
IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKSByZXR1cm4gR3RrX1JlcXVpc2l0aW9uOwogICAt
LSAgUmV0dXJuIHRoZSBzaXplIHJlcXVlc3RzIGJ5IHRoZSB3aWRnZXQuCiAgIC0tICBUaGlzIGlz
IHRoZSBpZGVhbCBzaXplIGZvciB0aGUgd2lkZ2V0LCBub3QgbmVjZXNzYXJpbHkgaXRzIGFjdHVh
bCBzaXplLgogICAtLSAgU2VlIHRoZSB1c2VyIGd1aWRlJ3Mgc2VjdGlvbiBvbiBob3cgdG8gY3Jl
YXRlIG5ldyB3aWRnZXRzIGZvciBtb3JlCiAgIC0tICBpbmZvcm1hdGlvbiBvbiB0aGUgc2l6ZSBy
ZXF1aXNpdGlvbiBhbmQgYWxsb2NhdGlvbi4KCiAgIHByb2NlZHVyZSBTZXRfVVBvc2l0aW9uCiAg
ICAgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgWCwgWSAgIDogaW4g
R2ludCk7CiAgIC0tICBNb2RpZnkgdGhlIHBvc2l0aW9uIG9mIHRoZSB3aWRnZXQuCiAgIC0tICBU
aGlzIHNob3VsZCBiZSB1c2VkIG9ubHkgZm9yIHRvcGxldmVsIHdpZGdldHMgKHdpbmRvd3MgYW5k
IGRpYWxvZ3MpLAogICAtLSAgc2luY2Ugb3RoZXIgd2lkZ2V0cycgcG9zaXRpb25zIGFyZSBoYW5k
bGVkIGJ5IHRoZWlyIHBhcmVudC4KCiAgIHByb2NlZHVyZSBTZXRfVVNpemUKICAgICAoV2lkZ2V0
IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBXaWR0aCwgSGVpZ2h0IDogaW4gR2lu
dCk7CiAgIC0tICBNb2RpZnkgdGhlIHNpemUgb2YgdGhlIHdpZGdldC4KICAgLS0gIFRoaXMgc2V0
cyBhbiBhYnNvbHV0ZSBzaXplIGZvciB0aGUgd2lkZ2V0LCBubyBtYXR0ZXIgd2hhdCBpdHMgcmVx
dWVzdGVkCiAgIC0tICBzaXplIHdvdWxkIGJlLiBGb3IgR3RrX1dpbmRvd3MsIHlvdSBzaG91bGQg
Y29uc2lkZXIgdXNpbmcKICAgLS0gIFNldF9EZWZhdWx0X1NpemUgaW5zdGVhZCwgd2hpY2ggc2V0
cyBhIG1pbmltYWwgc2l6ZSwgYnV0IHVzZSB0aGUKICAgLS0gIHdpZGdldCdzIHJlcXVlc3RlZCBz
aXplIGlmIGl0IGlzIGJpZ2dlci4KICAgLS0gIElmIFdpZHRoIG9yIEhlaWdodCBpcyBuZWdhdGl2
ZSwgdGhleSBhcmUgaWdub3JlZCwgYW5kIHRoZSB3aWRnZXQncwogICAtLSAgZGVmYXVsdCB3aWR0
aCBpcyBrZXB0LgoKICAgZnVuY3Rpb24gR2V0X0FsbG9jYXRpb25fV2lkdGgKICAgICAoV2lkZ2V0
IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKSByZXR1cm4gR3VpbnQ7CiAgIC0tICBSZXR1cm4g
dGhlIGN1cnJlbnQgd2lkdGggb2YgdGhlIHdpZGdldC4KCiAgIGZ1bmN0aW9uIEdldF9BbGxvY2F0
aW9uX0hlaWdodAogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpIHJldHVy
biBHdWludDsKICAgLS0gIFJldHVybiB0aGUgY3VycmVudCBoZWlnaHQgb2YgdGhlIHdpZGdldC4K
CiAgIGZ1bmN0aW9uIEdldF9BbGxvY2F0aW9uX1ggKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0
X1JlY29yZCkgcmV0dXJuIEdpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIGN1cnJlbnQgcG9zaXRpb24g
b2YgdGhlIHdpZGdldCwgcmVsYXRpdmUgdG8gaXRzIHBhcmVudC4KCiAgIGZ1bmN0aW9uIEdldF9B
bGxvY2F0aW9uX1kgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCkgcmV0dXJuIEdp
bnQ7CiAgIC0tICBSZXR1cm4gdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhlIHdpZGdldCwgcmVs
YXRpdmUgdG8gaXRzIHBhcmVudC4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBBY2NlbGVy
YXRvcnMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgQWRkX0FjY2VsZXJh
dG9yCiAgICAgKFdpZGdldCAgICAgICA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAg
QWNjZWxfU2lnbmFsIDogaW4gU3RyaW5nOwogICAgICBBY2NlbF9Hcm91cCAgOiBpbiBHdGsuQWNj
ZWxfR3JvdXAuR3RrX0FjY2VsX0dyb3VwOwogICAgICBBY2NlbF9LZXkgICAgOiBpbiBHZGsuVHlw
ZXMuR2RrX0tleV9UeXBlOwogICAgICBBY2NlbF9Nb2RzICAgOiBpbiBHZGsuVHlwZXMuR2RrX01v
ZGlmaWVyX1R5cGU7CiAgICAgIEFjY2VsX0ZsYWdzICA6IGluIEd0ay5BY2NlbF9Hcm91cC5HdGtf
QWNjZWxfRmxhZ3MpOwogICAtLSAgQWRkIGEgbmV3IGFjY2VsZXJhdG9yIGZvciB0aGUgd2lkZ2V0
LgogICAtLSAgVGhlIHNpZ25hbCBBY2NlbF9TaWduYWwgd2lsbCBiZSBzZW50IHRvIFdpZGdldCB3
aGVuIHRoZSBtYXRjaGluZwogICAtLSAga2V5IGlzIHByZXNzZWQgYW5kIHRoZSB3aWRnZXQgaGFz
IHRoZSBmb2N1cy4KCiAgIHByb2NlZHVyZSBSZW1vdmVfQWNjZWxlcmF0b3IKICAgICAoV2lkZ2V0
ICAgICAgIDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBBY2NlbF9Hcm91cCAgOiBp
biBHdGsuQWNjZWxfR3JvdXAuR3RrX0FjY2VsX0dyb3VwOwogICAgICBBY2NlbF9LZXkgICAgOiBp
biBHZGsuVHlwZXMuR2RrX0tleV9UeXBlOwogICAgICBBY2NlbF9Nb2RzICAgOiBpbiBHZGsuVHlw
ZXMuR2RrX01vZGlmaWVyX1R5cGUpOwogICAtLSAgUmVtb3ZlIGFuIGFjY2VsZXJhdG9yIGZvciB0
aGUgd2lkZ2V0LgoKICAgcHJvY2VkdXJlIFJlbW92ZV9BY2NlbGVyYXRvcnMKICAgICAoV2lkZ2V0
ICAgICAgIDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBBY2NlbF9TaWduYWwgOiBp
biBTdHJpbmc7CiAgICAgIFZpc2libGVfT25seSA6IGluIEJvb2xlYW4gOj0gVHJ1ZSk7CiAgIC0t
ICBSZW1vdmUgYWxsIHRoZSBhY2NlbGVyYXRvcnMgZm9yIHRoZSB3aWRnZXQgdGhhdCBlbWl0cyB0
aGUgQWNjZWxfU2lnbmFsCiAgIC0tICBzaWduYWwgd2hlbiB0aGUga2V5IGlzIHByZXNzZWQuCiAg
IC0tICBWaXNpYmxlX09ubHkgaXMgY3VycmVudGx5IHVudXNlZCBpbiB0aGUgY29kZSBvZiBndGsr
LgoKICAgZnVuY3Rpb24gQWNjZWxlcmF0b3JfU2lnbmFsCiAgICAgKFdpZGdldCAgICAgICA6IGFj
Y2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgQWNjZWxfR3JvdXAgIDogaW4gR3RrLkFjY2Vs
X0dyb3VwLkd0a19BY2NlbF9Hcm91cDsKICAgICAgQWNjZWxfS2V5ICAgIDogaW4gR2RrLlR5cGVz
Lkdka19LZXlfVHlwZTsKICAgICAgQWNjZWxfTW9kcyAgIDogaW4gR2RrLlR5cGVzLkdka19Nb2Rp
Zmllcl9UeXBlKSByZXR1cm4gR3VpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIHNpZ25hbCBpZCBvZiB0
aGUgc2lnbmFsIGVtaXR0ZWQgd2hlbiBBY2NlbF9LZXkgaXMgcHJlc3NlZAogICAtLSAgaW5zaWRl
IHRoZSB3aWRnZXQuCgogICBwcm9jZWR1cmUgTG9ja19BY2NlbGVyYXRvcnMgKFdpZGdldCA6IGFj
Y2VzcyBHdGtfV2lkZ2V0X1JlY29yZCk7CiAgIC0tICBMb2NrIHRoZSBhY2NlbGVyYXRvcnMgZm9y
IHRoZSB3aWRnZXQuCiAgIC0tICBObyBuZXcgYWNjZWxlcmF0b3IgY2FuIGJlIGFkZGVkIHRvIFdp
ZGdldCAodGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMKICAgLS0gIHRoYXQgdGhlIHVzZXIgY2FuIGR5
bmFtaWNhbGx5IGNyZWF0ZSBuZXcgYWNjZWxlcmF0b3JzLCBmb3IgaW5zdGFuY2UKICAgLS0gIGJ5
IHByZXNzaW5nIGEgbm90LXlldCBhc3NpZ25lZCBrZXkgb24gYW55IG1lbnUgaXRlbS4KICAgLS0g
IElmIHlvdSBjYWxsIHRoaXMgZnVuY3Rpb24gb24gdGhlIG1lbnVfaXRlbSwgdGhpcyBiZWhhdmlv
ciB3aWxsIG5vdAogICAtLSAgbG9uZ2VyIGJlIGFjdGl2YXRlZC4KCiAgIHByb2NlZHVyZSBVbmxv
Y2tfQWNjZWxlcmF0b3JzIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAt
LSAgVW5sb2NrIHRoZSBhY2NlbGVyYXRvcnMgZm9yIHRoZSB3aWRnZXQuCiAgIC0tICBJdCBpcyBu
b3cgcG9zc2libGUgdG8gYWRkIG5ldyBhY2NlbGVyYXRvcnMgdG8gdGhlIHdpZGdldC4KCiAgIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gIEV2ZW50cyBhbmQgc2lnbmFscyAtLQogICAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBFdmVudAogICAgIChXaWRnZXQg
OiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3M7CiAgICAgIEV2ZW50ICA6IEdkay5FdmVu
dC5HZGtfRXZlbnQpIHJldHVybiBHaW50OwogICAtLSAgRW1pdCBhIHNpZ25hbCBvbiB0aGUgd2lk
Z2V0LgogICAtLSAgVGhlIGV4YWN0IHNpZ25hbCBkZXBlbmRzIG9uIHRoZSBldmVudCB0eXBlIChp
LmUuIGlmIHRoZSB0eXBlIGlzCiAgIC0tICBHZGtfQnV0dG9uX1ByZXNzLCB0aGVuIGEgImJ1dHRv
bl9wcmVzcyIgc2lnbmFsIGlzIGVtaXR0ZWQpLgoKICAgcHJvY2VkdXJlIEFjdGl2YXRlIChXaWRn
ZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgRW1pdCBhbiBhY3RpdmF0ZSBz
aWduYWwgb24gdGhlIHdpZGdldC4KICAgLS0gIFRoZSBleGFjdCBzaWduYWwgZW1pdHRlZCBkZXBl
bmRzIG9uIHRoZSB3aWRnZXQgdHlwZSAoaS5lLiBmb3IgYQogICAtLSAgR3RrX0J1dHRvbiB0aGlz
IGVtaXRzIGEgImNsaWNrZWQiIHNpZ25hbCwgZm9yIGEgR3RrX0VkaXRhYmxlIHRoaXMgZW1pdHMK
ICAgLS0gIHRoZSAiYWN0aXZhdGUiIHNpZ25hbCwgLi4uKS4KCiAgIHByb2NlZHVyZSBHcmFiX0Zv
Y3VzIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgRW1pdCB0aGUg
ImdyYWJfZm9jdXMiIHNpZ25hbCBmb3IgdGhlIHdpZGdldC4KICAgLS0gIFRoaXMgaXMgc2VudCB3
aGVuIHRoZSB3aWRnZXQgZ2V0cyB0aGUgZm9jdXMuIEl0cyB2aXN1YWwgYXNwZWN0IG1pZ2h0CiAg
IC0tICBjaGFuZ2UuCiAgIC0tICBUaGUgIkNhbl9Gb2N1cyIgZmxhZyBtdXN0IGhhdmUgYmVlbiBz
ZXQgZmlyc3QuCgogICBwcm9jZWR1cmUgU2V0X0V2ZW50cwogICAgIChXaWRnZXQgOiBhY2Nlc3Mg
R3RrX1dpZGdldF9SZWNvcmQ7CiAgICAgIEV2ZW50cyA6IGluICAgICBHZGsuVHlwZXMuR2RrX0V2
ZW50X01hc2spOwogICAtLSAgU2V0cyB0aGUgZXZlbnQgbWFzayBmb3IgdGhlIHdpZGdldC4KICAg
LS0gIFdpZGdldCBzaG91bGQgbm90IGhhdmUgYmVlbiByZWFsaXplZCBiZWZvcmUsIG9yIG5vdGhp
bmcgaXMgZG9uZS4KICAgLS0gIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHlvdSBjYW4gZXhwbGljaXRs
eSBnZXQgbW91c2Ugb3Iga2V5Ym9hcmRzIGV2ZW50cyBvbgogICAtLSAgd2lkZ2V0cyB0aGF0IGRv
IG5vdCBhdXRvbWF0aWNhbGx5IGdldCB0aGVtLCBhcyBmb3IgaW5zdGFuY2UgaW4gYQogICAtLSAg
R3RrX0RyYXdpbmdfQXJlYS4KCiAgIGZ1bmN0aW9uIEdldF9FdmVudHMKICAgICAoV2lkZ2V0IDog
YWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKSByZXR1cm4gR2RrLlR5cGVzLkdka19FdmVudF9NYXNr
OwogICAtLSAgR2V0IHRoZSBldmVudCBtYXNrIGZvciB0aGUgd2lkZ2V0LgogICAtLSAgVGhpcyBp
bmRpY2F0ZXMgdGhlIGxpc3Qgb2YgZXZlbnRzIHRoYXQgdGhlIHdpZGdldCByZWNlaXZlcy4KCiAg
IHByb2NlZHVyZSBBZGRfRXZlbnRzCiAgICAgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1Jl
Y29yZDsKICAgICAgRXZlbnRzIDogaW4gICAgIEdkay5UeXBlcy5HZGtfRXZlbnRfTWFzayk7CiAg
IC0tICBBZGQgc29tZSBldmVudHMgdG8gdGhlIGN1cnJlbnQgZXZlbnQgbWFzayBvZiB0aGUgd2lk
Z2V0LgoKICAgcHJvY2VkdXJlIFNldF9FeHRlbnNpb25fRXZlbnRzCiAgICAgKFdpZGdldCA6IGFj
Y2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgTW9kZSAgIDogaW4gICAgIEdkay5UeXBlcy5H
ZGtfRXh0ZW5zaW9uX01vZGUpOwogICAtLSAgU2V0IHRoZSBleHRlbnNpb24gZXZlbnQgbWFzayBm
b3IgdGhlIHdpZGdldC4KICAgLS0gIFRoaXMgaXMgdXNlZCB0byBhY3RpdmF0ZSBzb21lIHNwZWNp
YWwgaW5wdXQgbW9kZXMgZm9yIG90aGVyIGRldmljZXMgdGhhbgogICAtLSAga2V5Ym9hcmQgYW5k
IG1vdXNlLgoKICAgZnVuY3Rpb24gR2V0X0V4dGVuc2lvbl9FdmVudHMKICAgICAoV2lkZ2V0IDog
YWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKSByZXR1cm4gR2RrLlR5cGVzLkdka19FeHRlbnNpb25f
TW9kZTsKICAgLS0gIFJldHVybiB0aGUgY3VycmVudCBleHRlbnNpb24gZXZlbnRzIG1hc2suCgog
ICBmdW5jdGlvbiBEZWZhdWx0X01vdGlvbl9Ob3RpZnlfRXZlbnQKICAgICAoV2lkZ2V0IDogYWNj
ZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAgICBFdmVudCAgOiBHZGsuRXZlbnQuR2Rr
X0V2ZW50KSByZXR1cm4gR2ludDsKICAgLS0gIEFjY2VzcyB0byB0aGUgc3RhbmRhcmQgZGVmYXVs
dCBjYWxsYmFjayBmb3IgbW90aW9uIGV2ZW50czoKICAgLS0gIFRoaXMgaXMgbWFpbmx5IHVzZWQg
Zm9yIHJ1bGVycyBpbiBHdGsuUnVsZXIgKFNlZSB0aGUgZXhhbXBsZSBpbgogICAtLSAgdGVzdGd0
aywgd2l0aCBjcmVhdGVfcnVsZXJzLmFkYikKCiAgIGZ1bmN0aW9uIEhhc19EZWZhdWx0X01vdGlv
bl9Ob3RpZnlfSGFuZGxlcgogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQn
Q2xhc3MpIHJldHVybiBCb29sZWFuOwogICAtLSAgUmV0dXJuIFRydWUgaWYgV2lkZ2V0IGhhcyBh
IGRlZmF1bHQgaGFuZGxlciBmb3IgbW90aW9uX25vdGlmeSBldmVudHMuCiAgIC0tICBOb3RlIHRo
YXQgdGhlIGZ1bmN0aW9uIERlZmF1bHRfTW90aW9uX05vdGlmeV9FdmVudCBzaG91bGQgbm90IGJl
IGNhbGxlZAogICAtLSAgaWYgdGhpcyBvbmUgcmV0dXJucyBGYWxzZSwgc2luY2UgaXQgd291bGQg
Y3JlYXRlIGEgc2VnbWVudGF0aW9uIGZhdWx0LgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KICAgLS0gQ29sb3JzIGFuZCBjb2xvcm1hcHMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KCiAgIGZ1bmN0aW9uIEdldF9Db2xvcm1hcAogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3Rr
X1dpZGdldF9SZWNvcmQpIHJldHVybiBHZGsuQ29sb3IuR2RrX0NvbG9ybWFwOwogICAtLSAgUmV0
dXJuIHRoZSBjb2xvcm1hcCB1c2VkIGZvciB0aGUgd2lkZ2V0LiBUaGlzIHdpbGwgZ2VuZXJhbGx5
IGJlIHRoZQogICAtLSAgc2FtZSBvbmUgZm9yIGFsbCB3aWRnZXRzLCBidXQgbWlnaHQgYmUgZGlm
ZmVyZW50IGlmIGZvciBpbnN0YW5jZSBhCiAgIC0tICBHdGtfRHJhd2luZ19BcmVhIG5lZWRzIHRv
IGRpc3BsYXkgc29tZSBkaWZmZXJlbnQgY29sb3JzIG9uIGEgc2NyZWVuCiAgIC0tICB0aGF0IG9u
bHkgaGFzIGEgbGltaXRlZCBhbW91bnQgb2YgY29sb3JzLgoKICAgZnVuY3Rpb24gR2V0X1Zpc3Vh
bAogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpIHJldHVybiBHZGsuVmlz
dWFsLkdka19WaXN1YWw7CiAgIC0tICBHZXQgdGhlIHZpc3VhbCB1c2VkIGZvciB0aGUgd2lkZ2V0
LgogICAtLSAgSS5lLiB0aGUgc3RydWN0dXJlIHRoYXQgaW5kaWNhdGVzIHRoZSBkZXB0aCBvZiB0
aGUgd2lkZ2V0IChudW1iZXIgb2YKICAgLS0gIGJpdHMgcGVyIHBpeGVsKSwgYW5kIHNvbWUgaW5m
b3JtYXRpb24gdXNlZCBpbnRlcm5hbGx5IGJ5IEd0a0FkYSB0bwogICAtLSAgaGFuZGxlIGNvbG9y
cyBhbmQgY29sb3JtYXBzLgoKICAgcHJvY2VkdXJlIFNldF9Db2xvcm1hcAogICAgIChXaWRnZXQg
OiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7CiAgICAgIENtYXAgOiBHZGsuQ29sb3IuR2RrX0Nv
bG9ybWFwKTsKICAgLS0gIE1vZGlmeSB0aGUgY29sb3JtYXAgb2YgdGhlIHdpZGdldC4KICAgLS0g
IFRoZSB3aWRnZXQgbXVzdCBub3QgaGF2ZSBiZWVuIHJlYWxpemVkLgoKICAgcHJvY2VkdXJlIFNl
dF9WaXN1YWwKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBW
aXN1YWwgOiBHZGsuVmlzdWFsLkdka19WaXN1YWwpOwogICAtLSAgTW9kaWZ5IHRoZSB2aXN1YWwg
b2YgdGhlIHdpZGdldC4KICAgLS0gIFRoZSB3aWRnZXQgbXVzdCBub3QgaGF2ZSBiZWVuIHJlYWxp
emVkLgoKICAgcHJvY2VkdXJlIFB1c2hfQ29sb3JtYXAgKENtYXAgOiBHZGsuQ29sb3IuR2RrX0Nv
bG9ybWFwKTsKICAgLS0gIE1vZGlmeSB0ZW1wb3JhcmlseSB0aGUgZGVmYXVsdCBjb2xvcm1hcCBz
ZXQgZm9yIG5ld2x5IGNyZWF0ZWQgd2lkZ2V0cy4KICAgLS0gIFlvdSBzaG91bGQgdXNlIHRoaXMg
aW4gcGFpciB3aXRoIFBvcF9Db2xvcm1hcCBiZWxvdyAoUHVzaCB0aGUgbmV3IHZhbHVlLAogICAt
LSAgY3JlYXRlIHRoZSB3aWRnZXQsIGFuZCBwb3AgdGhlIHZhbHVlKS4KCiAgIHByb2NlZHVyZSBQ
b3BfQ29sb3JtYXA7CiAgIC0tICBTZWUgUHVzaF9Db2xvcm1hcCBmb3IgbW9yZSBpbmZvcm1hdGlv
bi4KCiAgIHByb2NlZHVyZSBQdXNoX1Zpc3VhbCAoVmlzdWFsIDogR2RrLlZpc3VhbC5HZGtfVmlz
dWFsKTsKICAgLS0gIE1vZGlmeSB0ZW1wb3JhcmlseSB0aGUgZGVmYXVsdCB2aXN1YWwgc2V0IGZv
ciBuZXdseSBjcmVhdGVkIHdpZGdldHMuCiAgIC0tICBZb3Ugc2hvdWxkIHVzZSB0aGlzIGluIHBh
aXIgd2l0aCBQb3BfQ29sb3JtYXAgYmVsb3cgKFB1c2ggdGhlIG5ldyB2YWx1ZSwKICAgLS0gIGNy
ZWF0ZSB0aGUgd2lkZ2V0LCBhbmQgcG9wIHRoZSB2YWx1ZSkuCgogICBwcm9jZWR1cmUgUG9wX1Zp
c3VhbDsKICAgLS0gIFNlZSBQdXNoX1Zpc3VhbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiAgIGZ1
bmN0aW9uIEdldF9EZWZhdWx0X0NvbG9ybWFwIHJldHVybiBHZGsuQ29sb3IuR2RrX0NvbG9ybWFw
OwogICAtLSAgUmV0dXJuIHRoZSBkZWZhdWx0IGNvbG9ybWFwIHVzZWQgd2hlbiBhIHdpZGdldCBp
cyBjcmVhdGVkLgoKICAgcHJvY2VkdXJlIFNldF9EZWZhdWx0X0NvbG9ybWFwIChDbWFwIDogR2Rr
LkNvbG9yLkdka19Db2xvcm1hcCk7CiAgIC0tICBNb2RpZnkgcGVybWFuZW50bHkgdGhlIGRlZmF1
bHQgY29sb3JtYXAgdXNlZCB3aGVuIGEgd2lkZ2V0IGlzIGNyZWF0ZWQuCiAgIC0tICBJZiB5b3Ug
b25seSB3YW50IHRvIG1vZGlmeSB0aGlzIGNvbG9ybWFwIHRlbXBvcmFyaWx5IGZvciBhIGZldyB3
aWRnZXRzLAogICAtLSAgeW91IHNob3VsZCBjb25zaWRlciB1c2luZyBQdXNoX0NvbG9ybWFwIGFu
ZCBQb3BfQ29sb3JtYXAgaW5zdGVhZC4KCiAgIGZ1bmN0aW9uIEdldF9EZWZhdWx0X1Zpc3VhbCBy
ZXR1cm4gR2RrLlZpc3VhbC5HZGtfVmlzdWFsOwogICAtLSAgUmV0dXJuIHRoZSBkZWZhdWx0IHZp
c3VhbCB1c2VkIHdoZW4gYSBuZXcgd2lkZ2V0IGlzIGNyZWF0ZWQuCgogICBwcm9jZWR1cmUgU2V0
X0RlZmF1bHRfVmlzdWFsIChWaXN1YWwgOiBHZGsuVmlzdWFsLkdka19WaXN1YWwpOwogICAtLSAg
TW9kaWZ5IHBlcm1hbmVudGx5IHRoZSBkZWZhdWx0IHZpc3VhbCB1c2VkIHdoZW4gYSB3aWRnZXQg
aXMgY3JlYXRlZC4KICAgLS0gIElmIHlvdSBvbmx5IHdhbnQgdG8gbW9kaWZ5IHRoaXMgdmlzdWFs
IHRlbXBvcmFyaWx5IGZvciBhIGZldyB3aWRnZXRzLAogICAtLSAgeW91IHNob3VsZCBjb25zaWRl
ciB1c2luZyBQdXNoX1Zpc3VhbCBhbmQgUG9wX1Zpc3VhbCBpbnN0ZWFkLgoKICAgLS0tLS0tLS0t
LS0tCiAgIC0tIFN0eWxlcyAtLQogICAtLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBQdXNoX1N0
eWxlIChTdHlsZSA6IEd0ay5TdHlsZS5HdGtfU3R5bGUpOwogICAtLSAgQ2hhbmdlIHRoZSBkZWZh
dWx0IHZhbHVlcyBmb3Igc3R5bGVzLgogICAtLSAgVGhpcyBpcyBnZW5lcmFsbHkgdXNlZCBqdXN0
IGJlZm9yZSBjcmVhdGluZyBhIHdpZGdldC4gWW91IHNob3VsZCB1c2UKICAgLS0gIHRoaXMgcHJv
Y2VkdXJlIGluIHBhaXIgd2l0aCBQb3BfU3R5bGUgKFB1c2ggdGhlIG5ldyB2YWx1ZSwgY3JlYXRl
IHRoZQogICAtLSAgd2lkZ2V0IHRoZW4gcG9wIHRoZSB2YWx1ZSkKCiAgIHByb2NlZHVyZSBQb3Bf
U3R5bGU7CiAgIC0tICBSZXN0b3JlIHRoZSBkZWZhdWx0IHZhbHVlcyBmb3Igc3R5bGVzLgogICAt
LSAgVGhpcyBpcyBnZW5lcmFsbHkgdXNlZCBqdXN0IGFmdGVyIGNyZWF0aW5nIGEgd2lkZ2V0LiBZ
b3Ugc2hvdWxkIHVzZQogICAtLSAgdGhpcyBwcm9jZWR1cmUgaW4gcGFpciB3aXRoIFB1c2hfU3R5
bGUgKFB1c2ggdGhlIG5ldyB2YWx1ZSwgY3JlYXRlIHRoZQogICAtLSAgd2lkZ2V0IHRoZW4gcG9w
IHRoZSB2YWx1ZSkKCiAgIHByb2NlZHVyZSBTZXRfU3R5bGUKICAgICAoV2lkZ2V0IDogYWNjZXNz
IEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBTdHlsZSAgOiBHdGsuU3R5bGUuR3RrX1N0eWxlKTsK
ICAgLS0gIFNldCB0aGUgc3R5bGUgZm9yIGEgZ2l2ZW4gd2lkZ2V0LgoKICAgZnVuY3Rpb24gR2V0
X1N0eWxlIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpCiAgICAgcmV0dXJuIEd0
ay5TdHlsZS5HdGtfU3R5bGU7CiAgIC0tICBSZXR1cm4gdGhlIHN0eWxlIG9mIGEgZ2l2ZW4gd2lk
Z2V0LgoKICAgcHJvY2VkdXJlIE1vZGlmeV9TdHlsZQogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3Rr
X1dpZGdldF9SZWNvcmQ7CiAgICAgIFN0eWxlICA6IEd0a19SY19TdHlsZSk7CiAgIC0tICBNb2Rp
ZnkgdGhlIGRlZmF1bHQgc3R5bGUgb2YgYSB3aWRnZXQuCgogICBwcm9jZWR1cmUgU2V0X0RlZmF1
bHRfU3R5bGUgKFN0eWxlIDogR3RrLlN0eWxlLkd0a19TdHlsZSk7CiAgIC0tICBTZXQgdGhlIGRl
ZmF1bHQgZ2xvYmFsIHN0eWxlLgoKICAgZnVuY3Rpb24gR2V0X0RlZmF1bHRfU3R5bGUgcmV0dXJu
IEd0ay5TdHlsZS5HdGtfU3R5bGU7CiAgIC0tICBHZXQgdGhlIGRlZmF1bHQgZ2xvYmFsIHN0eWxl
LgoKICAgcHJvY2VkdXJlIFNldF9SY19TdHlsZSAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRf
UmVjb3JkKTsKICAgLS0gIFJlc3RvcmUgdGhlIGRlZmF1bHQgc3R5bGUgb2YgYSB3aWRnZXQuCiAg
IC0tICBUaGUgZGVmYXVsdCBzdHlsZSBpcyBnaXZlbiBieSB0aGUgY29uZmlndXJhdGlvbiBmaWxl
IGluaXRpYWxseSBwYXJzZWQKICAgLS0gIGJ5IEd0a0FkYS4KCiAgIHByb2NlZHVyZSBFbnN1cmVf
U3R5bGUgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCk7CiAgIC0tICBNYWtlIHN1
cmUgdGhhdCB0aGUgd2lkZ2V0IGhhcyBhIHN0eWxlIGFzc29jaWF0ZWQgdG8gaXQuCiAgIC0tICBF
aXRoZXIgdGhlIGRlZmF1bHQgb25lIGFzIHNldCBieSBTZXRfUmNfU3R5bGUgYWJvdmUgb3Igb25l
IHNldCBieSB0aGUKICAgLS0gIHVzZXIgd2l0aCBTZXRfU3R5bGUuCgogICBwcm9jZWR1cmUgUmVz
dG9yZV9EZWZhdWx0X1N0eWxlIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwog
ICAtLSAgUmVzdG9yZSB0aGUgZGVmYXVsdCBzdHlsZSB0aGF0IHdhcyBzZXQgZm9yIHRoZSB3aWRn
ZXQuCiAgIC0tICBUaGUgZGVmYXVsdCBzdHlsZSBpcyB0aGUgZmlyc3Qgb25lIHRoYXQgd2FzIHNl
dCBlaXRoZXIgYnkgYSBjYWxsCiAgIC0tICB0byBTZXRfU3R5bGUgb3IgU2V0X1JjX1N0eWxlLgoK
ICAgcHJvY2VkdXJlIFJlc2V0X1JjX1N0eWxlcyAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRf
UmVjb3JkKTsKICAgLS0gIFJlc3RvcmUgdGhlIFJjIHN0eWxlIHJlY3Vyc2l2ZWx5IGZvciB3aWRn
ZXQgYW5kIGl0cyBjaGlsZHJlbi4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gV2lkZ2V0
cycgdHJlZSAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X05hbWUK
ICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBOYW1lICAgOiBp
biBTdHJpbmcpOwogICAtLSAgU2V0IHRoZSBuYW1lIGZvciB0aGUgd2lkZ2V0LgogICAtLSAgVGhp
cyBuYW1lIGlzIHVzZWQgcHVyZWx5IGludGVybmFsbHkgdG8gaWRlbnRpZnkgdGhlIHdpZGdldCwg
YW5kIGRvZXMgbm90CiAgIC0tICBnaXZlIGFueSB2aXN1YWwgY2x1ZS4KCiAgIGZ1bmN0aW9uIEdl
dF9OYW1lIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpIHJldHVybiBTdHJpbmc7
CiAgIC0tICBSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIHdpZGdldCBpZiBpdCB3YXMgc2V0IGJ5IFNl
dF9OYW1lLgogICAtLSAgUmV0dXJuIHRoZSBuYW1lIG9mIGl0cyBjbGFzcyBvdGhlcndpc2UuCgog
ICBwcm9jZWR1cmUgU2V0X1BhcmVudAogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9S
ZWNvcmQ7CiAgICAgIFBhcmVudCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCdDbGFzcyk7CiAg
IC0tICBNb2RpZnkgdGhlIHBhcmVudCBmb3IgdGhlIHdpZGdldC4KICAgLS0gIFRoaXMgaXMgbm90
IHRoZSByZWNvbW1lbmRlZCB3YXkgdG8gZG8gdGhpcywgeW91IHNob3VsZCB1c2UKICAgLS0gIEd0
ay5Db250YWluZXIuQWRkIG9yIEd0ay5Cb3guUGFja19TdGFydCBpbnN0ZWFkLgoKICAgcHJvY2Vk
dXJlIFNldF9QYXJlbnRfV2luZG93CiAgICAgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1Jl
Y29yZDsKICAgICAgV2luZG93IDogR2RrLldpbmRvdy5HZGtfV2luZG93KTsKICAgLS0gIFNldCB0
aGUgcGFyZW50IHdpbmRvdyBmb3IgdGhlIGFjdHVhbCBHZGtfV2luZG93IG9mIHRoZSB3aWRnZXQu
IFRoaXMgc2V0cwogICAtLSAgdXAgcmVxdWlyZWQgaW50ZXJuYWwgZmllbGRzLCBhbmQgc2hvdWxk
IGJlIHVzZWQgb25seSB3aGVuIHlvdSBpbXBsZW1lbnQKICAgLS0gIHlvdXIgb3duIGNvbnRhaW5l
ciwgYXMgb3Bwb3NlZCB0byB1c2luZyBvbmUgb2YgdGhlIHN0YW5kYXJkIGNvbnRhaW5lcnMuCgog
ICBmdW5jdGlvbiBHZXRfUGFyZW50IChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQp
IHJldHVybiBHdGtfV2lkZ2V0OwogICAtLSAgUmV0dXJuIHRoZSBwYXJlbnQgb2YgdGhlIHdpZGdl
dCwgb3IgbnVsbCBpZiBXaWRnZXQgaXMgYSB0b3BsZXZlbAogICAtLSAgd2lkZ2V0LgoKICAgZnVu
Y3Rpb24gR2V0X1RvcGxldmVsIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpIHJl
dHVybiBHdGtfV2lkZ2V0OwogICAtLSAgUmV0dXJuIHRoZSB0b3BsZXZlbCBhbmNlc3RvciBvZiB0
aGUgd2lkZ2V0LgogICAtLSAgVGhpcyBpcyB0aGUgd2luZG93IG9yIGRpYWxvZyBpbiB3aGljaCB0
aGUgd2lkZ2V0IGlzIGluY2x1ZGVkLgogICAtLSAgVGhlIHdpZGdldCByZXR1cm5lZCBkb2VzIG5v
dCBoYXZlIGFueSBwYXJlbnQuCgogICBmdW5jdGlvbiBHZXRfQW5jZXN0b3IKICAgICAoV2lkZ2V0
ICAgICAgICA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgQW5jZXN0b3JfVHlwZSA6
IGluIEd0a19UeXBlKSByZXR1cm4gR3RrX1dpZGdldDsKICAgLS0gIFJldHVybiB0aGUgY2xvc2Vz
dCBhbmNlc3RvciBvZiBXaWRnZXQgd2hpY2ggaXMgb2YgdHlwZSBBbmNlc3Rvcl9UeXBlLgogICAt
LSAgUmV0dXJuIG51bGwgaWYgdGhlcmUgaXMgbm9uZS4KCiAgIGZ1bmN0aW9uIElzX0FuY2VzdG9y
CiAgICAgKFdpZGdldCAgIDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBBbmNlc3Rv
ciA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCdDbGFzcykgcmV0dXJuIEJvb2xlYW47CiAgIC0t
ICBSZXR1cm4gVHJ1ZSBpZiBBbmNlc3RvciBpcyBpbiB0aGUgYW5jZXN0b3IgdHJlZSBmb3IgV2lk
Z2V0LgogICAtLSAgSS5lLiBpZiBXaWRnZXQgaXMgY29udGFpbmVkIHdpdGhpbiBBbmNlc3Rvci4K
CiAgIHByb2NlZHVyZSBSZXBhcmVudAogICAgIChXaWRnZXQgICAgIDogYWNjZXNzIEd0a19XaWRn
ZXRfUmVjb3JkOwogICAgICBOZXdfUGFyZW50IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0Ns
YXNzKTsKICAgLS0gIENoYW5nZSB0aGUgcGFyZW50IG9mIHRoZSB3aWRnZXQgZHluYW1pY2FsbHku
CiAgIC0tICBJZiBib3RoIHRoZSBuZXcgcGFyZW50IGFuZCB0aGUgd2lkZ2V0IGFyZSBzaG93biwg
dGhlbiB0aGUgd2lkZ2V0IGlzCiAgIC0tICB2aXN1YWxseSByZWRyYXduIGluIGl0cyBuZXcgcGFy
ZW50LgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gTWlzYyBmdW5jdGlvbnMgLS0KICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfU2Nyb2xsX0FkanVzdG1lbnRz
CiAgICAgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgSGFkaiAgIDog
R3RrLkFkanVzdG1lbnQuR3RrX0FkanVzdG1lbnQ7CiAgICAgIFZhZGogICA6IEd0ay5BZGp1c3Rt
ZW50Lkd0a19BZGp1c3RtZW50KTsKICAgLS0gIEVtaXQgdGhlICJzZXRfc2Nyb2xsX2FkanVzdG1l
bnRzIiBzaWduYWwuCiAgIC0tICBUaGUgZXhhY3Qgc2lnbmFsIGVtaXR0ZWQgZGVwZW5kcyBvbiB0
aGUgd2lkZ2V0IHR5cGUgKHNlZQogICAtLSAgR3RrLk9iamVjdC5Jbml0aWFsaXplX0NsYXNzX1Jl
Y29yZCkuCiAgIC0tICBUaGUgaGFuZGxlciBjcmVhdGVzIHRoZSBhZGp1c3RtZW50cyBpZiBudWxs
IGlzIHBhc3NlZCBhcyBhcmd1bWVudCwgYW5kCiAgIC0tICBtYWtlcyBzdXJlIGJvdGggYWRqdXN0
bWVudHMgYXJlIGluIHRoZSBjb3JyZWN0IHJhbmdlLgoKICAgcHJvY2VkdXJlIFBvcHVwIChXaWRn
ZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7IFgsIFkgOiBpbiBHaW50KTsKICAgLS0gIFJl
YWxpemUgdGhlIHdpZGdldCAoc2VlIFJlYWxpemUgYWJvdmUpLCBtb3ZlcyBpdCB0byB0aGUgc2Ny
ZWVuIHBvc2l0aW9uCiAgIC0tICAoWCwgWSksIGFuZCBzaG93cyB0aGUgd2lkZ2V0LgogICAtLSAg
VGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGZvciB0b3BsZXZlbCB3aW5kb3dzIGFuZCBkaWFsb2dz
LCBhcyB5b3UgY2FuCiAgIC0tICBubyBtb2RpZnkgdGhlIHBvc2l0aW9uIG9mIGEgd2lkZ2V0IHRo
YXQgaGFzIGEgcGFyZW50ICh0aGUgcGFyZW50IGlzCiAgIC0tICB0aGVuIHJlc3BvbnNpYmxlIGZv
ciBpdHMgcG9zaXRpb24pLgoKICAgZnVuY3Rpb24gSW50ZXJzZWN0CiAgICAgKFdpZGdldCAgICAg
ICA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgQXJlYSAgICAgICAgIDogR2RrLlJl
Y3RhbmdsZS5HZGtfUmVjdGFuZ2xlOwogICAgICBJbnRlcnNlY3Rpb24gOiBhY2Nlc3MgR2RrLlJl
Y3RhbmdsZS5HZGtfUmVjdGFuZ2xlKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFJldHVybiBUcnVl
IGlmIHRoZSB3aWRnZXQgaW50ZXJzZWN0cyB0aGUgc2NyZWVuIGFyZWEgQXJlYS4KICAgLS0gIFRo
ZSBpbnRlcnNlY3Rpb24gYXJlYSBpcyByZXR1cm5lZCBpbiBJbnRlcnNlY3Rpb24uCgogICBwcm9j
ZWR1cmUgR3JhYl9EZWZhdWx0IChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwog
ICAtLSAgVGhlIHdpZGdldCBiZWNvbWVzIHRoZSBkZWZhdWx0IHdpZGdldCBmb3IgaXRzIHBhcmVu
dCB3aW5kb3cgb3IgZGlhbG9nLgogICAtLSAgQWxsIGtleWJvYXJkIGV2ZW50cyB3aWxsIGJlIHNl
bnQgdG8gaXQgaWYgbm8gb3RoZXIgd2lkZ2V0IGhhcyB0aGUgZm9jdXMuCiAgIC0tICBOb3RlIHRo
YXQgdGhlICJDYW5fRGVmYXVsdCIgZmxhZyBtdXN0IGhhdmUgYmVlbiBzZXQgZmlyc3Qgb24gV0lE
R0VULgoKICAgcHJvY2VkdXJlIFNldF9TdGF0ZQogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dp
ZGdldF9SZWNvcmQ7CiAgICAgIFN0YXRlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpOwogICAt
LSAgTW9kaWZ5IHRoZSBzdGF0ZSBvZiB0aGUgd2lkZ2V0LgogICAtLSAgVGhpcyBtb2RpZmllcyBp
dHMgdmlzdWFsIGFzcGVjdCwgYW5kIHRodXMgc2hvdWxkIGJlIHVzZWQgb25seSBpZiB5b3UKICAg
LS0gIGNoYW5nZSBpdHMgYmVoYXZpb3IgYXQgdGhlIHNhbWUgdGltZSwgc28gYXMgbm90IHRvIGNv
bmZ1c2UgdGhlIHVzZXIuCgogICBmdW5jdGlvbiBHZXRfU3RhdGUKICAgICAoV2lkZ2V0IDogYWNj
ZXNzIEd0a19XaWRnZXRfUmVjb3JkKSByZXR1cm4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgIC0t
ICBSZXR1cm4gdGhlIHN0YXRlIG9mIHRoZSB3aWRnZXQuCgogICBwcm9jZWR1cmUgU2V0X1NlbnNp
dGl2ZQogICAgIChXaWRnZXQgICAgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7CiAgICAgIFNl
bnNpdGl2ZSA6IGluIEJvb2xlYW4gOj0gVHJ1ZSk7CiAgIC0tICBNb2RpZnkgdGhlIHNlbnNpdGl2
aXR5IG9mIHRoZSB3aWRnZXQuCiAgIC0tICBBbiBpbnNlbnNpdGl2ZSB3aWRnZXQgaXMgZ2VuZXJh
bGx5IGdyYXllZCBvdXQsIGFuZCBjYW4gbm90IGJlIGFjdGl2YXRlZC4KICAgLS0gIEZvciBpbnN0
YW5jZSwgYW4gaW5zZW5zaXRpdmUgbWVudSBpdGVtIGlzIGdyYXllZCwgYW5kIGNhbiBuZXZlciBi
ZQogICAtLSAgc2VsZWN0ZWQuCgogICBwcm9jZWR1cmUgU2V0X0FwcF9QYWludGFibGUKICAgICAo
V2lkZ2V0ICAgICAgICA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgQXBwX1BhaW50
YWJsZSA6IEJvb2xlYW4pOwogICAtLSAgTW9kaWZ5IHRoZSAiQXBwX1BhaW50YWJsZSIgZmxhZyBm
b3IgdGhlIHdpZGdldC4KCiAgIHByb2NlZHVyZSBHZXRfUG9pbnRlcgogICAgIChXaWRnZXQgOiBh
Y2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7CiAgICAgIFggICAgICA6IG91dCBHaW50OwogICAgICBZ
ICAgICAgOiBvdXQgR2ludCk7CiAgIC0tICBSZXR1cm4gdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBw
b2ludGVyIChpLmUuIG1vdXNlKSByZWxhdGl2ZSB0byBXaWRnZXQuCgogICBwcm9jZWR1cmUgU2V0
X1dpbmRvdwogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7CiAgICAgIFdp
bmRvdyA6IGluIEdkay5XaW5kb3cuR2RrX1dpbmRvdyk7CiAgIC0tICBTZXQgdGhlIEdkayB3aW5k
b3cgYXNzb2NpYXRlZCB3aXRoIHRoZSB3aWRnZXQuCgogICBmdW5jdGlvbiBHZXRfV2luZG93CiAg
ICAgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCkgcmV0dXJuIEdkay5XaW5kb3cu
R2RrX1dpbmRvdzsKICAgLS0gIEdldCB0aGUgR2RrIHdpbmRvdyBhc3NvY2lhdGVkIHdpdGggdGhl
IHdpZGdldC4KICAgLS0gIFlvdSBjYW4gdXNlIHRoaXMgd2luZG93IGlmIHlvdSBuZWVkIHRvIGRy
YXcgZGlyZWN0bHkgb24gdGhlIHdpZGdldCB1c2luZwogICAtLSAgdGhlIGZ1bmN0aW9ucyBmb3Vu
ZCBpbiB0aGUgR2RrIGhpZXJhcmNoeS4KCiAgIHByb2NlZHVyZSBTaGFwZV9Db21iaW5lX01hc2sK
ICAgICAoV2lkZ2V0ICAgICA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgU2hhcGVf
TWFzayA6IEdkay5CaXRtYXAuR2RrX0JpdG1hcDsKICAgICAgT2Zmc2V0X1ggICA6IEdpbnQ7CiAg
ICAgIE9mZnNldF9ZICAgOiBHaW50KTsKICAgLS0gIE1vZGlmeSB0aGUgc2hhcGUgb2YgdGhlIHdp
bmRvdyB0aGF0IGNvbnRhaW5zIHRoZSB3aWRnZXQuCiAgIC0tICBUaGlzIGFsbG93cyBmb3IgdHJh
bnNwYXJlbnQgd2luZG93cywgYW5kIHJlcXVpcmVzIHRoZSBYZXh0IGxpYnJhcnkgdG8gYmUKICAg
LS0gIGF2YWlsYWJsZSBvbiB5b3VyIHN5c3RlbS4gSWYgdGhpcyBsaWJyYXJ5IGlzIG5vdCBhdmFp
bGFibGUsIHlvdXIgcHJvZ3JhbQogICAtLSAgd2lsbCBzdGlsbCB3b3JrLgogICAtLSAgU2VlIHRo
ZSBtYW51YWwgcGFnZSBmb3IgWFNoYXBlQ29tYmluZU1hc2soM3gpIGZvciBtb3JlIGluZm9ybWF0
aW9uLgoKICAgLS0tLS0tLS0tLS0KICAgLS0gRmxhZ3MgLS0KICAgLS0tLS0tLS0tLS0KICAgLS0g
IFNvbWUgYWRkaXRpb25hbCBmbGFncyBhcmUgZGVmaW5lZCBmb3IgYWxsIHRoZSB2aXN1YWwgb2Jq
ZWN0cyAod2lkZ2V0cykuCiAgIC0tICBUaGV5IGFyZSBkZWZpbmVkIGluIGFkZGl0aW9uIHRvIHRo
ZSBvbmVzIGRlZmluZWQgaW4gR3RrLk9iamVjdC4KICAgLS0gIFRoZXNlIGZsYWdzIGFyZSBpbXBv
cnRhbnQgaW4gdGhhdCB0aGV5IGRlZmluZSBleGFjdGx5IHRoZSBkaWZmZXJlbnQKICAgLS0gIHN0
YXRlcyBhIHdpZGdldCBjYW4gYmUgaW4uCiAgIC0tCiAgIC0tICAtICJUb3BsZXZlbCI6CiAgIC0t
ICAgIFNldCBpZiB0aGUgd2lkZ2V0IGlzIGEgdG9wbGV2ZWwgd2lkZ2V0LCBpZSBoYXMgbm8gcGFy
ZW50LiBUaGlzIGlzCiAgIC0tICAgIG1vc3RseSB0cnVlIGZvciB3aW5kb3dzIGFuZCBkaWFsb2dz
LgogICAtLQogICAtLSAgLSAiTm9fV2luZG93IjoKICAgLS0gICAgU2V0IGlmIHRoZSB3aWRnZXQg
ZG9lcyBub3QgaGF2ZSBhbiBhc3NvY2lhdGVkIFgxMSB3aW5kb3csIGllIGNhbiBub3QKICAgLS0g
ICAgcmVjZWl2ZSBldmVudHMgZGlyZWN0bHkuIEZvciBpbnN0YW5jZSwgYSBHdGtfVG9vbGJhciBk
b2VzIG5vdCBoYXZlCiAgIC0tICAgIGFuIGFzc29jaWF0ZWQgd2luZG93LiBUaGVzZSBvYmplY3Rz
IGFyZSBtb3JlIGxpZ2h0d2VpZ2h0LCBidXQgcmVxdWlyZQogICAtLSAgICBtb3JlIHdvcmsgZnJv
bSBHdGtBZGEuIFRoaXMgZmxhZyBpcyBvbmx5IHNldCBpZiB0aGUgd2lkZ2V0IHdpbGwgbmV2ZXIK
ICAgLS0gICAgaGF2ZSBhIHdpbmRvdywgZXZlbiBhZnRlciBpdCBpcyByZWFsaXplZC4KICAgLS0K
ICAgLS0gIC0gIlJlYWxpemVkIjoKICAgLS0gICAgU2V0IGlmIHRoZSB3aWRnZXQgaGFzIGJlZW4g
cmVhbGl6ZWQsIGllIGl0cyBhc3NvY2lhdGVkIFgxMSB3aW5kb3cgaGFzCiAgIC0tICAgIGJlZW4g
Y3JlYXRlZCAocHJvdmlkaW5nIHRoZSB3aWRnZXQgZXhjZXB0cyBhIHdpbmRvdywgc2VlIHRoZSBO
b19XaW5kb3cKICAgLS0gICAgZmxhZwogICAtLQogICAtLSAgLSAiTWFwcGVkIjoKICAgLS0gICAg
U2V0IGlmIHRoZSB3aWRnZXQgaXMgdmlzaWJsZSBvbiB0aGUgc2NyZWVuLiBUaGlzIGlzIG9ubHkg
cG9zc2libGUgaWYKICAgLS0gICAgdGhlIFZpc2libGUgZmxhZyBpcyBhbHNvIHNldC4KICAgLS0K
ICAgLS0gIC0gIlZpc2libGUiOgogICAtLSAgICBTZXQgaWYgdGhlIHdpZGdldCB3aWxsIGJlIGRp
c3BsYXllZCBvbiB0aGUgc2NyZWVuIHdoZW4gbWFwcGVkIChzZWUgdGhlCiAgIC0tICAgIGZ1bmN0
aW9ucyBTaG93IGFuZCBIaWRlIGluIHRoaXMgcGFja2FnZSkuCiAgIC0tCiAgIC0tICAtICJTZW5z
aXRpdmUiOgogICAtLSAgICBTZXQgaWYgdGhlIHdpZGdldCBpcyBsaXN0ZW5pbmcgdG8gZXZlbnRz
LiBTZWUgdGhlIGZ1bmN0aW9uCiAgIC0tICAgIFNldF9TZW5zaXRpdmUgaW4gdGhpcyBwYWNrYWdl
LiBBbiBpbnNlbnNpdGl2ZSB3aWRnZXQgd2lsbCBnZW5lcmFsbHkKICAgLS0gICAgaGF2ZSBhIGRp
ZmZlcmVudCB2aXN1YWwgYXNwZWN0IHRvIGNsdWUgdGhhdCBpdCBpcyB1bmF2YWlsYWJsZSAoZm9y
CiAgIC0tICAgIGluc3RhbmNlIGFuIGluc2Vuc2l0aXZlIGl0ZW0gbWVudSB3aWxsIGJlIGdyYXll
ZCkKICAgLS0KICAgLS0gIC0gIlBhcmVudF9TZW5zaXRpdmUiOgogICAtLSAgICBTZXQgaWYgdGhl
IHBhcmVudCBpcyBzZW5zaXRpdmUuIEEgd2lkZ2V0IGlzIHNlbnNpdGl2ZSBvbmx5IGlmIGJvdGgK
ICAgLS0gICAgdGhlIFNlbnNpdGl2ZSBhbmQgUGFyZW50X1NlbnNpdGl2ZSBhcmUgc2V0LgogICAt
LQogICAtLSAgLSAiQ2FuX0ZvY3VzIjoKICAgLS0gICAgU2V0IGlmIHRoZSB3aWRnZXQgY2FuIGhh
dmUgdGhlIGZvY3VzLCBpZSBnZXQga2V5Ym9hcmQgZXZlbnRzLiBNb3N0CiAgIC0tICAgIHdpZGdl
dHMgY2FuIG5vdCBoYXZlIHRoZSBmb2N1cy4KICAgLS0KICAgLS0gIC0gIkhhc19Gb2N1cyI6CiAg
IC0tICAgIFNldCBpZiB0aGUgd2lkZ2V0IGN1cnJlbnRseSBoYXMgdGhlIGZvY3VzLiBTZWUgdGhl
IGZ1bmN0aW9uIEdyYWJfRm9jdXMKICAgLS0gICAgaW4gdGhpcyBwYWNrYWdlLgogICAtLQogICAt
LSAgLSAiQ2FuX0RlZmF1bHQiOgogICAtLSAgICBTZXQgaWYgdGhlIHdpZGdldCBjYW4gYmUgdGhl
IGRlZmF1bHQgd2lkZ2V0IGluIGEgd2luZG93LCBpZSB0aGUgb25lCiAgIC0tICAgIHRoYXQgd2ls
bCBnZXQgdGhlIGtleWJvYXJkIGV2ZW50cyBieSBkZWZhdWx0LiBGb3IgaW5zdGFuY2UsIHRoZQog
ICAtLSAgICBkZWZhdWx0IGJ1dHRvbiBpbiBhIGRpYWxvZyBpcyB0aGUgb25lIHRoYXQgZ2V0cyBj
bGlja2VkIG9uIHdoZW4gdGhlCiAgIC0tICAgIHVzZXIgcHJlc3NlZCBFbnRlciBhbnl3aGVyZSBp
biB0aGUgZGlhbG9nLgogICAtLQogICAtLSAgLSAiSGFzX0RlZmF1bHQiOgogICAtLSAgICBTZXQg
aWYgdGhlIHdpZGdldCBpcyBjdXJyZW50bHkgdGhlIGRlZmF1bHQgd2lkZ2V0LiBTZWUgdGhlIGZ1
bmN0aW9uCiAgIC0tICAgIEdyYWJfRGVmYXVsdCBpbiB0aGlzIHBhY2thZ2UuCiAgIC0tCiAgIC0t
ICAtICJIYXNfR3JhYiI6CiAgIC0tICAgIFNldCBpZiB0aGUgd2lkZ2V0IGN1cnJlbnRseSBncmFi
cyBhbGwgbW91c2UgYW5kIGtleWJvYXJkIGV2ZW50cyBpbgogICAtLSAgICB0aGUgYXBwbGljYXRp
b24sIGV2ZW4gaWYgaXQgZG9lcyBub3QgaGF2ZSB0aGUgZm9jdXMuIFRoZXJlIGNhbiBiZSBvbmx5
CiAgIC0tICAgIHN1Y2ggd2lkZ2V0IHBlciBhcHBsaWNhdGlvbiBhdCBhbnkgZ2l2ZW4gdGltZS4K
ICAgLS0KICAgLS0gIC0gIlJjX1N0eWxlIjoKICAgLS0gICAgU2V0IGlmIHRoZSB3aWRnZXQncyBz
dHlsZSBpcyBlaXRoZXIgdGhlIGRlZmF1bHQgc3R5bGUsIG9yIGluIGEKICAgLS0gICAgY3VzdG9t
aXphdGlvbiBmaWxlLiBUaGlzIGlzIHVuc2V0IGlmIHRoZSBzdHlsZSBoYXMgYmVlbiBtb2RpZmll
ZCBieQogICAtLSAgICB0aGUgdXNlci4KICAgLS0KICAgLS0gIC0gIkNvbXBvc2l0ZV9DaGlsZCI6
CiAgIC0tICAgID8/PwogICAtLQogICAtLSAgLSAiTm9fUmVwYXJlbnQiOgogICAtLSAgICBUaGlz
IGZsYWdzIGlzIG5ldmVyIHVzZWQgaW4gZ3RrKy4KICAgLS0KICAgLS0gIC0gIkFwcF9QYWludGFi
bGUiOgogICAtLSAgICBGb3Igc29tZSBjb250YWluZXJzIChpbmNsdWRpbmcgR3RrX1dpbmRvdyBh
bmQgR3RrX0xheW91dCksIHRoaXMgaXMKICAgLS0gICAgdW5zZXQgd2hlbiB0aGUgY29udGFpbmVy
IGl0c2VsZiBoYXMgc29tZSBzcGVjaWFsIGRyYXdpbmcgcm91dGluZXMuCiAgIC0tCiAgIC0tICAt
ICJSZWNlaXZlc19EZWZhdWx0IjoKICAgLS0gICAgU2V0IHdoZW4gdGhlIHdpZGdldCByZWNlaXZl
cyB0aGUgZGVmYXVsdCBhdCB0aGUgdGltZSBpdCByZWNlaXZlcyB0aGUKICAgLS0gICAgZm9jdXMu
IFRoaXMgaXMgaG93IHRoZSBkZWZhdWx0IGJ1dHRvbiBpbiBhIGRpYWxvZyBpcyBhdXRvbWF0aWNh
bGx5CiAgIC0tICAgIGNoYW5nZWQgd2hlbiB5b3UgcHJlc3MgYW5vdGhlciBidXR0b24uCgogICBU
b3BsZXZlbCAgICAgICAgIDogY29uc3RhbnQgOj0gMiAqKiA0OwogICBOb19XaW5kb3cgICAgICAg
IDogY29uc3RhbnQgOj0gMiAqKiA1OwogICBSZWFsaXplZCAgICAgICAgIDogY29uc3RhbnQgOj0g
MiAqKiA2OwogICBNYXBwZWQgICAgICAgICAgIDogY29uc3RhbnQgOj0gMiAqKiA3OwogICBWaXNp
YmxlICAgICAgICAgIDogY29uc3RhbnQgOj0gMiAqKiA4OwogICBTZW5zaXRpdmUgICAgICAgIDog
Y29uc3RhbnQgOj0gMiAqKiA5OwogICBQYXJlbnRfU2Vuc2l0aXZlIDogY29uc3RhbnQgOj0gMiAq
KiAxMDsKICAgQ2FuX0ZvY3VzICAgICAgICA6IGNvbnN0YW50IDo9IDIgKiogMTE7CiAgIEhhc19G
b2N1cyAgICAgICAgOiBjb25zdGFudCA6PSAyICoqIDEyOwogICBDYW5fRGVmYXVsdCAgICAgIDog
Y29uc3RhbnQgOj0gMiAqKiAxMzsKICAgSGFzX0RlZmF1bHQgICAgICA6IGNvbnN0YW50IDo9IDIg
KiogMTQ7CiAgIEhhc19HcmFiICAgICAgICAgOiBjb25zdGFudCA6PSAyICoqIDE1OwogICBSY19T
dHlsZSAgICAgICAgIDogY29uc3RhbnQgOj0gMiAqKiAxNjsKICAgQ29tcG9zaXRlX0NoaWxkICA6
IGNvbnN0YW50IDo9IDIgKiogMTc7CiAgIE5vX1JlcGFyZW50ICAgICAgOiBjb25zdGFudCA6PSAy
ICoqIDE4OwogICBBcHBfUGFpbnRhYmxlICAgIDogY29uc3RhbnQgOj0gMiAqKiAxOTsKICAgUmVj
ZWl2ZXNfRGVmYXVsdCA6IGNvbnN0YW50IDo9IDIgKiogMjA7CgogICBmdW5jdGlvbiBUb3BsZXZl
bF9Jc19TZXQKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKSBy
ZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3Qgd2hldGhlciB0aGUgVG9wbGV2ZWwgZmxhZyBpcyBz
ZXQuCgogICBmdW5jdGlvbiBOb19XaW5kb3dfSXNfU2V0CiAgICAgKFdpZGdldCA6IGFjY2VzcyBH
dGtfV2lkZ2V0X1JlY29yZCdDbGFzcykgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBUZXN0IHdoZXRo
ZXIgdGhlIE5vX1dpbmRvdyBmbGFnIGlzIHNldC4KCiAgIGZ1bmN0aW9uIFJlYWxpemVkX0lzX1Nl
dAogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3MpIHJldHVybiBC
b29sZWFuOwogICAtLSAgVGVzdCB3aGV0aGVyIHRoZSBSZWFsaXplZCBmbGFnIGlzIHNldC4KCiAg
IGZ1bmN0aW9uIE1hcHBlZF9Jc19TZXQKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRf
UmVjb3JkJ0NsYXNzKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3Qgd2hldGhlciB0aGUgTWFw
cGVkIGZsYWcgaXMgc2V0LgoKICAgZnVuY3Rpb24gVmlzaWJsZV9Jc19TZXQKICAgICAoV2lkZ2V0
IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKSByZXR1cm4gQm9vbGVhbjsKICAgLS0g
IFRlc3Qgd2hldGhlciB0aGUgVmlzaWJsZSBmbGFnIGlzIHNldC4KCiAgIGZ1bmN0aW9uIERyYXdh
YmxlX0lzX1NldAogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3Mp
IHJldHVybiBCb29sZWFuOwogICAtLSAgVHJ1ZSBpZiB0aGUgd2lkZ2V0IGlzIGJvdGggdmlzaWJs
ZSBhbmQgbWFwcGVkLgogICAtLSAgSW4gb3RoZXIgd29yZHMsIGlmIGl0IGRvZXMgYXBwZWFyIG9u
IHRoZSBzY3JlZW4uCgogICBmdW5jdGlvbiBJc19TZW5zaXRpdmUKICAgICAoV2lkZ2V0IDogYWNj
ZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3Qg
d2hldGhlciB0aGUgd2lkZ2V0IGlzIFNlbnNpdGl2ZS4KCiAgIGZ1bmN0aW9uIENhbl9Gb2N1c19J
c19TZXQKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKSByZXR1
cm4gQm9vbGVhbjsKICAgLS0gIFRlc3Qgd2hldGhlciB0aGUgQ2FuX0ZvY3VzIGZsYWcgaXMgc2V0
LgoKICAgZnVuY3Rpb24gSGFzX0ZvY3VzX0lzX1NldAogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3Rr
X1dpZGdldF9SZWNvcmQnQ2xhc3MpIHJldHVybiBCb29sZWFuOwogICAtLSAgVGVzdCB3aGV0aGVy
IHRoZSBIYXNfRm9jdXMgZmxhZyBpcyBzZXQuCgogICBmdW5jdGlvbiBIYXNfRGVmYXVsdF9Jc19T
ZXQKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKSByZXR1cm4g
Qm9vbGVhbjsKICAgLS0gIFRlc3Qgd2hldGhlciB0aGUgSGFzX0RlZmF1bHQgZmxhZyBpcyBzZXQu
CgogICBmdW5jdGlvbiBIYXNfR3JhYl9Jc19TZXQKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19X
aWRnZXRfUmVjb3JkJ0NsYXNzKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3Qgd2hldGhlciB0
aGUgSGFzX0dyYWIgZmxhZyBpcyBzZXQuCgogICBmdW5jdGlvbiBSY19TdHlsZV9Jc19TZXQKICAg
ICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKSByZXR1cm4gQm9vbGVh
bjsKICAgLS0gIFRlc3Qgd2hldGhlciB0aGUgUmNfU3R5bGUgZmxhZyBpcyBzZXQuCgogICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBEZWZpbml0aW9ucyBmb3Ig
bGlzdHMgb2Ygd2lkZ2V0cyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQoKICAgLS0gIDxkb2NfaWdub3JlPgoKICAgZnVuY3Rpb24gQ29udmVydCAoVyA6IGluIEd0
a19XaWRnZXQpIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgZnVuY3Rpb24gQ29udmVydCAoVyA6
IFN5c3RlbS5BZGRyZXNzKSByZXR1cm4gR3RrX1dpZGdldDsKICAgcGFja2FnZSBXaWRnZXRfTGlz
dCBpcyBuZXcgR2xpYi5HbGlzdC5HZW5lcmljX0xpc3QgKEd0a19XaWRnZXQpOwogICBwYWNrYWdl
IFdpZGdldF9TTGlzdCBpcyBuZXcgR2xpYi5HU2xpc3QuR2VuZXJpY19TTGlzdCAoR3RrX1dpZGdl
dCk7CgogICAtLSAgPC9kb2NfaWdub3JlPgoKICAgLS0tLS0tLS0tLS0tLQogICAtLSBTaWduYWxz
IC0tCiAgIC0tLS0tLS0tLS0tLS0KCiAgIC0tICA8c2lnbmFscz4KICAgLS0gIFRoZSBmb2xsb3dp
bmcgbmV3IHNpZ25hbHMgYXJlIGRlZmluZWQgZm9yIHRoaXMgd2lkZ2V0OgogICAtLQogICAtLSAg
LSAic2hvdyIKICAgLS0gICAgcHJvY2VkdXJlIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtf
V2lkZ2V0X1JlY29yZCdDbGFzcyk7CiAgIC0tCiAgIC0tICAgIEVtaXR0ZWQgd2hlbiBhIHdpZGdl
dCBpcyB0byBiZSBzaG93biAoc2VlIGV4cGxhbmF0aW9uIGZvciB0aGUgU2hvdwogICAtLSAgICBz
dWJwcm9nYW0pLiBUaGlzIHNjaGVkdWxlcyB0aGUgd2lkZ2V0IHRvIGJlIGRpc3BsYXllZCBvbiB0
aGUgc2NyZWVuLAogICAtLSAgICBhbmQgaWYgdGhpcyBpcyBhIHRvcGxldmVsIHdpZGdldCBpdCBh
Y3R1YWxseSBhcHBlYXJzIG9uIHRoZSBzY3JlZW4KICAgLS0gICAgYW5kIGFsbCBpdHMgY2hpbGRy
ZW4gdGhhdCBoYXZlIGJlZW4gc2hvd24uCiAgIC0tCiAgIC0tICAtICJoaWRlIgogICAtLSAgICBw
cm9jZWR1cmUgSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNz
KTsKICAgLS0KICAgLS0gICAgRW1pdHRlZCB3aGVuIGEgd2lkZ2V0IGlzIHRvIGJlIGhpZGRlbiAo
c2VlIGV4cGxhbmF0aW9uIGZvciB0aGUgSGlkZQogICAtLSAgICBzdWJwcm9ncmFtKS4gSGlkZXMg
dGhlIHdpZGdldCBmcm9tIHRoZSBzY3JlZW4sIGFuZCBpZiBpdHMgcGFyZW50IGlzCiAgIC0tICAg
IHNob3duLCB0aGUgd2lkZ2V0IHdpbGwgbm90IGFwcGVhciBvbiB0aGUgc2NyZWVuIGFnYWluLgog
ICAtLQogICAtLSAgLSAibWFwIgogICAtLSAgICBwcm9jZWR1cmUgSGFuZGxlciAoV2lkZ2V0IDog
YWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKTsKICAgLS0KICAgLS0gICAgRW1pdHRlZCB3
aGVuIGEgd2lkZ2V0IGlzIG1hcHBlZCBvbiB0aGUgc2NyZWVuICh0aGUgZGVmYXVsdCBoYW5kbGVy
CiAgIC0tICAgIHNpbXBseSBlbWl0cyB0aGUgInNob3ciIHNpZ25hbCkuCiAgIC0tCiAgIC0tICAt
ICJ1bm1hcCIKICAgLS0gICAgcHJvY2VkdXJlIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtf
V2lkZ2V0X1JlY29yZCdDbGFzcyk7CiAgIC0tCiAgIC0tICAgIEVtaXR0ZWQgd2hlbiBhIHdpZGdl
dCBuZWVkcyB0byBiZSB1bm1hcHBlZCBvbiB0aGUgc2NyZWVuICh0aGUgZGVmYXVsdAogICAtLSAg
ICBoYW5kbGVyIHNpbXBseSBlbWl0cyB0aGUgImhpZGUiIHNpZ25hbCkuCiAgIC0tCiAgIC0tICAt
ICJyZWFsaXplIgogICAtLSAgICBwcm9jZWR1cmUgSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0
a19XaWRnZXRfUmVjb3JkJ0NsYXNzKTsKICAgLS0KICAgLS0gICAgRW1pdHRlZCB3aGVuIGEgd2lk
Z2V0IGlzIHJlYWxpemVkLiBUaGUgZGVmYXVsdCBoYW5kbGVyIGNyZWF0ZXMgdGhlCiAgIC0tICAg
IEdkayB3aW5kb3cgYXNzb2NpYXRlZCB3aXRoIHRoZSB3aWRnZXQsIGFuZCBpdHMgYW5jZXN0b3Jz
LgogICAtLQogICAtLSAgLSAidW5yZWFsaXplIgogICAtLSAgICBwcm9jZWR1cmUgSGFuZGxlciAo
V2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKTsKICAgLS0KICAgLS0gICAg
RW1pdHRlZCB3aGVuIGEgd2lkZ2V0IGlzIHVucmVhbGl6ZWQuIFRoZSBkZWZhdWx0IGhhbmRsZXIg
ZGVzdHJveXMgdGhlCiAgIC0tICAgIEdkayB3aW5kb3dzIG9mIHRoZSB3aWRnZXQgYW5kIGFsbCBp
dHMgY2hpbGRyZW4uCiAgIC0tCiAgIC0tICAtICJkcmF3IgogICAtLSAgICBwcm9jZWR1cmUgSGFu
ZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAg
ICAgICAgICAgICAgICAgICAgQXJlYSAgIDogR2RrLlJlY3RhbmdsZS5HZGtfUmVjdGFuZ2xlKTsK
ICAgLS0KICAgLS0gICAgRW1pdHRlZCB3aGVuIGEgd2lkZ2V0IG5lZWRzIHRvIGJlIGRyYXduLiBU
aGUgZGVmYXVsdCBoYW5kbGVyIGVtaXRzCiAgIC0tICAgIHRoZSAiZXhwb3NlIiBldmVudC4KICAg
LS0KICAgLS0gIC0gImRyYXdfZm9jdXMiCiAgIC0tICAgIHByb2NlZHVyZSBIYW5kbGVyIChXaWRn
ZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3MpOwogICAtLQogICAtLSAgICBFbWl0
dGVkIHdoZW4gYSB3aWRnZXQgbmVlZHMgdG8gYmUgZHJhd24gYW5kIGl0IGhhcyB0aGUgZm9jdXMu
IFNvbWUKICAgLS0gICAgd2lkZ2V0cyBtaWdodCB3YW50IHRvIHByb3ZpZGUgdmlzdWFsIGNsdWVz
IHRoYXQgdGhleSBoYXZlIHRoZSBmb2N1cywKICAgLS0gICAgbGlrZSBhIGJsYWNrIGJvcmRlci4g
VGhpcyBpcyBuZXZlciBjYWxsZWQgaWYgdGhlIHdpZGdldCBjYW4gbm90IGhhdmUKICAgLS0gICAg
dGhlIGZvY3VzIChpZSB0aGUgIkNhbl9Gb2N1cyIgZmxhZyBpcyB1bnNldCkuCiAgIC0tCiAgIC0t
ICAtICJkcmF3X2RlZmF1bHQiCiAgIC0tICAgIHByb2NlZHVyZSBIYW5kbGVyIChXaWRnZXQgOiBh
Y2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3MpOwogICAtLQogICAtLSAgICBFbWl0dGVkIHdo
ZW4gYSB3aWRnZXQgbmVlZHMgdG8gYmUgZHJhd24gYW5kIGl0IGRvZXMgbm90IGhhdmUgdGhlCiAg
IC0tICAgIGZvY3VzLiBUaGlzIGlzIG5ldmVyIGNhbGxlZCBpZiB0aGUgd2lkZ2V0IGNhbiBub3Qg
aGF2ZSB0aGUgZm9jdXMKICAgLS0gICAgKGllIHRoZSAiQ2FuX0ZvY3VzIiBmbGFnIGlzIHVuc2V0
KS4KICAgLS0KICAgLS0gIC0gInNpemVfcmVxdWVzdCIKICAgLS0gICAgcHJvY2VkdXJlIEhhbmRs
ZXIgKFdpZGdldCAgICAgIDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAg
ICAgICAgICAgICAgICAgICAgICAgUmVxdWlzaXRpb24gOiBhY2Nlc3MgR3RrX1JlcXVpc2l0aW9u
KTsKICAgLS0KICAgLS0gICAgU2hvdWxkIHJldHVybiAoaW4gUmVxdWlzaXRpb24pIHRoZSBpZGVh
bCBzaXplIHRoZSB3aWRnZXQgd291bGQgbGlrZSB0bwogICAtLSAgICBoYXZlLiBJdCBpcyBub3Qg
c3VyZSB0aGlzIGlzIHRoZSBzaXplIHRoYXQgd2lsbCBiZSBhc3NpZ25lZCB0byBpdCwKICAgLS0g
ICAgc2luY2UgaXQgZGVwZW5kcyBvbiB0aGUgc2l6ZSBvZiBpdHMgcGFyZW50KS4KICAgLS0KICAg
LS0gIC0gInNpemVfYWxsb2NhdGUiCiAgIC0tICAgIHByb2NlZHVyZSBIYW5kbGVyIChXaWRnZXQg
ICAgIDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAg
ICAgICAgICAgQWxsb2NhdGlvbiA6IEd0a19BbGxvY2F0aW9uKTsKICAgLS0KICAgLS0gICAgQSBz
aXplIGFuZCBwb3NpdGlvbiB3ZXJlIGFzc2lnbmVkIHRvIHRoZSB3aWRnZXQuIFRoaXMgaXMgY2Fs
bGVkIGV2ZXJ5CiAgIC0tICAgIHRpbWUgdGhlIHNpemUgb2YgdGhlIHdpZGdldCBjaGFuZ2VzLgog
ICAtLSAgICBUaGUgZGVmYXVsdCBoYW5kbGVyIHRha2VzIGNhcmUgb2YgcmVzaXppbmcgYW5kIG1v
dmluZyB0aGUgd2lkZ2V0LgogICAtLQogICAtLSAgLSAic3RhdGVfY2hhbmdlZCIKICAgLS0gICAg
cHJvY2VkdXJlIEhhbmRsZXIgKFdpZGdldCAgICAgICAgIDogYWNjZXNzIEd0a19XaWRnZXRfUmVj
b3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICAgUHJldmlvdXNfU3RhdGUgOiBH
dGsuRW51bXMuR3RrX1N0YXRlX1R5cGUpOwogICAtLQogICAtLSAgICBUaGUgc3RhdGUgb2YgdGhl
IHdpZGdldCBoYXMgY2hhbmdlZC4KICAgLS0KICAgLS0gIC0gInBhcmVudF9zZXQiCiAgIC0tICAg
IHByb2NlZHVyZSBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xh
c3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgICBQcmV2aW91c19QYXJlbnQgOiBhY2Nlc3Mg
R3RrX1dpZGdldF9SZWNvcmQnQ2xhc3MpOwogICAtLQogICAtLSAgICBBIG5ldyBwYXJlbnQgaGFz
IGJlZW4gc2V0IGZvciB0aGUgd2lkZ2V0LiBUaGUgcHJldmlvdXMgcGFyZW50IGlzCiAgIC0tICAg
IGdpdmVuIGluIGFyZ3VtZW50cyAoaWYgdGhlcmUgd2FzIG5vbmUsCiAgIC0tICAgIEdkay5Jc19D
cmVhdGVkIChQcmV2aW91c19QYXJlbnQpIHJldHVybnMgRmFsc2UpLgogICAtLQogICAtLSAgLSAi
c3R5bGVfc2V0IgogICAtLSAgICBwcm9jZWR1cmUgSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0
a19XaWRnZXRfUmVjb3JkJ0NsYXNzKTsKICAgLS0gICAgICAgICAgICAgICAgICAgICAgIFByZXZp
b3VzX1N0eWxlIDogR3RrLlN0eWxlLkd0a19TdHlsZSk7CiAgIC0tCiAgIC0tICAgIFRoZSB3aWRn
ZXQncyBzdHlsZSBoYXMgYmVlbiBjaGFuZ2VkICh0aGlzIGlzIG5vdCBjYWxsIHdoZW4gc29tZQog
ICAtLSAgICBzZXR0aW5ncyBpbiB0aGUgc3R5bGUgYXJlIGNoYW5nZWQsIG9ubHkgd2hlbiB0aGUg
c3R5bGUgaXRzZWxmIGlzCiAgIC0tICAgIGNvbXBsZXRlbHkgY2hhbmdlZCB3aXRoIGEgY2FsbCB0
byBTZXRfU3R5bGUgb3IgU2V0X1JjX1N0eWxlKS4KICAgLS0KICAgLS0gIC0gImFkZF9hY2NlbGVy
YXRvciIKICAgLS0KICAgLS0gID8/PwogICAtLQogICAtLSAgLSAicmVtb3ZlX2FjY2VsZXJhdG9y
IgogICAtLQogICAtLSAgPz8/CiAgIC0tCiAgIC0tICAtICJncmFiX2ZvY3VzIgogICAtLSAgICBw
cm9jZWR1cmUgSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNz
KTsKICAgLS0KICAgLS0gICAgVGhlIHdpZGdldCBoYXMgZ290IHRoZSBmb2N1cywgaWUgd2lsbCBu
b3cgZ2V0IHRoZSBrZXlib2FyZCBldmVudHMKICAgLS0gICAgc2VudCB0byBhIHdpbmRvdy4gVGhp
cyBpcyBvbmx5IGNhbGxlZCBpZiB0aGUgIkNhbl9Gb2N1cyIgZmxhZyBpcwogICAtLSAgICBzZXQu
IFRoZSAiSGFzX0ZvY3VzIiBmbGFnIG1pZ2h0IG5vdCBiZSBzZXQgd2hlbiB0aGlzIHNpZ25hbCBp
cwogICAtLSAgICBlbWl0dGVkLgogICAtLQogICAtLSAgLSAiZXZlbnQiCiAgIC0tICAgIGZ1bmN0
aW9uIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCdDbGFzczsKICAg
LS0gICAgICAgICAgICAgICAgICAgICAgRXZlbnQgIDogR2RrLkV2ZW50Lkdka19FdmVudCkKICAg
LS0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gQm9vbGVhbjsKICAgLS0KICAgLS0gICAgU29t
ZSBldmVudCB3YXMgc2VudCB0byB0aGUgd2lkZ2V0LiBUaGlzIGNvdmVycyBhbGwgdGhlIGNhc2Vz
CiAgIC0tICAgIGJlbG93LCBhbmQgYWN0cyBhcyBhIGdlbmVyYWwgaGFuZGxlci4gVGhpcyBpcyBj
YWxsZWQgaW4gYWRkaXRpb24gdG8KICAgLS0gICAgdGhlIHJlbGV2YW50IHNwZWNpZmljIGhhbmRs
ZXIgYmVsb3cuCiAgIC0tICAgIElmIHRoZSBoYW5kbGVyIHJldHVybnMgRmFsc2UsIHRoZSBldmVu
dCBtaWdodCBiZSBwYXNzIHRvIHRoZSBwYXJlbnQKICAgLS0gICAgb2Ygd2lkZ2V0IChpZiBubyBv
dGhlciBoYW5kbGVyIG9mIHdpZGdldCBoYXMgcmV0dXJuZWQgVHJ1ZSkuCiAgIC0tCiAgIC0tICAt
ICJidXR0b25fcHJlc3NfZXZlbnQiCiAgIC0tICAgIGZ1bmN0aW9uIEhhbmRsZXIgKFdpZGdldCA6
IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCdDbGFzczsKICAgLS0gICAgICAgICAgICAgICAgICAg
ICAgRXZlbnQgIDogR2RrLkV2ZW50Lkdka19FdmVudF9CdXR0b24pCiAgIC0tICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEJvb2xlYW47CiAgIC0tCiAgIC0tICAgIEEgYnV0dG9uIHdhcyBwcmVz
c2VkIHdoaWxlIHRoZSBwb2ludGVyIHdhcyBpbnNpZGUgdGhlIHdpZGdldC4KICAgLS0gICAgVG8g
Z2V0IHRoaXMgc2lnbmFsLCBzb21lIHdpZGdldHMgYnkgaGF2ZSB0byB1c2UgdGhlIFNldF9FdmVu
dHMKICAgLS0gICAgc3VicHJvZ3JhbSBmaXJzdCB0byBnZXQgdGhpcyBldmVudC4KICAgLS0gICAg
SWYgdGhlIGhhbmRsZXIgcmV0dXJucyBGYWxzZSwgdGhlIGV2ZW50IG1pZ2h0IGJlIHBhc3MgdG8g
dGhlIHBhcmVudAogICAtLSAgICBvZiB3aWRnZXQgKGlmIG5vIG90aGVyIGhhbmRsZXIgb2Ygd2lk
Z2V0IGhhcyByZXR1cm5lZCBUcnVlKS4KICAgLS0KICAgLS0gIC0gImJ1dHRvbl9yZWxlYXNlX2V2
ZW50IgogICAtLSAgICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdl
dF9SZWNvcmQnQ2xhc3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdkay5F
dmVudC5HZGtfRXZlbnRfQnV0dG9uKQogICAtLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBC
b29sZWFuOwogICAtLQogICAtLSAgICBBIGJ1dHRvbiB3YXMgcmVsZWFzZWQgd2hpbGUgdGhlIHBv
aW50ZXIgd2FzIGluc2lkZSB0aGUgd2lkZ2V0LgogICAtLSAgICBOb3RlIHRoYXQgaW4gc29tZSBj
YXNlcyAoR3RrX0J1dHRvbnMgZm9yIGluc3RhbmNlKSwgYW5vdGhlciAiY2xpY2tlZCIKICAgLS0g
ICAgc2lnbmFsIGNvdWxkIGJlIGVtaXR0ZWQpLiBUaGlzICJidXR0b25fcmVsZWFzZV9ldmVudCIg
c2hvdWxkIG1haW5seQogICAtLSAgICBiZSB1c2VkIGZvciB3aWRnZXRzIHRoYXQgZG9uJ3QgYWxy
ZWFkeSBoYXZlIHNwZWNpZmljIHNpZ25hbHMgdG8gY292ZXIKICAgLS0gICAgdGhhdCBjYXNlIChH
dGtfRHJhd2luZ19BcmVhIGZvciBpbnN0YW5jZSkuCiAgIC0tCiAgIC0tICAgIFRvIGdldCB0aGlz
IHNpZ25hbCwgc29tZSB3aWRnZXRzIG1heSBoYXZlIHRvIHVzZSB0aGUgU2V0X0V2ZW50cwogICAt
LSAgICBzdWJwcm9ncmFtIGZpcnN0IHRvIGdldCB0aGlzIGV2ZW50LgogICAtLQogICAtLSAgICBJ
ZiB0aGUgaGFuZGxlciByZXR1cm5zIEZhbHNlLCB0aGUgZXZlbnQgbWlnaHQgYmUgcGFzcyB0byB0
aGUgcGFyZW50CiAgIC0tICAgIG9mIHdpZGdldCAoaWYgbm8gb3RoZXIgaGFuZGxlciBvZiB3aWRn
ZXQgaGFzIHJldHVybmVkIFRydWUpLgogICAtLQogICAtLSAgLSAibW90aW9uX25vdGlmeV9ldmVu
dCIKICAgLS0gICAgZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRf
UmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICBFdmVudCAgOiBHZGsuRXZl
bnQuR2RrX0V2ZW50X01vdGlvbikKICAgLS0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gQm9v
bGVhbjsKICAgLS0KICAgLS0gICAgVGhlIHBvaW50ZXIgaGFzIG1vdmVkIHdoaWxlIHJlbWFpbmlu
ZyBpbnNpZGUgdGhlIHdpZGdldC4KICAgLS0gICAgVGhlIFNldF9FdmVudHMgc3VicHJvZ3JhbSBo
YXMgdG8gYmUgY2FsbGVkIGZpcnN0IHRvIGdldCB0aGlzIGV2ZW50LgogICAtLQogICAtLSAgICBJ
ZiB0aGUgaGFuZGxlciByZXR1cm5zIEZhbHNlLCB0aGUgZXZlbnQgbWlnaHQgYmUgcGFzcyB0byB0
aGUgcGFyZW50CiAgIC0tICAgIG9mIHdpZGdldCAoaWYgbm8gb3RoZXIgaGFuZGxlciBvZiB3aWRn
ZXQgaGFzIHJldHVybmVkIFRydWUpLgogICAtLQogICAtLSAgLSAiZGVsZXRlX2V2ZW50IgogICAt
LSAgICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQn
Q2xhc3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtf
RXZlbnQpCiAgIC0tICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW47CiAgIC0tCiAg
IC0tICAgIFRoZSB1c2VyIGhhcyBjbGlja2VkIG9uIHRoZSAiY2xvc2UiIGJ1dHRvbiBpbiB0aGUg
d2luZG93J3MgZnJhbWUKICAgLS0gICAgKHRoZSBidXR0b24gdGhhdCBpcyBhdXRvbWF0aWNhbGx5
IHNldCBieSB0aGUgd2luZG93IG1hbmFnZXIpLiBJZiB0aGUKICAgLS0gICAgaGFuZGxlciByZXR1
cm5zIEZhbHNlLCB0aGUgd2lkZ2V0IHdpbGwgYmUgZGVzdHJveWVkIChhbmQgdGhlIHdpbmRvdwog
ICAtLSAgICBjbG9zZWQpLCBidXQgaWYgdGhlIGhhbmRsZXIgcmV0dXJucyBUcnVlLCBub3RoaW5n
IHdpbGwgYmUgZG9uZS4KICAgLS0gICAgVGhpcyBpcyBhIGdvb2Qgd2F5IHRvIHByZXZlbnQgdGhl
IHVzZXIgZnJvbSBjbG9zaW5nIHlvdXIgYXBwbGljYXRpb24ncwogICAtLSAgICB3aW5kb3cgaWYg
dGhlcmUgc2hvdWxkIGJlIHNvbWUgY2xlYW4gdXBzIGZpcnN0IChsaWtlIHNhdmluZyB0aGUKICAg
LS0gICAgZG9jdW1lbnQpLgogICAtLQogICAtLSAgLSAiZGVzdHJveV9ldmVudCIKICAgLS0gICAg
ZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNz
OwogICAtLSAgICAgICAgICAgICAgICAgICAgICBFdmVudCAgOiBHZGsuRXZlbnQuR2RrX0V2ZW50
KQogICAtLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuOwogICAtLQogICAtLSAg
ICBUaGlzIHNpZ25hbCBpcyBhcHBhcmVudGx5IG5ldmVyIGVtaXR0ZWQgYnkgR3RrKy4gWW91IG1p
Z2h0IHdhbnQgdG8KICAgLS0gICAgdXNlICJkZXN0cm95IiBpbnN0ZWFkLCB3aGljaCBpcyBkb2N1
bWVudGVkIGluIEd0ay5PYmplY3QuCiAgIC0tCiAgIC0tICAtICJleHBvc2VfZXZlbnQiCiAgIC0t
ICAgIGZ1bmN0aW9uIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCdD
bGFzczsKICAgLS0gICAgICAgICAgICAgICAgICAgICAgRXZlbnQgIDogR2RrLkV2ZW50Lkdka19F
dmVudF9FeHBvc2UpCiAgIC0tICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW47CiAg
IC0tCiAgIC0tICAgIFRoZSB3aWRnZXQgbmVlZHMgdG8gYmUgcGFydGx5IHJlZHJhd24uIFRoZSBl
eGFjdCBhcmVhIHRvIHJlZHJhdyBpcwogICAtLSAgICBmb3VuZCBpbiBFdmVudC4gRm9yIHNvbWUg
d2lkZ2V0cywgeW91IHNob3VsZCByYXRoZXIgY29ubmVjdCB0byB0aGUKICAgLS0gICAgImRyYXci
IHNpZ25hbC4gSG93ZXZlciwgZm9yIGluc3RhbmNlIGZvciBHdGtfRHJhd2luZ19BcmVhIHdpZGdl
dHMsCiAgIC0tICAgIHlvdSBoYXZlIHRvIHVzZSB0aGlzLCBhZnRlciBzZXR0aW5nIHRoZSBjb3Jy
ZWN0IGV2ZW50IG1hc2sgd2l0aAogICAtLSAgICBTZXRfRXZlbnRzLgogICAtLSAgICBJZiB0aGUg
aGFuZGxlciByZXR1cm5zIEZhbHNlLCB0aGUgZXZlbnQgbWlnaHQgYmUgcGFzcyB0byB0aGUgcGFy
ZW50CiAgIC0tICAgIG9mIHdpZGdldCAoaWYgbm8gb3RoZXIgaGFuZGxlciBvZiB3aWRnZXQgaGFz
IHJldHVybmVkIFRydWUpLgogICAtLQogICAtLSAgLSAia2V5X3ByZXNzX2V2ZW50IgogICAtLSAg
ICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xh
c3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtfRXZl
bnRfS2V5KQogICAtLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuOwogICAtLQog
ICAtLSAgICBBIGtleSBoYXMgYmVlbiBwcmVzc2VkIHdoaWxlIFdpZGdldCBoYWQgdGhlIGZvY3Vz
LiBOb3RlIHRoYXQgc29tZQogICAtLSAgICB3aWRnZXRzIGxpa2UgR3RrX0VkaXRhYmxlIHByb3Zp
ZGUgc29tZSBoaWdoZXItbGV2ZWwgc2lnbmFscyB0byBoYW5kbGUKICAgLS0gICAgdGhpcy4KICAg
LS0gICAgSWYgdGhlIGhhbmRsZXIgcmV0dXJucyBGYWxzZSwgdGhlIGV2ZW50IG1pZ2h0IGJlIHBh
c3MgdG8gdGhlIHBhcmVudAogICAtLSAgICBvZiB3aWRnZXQgKGlmIG5vIG90aGVyIGhhbmRsZXIg
b2Ygd2lkZ2V0IGhhcyByZXR1cm5lZCBUcnVlKS4KICAgLS0KICAgLS0gIC0gImtleV9yZWxlYXNl
X2V2ZW50IgogICAtLSAgICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dp
ZGdldF9SZWNvcmQnQ2xhc3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdk
ay5FdmVudC5HZGtfRXZlbnRfS2V5KQogICAtLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBC
b29sZWFuOwogICAtLQogICAtLSAgICBBIGtleSBoYXMgYmVlbiByZWxlYXNlZCB3aGlsZSBXaWRn
ZXQgaGFkIHRoZSBmb2N1cy4KICAgLS0gICAgSWYgdGhlIGhhbmRsZXIgcmV0dXJucyBGYWxzZSwg
dGhlIGV2ZW50IG1pZ2h0IGJlIHBhc3MgdG8gdGhlIHBhcmVudAogICAtLSAgICBvZiB3aWRnZXQg
KGlmIG5vIG90aGVyIGhhbmRsZXIgb2Ygd2lkZ2V0IGhhcyByZXR1cm5lZCBUcnVlKS4KICAgLS0K
ICAgLS0gIC0gImVudGVyX25vdGlmeV9ldmVudCIKICAgLS0gICAgZnVuY3Rpb24gSGFuZGxlciAo
V2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAg
ICAgICAgICAgICBFdmVudCAgOiBHZGsuRXZlbnQuR2RrX0V2ZW50X0Nyb3NzaW5nKQogICAtLSAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuOwogICAtLQogICAtLSAgICBUaGUgcG9p
bnRlciBoYXMganVzdCBlbnRlcmVkIHRoZSB3aWRnZXQuIElmIHRoZSAiQ2FuX0ZvY3VzIiBmbGFn
IGlzCiAgIC0tICAgIHNldCwgV2lkZ2V0IHdpbGwgZ2FpbiB0aGUgZm9jdXMsIGFuZCB0aGUgd2lk
Z2V0IG1pZ2h0IGJlIGRyYXduCiAgIC0tICAgIGRpZmZlcmVudGx5LgogICAtLSAgICBJZiB0aGUg
aGFuZGxlciByZXR1cm5zIEZhbHNlLCB0aGUgZXZlbnQgbWlnaHQgYmUgcGFzcyB0byB0aGUgcGFy
ZW50CiAgIC0tICAgIG9mIHdpZGdldCAoaWYgbm8gb3RoZXIgaGFuZGxlciBvZiB3aWRnZXQgaGFz
IHJldHVybmVkIFRydWUpLgogICAtLQogICAtLSAgLSAibGVhdmVfbm90aWZ5X2V2ZW50IgogICAt
LSAgICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQn
Q2xhc3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtf
RXZlbnRfQ3Jvc3NpbmcpCiAgIC0tICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW47
CiAgIC0tCiAgIC0tICAgIFRoZSBwb2ludGVyIGhhcyBqdXN0IGxlYXZlZCB0aGUgd2lkZ2V0LiBJ
ZiB0aGUgIkNhbl9Gb2N1cyIgZmxhZyBpcwogICAtLSAgICBzZXQsIFdpZGdldCB3aWxsIGdhaW4g
dGhlIGZvY3VzLCBhbmQgdGhlIHdpZGdldCBtaWdodCBiZSBkcmF3bgogICAtLSAgICBkaWZmZXJl
bnRseS4KICAgLS0gICAgSWYgdGhlIGhhbmRsZXIgcmV0dXJucyBGYWxzZSwgdGhlIGV2ZW50IG1p
Z2h0IGJlIHBhc3MgdG8gdGhlIHBhcmVudAogICAtLSAgICBvZiB3aWRnZXQgKGlmIG5vIG90aGVy
IGhhbmRsZXIgb2Ygd2lkZ2V0IGhhcyByZXR1cm5lZCBUcnVlKS4KICAgLS0KICAgLS0gIC0gImNv
bmZpZ3VyZV9ldmVudCIKICAgLS0gICAgZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNz
IEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICBFdmVu
dCAgOiBHZGsuRXZlbnQuR2RrX0V2ZW50X0NvbmZpZ3VyZSkKICAgLS0gICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gQm9vbGVhbjsKICAgLS0KICAgLS0gICAgU29tZSBjb25maWd1cmF0aW9uIG9m
IHRoZSB3aW5kb3cgaGFzIGNoYW5nZWQgKGl0IGhhcyBiZWVuCiAgIC0tICAgIG1vdmVkIG9yIHJl
c2l6ZWQpLgogICAtLSAgICBJZiB0aGUgaGFuZGxlciByZXR1cm5zIEZhbHNlLCB0aGUgZXZlbnQg
bWlnaHQgYmUgcGFzcyB0byB0aGUgcGFyZW50CiAgIC0tICAgIG9mIHdpZGdldCAoaWYgbm8gb3Ro
ZXIgaGFuZGxlciBvZiB3aWRnZXQgaGFzIHJldHVybmVkIFRydWUpLgogICAtLQogICAtLSAgLSAi
Zm9jdXNfaW5fZXZlbnQiCiAgIC0tICAgIGZ1bmN0aW9uIEhhbmRsZXIgKFdpZGdldCA6IGFjY2Vz
cyBHdGtfV2lkZ2V0X1JlY29yZCdDbGFzczsKICAgLS0gICAgICAgICAgICAgICAgICAgICAgRXZl
bnQgIDogR2RrLkV2ZW50Lkdka19FdmVudF9Gb2N1cykKICAgLS0gICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gQm9vbGVhbjsKICAgLS0KICAgLS0gICAgVGhlIHdpZGdldCBoYXMganVzdCBnYWlu
ZWQgdGhlIGZvY3VzLgogICAtLSAgICBJZiB0aGUgaGFuZGxlciByZXR1cm5zIEZhbHNlLCB0aGUg
ZXZlbnQgbWlnaHQgYmUgcGFzcyB0byB0aGUgcGFyZW50CiAgIC0tICAgIG9mIHdpZGdldCAoaWYg
bm8gb3RoZXIgaGFuZGxlciBvZiB3aWRnZXQgaGFzIHJldHVybmVkIFRydWUpLgogICAtLQogICAt
LSAgLSAiZm9jdXNfb3V0X2V2ZW50IgogICAtLSAgICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQg
OiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3M7CiAgIC0tICAgICAgICAgICAgICAgICAg
ICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtfRXZlbnRfRm9jdXMpCiAgIC0tICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEJvb2xlYW47CiAgIC0tCiAgIC0tICAgIFRoZSB3aWRnZXQgaGFzIGp1
c3QgbG9zdCB0aGUgZm9jdXMuCiAgIC0tICAgIElmIHRoZSBoYW5kbGVyIHJldHVybnMgRmFsc2Us
IHRoZSBldmVudCBtaWdodCBiZSBwYXNzIHRvIHRoZSBwYXJlbnQKICAgLS0gICAgb2Ygd2lkZ2V0
IChpZiBubyBvdGhlciBoYW5kbGVyIG9mIHdpZGdldCBoYXMgcmV0dXJuZWQgVHJ1ZSkuCiAgIC0t
CiAgIC0tICAtICJtYXBfZXZlbnQiCiAgIC0tICAgIGZ1bmN0aW9uIEhhbmRsZXIgKFdpZGdldCA6
IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCdDbGFzczsKICAgLS0gICAgICAgICAgICAgICAgICAg
ICAgRXZlbnQgIDogR2RrLkV2ZW50Lkdka19FdmVudCkKICAgLS0gICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gQm9vbGVhbjsKICAgLS0KICAgLS0gICAgVGhlIHdpZGdldCBoYXMganVzdCBiZWVu
IG1hcHBlZC4gVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgIm1hcCIKICAgLS0gICAgc2lnbmFs
LCB3aGljaCBpcyBjYWxsZWQgKmJlZm9yZSogdGhlIHdpZGdldCBpcyBhY3R1YWxseSBtYXBwZWQu
CiAgIC0tICAgIElmIHRoZSBoYW5kbGVyIHJldHVybnMgRmFsc2UsIHRoZSBldmVudCBtaWdodCBi
ZSBwYXNzIHRvIHRoZSBwYXJlbnQKICAgLS0gICAgb2Ygd2lkZ2V0IChpZiBubyBvdGhlciBoYW5k
bGVyIG9mIHdpZGdldCBoYXMgcmV0dXJuZWQgVHJ1ZSkuCiAgIC0tCiAgIC0tICAtICJ1bm1hcF9l
dmVudCIKICAgLS0gICAgZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRn
ZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICBFdmVudCAgOiBHZGsu
RXZlbnQuR2RrX0V2ZW50KQogICAtLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFu
OwogICAtLQogICAtLSAgICBUaGUgd2lkZ2V0IGhhcyBqdXN0IGJlZW4gdW5tYXBwZWQuIFRoaXMg
aXMgZGlmZmVyZW50IGZyb20gdGhlICJ1bm1hcCIKICAgLS0gICAgc2lnbmFsLCB3aGljaCBpcyBj
YWxsZWQgKmJlZm9yZSogdGhlIHdpZGdldCBpcyBhY3R1YWxseSB1bm1hcHBlZC4KICAgLS0gICAg
SWYgdGhlIGhhbmRsZXIgcmV0dXJucyBGYWxzZSwgdGhlIGV2ZW50IG1pZ2h0IGJlIHBhc3MgdG8g
dGhlIHBhcmVudAogICAtLSAgICBvZiB3aWRnZXQgKGlmIG5vIG90aGVyIGhhbmRsZXIgb2Ygd2lk
Z2V0IGhhcyByZXR1cm5lZCBUcnVlKS4KICAgLS0KICAgLS0gIC0gInByb3BlcnR5X25vdGlmeV9l
dmVudCIKICAgLS0gICAgZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRn
ZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICBFdmVudCAgOiBHZGsu
RXZlbnQuR2RrX0V2ZW50X1Byb3BlcnR5KQogICAtLSAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBCb29sZWFuOwogICAtLQogICAtLSAgICA/Pz8KICAgLS0KICAgLS0gIC0gInNlbGVjdGlvbl9j
bGVhcl9ldmVudCIKICAgLS0gICAgZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0
a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICBFdmVudCAg
OiBHZGsuRXZlbnQuR2RrX0V2ZW50X1NlbGVjdGlvbikKICAgLS0gICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gQm9vbGVhbjsKICAgLS0KICAgLS0gICAgPz8/CiAgIC0tCiAgIC0tICAtICJzZWxl
Y3Rpb25fcmVxdWVzdF9ldmVudCIKICAgLS0gICAgZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDog
YWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAg
ICBFdmVudCAgOiBHZGsuRXZlbnQuR2RrX0V2ZW50X1NlbGVjdGlvbikKICAgLS0gICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gQm9vbGVhbjsKICAgLS0KICAgLS0gICAgPz8/CiAgIC0tCiAgIC0t
ICAtICJzZWxlY3Rpb25fbm90aWZ5X2V2ZW50IgogICAtLSAgICBmdW5jdGlvbiBIYW5kbGVyIChX
aWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3M7CiAgIC0tICAgICAgICAgICAg
ICAgICAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtfRXZlbnRfU2VsZWN0aW9uKQogICAtLSAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuOwogICAtLQogICAtLSAgICA/Pz8KICAg
LS0KICAgLS0gIC0gInNlbGVjdGlvbl9yZWNlaXZlZCIKICAgLS0gICAgUmVsYXRlZCB0byB0aGUg
c2VsZWN0aW9uIG1lY2hhbmlzbSwgc2VlIEd0ay5TZWxlY3Rpb24KICAgLS0KICAgLS0gIC0gInNl
bGVjdGlvbl9nZXQiCiAgIC0tICAgIFJlbGF0ZWQgdG8gdGhlIHNlbGVjdGlvbiBtZWNoYW5pc20s
IHNlZSBHdGsuU2VsZWN0aW9uCiAgIC0tCiAgIC0tICAtICJwcm94aW1pdHlfaW5fZXZlbnQiCiAg
IC0tICAgIGZ1bmN0aW9uIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29y
ZCdDbGFzczsKICAgLS0gICAgICAgICAgICAgICAgICAgICAgRXZlbnQgIDogR2RrLkV2ZW50Lkdk
a19FdmVudF9Qcm94aW1pdHkpCiAgIC0tICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJvb2xl
YW47CiAgIC0tCiAgIC0tICAgIFVzZWQgZm9yIHNwZWNpYWwgaW5wdXQgZGV2aWNlcy4gU2VlIHRo
ZSBkZXNjcmlwdGlvbiBvZgogICAtLSAgICBHZGsuRXZlbnQuR2RrX0V2ZW50X1Byb3hpbWl0eS4K
ICAgLS0gICAgSWYgdGhlIGhhbmRsZXIgcmV0dXJucyBGYWxzZSwgdGhlIGV2ZW50IG1pZ2h0IGJl
IHBhc3MgdG8gdGhlIHBhcmVudAogICAtLSAgICBvZiB3aWRnZXQgKGlmIG5vIG90aGVyIGhhbmRs
ZXIgb2Ygd2lkZ2V0IGhhcyByZXR1cm5lZCBUcnVlKS4KICAgLS0KICAgLS0gIC0gInByb3hpbWl0
eV9vdXRfZXZlbnQiCiAgIC0tICAgIGZ1bmN0aW9uIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBH
dGtfV2lkZ2V0X1JlY29yZCdDbGFzczsKICAgLS0gICAgICAgICAgICAgICAgICAgICAgRXZlbnQg
IDogR2RrLkV2ZW50Lkdka19FdmVudF9Qcm94aW1pdHkpCiAgIC0tICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEJvb2xlYW47CiAgIC0tCiAgIC0tICAgIFVzZWQgZm9yIHNwZWNpYWwgaW5wdXQg
ZGV2aWNlcy4gU2VlIHRoZSBkZXNjcmlwdGlvbiBvZgogICAtLSAgICBHZGsuRXZlbnQuR2RrX0V2
ZW50X1Byb3hpbWl0eS4KICAgLS0gICAgSWYgdGhlIGhhbmRsZXIgcmV0dXJucyBGYWxzZSwgdGhl
IGV2ZW50IG1pZ2h0IGJlIHBhc3MgdG8gdGhlIHBhcmVudAogICAtLSAgICBvZiB3aWRnZXQgKGlm
IG5vIG90aGVyIGhhbmRsZXIgb2Ygd2lkZ2V0IGhhcyByZXR1cm5lZCBUcnVlKS4KICAgLS0KICAg
LS0gIC0gImRyYWdfbGVhdmUiCiAgIC0tICAgIEV2ZW50IHJlbGF0ZWQgdG8gZHJhZy1hbmQtZHJv
cCBzdXBwb3J0LiBTZWUgdGhlIEd0ay5EbmQgZG9jdW1lbnRhdGlvbi4KICAgLS0KICAgLS0gIC0g
ImRyYWdfYmVnaW4iCiAgIC0tICAgIEV2ZW50IHJlbGF0ZWQgdG8gZHJhZy1hbmQtZHJvcCBzdXBw
b3J0LiBTZWUgdGhlIEd0ay5EbmQgZG9jdW1lbnRhdGlvbi4KICAgLS0KICAgLS0gIC0gImRyYWdf
ZW5kIgogICAtLSAgICBFdmVudCByZWxhdGVkIHRvIGRyYWctYW5kLWRyb3Agc3VwcG9ydC4gU2Vl
IHRoZSBHdGsuRG5kIGRvY3VtZW50YXRpb24uCiAgIC0tCiAgIC0tICAtICJkcmFnX2RhdGFfZGVs
ZXRlIgogICAtLSAgICBFdmVudCByZWxhdGVkIHRvIGRyYWctYW5kLWRyb3Agc3VwcG9ydC4gU2Vl
IHRoZSBHdGsuRG5kIGRvY3VtZW50YXRpb24uCiAgIC0tCiAgIC0tICAtICJkcmFnX21vdGlvbiIK
ICAgLS0gICAgRXZlbnQgcmVsYXRlZCB0byBkcmFnLWFuZC1kcm9wIHN1cHBvcnQuIFNlZSB0aGUg
R3RrLkRuZCBkb2N1bWVudGF0aW9uLgogICAtLQogICAtLSAgLSAiZHJhZ19kcm9wIgogICAtLSAg
ICBFdmVudCByZWxhdGVkIHRvIGRyYWctYW5kLWRyb3Agc3VwcG9ydC4gU2VlIHRoZSBHdGsuRG5k
IGRvY3VtZW50YXRpb24uCiAgIC0tCiAgIC0tICAtICJkcmFnX2RhdGFfZ2V0IgogICAtLSAgICBF
dmVudCByZWxhdGVkIHRvIGRyYWctYW5kLWRyb3Agc3VwcG9ydC4gU2VlIHRoZSBHdGsuRG5kIGRv
Y3VtZW50YXRpb24uCiAgIC0tCiAgIC0tICAtICJkcmFnX2RhdGFfcmVjZWl2ZWQiCiAgIC0tICAg
IEV2ZW50IHJlbGF0ZWQgdG8gZHJhZy1hbmQtZHJvcCBzdXBwb3J0LiBTZWUgdGhlIEd0ay5EbmQg
ZG9jdW1lbnRhdGlvbi4KICAgLS0KICAgLS0gIC0gInZpc2liaWxpdHlfbm90aWZ5X2V2ZW50Igog
ICAtLSAgICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNv
cmQnQ2xhc3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5H
ZGtfRXZlbnRfVmlzaWJpbGl0eSkKICAgLS0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gQm9v
bGVhbjsKICAgLS0KICAgLS0gICAgVGhlIHZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIHdpZGdldCBo
YXMgY2hhbmdlZCAocGFydGlhbGx5IHZpc2libGUsCiAgIC0tICAgIGZ1bGx5IHZpc2libGUsIC4u
LikuIFlvdSBtaWdodCB3YW50IHRvIHVzZSB0aGUgImV4cG9zZSIgc2lnbmFsCiAgIC0tICAgIGlu
c3RlYWQuCiAgIC0tICAgIElmIHRoZSBoYW5kbGVyIHJldHVybnMgRmFsc2UsIHRoZSBldmVudCBt
aWdodCBiZSBwYXNzIHRvIHRoZSBwYXJlbnQKICAgLS0gICAgb2Ygd2lkZ2V0IChpZiBubyBvdGhl
ciBoYW5kbGVyIG9mIHdpZGdldCBoYXMgcmV0dXJuZWQgVHJ1ZSkuCiAgIC0tCiAgIC0tICAtICJj
bGllbnRfZXZlbnQiCiAgIC0tCiAgIC0tICAgID8/PwogICAtLQogICAtLSAgLSAibm9fZXhwb3Nl
X2V2ZW50IgogICAtLSAgICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dp
ZGdldF9SZWNvcmQnQ2xhc3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdk
ay5FdmVudC5HZGtfRXZlbnQpCiAgIC0tICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJvb2xl
YW47CiAgIC0tCiAgIC0tICAgID8/PwogICAtLQogICAtLSAgPC9zaWduYWxzPgpwcml2YXRlCgog
ICB0eXBlIEd0a19XaWRnZXRfUmVjb3JkIGlzIG5ldyBPYmplY3QuR3RrX09iamVjdF9SZWNvcmQg
d2l0aCBudWxsIHJlY29yZDsKCiAgIHByYWdtYSBJbXBvcnQgKEMsIFB1c2hfU3R5bGUsICJndGtf
d2lkZ2V0X3B1c2hfc3R5bGUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgUG9wX1N0eWxlLCAiZ3Rr
X3dpZGdldF9wb3Bfc3R5bGUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X0RlZmF1bHRfU3R5
bGUsICJndGtfd2lkZ2V0X3NldF9kZWZhdWx0X3N0eWxlIik7CiAgIHByYWdtYSBJbXBvcnQgKEMs
IEdldF9EZWZhdWx0X1N0eWxlLCAiZ3RrX3dpZGdldF9nZXRfZGVmYXVsdF9zdHlsZSIpOwogICBw
cmFnbWEgSW1wb3J0IChDLCBQb3BfQ29sb3JtYXAsICJndGtfd2lkZ2V0X3BvcF9jb2xvcm1hcCIp
OwogICBwcmFnbWEgSW1wb3J0IChDLCBQb3BfVmlzdWFsLCAiZ3RrX3dpZGdldF9wb3BfdmlzdWFs
Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9UeXBlLCAiZ3RrX3dpZGdldF9nZXRfdHlwZSIp
OwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfRGVmYXVsdF9Db2xvcm1hcCwgImd0a193aWRnZXRf
Z2V0X2RlZmF1bHRfY29sb3JtYXAiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X0RlZmF1bHRf
VmlzdWFsLCAiZ3RrX3dpZGdldF9nZXRfZGVmYXVsdF92aXN1YWwiKTsKICAgcHJhZ21hIEltcG9y
dCAoQywgUHVzaF9Db2xvcm1hcCwgImd0a193aWRnZXRfcHVzaF9jb2xvcm1hcCIpOwogICBwcmFn
bWEgSW1wb3J0IChDLCBQdXNoX1Zpc3VhbCwgImd0a193aWRnZXRfcHVzaF92aXN1YWwiKTsKICAg
cHJhZ21hIEltcG9ydCAoQywgU2V0X0RlZmF1bHRfQ29sb3JtYXAsICJndGtfd2lkZ2V0X3NldF9k
ZWZhdWx0X2NvbG9ybWFwIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9EZWZhdWx0X1Zpc3Vh
bCwgImd0a193aWRnZXRfc2V0X2RlZmF1bHRfdmlzdWFsIik7CiAgIHByYWdtYSBJbmxpbmUgKFRv
cGxldmVsX0lzX1NldCk7CiAgIHByYWdtYSBJbmxpbmUgKE5vX1dpbmRvd19Jc19TZXQpOwogICBw
cmFnbWEgSW5saW5lIChSZWFsaXplZF9Jc19TZXQpOwogICBwcmFnbWEgSW5saW5lIChNYXBwZWRf
SXNfU2V0KTsKICAgcHJhZ21hIElubGluZSAoVmlzaWJsZV9Jc19TZXQpOwogICBwcmFnbWEgSW5s
aW5lIChEcmF3YWJsZV9Jc19TZXQpOwogICBwcmFnbWEgSW5saW5lIChJc19TZW5zaXRpdmUpOwog
ICBwcmFnbWEgSW5saW5lIChDYW5fRm9jdXNfSXNfU2V0KTsKICAgcHJhZ21hIElubGluZSAoSGFz
X0ZvY3VzX0lzX1NldCk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19EZWZhdWx0X0lzX1NldCk7CiAg
IHByYWdtYSBJbmxpbmUgKEhhc19HcmFiX0lzX1NldCk7CiAgIHByYWdtYSBJbmxpbmUgKFJjX1N0
eWxlX0lzX1NldCk7CmVuZCBHdGsuV2lkZ2V0OwoKLS0gIEZ1bmN0aW9ucyB0aGF0IGhhdmUgbm8g
QWRhIGVxdWl2YWxlbnQ6Ci0tICAtIGd0a193aWRnZXRfbmV3Ci0tICAtIGd0a193aWRnZXRfZ2V0
Ci0tICAtIGd0a193aWRnZXRfZ2V0dgotLSAgLSBndGtfd2lkZ2V0X3NldAotLSAgLSBndGtfd2lk
Z2V0X3NldHYKLS0gIC0gZ3RrX3dpZGdldF9nZXRfcGFyZW50X3dpbmRvdyAgPD0gbWFpbmx5IGlu
dGVybmFsCi0tICAtIGd0a193aWRnZXRfaGlkZV9vbl9kZWxldGUgICAgIDw9IHVzZWQgYXMgY2Fs
bGJhY2sKLS0gIC0gZ3RrX3dpZGdldF9zZXRfY29tcG9zaXRlX25hbWUKLS0gIC0gZ3RrX3dpZGdl
dF9nZXRfY29tcG9zaXRlX25hbWUKLS0gIC0gZ3RrX3dpZGdldF9wdXNoX2NvbXBvc2l0ZV9jaGls
ZAotLSAgLSBndGtfd2lkZ2V0X3BvcF9jb21wb3NpdGVfY2hpbGQKLS0gIC0gZ3RrX3dpZGdldF9w
YXRoCi0tICAtIGd0a193aWRnZXRfY2xhc3NfcGF0aAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAg
ICBHdGtBZGEgLSBBZGE5NSBiaW5kaW5nIGZvciB0aGUgR2ltcCBUb29sa2l0ICAgICAgICAgICAg
ICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoQykg
MTk5OC0yMDAxICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgRW1tYW51ZWwgQnJp
b3QsIEpvZWwgQnJvYmVja2VyIGFuZCBBcm5hdWQgQ2hhcmxldCAgICAgICAgICAtLQotLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yICAgICAtLQotLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAgICAgICAtLQotLSBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgICAgICAtLQotLSB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgICAtLQotLSBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAtLQot
LSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVSAtLQotLSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
ICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAt
LQotLSBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSAgICAgICAgICAgICAtLQotLSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRl
bXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgICAgICAtLQotLSBCb3N0b24sIE1BIDAyMTExLTEzMDcs
IFVTQS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCBpZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0
ZSBnZW5lcmljcyBmcm9tICAtLQotLSB0aGlzIHVuaXQsIG9yIHlvdSBsaW5rIHRoaXMgdW5pdCB3
aXRoIG90aGVyIGZpbGVzIHRvIHByb2R1Y2UgYW4gICAtLQotLSBleGVjdXRhYmxlLCB0aGlzICB1
bml0ICBkb2VzIG5vdCAgYnkgaXRzZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5nICAtLQotLSBleGVj
dXRhYmxlIHRvIGJlIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBU
aGlzICAtLQotLSBleGNlcHRpb24gZG9lcyBub3QgaG93ZXZlciBpbnZhbGlkYXRlIGFueSBvdGhl
ciByZWFzb25zIHdoeSB0aGUgICAtLQotLSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJlIGNvdmVy
ZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0g
IDxkZXNjcmlwdGlvbj4KLS0KLS0gIFRoaXMgcGFja2FnZSBwcm92aWRlcyBzb21lIGJhc2ljIEd0
aysgZnVuY3Rpb25hbGl0aWVzIHN1Y2ggYXMgZ2V0dGluZyB0aGUKLS0gIHZlcnNpb24gbnVtYmVy
LiBUaGlzIGlzIHRoZSB0b3AgbGV2ZWwgcGFja2FnZSBvZiB0aGUgR3RrIHdpZGdldCBoaWVyYXJj
aHkuCi0tICBGb3IgZ2VuZXJhbCBHdGtBZGEgaW5pdGlhbGl6YXRpb25zLCBAcHhyZWZ7UGFja2Fn
ZV9HdGsuTWFpbn0uCi0tCi0tICA8L2Rlc2NyaXB0aW9uPgotLSAgPGNfdmVyc2lvbj4xLjIuNzwv
Y192ZXJzaW9uPgoKd2l0aCBHbGliOyAgICAgICAgICAgICAgICB1c2UgR2xpYjsKd2l0aCBHZGs7
ICAgICAgICAgICAgICAgICB1c2UgR2RrOwp3aXRoIFN5c3RlbTsKCnBhY2thZ2UgR3RrIGlzCgog
ICB0eXBlIFJvb3RfVHlwZSBpcyB0YWdnZWQgcHJpdmF0ZTsKICAgLS0gIFRoZSBiYXNlIHR5cGUg
b2YgdGhlIGhpZXJhcmNoeSBpbiBHdGtBZGEuIEl0IGJhc2ljYWxseSBnaXZlcyBhY2Nlc3MKICAg
LS0gIHRvIGFuIHVuZGVybHlpbmcgQyBvYmplY3QuIFRoaXMgaXMgbm90IGEgY29udHJvbGxlZCB0
eXBlLCBmb3IgZWZmaWNpZW5jeQogICAtLSAgcmVhc29ucywgYW5kIGJlY2F1c2UgZ3RrKyB0YWtl
cyBjYXJlIG9mIG1lbW9yeSBtYW5hZ2VtZW50IG9uIGl0cyBvd24uCgogICAtLSAgPGRvY19pZ25v
cmU+CiAgIHR5cGUgUm9vdF9UeXBlX0FjY2VzcyBpcyBhY2Nlc3MgYWxsIFJvb3RfVHlwZSdDbGFz
czsKICAgLS0gIDwvZG9jX2lnbm9yZT4KCiAgIHR5cGUgR3RrX1JjX1N0eWxlIGlzIG5ldyBHZGsu
Q19Qcm94eTsKICAgLS0gIFR5cGUgdXNlZCB0byBoYW5kbGUgcmVzb3VyY2Ugc3R5bGVzLgogICAt
LSAgU2VlIHBhY2thZ2UgR3RrLlJjIGZvciBtb3JlIGRldGFpbHMuCgogICBmdW5jdGlvbiBNYWpv
cl9WZXJzaW9uIHJldHVybiBHdWludDsKICAgLS0gIFJldHVybiB0aGUgbWFqb3IgdmVyc2lvbiBu
dW1iZXIgZm9yIEd0aysuCiAgIC0tICBOb3RlIHRoYXQgdGhpcyBpcyBub3QgbmVjZXNzYXJpbHkg
dGhlIHNhbWUgYXMgZm9yIEd0a0FkYS4KICAgLS0gIElmIHRoZSB2ZXJzaW9uIGlzIDEuMi42LCBy
ZXR1cm5zIDEuCgogICBmdW5jdGlvbiBNaW5vcl9WZXJzaW9uIHJldHVybiBHdWludDsKICAgLS0g
IFJldHVybiB0aGUgbWlub3IgdmVyc2lvbiBudW1iZXIgZm9yIEd0aysuCiAgIC0tICBOb3RlIHRo
YXQgdGhpcyBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgYXMgZm9yIEd0a0FkYS4KICAgLS0g
IElmIHRoZSB2ZXJzaW9uIGlzIDEuMi42LCByZXR1cm5zIDIuCgogICBmdW5jdGlvbiBNaWNyb19W
ZXJzaW9uIHJldHVybiBHdWludDsKICAgLS0gIFJldHVybiB0aGUgbWljcm8gdmVyc2lvbiBudW1i
ZXIgZm9yIEd0aysuCiAgIC0tICBOb3RlIHRoYXQgdGhpcyBpcyBub3QgbmVjZXNzYXJpbHkgdGhl
IHNhbWUgYXMgZm9yIEd0a0FkYS4KICAgLS0gIElmIHRoZSB2ZXJzaW9uIGlzIDEuMi42LCByZXR1
cm5zIDYuCgogICB0eXBlIEd0a19UeXBlIGlzIG5ldyBHdWludDsKICAgLS0gIFRoaXMgdHlwZSBk
ZXNjcmliZXMgYW4gaW50ZXJuYWwgdHlwZSBpbiBHdGsrLgogICAtLSAgWW91IHNob3VsZG4ndCBo
YXZlIHRvIHVzZSBpdCBpbiB5b3VyIG93biBhcHBsaWNhdGlvbnMsIGhvd2V2ZXIgaXQgbWlnaHQK
ICAgLS0gIGJlIHVzZWZ1bCBzb21ldGltZXMuCiAgIC0tICBFdmVyeSB3aWRnZXQgdHlwZSBpcyBh
c3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyB2YWx1ZSwgY3JlYXRlZAogICAtLSAgZHluYW1pY2Fs
bHkgYXQgcnVuIHRpbWUgdGhlIGZpcnN0IHRpbWUgeW91IGluc3RhbnRpYXRlIGEgd2lkZ2V0IG9m
IHRoYXQKICAgLS0gIHR5cGUgKHRodXMgaWYgeW91IGhhdmUgbmV2ZXIgdXNlZCBhIEd0a19GaWxl
X1NlbGVjdGlvbiwgaXQgd29uJ3QgaGF2ZQogICAtLSAgYW55IEd0a19UeXBlIGFzc29jaWF0ZWQg
d2l0aCBpdCkuCiAgIC0tICBZb3UgY2FuIGdldCB0aGUgZXhhY3QgdHlwZSB2YWx1ZSBmb3IgZWFj
aCB0eXBlIGJ5IHVzaW5nIHRoZSBmdW5jdGlvbnMKICAgLS0gIEdldF9UeXBlIHByb3ZpZGVkIGlu
IGFsbCB0aGUgcGFja2FnZXMgaW4gR3RrQWRhLgogICAtLSAgWW91IGNhbiBnZXQgdGhlIHNwZWNp
ZmljIHZhbHVlIGZvciBhbiBleGlzdGluZyB3aWRnZXQgYnkgdXNpbmcgdGhlCiAgIC0tICBmdW5j
dGlvbiBHdGsuT2JqZWN0LkdldF9UeXBlLgoKICAgR3RrX1R5cGVfSW52YWxpZCA6IGNvbnN0YW50
IEd0a19UeXBlIDo9IDA7CiAgIEd0a19UeXBlX05vbmUgICAgOiBjb25zdGFudCBHdGtfVHlwZSA6
PSAxOwogICBHdGtfVHlwZV9DaGFyICAgIDogY29uc3RhbnQgR3RrX1R5cGUgOj0gMjsKICAgR3Rr
X1R5cGVfVWNoYXIgICA6IGNvbnN0YW50IEd0a19UeXBlIDo9IDM7CiAgIEd0a19UeXBlX0Jvb2wg
ICAgOiBjb25zdGFudCBHdGtfVHlwZSA6PSA0OwogICBHdGtfVHlwZV9JbnQgICAgIDogY29uc3Rh
bnQgR3RrX1R5cGUgOj0gNTsKICAgR3RrX1R5cGVfVWludCAgICA6IGNvbnN0YW50IEd0a19UeXBl
IDo9IDY7CiAgIEd0a19UeXBlX0xvbmcgICAgOiBjb25zdGFudCBHdGtfVHlwZSA6PSA3OwogICBH
dGtfVHlwZV9VbG9uZyAgIDogY29uc3RhbnQgR3RrX1R5cGUgOj0gODsKICAgR3RrX1R5cGVfRmxv
YXQgICA6IGNvbnN0YW50IEd0a19UeXBlIDo9IDk7CiAgIEd0a19UeXBlX0RvdWJsZSAgOiBjb25z
dGFudCBHdGtfVHlwZSA6PSAxMDsKICAgR3RrX1R5cGVfU3RyaW5nICA6IGNvbnN0YW50IEd0a19U
eXBlIDo9IDExOyAgLS0gIE51bGwgdGVybWluYXRlZCBzdHJpbmcuCiAgIEd0a19UeXBlX0VudW0g
ICAgOiBjb25zdGFudCBHdGtfVHlwZSA6PSAxMjsKICAgR3RrX1R5cGVfRmxhZ3MgICA6IGNvbnN0
YW50IEd0a19UeXBlIDo9IDEzOwogICBHdGtfVHlwZV9Cb3hlZCAgIDogY29uc3RhbnQgR3RrX1R5
cGUgOj0gMTQ7CiAgIEd0a19UeXBlX1BvaW50ZXIgOiBjb25zdGFudCBHdGtfVHlwZSA6PSAxNTsg
IC0tICBhIGdlbmVyYWwgcG9pbnRlciB0eXBlLgogICBHdGtfVHlwZV9PYmplY3QgIDogY29uc3Rh
bnQgR3RrX1R5cGUgOj0gMjE7ICAtLSAgT25lIG9mIHRoZSB3aWRnZXRzL29iamVjdHMKCiAgIHR5
cGUgR3RrX05vdGVib29rX1BhZ2UgaXMgbmV3IEdkay5DX1Byb3h5OwogICAtLSAgQSBwYWdlIG9m
IHRoZSBub3RlYm9vay4KICAgLS0gIEl0IGNhbiBjb250YWluIGEgc2luZ2xlIGNoaWxkLCBhbmQg
aXMgYWxzbyBhc3NvY2lhdGVkIHdpdGggYSB0YWIKICAgLS0gIGxhYmVsIHVzZWQgdG8gc2VsZWN0
IHRoYXQgcGFnZSBpbiB0aGUgbm90ZWJvb2suCgogICBmdW5jdGlvbiBHdGtfVHlwZV9HZGtfRXZl
bnQgcmV0dXJuIEd0a19UeXBlOwogICAtLSAgUmV0dXJuIHRoZSB0eXBlIGNvcnJlc3BvbmRpbmcg
dG8gYSBHZGtfRXZlbnQuCiAgIC0tICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNh
bGxlZCBhZnRlciBHdGsrIGhhcyBiZWVuIGluaXRpYWxpemVkLgoKICAgZnVuY3Rpb24gVHlwZV9O
YW1lIChUeXBlX051bSA6IGluIEd0a19UeXBlKSByZXR1cm4gU3RyaW5nOwogICAtLSAgUmV0dXJu
IHRoZSB0eXBlIG5hbWUgY29ycmVzcG9uZGluZyB0byBhIEd0a19UeXBlLgogICAtLSAgVGhpcyBt
aWdodCBiZSB1c2VmdWwgaW4gZGVidWcgbWVzc2FnZXMuCgogICBmdW5jdGlvbiBUeXBlX0Zyb21f
TmFtZSAoTmFtZSA6IGluIFN0cmluZykgcmV0dXJuIEd0a19UeXBlOwogICAtLSAgQ29udmVydCBh
IHN0cmluZyB0byB0aGUgbWF0Y2hpbmcgdHlwZS4KICAgLS0gIE5hbWUgc2hvdWxkIGJlIHRoZSBD
IHdpZGdldCdzIG5hbWUsIHN1Y2ggYXMgR3RrU2Nyb2xsYmFyIG9yIEd0a0J1dHRvbiwKICAgLS0g
IHJhdGhlciB0aGFuIHRoZSBBZGEgbmFtZS4KCiAgIGZ1bmN0aW9uIElzX0NyZWF0ZWQgKE9iamVj
dCA6IGluIFJvb3RfVHlwZSdDbGFzcykgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBSZXR1cm4gVHJ1
ZSBpZiB0aGUgYXNzb2NpYXRlZCBDIG9iamVjdCBoYXMgYmVlbiBjcmVhdGVkLCBGYWxzZSBpZiBu
bwogICAtLSAgQyBvYmplY3QgaXMgYXNzb2NpYXRlZCB3aXRoIE9iamVjdC4KICAgLS0gIFRoaXMg
aXMgbm90IHRoZSBzYW1lIGFzIHRlc3Rpbmcgd2hldGhlciBhbiBhY2Nlc3MgdHlwZSAoZm9yIGlu
c3RhbmNlCiAgIC0tICBhbnkgb2YgdGhlIHdpZGdldHMpIGlzICJudWxsIiwgc2luY2UgdGhpcyBy
ZWxhdGVzIHRvIHRoZSB1bmRlcmx5aW5nCiAgIC0tICBDIG9iamVjdC4KCiAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogICAtLSBJbnRlcmZhY2luZyB3aXRoIEMgLS0KICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAgIC0tICBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgbWFkZSBwdWJs
aWMgc28gdGhhdCBvbmUgY2FuIGVhc2lseSBjcmVhdGUKICAgLS0gIG5ldyB3aWRnZXRzIG91dHNp
ZGUgdGhlIEd0ayBwYWNrYWdlIGhpZXJhcmNoeS4KICAgLS0gIE9ubHkgZXhwZXJpZW5jZWQgdXNl
cnMgc2hvdWxkIG1ha2UgdXNlIG9mIHRoZXNlIGZ1bmN0aW9ucy4KCiAgIGZ1bmN0aW9uIEdldF9P
YmplY3QgKE9iamVjdCA6IGFjY2VzcyBSb290X1R5cGUnQ2xhc3MpIHJldHVybiBTeXN0ZW0uQWRk
cmVzczsKICAgLS0gIEFjY2VzcyB0aGUgdW5kZXJseWluZyBDIHBvaW50ZXIuCgogICBwcm9jZWR1
cmUgU2V0X09iamVjdAogICAgIChPYmplY3QgOiBhY2Nlc3MgUm9vdF9UeXBlJ0NsYXNzOwogICAg
ICBWYWx1ZSAgOiBpbiAgICAgU3lzdGVtLkFkZHJlc3MpOwogICAtLSAgTW9kaWZ5IHRoZSB1bmRl
cmx5aW5nIEMgcG9pbnRlci4KCiAgIHByb2NlZHVyZSBJbml0aWFsaXplX1VzZXJfRGF0YSAoT2Jq
IDogYWNjZXNzIFJvb3RfVHlwZSdDbGFzcyk7CiAgIC0tICBTZXRzIGEgdXNlciBkYXRhIGZpZWxk
IGZvciB0aGUgQyBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIE9iai4KICAgLS0gIFRoaXMgZmllbGQg
d2lsbCBiZSB1c2VkIHNvIHRoYXQgaXQgaXMgcG9zc2libGUsIGtub3dpbmcgYQogICAtLSAgQyBv
YmplY3QsIHRvIGdldCB0aGUgZnVsbCBhZGEgb2JqZWN0LgoKICAgZnVuY3Rpb24gR2V0X1VzZXJf
RGF0YQogICAgIChPYmogIDogaW4gU3lzdGVtLkFkZHJlc3M7CiAgICAgIFN0dWIgOiBpbiBSb290
X1R5cGUnQ2xhc3MpIHJldHVybiBSb290X1R5cGVfQWNjZXNzOwogICAtLSAgR2V0IHRoZSB1c2Vy
IGRhdGEgdGhhdCB3YXMgc2V0IGJ5IEd0a0FkYS4KICAgLS0gIElmIHRoZSBEYXRhIGlzIG5vdCBz
ZXQsIHJldHVybiBhIG5ldyBhY2Nlc3MgdHlwZSwgdGhhdCBwb2ludHMgdG8KICAgLS0gIGEgc3Ry
dWN0dXJlIHdpdGggdGhlIHNhbWUgdGFnIGFzIFN0dWIuCgogICBmdW5jdGlvbiBVbmNoZWNrZWRf
Q2FzdAogICAgIChPYmogIDogYWNjZXNzIFJvb3RfVHlwZSdDbGFzczsKICAgICAgU3R1YiA6IFJv
b3RfVHlwZSdDbGFzcykgcmV0dXJuIFJvb3RfVHlwZV9BY2Nlc3M7CiAgIC0tICBDYXN0IE9iaiBp
biBhbiBvYmplY3Qgb2YgdGFnIFN0dWInQ2xhc3MuCiAgIC0tICBSZXR1cm4gdGhlIHJlc3VsdGlu
ZyBvYmplY3QgYW5kIGZyZWUgdGhlIG1lbW9yeSBwb2ludGVkIGJ5IE9iai4KCiAgIGZ1bmN0aW9u
IENvdW50X0FyZ3VtZW50cwogICAgIChUaGVfVHlwZSA6IEd0a19UeXBlOyBOYW1lIDogaW4gU3Ry
aW5nKSByZXR1cm4gR3VpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIG51bWJlciBvZiBhcmd1bWVudHMg
dXNlZCBpbiB0aGUgaGFuZGxlcnMgZm9yIHRoZSBzaWduYWwuCiAgIC0tICBOb3RlIHRoYXQgaW4g
dGhlIENvbm5lY3QgZnVuY3Rpb25zLCB3ZSBhbHdheXMgdGVzdCB3aGV0aGVyIHRoZSB1c2VyCiAg
IC0tICBoYXMgYXNrZWQgZm9yICphdCBtb3N0KiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBkZWZp
bmVkIGJ5IGd0aysgZm9yIHRoZQogICAtLSAgY2FsbGJhY2suIFRoaXMgaXMgYmVjYXVzZSBoYXZp
bmcgbGVzcyBhcmd1bWVudCBpcyBhdXRob3JpemVkICh0aGUKICAgLS0gIGV4dHJhIHBhcmFtZXRl
cnMgcGFzc2VkIGJ5IGd0aysgd2lsbCBzaW1wbHkgYmUgaWdub3JlZCksIHdoZXJlYXMgaGF2aW5n
CiAgIC0tICBtb3JlIGFyZ3VtZW50cyBpcyBpbXBvc3NpYmxlICh0aGV5IHdvdWxkIG5ldmVyIGJl
IHNldCkuCiAgIC0tICBOb3RlIHRoYXQgd2UgcHJvdmlkZSB0aGlzIHByb2NlZHVyZSBoZXJlIHRv
IGF2b2lkIGNpcmN1bGFyaXRpZXMuCgogICBmdW5jdGlvbiBBcmd1bWVudF9UeXBlCiAgICAgKFRo
ZV9UeXBlIDogR3RrX1R5cGU7CiAgICAgIE5hbWUgICAgIDogaW4gU3RyaW5nOwogICAgICBOdW0g
ICAgICA6IGluIEdpbnQpIHJldHVybiBHdGtfVHlwZTsKICAgLS0gIFJldHVybiB0aGUgdHlwZSBv
ZiB0aGUgbnVtLXRoIGFyZ3VtZW50IGZvciB0aGUgaGFuZGxlcnMgb2Ygc2lnbmFsIG5hbWUuCiAg
IC0tICBJZiBOdW0gaXMgbmVnYXRpdmUsIHJldHVybiB0aGUgdHlwZSByZXR1cm5lZCBieSB0aGUg
aGFuZGxlcnMgZm9yIHRoaXMKICAgLS0gIHNpZ25hbC4KICAgLS0gIE5vdGUgdGhhdCB3ZSBwcm92
aWRlIHRoaXMgcHJvY2VkdXJlIGhlcmUgdG8gYXZvaWQgY2lyY3VsYXJpdGllcy4KCnByaXZhdGUK
CiAgIHR5cGUgUm9vdF9UeXBlIGlzIHRhZ2dlZCByZWNvcmQKICAgICAgUHRyIDogU3lzdGVtLkFk
ZHJlc3MgOj0gU3lzdGVtLk51bGxfQWRkcmVzczsKICAgZW5kIHJlY29yZDsKCiAgIC0tICA8ZG9j
X2lnbm9yZT4KCiAgIC0tICBOb3RlOiB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhbmQgdHlwZXMg
c2hvdWxkIG9ubHkgYmUgdXNlZAogICAtLSAgZm9yIGludGVybmFsIHVzYWdlLCBub3QgaW4gdGhl
IHVzZXIncyBhcHBsaWNhdGlvbnMuCiAgIC0tICBJZiB5b3UgdXNlIHR5cGUgaW5oZXJpdGFuY2Ug
Zm9yIG5ldyB3aWRnZXRzLCB5b3Ugc2hvdWxkIG5vdCBuZWVkCiAgIC0tICB0aGVzZSBmdW5jdGlv
bnMuCgogICBHdGtBZGFfU3RyaW5nIDogY29uc3RhbnQgU3RyaW5nIDo9ICJfR3RrQWRhIiAmIEFT
Q0lJLk5VTDsKICAgR3RrQWRhX1N0cmluZ19RdWFyayA6IEdsaWIuR1F1YXJrIDo9IEdsaWIuVW5r
bm93bl9RdWFyazsKICAgLS0gIFRoZSBuYW1lIGZvciB0aGUgdXNlciBkYXRhIHRoYXQgd2Ugc2V0
IGluIHRoZSBvYmplY3RzLgogICAtLSAgVGhlIFF1YXJrIHZlcnNpb24gaXMgdG8gc3BlZWQgdXAg
dGhlIHN0cmluZyBsb29rdXAgKHRoaXMgaXMgZG9uZQogICAtLSAgb25seSBvbmNlKS4KCiAgIGZ1
bmN0aW9uIENvbnZlcnNpb25fRnVuY3Rpb24KICAgICAoT2JqIDogU3lzdGVtLkFkZHJlc3M7IFN0
dWIgOiBSb290X1R5cGUnQ2xhc3MpIHJldHVybiBSb290X1R5cGVfQWNjZXNzOwogICAtLSAgVGhp
cyBmdW5jdGlvbiBoYXMgdG8gY29udmVydCBhIEMgb2JqZWN0IHRvIGFuIEFkYSBvYmplY3QuCiAg
IC0tICBJdCB3aWxsIGZpcnN0IHRyeSBhbGwgdGhlIHJlZ2lzdGVyZWQgZnVuY3Rpb25zIChpbgog
ICAtLSAgR3RrLlR5cGVfQ29udmVyc2lvbl9Ib29rcykgYW5kIGJ5IGRlZmF1bHQsIHdpbGwgY3Jl
YXRlIGEgU3R1YidDbGFzcwogICAtLSAgb2JqZWN0LCBubyBtYXR0ZXIgd2hhdCB0aGUgcmVhbCBD
IHR5cGUgaXMuCiAgIC0tICBTdHViIGlzIHRoZSBleHBlY3RlZCB0eXBlLgoKICAgLS0gIDwvZG9j
X2lnbm9yZT4KCiAgIHByYWdtYSBJbmxpbmUgKEdldF9PYmplY3QpOwogICBwcmFnbWEgSW5saW5l
IChTZXRfT2JqZWN0KTsKCiAgIHByYWdtYSBJbXBvcnQgKEMsIE1ham9yX1ZlcnNpb24sICJhZGFf
Z3RrX21ham9yX3ZlcnNpb24iKTsKICAgcHJhZ21hIEltcG9ydCAoQywgTWlub3JfVmVyc2lvbiwg
ImFkYV9ndGtfbWlub3JfdmVyc2lvbiIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBNaWNyb19WZXJz
aW9uLCAiYWRhX2d0a19taWNyb192ZXJzaW9uIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEd0a19U
eXBlX0dka19FdmVudCwgImFkYV9ndGtfdHlwZV9nZGtfZXZlbnQiKTsKZW5kIEd0azsKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0gQWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAg
VG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAg
ICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMCAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
ICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJyb2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQg
ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgICAgICAgLS0K
LS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAg
LS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy
YWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9z
dG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3Ro
ZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5
b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0g
ZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJl
c3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIg
aW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBm
aWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KCi0tICA8ZGVzY3JpcHRpb24+Ci0tCi0tICBUaGlzIHBhY2thZ2UgcHJv
dmlkZXMgR3RrQWRhIHNwZWNpZmljIHR5cGVzIGFuZCB0aGVpciBhc3NvY2lhdGVkIGZ1bmN0aW9u
cy4KLS0KLS0gIDwvZGVzY3JpcHRpb24+Cgp3aXRoIEludGVyZmFjZXMuQy5TdHJpbmdzOwoKcGFj
a2FnZSBHdGthZGEuVHlwZXMgaXMKCiAgIHByYWdtYSBQcmVlbGFib3JhdGU7CgogICBEYXRhX0Vy
cm9yIDogZXhjZXB0aW9uOwoKICAgLS0gIDxkb2NfaWdub3JlPgogICBzdWJ0eXBlIENoYXJzX1B0
ciBpcyBJbnRlcmZhY2VzLkMuU3RyaW5ncy5jaGFyc19wdHI7CiAgIHN1YnR5cGUgQ2hhcnNfUHRy
X0FycmF5IGlzIEludGVyZmFjZXMuQy5TdHJpbmdzLmNoYXJzX3B0cl9hcnJheTsKICAgLS0gIDwv
ZG9jX2lnbm9yZT4KCiAgIE51bGxfUHRyIDogQ2hhcnNfUHRyIHJlbmFtZXMgSW50ZXJmYWNlcy5D
LlN0cmluZ3MuTnVsbF9QdHI7CgogICBmdW5jdGlvbiBOdWxsX0FycmF5IHJldHVybiBDaGFyc19Q
dHJfQXJyYXk7CiAgIC0tICBSZXR1cm4gYSBudWxsIGFycmF5LgogICBwcmFnbWEgSW5saW5lIChO
dWxsX0FycmF5KTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg
LS0gIEhhbmRsaW5nIG9mIGFycmF5cyBvZiBTdHJpbmdzICAtLQogICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tICBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBwcm92
aWRlIGEgdmVyeSBjb252ZW5pZW50IHdheSB0byBjcmVhdGUKICAgLS0gIEMgYXJyYXlzIG9mIG51
bGwgdGVybWluYXRlZCBzdHJpbmdzIGluIEFkYS4KICAgLS0KICAgLS0gIFlvdSBjYW4gZWl0aGVy
IGNyZWF0ZSBzdWNoIGEgU3RyaW5nIG9uIHRoZSBmbHksIG9yIGRlY2xhcmUgYSB2YXJpYWJsZToK
ICAgLS0KICAgLS0gICAgIFNpZ25hbHMgOiBDaGFyc19QdHJfQXJyYXkgOj0gImNsaWNrZWQiICsg
Im1pc3NlZCIgKyAibmV3IHNpZ25hbCI7CiAgIC0tCiAgIC0tICB3aGljaCBjb3JyZXNwb25kcyB0
byB0aGUgQyBkZWNsYXJhdGlvbjoKICAgLS0KICAgLS0gICAgIGNoYXIgKnNpZ25hbHNbXSA9IEB7
ImNsaWNrZWQiLCAibWlzc2VkIiwgIm5ldyBzaWduYWwiQH07CiAgIC0tCiAgIC0tICBOb3RlIHRo
YXQgeW91IHN0aWxsIG5lZWQgdG8gbWFudWFsbHkgY2FsbCBGcmVlIChTaWduYWxzKSBpZiB5b3Ug
d2FudCB0bwogICAtLSAgcmVsZWFzZSB0aGUgbWVtb3J5IGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBi
eSB0aGUgIisiIGZ1bmN0aW9ucy4KCiAgIGZ1bmN0aW9uICIrIiAoUzEsIFMyIDogU3RyaW5nKSBy
ZXR1cm4gQ2hhcnNfUHRyX0FycmF5OwogICAtLSAgQ3JlYXRlIGFuIGFycmF5IGNvbnRhaW5pbmcg
UzEgYW5kIFMyLgogICAtLSAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIG1lbW9y
eSB0byBzdG9yZSBTMSBhbmQgUzIgYXMgbnVsbAogICAtLSAgdGVybWluYXRlZCBTdHJpbmdzLiBU
aGUgdXNlciBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBGcmVlIG9uIHRoZQogICAtLSAgcmVz
dWx0aW5nIGFycmF5LgoKICAgZnVuY3Rpb24gIisiIChTMSA6IENoYXJzX1B0cl9BcnJheTsgUzIg
OiBTdHJpbmcpIHJldHVybiBDaGFyc19QdHJfQXJyYXk7CiAgIC0tICBBcHBlbmQgUzIgdG8gUzEu
CiAgIC0tICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgbWVtb3J5IHRvIHN0b3Jl
IFMyIGFzIGEgbnVsbAogICAtLSAgdGVybWluYXRlZCBTdHJpbmdzLiBUaGUgdXNlciBpcyByZXNw
b25zaWJsZSBmb3IgY2FsbGluZyBGcmVlIG9uIHRoZQogICAtLSAgcmVzdWx0aW5nIGFycmF5LgoK
ICAgZnVuY3Rpb24gIisiIChTMSA6IENoYXJzX1B0cl9BcnJheTsgUzIgOiBDaGFyc19QdHIpIHJl
dHVybiBDaGFyc19QdHJfQXJyYXk7CiAgIC0tICBBcHBlbmQgUzIgdG8gUzEuCiAgIC0tICBOb3Rl
IHRoYXQgdGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgbWVtb3J5IHRvIHN0b3JlIFMyIGFzIGEgbnVs
bAogICAtLSAgdGVybWluYXRlZCBTdHJpbmdzLiBUaGUgdXNlciBpcyByZXNwb25zaWJsZSBmb3Ig
Y2FsbGluZyBGcmVlIG9uIHRoZQogICAtLSAgcmVzdWx0aW5nIGFycmF5LgoKICAgZnVuY3Rpb24g
IisiIChTMSA6IENoYXJzX1B0cjsgUzIgOiBTdHJpbmcpIHJldHVybiBDaGFyc19QdHJfQXJyYXk7
CiAgIC0tICBDcmVhdGUgYW4gYXJyYXkgY29udGFpbmluZyBTMSBhbmQgUzIuCiAgIC0tICBOb3Rl
IHRoYXQgdGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgbWVtb3J5IHRvIHN0b3JlIFMyIGFzIGEgbnVs
bAogICAtLSAgdGVybWluYXRlZCBzdHJpbmcuIFRoZSB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciBj
YWxsaW5nIEZyZWUgb24gdGhlCiAgIC0tICByZXN1bHRpbmcgYXJyYXkuCgogICBwcm9jZWR1cmUg
RnJlZSAoQSA6IGluIG91dCBDaGFyc19QdHJfQXJyYXkpOwogICAtLSAgRnJlZSBhbGwgdGhlIHN0
cmluZ3MgaW4gQS4KCmVuZCBHdGthZGEuVHlwZXM7Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAg
IEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1wIFRvb2xraXQgICAgICAgICAgICAg
IC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAx
OTk4LTIwMDAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICBFbW1hbnVlbCBCcmlv
dCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0ICAgICAgICAgIC0tCi0tICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciAgICAgIC0tCi0tIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgIC0tCi0t
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4g
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgIC0t
Ci0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
ICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt
cGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywg
VVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRl
IGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3IgeW91IGxpbmsgdGhpcyB1bml0IHdp
dGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMgIHVu
aXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1
dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIFRo
aXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyIGludmFsaWRhdGUgYW55IG90aGVy
IHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgY292ZXJl
ZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotLSAg
PGRlc2NyaXB0aW9uPgotLQotLSAgVGhpcyBpcyB0aGUgcGFyZW50IHBhY2thZ2UgZm9yIHRoZSBH
dGtBZGEgc3BlY2lmaWMgdW5pdHMuCi0tCi0tICA8L2Rlc2NyaXB0aW9uPgoKcGFja2FnZSBHdGth
ZGEgaXMKCiAgIHByYWdtYSBQdXJlIChHdGthZGEpOwoKZW5kIEd0a2FkYTsK


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

end of thread, other threads:[~2003-05-12  8:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-12  8:46 ada/9596: Internal compiler error during gtkada compilation Dara Hazeghi
  -- strict thread matches above, loose matches on Subject: below --
2003-02-06 13:46 grave

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