<?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>160932</bug_id>
          
          <creation_ts>2016-08-16 20:15:32 -0700</creation_ts>
          <short_desc>REGRESSION(r204540): Broke Windows builds (Requested by rniwa on #webkit).</short_desc>
          <delta_ts>2016-08-16 20:18:44 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>160797</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>cdumez</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1220737</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-16 20:15:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/204540 broke the build:
Broke Windows builds (Requested by rniwa 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>1220739</commentid>
    <comment_count>1</comment_count>
      <attachid>286259</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-16 20:16:15 -0700</bug_when>
    <thetext>Created attachment 286259
ROLLOUT of r204540

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>1220742</commentid>
    <comment_count>2</comment_count>
      <attachid>286259</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-16 20:18:40 -0700</bug_when>
    <thetext>Comment on attachment 286259
ROLLOUT of r204540

Clearing flags on attachment: 286259

Committed r204551: &lt;http://trac.webkit.org/changeset/204551&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220743</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-16 20:18:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286259</attachid>
            <date>2016-08-16 20:16:15 -0700</date>
            <delta_ts>2016-08-16 20:18:40 -0700</delta_ts>
            <desc>ROLLOUT of r204540</desc>
            <filename>bug-160932-20160816201428.patch</filename>
            <type>text/plain</type>
            <size>45297</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU3Mjk0MTZmNTJkYmY0
ZDcwMGVlZTE0YzhjN2Q5YzQ3NDMxZjg1Yy4uMjI3YjJhNGQ0NjA1ODU1ZWZhMTMwZGU0YzM4ODMx
ZWJhY2UwNTQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTA4LTE2ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjA0NTQwLCByMjA0NTQ1LCBhbmQgcjIwNDU0Ny4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDkzMgorCisgICAgICAgIEJy
b2tlIFdpbmRvd3MgYnVpbGRzIChSZXF1ZXN0ZWQgYnkgcm5pd2Egb24gI3dlYmtpdCkuCisKKyAg
ICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAiY3VzdG9tRWxlbWVudHMuZGVm
aW5lIHNob3VsZCByZXRyaWV2ZSBsaWZlY3ljbGUgY2FsbGJhY2tzIgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNzk3CisgICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIwNDU0MAorCisgICAgICAgICJXaW5kb3dzIGJ1aWxk
IGZpeCBhdHRlbXB0IGFmdGVyIHIyMDQ1NDAuIgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8yMDQ1NDUKKworICAgICAgICAiQW5vdGhlciBXaW5kb3dzIGJ1aWxkIGZp
eCBhdHRlbXB0LiBUaGUgZXJyb3IgbWVzc2FnZSBkb2Vzbid0CisgICAgICAgIG1ha2UgYW55IHNl
bnNlIHRvIG1lLiIKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjA0
NTQ3CisKIDIwMTYtMDgtMTYgIEh1bnNlb3AgSmVvbmcgIDxoczg1Lmplb25nQHNhbXN1bmcuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIENNYWtlIGJ1aWxkIGZpeCBhZnRlciByMjA0NTMyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApp
bmRleCAxMmI5NDM0ZDNmYWE2YmVlN2M2NmYyZDc5NDllNDYxYzA2ODg1NmNmLi43NzQ3NzhkNDBi
MGJhNDg4ZTFjOTVjMjk5NzdhZmI4OThjNDJkNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTQ2LDcgKzQ2LDYgQEAKICNp
bmNsdWRlICJKU0NsaWVudFJlY3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTQ29tbWFuZExpbmVB
UElIb3N0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0NyeXB0b0N1c3RvbS5jcHAiCi0jaW5jbHVk
ZSAiSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0N1c3Rv
bUV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2Fs
bGJhY2suY3BwIgogI2luY2x1ZGUgIkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZh
Y2UuY3BwCmluZGV4IGJhN2E0MzE4OGM1YjJkNTY4OTcyMDQyY2EwMzQ2YTMxZDViYmQwOTkuLmJl
MGJmODY0ODUzNzEyMTVjZDJkOWIwNzE2MzBlYjI5ZjlhZmQyNGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcApA
QCAtMTUxLDE0ICsxNTEsNiBAQCB2b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFk
ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICBBU1NFUlQod3JhcHBlZEVsZW1lbnQtPmlz
Q3VzdG9tRWxlbWVudCgpKTsKIH0KIAotdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6OnNl
dEF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIG9ic2VydmVkQXR0cmlidXRlcykKLXsKLSAgICBtX2F0dHJpYnV0ZUNo
YW5nZWRDYWxsYmFjayA9IGNhbGxiYWNrOwotICAgIG1fb2JzZXJ2ZWRBdHRyaWJ1dGVzLmNsZWFy
KCk7Ci0gICAgZm9yIChhdXRvJiBuYW1lIDogb2JzZXJ2ZWRBdHRyaWJ1dGVzKQotICAgICAgICBt
X29ic2VydmVkQXR0cmlidXRlcy5hZGQobmFtZSk7Ci19Ci0KIHZvaWQgSlNDdXN0b21FbGVtZW50
SW50ZXJmYWNlOjphdHRyaWJ1dGVDaGFuZ2VkKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpCiB7CiAgICAgaWYgKCFjYW5JbnZva2VDYWxsYmFj
aygpKQpAQCAtMTc4LDkgKzE3MCwxMiBAQCB2b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6
YXR0cmlidXRlQ2hhbmdlZChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZQogCiAgICAg
SlNPYmplY3QqIGpzRWxlbWVudCA9IGFzT2JqZWN0KHRvSlMoc3RhdGUsIGdsb2JhbE9iamVjdCwg
ZWxlbWVudCkpOwogCisgICAgUHJvcGVydHlOYW1lIGF0dHJpYnV0ZUNoYW5nZWQoSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyhzdGF0ZSwgImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIpKTsKKyAgICBK
U1ZhbHVlIGNhbGxiYWNrID0ganNFbGVtZW50LT5nZXQoc3RhdGUsIGF0dHJpYnV0ZUNoYW5nZWQp
OwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIENhbGxUeXBlIGNhbGxUeXBlID0gbV9hdHRy
aWJ1dGVDaGFuZ2VkQ2FsbGJhY2stPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKG1fYXR0cmli
dXRlQ2hhbmdlZENhbGxiYWNrLmdldCgpLCBjYWxsRGF0YSk7Ci0gICAgQVNTRVJUKGNhbGxUeXBl
ICE9IENhbGxUeXBlOjpOb25lKTsKKyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRh
KGNhbGxiYWNrLCBjYWxsRGF0YSk7CisgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlOjpOb25l
KQorICAgICAgICByZXR1cm47CiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVS
SSA9IGF0dHJpYnV0ZU5hbWUubmFtZXNwYWNlVVJJKCk7CiAgICAgTWFya2VkQXJndW1lbnRCdWZm
ZXIgYXJnczsKQEAgLTE5Miw3ICsxODcsNyBAQCB2b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFj
ZTo6YXR0cmlidXRlQ2hhbmdlZChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZQogICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBKU01haW5UaHJlYWRFeGVj
U3RhdGU6Omluc3RydW1lbnRGdW5jdGlvbkNhbGwoY29udGV4dCwgY2FsbFR5cGUsIGNhbGxEYXRh
KTsKIAogICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXhjZXB0aW9uOwotICAgIEpTTWFpblRocmVh
ZEV4ZWNTdGF0ZTo6Y2FsbChzdGF0ZSwgbV9hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2suZ2V0KCks
IGNhbGxUeXBlLCBjYWxsRGF0YSwganNFbGVtZW50LCBhcmdzLCBleGNlcHRpb24pOworICAgIEpT
TWFpblRocmVhZEV4ZWNTdGF0ZTo6Y2FsbChzdGF0ZSwgY2FsbGJhY2ssIGNhbGxUeXBlLCBjYWxs
RGF0YSwganNFbGVtZW50LCBhcmdzLCBleGNlcHRpb24pOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRDYWxsRnVuY3Rpb24oY29va2llLCBjb250ZXh0KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaApp
bmRleCAyY2JkN2JiOWYwNzQ1MzZjYWY2MmQzMGFjM2QxNGRhOWFhZGRjZjEyLi40MTc3YTZhODA1
YTk2NDkyZTRjNmNjZTk1ZDViNTQ1NWM2OTRhNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaApAQCAtMzcsNyArMzcs
NiBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3Ry
aW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNjYsOCArNjUsNiBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHVwZ3JhZGVFbGVtZW50KEVsZW1lbnQmKTsKIAotICAgIHZvaWQgc2V0QXR0
cmlidXRlQ2hhbmdlZENhbGxiYWNrKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgb2JzZXJ2ZWRBdHRyaWJ1dGVzKTsKLSAgICBib29sIG9ic2VydmVzQXR0cmli
dXRlKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZlZEF0
dHJpYnV0ZXMuY29udGFpbnMobmFtZSk7IH0KICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoRWxl
bWVudCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1ZhbHVlKTsKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CkBAIC04NiwxMCAr
ODMsOCBAQCBwcml2YXRlOgogCiAgICAgUXVhbGlmaWVkTmFtZSBtX25hbWU7CiAgICAgbXV0YWJs
ZSBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV9jb25zdHJ1Y3RvcjsKLSAgICBtdXRhYmxlIEpT
Qzo6V2VhazxKU0M6OkpTT2JqZWN0PiBtX2F0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjazsKICAgICBS
ZWZQdHI8RE9NV3JhcHBlcldvcmxkPiBtX2lzb2xhdGVkV29ybGQ7CiAgICAgVmVjdG9yPFJlZlB0
cjxFbGVtZW50PiwgMT4gbV9jb25zdHJ1Y3Rpb25TdGFjazsKLSAgICBIYXNoU2V0PEF0b21pY1N0
cmluZz4gbV9vYnNlcnZlZEF0dHJpYnV0ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRz
UmVnaXN0cnlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21F
bGVtZW50c1JlZ2lzdHJ5Q3VzdG9tLmNwcAppbmRleCA4ZDNhM2QyZGM1NzU1MGY2NDU5YTMyYTZl
MWQyZjA3YTA4OTRmMDNhLi5iZGY0MTQ4MjgyMzcyMWJhYzhkZmU3ZTY3Mzk2YzZjNGM5YTEzYmI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRz
UmVnaXN0cnlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tRWxlbWVudHNSZWdpc3RyeUN1c3RvbS5jcHAKQEAgLTMxLDI5ICszMSwxMyBAQAogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgog
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgogCiB1
c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyAgICAKICNpZiBF
TkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQotCi1zdGF0aWMgSlNPYmplY3QqIGdldExpZmVjeWNsZUNh
bGxiYWNrKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTT2JqZWN0JiBwcm90b3R5cGUsIGNvbnN0IElkZW50
aWZpZXImIGlkKQotewotICAgIEpTVmFsdWUgY2FsbGJhY2sgPSBwcm90b3R5cGUuZ2V0KCZzdGF0
ZSwgaWQpOwotICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgaWYgKGNhbGxiYWNrLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgIGlmICghY2FsbGJhY2suaXNGdW5jdGlvbigpKSB7Ci0gICAgICAgIHRocm93
VHlwZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJBIGxpZmVjeWNsZSBjYWxsYmFjayBtdXN0
IGJlIGEgZnVuY3Rpb24iKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBy
ZXR1cm4gY2FsbGJhY2suZ2V0T2JqZWN0KCk7Ci19Ci0KLS8vIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvI2RvbS1jdXN0b21lbGVtZW50c3JlZ2lzdHJ5LWRlZmluZQogSlNWYWx1ZSBKU0N1
c3RvbUVsZW1lbnRzUmVnaXN0cnk6OmRlZmluZShFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIGlm
IChVTkxJS0VMWShzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAyKSkKQEAgLTY5LDcgKzUzLDYgQEAg
SlNWYWx1ZSBKU0N1c3RvbUVsZW1lbnRzUmVnaXN0cnk6OmRlZmluZShFeGVjU3RhdGUmIHN0YXRl
KQogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yVmFsdWUuZ2V0T2JqZWN0
KCk7CiAKICAgICAvLyBGSVhNRTogVGhyb3cgYSBUeXBlRXJyb3IgaWYgY29uc3RydWN0b3IgZG9l
c24ndCBpbmhlcml0IGZyb20gSFRNTEVsZW1lbnQuCi0gICAgLy8gaHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWJjb21wb25lbnRzL2lzc3Vlcy81NDEKIAogICAgIHN3aXRjaCAoRG9jdW1lbnQ6OnZh
bGlkYXRlQ3VzdG9tRWxlbWVudE5hbWUobG9jYWxOYW1lKSkgewogICAgIGNhc2UgQ3VzdG9tRWxl
bWVudE5hbWVWYWxpZGF0aW9uU3RhdHVzOjpWYWxpZDoKQEAgLTgyLDkgKzY1LDYgQEAgSlNWYWx1
ZSBKU0N1c3RvbUVsZW1lbnRzUmVnaXN0cnk6OmRlZmluZShFeGVjU3RhdGUmIHN0YXRlKQogICAg
ICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiQ3VzdG9t
IGVsZW1lbnQgbmFtZSBjYW5ub3QgY29udGFpbiBhbiB1cHBlciBjYXNlIGxldHRlciIpKTsKICAg
ICB9CiAKLSAgICAvLyBGSVhNRTogQ2hlY2sgcmUtZW50cmFuY3kgaGVyZS4KLSAgICAvLyBodHRw
czovL2dpdGh1Yi5jb20vdzNjL3dlYmNvbXBvbmVudHMvaXNzdWVzLzU0NQotCiAgICAgQ3VzdG9t
RWxlbWVudHNSZWdpc3RyeSYgcmVnaXN0cnkgPSB3cmFwcGVkKCk7CiAgICAgaWYgKHJlZ2lzdHJ5
LmZpbmRJbnRlcmZhY2UobG9jYWxOYW1lKSkgewogICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVy
cm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBkZWZpbmUgbXVsdGlwbGUgY3VzdG9tIGVs
ZW1lbnRzIHdpdGggdGhlIHNhbWUgdGFnIG5hbWUiKSk7CkBAIC05Niw1MSArNzYsMjAgQEAgSlNW
YWx1ZSBKU0N1c3RvbUVsZW1lbnRzUmVnaXN0cnk6OmRlZmluZShFeGVjU3RhdGUmIHN0YXRlKQog
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBhdXRvJiB2bSA9IGds
b2JhbE9iamVjdCgpLT52bSgpOwotICAgIEpTVmFsdWUgcHJvdG90eXBlVmFsdWUgPSBjb25zdHJ1
Y3Rvci0+Z2V0KCZzdGF0ZSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlKTsKLSAgICBpZiAo
c3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAg
IGlmICghcHJvdG90eXBlVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJDdXN0b20gZWxlbWVudCBjb25zdHJ1Y3Rvcidz
IHByb3RvdHlwZSBtdXN0IGJlIGFuIG9iamVjdCIpKTsKLSAgICBKU09iamVjdCYgcHJvdG90eXBl
T2JqZWN0ID0gKmFzT2JqZWN0KHByb3RvdHlwZVZhbHVlKTsKLQotICAgIC8vIEZJWE1FOiBBZGQg
dGhlIHN1cHBvcnQgZm9yIGNvbm5lY3RlZENhbGxiYWNrLgotICAgIGdldExpZmVjeWNsZUNhbGxi
YWNrKHN0YXRlLCBwcm90b3R5cGVPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAi
Y29ubmVjdGVkQ2FsbGJhY2siKSk7Ci0gICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgIC8vIEZJWE1FOiBBZGQgdGhlIHN1cHBv
cnQgZm9yIGRpc2Nvbm5lY3RlZENhbGxiYWNrLgotICAgIGdldExpZmVjeWNsZUNhbGxiYWNrKHN0
YXRlLCBwcm90b3R5cGVPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZGlzY29u
bmVjdGVkQ2FsbGJhY2siKSk7Ci0gICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgIC8vIEZJWE1FOiBBZGQgdGhlIHN1cHBvcnQg
Zm9yIGFkb3B0ZWRDYWxsYmFjay4KLSAgICBnZXRMaWZlY3ljbGVDYWxsYmFjayhzdGF0ZSwgcHJv
dG90eXBlT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImFkb3B0ZWRDYWxsYmFj
ayIpKTsKLSAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwotCi0gICAgUXVhbGlmaWVkTmFtZSBuYW1lKG51bGxBdG9tLCBsb2NhbE5hbWUs
IEhUTUxOYW1lczo6eGh0bWxOYW1lc3BhY2VVUkkpOwotICAgIFJlZjxKU0N1c3RvbUVsZW1lbnRJ
bnRlcmZhY2U+IGludGVyZmFjZSA9IEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6Y3JlYXRlKG5h
bWUsIGNvbnN0cnVjdG9yLCBnbG9iYWxPYmplY3QoKSk7Ci0KLSAgICBhdXRvKiBhdHRyaWJ1dGVD
aGFuZ2VkQ2FsbGJhY2sgPSBnZXRMaWZlY3ljbGVDYWxsYmFjayhzdGF0ZSwgcHJvdG90eXBlT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFj
ayIpKTsKLSAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwotICAgIGlmIChhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2spIHsKLSAgICAgICAg
YXV0byB2YWx1ZSA9IGNvbnZlcnRPcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4oc3RhdGUsIGNvbnN0
cnVjdG9yLT5nZXQoJnN0YXRlLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwgIm9ic2Vy
dmVkQXR0cmlidXRlcyIpKSk7Ci0gICAgICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAg
ICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICBpZiAodmFsdWUpCi0gICAg
ICAgICAgICBpbnRlcmZhY2UtPnNldEF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhhdHRyaWJ1dGVD
aGFuZ2VkQ2FsbGJhY2ssICp2YWx1ZSk7Ci0gICAgfQorICAgIC8vIEZJWE1FOiAxMC4gTGV0IHBy
b3RvdHlwZSBiZSBHZXQoY29uc3RydWN0b3IsICJwcm90b3R5cGUiKS4gUmV0aHJvdyBhbnkgZXhj
ZXB0aW9ucy4KKyAgICAvLyBGSVhNRTogMTEuIElmIFR5cGUocHJvdG90eXBlKSBpcyBub3QgT2Jq
ZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisgICAgLy8gRklYTUU6IDEyLiBMZXQg
YXR0YWNoZWRDYWxsYmFjayBiZSBHZXQocHJvdG90eXBlLCAiYXR0YWNoZWRDYWxsYmFjayIpLiBS
ZXRocm93IGFueSBleGNlcHRpb25zLgorICAgIC8vIEZJWE1FOiAxMy4gTGV0IGRldGFjaGVkQ2Fs
bGJhY2sgYmUgR2V0KHByb3RvdHlwZSwgImRldGFjaGVkQ2FsbGJhY2siKS4gUmV0aHJvdyBhbnkg
ZXhjZXB0aW9ucy4KKyAgICAvLyBGSVhNRTogMTQuIExldCBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJh
Y2sgYmUgR2V0KHByb3RvdHlwZSwgImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIpLiBSZXRocm93
IGFueSBleGNlcHRpb25zLgogCiAgICAgUHJpdmF0ZU5hbWUgdW5pcXVlUHJpdmF0ZU5hbWU7Ci0g
ICAgZ2xvYmFsT2JqZWN0KCktPnB1dERpcmVjdCh2bSwgdW5pcXVlUHJpdmF0ZU5hbWUsIGNvbnN0
cnVjdG9yKTsKKyAgICBnbG9iYWxPYmplY3QoKS0+cHV0RGlyZWN0KGdsb2JhbE9iamVjdCgpLT52
bSgpLCB1bmlxdWVQcml2YXRlTmFtZSwgY29uc3RydWN0b3IpOwogCi0gICAgcmVnaXN0cnkuYWRk
RWxlbWVudERlZmluaXRpb24oV1RGTW92ZShpbnRlcmZhY2UpKTsKKyAgICBRdWFsaWZpZWROYW1l
IG5hbWUobnVsbEF0b20sIGxvY2FsTmFtZSwgSFRNTE5hbWVzOjp4aHRtbE5hbWVzcGFjZVVSSSk7
CisgICAgcmVnaXN0cnkuYWRkRWxlbWVudERlZmluaXRpb24oSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlOjpjcmVhdGUobmFtZSwgY29uc3RydWN0b3IsIGdsb2JhbE9iamVjdCgpKSk7CiAKICAgICAv
LyBGSVhNRTogMTcuIExldCBtYXAgYmUgcmVnaXN0cnkncyB1cGdyYWRlIGNhbmRpZGF0ZXMgbWFw
LgogICAgIC8vIEZJWE1FOiAxOC4gVXBncmFkZSBhIG5ld2x5LWRlZmluZWQgZWxlbWVudCBnaXZl
biBtYXAgYW5kIGRlZmluaXRpb24uCi0gICAgLy8gRklYTUU6IDE5LiBSZXNvbHZlIHdoZW5EZWZp
bmVkIHByb21pc2UuCiAKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCAxMWEwN2FiMjkyMzk1NGM0ODRiYzUwYjc4MzAyNjQ4YzYzNTE1N2I3Li40
NDQ5MmU5YWMxNDYyZWI4N2FkOTBjZGU1NjNkMTY5ZjY4MzhlN2ZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCkBAIC0xMjkwLDggKzEyOTAsMTUgQEAgdm9pZCBFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgb2wKICAg
ICBkb2N1bWVudCgpLmluY0RPTVRyZWVWZXJzaW9uKCk7CiAKICNpZiBFTkFCTEUoQ1VTVE9NX0VM
RU1FTlRTKQotICAgIGlmIChVTkxJS0VMWShpc0N1c3RvbUVsZW1lbnQoKSkpCi0gICAgICAgIExp
ZmVjeWNsZUNhbGxiYWNrUXVldWU6OmVucXVldWVBdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2tJZk5l
ZWRlZCgqdGhpcywgbmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFko
aXNDdXN0b21FbGVtZW50KCkpKSB7CisgICAgICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb2N1bWVu
dCgpLmRvbVdpbmRvdygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogcmVnaXN0cnkgPSB3aW5k
b3ctPmN1c3RvbUVsZW1lbnRzUmVnaXN0cnkoKSkgeworICAgICAgICAgICAgICAgIGF1dG8qIGVs
ZW1lbnRJbnRlcmZhY2UgPSByZWdpc3RyeS0+ZmluZEludGVyZmFjZSh0YWdRTmFtZSgpKTsKKyAg
ICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChlbGVtZW50SW50ZXJmYWNlKTsKKyAgICAgICAg
ICAgICAgICBMaWZlY3ljbGVDYWxsYmFja1F1ZXVlOjplbnF1ZXVlQXR0cmlidXRlQ2hhbmdlZENh
bGxiYWNrKCp0aGlzLCAqZWxlbWVudEludGVyZmFjZSwgbmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVl
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KICNlbmRpZgogCiAgICAgaWYgKHZh
bHVlSXNTYW1lQXNCZWZvcmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTGlmZWN5
Y2xlQ2FsbGJhY2tRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTGlmZWN5Y2xlQ2FsbGJh
Y2tRdWV1ZS5jcHAKaW5kZXggODM3ZDNiYzgyOTc2MDdhODVlMTRhZGIxNTQ3OTk3MWMwNmFjMTE0
OC4uMzY5OTNhNmJhYTczZjQ5YzQ4YzMwY2ZjZmUyNDUzZjZiY2VlZjk2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0xpZmVjeWNsZUNhbGxiYWNrUXVldWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9MaWZlY3ljbGVDYWxsYmFja1F1ZXVlLmNwcApAQCAtMjgsOCArMjgsNiBA
QAogCiAjaWYgRU5BQkxFKENVU1RPTV9FTEVNRU5UUykKIAotI2luY2x1ZGUgIkN1c3RvbUVsZW1l
bnRzUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRl
cmZhY2UuaCIKQEAgLTk4LDIzICs5NiwxMSBAQCB2b2lkIExpZmVjeWNsZUNhbGxiYWNrUXVldWU6
OmVucXVldWVFbGVtZW50VXBncmFkZShFbGVtZW50JiBlbGVtZW50LCBKU0N1c3RvbUVsZQogICAg
ICAgICBxdWV1ZS0+bV9pdGVtcy5hcHBlbmQoTGlmZWN5Y2xlUXVldWVJdGVtKExpZmVjeWNsZVF1
ZXVlSXRlbTo6VHlwZTo6RWxlbWVudFVwZ3JhZGUsIGVsZW1lbnQsIGVsZW1lbnRJbnRlcmZhY2Up
KTsKIH0KIAotdm9pZCBMaWZlY3ljbGVDYWxsYmFja1F1ZXVlOjplbnF1ZXVlQXR0cmlidXRlQ2hh
bmdlZENhbGxiYWNrSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bWljU3RyaW5nJiBuZXdWYWx1ZSkKK3ZvaWQgTGlmZWN5Y2xlQ2FsbGJhY2tRdWV1ZTo6ZW5xdWV1
ZUF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhFbGVtZW50JiBlbGVtZW50LCBKU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2UmIGVsZW1lbnRJbnRlcmZhY2UsCisgICAgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBuZXdWYWx1ZSkKIHsKLSAgICBBU1NFUlQoZWxlbWVudC5pc0N1c3RvbUVsZW1lbnQo
KSk7Ci0gICAgYXV0byogd2luZG93ID0gZWxlbWVudC5kb2N1bWVudCgpLmRvbVdpbmRvdygpOwot
ICAgIGlmICghd2luZG93KQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvKiByZWdpc3RyeSA9
IHdpbmRvdy0+Y3VzdG9tRWxlbWVudHNSZWdpc3RyeSgpOwotICAgIGlmICghcmVnaXN0cnkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGF1dG8qIGVsZW1lbnRJbnRlcmZhY2UgPSByZWdpc3RyeS0+
ZmluZEludGVyZmFjZShlbGVtZW50LnRhZ1FOYW1lKCkpOwotICAgIGlmICghZWxlbWVudEludGVy
ZmFjZS0+b2JzZXJ2ZXNBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKSkpCi0gICAg
ICAgIHJldHVybjsKLQogICAgIGlmIChhdXRvKiBxdWV1ZSA9IEN1c3RvbUVsZW1lbnRMaWZlY3lj
bGVQcm9jZXNzaW5nU3RhY2s6OmVuc3VyZUN1cnJlbnRRdWV1ZSgpKQotICAgICAgICBxdWV1ZS0+
bV9pdGVtcy5hcHBlbmQoTGlmZWN5Y2xlUXVldWVJdGVtKGVsZW1lbnQsICplbGVtZW50SW50ZXJm
YWNlLCBhdHRyaWJ1dGVOYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUpKTsKKyAgICAgICAgcXVldWUt
Pm1faXRlbXMuYXBwZW5kKExpZmVjeWNsZVF1ZXVlSXRlbShlbGVtZW50LCBlbGVtZW50SW50ZXJm
YWNlLCBhdHRyaWJ1dGVOYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUpKTsKIH0KIAogdm9pZCBMaWZl
Y3ljbGVDYWxsYmFja1F1ZXVlOjppbnZva2VBbGwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0xpZmVjeWNsZUNhbGxiYWNrUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9MaWZl
Y3ljbGVDYWxsYmFja1F1ZXVlLmgKaW5kZXggNzM5MjA3NzQ4ODM1NDkxODc5MmNlZDNhM2ZhYTcw
ZjFjNWEwMWM1ZS4uMDMwNDJhNzBlMjdjMTkyODNmNTZlMWFiYTQ0MjNiZjUxYmU2NmY1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xpZmVjeWNsZUNhbGxiYWNrUXVldWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTGlmZWN5Y2xlQ2FsbGJhY2tRdWV1ZS5oCkBAIC0yMyw3ICsy
Myw4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNwcmFnbWEgb25jZQorI2lmbmRlZiBMaWZl
Y3ljbGVDYWxsYmFja1F1ZXVlX2gKKyNkZWZpbmUgTGlmZWN5Y2xlQ2FsbGJhY2tRdWV1ZV9oCiAK
ICNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQogCkBAIC00Niw3ICs0Nyw5IEBAIHB1YmxpYzoK
ICAgICB+TGlmZWN5Y2xlQ2FsbGJhY2tRdWV1ZSgpOwogCiAgICAgc3RhdGljIHZvaWQgZW5xdWV1
ZUVsZW1lbnRVcGdyYWRlKEVsZW1lbnQmLCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UmKTsKLSAg
ICBzdGF0aWMgdm9pZCBlbnF1ZXVlQXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrSWZOZWVkZWQoRWxl
bWVudCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1ZhbHVlKTsKKworICAgIHN0YXRpYyB2b2lkIGVucXVl
dWVBdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soRWxlbWVudCYsIEpTQ3VzdG9tRWxlbWVudEludGVy
ZmFjZSYsCisgICAgICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1ZhbHVlKTsKIAogICAgIHZvaWQgaW52
b2tlQWxsKCk7CiAKQEAgLTg2LDMgKzg5LDUgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmCisKKyNl
bmRpZiAvLyBMaWZlY3ljbGVDYWxsYmFja1F1ZXVlX2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZTZhOTE2ZTI2MzI3OWVk
Yjk1ZjM1N2RlNGQ1ZTgwODQyZjI3MWZkLi4yNzYwZmVjYzNkNGQ4NDc1NWY0MmM5ZDA2YTYyMmZm
YmE3MTNlZDk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTYtMDgtMTYgIENvbW1pdCBRdWV1
ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIyMDQ1NDAsIHIyMDQ1NDUsIGFuZCByMjA0NTQ3LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTMyCisKKyAgICAgICAgQnJva2UgV2lu
ZG93cyBidWlsZHMgKFJlcXVlc3RlZCBieSBybml3YSBvbiAjd2Via2l0KS4KKworICAgICAgICBS
ZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJjdXN0b21FbGVtZW50cy5kZWZpbmUgc2hv
dWxkIHJldHJpZXZlIGxpZmVjeWNsZSBjYWxsYmFja3MiCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA3OTcKKyAgICAgICAgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMjA0NTQwCisKKyAgICAgICAgIldpbmRvd3MgYnVpbGQgZml4IGF0
dGVtcHQgYWZ0ZXIgcjIwNDU0MC4iCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hh
bmdlc2V0LzIwNDU0NQorCisgICAgICAgICJBbm90aGVyIFdpbmRvd3MgYnVpbGQgZml4IGF0dGVt
cHQuIFRoZSBlcnJvciBtZXNzYWdlIGRvZXNuJ3QKKyAgICAgICAgbWFrZSBhbnkgc2Vuc2UgdG8g
bWUuIgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMDQ1NDcKKwog
MjAxNi0wOC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBTaGFkb3dSb290Lm1vZGUgYXR0cmlidXRlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9DdXN0b21FbGVtZW50c1JlZ2lzdHJ5LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRz
UmVnaXN0cnktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzFj
NTU5NWJkN2FiNmU2NzI2NjIxMjllMDQ2MDgzMWRiMDlhZGNlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1l
bnRzL0N1c3RvbUVsZW1lbnRzUmVnaXN0cnktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMjAgKzAsMCBAQAotCi1QQVNTIEN1c3RvbUVsZW1lbnRzUmVnaXN0cnkgaW50ZXJmYWNlIG11
c3QgaGF2ZSBkZWZpbmUgYXMgYSBtZXRob2QgCi1QQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBt
dXN0IHRocm93IHdpdGggYW4gaW52YWxpZCBuYW1lIAotUEFTUyBjdXN0b21FbGVtZW50cy5kZWZp
bmUgbXVzdCB0aHJvdyB3aGVuIHRoZXJlIGlzIGFscmVhZHkgYSBjdXN0b20gZWxlbWVudCBvZiB0
aGUgc2FtZSBuYW1lIAotUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyB3aGVu
IHRoZXJlIGlzIGFscmVhZHkgYSBjdXN0b20gZWxlbWVudCB3aXRoIHRoZSBzYW1lIGNsYXNzIAot
UEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyB3aGVuIHRoZSBlbGVtZW50IGlu
dGVyZmFjZSBpcyBub3QgYSBjb25zdHJ1Y3RvciAKLVBBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5l
IG11c3QgZ2V0ICJwcm90b3R5cGUiIHByb3BlcnR5IG9mIHRoZSBjb25zdHJ1Y3RvciAKLVBBU1Mg
Y3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgcmV0aHJvdyBhbiBleGNlcHRpb24gdGhyb3duIHdo
aWxlIGdldHRpbmcgInByb3RvdHlwZSIgcHJvcGVydHkgb2YgdGhlIGNvbnN0cnVjdG9yIAotUEFT
UyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyB3aGVuICJwcm90b3R5cGUiIHByb3Bl
cnR5IG9mIHRoZSBjb25zdHJ1Y3RvciBpcyBub3QgYW4gb2JqZWN0IAotUEFTUyBjdXN0b21FbGVt
ZW50cy5kZWZpbmUgbXVzdCBnZXQgY2FsbGJhY2tzIG9mIHRoZSBjb25zdHJ1Y3RvciBwcm90b3R5
cGUgCi1QQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4gZXhjZXB0aW9u
IHRocm93biB3aGlsZSBnZXR0aW5nIGNhbGxiYWNrcyBvbiB0aGUgY29uc3RydWN0b3IgcHJvdG90
eXBlIAotUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCByZXRocm93IGFuIGV4Y2VwdGlv
biB0aHJvd24gd2hpbGUgY29udmVydGluZyBhIGNhbGxiYWNrIHZhbHVlIHRvIEZ1bmN0aW9uIGNh
bGxiYWNrIHR5cGUgCi1QQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IGdldCAib2JzZXJ2
ZWRBdHRyaWJ1dGVzIiBwcm9wZXJ0eSBvbiB0aGUgY29uc3RydWN0b3IgcHJvdG90eXBlIHdoZW4g
ImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIgaXMgcHJlc2VudCAKLVBBU1MgY3VzdG9tRWxlbWVu
dHMuZGVmaW5lIG11c3QgcmV0aHJvdyBhbiBleGNlcHRpb24gdGhyb3duIHdoaWxlIGdldHRpbmcg
b2JzZXJ2ZWRBdHRyaWJ1dGVzIG9uIHRoZSBjb25zdHJ1Y3RvciBwcm90b3R5cGUgCi1QQVNTIGN1
c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4gZXhjZXB0aW9uIHRocm93biB3aGls
ZSBjb252ZXJ0aW5nIHRoZSB2YWx1ZSBvZiBvYnNlcnZlZEF0dHJpYnV0ZXMgdG8gc2VxdWVuY2U8
RE9NU3RyaW5nPiAKLVBBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgcmV0aHJvdyBhbiBl
eGNlcHRpb24gdGhyb3duIHdoaWxlIGl0ZXJhdGluZyBvdmVyIG9ic2VydmVkQXR0cmlidXRlcyB0
byBzZXF1ZW5jZTxET01TdHJpbmc+IAotUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBy
ZXRocm93IGFuIGV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgcmV0cmlldmluZyBTeW1ib2wuaXRlcmF0
b3Igb24gb2JzZXJ2ZWRBdHRyaWJ1dGVzIAotUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVz
dCBub3QgdGhyb3cgZXZlbiBpZiAib2JzZXJ2ZWRBdHRyaWJ1dGVzIiBmYWlscyB0byBjb252ZXJ0
IGlmICJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siIGlzIG5vdCBkZWZpbmVkIAotUEFTUyBjdXN0
b21FbGVtZW50cy5kZWZpbmUgbXVzdCBkZWZpbmUgYW4gaW5zdGFudGlhdGFibGUgY3VzdG9tIGVs
ZW1lbnQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0N1
c3RvbUVsZW1lbnRzUmVnaXN0cnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1l
bnRzL0N1c3RvbUVsZW1lbnRzUmVnaXN0cnkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDBmNzNkZDM4N2YxYjMxNGI3YzcwYTA0ZDdjZTdiYWQ1NmQ1ZWQ3NS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2N1
c3RvbS1lbGVtZW50cy9DdXN0b21FbGVtZW50c1JlZ2lzdHJ5Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwyNzIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxl
PkN1c3RvbSBFbGVtZW50czogQ3VzdG9tRWxlbWVudHNSZWdpc3RyeSBpbnRlcmZhY2U8L3RpdGxl
PgotPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86
cm5pd2FAd2Via2l0Lm9yZyI+Ci08bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkN1c3RvbUVs
ZW1lbnRzUmVnaXN0cnkgaW50ZXJmYWNlIG11c3QgZXhpc3QiPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0nc3R5
bGVzaGVldCcgaHJlZj0nLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0PgotCi10ZXN0KGZ1bmN0aW9u
ICgpIHsKLSAgICBhc3NlcnRfdHJ1ZSgnZGVmaW5lJyBpbiBDdXN0b21FbGVtZW50c1JlZ2lzdHJ5
LnByb3RvdHlwZSwgJyJkZWZpbmUiIGV4aXN0cyBvbiBDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LnBy
b3RvdHlwZScpOwotICAgIGFzc2VydF90cnVlKCdkZWZpbmUnIGluIGN1c3RvbUVsZW1lbnRzLCAn
ImRlZmluZSIgZXhpc3RzIG9uIHdpbmRvdy5jdXN0b21FbGVtZW50cycpOwotfSwgJ0N1c3RvbUVs
ZW1lbnRzUmVnaXN0cnkgaW50ZXJmYWNlIG11c3QgaGF2ZSBkZWZpbmUgYXMgYSBtZXRob2QnKTsK
LQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMg
SFRNTEVsZW1lbnQge307Ci0KLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdTeW50YXhFcnJv
cid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZShudWxsLCBNeUN1c3RvbUVs
ZW1lbnQpOyB9LAotICAgICAgICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBT
eW50YXhFcnJvciBpZiB0aGUgdGFnIG5hbWUgaXMgbnVsbCcpOwotICAgIGFzc2VydF90aHJvd3Mo
eyduYW1lJzogJ1N5bnRheEVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVm
aW5lKCcnLCBNeUN1c3RvbUVsZW1lbnQpOyB9LAotICAgICAgICAnY3VzdG9tRWxlbWVudHMuZGVm
aW5lIG11c3QgdGhyb3cgYSBTeW50YXhFcnJvciBpZiB0aGUgdGFnIG5hbWUgaXMgZW1wdHknKTsK
LSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdTeW50YXhFcnJvcid9LCBmdW5jdGlvbiAoKSB7
IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnYWJjJywgTXlDdXN0b21FbGVtZW50KTsgfSwKLSAgICAg
ICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgU3ludGF4RXJyb3IgaWYgdGhl
IHRhZyBuYW1lIGRvZXMgbm90IGNvbnRhaW4gIi0iJyk7Ci0gICAgYXNzZXJ0X3Rocm93cyh7J25h
bWUnOiAnU3ludGF4RXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUo
J2EtQmMnLCBNeUN1c3RvbUVsZW1lbnQpOyB9LAotICAgICAgICAnY3VzdG9tRWxlbWVudHMuZGVm
aW5lIG11c3QgdGhyb3cgYSBTeW50YXhFcnJvciBpZiB0aGUgdGFnIG5hbWUgY29udGFpbnMgYW4g
dXBwZXIgY2FzZSBsZXR0ZXInKTsKLQotICAgIHZhciBidWlsdGluVGFnTmFtZXMgPSBbCi0gICAg
ICAgICdhbm5vdGF0aW9uLXhtbCcsCi0gICAgICAgICdjb2xvci1wcm9maWxlJywKLSAgICAgICAg
J2ZvbnQtZmFjZScsCi0gICAgICAgICdmb250LWZhY2Utc3JjJywKLSAgICAgICAgJ2ZvbnQtZmFj
ZS11cmknLAotICAgICAgICAnZm9udC1mYWNlLWZvcm1hdCcsCi0gICAgICAgICdmb250LWZhY2Ut
bmFtZScsCi0gICAgICAgICdtaXNzaW5nLWdseXBoJwotICAgIF07Ci0KLSAgICBmb3IgKHZhciB0
YWdOYW1lIG9mIGJ1aWx0aW5UYWdOYW1lcykgewotICAgICAgICBhc3NlcnRfdGhyb3dzKHsnbmFt
ZSc6ICdTeW50YXhFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSh0
YWdOYW1lLCBNeUN1c3RvbUVsZW1lbnQpOyB9LAotICAgICAgICAgICAgJ2N1c3RvbUVsZW1lbnRz
LmRlZmluZSBtdXN0IHRocm93IGEgU3ludGF4RXJyb3IgaWYgdGhlIHRhZyBuYW1lIGlzICInICsg
dGFnTmFtZSArICciJyk7Ci0gICAgfQotCi19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qg
dGhyb3cgd2l0aCBhbiBpbnZhbGlkIG5hbWUnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAg
Y2xhc3MgU29tZUN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsKLSAgICBjbGFz
cyBPdGhlckN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsKLQotICAgIGN1c3Rv
bUVsZW1lbnRzLmRlZmluZSgnc29tZS1jdXN0b20tZWxlbWVudCcsIFNvbWVDdXN0b21FbGVtZW50
KTsKLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5j
dGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnc29tZS1jdXN0b20tZWxlbWVudCcsIE90
aGVyQ3VzdG9tRWxlbWVudCk7IH0sCi0gICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVz
dCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIGlmIHRoZSBzcGVjaWZpZWQgdGFnIG5hbWUgaXMg
YWxyZWFkeSB1c2VkJyk7Ci0KLX0sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyB3
aGVuIHRoZXJlIGlzIGFscmVhZHkgYSBjdXN0b20gZWxlbWVudCBvZiB0aGUgc2FtZSBuYW1lJyk7
Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIGNsYXNzIEFub3RoZXJDdXN0b21FbGVtZW50IGV4
dGVuZHMgSFRNTEVsZW1lbnQge307Ci0KLSAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2Fub3Ro
ZXItY3VzdG9tLWVsZW1lbnQnLCBBbm90aGVyQ3VzdG9tRWxlbWVudCk7Ci0gICAgYXNzZXJ0X3Ro
cm93cyh7J25hbWUnOiAnTm90U3VwcG9ydGVkRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21F
bGVtZW50cy5kZWZpbmUoJ3NvbWUtb3RoZXItZWxlbWVudCcsIEFub3RoZXJDdXN0b21FbGVtZW50
KTsgfSwKLSAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgTm90U3Vw
cG9ydGVkRXJyb3IgaWYgdGhlIHNwZWNpZmllZCBjbGFzcyBhbHJlYWR5IGRlZmluZXMgYW4gZWxl
bWVudCcpOwotCi19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgd2hlbiB0aGVy
ZSBpcyBhbHJlYWR5IGEgY3VzdG9tIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBjbGFzcycpOwotCi10
ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3In
fSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2ludmFsaWQtZWxlbWVudCcs
IDEpOyB9LAotICAgICAgICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBUeXBl
RXJyb3Igd2hlbiB0aGUgZWxlbWVudCBpbnRlcmZhY2UgaXMgYSBudW1iZXInKTsKLSAgICBhc3Nl
cnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVt
ZW50cy5kZWZpbmUoJ2ludmFsaWQtZWxlbWVudCcsICcxMjMnKTsgfSwKLSAgICAgICAgJ2N1c3Rv
bUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgVHlwZUVycm9yIHdoZW4gdGhlIGVsZW1lbnQg
aW50ZXJmYWNlIGlzIGEgc3RyaW5nJyk7Ci0gICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnVHlw
ZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdpbnZhbGlkLWVs
ZW1lbnQnLCB7fSk7IH0sCi0gICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJv
dyBhIFR5cGVFcnJvciB3aGVuIHRoZSBlbGVtZW50IGludGVyZmFjZSBpcyBhbiBvYmplY3QnKTsK
LSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBj
dXN0b21FbGVtZW50cy5kZWZpbmUoJ2ludmFsaWQtZWxlbWVudCcsIFtdKTsgfSwKLSAgICAgICAg
J2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgVHlwZUVycm9yIHdoZW4gdGhlIGVs
ZW1lbnQgaW50ZXJmYWNlIGlzIGFuIGFycmF5Jyk7Ci19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5l
IG11c3QgdGhyb3cgd2hlbiB0aGUgZWxlbWVudCBpbnRlcmZhY2UgaXMgbm90IGEgY29uc3RydWN0
b3InKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNhbGxzID0gW107Ci0gICAgdmFy
IHByb3h5ID0gbmV3IFByb3h5KGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9LCB7Ci0gICAg
ICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwgbmFtZSkgewotICAgICAgICAgICAgY2FsbHMucHVz
aChuYW1lKTsKLSAgICAgICAgICAgIHJldHVybiB0YXJnZXRbbmFtZV07Ci0gICAgICAgIH0KLSAg
ICB9KTsKLSAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ3Byb3h5LWVsZW1lbnQnLCBwcm94eSk7
Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydwcm90b3R5cGUnXSk7Ci19LCAnY3Vz
dG9tRWxlbWVudHMuZGVmaW5lIG11c3QgZ2V0ICJwcm90b3R5cGUiIHByb3BlcnR5IG9mIHRoZSBj
b25zdHJ1Y3RvcicpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgcHJveHkgPSBuZXcg
UHJveHkoY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH0sIHsKLSAgICAgICAgZ2V0OiBmdW5j
dGlvbiAodGFyZ2V0LCBuYW1lKSB7Ci0gICAgICAgICAgICB0aHJvdyB7bmFtZTogJ2V4cGVjdGVk
RXJyb3InfTsKLSAgICAgICAgfQotICAgIH0pOwotICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzog
J2V4cGVjdGVkRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2Vs
ZW1lbnQtd2l0aC1zdHJpbmctcHJvdG90eXBlJywgcHJveHkpOyB9KTsKLX0sICdjdXN0b21FbGVt
ZW50cy5kZWZpbmUgbXVzdCByZXRocm93IGFuIGV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgZ2V0dGlu
ZyAicHJvdG90eXBlIiBwcm9wZXJ0eSBvZiB0aGUgY29uc3RydWN0b3InKTsKLQotdGVzdChmdW5j
dGlvbiAoKSB7Ci0gICAgdmFyIHJldHVybmVkVmFsdWU7Ci0gICAgdmFyIHByb3h5ID0gbmV3IFBy
b3h5KGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9LCB7Ci0gICAgICAgIGdldDogZnVuY3Rp
b24gKHRhcmdldCwgbmFtZSkgeyByZXR1cm4gcmV0dXJuZWRWYWx1ZTsgfQotICAgIH0pOwotCi0g
ICAgcmV0dXJuZWRWYWx1ZSA9IG51bGw7Ci0gICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnVHlw
ZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdp
dGgtc3RyaW5nLXByb3RvdHlwZScsIHByb3h5KTsgfSwKLSAgICAgICAgJ2N1c3RvbUVsZW1lbnRz
LmRlZmluZSBtdXN0IHRocm93IHdoZW4gInByb3RvdHlwZSIgcHJvcGVydHkgb2YgdGhlIGNvbnN0
cnVjdG9yIGlzIG51bGwnKTsKLSAgICByZXR1cm5lZFZhbHVlID0gdW5kZWZpbmVkOwotICAgIGFz
c2VydF90aHJvd3MoeyduYW1lJzogJ1R5cGVFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVs
ZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRoLXN0cmluZy1wcm90b3R5cGUnLCBwcm94eSk7IH0s
Ci0gICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyB3aGVuICJwcm90b3R5
cGUiIHByb3BlcnR5IG9mIHRoZSBjb25zdHJ1Y3RvciBpcyB1bmRlZmluZWQnKTsKLSAgICByZXR1
cm5lZFZhbHVlID0gJ2hlbGxvJzsKLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJy
b3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1z
dHJpbmctcHJvdG90eXBlJywgcHJveHkpOyB9LAotICAgICAgICAnY3VzdG9tRWxlbWVudHMuZGVm
aW5lIG11c3QgdGhyb3cgd2hlbiAicHJvdG90eXBlIiBwcm9wZXJ0eSBvZiB0aGUgY29uc3RydWN0
b3IgaXMgYSBzdHJpbmcnKTsKLSAgICByZXR1cm5lZFZhbHVlID0gMTsKLSAgICBhc3NlcnRfdGhy
b3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5k
ZWZpbmUoJ2VsZW1lbnQtd2l0aC1zdHJpbmctcHJvdG90eXBlJywgcHJveHkpOyB9LAotICAgICAg
ICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgd2hlbiAicHJvdG90eXBlIiBwcm9w
ZXJ0eSBvZiB0aGUgY29uc3RydWN0b3IgaXMgYSBudW1iZXInKTsKLQotfSwgJ2N1c3RvbUVsZW1l
bnRzLmRlZmluZSBtdXN0IHRocm93IHdoZW4gInByb3RvdHlwZSIgcHJvcGVydHkgb2YgdGhlIGNv
bnN0cnVjdG9yIGlzIG5vdCBhbiBvYmplY3QnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAg
dmFyIGNvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkge30KLSAgICB2YXIgY2FsbHMgPSBbXTsKLSAg
ICBjb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBuZXcgUHJveHkoY29uc3RydWN0b3IucHJvdG90eXBl
LCB7Ci0gICAgICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwgbmFtZSkgewotICAgICAgICAgICAg
Y2FsbHMucHVzaChuYW1lKTsKLSAgICAgICAgICAgIHJldHVybiB0YXJnZXRbbmFtZV07Ci0gICAg
ICAgIH0KLSAgICB9KTsKLSAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1w
cm94eS1wcm90b3R5cGUnLCBjb25zdHJ1Y3Rvcik7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhj
YWxscywgWydjb25uZWN0ZWRDYWxsYmFjaycsICdkaXNjb25uZWN0ZWRDYWxsYmFjaycsICdhZG9w
dGVkQ2FsbGJhY2snLCAnYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrJ10pOwotfSwgJ2N1c3RvbUVs
ZW1lbnRzLmRlZmluZSBtdXN0IGdldCBjYWxsYmFja3Mgb2YgdGhlIGNvbnN0cnVjdG9yIHByb3Rv
dHlwZScpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgY29uc3RydWN0b3IgPSBmdW5j
dGlvbiAoKSB7fQotICAgIHZhciBjYWxscyA9IFtdOwotICAgIGNvbnN0cnVjdG9yLnByb3RvdHlw
ZSA9IG5ldyBQcm94eShjb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHsKLSAgICAgICAgZ2V0OiBmdW5j
dGlvbiAodGFyZ2V0LCBuYW1lKSB7Ci0gICAgICAgICAgICBjYWxscy5wdXNoKG5hbWUpOwotICAg
ICAgICAgICAgaWYgKG5hbWUgPT0gJ2Rpc2Nvbm5lY3RlZENhbGxiYWNrJykKLSAgICAgICAgICAg
ICAgICB0aHJvdyB7bmFtZTogJ2V4cGVjdGVkRXJyb3InfTsKLSAgICAgICAgICAgIHJldHVybiB0
YXJnZXRbbmFtZV07Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFt
ZSc6ICdleHBlY3RlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5l
KCdlbGVtZW50LXdpdGgtdGhyb3dpbmctY2FsbGJhY2snLCBjb25zdHJ1Y3Rvcik7IH0pOwotICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnY29ubmVjdGVkQ2FsbGJhY2snLCAnZGlzY29u
bmVjdGVkQ2FsbGJhY2snXSwKLSAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IG5v
dCBnZXQgY2FsbGJhY2tzIGFmdGVyIG9uZSBvZiB0aGUgZ2V0IHRocm93cycpOwotfSwgJ2N1c3Rv
bUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4gZXhjZXB0aW9uIHRocm93biB3aGlsZSBn
ZXR0aW5nIGNhbGxiYWNrcyBvbiB0aGUgY29uc3RydWN0b3IgcHJvdG90eXBlJyk7Ci0KLXRlc3Qo
ZnVuY3Rpb24gKCkgewotICAgIHZhciBjb25zdHJ1Y3RvciA9IGZ1bmN0aW9uICgpIHt9Ci0gICAg
dmFyIGNhbGxzID0gW107Ci0gICAgY29uc3RydWN0b3IucHJvdG90eXBlID0gbmV3IFByb3h5KGNv
bnN0cnVjdG9yLnByb3RvdHlwZSwgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5h
bWUpIHsKLSAgICAgICAgICAgIGNhbGxzLnB1c2gobmFtZSk7Ci0gICAgICAgICAgICBpZiAobmFt
ZSA9PSAnYWRvcHRlZENhbGxiYWNrJykKLSAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAg
ICAgICAgIHJldHVybiB0YXJnZXRbbmFtZV07Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICBhc3Nl
cnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVt
ZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC10aHJvd2luZy1jYWxsYmFjaycsIGNvbnN0cnVjdG9y
KTsgfSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWRDYWxsYmFj
aycsICdkaXNjb25uZWN0ZWRDYWxsYmFjaycsICdhZG9wdGVkQ2FsbGJhY2snXSwKLSAgICAgICAg
J2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IG5vdCBnZXQgY2FsbGJhY2tzIGFmdGVyIG9uZSBv
ZiB0aGUgY29udmVyc2lvbiB0aHJvd3MnKTsKLX0sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVz
dCByZXRocm93IGFuIGV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgY29udmVydGluZyBhIGNhbGxiYWNr
IHZhbHVlIHRvIEZ1bmN0aW9uIGNhbGxiYWNrIHR5cGUnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7
Ci0gICAgdmFyIGNvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkge30KLSAgICBjb25zdHJ1Y3Rvci5w
cm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrID0gZnVuY3Rpb24gKCkgeyB9OwotICAg
IHZhciBwcm90b3R5cGVDYWxscyA9IFtdOwotICAgIHZhciBjYWxsT3JkZXIgPSAwOwotICAgIGNv
bnN0cnVjdG9yLnByb3RvdHlwZSA9IG5ldyBQcm94eShjb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHsK
LSAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lKSB7Ci0gICAgICAgICAgICBpZiAo
bmFtZSA9PSAncHJvdG90eXBlJyB8fCBuYW1lID09ICdvYnNlcnZlZEF0dHJpYnV0ZXMnKQotICAg
ICAgICAgICAgICAgIHRocm93ICdVbmV4cGVjdGVkIGFjY2VzcyB0byBvYnNlcnZlZEF0dHJpYnV0
ZXMnOwotICAgICAgICAgICAgcHJvdG90eXBlQ2FsbHMucHVzaChjYWxsT3JkZXIrKyk7ICAgIAot
ICAgICAgICAgICAgcHJvdG90eXBlQ2FsbHMucHVzaChuYW1lKTsKLSAgICAgICAgICAgIHJldHVy
biB0YXJnZXRbbmFtZV07Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICB2YXIgY29uc3RydWN0b3JD
YWxscyA9IFtdOwotICAgIHZhciBwcm94eSA9IG5ldyBQcm94eShjb25zdHJ1Y3RvciwgewotICAg
ICAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpIHsKLSAgICAgICAgICAgIGNvbnN0cnVj
dG9yQ2FsbHMucHVzaChjYWxsT3JkZXIrKyk7ICAgIAotICAgICAgICAgICAgY29uc3RydWN0b3JD
YWxscy5wdXNoKG5hbWUpOwotICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKLSAgICAg
ICAgfQotICAgIH0pOwotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRoLWF0
dHJpYnV0ZS1jaGFuZ2VkLWNhbGxiYWNrJywgcHJveHkpOwotICAgIGFzc2VydF9hcnJheV9lcXVh
bHMocHJvdG90eXBlQ2FsbHMsIFsxLCAnY29ubmVjdGVkQ2FsbGJhY2snLCAyLCAnZGlzY29ubmVj
dGVkQ2FsbGJhY2snLCAzLCAnYWRvcHRlZENhbGxiYWNrJywgNCwgJ2F0dHJpYnV0ZUNoYW5nZWRD
YWxsYmFjayddKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNvbnN0cnVjdG9yQ2FsbHMsIFsw
LCAncHJvdG90eXBlJywgNSwgJ29ic2VydmVkQXR0cmlidXRlcyddKTsKLX0sICdjdXN0b21FbGVt
ZW50cy5kZWZpbmUgbXVzdCBnZXQgIm9ic2VydmVkQXR0cmlidXRlcyIgcHJvcGVydHkgb24gdGhl
IGNvbnN0cnVjdG9yIHByb3RvdHlwZSB3aGVuICJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siIGlz
IHByZXNlbnQnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNvbnN0cnVjdG9yID0g
ZnVuY3Rpb24gKCkge30KLSAgICBjb25zdHJ1Y3Rvci5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdl
ZENhbGxiYWNrID0gZnVuY3Rpb24gKCkgeyB9OwotICAgIHZhciBjYWxscyA9IFtdOwotICAgIHZh
ciBwcm94eSA9IG5ldyBQcm94eShjb25zdHJ1Y3RvciwgewotICAgICAgICBnZXQ6IGZ1bmN0aW9u
ICh0YXJnZXQsIG5hbWUpIHsKLSAgICAgICAgICAgIGNhbGxzLnB1c2gobmFtZSk7Ci0gICAgICAg
ICAgICBpZiAobmFtZSA9PSAnb2JzZXJ2ZWRBdHRyaWJ1dGVzJykKLSAgICAgICAgICAgICAgICB0
aHJvdyB7bmFtZTogJ2V4cGVjdGVkRXJyb3InfTsKLSAgICAgICAgICAgIHJldHVybiB0YXJnZXRb
bmFtZV07Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdl
eHBlY3RlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVt
ZW50LXdpdGgtdGhyb3dpbmctb2JzZXJ2ZWQtYXR0cmlidXRlcycsIHByb3h5KTsgfSk7Ci0gICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydwcm90b3R5cGUnLCAnb2JzZXJ2ZWRBdHRyaWJ1
dGVzJ10sCi0gICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBnZXQgInByb3RvdHlw
ZSIgYW5kICJvYnNlcnZlZEF0dHJpYnV0ZXMiIG9uIHRoZSBjb25zdHJ1Y3RvcicpOwotfSwgJ2N1
c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4gZXhjZXB0aW9uIHRocm93biB3aGls
ZSBnZXR0aW5nIG9ic2VydmVkQXR0cmlidXRlcyBvbiB0aGUgY29uc3RydWN0b3IgcHJvdG90eXBl
Jyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBjb25zdHJ1Y3RvciA9IGZ1bmN0aW9u
ICgpIHt9Ci0gICAgY29uc3RydWN0b3IucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFj
ayA9IGZ1bmN0aW9uICgpIHsgfTsKLSAgICB2YXIgY2FsbHMgPSBbXTsKLSAgICB2YXIgcHJveHkg
PSBuZXcgUHJveHkoY29uc3RydWN0b3IsIHsKLSAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0
LCBuYW1lKSB7Ci0gICAgICAgICAgICBjYWxscy5wdXNoKG5hbWUpOwotICAgICAgICAgICAgaWYg
KG5hbWUgPT0gJ29ic2VydmVkQXR0cmlidXRlcycpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDE7
Ci0gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W25hbWVdOwotICAgICAgICB9Ci0gICAgfSk7Ci0g
ICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnVHlwZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdpdGgtaW52YWxpZC1vYnNlcnZlZC1hdHRyaWJ1
dGVzJywgcHJveHkpOyB9KTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ3Byb3Rv
dHlwZScsICdvYnNlcnZlZEF0dHJpYnV0ZXMnXSwKLSAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRl
ZmluZSBtdXN0IGdldCAicHJvdG90eXBlIiBhbmQgIm9ic2VydmVkQXR0cmlidXRlcyIgb24gdGhl
IGNvbnN0cnVjdG9yJyk7Ci19LCAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgcmV0aHJvdyBh
biBleGNlcHRpb24gdGhyb3duIHdoaWxlIGNvbnZlcnRpbmcgdGhlIHZhbHVlIG9mIG9ic2VydmVk
QXR0cmlidXRlcyB0byBzZXF1ZW5jZTxET01TdHJpbmc+Jyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkg
ewotICAgIHZhciBjb25zdHJ1Y3RvciA9IGZ1bmN0aW9uICgpIHt9Ci0gICAgY29uc3RydWN0b3Iu
cHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayA9IGZ1bmN0aW9uICgpIHsgfTsKLSAg
ICBjb25zdHJ1Y3Rvci5vYnNlcnZlZEF0dHJpYnV0ZXMgPSB7W1N5bWJvbC5pdGVyYXRvcl06IGZ1
bmN0aW9uICooKSB7Ci0gICAgICAgIHlpZWxkICdmb28nOwotICAgICAgICB0aHJvdyB7bmFtZTog
J1NvbWVFcnJvcid9OwotICAgIH19OwotICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1NvbWVF
cnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRo
LWdlbmVyYXRvci1vYnNlcnZlZC1hdHRyaWJ1dGVzJywgY29uc3RydWN0b3IpOyB9KTsKLX0sICdj
dXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCByZXRocm93IGFuIGV4Y2VwdGlvbiB0aHJvd24gd2hp
bGUgaXRlcmF0aW5nIG92ZXIgb2JzZXJ2ZWRBdHRyaWJ1dGVzIHRvIHNlcXVlbmNlPERPTVN0cmlu
Zz4nKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNvbnN0cnVjdG9yID0gZnVuY3Rp
b24gKCkge30KLSAgICBjb25zdHJ1Y3Rvci5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxi
YWNrID0gZnVuY3Rpb24gKCkgeyB9OwotICAgIGNvbnN0cnVjdG9yLm9ic2VydmVkQXR0cmlidXRl
cyA9IHtbU3ltYm9sLml0ZXJhdG9yXTogMX07Ci0gICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAn
VHlwZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50
LXdpdGgtb2JzZXJ2ZWQtYXR0cmlidXRlcy13aXRoLXVuY2FsbGFibGUtaXRlcmF0b3InLCBjb25z
dHJ1Y3Rvcik7IH0pOwotfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4g
ZXhjZXB0aW9uIHRocm93biB3aGlsZSByZXRyaWV2aW5nIFN5bWJvbC5pdGVyYXRvciBvbiBvYnNl
cnZlZEF0dHJpYnV0ZXMnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNvbnN0cnVj
dG9yID0gZnVuY3Rpb24gKCkge30KLSAgICBjb25zdHJ1Y3Rvci5vYnNlcnZlZEF0dHJpYnV0ZXMg
PSAxOwotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRob3V0LWNhbGxiYWNr
LXdpdGgtaW52YWxpZC1vYnNlcnZlZC1hdHRyaWJ1dGVzJywgY29uc3RydWN0b3IpOwotfSwgJ2N1
c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IG5vdCB0aHJvdyBldmVuIGlmICJvYnNlcnZlZEF0dHJp
YnV0ZXMiIGZhaWxzIHRvIGNvbnZlcnQgaWYgImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIgaXMg
bm90IGRlZmluZWQnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgY2xhc3MgTXlDdXN0b21F
bGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQge307Ci0gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5l
KCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7Ci0KLSAgICB2YXIgaW5zdGFu
Y2UgPSBuZXcgTXlDdXN0b21FbGVtZW50OwotICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3Rh
bmNlb2YgTXlDdXN0b21FbGVtZW50LAotICAgICAgICAnQW4gaW5zdGFuY2Ugb2YgYSBjdXN0b20g
SFRNTCBlbGVtZW50IGJlIGFuIGluc3RhbmNlIG9mIHRoZSBhc3NvY2lhdGVkIGludGVyZmFjZScp
OwotCi0gICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCwKLSAg
ICAgICAgJ0FuIGluc3RhbmNlIG9mIGEgY3VzdG9tIEhUTUwgZWxlbWVudCBtdXN0IGluaGVyaXQg
ZnJvbSBIVE1MRWxlbWVudCcpOwotCi0gICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5sb2NhbE5h
bWUsICdteS1jdXN0b20tZWxlbWVudCcsCi0gICAgICAgICdBbiBpbnN0YW5jZSBvZiBhIGN1c3Rv
bSBlbGVtZW50IG11c3QgdXNlIHRoZSBhc3NvY2lhdGVkIHRhZyBuYW1lJyk7Ci0KLSAgICBhc3Nl
cnRfZXF1YWxzKGluc3RhbmNlLm5hbWVzcGFjZVVSSSwgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnLAotICAgICAgICAnQSBjdXN0b20gZWxlbWVudCBIVE1MIG11c3QgdXNlIEhUTUwgbmFt
ZXNwYWNlJyk7Ci0KLX0sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBkZWZpbmUgYW4gaW5z
dGFudGlhdGFibGUgY3VzdG9tIGVsZW1lbnQnKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVu
dC1kZWZpbmVFbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL0RvY3VtZW50LWRlZmluZUVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdi
MDYzODU3NTk0NzAwZDRhNDJhMjczNzc2OTQ2MmMzOGM3NGE4OTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVudC1kZWZpbmVFbGVtZW50
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworUEFTUyBDaGVjayB0aGUgZXhpc3RlbmNl
IG9mIEN1c3RvbUVsZW1lbnRzUmVnaXN0cnkucHJvdG90eXBlLmRlZmluZSBvbiBDdXN0b21FbGVt
ZW50c1JlZ2lzdHJ5IGludGVyZmFjZSAKK1BBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIHNob3Vs
ZCB0aHJvdyB3aXRoIGFuIGludmFsaWQgbmFtZSAKK1BBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5l
IHNob3VsZCB0aHJvdyB3aGVuIHRoZXJlIGlzIGFscmVhZHkgYSBjdXN0b20gZWxlbWVudCBvZiB0
aGUgc2FtZSBuYW1lIAorUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgc2hvdWxkIHRocm93IHdo
ZW4gdGhlcmUgaXMgYWxyZWFkeSBhIGN1c3RvbSBlbGVtZW50IHdpdGggdGhlIHNhbWUgY2xhc3Mg
CitQQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBzaG91bGQgdGhyb3cgd2hlbiB0aGUgZWxlbWVu
dCBpbnRlcmZhY2UgaXMgbm90IGEgY29uc3RydWN0b3IgCitQQVNTIGN1c3RvbUVsZW1lbnRzLmRl
ZmluZSBzaG91bGQgZGVmaW5lIGFuIGluc3RhbnRpYXRhYmxlIGN1c3RvbSBlbGVtZW50IAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVudC1kZWZp
bmVFbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVu
dC1kZWZpbmVFbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTg0YzViMWQwMzFiYjJjYTQwMjc5NTU2
ZTUyMGEyMDgzYmI1NzRiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL0RvY3VtZW50LWRlZmluZUVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDEwMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkN1c3RvbSBFbGVtZW50
czogRXh0ZW5zaW9ucyB0byBEb2N1bWVudCBpbnRlcmZhY2U8L3RpdGxlPgorPG1ldGEgbmFtZT0i
YXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9y
ZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9ImN1c3RvbUVsZW1lbnRzLmRlZmluZSBz
aG91bGQgZGVmaW5lIGEgY3VzdG9tIGVsZW1lbnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0nc3R5bGVzaGVl
dCcgaHJlZj0nLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCit0ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICBhc3NlcnRfdHJ1ZSgnZGVmaW5lJyBpbiBDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LnByb3Rv
dHlwZSwgJyJkZWZpbmUiIGV4aXN0cyBvbiBDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LnByb3RvdHlw
ZScpOworICAgIGFzc2VydF90cnVlKCdkZWZpbmUnIGluIGN1c3RvbUVsZW1lbnRzLCAnImRlZmlu
ZSIgZXhpc3RzIG9uIHdpbmRvdy5jdXN0b21FbGVtZW50cycpOworfSwgJ0NoZWNrIHRoZSBleGlz
dGVuY2Ugb2YgQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5wcm90b3R5cGUuZGVmaW5lIG9uIEN1c3Rv
bUVsZW1lbnRzUmVnaXN0cnkgaW50ZXJmYWNlJyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAg
IGNsYXNzIE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHt9OworCisgICAgYXNz
ZXJ0X3Rocm93cyh7J25hbWUnOiAnU3ludGF4RXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21F
bGVtZW50cy5kZWZpbmUobnVsbCwgTXlDdXN0b21FbGVtZW50KTsgfSwKKyAgICAgICAgJ2N1c3Rv
bUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgU3ludGF4RXJyb3IgaWYgdGhlIHRhZyBuYW1l
IGlzIG51bGwnKTsKKyAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdTeW50YXhFcnJvcid9LCBm
dW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnJywgTXlDdXN0b21FbGVtZW50KTsg
fSwKKyAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgU3ludGF4RXJy
b3IgaWYgdGhlIHRhZyBuYW1lIGlzIGVtcHR5Jyk7CisgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUn
OiAnU3ludGF4RXJyb3InfSwgZnVuY3Rpb24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2Fi
YycsIE15Q3VzdG9tRWxlbWVudCk7IH0sCisgICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUg
bXVzdCB0aHJvdyBhIFN5bnRheEVycm9yIGlmIHRoZSB0YWcgbmFtZSBkb2VzIG5vdCBjb250YWlu
ICItIicpOworICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1N5bnRheEVycm9yJ30sIGZ1bmN0
aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdhLUJjJywgTXlDdXN0b21FbGVtZW50KTsg
fSwKKyAgICAgICAgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgU3ludGF4RXJy
b3IgaWYgdGhlIHRhZyBuYW1lIGNvbnRhaW5zIGFuIHVwcGVyIGNhc2UgbGV0dGVyJyk7CisKKyAg
ICB2YXIgYnVpbHRpblRhZ05hbWVzID0gWworICAgICAgICAnYW5ub3RhdGlvbi14bWwnLAorICAg
ICAgICAnY29sb3ItcHJvZmlsZScsCisgICAgICAgICdmb250LWZhY2UnLAorICAgICAgICAnZm9u
dC1mYWNlLXNyYycsCisgICAgICAgICdmb250LWZhY2UtdXJpJywKKyAgICAgICAgJ2ZvbnQtZmFj
ZS1mb3JtYXQnLAorICAgICAgICAnZm9udC1mYWNlLW5hbWUnLAorICAgICAgICAnbWlzc2luZy1n
bHlwaCcKKyAgICBdOworCisgICAgZm9yICh2YXIgdGFnTmFtZSBvZiBidWlsdGluVGFnTmFtZXMp
IHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnU3ludGF4RXJyb3InfSwgZnVuY3Rp
b24gKCkgeyBjdXN0b21FbGVtZW50cy5kZWZpbmUodGFnTmFtZSwgTXlDdXN0b21FbGVtZW50KTsg
fSwKKyAgICAgICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIFN5bnRh
eEVycm9yIGlmIHRoZSB0YWcgbmFtZSBpcyAiJyArIHRhZ05hbWUgKyAnIicpOworICAgIH0KKwor
fSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBzaG91bGQgdGhyb3cgd2l0aCBhbiBpbnZhbGlkIG5h
bWUnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgY2xhc3MgU29tZUN1c3RvbUVsZW1lbnQg
ZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsKKyAgICBjbGFzcyBPdGhlckN1c3RvbUVsZW1lbnQgZXh0
ZW5kcyBIVE1MRWxlbWVudCB7fTsKKworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnc29tZS1j
dXN0b20tZWxlbWVudCcsIFNvbWVDdXN0b21FbGVtZW50KTsKKyAgICBhc3NlcnRfdGhyb3dzKHsn
bmFtZSc6ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRz
LmRlZmluZSgnc29tZS1jdXN0b20tZWxlbWVudCcsIE90aGVyQ3VzdG9tRWxlbWVudCk7IH0sCisg
ICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVy
cm9yIGlmIHRoZSBzcGVjaWZpZWQgdGFnIG5hbWUgaXMgYWxyZWFkeSB1c2VkJyk7CisKK30sICdj
dXN0b21FbGVtZW50cy5kZWZpbmUgc2hvdWxkIHRocm93IHdoZW4gdGhlcmUgaXMgYWxyZWFkeSBh
IGN1c3RvbSBlbGVtZW50IG9mIHRoZSBzYW1lIG5hbWUnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7
CisgICAgY2xhc3MgQW5vdGhlckN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsK
KworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnYW5vdGhlci1jdXN0b20tZWxlbWVudCcsIEFu
b3RoZXJDdXN0b21FbGVtZW50KTsKKyAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdOb3RTdXBw
b3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnc29tZS1v
dGhlci1lbGVtZW50JywgQW5vdGhlckN1c3RvbUVsZW1lbnQpOyB9LAorICAgICAgICAnY3VzdG9t
RWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciBpZiB0aGUgc3Bl
Y2lmaWVkIGNsYXNzIGFscmVhZHkgZGVmaW5lcyBhbiBlbGVtZW50Jyk7CisKK30sICdjdXN0b21F
bGVtZW50cy5kZWZpbmUgc2hvdWxkIHRocm93IHdoZW4gdGhlcmUgaXMgYWxyZWFkeSBhIGN1c3Rv
bSBlbGVtZW50IHdpdGggdGhlIHNhbWUgY2xhc3MnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7Cisg
ICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnVHlwZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCdpbnZhbGlkLWVsZW1lbnQnLCAxKTsgfSwKKyAgICAgICAgJ2N1
c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHRocm93IGEgVHlwZUVycm9yIHdoZW4gdGhlIGVsZW1l
bnQgaW50ZXJmYWNlIGlzIGEgbnVtYmVyJyk7CisgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAn
VHlwZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdpbnZhbGlk
LWVsZW1lbnQnLCAnMTIzJyk7IH0sCisgICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVz
dCB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIHRoZSBlbGVtZW50IGludGVyZmFjZSBpcyBhIHN0cmlu
ZycpOworICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1R5cGVFcnJvcid9LCBmdW5jdGlvbiAo
KSB7IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnaW52YWxpZC1lbGVtZW50Jywge30pOyB9LAorICAg
ICAgICAnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdGhyb3cgYSBUeXBlRXJyb3Igd2hlbiB0
aGUgZWxlbWVudCBpbnRlcmZhY2UgaXMgYW4gb2JqZWN0Jyk7CisgICAgYXNzZXJ0X3Rocm93cyh7
J25hbWUnOiAnVHlwZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgY3VzdG9tRWxlbWVudHMuZGVmaW5l
KCdpbnZhbGlkLWVsZW1lbnQnLCBbXSk7IH0sCisgICAgICAgICdjdXN0b21FbGVtZW50cy5kZWZp
bmUgbXVzdCB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIHRoZSBlbGVtZW50IGludGVyZmFjZSBpcyBh
biBhcnJheScpOworfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBzaG91bGQgdGhyb3cgd2hlbiB0
aGUgZWxlbWVudCBpbnRlcmZhY2UgaXMgbm90IGEgY29uc3RydWN0b3InKTsKKwordGVzdChmdW5j
dGlvbiAoKSB7CisgICAgY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQg
e307CisgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3Vz
dG9tRWxlbWVudCk7CisKKyAgICB2YXIgaW5zdGFuY2UgPSBuZXcgTXlDdXN0b21FbGVtZW50Owor
ICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50LAorICAg
ICAgICAnQW4gaW5zdGFuY2Ugb2YgYSBjdXN0b20gSFRNTCBlbGVtZW50IGJlIGFuIGluc3RhbmNl
IG9mIHRoZSBhc3NvY2lhdGVkIGludGVyZmFjZScpOworCisgICAgYXNzZXJ0X3RydWUoaW5zdGFu
Y2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCwKKyAgICAgICAgJ0FuIGluc3RhbmNlIG9mIGEgY3Vz
dG9tIEhUTUwgZWxlbWVudCBtdXN0IGluaGVyaXQgZnJvbSBIVE1MRWxlbWVudCcpOworCisgICAg
YXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5sb2NhbE5hbWUsICdteS1jdXN0b20tZWxlbWVudCcsCisg
ICAgICAgICdBbiBpbnN0YW5jZSBvZiBhIGN1c3RvbSBlbGVtZW50IG11c3QgdXNlIHRoZSBhc3Nv
Y2lhdGVkIHRhZyBuYW1lJyk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLm5hbWVzcGFj
ZVVSSSwgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLAorICAgICAgICAnQSBjdXN0b20g
ZWxlbWVudCBIVE1MIG11c3QgdXNlIEhUTUwgbmFtZXNwYWNlJyk7CisKK30sICdjdXN0b21FbGVt
ZW50cy5kZWZpbmUgc2hvdWxkIGRlZmluZSBhbiBpbnN0YW50aWF0YWJsZSBjdXN0b20gZWxlbWVu
dCcpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2F0dHJpYnV0ZS1jaGFuZ2VkLWNhbGxiYWNrLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2F0dHJpYnV0ZS1jaGFu
Z2VkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dAppbmRleCBiY2YzOWJiNzViOGUwYjczNTYyMmE5NWE0
MDUyOWVmNWI3NTMwZDdlLi40NjVhOTdiOGUwZmYxYzVjZGM1Zjg0Mjg5ZjEwMmMzZWFkNmJhZTdl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9hdHRyaWJ1dGUt
Y2hhbmdlZC1jYWxsYmFjay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0
b20tZWxlbWVudHMvYXR0cmlidXRlLWNoYW5nZWQtY2FsbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0z
LDggKzMsNCBAQCBQQVNTIHNldEF0dHJpYnV0ZSBhbmQgcmVtb3ZlQXR0cmlidXRlIG11c3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGF0dHJpYnV0ZUNoYW5nZWRDYQogUEFTUyBzZXRBdHRyaWJ1dGVOUyBh
bmQgcmVtb3ZlQXR0cmlidXRlTlMgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgYXR0cmlidXRlQ2hh
bmdlZENhbGxiYWNrIAogUEFTUyBzZXRBdHRyaWJ1dGVOb2RlIGFuZCByZW1vdmVBdHRyaWJ1dGVO
UyBtdXN0IGVucXVldWUgYW5kIGludm9rZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sgCiBQQVNT
IHNldEF0dHJpYnV0ZU5vZGUgYW5kIHJlbW92ZUF0dHJpYnV0ZU5TIG11c3QgZW5xdWV1ZSBhbmQg
aW52b2tlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayAKLVBBU1MgTXV0YXRpbmcgYXR0cmlidXRl
Q2hhbmdlZENhbGxiYWNrIGFmdGVyIGNhbGxpbmcgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qg
bm90IGFmZmVjdCB0aGUgY2FsbGJhY2sgYmVpbmcgaW52b2tlZCAKLVBBU1MgYXR0cmlidXRlZENo
YW5nZWRDYWxsYmFjayBtdXN0IG5vdCBiZSBpbnZva2VkIHdoZW4gdGhlIG9ic2VydmVkIGF0dHJp
YnV0ZXMgZG9lcyBub3QgY29udGFpbiB0aGUgYXR0cmlidXRlLiAKLVBBU1MgTXV0YXRpbmcgb2Jz
ZXJ2ZWRBdHRyaWJ1dGVzIGFmdGVyIGNhbGxpbmcgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qg
bm90IGFmZmVjdCB0aGUgc2V0IG9mIGF0dHJpYnV0ZXMgZm9yIHdoaWNoIGF0dHJpYnV0ZWRDaGFu
Z2VkQ2FsbGJhY2sgaXMgaW52b2tlZCAKLVBBU1MgYXR0cmlidXRlZENoYW5nZWRDYWxsYmFjayBt
dXN0IGJlIGVucXVldWVkIGZvciBhdHRyaWJ1dGVzIHNwZWNpZmllZCBpbiBhIG5vbi1BcnJheSBp
dGVyYWJsZSBvYnNlcnZlZEF0dHJpYnV0ZXMgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3VzdG9tLWVsZW1lbnRzL2F0dHJpYnV0ZS1jaGFuZ2VkLWNhbGxiYWNrLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9hdHRyaWJ1dGUtY2hhbmdlZC1jYWxsYmFjay5o
dG1sCmluZGV4IGE5MGE2YWZjNmIxMGNhZTAzZWQ2MWZlMjYwOTU0ZDY1YTJjNmRiZjIuLjExODMy
NTVkNmI2N2MyYjEwYjA0YWQwYmQ5MjBiN2JhMzZkMDAyZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2F0dHJpYnV0ZS1jaGFuZ2VkLWNhbGxiYWNrLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvYXR0cmlidXRlLWNoYW5nZWQt
Y2FsbGJhY2suaHRtbApAQCAtMTksNyArMTksNiBAQCBjbGFzcyBNeUN1c3RvbUVsZW1lbnQgZXh0
ZW5kcyBIVE1MRWxlbWVudCB7CiAgICAgICAgIGFyZ3VtZW50TGlzdC5wdXNoKHthcmd1bWVudHM6
IGFyZ3VtZW50cywgdmFsdWU6IHRoaXMuZ2V0QXR0cmlidXRlTlMobmFtZXNwYWNlLCBuYW1lKX0p
OwogICAgIH0KIH0KLU15Q3VzdG9tRWxlbWVudC5vYnNlcnZlZEF0dHJpYnV0ZXMgPSBbJ3RpdGxl
JywgJ2lkJywgJ3InXTsKIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9tLWVsZW1lbnQn
LCBNeUN1c3RvbUVsZW1lbnQpOwogCiB0ZXN0KGZ1bmN0aW9uICgpIHsKQEAgLTk3LDk2ICs5Niw4
IEBAIHRlc3QoZnVuY3Rpb24gKCkgewogICAgIGFzc2VydF9lcXVhbHMoYXJndW1lbnRMaXN0Lmxl
bmd0aCwgMik7CiAgICAgYXNzZXJ0X2VxdWFscyhhcmd1bWVudExpc3RbMV0udmFsdWUsIG51bGwp
OwogICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYXJndW1lbnRMaXN0WzFdLmFyZ3VtZW50cywgWydy
JywgJzEwMCcsIG51bGwsICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyddKTsKLX0sICdzZXRB
dHRyaWJ1dGVOb2RlIGFuZCByZW1vdmVBdHRyaWJ1dGVOUyBtdXN0IGVucXVldWUgYW5kIGludm9r
ZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2snKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAg
dmFyIGNhbGxzVG9PbGQgPSBbXTsKLSAgICB2YXIgY2FsbHNUb05ldyA9IFtdOwotICAgIGNsYXNz
IEN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH0KLSAgICBDdXN0b21FbGVtZW50
LnByb3RvdHlwZS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIGNhbGxzVG9PbGQucHVzaChBcnJheS5mcm9tKGFyZ3VtZW50cykpOwotICAgIH0KLSAgICBD
dXN0b21FbGVtZW50Lm9ic2VydmVkQXR0cmlidXRlcyA9IFsndGl0bGUnXTsKLSAgICBjdXN0b21F
bGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtd2l0aC1tdXRhdGVkLWF0dHJpYnV0ZS1jaGFuZ2VkLWNh
bGxiYWNrJywgQ3VzdG9tRWxlbWVudCk7Ci0gICAgQ3VzdG9tRWxlbWVudC5wcm90b3R5cGUuYXR0
cmlidXRlQ2hhbmdlZENhbGxiYWNrID0gZnVuY3Rpb24gKCkgewotICAgICAgICBjYWxsc1RvTmV3
LnB1c2goQXJyYXkuZnJvbShhcmd1bWVudHMpKTsKLSAgICB9Ci0KLSAgICB2YXIgaW5zdGFuY2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdlbGVtZW50LXdpdGgtbXV0YXRlZC1hdHRyaWJ1dGUt
Y2hhbmdlZC1jYWxsYmFjaycpOwotICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAn
aGknKTsKLSAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmdldEF0dHJpYnV0ZSgndGl0bGUnKSwg
J2hpJyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxsc1RvTmV3LCBbXSk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhjYWxsc1RvT2xkLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhjYWxsc1RvT2xkWzBdLCBbJ3RpdGxlJywgbnVsbCwgJ2hpJywgbnVsbF0pOwotfSwgJ011dGF0
aW5nIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayBhZnRlciBjYWxsaW5nIGN1c3RvbUVsZW1lbnRz
LmRlZmluZSBtdXN0IG5vdCBhZmZlY3QgdGhlIGNhbGxiYWNrIGJlaW5nIGludm9rZWQnKTsKIAot
dGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNhbGxzID0gW107Ci0gICAgY2xhc3MgQ3VzdG9t
RWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlQ2hhbmdlZENh
bGxiYWNrKCkgewotICAgICAgICAgICAgY2FsbHMucHVzaChBcnJheS5mcm9tKGFyZ3VtZW50cykp
OwotICAgICAgICB9Ci0gICAgfQotICAgIEN1c3RvbUVsZW1lbnQub2JzZXJ2ZWRBdHRyaWJ1dGVz
ID0gWyd0aXRsZSddOwotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC1ub3Qtb2Jz
ZXJ2aW5nLWlkLWF0dHJpYnV0ZScsIEN1c3RvbUVsZW1lbnQpOwotCi0gICAgdmFyIGluc3RhbmNl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZWxlbWVudC1ub3Qtb2JzZXJ2aW5nLWlkLWF0dHJp
YnV0ZScpOwotICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnaGknKTsKLSAgICBh
c3NlcnRfZXF1YWxzKGNhbGxzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhj
YWxsc1swXSwgWyd0aXRsZScsIG51bGwsICdoaScsIG51bGxdKTsKLSAgICBpbnN0YW5jZS5zZXRB
dHRyaWJ1dGUoJ2lkJywgJ3NvbWUnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGNhbGxzLmxlbmd0aCwg
MSk7Ci19LCAnYXR0cmlidXRlZENoYW5nZWRDYWxsYmFjayBtdXN0IG5vdCBiZSBpbnZva2VkIHdo
ZW4gdGhlIG9ic2VydmVkIGF0dHJpYnV0ZXMgZG9lcyBub3QgY29udGFpbiB0aGUgYXR0cmlidXRl
LicpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgY2FsbHMgPSBbXTsKLSAgICBjbGFz
cyBDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9Ci0gICAgQ3VzdG9tRWxlbWVu
dC5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrID0gZnVuY3Rpb24gKCkgewotICAg
ICAgICBjYWxscy5wdXNoKEFycmF5LmZyb20oYXJndW1lbnRzKSk7Ci0gICAgfQotICAgIEN1c3Rv
bUVsZW1lbnQub2JzZXJ2ZWRBdHRyaWJ1dGVzID0gWyd0aXRsZScsICdsYW5nJ107Ci0gICAgY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LXdpdGgtbXV0YXRlZC1vYnNlcnZlZC1hdHRyaWJ1
dGVzJywgQ3VzdG9tRWxlbWVudCk7Ci0gICAgQ3VzdG9tRWxlbWVudC5vYnNlcnZlZEF0dHJpYnV0
ZXMgPSBbJ3RpdGxlJywgJ2lkJ107Ci0KLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdlbGVtZW50LXdpdGgtbXV0YXRlZC1vYnNlcnZlZC1hdHRyaWJ1dGVzJyk7Ci0g
ICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCd0aXRsZScsICdoaScpOwotICAgIGFzc2VydF9lcXVh
bHMoY2FsbHMubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzWzBdLCBb
J3RpdGxlJywgbnVsbCwgJ2hpJywgbnVsbF0pOwotCi0gICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRl
KCdpZCcsICdzb21lJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjYWxscy5sZW5ndGgsIDEpOwotCi0g
ICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdsYW5nJywgJ2VuJyk7Ci0gICAgYXNzZXJ0X2VxdWFs
cyhjYWxscy5sZW5ndGgsIDIpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHNbMF0sIFsn
dGl0bGUnLCBudWxsLCAnaGknLCBudWxsXSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxs
c1sxXSwgWydsYW5nJywgbnVsbCwgJ2VuJywgbnVsbF0pOwotfSwgJ011dGF0aW5nIG9ic2VydmVk
QXR0cmlidXRlcyBhZnRlciBjYWxsaW5nIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IG5vdCBh
ZmZlY3QgdGhlIHNldCBvZiBhdHRyaWJ1dGVzIGZvciB3aGljaCBhdHRyaWJ1dGVkQ2hhbmdlZENh
bGxiYWNrIGlzIGludm9rZWQnKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNhbGxz
ID0gW107Ci0gICAgY2xhc3MgQ3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsgfQot
ICAgIEN1c3RvbUVsZW1lbnQucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayA9IGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgY2FsbHMucHVzaChBcnJheS5mcm9tKGFyZ3VtZW50cykpOwot
ICAgIH0KLSAgICBDdXN0b21FbGVtZW50Lm9ic2VydmVkQXR0cmlidXRlcyA9IHsgW1N5bWJvbC5p
dGVyYXRvcl06IGZ1bmN0aW9uICooKSB7IHlpZWxkICdsYW5nJzsgeWllbGQgJ3N0eWxlJzsgfSB9
OwotICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZWxlbWVudC13aXRoLWdlbmVyYXRvci1vYnNl
cnZlZC1hdHRyaWJ1dGVzJywgQ3VzdG9tRWxlbWVudCk7Ci0KLSAgICB2YXIgaW5zdGFuY2UgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdlbGVtZW50LXdpdGgtZ2VuZXJhdG9yLW9ic2VydmVkLWF0
dHJpYnV0ZXMnKTsKLSAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUoJ2xhbmcnLCAnZW4nKTsKLSAg
ICBhc3NlcnRfZXF1YWxzKGNhbGxzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhjYWxsc1swXSwgWydsYW5nJywgbnVsbCwgJ2VuJywgbnVsbF0pOwotCi0gICAgaW5zdGFuY2Uu
c2V0QXR0cmlidXRlKCdsYW5nJywgJ2phJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjYWxscy5sZW5n
dGgsIDIpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHNbMV0sIFsnbGFuZycsICdlbics
ICdqYScsIG51bGxdKTsKLQotICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnaGVs
bG8nKTsKLSAgICBhc3NlcnRfZXF1YWxzKGNhbGxzLmxlbmd0aCwgMik7Ci0KLSAgICBpbnN0YW5j
ZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2ZvbnQtc2l6ZTogMnJlbScpOwotICAgIGFzc2VydF9l
cXVhbHMoY2FsbHMubGVuZ3RoLCAzKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzWzJd
LCBbJ3N0eWxlJywgbnVsbCwgJ2ZvbnQtc2l6ZTogMnJlbScsIG51bGxdKTsKLX0sICdhdHRyaWJ1
dGVkQ2hhbmdlZENhbGxiYWNrIG11c3QgYmUgZW5xdWV1ZWQgZm9yIGF0dHJpYnV0ZXMgc3BlY2lm
aWVkIGluIGEgbm9uLUFycmF5IGl0ZXJhYmxlIG9ic2VydmVkQXR0cmlidXRlcycpOworfSwgJ3Nl
dEF0dHJpYnV0ZU5vZGUgYW5kIHJlbW92ZUF0dHJpYnV0ZU5TIG11c3QgZW5xdWV1ZSBhbmQgaW52
b2tlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaycpOwogCiA8L3NjcmlwdD4KIDwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2xpZmVjeWNsZS1jYWxs
YmFjay10aW1pbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2xpZmVj
eWNsZS1jYWxsYmFjay10aW1pbmcuaHRtbAppbmRleCA5NzRkNTI4NDk4NWYxYjJlOWFiYzliOTdm
ZThmNDc2MmE1MTYyYzI2Li5hZjk2MDJkMDllZDBlOWU4YjI4OTI4MjRmY2RiZWJhZWIxODUyZjcw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9saWZlY3ljbGUt
Y2FsbGJhY2stdGltaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVu
dHMvbGlmZWN5Y2xlLWNhbGxiYWNrLXRpbWluZy5odG1sCkBAIC0yMCw3ICsyMCw2IEBAIGNsYXNz
IE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsKIAogICAgIGhhbmRsZXIoKSB7
IH0KIH0KLU15Q3VzdG9tRWxlbWVudC5vYnNlcnZlZEF0dHJpYnV0ZXMgPSBbJ2RhdGEtdGl0bGUn
LCAndGl0bGUnXTsKIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9tLWVsZW1lbnQnLCBN
eUN1c3RvbUVsZW1lbnQpOwogCiB0ZXN0KGZ1bmN0aW9uICgpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>