<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>186240</bug_id>
          
          <creation_ts>2018-06-02 15:44:18 -0700</creation_ts>
          <short_desc>REGRESSION(r232421): Breaks webkitpy tests (Requested by aakashjain on #webkit).</short_desc>
          <delta_ts>2018-06-27 20:58:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>183744</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>dbates</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1429605</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-02 15:44:18 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/232421 broke the build:
Breaks webkitpy tests (Requested by aakashjain on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429608</commentid>
    <comment_count>1</comment_count>
      <attachid>341854</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-02 15:44:26 -0700</bug_when>
    <thetext>Created attachment 341854
ROLLOUT of r232421

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429609</commentid>
    <comment_count>2</comment_count>
      <attachid>341854</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-02 16:02:56 -0700</bug_when>
    <thetext>Comment on attachment 341854
ROLLOUT of r232421

Clearing flags on attachment: 341854

Committed r232445: &lt;https://trac.webkit.org/changeset/232445&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429610</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-02 16:02:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429614</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-02 16:08:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/40750942&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437246</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-06-27 20:28:26 -0700</bug_when>
    <thetext>What was the nature of the failures? Would be nice to have a link to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437253</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-06-27 20:58:52 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #5)
&gt; What was the nature of the failures? Would be nice to have a link to follow.

From what I recall, lldbWebKitTester failed to compile on the commit-queue bot and hence prevented it from committing patches.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341854</attachid>
            <date>2018-06-02 15:44:26 -0700</date>
            <delta_ts>2018-06-02 16:02:56 -0700</delta_ts>
            <desc>ROLLOUT of r232421</desc>
            <filename>bug-186240-20180602184425.patch</filename>
            <type>text/plain</type>
            <size>41682</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNDQ0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTliNDg5ZTE5MjhlZDI2OGMwYzJhMTc0Zjg5OThlY2Qz
NTQ5MmZlOC4uZDg0OGRjODI3NjRjMDU3MmQ3YzBiZTY0ZTgzMTJiMjBmMTc0OGFiMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE4LTA2LTAyICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4K
KworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjMyNDIxLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MjQwCisKKyAgICAgICAgQnJl
YWtzIHdlYmtpdHB5IHRlc3RzIChSZXF1ZXN0ZWQgYnkgYWFrYXNoamFpbiBvbiAjd2Via2l0KS4K
KworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIkFkZCBzb21lIHRlc3Rz
IGZvciBsbGRiX3dlYmtpdC5weSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4Mzc0NAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMjMyNDIxCisKIDIwMTgtMDYtMDEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBzb21lIHRlc3RzIGZvciBsbGRiX3dlYmtpdC5weQpkaWZmIC0t
Z2l0IGEvVG9vbHMvTWFrZWZpbGUgYi9Ub29scy9NYWtlZmlsZQppbmRleCBjYTA3ZjE4ODFiYzkx
ZmU4ZTUyMmQ2NmUzZGY3YjgxZjc1ODBmNDRjLi42YTFmNzdjZTYzNTczZTVmZTg5MTAzNDc2ODI1
MzczMDA0NWI5MjQzIDEwMDY0NAotLS0gYS9Ub29scy9NYWtlZmlsZQorKysgYi9Ub29scy9NYWtl
ZmlsZQpAQCAtMiw3ICsyLDcgQEAgTU9EVUxFUyA9IER1bXBSZW5kZXJUcmVlIFdlYktpdFRlc3RS
dW5uZXIgTWluaUJyb3dzZXIgLi4vU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QKIAogaWZuZXEgKCwk
KFNES1JPT1QpKQogCWlmZXEgKCwkKGZpbmRzdHJpbmcgbWFjb3N4LCQoU0RLUk9PVCkpKQotCQlN
T0RVTEVTID0gRHVtcFJlbmRlclRyZWUgV2ViS2l0VGVzdFJ1bm5lciAuLi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC94Y29kZSBUZXN0V2ViS2l0QVBJIGxsZGIvbGxkYldlYktpdFRlc3RlcgorCQlN
T0RVTEVTID0gRHVtcFJlbmRlclRyZWUgV2ViS2l0VGVzdFJ1bm5lciAuLi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9ndGVzdC94Y29kZSBUZXN0V2ViS2l0QVBJCiAJZW5kaWYKIAlpZm5lcSAoLCQoZmluZHN0
cmluZyBpcGhvbmUsJChTREtST09UKSkpCiAJCU1PRFVMRVMgKz0gTW9iaWxlTWluaUJyb3dzZXIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtbGxkYndlYmtpdHRlc3RlciBiL1Rvb2xz
L1NjcmlwdHMvYnVpbGQtbGxkYndlYmtpdHRlc3RlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggNzlkOWM2YTZlYzk1MDBlYjAyMGUyNjI3MDdkMmEzMTVhNThkMTY1ZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxk
LWxsZGJ3ZWJraXR0ZXN0ZXIKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi0jIS91c3Iv
YmluL2VudiBwZXJsCi0KLSMgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6
Ci0jCi0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSMgICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSMgICAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSMgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCi0jIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLXVzZSBzdHJpY3Q7Ci11c2Ugd2Fybmlu
Z3M7Ci11c2UgRmlsZTo6QmFzZW5hbWU7Ci11c2UgRmluZEJpbjsKLXVzZSBHZXRvcHQ6Okxvbmcg
cXcoOmNvbmZpZyBwYXNzX3Rocm91Z2gpOwotdXNlIGxpYiAkRmluZEJpbjo6QmluOwotdXNlIHdl
YmtpdGRpcnM7Ci0KLXN1YiBidWlsZFByb2plY3RPckRpZSgkJCk7Ci0KLW15ICRzaG93SGVscDsK
LW15ICRjbGVhbiA9IDA7Ci0KLW15ICRwcm9ncmFtTmFtZSA9IGJhc2VuYW1lKCQwKTsKLW15ICR1
c2FnZSA9IDw8RU9GOwotVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9uc10gW29wdGlvbnMgdG8g
cGFzcyB0byBidWlsZCBzeXN0ZW1dCi0gIC0taGVscCAgICAgICAgU2hvdyB0aGlzIGhlbHAgbWVz
c2FnZQotICAtLWNsZWFuICAgICAgIENsZWFuIHVwIHRoZSBidWlsZCBkaXJlY3RvcnkKLUVPRgot
Ci1teSAkcmVzdWx0ID0gR2V0T3B0aW9ucygKLSAgICAiaGVscCIgPT4gXCRzaG93SGVscCwKLSAg
ICAiY2xlYW4iID0+IFwkY2xlYW4sCi0pOwotCi1pZiAoJHNob3dIZWxwIHx8ICEkcmVzdWx0KSB7
Ci0gICBwcmludCBTVERFUlIgJHVzYWdlOwotICAgZXhpdCAxOwotfQotCi1jaGVja1JlcXVpcmVk
U3lzdGVtQ29uZmlnKCk7Ci1zZXRDb25maWd1cmF0aW9uKCk7Ci1jaGRpcldlYktpdCgpOwotCi1t
eSBAeGNvZGVPcHRpb25zID0gWGNvZGVPcHRpb25zKCk7Ci0KLWJ1aWxkUHJvamVjdE9yRGllKCJT
b3VyY2UvYm1hbGxvYyIsICJibWFsbG9jIik7Ci1idWlsZFByb2plY3RPckRpZSgiU291cmNlL1dU
RiIsICJXVEYiKTsKLWJ1aWxkUHJvamVjdE9yRGllKCJUb29scy9sbGRiL2xsZGJXZWJLaXRUZXN0
ZXIiLCAibGxkYldlYktpdFRlc3RlciIpOwotCi1zdWIgYnVpbGRQcm9qZWN0T3JEaWUoJCQpCi17
Ci0gICAgbXkgKCRwYXRoLCAkcHJvamVjdCkgPSBAXzsKLSAgICBjaGRpcigkcGF0aCkgb3IgZGll
OwotICAgICRyZXN1bHQgPSBleGl0U3RhdHVzKGJ1aWxkWENvZGVQcm9qZWN0KCRwcm9qZWN0LCAk
Y2xlYW4sIEB4Y29kZU9wdGlvbnMsIEBBUkdWKSk7Ci0gICAgZXhpdCAkcmVzdWx0IGlmICRyZXN1
bHQ7Ci0gICAgY2hkaXJXZWJLaXQoKTsKLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvZHVt
cC1jbGFzcy1sYXlvdXQgYi9Ub29scy9TY3JpcHRzL2R1bXAtY2xhc3MtbGF5b3V0CmluZGV4IDZm
NmViYTQyZGU4MTc1MzYyYjJjMjE5Nzc5MTZkODc0YjU1MDRjZDUuLmQ0MTg2NDQ1NTgzNmUzYjBl
MmIwNjU0NmI5YmFiNjI2Njg1ODZlYzUgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvZHVtcC1j
bGFzcy1sYXlvdXQKKysrIGIvVG9vbHMvU2NyaXB0cy9kdW1wLWNsYXNzLWxheW91dApAQCAtMzEs
OSArMzEsNiBAQCBpbXBvcnQgb3MKIGltcG9ydCBzdWJwcm9jZXNzCiBmcm9tIHNldHMgaW1wb3J0
IFNldAogCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBvcnQgU3lz
dGVtSG9zdAotc3lzLnBhdGguYXBwZW5kKFN5c3RlbUhvc3QoKS5wYXRoX3RvX2xsZGJfcHl0aG9u
X2RpcmVjdG9yeSgpKQotaW1wb3J0IGxsZGIKIAogZnJhbWV3b3JrID0gIldlYkNvcmUiCiBidWls
ZF9kaXJlY3RvcnkgPSAiIgpAQCAtNDQsNiArNDEsMjEgQEAgZGVmIHdlYmtpdF9idWlsZF9kaXIo
KToKICAgICBzY3JpcHRwYXRoID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVhbHBhdGgoX19m
aWxlX18pKQogICAgIHJldHVybiBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChbb3MucGF0aC5qb2lu
KHNjcmlwdHBhdGgsICJ3ZWJraXQtYnVpbGQtZGlyZWN0b3J5IiksICItLXRvcC1sZXZlbCJdKS5z
dHJpcCgpCiAKK2RlZiBkZXZlbG9wZXJfZGlyKCk6CisgICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hl
Y2tfb3V0cHV0KFsieGNvZGUtc2VsZWN0IiwgIi0tcHJpbnQtcGF0aCJdKQorCitkZWYgaW1wb3J0
X2xsZGIoKToKKyAgICB4Y29kZV9jb250ZW50c19wYXRoID0gb3MucGF0aC5zcGxpdChkZXZlbG9w
ZXJfZGlyKCkpWzBdCisgICAgbGxkYl9mcmFtZXdvcmtfcGF0aCA9IG9zLnBhdGguam9pbih4Y29k
ZV9jb250ZW50c19wYXRoLCAiU2hhcmVkRnJhbWV3b3JrcyIsICJMTERCLmZyYW1ld29yayIsICJS
ZXNvdXJjZXMiLCAiUHl0aG9uIikKKyAgICBzeXMucGF0aC5hcHBlbmQobGxkYl9mcmFtZXdvcmtf
cGF0aCkKKworICAgIExMREJfTU9EVUxFX05BTUUgPSAibGxkYiIKKyAgICB0cnk6CisgICAgICAg
IGdsb2JhbHMoKVtMTERCX01PRFVMRV9OQU1FXSA9IF9faW1wb3J0X18oTExEQl9NT0RVTEVfTkFN
RSkKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIHByaW50ICJGYWlsZWQgdG8gaW1w
b3J0IHt9IGZyb20ge30iLmZvcm1hdChMTERCX01PRFVMRV9OQU1FLCBsbGRiX2ZyYW1ld29ya19w
YXRoKQorICAgICAgICBzeXMuZXhpdCgxKQorCiBkZWYgdmVyaWZ5X3R5cGUodGFyZ2V0LCB0eXBl
KToKICAgICB0eXBlbmFtZSA9IHR5cGUuR2V0TmFtZSgpCiAgICAgc2Vlbk9mZnNldCA9IFNldCgp
CkBAIC0xODQsNiArMTk2LDcgQEAgZGVmIG1haW4oKToKICAgICAgICAgYnVpbGRfZGlyID0gYXJn
cy5idWlsZF9kaXJlY3RvcnkKIAogICAgIHRhcmdldF9wYXRoID0gb3MucGF0aC5qb2luKGJ1aWxk
X2RpciwgYXJncy5jb25maWcsIGFyZ3MuZnJhbWV3b3JrICsgIi5mcmFtZXdvcmsiLCBhcmdzLmZy
YW1ld29yayk7CisgICAgaW1wb3J0X2xsZGIoKQogICAgIGR1bXBfY2xhc3ModGFyZ2V0X3BhdGgs
IGFyZ3MuY2xhc3NuYW1lLCBhcmdzLmFyY2gpCiAKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20v
c2NtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQv
c2NtL3NjbV91bml0dGVzdC5weQppbmRleCAyMmViN2NlNGE0NThjZjA3MmJlN2QzMDFkZjI1NDcy
ODg0ZTgzYmJjLi44OTIxY2E5ODI4NjRiNzQxOTQ5YjI2NjQ1OTg4MTBlN2ViNDMzMDBmIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3Nj
bS9zY21fdW5pdHRlc3QucHkKQEAgLTYwLDggKzYwLDcgQEAgZnJvbSAuc3ZuIGltcG9ydCBTVk4K
IAogIyBXZSBjYWNoZSB0aGUgbW9jayBTVk4gcmVwbyBzbyB0aGF0IHdlIGRvbid0IGNyZWF0ZSBp
dCBhZ2FpbiBmb3IgZWFjaCBjYWxsIHRvIGFuIFNWTlRlc3Qgb3IgR2l0VGVzdCB0ZXN0XyBtZXRo
b2QuCiAjIFdlIHN0b3JlIGl0IGluIGEgZ2xvYmFsIHZhcmlhYmxlIHNvIHRoYXQgd2UgY2FuIGRl
bGV0ZSB0aGlzIGNhY2hlZCByZXBvIG9uIGV4aXQoMykuCi0jIEZJWE1FOiBSZW1vdmUgdGhpcyBv
bmNlIHRlc3Qtd2Via2l0cHkgc3VwcG9ydHMgY2xhc3MgYW5kIG1vZHVsZSBmaXh0dXJlcyAoaS5l
LiBzZXRVcENsYXNzKCkvc2V0VXBNb2R1bGUoKQotIyBhcmUgY2FsbGVkIGV4YWN0bHkgb25jZSBw
ZXIgY2xhc3MvbW9kdWxlKS4KKyMgRklYTUU6IFJlbW92ZSB0aGlzIG9uY2Ugd2UgbWlncmF0ZSB0
byBQeXRob24gMi43LiBVbml0dGVzdCBpbiBQeXRob24gMi43IHN1cHBvcnRzIG1vZHVsZS1zcGVj
aWZpYyBzZXR1cCBhbmQgdGVhcmRvd24gZnVuY3Rpb25zLgogY2FjaGVkX3N2bl9yZXBvX3BhdGgg
PSBOb25lCiAKIApAQCAtNzEsOCArNzAsNyBAQCBkZWYgcmVtb3ZlX2RpcihwYXRoKToKICAgICBz
aHV0aWwucm10cmVlKHBhdGgpCiAKIAotIyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSB0ZXN0LXdl
YmtpdHB5IHN1cHBvcnRzIGNsYXNzIGFuZCBtb2R1bGUgZml4dHVyZXMgKGkuZS4gc2V0VXBDbGFz
cygpL3NldFVwTW9kdWxlKCkKLSMgYXJlIGNhbGxlZCBleGFjdGx5IG9uY2UgcGVyIGNsYXNzL21v
ZHVsZSkuCisjIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIHdlIG1pZ3JhdGUgdG8gUHl0aG9uIDIu
Ny4gVW5pdHRlc3QgaW4gUHl0aG9uIDIuNyBzdXBwb3J0cyBtb2R1bGUtc3BlY2lmaWMgc2V0dXAg
YW5kIHRlYXJkb3duIGZ1bmN0aW9ucy4KIEBhdGV4aXQucmVnaXN0ZXIKIGRlZiBkZWxldGVfY2Fj
aGVkX21vY2tfcmVwb19hdF9leGl0KCk6CiAgICAgaWYgY2FjaGVkX3N2bl9yZXBvX3BhdGg6CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3lzdGVtaG9z
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0LnB5
CmluZGV4IDFjYTI5Mjg0NDk4MjRjMmYwZmMxZjMwY2FlNWVlMTIxYTgzNGIzZDkuLmExNTM0MjIw
MWQ4MzM0MTQ3MzFlYmQwZjc2ZjcxNzlhNmYwYmQ2ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0LnB5CkBAIC00Nyw4ICs0NywzIEBA
IGNsYXNzIFN5c3RlbUhvc3Qob2JqZWN0KToKIAogICAgIGRlZiBzeW1ib2xpY2F0ZV9jcmFzaF9s
b2dfaWZfbmVlZGVkKHNlbGYsIHBhdGgpOgogICAgICAgICByZXR1cm4gc2VsZi5maWxlc3lzdGVt
LnJlYWRfdGV4dF9maWxlKHBhdGgpCi0KLSAgICBkZWYgcGF0aF90b19sbGRiX3B5dGhvbl9kaXJl
Y3Rvcnkoc2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLnBsYXRmb3JtLmlzX21hYygpOgotICAg
ICAgICAgICAgcmV0dXJuICcnCi0gICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dGl2ZS5ydW5fY29t
bWFuZChbJ3hjcnVuJywgJ2xsZGInLCAnLS1weXRob24tcGF0aCddLCByZXR1cm5fc3RkZXJyPUZh
bHNlKS5yc3RyaXAoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L21h
aW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbi5weQppbmRleCBhMWE0NTc3
MWRkMjJhY2YyZjlmNGI5ZWQxYmVkYzA0MzQ5YWE2ZDU2Li41ZmFjYWE1NDZkZWU5NjU4YmFjOTg0
OGVhMDJlMWZjNDgyYTBmMmVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rl
c3QvbWFpbi5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbi5weQpAQCAt
MSw2ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jLgogIyBDb3B5cmln
aHQgKEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNqZXJkb25la0B3ZWJraXQub3JnKQotIyBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw1OCArMzcsMjYgQEAgaW1wb3J0IHRyYWNlYmFjawog
aW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d1dGlscyBp
bXBvcnQgY29uZmlndXJlX2xvZ2dpbmcKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVj
dXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVz
eXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0
ZW1ob3N0IGltcG9ydCBTeXN0ZW1Ib3N0Ci1mcm9tIHdlYmtpdHB5LnBvcnQuY29uZmlnIGltcG9y
dCBDb25maWcKIGZyb20gd2Via2l0cHkudGVzdC5maW5kZXIgaW1wb3J0IEZpbmRlcgogZnJvbSB3
ZWJraXRweS50ZXN0LnByaW50ZXIgaW1wb3J0IFByaW50ZXIKIGZyb20gd2Via2l0cHkudGVzdC5y
dW5uZXIgaW1wb3J0IFJ1bm5lciwgdW5pdF90ZXN0X25hbWUKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKF9fbmFtZV9fKQogCi1faG9zdCA9IFN5c3RlbUhvc3QoKQotX3dlYmtpdF9yb290ID0g
Tm9uZQotCi0KLWRlZiBfZmluZF9sbGRiX3dlYmtpdF90ZXN0ZXIoKToKLSAgICBjb25maWcgPSBD
b25maWcoX2hvc3QuZXhlY3V0aXZlLCBfaG9zdC5maWxlc3lzdGVtKQotICAgIGxsZGJfd2Via2l0
X3Rlc3Rlcl9leGVjdXRhYmxlID0gb3MucGF0aC5qb2luKGNvbmZpZy5idWlsZF9kaXJlY3Rvcnko
Y29uZmlnLmRlZmF1bHRfY29uZmlndXJhdGlvbigpKSwgJ2xsZGJXZWJLaXRUZXN0ZXInKQotICAg
IHJldHVybiBvcy5wYXRoLmlzZmlsZShsbGRiX3dlYmtpdF90ZXN0ZXJfZXhlY3V0YWJsZSkgYW5k
IG9zLmFjY2VzcyhsbGRiX3dlYmtpdF90ZXN0ZXJfZXhlY3V0YWJsZSwgb3MuWF9PSykKLQotCi1k
ZWYgX2J1aWxkX2xsZGJfd2Via2l0X3Rlc3RlcigpOgotICAgIGlmIG5vdCBfaG9zdC5wbGF0Zm9y
bS5pc19tYWMoKToKLSAgICAgICAgX2xvZy5lcnJvcignbGxkYldlYktpdFRlc3RlciBpcyBub3Qg
c3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0uJykKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAg
Y29uZmlnID0gQ29uZmlnKF9ob3N0LmV4ZWN1dGl2ZSwgX2hvc3QuZmlsZXN5c3RlbSkKLSAgICBi
dWlsZF9sbGRid2Via2l0dGVzdGVyID0gb3MucGF0aC5qb2luKF93ZWJraXRfcm9vdCwgJ1Rvb2xz
JywgJ1NjcmlwdHMnLCAnYnVpbGQtbGxkYndlYmtpdHRlc3RlcicpCi0gICAgcmV0dXJuIF9ob3N0
LmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbYnVpbGRfbGxkYndlYmtpdHRlc3RlciwgY29uZmlnLmZs
YWdfZm9yX2NvbmZpZ3VyYXRpb24oY29uZmlnLmRlZmF1bHRfY29uZmlndXJhdGlvbigpKV0sIHJl
dHVybl9leGl0X2NvZGU9VHJ1ZSkgPT0gMAotCiAKIGRlZiBtYWluKCk6Ci0gICAgZ2xvYmFsIF93
ZWJraXRfcm9vdAogICAgIGNvbmZpZ3VyZV9sb2dnaW5nKGxvZ2dlcj1fbG9nKQogCiAgICAgdXAg
PSBvcy5wYXRoLmRpcm5hbWUKLSAgICBfd2Via2l0X3Jvb3QgPSB1cCh1cCh1cCh1cCh1cChvcy5w
YXRoLmFic3BhdGgoX19maWxlX18pKSkpKSkKKyAgICB3ZWJraXRfcm9vdCA9IHVwKHVwKHVwKHVw
KHVwKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpKSkpKQogCiAgICAgdGVzdGVyID0gVGVzdGVy
KCkKLSAgICB0ZXN0ZXIuYWRkX3RyZWUob3MucGF0aC5qb2luKF93ZWJraXRfcm9vdCwgJ1Rvb2xz
JywgJ1NjcmlwdHMnKSwgJ3dlYmtpdHB5JykKKyAgICB0ZXN0ZXIuYWRkX3RyZWUob3MucGF0aC5q
b2luKHdlYmtpdF9yb290LCAnVG9vbHMnLCAnU2NyaXB0cycpLCAnd2Via2l0cHknKQogCiAgICAg
IyBUaGVyZSBpcyBubyBXZWJLaXQyIG9uIFdpbmRvd3MsIHNvIHdlIGRvbid0IG5lZWQgdG8gcnVu
IFdlYktpdDIgdW5pdHRlc3RzIG9uIGl0LgogICAgIGlmIG5vdCAoc3lzLnBsYXRmb3JtLnN0YXJ0
c3dpdGgoJ3dpbicpIG9yIHN5cy5wbGF0Zm9ybSA9PSAnY3lnd2luJyk6Ci0gICAgICAgIHRlc3Rl
ci5hZGRfdHJlZShvcy5wYXRoLmpvaW4oX3dlYmtpdF9yb290LCAnU291cmNlJywgJ1dlYktpdCcs
ICdTY3JpcHRzJyksICd3ZWJraXQnKQotCi0gICAgbGxkYl9weXRob25fZGlyZWN0b3J5ID0gX2hv
c3QucGF0aF90b19sbGRiX3B5dGhvbl9kaXJlY3RvcnkoKQotICAgIGlmIG9zLnBhdGguaXNkaXIo
bGxkYl9weXRob25fZGlyZWN0b3J5KToKLSAgICAgICAgaWYgbGxkYl9weXRob25fZGlyZWN0b3J5
IG5vdCBpbiBzeXMucGF0aDoKLSAgICAgICAgICAgIHN5cy5wYXRoLmFwcGVuZChsbGRiX3B5dGhv
bl9kaXJlY3RvcnkpCi0gICAgICAgIHRlc3Rlci5hZGRfdHJlZShvcy5wYXRoLmpvaW4oX3dlYmtp
dF9yb290LCAnVG9vbHMnLCAnbGxkYicpKQotICAgICAgICB3aWxsX3J1bl9sbGRiX3dlYmtpdF90
ZXN0cyA9IFRydWUKLSAgICBlbHNlOgotICAgICAgICBfbG9nLmluZm8oIlNraXBwaW5nIGxsZGJf
d2Via2l0IHRlc3RzOyBjb3VsZCBub3QgZmluZCBwYXRoIHRvIGxsZGIucHkgJ3t9Jy4iLmZvcm1h
dChsbGRiX3B5dGhvbl9kaXJlY3RvcnkpKQotICAgICAgICB3aWxsX3J1bl9sbGRiX3dlYmtpdF90
ZXN0cyA9IEZhbHNlCisgICAgICAgIHRlc3Rlci5hZGRfdHJlZShvcy5wYXRoLmpvaW4od2Via2l0
X3Jvb3QsICdTb3VyY2UnLCAnV2ViS2l0JywgJ1NjcmlwdHMnKSwgJ3dlYmtpdCcpCiAKICAgICB0
ZXN0ZXIuc2tpcCgoJ3dlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uc2NtX3VuaXR0ZXN0Jywp
LCAnYXJlIHJlYWxseSwgcmVhbGx5LCBzbG93JywgMzE4MTgpCiAgICAgaWYgc3lzLnBsYXRmb3Jt
LnN0YXJ0c3dpdGgoJ3dpbicpOgpAQCAtMTA0LDExICs3MSwxMSBAQCBkZWYgbWFpbigpOgogICAg
ICAgICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZGlzdCBpbXBvcnQgdXNlX2xpYnJhcnkKICAgICAg
ICAgdXNlX2xpYnJhcnkoJ2RqYW5nbycsICcxLjInKQogICAgICAgICBkZXZfYXBwc2VydmVyLmZp
eF9zeXNfcGF0aCgpCi0gICAgICAgIHRlc3Rlci5hZGRfdHJlZShvcy5wYXRoLmpvaW4oX3dlYmtp
dF9yb290LCAnVG9vbHMnLCAnUXVldWVTdGF0dXNTZXJ2ZXInKSkKKyAgICAgICAgdGVzdGVyLmFk
ZF90cmVlKG9zLnBhdGguam9pbih3ZWJraXRfcm9vdCwgJ1Rvb2xzJywgJ1F1ZXVlU3RhdHVzU2Vy
dmVyJykpCiAgICAgZWxzZToKICAgICAgICAgX2xvZy5pbmZvKCdTa2lwcGluZyBRdWV1ZVN0YXR1
c1NlcnZlciB0ZXN0czsgdGhlIEdvb2dsZSBBcHBFbmdpbmUgUHl0aG9uIFNESyBpcyBub3QgaW5z
dGFsbGVkLicpCiAKLSAgICByZXR1cm4gbm90IHRlc3Rlci5ydW4od2lsbF9ydW5fbGxkYl93ZWJr
aXRfdGVzdHM9d2lsbF9ydW5fbGxkYl93ZWJraXRfdGVzdHMpCisgICAgcmV0dXJuIG5vdCB0ZXN0
ZXIucnVuKCkKIAogCiBkZWYgX3ByaW50X3Jlc3VsdHNfYXNfanNvbihzdHJlYW0sIGFsbF90ZXN0
X25hbWVzLCBmYWlsdXJlcywgZXJyb3JzKToKQEAgLTE2NCw3ICsxMzEsNyBAQCBjbGFzcyBUZXN0
ZXIob2JqZWN0KToKIAogICAgICAgICByZXR1cm4gcGFyc2VyLnBhcnNlX2FyZ3MoYXJndikKIAot
ICAgIGRlZiBydW4oc2VsZiwgd2lsbF9ydW5fbGxkYl93ZWJraXRfdGVzdHM9RmFsc2UpOgorICAg
IGRlZiBydW4oc2VsZik6CiAgICAgICAgIHNlbGYuX29wdGlvbnMsIGFyZ3MgPSBzZWxmLl9wYXJz
ZV9hcmdzKCkKICAgICAgICAgc2VsZi5wcmludGVyLmNvbmZpZ3VyZShzZWxmLl9vcHRpb25zKQog
CkBAIC0xNzUsOSArMTQyLDkgQEAgY2xhc3MgVGVzdGVyKG9iamVjdCk6CiAgICAgICAgICAgICBf
bG9nLmVycm9yKCdObyB0ZXN0cyB0byBydW4nKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAK
LSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl90ZXN0cyhuYW1lcywgd2lsbF9ydW5fbGxkYl93ZWJr
aXRfdGVzdHMpCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fdGVzdHMobmFtZXMpCiAKLSAgICBk
ZWYgX3J1bl90ZXN0cyhzZWxmLCBuYW1lcywgd2lsbF9ydW5fbGxkYl93ZWJraXRfdGVzdHMpOgor
ICAgIGRlZiBfcnVuX3Rlc3RzKHNlbGYsIG5hbWVzKToKICAgICAgICAgIyBNYWtlIHN1cmUgUFlU
SE9OUEFUSCBpcyBzZXQgdXAgcHJvcGVybHkuCiAgICAgICAgIHN5cy5wYXRoID0gc2VsZi5maW5k
ZXIuYWRkaXRpb25hbF9wYXRocyhzeXMucGF0aCkgKyBzeXMucGF0aAogCkBAIC0xODcsMTQgKzE1
NCw2IEBAIGNsYXNzIFRlc3RlcihvYmplY3QpOgogICAgICAgICBmcm9tIHdlYmtpdHB5LnRoaXJk
cGFydHkgaW1wb3J0IGF1dG9pbnN0YWxsX2V2ZXJ5dGhpbmcKICAgICAgICAgYXV0b2luc3RhbGxf
ZXZlcnl0aGluZygpCiAKLSAgICAgICAgaWYgd2lsbF9ydW5fbGxkYl93ZWJraXRfdGVzdHM6Ci0g
ICAgICAgICAgICBzZWxmLnByaW50ZXIud3JpdGVfdXBkYXRlKCJDaGVja2luZyBsbGRiV2ViS2l0
VGVzdGVyIC4uLiIpCi0gICAgICAgICAgICBpZiBub3QgX2ZpbmRfbGxkYl93ZWJraXRfdGVzdGVy
KCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5wcmludGVyLndyaXRlX3VwZGF0ZSgiQnVpbGRpbmcg
bGxkYldlYktpdFRlc3RlciAuLi4iKQotICAgICAgICAgICAgICAgIGlmIG5vdCBfYnVpbGRfbGxk
Yl93ZWJraXRfdGVzdGVyKCk6Ci0gICAgICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0ZhaWxl
ZCB0byBidWlsZCBsbGRiV2ViS2l0VGVzdGVyLicpCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBGYWxzZQotCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuY292ZXJhZ2U6CiAgICAgICAgICAg
ICBfbG9nLndhcm5pbmcoIkNoZWNraW5nIGNvZGUgY292ZXJhZ2UsIHNvIHJ1bm5pbmcgdGhpbmdz
IHNlcmlhbGx5IikKICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzID0g
MQpkaWZmIC0tZ2l0IGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL0NvbmZpZ3VyYXRpb25z
L0Jhc2UueGNjb25maWcgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvQ29uZmlndXJhdGlv
bnMvQmFzZS54Y2NvbmZpZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGMwZTdkODAz
NTI2N2I3ZmU3YjQ3MmMyYzQyYjBiZjZkYjM2OGQ0ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgL2Rldi9udWxsCkBAIC0xLDExOSArMCwwIEBACi0v
LyBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLS8vIGFyZSBtZXQ6Ci0vLyAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLS8vICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0vLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotLy8gSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0vLyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotLy8gQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0vLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0vLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLS8vIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLS8v
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jaW5jbHVkZT8gIi4uLy4u
Ly4uLy4uLy4uL0ludGVybmFsL0NvbmZpZ3VyYXRpb25zL0hhdmVJbnRlcm5hbFNESy54Y2NvbmZp
ZyIKLQotVVNFX0lOVEVSTkFMX1NESyA9ICQoVVNFX0lOVEVSTkFMX1NES18kKENPTkZJR1VSQVRJ
T04pKTsKLVVTRV9JTlRFUk5BTF9TREtfUHJvZHVjdGlvbiA9IFlFUzsKLVVTRV9JTlRFUk5BTF9T
REtfRGVidWcgPSAkKEhBVkVfSU5URVJOQUxfU0RLKTsKLVVTRV9JTlRFUk5BTF9TREtfUmVsZWFz
ZSA9ICQoSEFWRV9JTlRFUk5BTF9TREspOwotCi1BTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBO
TzsKLQotQ0xBTkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251KysxNDsKLUNMQU5HX0NYWF9M
SUJSQVJZID0gbGliYysrOwotQ0xBTkdfRU5BQkxFX09CSkNfV0VBSyA9IFlFUzsKLUNMQU5HX1dB
Uk5fQkxPQ0tfQ0FQVFVSRV9BVVRPUkVMRUFTSU5HID0gWUVTOwotQ0xBTkdfV0FSTl9CT09MX0NP
TlZFUlNJT04gPSBZRVM7Ci1DTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7Ci1D
TEFOR19XQVJOX0NYWDBYX0VYVEVOU0lPTlMgPSBOTzsKLUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9
IFlFUzsKLUNMQU5HX1dBUk5fRU5VTV9DT05WRVJTSU9OID0gWUVTOwotQ0xBTkdfV0FSTl9JTkZJ
TklURV9SRUNVUlNJT04gPSBZRVM7Ci1DTEFOR19XQVJOX0lOVF9DT05WRVJTSU9OID0gWUVTOwot
Q0xBTkdfV0FSTl9OT05fTElURVJBTF9OVUxMX0NPTlZFUlNJT04gPSBZRVM7Ci1DTEFOR19XQVJO
X09CSkNfTElURVJBTF9DT05WRVJTSU9OID0gWUVTOwotQ0xBTkdfV0FSTl9SQU5HRV9MT09QX0FO
QUxZU0lTID0gWUVTOwotQ0xBTkdfV0FSTl9TVFJJQ1RfUFJPVE9UWVBFUyA9IFlFUzsKLUNMQU5H
X1dBUk5fU1VTUElDSU9VU19NT1ZFID0gWUVTOwotQ0xBTkdfV0FSTl9VTlJFQUNIQUJMRV9DT0RF
ID0gTk87Ci1DTEFOR19XQVJOX19EVVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOwotR0NDX1dB
Uk5fVU5ERUNMQVJFRF9TRUxFQ1RPUiA9IFlFUzsKLUNPTUJJTkVfSElEUElfSU1BR0VTID0gTk87
Ci1ERUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSBkd2FyZi13aXRoLWRzeW07Ci1FTkFCTEVfU1RS
SUNUX09CSkNfTVNHU0VORCA9IFlFUzsKLUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7
Ci1HQ0NfREVCVUdHSU5HX1NZTUJPTFMgPSBkZWZhdWx0OwotR0NDX0RZTkFNSUNfTk9fUElDID0g
Tk87Ci1HQ0NfRU5BQkxFX0NQUF9FWENFUFRJT05TID0gTk87Ci1HQ0NfRU5BQkxFX0NQUF9SVFRJ
ID0gTk87Ci1HQ0NfRU5BQkxFX09CSkNfRVhDRVBUSU9OUyA9IFlFUzsKLUdDQ19FTkFCTEVfU1lN
Qk9MX1NFUEFSQVRJT04gPSBOTzsKLUdDQ19GQVNUX09CSkNfRElTUEFUQ0ggPSBZRVM7Ci1HQ0Nf
R0VORVJBVEVfREVCVUdHSU5HX1NZTUJPTFMgPSBZRVM7Ci1HQ0NfTk9fQ09NTU9OX0JMT0NLUyA9
IFlFUzsKLUdDQ19PQkpDX0NBTExfQ1hYX0NEVE9SUyA9IFlFUzsKLUdDQ19QUkVDT01QSUxFX1BS
RUZJWF9IRUFERVIgPSBZRVM7Ci1HQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gJChERUJV
R19ERUZJTkVTKSAkKGluaGVyaXRlZCk7Ci1HQ0NfU1RSSUNUX0FMSUFTSU5HID0gWUVTOwotR0ND
X1NZTUJPTFNfUFJJVkFURV9FWFRFUk4gPSBOTzsKLUdDQ19USFJFQURTQUZFX1NUQVRJQ1MgPSBO
TzsKLUdDQ19UUkVBVF9XQVJOSU5HU19BU19FUlJPUlMgPSBZRVM7Ci1HQ0NfVkVSU0lPTiA9IGNv
bS5hcHBsZS5jb21waWxlcnMubGx2bS5jbGFuZy4xXzA7Ci1HQ0NfV0FSTl82NF9UT18zMl9CSVRf
Q09OVkVSU0lPTiA9IE5POwotR0NDX1dBUk5fQUJPVVRfREVQUkVDQVRFRF9GVU5DVElPTlMgPSBO
TzsKLUdDQ19XQVJOX0FCT1VUX01JU1NJTkdfTkVXTElORSA9IFlFUzsKLUdDQ19XQVJOX0FCT1VU
X01JU1NJTkdfUFJPVE9UWVBFUyA9IFlFUzsKLUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0g
WUVTOwotR0NDX1dBUk5fTk9OX1ZJUlRVQUxfREVTVFJVQ1RPUiA9IFlFUzsKLUdDQ19XQVJOX1NJ
R05fQ09NUEFSRSA9IFlFUzsKLUdDQ19XQVJOX1VOREVDTEFSRURfU0VMRUNUT1IgPSBZRVM7Ci1H
Q0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTOwotR0NDX1dBUk5fVU5VU0VEX0ZVTkNU
SU9OID0gWUVTOwotR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gTk87Ci1XQVJOSU5HX0NGTEFH
UyA9IC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0
PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0
dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1X
d3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3Rv
cnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoOwotCi1IRUFE
RVJfU0VBUkNIX1BBVEhTID0gJHtCVUlMVF9QUk9EVUNUU19ESVJ9L3Vzci9sb2NhbC9pbmNsdWRl
OwotCi1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmllcikp
OwotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTEgPSAxMDExMDA7Ci1UQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9NQUpPUl8xMiA9IDEwMTIwMDsKLVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SXzEzID0gMTAxMzAwOwotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTQgPSAx
MDE0MDA7Ci1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xNSA9IDEwMTUwMDsKLQotU1VQ
UE9SVEVEX1BMQVRGT1JNUyA9IG1hY29zeDsKLQotLy8gREVCVUdfREVGSU5FUywgR0NDX09QVElN
SVpBVElPTl9MRVZFTCwgU1RSSVBfSU5TVEFMTEVEX1BST0RVQ1QgYW5kIERFQURfQ09ERV9TVFJJ
UFBJTkcgdmFyeSBiZXR3ZWVuIHRoZSBkZWJ1ZyBhbmQgbm9ybWFsIHZhcmlhbnRzLgotLy8gV2Ug
c2V0IHVwIHRoZSB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFudCBoZXJlLCBhbmQgaGF2ZSB0aGUgRGVi
dWcgY29uZmlndXJhdGlvbiBpbiB0aGUgWGNvZGUgcHJvamVjdCB1c2UgdGhlIF9kZWJ1ZyB2YXJp
YW50LgotREVCVUdfREVGSU5FU19kZWJ1ZyA9IDsKLURFQlVHX0RFRklORVNfbm9ybWFsID0gTkRF
QlVHOwotREVCVUdfREVGSU5FUyA9ICQoREVCVUdfREVGSU5FU18kKENVUlJFTlRfVkFSSUFOVCkp
OwotCi1HQ0NfT1BUSU1JWkFUSU9OX0xFVkVMID0gJChHQ0NfT1BUSU1JWkFUSU9OX0xFVkVMXyQo
Q1VSUkVOVF9WQVJJQU5UKSk7Ci1HQ0NfT1BUSU1JWkFUSU9OX0xFVkVMX25vcm1hbFtzZGs9bWFj
b3N4Kl0gPSAyOwotR0NDX09QVElNSVpBVElPTl9MRVZFTF9kZWJ1ZyA9IDA7Ci0KLVNUUklQX0lO
U1RBTExFRF9QUk9EVUNUID0gJChTVFJJUF9JTlNUQUxMRURfUFJPRFVDVF8kKENVUlJFTlRfVkFS
SUFOVCkpOwotU1RSSVBfSU5TVEFMTEVEX1BST0RVQ1Rfbm9ybWFsID0gWUVTOwotU1RSSVBfSU5T
VEFMTEVEX1BST0RVQ1RfZGVidWcgPSBOTzsKLQotREVBRF9DT0RFX1NUUklQUElOR19kZWJ1ZyA9
IE5POwotREVBRF9DT0RFX1NUUklQUElOR19ub3JtYWwgPSBZRVM7Ci1ERUFEX0NPREVfU1RSSVBQ
SU5HID0gJChERUFEX0NPREVfU1RSSVBQSU5HXyQoQ1VSUkVOVF9WQVJJQU5UKSk7Ci0KLVNES1JP
T1QgPSBtYWNvc3guaW50ZXJuYWw7Ci0KLU9USEVSX0NGTEFHUyA9ICQoQVNBTl9PVEhFUl9DRkxB
R1MpOwotT1RIRVJfQ1BMVVNQTFVTRkxBR1MgPSAkKEFTQU5fT1RIRVJfQ1BMVVNQTFVTRkxBR1Mp
OwotT1RIRVJfTERGTEFHUyA9ICQoQVNBTl9PVEhFUl9MREZMQUdTKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNj
b25maWcgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvQ29uZmlndXJhdGlvbnMvRGVidWdS
ZWxlYXNlLnhjY29uZmlnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YzRmNzE3MDBl
ZTRhNDNlNWFhNjBlZGM2OTAyYjg4NmM5NDlmZWYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9Db25maWd1
cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCww
IEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLS8vIGFyZSBtZXQ6Ci0vLyAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLS8v
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0vLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotLy8gSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0vLyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
Ly8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0vLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0vLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLS8vIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLS8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jaW5jbHVkZSAi
QmFzZS54Y2NvbmZpZyIKLQotT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsKLQotVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFKT1IpOwotCi1NQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8kKFBMQVRGT1JN
X05BTUUpXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKLU1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVF9tYWNvc3hfMTAxMTAwID0gMTAuMTE7Ci1NQUNPU1hfREVQTE9ZTUVOVF9UQVJH
RVRfbWFjb3N4XzEwMTIwMCA9IDEwLjEyOwotTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29z
eF8xMDEzMDAgPSAxMC4xMzsKLU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxNDAw
ID0gMTAuMTQ7Ci1NQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTUwMCA9IDEwLjE1
OwotCi1HQ0NfV0FSTl9BQk9VVF9ERVBSRUNBVEVEX0ZVTkNUSU9OUyA9IFlFUzsKLURFQlVHX0lO
Rk9STUFUSU9OX0ZPUk1BVCA9IGR3YXJmOwotCi1TREtST09UID0gJChTREtST09UXyQoVVNFX0lO
VEVSTkFMX1NESykpOwotU0RLUk9PVF8gPSBtYWNvc3g7Ci1TREtST09UX1lFUyA9IG1hY29zeC5p
bnRlcm5hbDsKLQotV0tfQ0NBQ0hFX0RJUiA9ICQoU1JDUk9PVCkvLi4vLi4vLi4vVG9vbHMvY2Nh
Y2hlOwotI2luY2x1ZGUgIi4uLy4uLy4uL2NjYWNoZS9jY2FjaGUueGNjb25maWciCmRpZmYgLS1n
aXQgYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvQ29uZmlndXJhdGlvbnMvbGxkYldlYktp
dFRlc3Rlci54Y2NvbmZpZyBiL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9Db25maWd1cmF0
aW9ucy9sbGRiV2ViS2l0VGVzdGVyLnhjY29uZmlnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5ZGE3MGYwOGJlMTAwODVlZTAwYzNiYjJjNmY0YTIxYTNiMTJjZTVkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktp
dFRlc3Rlci9Db25maWd1cmF0aW9ucy9sbGRiV2ViS2l0VGVzdGVyLnhjY29uZmlnCisrKyAvZGV2
L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0vLyBhcmUgbWV0OgotLy8gMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0v
LyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0vLyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotLy8gRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LS8vIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotLy8gUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLS8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotLy8gRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotLy8gUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0vLyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0vLyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotUFJPRFVDVF9OQU1FID0gJChUQVJHRVRfTkFNRSk7Ci0KLVJFTEVBU0VfREVGSU5F
U19kZWJ1ZyA9IDsKLVJFTEVBU0VfREVGSU5FU19ub3JtYWwgPSBSRUxFQVNFX1dJVEhPVVRfT1BU
SU1JWkFUSU9OUzsKLVJFTEVBU0VfREVGSU5FUyA9ICQoUkVMRUFTRV9ERUZJTkVTXyQoQ1VSUkVO
VF9WQVJJQU5UKSk7Ci0KLUdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAkKGluaGVyaXRl
ZCkgJChSRUxFQVNFX0RFRklORVMpOwotR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDA7Ci1TVFJJ
UF9JTlNUQUxMRURfUFJPRFVDVCA9IE5POwotREVBRF9DT0RFX1NUUklQUElORyA9IE5POwotT1RI
RVJfTERGTEFHU1tzZGs9bWFjb3N4Kl0gPSAkKGluaGVyaXRlZCkgLWZyYW1ld29yayBDb2NvYSAt
Zm9yY2VfbG9hZCAiJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYldURi5hIjsKZGlmZiAtLWdpdCBh
L1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9NYWtlZmlsZSBiL1Rvb2xzL2xsZGIvbGxkYldl
YktpdFRlc3Rlci9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDU4YzIx
ZTFiYTM4N2E4YmE0ZmM0M2YxNDQ0YzM4MGVlYzc5ZWRlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvTWFr
ZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVNDUklQVFNfUEFUSCA9IC4uLy4u
L1NjcmlwdHMKLWluY2x1ZGUgLi4vLi4vLi4vTWFrZWZpbGUuc2hhcmVkCmRpZmYgLS1naXQgYS9U
b29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbGxkYldlYktpdFRlc3Rlci54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL2xsZGJXZWJLaXRUZXN0
ZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzUyYTE1ZTEyODMzN2IwYjZlNDgzOTUwOTA1NGFjM2RhNzMxNjIxNy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRU
ZXN0ZXIvbGxkYldlYktpdFRlc3Rlci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyAvZGV2
L251bGwKQEAgLTEsMjA1ICswLDAgQEAKLS8vICEkKlVURjgqJCEKLXsKLQlhcmNoaXZlVmVyc2lv
biA9IDE7Ci0JY2xhc3NlcyA9IHsKLQl9OwotCW9iamVjdFZlcnNpb24gPSA0NjsKLQlvYmplY3Rz
ID0gewotCi0vKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwotCQk3Q0I2ODQ0QjFBRkE3
OTc4MDAyQjMwNUMgLyogbWFpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3Q0I2ODQ0QTFBRkE3OTc4MDAyQjMwNUMgLyogbWFpbi5jcHAgKi87IH07
Ci0JCUNFNkMzQUZGMjBDMEIxN0IwMDNFMzNEOCAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFNkMzQUZFMjBDMEIxN0IwMDNFMzNE
OCAvKiBsaWJXVEYuYSAqLzsgfTsKLQkJQ0U2QzNCMDEyMEMwQzQ0NDAwM0UzM0Q4IC8qIGxpYmlj
dWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRTZDM0IwMDIwQzBDNDQzMDAzRTMzRDggLyogbGliaWN1Y29yZS5keWxpYiAqLzsgfTsK
LS8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhDb3B5RmlsZXNC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KLQkJN0M0QUIzOUYxQUYwMjc2QzAwM0ZDOEQxIC8qIENvcHlG
aWxlcyAqLyA9IHsKLQkJCWlzYSA9IFBCWENvcHlGaWxlc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZHN0UGF0aCA9IC91c3Ivc2hhcmUvbWFuL21hbjEv
OwotCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDA7Ci0JCQlmaWxlcyA9ICgKLQkJCSk7Ci0JCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMTsKLQkJfTsKLS8qIEVuZCBQQlhDb3B5
RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQotLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBz
ZWN0aW9uICovCi0JCTdDMjIyNzUxMUFGQzREOUMwMDhDMzMzOCAvKiBCYXNlLnhjY29uZmlnICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2Nv
bmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTdDMjIyNzUyMUFGQzREOUMwMDhDMzMzOCAvKiBsbGRiV2ViS2l0VGVzdGVyLnhjY29uZmlnICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2Nv
bmZpZzsgcGF0aCA9IGxsZGJXZWJLaXRUZXN0ZXIueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTdDMjIyNzUzMUFGQzREOUMwMDhDMzMzOCAvKiBEZWJ1Z1JlbGVhc2UueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnhjY29uZmlnOyBwYXRoID0gRGVidWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk3QzRBQjNBMTFBRjAyNzZDMDAzRkM4RDEgLyogbGxkYldlYktpdFRl
c3RlciAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNv
bXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGxk
YldlYktpdFRlc3Rlcjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJN0NC
Njg0NEExQUZBNzk3ODAwMkIzMDVDIC8qIG1haW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gbWFpbi5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKLQkJ
Q0U2QzNBRkUyMEMwQjE3QjAwM0UzM0Q4IC8qIGxpYldURi5hICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgcGF0aCA9IGxpYldURi5h
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDRTZDM0IwMDIwQzBDNDQzMDAzRTMzRDgg
LyogbGliaWN1Y29yZS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGliaWN1Y29yZS5k
eWxpYjsgcGF0aCA9IHVzci9saWIvbGliaWN1Y29yZS5keWxpYjsgc291cmNlVHJlZSA9IFNES1JP
T1Q7IH07Ci0vKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCi0KLS8qIEJlZ2luIFBC
WEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQkJN0M0QUIzOUUxQUYwMjc2QzAwM0ZD
OEQxIC8qIEZyYW1ld29ya3MgKi8gPSB7Ci0JCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFz
ZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCQlD
RTZDM0IwMTIwQzBDNDQ0MDAzRTMzRDggLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtz
ICovLAotCQkJCUNFNkMzQUZGMjBDMEIxN0IwMDNFMzNEOCAvKiBsaWJXVEYuYSBpbiBGcmFtZXdv
cmtzICovLAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwotCQl9OwotLyogRW5kIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQotLyog
QmVnaW4gUEJYR3JvdXAgc2VjdGlvbiAqLwotCQk3QzIyMjc1MDFBRkM0RDBBMDA4QzMzMzggLyog
Q29uZmlndXJhdGlvbnMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0g
KAotCQkJCTdDMjIyNzUxMUFGQzREOUMwMDhDMzMzOCAvKiBCYXNlLnhjY29uZmlnICovLAotCQkJ
CTdDMjIyNzUzMUFGQzREOUMwMDhDMzMzOCAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8sCi0J
CQkJN0MyMjI3NTIxQUZDNEQ5QzAwOEMzMzM4IC8qIGxsZGJXZWJLaXRUZXN0ZXIueGNjb25maWcg
Ki8sCi0JCQkpOwotCQkJcGF0aCA9IENvbmZpZ3VyYXRpb25zOwotCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKLQkJfTsKLQkJN0M0QUIzOTgxQUYwMjc2QzAwM0ZDOEQxID0gewotCQkJaXNhID0g
UEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk3QzIyMjc1MDFBRkM0RDBBMDA4QzMzMzgg
LyogQ29uZmlndXJhdGlvbnMgKi8sCi0JCQkJQ0UzRjQ0MjUyMDVDNkEwMTAwNzE5NUIzIC8qIEZy
YW1ld29ya3MgKi8sCi0JCQkJQ0UzRjQ0MjQyMDVDNjZEOTAwNzE5NUIzIC8qIGxsZGJXZWJLaXRU
ZXN0ZXIgKi8sCi0JCQkJN0M0QUIzQTIxQUYwMjc2QzAwM0ZDOEQxIC8qIFByb2R1Y3RzICovLAot
CQkJKTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTdDNEFCM0EyMUFGMDI3
NkMwMDNGQzhEMSAvKiBQcm9kdWN0cyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hp
bGRyZW4gPSAoCi0JCQkJN0M0QUIzQTExQUYwMjc2QzAwM0ZDOEQxIC8qIGxsZGJXZWJLaXRUZXN0
ZXIgKi8sCi0JCQkpOwotCQkJbmFtZSA9IFByb2R1Y3RzOwotCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKLQkJfTsKLQkJQ0UzRjQ0MjQyMDVDNjZEOTAwNzE5NUIzIC8qIGxsZGJXZWJLaXRUZXN0
ZXIgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTdDQjY4
NDRBMUFGQTc5NzgwMDJCMzA1QyAvKiBtYWluLmNwcCAqLywKLQkJCSk7Ci0JCQluYW1lID0gbGxk
YldlYktpdFRlc3RlcjsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUNFM0Y0
NDI1MjA1QzZBMDEwMDcxOTVCMyAvKiBGcmFtZXdvcmtzICovID0gewotCQkJaXNhID0gUEJYR3Jv
dXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlDRTZDM0IwMDIwQzBDNDQzMDAzRTMzRDggLyogbGli
aWN1Y29yZS5keWxpYiAqLywKLQkJCQlDRTZDM0FGRTIwQzBCMTdCMDAzRTMzRDggLyogbGliV1RG
LmEgKi8sCi0JCQkpOwotCQkJbmFtZSA9IEZyYW1ld29ya3M7Ci0JCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwotCQl9OwotLyogRW5kIFBCWEdyb3VwIHNlY3Rpb24gKi8KLQotLyogQmVnaW4gUEJY
TmF0aXZlVGFyZ2V0IHNlY3Rpb24gKi8KLQkJN0M0QUIzQTAxQUYwMjc2QzAwM0ZDOEQxIC8qIGxs
ZGJXZWJLaXRUZXN0ZXIgKi8gPSB7Ci0JCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7Ci0JCQlidWls
ZENvbmZpZ3VyYXRpb25MaXN0ID0gN0M0QUIzQTgxQUYwMjc2QzAwM0ZDOEQxIC8qIEJ1aWxkIGNv
bmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJsbGRiV2ViS2l0VGVzdGVyIiAq
LzsKLQkJCWJ1aWxkUGhhc2VzID0gKAotCQkJCTdDNEFCMzlEMUFGMDI3NkMwMDNGQzhEMSAvKiBT
b3VyY2VzICovLAotCQkJCTdDNEFCMzlFMUFGMDI3NkMwMDNGQzhEMSAvKiBGcmFtZXdvcmtzICov
LAotCQkJCTdDNEFCMzlGMUFGMDI3NkMwMDNGQzhEMSAvKiBDb3B5RmlsZXMgKi8sCi0JCQkpOwot
CQkJYnVpbGRSdWxlcyA9ICgKLQkJCSk7Ci0JCQlkZXBlbmRlbmNpZXMgPSAoCi0JCQkpOwotCQkJ
bmFtZSA9IGxsZGJXZWJLaXRUZXN0ZXI7Ci0JCQlwcm9kdWN0TmFtZSA9IGxsZGJXZWJLaXRUZXN0
ZXI7Ci0JCQlwcm9kdWN0UmVmZXJlbmNlID0gN0M0QUIzQTExQUYwMjc2QzAwM0ZDOEQxIC8qIGxs
ZGJXZWJLaXRUZXN0ZXIgKi87Ci0JCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10
eXBlLnRvb2wiOwotCQl9OwotLyogRW5kIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCi0KLS8q
IEJlZ2luIFBCWFByb2plY3Qgc2VjdGlvbiAqLwotCQk3QzRBQjM5OTFBRjAyNzZDMDAzRkM4RDEg
LyogUHJvamVjdCBvYmplY3QgKi8gPSB7Ci0JCQlpc2EgPSBQQlhQcm9qZWN0OwotCQkJYXR0cmli
dXRlcyA9IHsKLQkJCQlMYXN0VXBncmFkZUNoZWNrID0gMDcwMDsKLQkJCX07Ci0JCQlidWlsZENv
bmZpZ3VyYXRpb25MaXN0ID0gN0M0QUIzOUMxQUYwMjc2QzAwM0ZDOEQxIC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAibGxkYldlYktpdFRlc3RlciIgKi87Ci0JCQlj
b21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAzLjIiOwotCQkJZGV2ZWxvcG1lbnRSZWdpb24g
PSBFbmdsaXNoOwotCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDA7Ci0JCQlrbm93blJlZ2lv
bnMgPSAoCi0JCQkJZW4sCi0JCQkpOwotCQkJbWFpbkdyb3VwID0gN0M0QUIzOTgxQUYwMjc2QzAw
M0ZDOEQxOwotCQkJcHJvZHVjdFJlZkdyb3VwID0gN0M0QUIzQTIxQUYwMjc2QzAwM0ZDOEQxIC8q
IFByb2R1Y3RzICovOwotCQkJcHJvamVjdERpclBhdGggPSAiIjsKLQkJCXByb2plY3RSb290ID0g
IiI7Ci0JCQl0YXJnZXRzID0gKAotCQkJCTdDNEFCM0EwMUFGMDI3NkMwMDNGQzhEMSAvKiBsbGRi
V2ViS2l0VGVzdGVyICovLAotCQkJKTsKLQkJfTsKLS8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24g
Ki8KLQotLyogQmVnaW4gUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwotCQk3QzRBQjM5
RDFBRjAyNzZDMDAzRkM4RDEgLyogU291cmNlcyAqLyA9IHsKLQkJCWlzYSA9IFBCWFNvdXJjZXNC
dWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0g
KAotCQkJCTdDQjY4NDRCMUFGQTc5NzgwMDJCMzA1QyAvKiBtYWluLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9
OwotLyogRW5kIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQotLyogQmVnaW4gWENC
dWlsZENvbmZpZ3VyYXRpb24gc2VjdGlvbiAqLwotCQk3QzRBQjNBNjFBRjAyNzZDMDAzRkM4RDEg
LyogRGVidWcgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJhc2VD
b25maWd1cmF0aW9uUmVmZXJlbmNlID0gN0MyMjI3NTMxQUZDNEQ5QzAwOEMzMzM4IC8qIERlYnVn
UmVsZWFzZS54Y2NvbmZpZyAqLzsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJREVCVUdfREVG
SU5FUyA9ICIkKERFQlVHX0RFRklORVNfZGVidWcpIjsKLQkJCX07Ci0JCQluYW1lID0gRGVidWc7
Ci0JCX07Ci0JCTdDNEFCM0E3MUFGMDI3NkMwMDNGQzhEMSAvKiBSZWxlYXNlICovID0gewotCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5j
ZSA9IDdDMjIyNzUzMUFGQzREOUMwMDhDMzMzOCAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87
Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJfTsKLQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9Owot
CQk3QzRBQjNBOTFBRjAyNzZDMDAzRkM4RDEgLyogRGVidWcgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1
aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gN0MyMjI3
NTIxQUZDNEQ5QzAwOEMzMzM4IC8qIGxsZGJXZWJLaXRUZXN0ZXIueGNjb25maWcgKi87Ci0JCQli
dWlsZFNldHRpbmdzID0gewotCQkJfTsKLQkJCW5hbWUgPSBEZWJ1ZzsKLQkJfTsKLQkJN0M0QUIz
QUExQUYwMjc2QzAwM0ZDOEQxIC8qIFJlbGVhc2UgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKLQkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gN0MyMjI3NTIxQUZD
NEQ5QzAwOEMzMzM4IC8qIGxsZGJXZWJLaXRUZXN0ZXIueGNjb25maWcgKi87Ci0JCQlidWlsZFNl
dHRpbmdzID0gewotCQkJfTsKLQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9OwotLyogRW5kIFhDQnVp
bGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KLQotLyogQmVnaW4gWENDb25maWd1cmF0aW9uTGlz
dCBzZWN0aW9uICovCi0JCTdDNEFCMzlDMUFGMDI3NkMwMDNGQzhEMSAvKiBCdWlsZCBjb25maWd1
cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgImxsZGJXZWJLaXRUZXN0ZXIiICovID0gewotCQkJ
aXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCi0J
CQkJN0M0QUIzQTYxQUYwMjc2QzAwM0ZDOEQxIC8qIERlYnVnICovLAotCQkJCTdDNEFCM0E3MUFG
MDI3NkMwMDNGQzhEMSAvKiBSZWxlYXNlICovLAotCQkJKTsKLQkJCWRlZmF1bHRDb25maWd1cmF0
aW9uSXNWaXNpYmxlID0gMDsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7
Ci0JCX07Ci0JCTdDNEFCM0E4MUFGMDI3NkMwMDNGQzhEMSAvKiBCdWlsZCBjb25maWd1cmF0aW9u
IGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAibGxkYldlYktpdFRlc3RlciIgKi8gPSB7Ci0JCQlp
c2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwotCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKLQkJ
CQk3QzRBQjNBOTFBRjAyNzZDMDAzRkM4RDEgLyogRGVidWcgKi8sCi0JCQkJN0M0QUIzQUExQUYw
Mjc2QzAwM0ZDOEQxIC8qIFJlbGVhc2UgKi8sCi0JCQkpOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRp
b25Jc1Zpc2libGUgPSAwOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsK
LQkJfTsKLS8qIEVuZCBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KLQl9OwotCXJvb3RP
YmplY3QgPSA3QzRBQjM5OTFBRjAyNzZDMDAzRkM4RDEgLyogUHJvamVjdCBvYmplY3QgKi87Ci19
CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29s
cy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDVhZjgyZmU1OGE4YmZlMDk2ODZmYzMzZGFiNmZiNDZiNzE0YzI5MDAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvbGxkYi9sbGRiV2Vi
S2l0VGVzdGVyL21haW4uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotZXh0ZXJuIHZvaWQgYnJl
YWtGb3JUZXN0aW5nU3VtbWFyeVByb3ZpZGVycygpOwotdm9pZCBicmVha0ZvclRlc3RpbmdTdW1t
YXJ5UHJvdmlkZXJzKCkgeyByZXR1cm47IH0KLQotdGVtcGxhdGU8c2l6ZV90IGxlbmd0aD4KLXN0
YXRpYyBTdHJpbmcgdXRmMTZTdHJpbmcoY29uc3QgY2hhcjE2X3QgKCZzdHJpbmcpW2xlbmd0aF0p
Ci17Ci0gICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFj
aXR5KGxlbmd0aCAtIDEpOwotICAgIGZvciAoYXV0byBjIDogc3RyaW5nKQotICAgICAgICBidWls
ZGVyLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oYykpOwotICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHRlc3RTdW1tYXJ5UHJvdmlkZXJzKCkKLXsKLSAg
ICBTdHJpbmcgYU51bGxTdHJpbmcgeyAiIiB9OwotICAgIFN0cmluZ0ltcGwqIGFOdWxsU3RyaW5n
SW1wbCA9IGFOdWxsU3RyaW5nLmltcGwoKTsKLQotICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsg
IiIgfTsKLSAgICBTdHJpbmdJbXBsKiBhbkVtcHR5U3RyaW5nSW1wbCA9IGFuRW1wdHlTdHJpbmcu
aW1wbCgpOwotCi0gICAgU3RyaW5nIGFuOEJpdFN0cmluZyB7ICJyw6lzdW3DqSIgfTsKLSAgICBT
dHJpbmdJbXBsKiBhbjhCaXRTdHJpbmdJbXBsID0gYW44Qml0U3RyaW5nLmltcGwoKTsKLQotICAg
IFN0cmluZyBhMTZCaXRTdHJpbmcgPSB1dGYxNlN0cmluZyh1Ilx1MTY4MENhcHB1Y2Npbm9cdTE2
ODAiKTsKLSAgICBTdHJpbmdJbXBsKiBhMTZCaXRTdHJpbmdJbXBsID0gYTE2Qml0U3RyaW5nLmlt
cGwoKTsKLQotICAgIGJyZWFrRm9yVGVzdGluZ1N1bW1hcnlQcm92aWRlcnMoKTsKLX0KLQotaW50
IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKLXsKLSAgICB0ZXN0U3VtbWFyeVBy
b3ZpZGVycygpOwotICAgIGZwcmludGYoc3RkZXJyLCAiVGhpcyBleGVjdXRhYmxlIGRvZXMgbm90
aGluZyBhbmQgaXMgb25seSBtZWFudCBmb3IgZGVidWdnaW5nIGxsZGJfd2Via2l0LnB5LlxuIik7
Ci0gICAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJfd2Via2l0X3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvbGxkYi9sbGRiX3dlYmtpdF91bml0dGVzdC5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA3NTUKaW5kZXggN2Y2MmY0NTYxN2NiZDk1YjIzYjVkNDZkNzhkNmJhZGU2NTRm
YmYzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29s
cy9sbGRiL2xsZGJfd2Via2l0X3VuaXR0ZXN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTM5ICsw
LDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KLSMK
LSMgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotIyBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwot
IyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0jIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotIyBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IGF0ZXhpdAot
aW1wb3J0IGxsZGIKLWltcG9ydCBsbGRiX3dlYmtpdAotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1p
bXBvcnQgdW5pdHRlc3QKLQotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3Qg
aW1wb3J0IFN5c3RlbUhvc3QKLWZyb20gd2Via2l0cHkucG9ydC5jb25maWcgaW1wb3J0IENvbmZp
ZwotCi0KLSMgV2UgY2FjaGUgdGhlIGxsZGIgZGVidWcgc2Vzc2lvbiBzdGF0ZSBzbyB0aGF0IHdl
IGRvbid0IGNyZWF0ZSBpdCBhZ2FpbiBmb3IgZWFjaCBjYWxsIHRvIGEgc2VyaWFsX3Rlc3RfIG1l
dGhvZC4KLSMgV2Ugc3RvcmUgaXQgaW4gYSBnbG9iYWwgdmFyaWFibGUgc28gdGhhdCB3ZSBjYW4g
ZGVsZXRlIHRoaXMgY2FjaGVkIHN0YXRlIG9uIGV4aXQoMykuCi0jIEZJWE1FOiBSZW1vdmUgdGhp
cyBvbmNlIHRlc3Qtd2Via2l0cHkgc3VwcG9ydHMgY2xhc3MgYW5kIG1vZHVsZSBmaXh0dXJlcyAo
aS5lLiBzZXRVcENsYXNzKCkvc2V0VXBNb2R1bGUoKQotIyBhcmUgY2FsbGVkIGV4YWN0bHkgb25j
ZSBwZXIgY2xhc3MvbW9kdWxlKS4KLWNhY2hlZF9kZWJ1Z19zZXNzaW9uID0gTm9uZQotCi0KLSMg
RklYTUU6IFJlbW92ZSB0aGlzIG9uY2UgdGVzdC13ZWJraXRweSBzdXBwb3J0cyBjbGFzcyBhbmQg
bW9kdWxlIGZpeHR1cmVzIChpLmUuIHNldFVwQ2xhc3MoKS9zZXRVcE1vZHVsZSgpCi0jIGFyZSBj
YWxsZWQgZXhhY3RseSBvbmNlIHBlciBjbGFzcy9tb2R1bGUpLgotQGF0ZXhpdC5yZWdpc3Rlcgot
ZGVmIGRlc3Ryb3lfY2FjaGVkX2RlYnVnX3Nlc3Npb24oKToKLSAgICBpZiBjYWNoZWRfZGVidWdf
c2Vzc2lvbjoKLSAgICAgICAgY2FjaGVkX2RlYnVnX3Nlc3Npb24udGVhckRvd24oKQotCi0KLWNs
YXNzIExMREJEZWJ1Z1Nlc3Npb24ob2JqZWN0KToKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYg
c2V0dXAoY2xzKToKLSAgICAgICAgTExEQl9XRUJLSVRfVEVTVEVSX05BTUUgPSAnbGxkYldlYktp
dFRlc3RlcicKLSAgICAgICAgQlJFQUtfRk9SX1RFU1RJTkdfRlVOQ1RJT05fTkFNRSA9ICdicmVh
a0ZvclRlc3RpbmdTdW1tYXJ5UHJvdmlkZXJzJwotCi0gICAgICAgIGNscy5zYkRlYnVnZ2VyID0g
bGxkYi5TQkRlYnVnZ2VyLkNyZWF0ZSgpCi0gICAgICAgIGNscy5zYkRlYnVnZ2VyLlNldEFzeW5j
KEZhbHNlKQotCi0gICAgICAgIGhvc3QgPSBTeXN0ZW1Ib3N0KCkKLSAgICAgICAgY29uZmlnID0g
Q29uZmlnKGhvc3QuZXhlY3V0aXZlLCBob3N0LmZpbGVzeXN0ZW0pCi0gICAgICAgIGNscy5sbGRi
V2ViS2l0VGVzdGVyRXhlY3V0YWJsZSA9IG9zLnBhdGguam9pbihjb25maWcuYnVpbGRfZGlyZWN0
b3J5KGNvbmZpZy5kZWZhdWx0X2NvbmZpZ3VyYXRpb24oKSksIExMREJfV0VCS0lUX1RFU1RFUl9O
QU1FKQotCi0gICAgICAgIGNscy5zYlRhcmdldCA9IGNscy5zYkRlYnVnZ2VyLkNyZWF0ZVRhcmdl
dChzdHIoY2xzLmxsZGJXZWJLaXRUZXN0ZXJFeGVjdXRhYmxlKSkKLSAgICAgICAgYXNzZXJ0IGNs
cy5zYlRhcmdldAotICAgICAgICBjbHMuc2JUYXJnZXQuQnJlYWtwb2ludENyZWF0ZUJ5TmFtZShC
UkVBS19GT1JfVEVTVElOR19GVU5DVElPTl9OQU1FLCBjbHMuc2JUYXJnZXQuR2V0RXhlY3V0YWJs
ZSgpLkdldEZpbGVuYW1lKCkpCi0KLSAgICAgICAgYXJndiA9IE5vbmUKLSAgICAgICAgZW52cCA9
IE5vbmUKLSAgICAgICAgY2xzLnNiUHJvY2VzcyA9IGNscy5zYlRhcmdldC5MYXVuY2hTaW1wbGUo
YXJndiwgZW52cCwgb3MuZ2V0Y3dkKCkpCi0gICAgICAgIGFzc2VydCBjbHMuc2JQcm9jZXNzCi0g
ICAgICAgIGFzc2VydCBjbHMuc2JQcm9jZXNzLkdldFN0YXRlKCkgPT0gbGxkYi5lU3RhdGVTdG9w
cGVkCi0KLSAgICAgICAgY2xzLnNiVGhyZWFkID0gY2xzLnNiUHJvY2Vzcy5HZXRUaHJlYWRBdElu
ZGV4KDApCi0gICAgICAgIGFzc2VydCBjbHMuc2JUaHJlYWQKLQotICAgICAgICAjIEZyYW1lIDAg
aXMgdGhlIGZ1bmN0aW9uIHdpdGggbmFtZSBCUkVBS19GT1JfVEVTVElOR19GVU5DVElPTl9OQU1F
LiBXZSB3YW50IHRoZSBmcmFtZSBvZiB0aGUgY2FsbGVyIG9mCi0gICAgICAgICMgQlJFQUtfRk9S
X1RFU1RJTkdfRlVOQ1RJT05fTkFNRSBiZWNhdXNlIGl0IGhhcyBhbGwgdGhlIGludGVyZXN0aW5n
IGxvY2FsIHZhcmlhYmxlcyB3ZSB3YW50IHRvIHRlc3QuCi0gICAgICAgIGNscy5zYkZyYW1lID0g
Y2xzLnNiVGhyZWFkLkdldEZyYW1lQXRJbmRleCgxKQotICAgICAgICBhc3NlcnQgY2xzLnNiRnJh
bWUKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93bihjbHMpOgotICAgICAgICBj
bHMuc2JQcm9jZXNzLktpbGwoKQotCi0KLWNsYXNzIFRlc3RTdW1tYXJ5UHJvdmlkZXJzKHVuaXR0
ZXN0LlRlc3RDYXNlKToKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhjbHMp
OgotICAgICAgICBnbG9iYWwgY2FjaGVkX2RlYnVnX3Nlc3Npb24KLSAgICAgICAgaWYgbm90IGNh
Y2hlZF9kZWJ1Z19zZXNzaW9uOgotICAgICAgICAgICAgY2FjaGVkX2RlYnVnX3Nlc3Npb24gPSBM
TERCRGVidWdTZXNzaW9uKCkKLSAgICAgICAgICAgIGNhY2hlZF9kZWJ1Z19zZXNzaW9uLnNldHVw
KCkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBfc2JGcmFtZShzZWxmKToKLSAgICAgICAgcmV0
dXJuIGNhY2hlZF9kZWJ1Z19zZXNzaW9uLnNiRnJhbWUKLQotICAgICMgVGhlIExMREIgUHl0aG9u
IG1vZHVsZSBkb2VzIG5vdCB3b3JrIHdpdGggUHl0aG9uIG11bHRpcHJvY2Vzc2luZyBhbmQgY2F1
c2VzIGVycm9ycyBvZiB0aGUgZm9ybToKLSAgICAjICAgICBvYmpjWzc2Nzk0XTogK1tfX01EUXVl
cnkgaW5pdGlhbGl6ZV0gbWF5IGhhdmUgYmVlbiBpbiBwcm9ncmVzcyBpbiBhbm90aGVyIHRocmVh
ZCB3aGVuIGZvcmsoKSB3YXMgY2FsbGVkLgotICAgICMgICAgICAgICAgICAgICAgICBXZSBjYW5u
b3Qgc2FmZWx5IGNhbGwgaXQgb3IgaWdub3JlIGl0IGluIHRoZSBmb3JrKCkgY2hpbGQgcHJvY2Vz
cy4gQ3Jhc2hpbmcgaW5zdGVhZC4KLSAgICAjIFNvLCB3ZSBydW4gdGhlIGZvbGxvd2luZyB0ZXN0
cyBzZXJpYWxseS4KLQotICAgICMgTUFSSzogV1RGU3RyaW5nSW1wbF9TdW1tYXJ5UHJvdmlkZXIg
dGVzdCBjYXNlcwotCi0gICAgZGVmIHNlcmlhbF90ZXN0X1dURlN0cmluZ0ltcGxfU3VtbWFyeVBy
b3ZpZGVyX251bGxfc3RyaW5nKHNlbGYpOgotICAgICAgICBzdW1tYXJ5ID0gbGxkYl93ZWJraXQu
V1RGU3RyaW5nSW1wbF9TdW1tYXJ5UHJvdmlkZXIoc2VsZi5fc2JGcmFtZS5GaW5kVmFyaWFibGUo
J2FOdWxsU3RyaW5nSW1wbCcpLCB7fSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdW1tYXJ5
LCAieyBsZW5ndGggPSAwLCBpczhiaXQgPSAxLCBjb250ZW50cyA9ICcnIH0iKQotCi0gICAgZGVm
IHNlcmlhbF90ZXN0X1dURlN0cmluZ0ltcGxfU3VtbWFyeVByb3ZpZGVyX2VtcHR5X3N0cmluZyhz
ZWxmKToKLSAgICAgICAgc3VtbWFyeSA9IGxsZGJfd2Via2l0LldURlN0cmluZ0ltcGxfU3VtbWFy
eVByb3ZpZGVyKHNlbGYuX3NiRnJhbWUuRmluZFZhcmlhYmxlKCdhbkVtcHR5U3RyaW5nSW1wbCcp
LCB7fSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdW1tYXJ5LCAieyBsZW5ndGggPSAwLCBp
czhiaXQgPSAxLCBjb250ZW50cyA9ICcnIH0iKQotCi0gICAgZGVmIHNlcmlhbF90ZXN0X1dURlN0
cmluZ0ltcGxfU3VtbWFyeVByb3ZpZGVyXzhiaXRfc3RyaW5nKHNlbGYpOgotICAgICAgICBzdW1t
YXJ5ID0gbGxkYl93ZWJraXQuV1RGU3RyaW5nSW1wbF9TdW1tYXJ5UHJvdmlkZXIoc2VsZi5fc2JG
cmFtZS5GaW5kVmFyaWFibGUoJ2FuOEJpdFN0cmluZ0ltcGwnKSwge30pCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc3VtbWFyeSwgInsgbGVuZ3RoID0gOCwgaXM4Yml0ID0gMSwgY29udGVudHMg
PSAnclxceGU5c3VtXFx4ZTknIH0iKQotCi0gICAgZGVmIHNlcmlhbF90ZXN0X1dURlN0cmluZ0lt
cGxfU3VtbWFyeVByb3ZpZGVyXzE2Yml0X3N0cmluZyhzZWxmKToKLSAgICAgICAgc3VtbWFyeSA9
IGxsZGJfd2Via2l0LldURlN0cmluZ0ltcGxfU3VtbWFyeVByb3ZpZGVyKHNlbGYuX3NiRnJhbWUu
RmluZFZhcmlhYmxlKCdhMTZCaXRTdHJpbmdJbXBsJyksIHt9KQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHN1bW1hcnksIHUieyBsZW5ndGggPSAxMywgaXM4Yml0ID0gMCwgY29udGVudHMgPSAn
XFx1MTY4MENhcHB1Y2Npbm9cXHUxNjgwXFx4MDAnIH0iKQotCi0gICAgIyBNQVJLOiBXVEZTdHJp
bmdfU3VtbWFyeVByb3ZpZGVyIHRlc3QgY2FzZXMKLQotICAgIGRlZiBzZXJpYWxfdGVzdF9XVEZT
dHJpbmdfU3VtbWFyeVByb3ZpZGVyX251bGxfc3RyaW5nKHNlbGYpOgotICAgICAgICBzdW1tYXJ5
ID0gbGxkYl93ZWJraXQuV1RGU3RyaW5nX1N1bW1hcnlQcm92aWRlcihzZWxmLl9zYkZyYW1lLkZp
bmRWYXJpYWJsZSgnYU51bGxTdHJpbmcnKSwge30pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c3VtbWFyeSwgInsgbGVuZ3RoID0gMCwgY29udGVudHMgPSAnJyB9IikKLQotICAgIGRlZiBzZXJp
YWxfdGVzdF9XVEZTdHJpbmdfU3VtbWFyeVByb3ZpZGVyX2VtcHR5X3N0cmluZyhzZWxmKToKLSAg
ICAgICAgc3VtbWFyeSA9IGxsZGJfd2Via2l0LldURlN0cmluZ19TdW1tYXJ5UHJvdmlkZXIoc2Vs
Zi5fc2JGcmFtZS5GaW5kVmFyaWFibGUoJ2FuRW1wdHlTdHJpbmcnKSwge30pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc3VtbWFyeSwgInsgbGVuZ3RoID0gMCwgY29udGVudHMgPSAnJyB9IikK
LQotICAgIGRlZiBzZXJpYWxfdGVzdF9XVEZTdHJpbmdfU3VtbWFyeVByb3ZpZGVyXzhiaXRfc3Ry
aW5nKHNlbGYpOgotICAgICAgICBzdW1tYXJ5ID0gbGxkYl93ZWJraXQuV1RGU3RyaW5nX1N1bW1h
cnlQcm92aWRlcihzZWxmLl9zYkZyYW1lLkZpbmRWYXJpYWJsZSgnYW44Qml0U3RyaW5nJyksIHt9
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN1bW1hcnksICJ7IGxlbmd0aCA9IDgsIGNvbnRl
bnRzID0gJ3JcXHhlOXN1bVxceGU5JyB9IikKLQotICAgIGRlZiBzZXJpYWxfdGVzdF9XVEZTdHJp
bmdfU3VtbWFyeVByb3ZpZGVyXzE2Yml0X3N0cmluZyhzZWxmKToKLSAgICAgICAgc3VtbWFyeSA9
IGxsZGJfd2Via2l0LldURlN0cmluZ19TdW1tYXJ5UHJvdmlkZXIoc2VsZi5fc2JGcmFtZS5GaW5k
VmFyaWFibGUoJ2ExNkJpdFN0cmluZycpLCB7fSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
dW1tYXJ5LCB1InsgbGVuZ3RoID0gMTMsIGNvbnRlbnRzID0gJ1xcdTE2ODBDYXBwdWNjaW5vXFx1
MTY4MFxceDAwJyB9IikK
</data>

          </attachment>
      

    </bug>

</bugzilla>