<?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>102415</bug_id>
          
          <creation_ts>2012-11-15 11:40:57 -0800</creation_ts>
          <short_desc>IndexedDB setVersion-removal batch 7</short_desc>
          <delta_ts>2012-11-15 16:30:01 -0800</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>528+ (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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Grogan">dgrogan</reporter>
          <assigned_to name="David Grogan">dgrogan</assigned_to>
          <cc>alecflett</cc>
    
    <cc>jsbell</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>768348</commentid>
    <comment_count>0</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-15 11:40:57 -0800</bug_when>
    <thetext>IndexedDB setVersion-removal batch 7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768357</commentid>
    <comment_count>1</comment_count>
      <attachid>174495</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-15 11:50:19 -0800</bug_when>
    <thetext>Created attachment 174495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768360</commentid>
    <comment_count>2</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-15 11:52:16 -0800</bug_when>
    <thetext>Josh, could you look at this batch of 6-7?  After this one there are 25 tests left.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768537</commentid>
    <comment_count>3</comment_count>
      <attachid>174495</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-15 15:01:00 -0800</bug_when>
    <thetext>Comment on attachment 174495
Patch

lgtm with nits (although my eyes are glazing over)

View in context: https://bugs.webkit.org/attachment.cgi?id=174495&amp;action=review

&gt; LayoutTests/storage/indexeddb/mozilla/resources/versionchange-abort.js:28
&gt; +    trans.oncomplete = unexpectedSuccessCallback;

Should be unexpectedCompleteCallback

&gt; LayoutTests/storage/indexeddb/resources/objectstore-basics.js:78
&gt; +    request.onerror = addData;

addData() is only able to continue with the test because the aborted &quot;versionchange&quot; transaction doesn&apos;t close the database.

Can you add a FIXME referencing the existing bug on that? This test will probably need to be restructured slightly (i.e. open a new connection in addData)

&gt; LayoutTests/storage/indexeddb/resources/shared.js:197
&gt; +        shouldBe(&quot;openRequest.readyState&quot;, &quot;&apos;pending&apos;&quot;, true/*quiet*/);

You may need to add delete self.openRequest at the end of the end of the function, otherwise the reference would &quot;leak&quot; and could affect tests that try and gc()? (They probably shouldn&apos;t use this method anyway, but good hygiene to not leave globals around.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768547</commentid>
    <comment_count>4</comment_count>
      <attachid>174495</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-15 15:07:29 -0800</bug_when>
    <thetext>Comment on attachment 174495
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=174495&amp;action=review

&gt;&gt; LayoutTests/storage/indexeddb/mozilla/resources/versionchange-abort.js:28
&gt;&gt; +    trans.oncomplete = unexpectedSuccessCallback;
&gt; 
&gt; Should be unexpectedCompleteCallback

Fixed.

&gt;&gt; LayoutTests/storage/indexeddb/resources/objectstore-basics.js:78
&gt;&gt; +    request.onerror = addData;
&gt; 
&gt; addData() is only able to continue with the test because the aborted &quot;versionchange&quot; transaction doesn&apos;t close the database.
&gt; 
&gt; Can you add a FIXME referencing the existing bug on that? This test will probably need to be restructured slightly (i.e. open a new connection in addData)

FIXME added.

&gt;&gt; LayoutTests/storage/indexeddb/resources/shared.js:197
&gt;&gt; +        shouldBe(&quot;openRequest.readyState&quot;, &quot;&apos;pending&apos;&quot;, true/*quiet*/);
&gt; 
&gt; You may need to add delete self.openRequest at the end of the end of the function, otherwise the reference would &quot;leak&quot; and could affect tests that try and gc()? (They probably shouldn&apos;t use this method anyway, but good hygiene to not leave globals around.)

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768549</commentid>
    <comment_count>5</comment_count>
      <attachid>174530</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-15 15:10:18 -0800</bug_when>
    <thetext>Created attachment 174530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768550</commentid>
    <comment_count>6</comment_count>
      <attachid>174530</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-15 15:11:01 -0800</bug_when>
    <thetext>Comment on attachment 174530
Patch

Tony, could review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768605</commentid>
    <comment_count>7</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-15 16:12:36 -0800</bug_when>
    <thetext>Tony, could you review this?  (I suppose it&apos;d be helpful to actually cc you :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768648</commentid>
    <comment_count>8</comment_count>
      <attachid>174530</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-15 16:29:58 -0800</bug_when>
    <thetext>Comment on attachment 174530
Patch

Clearing flags on attachment: 174530

Committed r134854: &lt;http://trac.webkit.org/changeset/134854&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768649</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-15 16:30:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174495</attachid>
            <date>2012-11-15 11:50:19 -0800</date>
            <delta_ts>2012-11-15 15:10:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102415-20121115114816.patch</filename>
            <type>text/plain</type>
            <size>41709</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NzAyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjI5ZTFmYzI2NTQwZWRlNzA4NGY1
OTg5ZjRjNmM3NTI2MDVmNjgwYy4uY2QxMzg2ZWUzYzA0NWZhOWRhYzNjZjM2NWJmNGMwZThkMTk5
MmU1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTE1ICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREIgc2V0VmVyc2lvbi1yZW1v
dmFsIGJhdGNoIDcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMjQxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVl
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFk
eVN0YXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3Jlc291cmNlcy9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5qczoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9yZWFkeVN0YXRlLmpzOgorICAgICAgICAg
IE1vdmVkIG9uZSBjaGVjayBpbnRvIHNoYXJlZC5qcywgYSBmZXcgb3RoZXJzIGFyb3VuZCwgYW5k
IHRoZSBjaGVjaworICAgICAgICAgIGZvciBzZXRWZXJzaW9uJ3MgcmVxdWVzdC5yZWFkeVN0YXRl
PT1wZW5kaW5nIGlzIGRlbGV0ZWQuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3Jlc291cmNlcy92ZXJzaW9uY2hhbmdlLWFib3J0LmpzOgorICAgICAgICAgIEZpcnN0IHRl
c3QgSSd2ZSBjb252ZXJ0ZWQgdGhhdCBtYWtlcyB0aGUgaW5pdGlhbCBvcGVuIGZhaWwsIGJ1dAor
ICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzIGlzIHVuaG9va2VkIHRvIG5vdCBjYXVzZSB0aGUg
d2hvbGUgdGVzdCB0byBmYWlsLgorCisgICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgorICAgICAg
ICAocG9zdEFib3J0KToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNp
b25jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLXdvcmtlcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL29kZC1zdHJpbmdzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWJhc2ljcy5qczoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2RkLXN0cmluZ3MuanM6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3JlYWRvbmx5LmpzOgorICAgICAgICAgIE1vdmVkIHRo
ZSBjaGVja3MgYXQgdGhlIGJlZ2lubmluZyB0byB0aGUgZW5kIG9mIHRoZSB0ZXN0LCBidXQKKyAg
ICAgICAgICBldmVyeXRoaW5nIHdhcyBwcmVzZXJ2ZWQuCisKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAgICAgIE1vdmVkIGEgY2hlY2sgZnJv
bSByZWFkeVN0YXRlIHRvIGhlcmUgYXMgdGhlIHJlYWR5U3RhdGUgbGF5b3V0IHRlc3QKKyAgICAg
ICAgICBkb2Vzbid0IGhhdmUgYWNjZXNzIHRvIHRoZSBvcGVuIHJlcXVlc3QgYmVmb3JlIGFueSBl
dmVudHMgYXJlIGZpcmVkLgorCiAyMDEyLTExLTE0ICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IHJlbW92ZSBzZXRWZXJzaW9uIGZyb20g
aW50dmVyc2lvbi1sb25nLXF1ZXVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLXJlbW92
ZS12YWx1ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDQyOTVkOWY2OTM4NGE2ZWVhYWY4Y2VjMTE2NjRm
MzA4NjFmNjI3YzAuLjRkM2Q2M2Y0MjI3MDRjZjYwYzczNjkzN2JjMWU2MDU4YzE2OWYyYzkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0
b3JlLXJlbW92ZS12YWx1ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLXJlbW92ZS12YWx1ZXMtZXhwZWN0ZWQudHh0
CkBAIC0xLDEzICsxLDggQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRo
b2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVu
ZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQjogYWRkcywgZ2V0cywgZGVsZXRl
cywgYW5kIHJlLWdldHMgYSByZWNvcmQgaW4gYSB2YXJpZXR5IG9mIGRpZmZlcmVudCBvYmplY3Qg
c3RvcmUgY29uZmlndXJhdGlvbnMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLWlu
ZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYu
bW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwotCi1p
bmRleGVkREIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0CiBkYXRhID0gWwog
ICAgICAgICB7IG5hbWU6ICdpbmxpbmUga2V5OyBrZXkgZ2VuZXJhdG9yJywKICAgICAgICAgICBh
dXRvSW5jcmVtZW50OiB0cnVlLApAQCAtMzUsOCArMzAsMTIgQEAgZGF0YSA9IFsKICAgICAgICAg
fQogICAgIF07CiBpID0gMDsKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQg
YWxsIG9iamVjdCBzdG9yZXMuCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYu
d2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIg
fHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSAib2JqZWN0LXN0b3JlLXJlbW92ZS12YWx1
ZXMuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Bl
bihkYm5hbWUpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHRlc3QubmFtZSwg
eyBrZXlQYXRoOiB0ZXN0LmtleU5hbWUsIGF1dG9JbmNyZW1lbnQ6IHRlc3QuYXV0b0luY3JlbWVu
dCB9KTsKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQodGVzdC5zdG9yZWRPYmplY3QpOwogaWQg
PSBldmVudC50YXJnZXQucmVzdWx0OwpAQCAtNDUsOCArNDQsMTEgQEAgUEFTUyB0ZXN0LnN0b3Jl
ZE9iamVjdC5uYW1lIGlzIGV2ZW50LnRhcmdldC5yZXN1bHQubmFtZQogcmVxdWVzdCA9IG9iamVj
dFN0b3JlLmRlbGV0ZShpZCk7CiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuZ2V0KGlkKTsKIFBBU1Mg
ZXZlbnQudGFyZ2V0LnJlc3VsdCA9PT0gdW5kZWZpbmVkIGlzIHRydWUKLXJlcXVlc3QgPSBkYi5z
ZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitpbmRleGVkREIgPSBz
ZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWRE
QiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gIm9i
amVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSh0ZXN0Lm5hbWUsIHsga2V5UGF0aDogdGVzdC5rZXlOYW1lLCBhdXRvSW5jcmVt
ZW50OiB0ZXN0LmF1dG9JbmNyZW1lbnQgfSk7CiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKHRl
c3Quc3RvcmVkT2JqZWN0KTsKIGlkID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKQEAgLTU1LDggKzU3
LDExIEBAIFBBU1MgdGVzdC5zdG9yZWRPYmplY3QubmFtZSBpcyBldmVudC50YXJnZXQucmVzdWx0
Lm5hbWUKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5kZWxldGUoaWQpOwogcmVxdWVzdCA9IG9iamVj
dFN0b3JlLmdldChpZCk7CiBQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQgPT09IHVuZGVmaW5lZCBp
cyB0cnVlCi1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qg
c3RvcmVzLgoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVk
REIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRl
eGVkREI7CisKK2RibmFtZSA9ICJvYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5odG1sIgoraW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9i
amVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUodGVzdC5uYW1lLCB7IGF1dG9JbmNyZW1l
bnQ6IHRlc3QuYXV0b0luY3JlbWVudCB9KTsKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQodGVz
dC5zdG9yZWRPYmplY3QpOwogaWQgPSBldmVudC50YXJnZXQucmVzdWx0OwpAQCAtNjUsOCArNzAs
MTEgQEAgUEFTUyB0ZXN0LnN0b3JlZE9iamVjdC5uYW1lIGlzIGV2ZW50LnRhcmdldC5yZXN1bHQu
bmFtZQogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmRlbGV0ZShpZCk7CiByZXF1ZXN0ID0gb2JqZWN0
U3RvcmUuZ2V0KGlkKTsKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdCA9PT0gdW5kZWZpbmVkIGlz
IHRydWUKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBz
dG9yZXMuCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWRE
QiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4
ZWREQjsKKworZGJuYW1lID0gIm9iamVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLmh0bWwiCitpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogb2Jq
ZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSh0ZXN0Lm5hbWUsIHsgYXV0b0luY3JlbWVu
dDogdGVzdC5hdXRvSW5jcmVtZW50IH0pOwogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZCh0ZXN0
LnN0b3JlZE9iamVjdCwgdGVzdC5rZXlWYWx1ZSk7CiBpZCA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR5
U3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9yZWFkeVN0YXRlLWV4cGVjdGVkLnR4dAppbmRleCA4ZGZkNTc0MDkwZmUzMTY0MjdhMTgzYzI5
NTMyZGI5NzM1NWJiYmU3Li41ZWZiNzdiNzQwMTNhNTIyNzE5OGY2YTIwZjkyMDMzMTU3MWQxMzgz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR5
U3RhdGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvcmVhZHlTdGF0ZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1F
U1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBi
ZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJ
bmRleGVkREIgcmVhZHlTdGF0ZSBwcm9wZXJ0eSBkdXJpbmcgZGlmZmVyZW50IG9wZXJhdGlvbnMK
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwxNiArNSwxMCBAQCBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtp
dEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNl
bGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLVBBU1MgcmVxdWVzdC5yZWFk
eVN0YXRlIGlzICdwZW5kaW5nJwotb3BlblN1Y2Nlc3MoKToKLVBBU1MgcmVxdWVzdC5yZWFkeVN0
YXRlIGlzICdkb25lJwotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0
VmVyc2lvbignMScpCi1QQVNTIHJlcXVlc3QucmVhZHlTdGF0ZSBpcyAncGVuZGluZycKLXNldHVw
T2JqZWN0U3RvcmUoKToKLVBBU1MgcmVxdWVzdC5yZWFkeVN0YXRlIGlzICdkb25lJwotRGVsZXRl
ZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJyZWFkeVN0YXRlLmh0bWwiCitpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorUEFTUyBv
cGVuUmVxdWVzdC5yZWFkeVN0YXRlIGlzICdkb25lJwogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgnZm9vJyk7CiBrZXkgPSAxMDsKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQo
e30sIGtleSk7CkBAIC0yOCw2ICsyMSw5IEBAIFBBU1MgcmVxdWVzdC5yZWFkeVN0YXRlIGlzICdw
ZW5kaW5nJwogZmluYWxDaGVjaygpOgogUEFTUyByZXF1ZXN0LnJlYWR5U3RhdGUgaXMgJ2RvbmUn
CiBQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQgPT0gbnVsbCBpcyBmYWxzZQorY2hlY2tSZWFkeVN0
YXRlSW5PcGVuKCk6CitQQVNTIGV2ZW50LnRhcmdldCBpcyBvcGVuUmVxdWVzdAorUEFTUyBvcGVu
UmVxdWVzdC5yZWFkeVN0YXRlIGlzICJkb25lIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5qcyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL29iamVjdC1z
dG9yZS1yZW1vdmUtdmFsdWVzLmpzCmluZGV4IDQwZGYzMzliMTJlMWMzNmM1MTNlYzM0ZDg1YmY0
ZDQ1OTU1NTZjNzYuLjc1MjM0MWVlOGYxNGUzZTE4Y2RmYjAwZGExM2FmY2U1NDMxY2I5Y2QgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2Vz
L29iamVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL29iamVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLmpz
CkBAIC0xMSwyMSArMTEsNyBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0
aW9uKCJUZXN0IEluZGV4ZWREQjogYWRkcywgZ2V0cywgZGVsZXRlcywgYW5kIHJlLWdldHMgYSBy
ZWNvcmQgaW4gYSB2YXJpZXR5IG9mIGRpZmZlcmVudCBvYmplY3Qgc3RvcmUgY29uZmlndXJhdGlv
bnMiKTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsK
LQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
b3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2co
ImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgZGF0YSA9IGV2YWxBbmRMb2coImRh
dGEgPSBbXG4iICsKK2RhdGEgPSBldmFsQW5kTG9nKCJkYXRhID0gW1xuIiArCiAiICAgICAgICB7
IG5hbWU6ICdpbmxpbmUga2V5OyBrZXkgZ2VuZXJhdG9yJyxcbiIgKwogIiAgICAgICAgICBhdXRv
SW5jcmVtZW50OiB0cnVlLFxuIiArCiAiICAgICAgICAgIHN0b3JlZE9iamVjdDoge25hbWU6ICdM
aW5jb2xuJ30sXG4iICsKQEAgLTUyLDE3ICszOCwxOSBAQCBmdW5jdGlvbiBvcGVuU3VjY2Vzcygp
CiAiICAgICAgICB9XG4iICsKICIgICAgXTsiKTsKIAotICAgIGkgPSBldmFsQW5kTG9nKCJpID0g
MDsiKTsKLSAgICBzZXRWZXJzaW9uKCk7Ci19CitpID0gZXZhbEFuZExvZygiaSA9IDA7Iik7Cit2
YXIgZGIgPSBudWxsOworZGVidWcoIiIpOworCitydW5BVGVzdCgpOwogCi1mdW5jdGlvbiBzZXRW
ZXJzaW9uKCkKK2Z1bmN0aW9uIHJ1bkFUZXN0KCkKIHsKKyAgICBpZiAoZGIpCisgICAgICAgIGRi
LmNsb3NlKCk7CiAgICAgaWYgKGkgPCBkYXRhLmxlbmd0aCkgewogICAgICAgICB0ZXN0ID0gZGF0
YVtpXTsKLSAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJz
aW9uKCcxJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjcmVhdGVPYmplY3RTdG9y
ZTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cisg
ICAgICAgIGluZGV4ZWREQlRlc3QoY3JlYXRlT2JqZWN0U3RvcmUsIHJ1bkFUZXN0KTsKICAgICB9
IGVsc2UgewogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CkBAIC03MCw5ICs1OCw3IEBA
IGZ1bmN0aW9uIHNldFZlcnNpb24oKQogCiBmdW5jdGlvbiBjcmVhdGVPYmplY3RTdG9yZSgpCiB7
Ci0gICAgdHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgIGRlbGV0ZUFsbE9i
amVjdFN0b3JlcyhkYik7Ci0KKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgaWYg
KHRlc3Qua2V5TmFtZSkgewogICAgICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVj
dFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUodGVzdC5uYW1lLCB7IGtleVBhdGg6IHRlc3Qu
a2V5TmFtZSwgYXV0b0luY3JlbWVudDogdGVzdC5hdXRvSW5jcmVtZW50IH0pOyIpOwogICAgIH0g
ZWxzZSB7CkBAIC0xMTUsNyArMTAxLDQgQEAgZnVuY3Rpb24gZmluYWxDaGVjaygpCiB7CiAgICAg
c2hvdWxkQmVUcnVlKCJldmVudC50YXJnZXQucmVzdWx0ID09PSB1bmRlZmluZWQiKTsKICAgICBp
Kys7Ci0gICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHNldFZlcnNpb247CiB9Ci0KLXRlc3Qo
KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9yZWFkeVN0YXRlLmpzIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvcmVhZHlTdGF0ZS5qcwpp
bmRleCBiNDRlNTVmMWQxYmQxYjlkMmVmYzI3MDgzNzEyYjJjNjg2MjRmMjViLi45MzNmM2I5MjFj
MmM3OGFlNzU3YjYzZDBiYmE3MmU1ZmM2N2ZkMDZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9yZWFkeVN0YXRlLmpzCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL3JlYWR5U3RhdGUu
anMKQEAgLTExLDMzICsxMSwxMiBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2Ny
aXB0aW9uKCJUZXN0IEluZGV4ZWREQiByZWFkeVN0YXRlIHByb3BlcnR5IGR1cmluZyBkaWZmZXJl
bnQgb3BlcmF0aW9ucyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFy
ZURhdGFiYXNlLCBjaGVja1JlYWR5U3RhdGVJbk9wZW4pOworZnVuY3Rpb24gcHJlcGFyZURhdGFi
YXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYu
bG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5v
cGVuKG5hbWUpIik7Ci0gICAgc2hvdWxkQmUoInJlcXVlc3QucmVhZHlTdGF0ZSIsICIncGVuZGlu
ZyciKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3Vj
Y2VzcygpCi17Ci0gICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0gICAgc2hvdWxkQmUoInJl
cXVlc3QucmVhZHlTdGF0ZSIsICInZG9uZSciKTsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0
ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgc2hvdWxkQmUoInJlcXVlc3QucmVhZHlTdGF0
ZSIsICIncGVuZGluZyciKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldHVwT2JqZWN0U3Rv
cmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0K
LWZ1bmN0aW9uIHNldHVwT2JqZWN0U3RvcmUoKQotewotICAgIGRlYnVnKCJzZXR1cE9iamVjdFN0
b3JlKCk6Iik7Ci0gICAgc2hvdWxkQmUoInJlcXVlc3QucmVhZHlTdGF0ZSIsICInZG9uZSciKTsK
LSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICBvcGVuUmVxdWVzdCA9IGV2ZW50LnRhcmdldDsKKyAgICBzaG91bGRCZSgib3Bl
blJlcXVlc3QucmVhZHlTdGF0ZSIsICInZG9uZSciKTsKIAogICAgIG9iamVjdFN0b3JlID0gZXZh
bEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7Iik7CiAg
ICAga2V5ID0gZXZhbEFuZExvZygia2V5ID0gMTA7Iik7CkBAIC02Myw3ICs0MiwxMiBAQCBmdW5j
dGlvbiBmaW5hbENoZWNrKCkKICAgICBkZWJ1ZygiZmluYWxDaGVjaygpOiIpOwogICAgIHNob3Vs
ZEJlKCJyZXF1ZXN0LnJlYWR5U3RhdGUiLCAiJ2RvbmUnIik7CiAgICAgc2hvdWxkQmVGYWxzZSgi
ZXZlbnQudGFyZ2V0LnJlc3VsdCA9PSBudWxsIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7CiB9CiAK
LXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitmdW5jdGlvbiBjaGVja1JlYWR5
U3RhdGVJbk9wZW4oKQoreworICAgIGRlYnVnKCJjaGVja1JlYWR5U3RhdGVJbk9wZW4oKToiKTsK
KyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0IiwgIm9wZW5SZXF1ZXN0Iik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJvcGVuUmVxdWVzdC5yZWFkeVN0YXRlIiwgImRvbmUiKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvcmVzb3VyY2VzL3ZlcnNpb25jaGFuZ2UtYWJvcnQuanMgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy92ZXJzaW9uY2hhbmdlLWFib3J0
LmpzCmluZGV4IGUwMzZhMDVlMjljZTliM2RlNDU5ZTVmM2ZhYjAwNzIwNjFlYzYxZTEuLmQ4MDQz
OTZjYzc1ZjA0MGQwNDNlNzk1ZmU0MjU1NmZlOTdkNmMxNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL3ZlcnNpb25jaGFuZ2UtYWJv
cnQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJj
ZXMvdmVyc2lvbmNoYW5nZS1hYm9ydC5qcwpAQCAtOSwzMCArOSwxNCBAQCBpZiAodGhpcy5pbXBv
cnRTY3JpcHRzKSB7CiAgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vcmVzb3VyY2VzL3NoYXJlZC5q
cycpOwogfQogCi1kZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBhYm9ydGluZyBzZXRWZXJz
aW9uIik7CitkZXNjcmlwdGlvbigiV2hlbiBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gaXMg
YWJvcnRlZCwgdGhlIHZlcnNpb24gYW5kIG5ld2x5IGNyZWF0ZWQgb2JqZWN0IHN0b3JlcyBzaG91
bGQgYmUgcmVzZXQiKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVE
YXRhYmFzZSk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRv
clByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGIg
PSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICBpbml0aWFsVmVy
c2lvbiA9IGV2YWxBbmRMb2coImluaXRpYWxWZXJzaW9uID0gZGIudmVyc2lvbjsiKTsKLSAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzInKSIpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gY2xlYW5EYXRhYmFzZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgp
Ci17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7CisgICAgcmVxdWVzdCA9IGV2ZW50LnRhcmdldDsKKyAgICByZXF1ZXN0Lm9uZXJy
b3IgPSBudWxsOwogCiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nKTsiKTsKICAgICBzaG91bGRCZSgiZGIub2JqZWN0
U3RvcmVOYW1lcy5sZW5ndGgiLCAiMSIpOwpAQCAtNDAsMTcgKzI0LDE3IEBAIGZ1bmN0aW9uIGNs
ZWFuRGF0YWJhc2UoKQogICAgIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXggPSBvYmplY3RTdG9y
ZS5jcmVhdGVJbmRleCgnYmFyJywgJ2JheicpOyIpOwogICAgIHNob3VsZEJlKCJvYmplY3RTdG9y
ZS5pbmRleE5hbWVzLmxlbmd0aCIsICIxIik7CiAKLSAgICBldmVudC50YXJnZXQudHJhbnNhY3Rp
b24ub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7Ci0gICAgZXZlbnQudGFy
Z2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSBwb3N0QWJvcnQ7CisgICAgdHJhbnMgPSByZXF1ZXN0
LnRyYW5zYWN0aW9uOworICAgIHRyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkU3VjY2Vzc0Nh
bGxiYWNrOworICAgIHRyYW5zLm9uYWJvcnQgPSBwb3N0QWJvcnQ7CiAgICAgZXZhbEFuZExvZygi
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7Iik7CiB9CiAKIGZ1bmN0aW9uIHBvc3RB
Ym9ydCgpCiB7Ci0gICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiaW5pdGlhbFZlcnNpb24iKTsK
KyAgICBkZWJ1ZygiRklYTUU6IEZhaWxzIGJlY2F1c2Ugb2YgaHR0cDovL3drYi51Zy8xMDI0MTIi
KTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIwIik7CiAgICAgc2hvdWxkQmUoImRiLm9i
amVjdFN0b3JlTmFtZXMubGVuZ3RoIiwgIjAiKTsKIAogICAgIGZpbmlzaEpTVGVzdCgpOwogfQot
Ci10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS92ZXJzaW9uY2hhbmdlLWFib3J0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvdmVyc2lvbmNo
YW5nZS1hYm9ydC1leHBlY3RlZC50eHQKaW5kZXggYWIzZmE3ZTdkYzZiYjViYTIzMTA3ODA4NjM2
ZThmZWU2OTc3NjA5Zi4uN2Y2MGUwYWNjMDU5YjI1YzA4M2RmODIyZGNlMzA0ZjllMGFlN2Q1NCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS92ZXJzaW9u
Y2hhbmdlLWFib3J0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDIyICsx
LDIwIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1z
dGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVu
dCBpbnN0ZWFkLgotVGVzdCBJbmRleGVkREIncyBhYm9ydGluZyBzZXRWZXJzaW9uCitXaGVuIGEg
dmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBpcyBhYm9ydGVkLCB0aGUgdmVyc2lvbiBhbmQgbmV3
bHkgY3JlYXRlZCBvYmplY3Qgc3RvcmVzIHNob3VsZCBiZSByZXNldAogCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCiAKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJr
aXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBz
ZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKLWluaXRpYWxWZXJzaW9uID0gZGIudmVyc2lvbjsKLXJlcXVlc3QgPSBkYi5zZXRW
ZXJzaW9uKCcyJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAidmVyc2lv
bmNoYW5nZS1hYm9ydC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2lu
ZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J2ZvbycpOwogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAxCiBpbmRleCA9IG9i
amVjdFN0b3JlLmNyZWF0ZUluZGV4KCdiYXInLCAnYmF6Jyk7CiBQQVNTIG9iamVjdFN0b3JlLmlu
ZGV4TmFtZXMubGVuZ3RoIGlzIDEKIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5hYm9ydCgpOwot
UEFTUyBkYi52ZXJzaW9uIGlzIGluaXRpYWxWZXJzaW9uCitGSVhNRTogRmFpbHMgYmVjYXVzZSBv
ZiBodHRwOi8vd2tiLnVnLzEwMjQxMgorRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSAwIChvZiB0
eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KIFBBU1MgZGIub2JqZWN0U3RvcmVO
YW1lcy5sZW5ndGggaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUt
YmFzaWNzLWV4cGVjdGVkLnR4dAppbmRleCA3MTg2NzZhZGE4YjIwOWE4NWZlZTJjNjFlMTUwNGZh
ZjQ2M2NkNjM0Li5mZGEyMzg3NmI3YTM3MTIwZDRhMzA5OGQzMDdhOTFhYzExNTEyOTVkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3Mt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6
IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1v
dmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCB0aGUgYmFz
aWNzIG9mIEluZGV4ZWREQidzIElEQk9iamVjdFN0b3JlLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCkBAIC02LDE1ICs1LDExIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4
ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96
SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRl
eGVkREIub3Blbignb2JqZWN0c3RvcmUtYmFzaWNzJykKLW9wZW5TdWNjZXNzKCk6Ci1kYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKLXNldFZlcnNp
b25TdWNjZXNzKCk6Ci10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLVBBU1MgdHJhbnMgaXMg
bm9uLW51bGwuCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgotY3JlYXRlT2JqZWN0U3RvcmUo
KToKK2RibmFtZSA9ICJvYmplY3RzdG9yZS1iYXNpY3MuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCisKK3ByZXBhcmVEYXRhYmFz
ZSgpOgogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkKIHN0
b3JlTmFtZXMgPSBkYi5vYmplY3RTdG9yZU5hbWVzCiBQQVNTICduYW1lJyBpbiBzdG9yZSBpcyB0
cnVlCkBAIC02NSwxMyArNjAsMTQgQEAgRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLmlu
ZGV4KCdhc2RmJykKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCiBQQVNTIGNvZGUgaXMgRE9N
RXhjZXB0aW9uLk5PVF9GT1VORF9FUlIKIFBBU1MgZW5hbWUgaXMgJ05vdEZvdW5kRXJyb3InCi1k
Yi5zZXRWZXJzaW9uKCJ2ZXJzaW9uIGZhaWwiKQotUEFTUyBkYi52ZXJzaW9uIGlzICJ2ZXJzaW9u
IGZhaWwiCi1zZXRWZXJzaW9uVHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0CitpbmRleGVkREIu
b3BlbihkYm5hbWUsIDIpCitkYi5jbG9zZSgpCitQQVNTIGRiLnZlcnNpb24gaXMgMgorc2V0VmVy
c2lvblRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCiBQQVNTIHNldFZlcnNpb25UcmFu
cyBpcyBub24tbnVsbC4KIHN0b3JlID0gc2V0VmVyc2lvblRyYW5zLm9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKQogaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhGYWlsJywgJ3gnKQotUEFT
UyBkYi52ZXJzaW9uIGlzICJuZXcgdmVyc2lvbiIKK1BBU1MgZGIudmVyc2lvbiBpcyAxCiBQQVNT
IHN0b3JlLnRyYW5zYWN0aW9uIGlzIHNldFZlcnNpb25UcmFucwogUEFTUyBzdG9yZS5pbmRleE5h
bWVzIGlzIFsnaW5kZXhOYW1lJ10KIFBBU1Mgc3RvcmUuaW5kZXhOYW1lcy5sZW5ndGggaXMgMQpA
QCAtMTQ5LDcgKzE0NSw5IEBAIFBBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRB
X0VSUgogUEFTUyBlbmFtZSBpcyAnRGF0YUVycm9yJwogCiB0ZXN0UHJlQ29uZGl0aW9ucygpOgot
ZGIuc2V0VmVyc2lvbigncHJlY29uZGl0aW9uIHZlcnNpb24nKQoraW5kZXhlZERCLm9wZW4oZGJu
YW1lLCAzKQorCit1cGdyYWRlTmVlZGVkKCk6CiBzdG9yZVdpdGhJbkxpbmVLZXlzID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlV2l0aEluTGluZUtleXMnLCB7a2V5UGF0aDogJ2tleSd9KQog
c3RvcmVXaXRoT3V0T2ZMaW5lS2V5cyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZVdpdGhP
dXRJT2ZMaW5lS2V5cycpCiBzdG9yZVdpdGhJbmRleCA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdz
dG9yZVdpdGhJbmRleCcpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZS1iYXNpY3Mtd29ya2Vycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3Mtd29ya2Vycy1leHBlY3RlZC50eHQK
aW5kZXggZDFlZGE5ZDJhNjlkZDgxYjM2OTRkYjM3YmNkNzM4ODAzMGRmNzg1Yi4uMTljNDcyNTRi
ZTg0ZmNmMGY0NjQ2YWMxZTI5YTU1ZThiYzJiYmI2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLXdvcmtlcnMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy13
b3JrZXJzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhl
IHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQu
IFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBbV29ya2VyXSBUZXN0IHRo
ZSBiYXNpY3Mgb2YgSW5kZXhlZERCJ3MgSURCT2JqZWN0U3RvcmUuCiAKIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KQEAgLTcsMTUgKzYsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFN0
YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2VzL29iamVjdHN0b3JlLWJhc2ljcy5qcwogW1dvcmtlcl0g
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiBb
V29ya2VyXSAKLVtXb3JrZXJdIGluZGV4ZWREQi5vcGVuKCdvYmplY3RzdG9yZS1iYXNpY3MnKQot
W1dvcmtlcl0gb3BlblN1Y2Nlc3MoKToKLVtXb3JrZXJdIGRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAotW1dvcmtlcl0gZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotW1dvcmtlcl0gc2V0VmVy
c2lvblN1Y2Nlc3MoKToKLVtXb3JrZXJdIHRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFT
UyBbV29ya2VyXSB0cmFucyBpcyBub24tbnVsbC4KLVtXb3JrZXJdIERlbGV0ZWQgYWxsIG9iamVj
dCBzdG9yZXMuCi1bV29ya2VyXSBjcmVhdGVPYmplY3RTdG9yZSgpOgorW1dvcmtlcl0gZGJuYW1l
ID0gIm9iamVjdHN0b3JlLWJhc2ljcy5qcyIKK1tXb3JrZXJdIGluZGV4ZWREQi5kZWxldGVEYXRh
YmFzZShkYm5hbWUpCitbV29ya2VyXSBpbmRleGVkREIub3BlbihkYm5hbWUpCitbV29ya2VyXSAK
K1tXb3JrZXJdIHByZXBhcmVEYXRhYmFzZSgpOgogW1dvcmtlcl0gc3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkKIFtXb3JrZXJdIHN0b3JlTmFtZXMgPSBkYi5v
YmplY3RTdG9yZU5hbWVzCiBQQVNTIFtXb3JrZXJdICduYW1lJyBpbiBzdG9yZSBpcyB0cnVlCkBA
IC02NiwxMyArNjEsMTQgQEAgUEFTUyBbV29ya2VyXSBpbmRleCBpcyBub24tbnVsbC4KIFBBU1Mg
W1dvcmtlcl0gRXhjZXB0aW9uIHdhcyB0aHJvd24uCiBQQVNTIFtXb3JrZXJdIGNvZGUgaXMgRE9N
RXhjZXB0aW9uLk5PVF9GT1VORF9FUlIKIFBBU1MgW1dvcmtlcl0gZW5hbWUgaXMgJ05vdEZvdW5k
RXJyb3InCi1bV29ya2VyXSBkYi5zZXRWZXJzaW9uKCJ2ZXJzaW9uIGZhaWwiKQotUEFTUyBbV29y
a2VyXSBkYi52ZXJzaW9uIGlzICJ2ZXJzaW9uIGZhaWwiCi1bV29ya2VyXSBzZXRWZXJzaW9uVHJh
bnMgPSBldmVudC50YXJnZXQucmVzdWx0CitbV29ya2VyXSBpbmRleGVkREIub3BlbihkYm5hbWUs
IDIpCitbV29ya2VyXSBkYi5jbG9zZSgpCitQQVNTIFtXb3JrZXJdIGRiLnZlcnNpb24gaXMgMgor
W1dvcmtlcl0gc2V0VmVyc2lvblRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCiBQQVNT
IFtXb3JrZXJdIHNldFZlcnNpb25UcmFucyBpcyBub24tbnVsbC4KIFtXb3JrZXJdIHN0b3JlID0g
c2V0VmVyc2lvblRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQogW1dvcmtlcl0gaW5kZXgg
PSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhGYWlsJywgJ3gnKQotUEFTUyBbV29ya2VyXSBkYi52
ZXJzaW9uIGlzICJuZXcgdmVyc2lvbiIKK1BBU1MgW1dvcmtlcl0gZGIudmVyc2lvbiBpcyAxCiBQ
QVNTIFtXb3JrZXJdIHN0b3JlLnRyYW5zYWN0aW9uIGlzIHNldFZlcnNpb25UcmFucwogUEFTUyBb
V29ya2VyXSBzdG9yZS5pbmRleE5hbWVzIGlzIFsnaW5kZXhOYW1lJ10KIFBBU1MgW1dvcmtlcl0g
c3RvcmUuaW5kZXhOYW1lcy5sZW5ndGggaXMgMQpAQCAtMTUwLDcgKzE0Niw5IEBAIFBBU1MgW1dv
cmtlcl0gY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUgogUEFTUyBbV29ya2Vy
XSBlbmFtZSBpcyAnRGF0YUVycm9yJwogW1dvcmtlcl0gCiBbV29ya2VyXSB0ZXN0UHJlQ29uZGl0
aW9ucygpOgotW1dvcmtlcl0gZGIuc2V0VmVyc2lvbigncHJlY29uZGl0aW9uIHZlcnNpb24nKQor
W1dvcmtlcl0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKQorW1dvcmtlcl0gCitbV29ya2VyXSB1
cGdyYWRlTmVlZGVkKCk6CiBbV29ya2VyXSBzdG9yZVdpdGhJbkxpbmVLZXlzID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3N0b3JlV2l0aEluTGluZUtleXMnLCB7a2V5UGF0aDogJ2tleSd9KQogW1dv
cmtlcl0gc3RvcmVXaXRoT3V0T2ZMaW5lS2V5cyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9y
ZVdpdGhPdXRJT2ZMaW5lS2V5cycpCiBbV29ya2VyXSBzdG9yZVdpdGhJbmRleCA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdzdG9yZVdpdGhJbmRleCcpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9vZGQtc3RyaW5ncy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9vZGQtc3RyaW5ncy1leHBlY3RlZC50eHQKaW5kZXggOGMwMTM1MGVm
ZjhhODg0ZTA0NDVhZjg2ZjI3ODk0MWJhMTUyZTNjZC4uZjM0YTJkOTA0YjMzODI0MjQzZWM3ZmY0
OTY1NDIyMzdjMjA0YjFmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvb2RkLXN0cmluZ3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL29kZC1zdHJpbmdzLWV4cGVjdGVkLnR4dApAQCAtMSwxNSArMSwzIEBACi1DT05TT0xF
IE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2ls
bCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgotQ09O
U09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5k
IHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4K
LUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJk
IGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3Rl
YWQuCi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFu
ZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBp
bnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24t
c3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZl
bnQgaW5zdGVhZC4KLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMg
bm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQi
IGV2ZW50IGluc3RlYWQuCi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9k
IGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVl
ZGVkIiBldmVudCBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1l
dGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFk
ZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24o
KSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVw
Z3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJz
aW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhl
ICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0
VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNl
IHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KLUNPTlNPTEUgTUVTU0FHRTogVGhl
IHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQu
IFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBv
ZGQgdmFsdWUgZGF0YXR5cGVzCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTE3LDcx
ICs1LDUyIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCitEZWxldGluZyBhbGwgdGhlIGRh
dGFiYXNlcy4uLgogb3BlbmluZyBhIGRhdGFiYXNlIG5hbWVkIG51bGwKLWluZGV4ZWREQi5vcGVu
KHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJl
cXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitp
bmRleGVkREIub3Blbih0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lLCAxKQogb2JqZWN0U3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSh0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lKTsKIGtleSA9
IHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoa2V5
LCBrZXkpOwogZGIuY2xvc2UoKQogCiBvcGVuaW5nIGEgZGF0YWJhc2UgbmFtZWQgZmFpaHUKLWlu
ZGV4ZWREQi5vcGVuKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUpCi1kYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVj
dCBzdG9yZXMuCitpbmRleGVkREIub3Blbih0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lLCAxKQog
b2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSh0ZXN0RGF0YVtuZXh0VG9PcGVuXS5u
YW1lKTsKIGtleSA9IHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUKIHJlcXVlc3QgPSBvYmplY3RT
dG9yZS5hZGQoa2V5LCBrZXkpOwogZGIuY2xvc2UoKQogCiBvcGVuaW5nIGEgZGF0YWJhc2UgbmFt
ZWQgdW5wYWlyZWQgc3Vycm9nYXRlCi1pbmRleGVkREIub3Blbih0ZXN0RGF0YVtuZXh0VG9PcGVu
XS5uYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lv
bignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgoraW5kZXhlZERCLm9wZW4odGVzdERh
dGFbbmV4dFRvT3Blbl0ubmFtZSwgMSkKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUodGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSk7CiBrZXkgPSB0ZXN0RGF0YVtuZXh0VG9PcGVu
XS5uYW1lCiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKGtleSwga2V5KTsKIGRiLmNsb3NlKCkK
IAogb3BlbmluZyBhIGRhdGFiYXNlIG5hbWVkIGZmZmUKLWluZGV4ZWREQi5vcGVuKHRlc3REYXRh
W25leHRUb09wZW5dLm5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBk
Yi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitpbmRleGVkREIu
b3Blbih0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lLCAxKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSh0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lKTsKIGtleSA9IHRlc3REYXRh
W25leHRUb09wZW5dLm5hbWUKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoa2V5LCBrZXkpOwog
ZGIuY2xvc2UoKQogCiBvcGVuaW5nIGEgZGF0YWJhc2UgbmFtZWQgZmZmZgotaW5kZXhlZERCLm9w
ZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAot
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4K
K2luZGV4ZWREQi5vcGVuKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUsIDEpCiBvYmplY3RTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUpOwoga2V5
ID0gdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZQogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZChr
ZXksIGtleSk7CiBkYi5jbG9zZSgpCiAKIG9wZW5pbmcgYSBkYXRhYmFzZSBuYW1lZCBsaW5lIHNl
cGFyYXRvcgotaW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSkKLWRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRl
ZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2luZGV4ZWREQi5vcGVuKHRlc3REYXRhW25leHRUb09wZW5d
Lm5hbWUsIDEpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHRlc3REYXRhW25l
eHRUb09wZW5dLm5hbWUpOwoga2V5ID0gdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZQogcmVxdWVz
dCA9IG9iamVjdFN0b3JlLmFkZChrZXksIGtleSk7CiBkYi5jbG9zZSgpCiAKIHJlb3BlbmluZyBh
IGRhdGFiYXNlIG5hbWVkIG51bGwKLWluZGV4ZWREQi5vcGVuKHRlc3REYXRhW25leHRUb09wZW5d
Lm5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCcxJykKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAoraW5kZXhlZERCLm9wZW4odGVzdERh
dGFbbmV4dFRvT3Blbl0ubmFtZSwgMikKK3RyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
CiBvYmplY3RTdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKHRlc3REYXRhW25leHRUb09wZW5dLm5h
bWUpOwoga2V5ID0gdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZQogcmVxdWVzdCA9IG9iamVjdFN0
b3JlLm9wZW5DdXJzb3IoKTsKQEAgLTkwLDEwICs1OSw4IEBAIFBBU1MgY3Vyc29yLmtleSBpcyB0
ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lCiBQQVNTIGN1cnNvci52YWx1ZSBpcyB0ZXN0RGF0YVtu
ZXh0VG9PcGVuXS5uYW1lCiAKIHJlb3BlbmluZyBhIGRhdGFiYXNlIG5hbWVkIGZhaWh1Ci1pbmRl
eGVkREIub3Blbih0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lKQotZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi10cmFucyA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKK2luZGV4ZWREQi5vcGVuKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUsIDIpCit0
cmFucyA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgogb2JqZWN0U3RvcmUgPSB0cmFucy5vYmpl
Y3RTdG9yZSh0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lKTsKIGtleSA9IHRlc3REYXRhW25leHRU
b09wZW5dLm5hbWUKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7CkBAIC0xMDIs
MTAgKzY5LDggQEAgUEFTUyBjdXJzb3Iua2V5IGlzIHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUK
IFBBU1MgY3Vyc29yLnZhbHVlIGlzIHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUKIAogcmVvcGVu
aW5nIGEgZGF0YWJhc2UgbmFtZWQgdW5wYWlyZWQgc3Vycm9nYXRlCi1pbmRleGVkREIub3Blbih0
ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1
ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2lu
ZGV4ZWREQi5vcGVuKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUsIDIpCit0cmFucyA9IGV2ZW50
LnRhcmdldC50cmFuc2FjdGlvbgogb2JqZWN0U3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSh0ZXN0
RGF0YVtuZXh0VG9PcGVuXS5uYW1lKTsKIGtleSA9IHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUK
IHJlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7CkBAIC0xMTQsMTAgKzc5LDggQEAg
UEFTUyBjdXJzb3Iua2V5IGlzIHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUKIFBBU1MgY3Vyc29y
LnZhbHVlIGlzIHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUKIAogcmVvcGVuaW5nIGEgZGF0YWJh
c2UgbmFtZWQgZmZmZQotaW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSkK
LWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQot
dHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0CitpbmRleGVkREIub3Blbih0ZXN0RGF0YVtuZXh0
VG9PcGVuXS5uYW1lLCAyKQordHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KIG9iamVj
dFN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUodGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSk7CiBr
ZXkgPSB0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lCiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUub3Bl
bkN1cnNvcigpOwpAQCAtMTI2LDEwICs4OSw4IEBAIFBBU1MgY3Vyc29yLmtleSBpcyB0ZXN0RGF0
YVtuZXh0VG9PcGVuXS5uYW1lCiBQQVNTIGN1cnNvci52YWx1ZSBpcyB0ZXN0RGF0YVtuZXh0VG9P
cGVuXS5uYW1lCiAKIHJlb3BlbmluZyBhIGRhdGFiYXNlIG5hbWVkIGZmZmYKLWluZGV4ZWREQi5v
cGVuKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
LXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAoraW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSwgMikKK3RyYW5zID0g
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCiBvYmplY3RTdG9yZSA9IHRyYW5zLm9iamVjdFN0b3Jl
KHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUpOwoga2V5ID0gdGVzdERhdGFbbmV4dFRvT3Blbl0u
bmFtZQogcmVxdWVzdCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKTsKQEAgLTEzOCwxMCArOTks
OCBAQCBQQVNTIGN1cnNvci5rZXkgaXMgdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZQogUEFTUyBj
dXJzb3IudmFsdWUgaXMgdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZQogCiByZW9wZW5pbmcgYSBk
YXRhYmFzZSBuYW1lZCBsaW5lIHNlcGFyYXRvcgotaW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4
dFRvT3Blbl0ubmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNl
dFZlcnNpb24oJzEnKQotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0CitpbmRleGVkREIub3Bl
bih0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lLCAyKQordHJhbnMgPSBldmVudC50YXJnZXQudHJh
bnNhY3Rpb24KIG9iamVjdFN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUodGVzdERhdGFbbmV4dFRv
T3Blbl0ubmFtZSk7CiBrZXkgPSB0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lCiByZXF1ZXN0ID0g
b2JqZWN0U3RvcmUub3BlbkN1cnNvcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVhZG9ubHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVhZG9ubHktZXhwZWN0ZWQudHh0CmluZGV4IDNkYzg5YjY2N2E0NTY0MDYyYjky
MjE5NzMwOTE2ODY3NDc4MzUwZjYuLjFmZGIzNjcwNzUwOWVlZDhiMzI2ZDc5NjRkNDNhODZmN2Nj
OTQwYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25s
eS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRW
ZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2Ug
dGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIgcmVhZG9u
bHkgcHJvcGVydGllcwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDMxICs1LDEw
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERC
IHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJ
bmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotdHJ5
aW5nIHRvIHNldCByZWFkb25seSBwcm9wZXJ0eSByZXF1ZXN0LnJlc3VsdAotcmVxdWVzdC5yZXN1
bHQgPSBJbmZpbml0eQotUEFTUyByZXF1ZXN0LnJlc3VsdCBpcyBzdGlsbCBbb2JqZWN0IElEQkRh
dGFiYXNlXQotdHJ5aW5nIHRvIHNldCByZWFkb25seSBwcm9wZXJ0eSByZXF1ZXN0LmVycm9yQ29k
ZQotcmVxdWVzdC5lcnJvckNvZGUgPSA2NjYKLVBBU1MgcmVxdWVzdC5lcnJvckNvZGUgaXMgc3Rp
bGwgMAotdHJ5aW5nIHRvIHNldCByZWFkb25seSBwcm9wZXJ0eSByZXF1ZXN0LmVycm9yCi1yZXF1
ZXN0LmVycm9yID0ge30KLVBBU1MgcmVxdWVzdC5lcnJvciBpcyBzdGlsbCBudWxsCi10cnlpbmcg
dG8gc2V0IHJlYWRvbmx5IHByb3BlcnR5IHJlcXVlc3Quc291cmNlCi1yZXF1ZXN0LnNvdXJjZSA9
IHRoaXMKLVBBU1MgcmVxdWVzdC5zb3VyY2UgaXMgc3RpbGwgbnVsbAotdHJ5aW5nIHRvIHNldCBy
ZWFkb25seSBwcm9wZXJ0eSByZXF1ZXN0LnRyYW5zYWN0aW9uCi1yZXF1ZXN0LnRyYW5zYWN0aW9u
ID0gdGhpcwotUEFTUyByZXF1ZXN0LnRyYW5zYWN0aW9uIGlzIHN0aWxsIG51bGwKLXRyeWluZyB0
byBzZXQgcmVhZG9ubHkgcHJvcGVydHkgcmVxdWVzdC5yZWFkeVN0YXRlCi1yZXF1ZXN0LnJlYWR5
U3RhdGUgPSA2NjYKLVBBU1MgcmVxdWVzdC5yZWFkeVN0YXRlIGlzIHN0aWxsIGRvbmUKLWRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAotdHJ5aW5nIHRvIHNldCByZWFkb25seSBwcm9wZXJ0eSBkYi5u
YW1lCi1kYi5uYW1lID0gJ2JhcicKLVBBU1MgZGIubmFtZSBpcyBzdGlsbCBmb28KLXJlcXVlc3Qg
PSBkYi5zZXRWZXJzaW9uKCcxJykKLXRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsK
K2RibmFtZSA9ICJyZWFkb25seS5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK3RyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uOwogdHJ5aW5nIHRvIHNldCByZWFkb25seSBwcm9wZXJ0eSB0cmFuc2FjdGlvbi5t
b2RlCiB0cmFuc2FjdGlvbi5tb2RlID0gNjY2CiBQQVNTIHRyYW5zYWN0aW9uLm1vZGUgaXMgc3Rp
bGwgdmVyc2lvbmNoYW5nZQpAQCAtODUsNiArNjMsMjggQEAgUEFTUyBrZXlSYW5nZS5sb3dlck9w
ZW4gaXMgc3RpbGwgZmFsc2UKIHRyeWluZyB0byBzZXQgcmVhZG9ubHkgcHJvcGVydHkga2V5UmFu
Z2UudXBwZXJPcGVuCiBrZXlSYW5nZS51cHBlck9wZW4gPSB0cnVlCiBQQVNTIGtleVJhbmdlLnVw
cGVyT3BlbiBpcyBzdGlsbCBmYWxzZQordHJ5aW5nIHRvIHNldCByZWFkb25seSBwcm9wZXJ0eSBy
ZXF1ZXN0LnJlc3VsdAorcmVxdWVzdC5yZXN1bHQgPSBJbmZpbml0eQorUEFTUyByZXF1ZXN0LnJl
c3VsdCBpcyBzdGlsbCBbb2JqZWN0IElEQkRhdGFiYXNlXQordHJ5aW5nIHRvIHNldCByZWFkb25s
eSBwcm9wZXJ0eSByZXF1ZXN0LmVycm9yQ29kZQorcmVxdWVzdC5lcnJvckNvZGUgPSA2NjYKK1BB
U1MgcmVxdWVzdC5lcnJvckNvZGUgaXMgc3RpbGwgMAordHJ5aW5nIHRvIHNldCByZWFkb25seSBw
cm9wZXJ0eSByZXF1ZXN0LmVycm9yCityZXF1ZXN0LmVycm9yID0ge30KK1BBU1MgcmVxdWVzdC5l
cnJvciBpcyBzdGlsbCBudWxsCit0cnlpbmcgdG8gc2V0IHJlYWRvbmx5IHByb3BlcnR5IHJlcXVl
c3Quc291cmNlCityZXF1ZXN0LnNvdXJjZSA9IHRoaXMKK1BBU1MgcmVxdWVzdC5zb3VyY2UgaXMg
c3RpbGwgbnVsbAordHJ5aW5nIHRvIHNldCByZWFkb25seSBwcm9wZXJ0eSByZXF1ZXN0LnRyYW5z
YWN0aW9uCityZXF1ZXN0LnRyYW5zYWN0aW9uID0gdGhpcworUEFTUyByZXF1ZXN0LnRyYW5zYWN0
aW9uIGlzIHN0aWxsIG51bGwKK3RyeWluZyB0byBzZXQgcmVhZG9ubHkgcHJvcGVydHkgcmVxdWVz
dC5yZWFkeVN0YXRlCityZXF1ZXN0LnJlYWR5U3RhdGUgPSA2NjYKK1BBU1MgcmVxdWVzdC5yZWFk
eVN0YXRlIGlzIHN0aWxsIGRvbmUKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAordHJ5aW5nIHRv
IHNldCByZWFkb25seSBwcm9wZXJ0eSBkYi5uYW1lCitkYi5uYW1lID0gJ2JhcicKK1BBU1MgZGIu
bmFtZSBpcyBzdGlsbCByZWFkb25seS5odG1sCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1iYXNpY3MuanMgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUtYmFzaWNzLmpzCmluZGV4IGI3MTEy
Y2E3MjE0YmVlZmRmZDg5NWE5YjZkOTdiODYwMTY1Njg4MzEuLmRlYjI2Y2VhMTFlMGRkMmJkNTdj
NWZkYTUyMTIyODYyYjdlNmFiNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1iYXNpY3MuanMKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWJhc2ljcy5qcwpAQCAtNSwz
NiArNSwxMiBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0
IHRoZSBiYXNpY3Mgb2YgSW5kZXhlZERCJ3MgSURCT2JqZWN0U3RvcmUuIik7CiAKLWZ1bmN0aW9u
IHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHRlc3RTZXRWZXJzaW9uQWJv
cnQpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2dCkKIHsKLSAgICByZW1vdmVWZW5kb3JQ
cmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbignb2Jq
ZWN0c3RvcmUtYmFzaWNzJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNz
OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1m
dW5jdGlvbiBvcGVuU3VjY2VzcyhldnQpCi17Ci0gICAgZXZlbnQgPSBldnQ7Ci0gICAgZGVidWco
Im9wZW5TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi5kYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0OwogCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25l
dyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNz
OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1m
dW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcyhldnQpCi17Ci0gICAgZXZlbnQgPSBldnQ7Ci0gICAg
ZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi50cmFucyA9IGV2YWxBbmRM
b2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHNob3VsZEJlTm9uTnVsbCgi
dHJhbnMiKTsKLSAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0K
LSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCi0gICAgZGVidWcoImNyZWF0ZU9iamVj
dFN0b3JlKCk6Iik7CiAgICAgc2VsZi5zdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpIik7CiAgICAgdmFyIHN0b3JlTmFtZXMg
PSBldmFsQW5kTG9nKCJzdG9yZU5hbWVzID0gZGIub2JqZWN0U3RvcmVOYW1lcyIpOwogCkBAIC05
MSwyMiArNjcsMjkgQEAgZnVuY3Rpb24gY3JlYXRlSW5kZXgoKQogCiAgICAgZGVidWcoIkFzayBm
b3IgYW4gaW5kZXggdGhhdCBkb2Vzbid0IGV4aXN0OiIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oInN0b3JlLmluZGV4KCdhc2RmJykiLCAiRE9NRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIi
LCAiJ05vdEZvdW5kRXJyb3InIik7Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IHRlc3RTZXRWZXJz
aW9uQWJvcnQ7CiB9CiAKIGZ1bmN0aW9uIHRlc3RTZXRWZXJzaW9uQWJvcnQoKQogewotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCdkYi5zZXRWZXJzaW9uKCJ2ZXJzaW9uIGZhaWwiKScpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlQW5vdGhlckluZGV4OwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCdpbmRleGVkREIub3BlbihkYm5hbWUsIDIpJyk7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSBj
b25uZWN0aW9uMkJsb2NrZWQ7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3Vj
Y2Vzc0NhbGxiYWNrOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gY3JlYXRlQW5vdGhl
ckluZGV4OworICAgIHJlcXVlc3Qub25lcnJvciA9IGFkZERhdGE7Cit9CisKK2Z1bmN0aW9uIGNv
bm5lY3Rpb24yQmxvY2tlZCgpCit7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOwogfQog
CiBmdW5jdGlvbiBjcmVhdGVBbm90aGVySW5kZXgoZXZ0KQogewogICAgIGV2ZW50ID0gZXZ0Owot
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICJ2ZXJzaW9uIGZhaWwiKTsK
KyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24i
LCAiMiIpOwogCi0gICAgdmFyIHNldFZlcnNpb25UcmFucyA9IGV2YWxBbmRMb2coInNldFZlcnNp
b25UcmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICB2YXIgc2V0VmVyc2lvblRyYW5z
ID0gZXZhbEFuZExvZygic2V0VmVyc2lvblRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9u
Iik7CiAgICAgc2hvdWxkQmVOb25OdWxsKCJzZXRWZXJzaW9uVHJhbnMiKTsKICAgICBzZXRWZXJz
aW9uVHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrOwogICAgIHNl
dFZlcnNpb25UcmFucy5vbmFib3J0ID0gY2hlY2tNZXRhZGF0YTsKQEAgLTExOCw3ICsxMDEsNyBA
QCBmdW5jdGlvbiBjcmVhdGVBbm90aGVySW5kZXgoZXZ0KQogCiBmdW5jdGlvbiBjaGVja01ldGFk
YXRhKCkKIHsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAibmV3IHZl
cnNpb24iKTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIxIik7CiAgICAgc2hvdWxkQmUo
InN0b3JlLnRyYW5zYWN0aW9uIiwgInNldFZlcnNpb25UcmFucyIpOwogICAgIHNob3VsZEJlKCJz
dG9yZS5pbmRleE5hbWVzIiwgIlsnaW5kZXhOYW1lJ10iKTsKICAgICBzaG91bGRCZSgic3RvcmUu
aW5kZXhOYW1lcy5sZW5ndGgiLCAiMSIpOwpAQCAtMTMwLDcgKzExMyw2IEBAIGZ1bmN0aW9uIGNo
ZWNrTWV0YWRhdGEoKQogICAgIHNob3VsZEJlVW5kZWZpbmVkKCJzdG9yZS5pbmRleE5hbWVzWzEw
MF0iKTsKICAgICBzaG91bGRCZU51bGwoInN0b3JlLmluZGV4TmFtZXMuaXRlbSgxKSIpOwogICAg
IHNob3VsZEJlTnVsbCgic3RvcmUuaW5kZXhOYW1lcy5pdGVtKDEwMCkiKTsKLSAgICBhZGREYXRh
KCk7CiB9CiAKIHZhciB0ZXN0RGF0ZSA9IG5ldyBEYXRlKCJBdWd1c3QgMjUsIDE5OTEgMjA6NTc6
MDgiKTsKQEAgLTI2Myw5ICsyNDUsMTIgQEAgZnVuY3Rpb24gdGVzdFByZUNvbmRpdGlvbnMoKQog
ewogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygidGVzdFByZUNvbmRpdGlvbnMoKToiKTsKLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbigncHJlY29uZGl0aW9uIHZlcnNp
b24nKSIpOworICAgIGRiLmNsb3NlKCk7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4
ZWREQi5vcGVuKGRibmFtZSwgMykiKTsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAg
IHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gdXBncmFkZU5lZWRlZChldnQpIHsK
KyAgICAgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0
OwogICAgICAgICBzdG9yZVdpdGhJbkxpbmVLZXlzID0gZXZhbEFuZExvZygic3RvcmVXaXRoSW5M
aW5lS2V5cyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZVdpdGhJbkxpbmVLZXlzJywge2tl
eVBhdGg6ICdrZXknfSkiKTsKICAgICAgICAgc3RvcmVXaXRoT3V0T2ZMaW5lS2V5cyA9IGV2YWxB
bmRMb2coInN0b3JlV2l0aE91dE9mTGluZUtleXMgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3Rv
cmVXaXRoT3V0SU9mTGluZUtleXMnKSIpOwogICAgICAgICBzdG9yZVdpdGhJbmRleCA9IGV2YWxB
bmRMb2coInN0b3JlV2l0aEluZGV4ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlV2l0aElu
ZGV4JykiKTsKQEAgLTMwOCw3ICsyOTMsMyBAQCBmdW5jdGlvbiB0ZXN0UHJlQ29uZGl0aW9ucygp
CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH07CiB9Ci0KLXZhciBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL29kZC1zdHJpbmdzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL29kZC1zdHJpbmdzLmpzCmluZGV4IDk3ODk4NTZhM2ExYjJlMzk1ZDgw
YmM0NmFhNmJmYjBlZjM1ODUzZDIuLjc0NTFiMzBlMThmODU2NDA4ZWZmYWI0MDIyM2U1YjIzNGEy
MTdjOWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9vZGQtc3RyaW5ncy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvb2RkLXN0cmluZ3MuanMKQEAgLTE3LDI5ICsxNywzMiBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgICAgICB7IGRlc2NyaXB0aW9uOiAnbGluZSBzZXBhcmF0b3InLCAgICAgbmFt
ZTogJ1x1MjAyOCcgfQogICAgIF07CiAgICAgbmV4dFRvT3BlbiA9IDA7Ci0gICAgb3Blbk5leHRE
YXRhYmFzZSgpOworICAgIHZhciBudW1EZWxldGVkID0gMDsKKyAgICBkZWJ1ZygiRGVsZXRpbmcg
YWxsIHRoZSBkYXRhYmFzZXMuLi4iKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3REYXRh
Lmxlbmd0aDsgaSsrKQorICAgIHsKKyAgICAgICAgcmVxdWVzdCA9IGluZGV4ZWREQi5kZWxldGVE
YXRhYmFzZSh0ZXN0RGF0YVtpXS5uYW1lKTsKKyAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1
bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICgrK251bURlbGV0ZWQgPT0gdGVzdERhdGEubGVuZ3RoKQor
ICAgICAgICAgICAgICAgIG9wZW5OZXh0RGF0YWJhc2UoKTsKKyAgICAgICAgfTsKKyAgICB9CiB9
CiAKIGZ1bmN0aW9uIG9wZW5OZXh0RGF0YWJhc2UoKQogewogICAgIGRlYnVnKCJvcGVuaW5nIGEg
ZGF0YWJhc2UgbmFtZWQgIiArIHRlc3REYXRhW25leHRUb09wZW5dLmRlc2NyaXB0aW9uKTsKLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Bl
bl0ubmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotfQotCi1mdW5jdGlvbiBv
cGVuU3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQiKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNp
b24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gYWRkQUtleTsKLSAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygiaW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSwgMSkiKTsKKyAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7CisgICAgcmVx
dWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qu
b251cGdyYWRlbmVlZGVkID0gYWRkQUtleTsKIH0KIAogZnVuY3Rpb24gYWRkQUtleSgpCiB7Ci0g
ICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUodGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSk7Iik7CiAgICAga2V5ID0g
ZXZhbEFuZExvZygia2V5ID0gdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSIpOwogICAgIHJlcXVl
c3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKGtleSwga2V5KTsiKTsK
QEAgLTYyLDIyICs2NSwxNSBAQCBmdW5jdGlvbiBjbG9zZURhdGFiYXNlKCkKIGZ1bmN0aW9uIHZl
cmlmeU5leHREYXRhYmFzZSgpCiB7CiAgICAgZGVidWcoInJlb3BlbmluZyBhIGRhdGFiYXNlIG5h
bWVkICIgKyB0ZXN0RGF0YVtuZXh0VG9PcGVuXS5kZXNjcmlwdGlvbik7Ci0gICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUpIik7
Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczI7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNz
MigpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
LSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIp
OworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbih0ZXN0RGF0YVtuZXh0
VG9PcGVuXS5uYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJs
b2NrZWRDYWxsYmFjazsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGdldEFLZXk7CisgICAgcmVxdWVzdC5vbnVw
Z3JhZGVuZWVkZWQgPSBnZXRBS2V5OwogfQogCiBmdW5jdGlvbiBnZXRBS2V5KCkKIHsKLSAgICB0
cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHRy
YW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24iKTsKICAg
ICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gdHJhbnMub2JqZWN0U3Rv
cmUodGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSk7Iik7CiAgICAga2V5ID0gZXZhbEFuZExvZygi
a2V5ID0gdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSIpOwogICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpOyIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3JlYWRvbmx5LmpzIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3JlYWRvbmx5LmpzCmluZGV4IDk4
MmM0ZTg2ZTJlYmUzOGJkMTdjOWY0N2Q1NWQ4NzY1MjVkMDExOTguLmMxYzJlYTExODVjN2U5YTE4
MzQyZjllYWUxY2RmZTFjNmNhOTk5ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9yZWFkb25seS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvcmVhZG9ubHkuanMKQEAgLTE4LDM2ICsxOCwxMSBAQCBmdW5j
dGlvbiBzZXRSZWFkb25seVByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSkKICAgICB9CiB9CiAKLWZ1
bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIG9wZW5TdWNjZXNz
KTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4
ZXMoKTsKLQotICAgIG5hbWUgPSAiZm9vIjsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNz
OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1m
dW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgicmVxdWVz
dC5yZXN1bHQiLCAiSW5maW5pdHkiKTsKLSAgICBzZXRSZWFkb25seVByb3BlcnR5KCJyZXF1ZXN0
LmVycm9yQ29kZSIsICI2NjYiKTsKLSAgICBzZXRSZWFkb25seVByb3BlcnR5KCJyZXF1ZXN0LmVy
cm9yIiwgInt9Iik7Ci0gICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgicmVxdWVzdC5zb3VyY2UiLCAi
dGhpcyIpOwotICAgIHNldFJlYWRvbmx5UHJvcGVydHkoInJlcXVlc3QudHJhbnNhY3Rpb24iLCAi
dGhpcyIpOwotICAgIHNldFJlYWRvbmx5UHJvcGVydHkoInJlcXVlc3QucmVhZHlTdGF0ZSIsICI2
NjYiKTsKLQotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
Ci0gICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgiZGIubmFtZSIsICInYmFyJyIpOwotCi0gICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNy
ZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQotewotICAgIHRyYW5zYWN0aW9uID0gZXZhbEFu
ZExvZygidHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0OyIpOworICAgIGRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKKyAgICB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coInRyYW5zYWN0
aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOyIpOwogICAgIHNldFJlYWRvbmx5UHJvcGVy
dHkoInRyYW5zYWN0aW9uLm1vZGUiLCAiNjY2Iik7CiAgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgi
dHJhbnNhY3Rpb24uZGIiLCAidGhpcyIpOwogCkBAIC05OSw4ICs3NCwyMCBAQCBmdW5jdGlvbiBj
aGVja0N1cnNvcigpCiAgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgia2V5UmFuZ2UudXBwZXIiLCAi
SW5maW5pdHkiKTsKICAgICBzZXRSZWFkb25seVByb3BlcnR5KCJrZXlSYW5nZS5sb3dlck9wZW4i
LCAidHJ1ZSIpOwogICAgIHNldFJlYWRvbmx5UHJvcGVydHkoImtleVJhbmdlLnVwcGVyT3BlbiIs
ICJ0cnVlIik7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKCkKK3sKKyAgICByZXF1ZXN0ID0g
ZXZlbnQudGFyZ2V0OworICAgIHNldFJlYWRvbmx5UHJvcGVydHkoInJlcXVlc3QucmVzdWx0Iiwg
IkluZmluaXR5Iik7CisgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgicmVxdWVzdC5lcnJvckNvZGUi
LCAiNjY2Iik7CisgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgicmVxdWVzdC5lcnJvciIsICJ7fSIp
OworICAgIHNldFJlYWRvbmx5UHJvcGVydHkoInJlcXVlc3Quc291cmNlIiwgInRoaXMiKTsKKyAg
ICBzZXRSZWFkb25seVByb3BlcnR5KCJyZXF1ZXN0LnRyYW5zYWN0aW9uIiwgInRoaXMiKTsKKyAg
ICBzZXRSZWFkb25seVByb3BlcnR5KCJyZXF1ZXN0LnJlYWR5U3RhdGUiLCAiNjY2Iik7CisKKyAg
ICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNldFJl
YWRvbmx5UHJvcGVydHkoImRiLm5hbWUiLCAiJ2JhciciKTsKIAogICAgIGZpbmlzaEpTVGVzdCgp
OwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKaW5kZXggMDBjNzEz
YWI2NjllYTY5MGE2YzkyZmUzMWRmYWFmMjZkMzhjZDA1Ny4uYmFiOWIyNTlkNDdkNmM2NzlhNWY2
Njk2OTNiNTYxYWZjNTdiNGUwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCkBAIC0xODksMTEgKzE4OSwxMiBAQCBmdW5jdGlvbiBp
bmRleGVkREJUZXN0KHVwZ3JhZGVDYWxsYmFjaywgb3B0aW9uYWxPcGVuQ2FsbGJhY2ssIG9wdGlv
bmFsUGFyYW1ldGVycwogICAgIGRlbGV0ZVJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOwogICAgIGRlbGV0ZVJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2Nr
ZWRDYWxsYmFjazsKICAgICBkZWxldGVSZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewot
ICAgICAgICB2YXIgb3BlblJlcXVlc3Q7CisgICAgICAgIHNlbGYub3BlblJlcXVlc3QgPSBudWxs
OwogICAgICAgICBpZiAob3B0aW9uYWxQYXJhbWV0ZXJzICYmICd2ZXJzaW9uJyBpbiBvcHRpb25h
bFBhcmFtZXRlcnMpCiAgICAgICAgICAgICBvcGVuUmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4
ZWREQi5vcGVuKGRibmFtZSwgIiArIG9wdGlvbmFsUGFyYW1ldGVyc1sndmVyc2lvbiddICsgIiki
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgb3BlblJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgICAgIHNob3VsZEJlKCJvcGVuUmVxdWVzdC5y
ZWFkeVN0YXRlIiwgIidwZW5kaW5nJyIsIHRydWUvKnF1aWV0Ki8pOwogICAgICAgICBvcGVuUmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAgICAgICAgIG9wZW5SZXF1
ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVDYWxsYmFjazsKICAgICAgICAgb3BlblJlcXVl
c3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174530</attachid>
            <date>2012-11-15 15:10:18 -0800</date>
            <delta_ts>2012-11-15 16:29:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102415-20121115150815.patch</filename>
            <type>text/plain</type>
            <size>42010</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0ODMzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmU0M2YxMzI2YzUyN2I5M2RjY2Zh
YzEyMDVkNGUzY2Q3YTZkMWExOS4uYzM2Yjk4YjAyNjA0NmU1ZDVkMTA5YzVmMzI0OWM4YzYyYzUy
MDU4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQwIEBACiAyMDEyLTExLTE1ICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBJbmRleGVkREIgc2V0VmVyc2lvbi1yZW1v
dmFsIGJhdGNoIDcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMjQxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVl
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFk
eVN0YXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3Jlc291cmNlcy9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5qczoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9yZWFkeVN0YXRlLmpzOgorICAgICAgICAg
IE1vdmVkIG9uZSBjaGVjayBpbnRvIHNoYXJlZC5qcywgYSBmZXcgb3RoZXJzIGFyb3VuZCwgYW5k
IHRoZSBjaGVjaworICAgICAgICAgIGZvciBzZXRWZXJzaW9uJ3MgcmVxdWVzdC5yZWFkeVN0YXRl
PT1wZW5kaW5nIGlzIGRlbGV0ZWQuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3Jlc291cmNlcy92ZXJzaW9uY2hhbmdlLWFib3J0LmpzOgorICAgICAgICAgIEZpcnN0IHRl
c3QgSSd2ZSBjb252ZXJ0ZWQgdGhhdCBtYWtlcyB0aGUgaW5pdGlhbCBvcGVuIGZhaWwsIGJ1dAor
ICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzIGlzIHVuaG9va2VkIHRvIG5vdCBjYXVzZSB0aGUg
d2hvbGUgdGVzdCB0byBmYWlsLgorCisgICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgorICAgICAg
ICAocG9zdEFib3J0KToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNp
b25jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLXdvcmtlcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL29kZC1zdHJpbmdzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWJhc2ljcy5qczoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2RkLXN0cmluZ3MuanM6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3JlYWRvbmx5LmpzOgorICAgICAgICAgIE1vdmVkIHRo
ZSBjaGVja3MgYXQgdGhlIGJlZ2lubmluZyB0byB0aGUgZW5kIG9mIHRoZSB0ZXN0LCBidXQKKyAg
ICAgICAgICBldmVyeXRoaW5nIHdhcyBwcmVzZXJ2ZWQuCisKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAgICAgIE1vdmVkIGEgY2hlY2sgZnJv
bSByZWFkeVN0YXRlIHRvIGhlcmUgYXMgdGhlIHJlYWR5U3RhdGUgbGF5b3V0IHRlc3QKKyAgICAg
ICAgICBkb2Vzbid0IGhhdmUgYWNjZXNzIHRvIHRoZSBvcGVuIHJlcXVlc3QgYmVmb3JlIGFueSBl
dmVudHMgYXJlIGZpcmVkLgorCisyMDEyLTExLTE1ICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNo
cm9taXVtLm9yZz4KKwogICAgICAgICBJbmRleGVkREI6IHJlbW92ZSBzZXRWZXJzaW9uIGZyb20g
aW50dmVyc2lvbi1sb25nLXF1ZXVlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDIzMjIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1yZW1v
dmUtdmFsdWVzLWV4cGVjdGVkLnR4dAppbmRleCA0Mjk1ZDlmNjkzODRhNmVlYWFmOGNlYzExNjY0
ZjMwODYxZjYyN2MwLi40ZDNkNjNmNDIyNzA0Y2Y2MGM3MzY5MzdiYzFlNjA1OGMxNjlmMmM5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1z
dG9yZS1yZW1vdmUtdmFsdWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1yZW1vdmUtdmFsdWVzLWV4cGVjdGVkLnR4
dApAQCAtMSwxMyArMSw4IEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0
aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRl
bmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREI6IGFkZHMsIGdldHMsIGRlbGV0
ZXMsIGFuZCByZS1nZXRzIGEgcmVjb3JkIGluIGEgdmFyaWV0eSBvZiBkaWZmZXJlbnQgb2JqZWN0
IHN0b3JlIGNvbmZpZ3VyYXRpb25zCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1p
bmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxm
Lm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKLQot
aW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogZGF0YSA9IFsK
ICAgICAgICAgeyBuYW1lOiAnaW5saW5lIGtleTsga2V5IGdlbmVyYXRvcicsCiAgICAgICAgICAg
YXV0b0luY3JlbWVudDogdHJ1ZSwKQEAgLTM1LDggKzMwLDEyIEBAIGRhdGEgPSBbCiAgICAgICAg
IH0KICAgICBdOwogaSA9IDA7Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVk
IGFsbCBvYmplY3Qgc3RvcmVzLgorCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxm
LndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERC
IHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gIm9iamVjdC1zdG9yZS1yZW1vdmUtdmFs
dWVzLmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSh0ZXN0Lm5hbWUs
IHsga2V5UGF0aDogdGVzdC5rZXlOYW1lLCBhdXRvSW5jcmVtZW50OiB0ZXN0LmF1dG9JbmNyZW1l
bnQgfSk7CiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKHRlc3Quc3RvcmVkT2JqZWN0KTsKIGlk
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKQEAgLTQ1LDggKzQ0LDExIEBAIFBBU1MgdGVzdC5zdG9y
ZWRPYmplY3QubmFtZSBpcyBldmVudC50YXJnZXQucmVzdWx0Lm5hbWUKIHJlcXVlc3QgPSBvYmpl
Y3RTdG9yZS5kZWxldGUoaWQpOwogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmdldChpZCk7CiBQQVNT
IGV2ZW50LnRhcmdldC5yZXN1bHQgPT09IHVuZGVmaW5lZCBpcyB0cnVlCi1yZXF1ZXN0ID0gZGIu
c2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgoraW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJv
YmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUodGVzdC5uYW1lLCB7IGtleVBhdGg6IHRlc3Qua2V5TmFtZSwgYXV0b0luY3Jl
bWVudDogdGVzdC5hdXRvSW5jcmVtZW50IH0pOwogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZCh0
ZXN0LnN0b3JlZE9iamVjdCk7CiBpZCA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CkBAIC01NSw4ICs1
NywxMSBAQCBQQVNTIHRlc3Quc3RvcmVkT2JqZWN0Lm5hbWUgaXMgZXZlbnQudGFyZ2V0LnJlc3Vs
dC5uYW1lCiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuZGVsZXRlKGlkKTsKIHJlcXVlc3QgPSBvYmpl
Y3RTdG9yZS5nZXQoaWQpOwogUEFTUyBldmVudC50YXJnZXQucmVzdWx0ID09PSB1bmRlZmluZWQg
aXMgdHJ1ZQotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0
IHN0b3Jlcy4KK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOworCitkYm5hbWUgPSAib2JqZWN0LXN0b3JlLXJlbW92ZS12YWx1ZXMuaHRtbCIKK2lu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBv
YmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHRlc3QubmFtZSwgeyBhdXRvSW5jcmVt
ZW50OiB0ZXN0LmF1dG9JbmNyZW1lbnQgfSk7CiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKHRl
c3Quc3RvcmVkT2JqZWN0KTsKIGlkID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKQEAgLTY1LDggKzcw
LDExIEBAIFBBU1MgdGVzdC5zdG9yZWRPYmplY3QubmFtZSBpcyBldmVudC50YXJnZXQucmVzdWx0
Lm5hbWUKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5kZWxldGUoaWQpOwogcmVxdWVzdCA9IG9iamVj
dFN0b3JlLmdldChpZCk7CiBQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQgPT09IHVuZGVmaW5lZCBp
cyB0cnVlCi1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qg
c3RvcmVzLgoraW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVk
REIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRl
eGVkREI7CisKK2RibmFtZSA9ICJvYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5odG1sIgoraW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKIG9i
amVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUodGVzdC5uYW1lLCB7IGF1dG9JbmNyZW1l
bnQ6IHRlc3QuYXV0b0luY3JlbWVudCB9KTsKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQodGVz
dC5zdG9yZWRPYmplY3QsIHRlc3Qua2V5VmFsdWUpOwogaWQgPSBldmVudC50YXJnZXQucmVzdWx0
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFk
eVN0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvcmVhZHlTdGF0ZS1leHBlY3RlZC50eHQKaW5kZXggOGRmZDU3NDA5MGZlMzE2NDI3YTE4M2My
OTUzMmRiOTczNTViYmJlNy4uNWVmYjc3Yjc0MDEzYTUyMjcxOThmNmEyMGY5MjAzMzE1NzFkMTM4
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFk
eVN0YXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL3JlYWR5U3RhdGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBN
RVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwg
YmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3Qg
SW5kZXhlZERCIHJlYWR5U3RhdGUgcHJvcGVydHkgZHVyaW5nIGRpZmZlcmVudCBvcGVyYXRpb25z
CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMTYgKzUsMTAgQEAgT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJr
aXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBz
ZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1QQVNTIHJlcXVlc3QucmVh
ZHlTdGF0ZSBpcyAncGVuZGluZycKLW9wZW5TdWNjZXNzKCk6Ci1QQVNTIHJlcXVlc3QucmVhZHlT
dGF0ZSBpcyAnZG9uZScKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNl
dFZlcnNpb24oJzEnKQotUEFTUyByZXF1ZXN0LnJlYWR5U3RhdGUgaXMgJ3BlbmRpbmcnCi1zZXR1
cE9iamVjdFN0b3JlKCk6Ci1QQVNTIHJlcXVlc3QucmVhZHlTdGF0ZSBpcyAnZG9uZScKLURlbGV0
ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSAicmVhZHlTdGF0ZS5odG1sIgoraW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK1BBU1Mg
b3BlblJlcXVlc3QucmVhZHlTdGF0ZSBpcyAnZG9uZScKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ2ZvbycpOwoga2V5ID0gMTA7CiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRk
KHt9LCBrZXkpOwpAQCAtMjgsNiArMjEsOSBAQCBQQVNTIHJlcXVlc3QucmVhZHlTdGF0ZSBpcyAn
cGVuZGluZycKIGZpbmFsQ2hlY2soKToKIFBBU1MgcmVxdWVzdC5yZWFkeVN0YXRlIGlzICdkb25l
JwogUEFTUyBldmVudC50YXJnZXQucmVzdWx0ID09IG51bGwgaXMgZmFsc2UKK2NoZWNrUmVhZHlT
dGF0ZUluT3BlbigpOgorUEFTUyBldmVudC50YXJnZXQgaXMgb3BlblJlcXVlc3QKK1BBU1Mgb3Bl
blJlcXVlc3QucmVhZHlTdGF0ZSBpcyAiZG9uZSIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvb2JqZWN0LXN0b3JlLXJlbW92ZS12YWx1ZXMuanMg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9vYmplY3Qt
c3RvcmUtcmVtb3ZlLXZhbHVlcy5qcwppbmRleCA0MGRmMzM5YjEyZTFjMzZjNTEzZWMzNGQ4NWJm
NGQ0NTk1NTU2Yzc2Li43NTIzNDFlZThmMTRlM2UxOGNkZmIwMGRhMTNhZmNlNTQzMWNiOWNkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNl
cy9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVlcy5q
cwpAQCAtMTEsMjEgKzExLDcgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlw
dGlvbigiVGVzdCBJbmRleGVkREI6IGFkZHMsIGdldHMsIGRlbGV0ZXMsIGFuZCByZS1nZXRzIGEg
cmVjb3JkIGluIGEgdmFyaWV0eSBvZiBkaWZmZXJlbnQgb2JqZWN0IHN0b3JlIGNvbmZpZ3VyYXRp
b25zIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7
Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9n
KCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIGRhdGEgPSBldmFsQW5kTG9nKCJk
YXRhID0gW1xuIiArCitkYXRhID0gZXZhbEFuZExvZygiZGF0YSA9IFtcbiIgKwogIiAgICAgICAg
eyBuYW1lOiAnaW5saW5lIGtleTsga2V5IGdlbmVyYXRvcicsXG4iICsKICIgICAgICAgICAgYXV0
b0luY3JlbWVudDogdHJ1ZSxcbiIgKwogIiAgICAgICAgICBzdG9yZWRPYmplY3Q6IHtuYW1lOiAn
TGluY29sbid9LFxuIiArCkBAIC01MiwxNyArMzgsMTkgQEAgZnVuY3Rpb24gb3BlblN1Y2Nlc3Mo
KQogIiAgICAgICAgfVxuIiArCiAiICAgIF07Iik7CiAKLSAgICBpID0gZXZhbEFuZExvZygiaSA9
IDA7Iik7Ci0gICAgc2V0VmVyc2lvbigpOwotfQoraSA9IGV2YWxBbmRMb2coImkgPSAwOyIpOwor
dmFyIGRiID0gbnVsbDsKK2RlYnVnKCIiKTsKKworcnVuQVRlc3QoKTsKIAotZnVuY3Rpb24gc2V0
VmVyc2lvbigpCitmdW5jdGlvbiBydW5BVGVzdCgpCiB7CisgICAgaWYgKGRiKQorICAgICAgICBk
Yi5jbG9zZSgpOwogICAgIGlmIChpIDwgZGF0YS5sZW5ndGgpIHsKICAgICAgICAgdGVzdCA9IGRh
dGFbaV07Ci0gICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVy
c2lvbignMScpIik7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlT2JqZWN0U3Rv
cmU7Ci0gICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwor
ICAgICAgICBpbmRleGVkREJUZXN0KGNyZWF0ZU9iamVjdFN0b3JlLCBydW5BVGVzdCk7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQpAQCAtNzAsOSArNTgsNyBA
QCBmdW5jdGlvbiBzZXRWZXJzaW9uKCkKIAogZnVuY3Rpb24gY3JlYXRlT2JqZWN0U3RvcmUoKQog
ewotICAgIHRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICBkZWxldGVBbGxP
YmplY3RTdG9yZXMoZGIpOwotCisgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAgIGlm
ICh0ZXN0LmtleU5hbWUpIHsKICAgICAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmpl
Y3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHRlc3QubmFtZSwgeyBrZXlQYXRoOiB0ZXN0
LmtleU5hbWUsIGF1dG9JbmNyZW1lbnQ6IHRlc3QuYXV0b0luY3JlbWVudCB9KTsiKTsKICAgICB9
IGVsc2UgewpAQCAtMTE1LDcgKzEwMSw0IEBAIGZ1bmN0aW9uIGZpbmFsQ2hlY2soKQogewogICAg
IHNob3VsZEJlVHJ1ZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCA9PT0gdW5kZWZpbmVkIik7CiAgICAg
aSsrOwotICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBzZXRWZXJzaW9uOwogfQotCi10ZXN0
KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvcmVhZHlTdGF0ZS5qcyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL3JlYWR5U3RhdGUuanMK
aW5kZXggYjQ0ZTU1ZjFkMWJkMWI5ZDJlZmMyNzA4MzcxMmIyYzY4NjI0ZjI1Yi4uOTMzZjNiOTIx
YzJjNzhhZTc1N2I2M2QwYmJhNzJlNWZjNjdmZDA2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvcmVhZHlTdGF0ZS5qcworKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9yZWFkeVN0YXRl
LmpzCkBAIC0xMSwzMyArMTEsMTIgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNj
cmlwdGlvbigiVGVzdCBJbmRleGVkREIgcmVhZHlTdGF0ZSBwcm9wZXJ0eSBkdXJpbmcgZGlmZmVy
ZW50IG9wZXJhdGlvbnMiKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBh
cmVEYXRhYmFzZSwgY2hlY2tSZWFkeVN0YXRlSW5PcGVuKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRh
YmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxm
LmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
b3BlbihuYW1lKSIpOwotICAgIHNob3VsZEJlKCJyZXF1ZXN0LnJlYWR5U3RhdGUiLCAiJ3BlbmRp
bmcnIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1
Y2Nlc3MoKQotewotICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOwotICAgIHNob3VsZEJlKCJy
ZXF1ZXN0LnJlYWR5U3RhdGUiLCAiJ2RvbmUnIik7Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVz
dCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHNob3VsZEJlKCJyZXF1ZXN0LnJlYWR5U3Rh
dGUiLCAiJ3BlbmRpbmcnIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXR1cE9iamVjdFN0
b3JlOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQot
Ci1mdW5jdGlvbiBzZXR1cE9iamVjdFN0b3JlKCkKLXsKLSAgICBkZWJ1Zygic2V0dXBPYmplY3RT
dG9yZSgpOiIpOwotICAgIHNob3VsZEJlKCJyZXF1ZXN0LnJlYWR5U3RhdGUiLCAiJ2RvbmUnIik7
Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CisgICAgb3BlblJlcXVlc3QgPSBldmVudC50YXJnZXQ7CisgICAgc2hvdWxkQmUoIm9w
ZW5SZXF1ZXN0LnJlYWR5U3RhdGUiLCAiJ2RvbmUnIik7CiAKICAgICBvYmplY3RTdG9yZSA9IGV2
YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpOyIpOwog
ICAgIGtleSA9IGV2YWxBbmRMb2coImtleSA9IDEwOyIpOwpAQCAtNjMsNyArNDIsMTIgQEAgZnVu
Y3Rpb24gZmluYWxDaGVjaygpCiAgICAgZGVidWcoImZpbmFsQ2hlY2soKToiKTsKICAgICBzaG91
bGRCZSgicmVxdWVzdC5yZWFkeVN0YXRlIiwgIidkb25lJyIpOwogICAgIHNob3VsZEJlRmFsc2Uo
ImV2ZW50LnRhcmdldC5yZXN1bHQgPT0gbnVsbCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
Ci10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZnVuY3Rpb24gY2hlY2tSZWFk
eVN0YXRlSW5PcGVuKCkKK3sKKyAgICBkZWJ1ZygiY2hlY2tSZWFkeVN0YXRlSW5PcGVuKCk6Iik7
CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldCIsICJvcGVuUmVxdWVzdCIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygib3BlblJlcXVlc3QucmVhZHlTdGF0ZSIsICJkb25lIik7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy92ZXJzaW9uY2hhbmdlLWFib3J0LmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvdmVyc2lvbmNoYW5nZS1hYm9y
dC5qcwppbmRleCBlMDM2YTA1ZTI5Y2U5YjNkZTQ1OWU1ZjNmYWIwMDcyMDYxZWM2MWUxLi5kOTQ3
YTFhZmE0Yjc1N2M2MWQxNjc2Zjc2NWFmNTdkNzQ4YWMyNDc1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy92ZXJzaW9uY2hhbmdlLWFi
b3J0LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3Vy
Y2VzL3ZlcnNpb25jaGFuZ2UtYWJvcnQuanMKQEAgLTksMzAgKzksMTQgQEAgaWYgKHRoaXMuaW1w
b3J0U2NyaXB0cykgewogICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uL3Jlc291cmNlcy9zaGFyZWQu
anMnKTsKIH0KIAotZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgYWJvcnRpbmcgc2V0VmVy
c2lvbiIpOworZGVzY3JpcHRpb24oIldoZW4gYSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGlz
IGFib3J0ZWQsIHRoZSB2ZXJzaW9uIGFuZCBuZXdseSBjcmVhdGVkIG9iamVjdCBzdG9yZXMgc2hv
dWxkIGJlIHJlc2V0Iik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJl
RGF0YWJhc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5k
b3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRi
ID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgaW5pdGlhbFZl
cnNpb24gPSBldmFsQW5kTG9nKCJpbml0aWFsVmVyc2lvbiA9IGRiLnZlcnNpb247Iik7Ci0gICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcyJykiKTsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNsZWFuRGF0YWJhc2Uo
KQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAgZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0OworICAgIHJlcXVlc3QgPSBldmVudC50YXJnZXQ7CisgICAgcmVxdWVzdC5vbmVy
cm9yID0gbnVsbDsKIAogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7Iik7CiAgICAgc2hvdWxkQmUoImRiLm9iamVj
dFN0b3JlTmFtZXMubGVuZ3RoIiwgIjEiKTsKQEAgLTQwLDE3ICsyNCwxNyBAQCBmdW5jdGlvbiBj
bGVhbkRhdGFiYXNlKCkKICAgICBpbmRleCA9IGV2YWxBbmRMb2coImluZGV4ID0gb2JqZWN0U3Rv
cmUuY3JlYXRlSW5kZXgoJ2JhcicsICdiYXonKTsiKTsKICAgICBzaG91bGRCZSgib2JqZWN0U3Rv
cmUuaW5kZXhOYW1lcy5sZW5ndGgiLCAiMSIpOwogCi0gICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0
aW9uLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOwotICAgIGV2ZW50LnRh
cmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gcG9zdEFib3J0OworICAgIHRyYW5zID0gcmVxdWVz
dC50cmFuc2FjdGlvbjsKKyAgICB0cmFucy5vbmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBsZXRl
Q2FsbGJhY2s7CisgICAgdHJhbnMub25hYm9ydCA9IHBvc3RBYm9ydDsKICAgICBldmFsQW5kTG9n
KCJldmVudC50YXJnZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsiKTsKIH0KIAogZnVuY3Rpb24gcG9z
dEFib3J0KCkKIHsKLSAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICJpbml0aWFsVmVyc2lvbiIp
OworICAgIGRlYnVnKCJGSVhNRTogRmFpbHMgYmVjYXVzZSBvZiBodHRwOi8vd2tiLnVnLzEwMjQx
MiIpOworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjAiKTsKICAgICBzaG91bGRCZSgiZGIu
b2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiLCAiMCIpOwogCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9
Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNpb25jaGFuZ2UtYWJvcnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS92ZXJzaW9u
Y2hhbmdlLWFib3J0LWV4cGVjdGVkLnR4dAppbmRleCBhYjNmYTdlN2RjNmJiNWJhMjMxMDc4MDg2
MzZlOGZlZTY5Nzc2MDlmLi43ZjYwZTBhY2MwNTliMjVjMDgzZGY4MjJkY2UzMDRmOWUwYWU3ZDU0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3ZlcnNp
b25jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEvdmVyc2lvbmNoYW5nZS1hYm9ydC1leHBlY3RlZC50eHQKQEAgLTEsMjIg
KzEsMjAgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9u
LXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2
ZW50IGluc3RlYWQuCi1UZXN0IEluZGV4ZWREQidzIGFib3J0aW5nIHNldFZlcnNpb24KK1doZW4g
YSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGlzIGFib3J0ZWQsIHRoZSB2ZXJzaW9uIGFuZCBu
ZXdseSBjcmVhdGVkIG9iamVjdCBzdG9yZXMgc2hvdWxkIGJlIHJlc2V0CiAKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndl
YmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8
IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAotaW5pdGlhbFZlcnNpb24gPSBkYi52ZXJzaW9uOwotcmVxdWVzdCA9IGRiLnNl
dFZlcnNpb24oJzInKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJ2ZXJz
aW9uY2hhbmdlLWFib3J0Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQor
aW5kZXhlZERCLm9wZW4oZGJuYW1lKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnZm9vJyk7CiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlzIDEKIGluZGV4ID0g
b2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ2JhcicsICdiYXonKTsKIFBBU1Mgb2JqZWN0U3RvcmUu
aW5kZXhOYW1lcy5sZW5ndGggaXMgMQogZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7
Ci1QQVNTIGRiLnZlcnNpb24gaXMgaW5pdGlhbFZlcnNpb24KK0ZJWE1FOiBGYWlscyBiZWNhdXNl
IG9mIGh0dHA6Ly93a2IudWcvMTAyNDEyCitGQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDAgKG9m
IHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgogUEFTUyBkYi5vYmplY3RTdG9y
ZU5hbWVzLmxlbmd0aCBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2lj
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9y
ZS1iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IDcxODY3NmFkYThiMjA5YTg1ZmVlMmM2MWUxNTA0
ZmFmNDYzY2Q2MzQuLmZkYTIzODc2YjdhMzcxMjBkNGEzMDk4ZDMwN2E5MWFjMTE1MTI5NWQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2lj
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0
c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FH
RTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJl
bW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IHRoZSBi
YXNpY3Mgb2YgSW5kZXhlZERCJ3MgSURCT2JqZWN0U3RvcmUuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KQEAgLTYsMTUgKzUsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5k
ZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5t
b3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWlu
ZGV4ZWREQi5vcGVuKCdvYmplY3RzdG9yZS1iYXNpY3MnKQotb3BlblN1Y2Nlc3MoKToKLWRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotc2V0VmVy
c2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFTUyB0cmFucyBp
cyBub24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCi1jcmVhdGVPYmplY3RTdG9y
ZSgpOgorZGJuYW1lID0gIm9iamVjdHN0b3JlLWJhc2ljcy5odG1sIgoraW5kZXhlZERCLmRlbGV0
ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKKworcHJlcGFyZURhdGFi
YXNlKCk6CiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKQog
c3RvcmVOYW1lcyA9IGRiLm9iamVjdFN0b3JlTmFtZXMKIFBBU1MgJ25hbWUnIGluIHN0b3JlIGlz
IHRydWUKQEAgLTY1LDEzICs2MCwxNCBAQCBFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gc3RvcmUu
aW5kZXgoJ2FzZGYnKQogUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KIFBBU1MgY29kZSBpcyBE
T01FeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgogUEFTUyBlbmFtZSBpcyAnTm90Rm91bmRFcnJvcicK
LWRiLnNldFZlcnNpb24oInZlcnNpb24gZmFpbCIpCi1QQVNTIGRiLnZlcnNpb24gaXMgInZlcnNp
b24gZmFpbCIKLXNldFZlcnNpb25UcmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2luZGV4ZWRE
Qi5vcGVuKGRibmFtZSwgMikKK2RiLmNsb3NlKCkKK1BBU1MgZGIudmVyc2lvbiBpcyAyCitzZXRW
ZXJzaW9uVHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KIFBBU1Mgc2V0VmVyc2lvblRy
YW5zIGlzIG5vbi1udWxsLgogc3RvcmUgPSBzZXRWZXJzaW9uVHJhbnMub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCiBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleEZhaWwnLCAneCcpCi1Q
QVNTIGRiLnZlcnNpb24gaXMgIm5ldyB2ZXJzaW9uIgorUEFTUyBkYi52ZXJzaW9uIGlzIDEKIFBB
U1Mgc3RvcmUudHJhbnNhY3Rpb24gaXMgc2V0VmVyc2lvblRyYW5zCiBQQVNTIHN0b3JlLmluZGV4
TmFtZXMgaXMgWydpbmRleE5hbWUnXQogUEFTUyBzdG9yZS5pbmRleE5hbWVzLmxlbmd0aCBpcyAx
CkBAIC0xNDksNyArMTQ1LDkgQEAgUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLkRB
VEFfRVJSCiBQQVNTIGVuYW1lIGlzICdEYXRhRXJyb3InCiAKIHRlc3RQcmVDb25kaXRpb25zKCk6
Ci1kYi5zZXRWZXJzaW9uKCdwcmVjb25kaXRpb24gdmVyc2lvbicpCitpbmRleGVkREIub3Blbihk
Ym5hbWUsIDMpCisKK3VwZ3JhZGVOZWVkZWQoKToKIHN0b3JlV2l0aEluTGluZUtleXMgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgnc3RvcmVXaXRoSW5MaW5lS2V5cycsIHtrZXlQYXRoOiAna2V5J30p
CiBzdG9yZVdpdGhPdXRPZkxpbmVLZXlzID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlV2l0
aE91dElPZkxpbmVLZXlzJykKIHN0b3JlV2l0aEluZGV4ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlV2l0aEluZGV4JykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL29iamVjdHN0b3JlLWJhc2ljcy13b3JrZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy13b3JrZXJzLWV4cGVjdGVkLnR4
dAppbmRleCBkMWVkYTlkMmE2OWRkODFiMzY5NGRiMzdiY2Q3Mzg4MDMwZGY3ODViLi4xOWM0NzI1
NGJlODRmY2YwZjQ2NDZhYzFlMjlhNTVlOGJjMmJiYjY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3Mtd29ya2Vycy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNz
LXdvcmtlcnMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBU
aGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3Zl
ZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFtXb3JrZXJdIFRlc3Qg
dGhlIGJhc2ljcyBvZiBJbmRleGVkREIncyBJREJPYmplY3RTdG9yZS4KIAogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgpAQCAtNywxNSArNiwxMSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
U3RhcnRpbmcgd29ya2VyOiByZXNvdXJjZXMvb2JqZWN0c3RvcmUtYmFzaWNzLmpzCiBbV29ya2Vy
XSBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBz
ZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsK
IFtXb3JrZXJdIAotW1dvcmtlcl0gaW5kZXhlZERCLm9wZW4oJ29iamVjdHN0b3JlLWJhc2ljcycp
Ci1bV29ya2VyXSBvcGVuU3VjY2VzcygpOgotW1dvcmtlcl0gZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Ci1bV29ya2VyXSBkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1bV29ya2VyXSBzZXRW
ZXJzaW9uU3VjY2VzcygpOgotW1dvcmtlcl0gdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1Q
QVNTIFtXb3JrZXJdIHRyYW5zIGlzIG5vbi1udWxsLgotW1dvcmtlcl0gRGVsZXRlZCBhbGwgb2Jq
ZWN0IHN0b3Jlcy4KLVtXb3JrZXJdIGNyZWF0ZU9iamVjdFN0b3JlKCk6CitbV29ya2VyXSBkYm5h
bWUgPSAib2JqZWN0c3RvcmUtYmFzaWNzLmpzIgorW1dvcmtlcl0gaW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRibmFtZSkKK1tXb3JrZXJdIGluZGV4ZWREQi5vcGVuKGRibmFtZSkKK1tXb3JrZXJd
IAorW1dvcmtlcl0gcHJlcGFyZURhdGFiYXNlKCk6CiBbV29ya2VyXSBzdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKQogW1dvcmtlcl0gc3RvcmVOYW1lcyA9IGRi
Lm9iamVjdFN0b3JlTmFtZXMKIFBBU1MgW1dvcmtlcl0gJ25hbWUnIGluIHN0b3JlIGlzIHRydWUK
QEAgLTY2LDEzICs2MSwxNCBAQCBQQVNTIFtXb3JrZXJdIGluZGV4IGlzIG5vbi1udWxsLgogUEFT
UyBbV29ya2VyXSBFeGNlcHRpb24gd2FzIHRocm93bi4KIFBBU1MgW1dvcmtlcl0gY29kZSBpcyBE
T01FeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgogUEFTUyBbV29ya2VyXSBlbmFtZSBpcyAnTm90Rm91
bmRFcnJvcicKLVtXb3JrZXJdIGRiLnNldFZlcnNpb24oInZlcnNpb24gZmFpbCIpCi1QQVNTIFtX
b3JrZXJdIGRiLnZlcnNpb24gaXMgInZlcnNpb24gZmFpbCIKLVtXb3JrZXJdIHNldFZlcnNpb25U
cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1tXb3JrZXJdIGluZGV4ZWREQi5vcGVuKGRibmFt
ZSwgMikKK1tXb3JrZXJdIGRiLmNsb3NlKCkKK1BBU1MgW1dvcmtlcl0gZGIudmVyc2lvbiBpcyAy
CitbV29ya2VyXSBzZXRWZXJzaW9uVHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KIFBB
U1MgW1dvcmtlcl0gc2V0VmVyc2lvblRyYW5zIGlzIG5vbi1udWxsLgogW1dvcmtlcl0gc3RvcmUg
PSBzZXRWZXJzaW9uVHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCiBbV29ya2VyXSBpbmRl
eCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleEZhaWwnLCAneCcpCi1QQVNTIFtXb3JrZXJdIGRi
LnZlcnNpb24gaXMgIm5ldyB2ZXJzaW9uIgorUEFTUyBbV29ya2VyXSBkYi52ZXJzaW9uIGlzIDEK
IFBBU1MgW1dvcmtlcl0gc3RvcmUudHJhbnNhY3Rpb24gaXMgc2V0VmVyc2lvblRyYW5zCiBQQVNT
IFtXb3JrZXJdIHN0b3JlLmluZGV4TmFtZXMgaXMgWydpbmRleE5hbWUnXQogUEFTUyBbV29ya2Vy
XSBzdG9yZS5pbmRleE5hbWVzLmxlbmd0aCBpcyAxCkBAIC0xNTAsNyArMTQ2LDkgQEAgUEFTUyBb
V29ya2VyXSBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSCiBQQVNTIFtXb3Jr
ZXJdIGVuYW1lIGlzICdEYXRhRXJyb3InCiBbV29ya2VyXSAKIFtXb3JrZXJdIHRlc3RQcmVDb25k
aXRpb25zKCk6Ci1bV29ya2VyXSBkYi5zZXRWZXJzaW9uKCdwcmVjb25kaXRpb24gdmVyc2lvbicp
CitbV29ya2VyXSBpbmRleGVkREIub3BlbihkYm5hbWUsIDMpCitbV29ya2VyXSAKK1tXb3JrZXJd
IHVwZ3JhZGVOZWVkZWQoKToKIFtXb3JrZXJdIHN0b3JlV2l0aEluTGluZUtleXMgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnc3RvcmVXaXRoSW5MaW5lS2V5cycsIHtrZXlQYXRoOiAna2V5J30pCiBb
V29ya2VyXSBzdG9yZVdpdGhPdXRPZkxpbmVLZXlzID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0
b3JlV2l0aE91dElPZkxpbmVLZXlzJykKIFtXb3JrZXJdIHN0b3JlV2l0aEluZGV4ID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlV2l0aEluZGV4JykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL29kZC1zdHJpbmdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL29kZC1zdHJpbmdzLWV4cGVjdGVkLnR4dAppbmRleCA4YzAxMzUw
ZWZmOGE4ODRlMDQ0NWFmODZmMjc4OTQxYmExNTJlM2NkLi5mMzRhMmQ5MDRiMzM4MjQyNDNlYzdm
ZjQ5NjU0MjIzN2MyMDRiMWY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9vZGQtc3RyaW5ncy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvb2RkLXN0cmluZ3MtZXhwZWN0ZWQudHh0CkBAIC0xLDE1ICsxLDMgQEAKLUNPTlNP
TEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3
aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCi1D
T05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBh
bmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFk
LgotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRh
cmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5z
dGVhZC4KLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0
YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50
IGluc3RlYWQuCi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5v
bi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBl
dmVudCBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBp
cyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRl
ZCIgZXZlbnQgaW5zdGVhZC4KLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRo
b2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVu
ZWVkZWQiIGV2ZW50IGluc3RlYWQuCi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkg
bWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdy
YWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lv
bigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAi
dXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZl
cnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0
aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCi1DT05TT0xFIE1FU1NBR0U6IFRoZSBz
ZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBV
c2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBU
aGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3Zl
ZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERC
IG9kZCB2YWx1ZSBkYXRhdHlwZXMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtMTcs
NzEgKzUsNTIgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKK0RlbGV0aW5nIGFsbCB0aGUg
ZGF0YWJhc2VzLi4uCiBvcGVuaW5nIGEgZGF0YWJhc2UgbmFtZWQgbnVsbAotaW5kZXhlZERCLm9w
ZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAot
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4K
K2luZGV4ZWREQi5vcGVuKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUsIDEpCiBvYmplY3RTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUpOwoga2V5
ID0gdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZQogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZChr
ZXksIGtleSk7CiBkYi5jbG9zZSgpCiAKIG9wZW5pbmcgYSBkYXRhYmFzZSBuYW1lZCBmYWlodQot
aW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSkKLWRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2Jq
ZWN0IHN0b3Jlcy4KK2luZGV4ZWREQi5vcGVuKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUsIDEp
CiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHRlc3REYXRhW25leHRUb09wZW5d
Lm5hbWUpOwoga2V5ID0gdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZQogcmVxdWVzdCA9IG9iamVj
dFN0b3JlLmFkZChrZXksIGtleSk7CiBkYi5jbG9zZSgpCiAKIG9wZW5pbmcgYSBkYXRhYmFzZSBu
YW1lZCB1bnBhaXJlZCBzdXJyb2dhdGUKLWluZGV4ZWREQi5vcGVuKHRlc3REYXRhW25leHRUb09w
ZW5dLm5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJz
aW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitpbmRleGVkREIub3Blbih0ZXN0
RGF0YVtuZXh0VG9PcGVuXS5uYW1lLCAxKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSh0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lKTsKIGtleSA9IHRlc3REYXRhW25leHRUb09w
ZW5dLm5hbWUKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoa2V5LCBrZXkpOwogZGIuY2xvc2Uo
KQogCiBvcGVuaW5nIGEgZGF0YWJhc2UgbmFtZWQgZmZmZQotaW5kZXhlZERCLm9wZW4odGVzdERh
dGFbbmV4dFRvT3Blbl0ubmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9
IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2luZGV4ZWRE
Qi5vcGVuKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUsIDEpCiBvYmplY3RTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUpOwoga2V5ID0gdGVzdERh
dGFbbmV4dFRvT3Blbl0ubmFtZQogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZChrZXksIGtleSk7
CiBkYi5jbG9zZSgpCiAKIG9wZW5pbmcgYSBkYXRhYmFzZSBuYW1lZCBmZmZmCi1pbmRleGVkREIu
b3Blbih0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVz
LgoraW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSwgMSkKIG9iamVjdFN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUodGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSk7CiBr
ZXkgPSB0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lCiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRk
KGtleSwga2V5KTsKIGRiLmNsb3NlKCkKIAogb3BlbmluZyBhIGRhdGFiYXNlIG5hbWVkIGxpbmUg
c2VwYXJhdG9yCi1pbmRleGVkREIub3Blbih0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lKQotZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxl
dGVkIGFsbCBvYmplY3Qgc3RvcmVzLgoraW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Bl
bl0ubmFtZSwgMSkKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUodGVzdERhdGFb
bmV4dFRvT3Blbl0ubmFtZSk7CiBrZXkgPSB0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lCiByZXF1
ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKGtleSwga2V5KTsKIGRiLmNsb3NlKCkKIAogcmVvcGVuaW5n
IGEgZGF0YWJhc2UgbmFtZWQgbnVsbAotaW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Bl
bl0ubmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNp
b24oJzEnKQotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0CitpbmRleGVkREIub3Blbih0ZXN0
RGF0YVtuZXh0VG9PcGVuXS5uYW1lLCAyKQordHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rp
b24KIG9iamVjdFN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUodGVzdERhdGFbbmV4dFRvT3Blbl0u
bmFtZSk7CiBrZXkgPSB0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lCiByZXF1ZXN0ID0gb2JqZWN0
U3RvcmUub3BlbkN1cnNvcigpOwpAQCAtOTAsMTAgKzU5LDggQEAgUEFTUyBjdXJzb3Iua2V5IGlz
IHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUKIFBBU1MgY3Vyc29yLnZhbHVlIGlzIHRlc3REYXRh
W25leHRUb09wZW5dLm5hbWUKIAogcmVvcGVuaW5nIGEgZGF0YWJhc2UgbmFtZWQgZmFpaHUKLWlu
ZGV4ZWREQi5vcGVuKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUpCi1kYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLXRyYW5zID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAoraW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSwgMikK
K3RyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCiBvYmplY3RTdG9yZSA9IHRyYW5zLm9i
amVjdFN0b3JlKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUpOwoga2V5ID0gdGVzdERhdGFbbmV4
dFRvT3Blbl0ubmFtZQogcmVxdWVzdCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKTsKQEAgLTEw
MiwxMCArNjksOCBAQCBQQVNTIGN1cnNvci5rZXkgaXMgdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFt
ZQogUEFTUyBjdXJzb3IudmFsdWUgaXMgdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZQogCiByZW9w
ZW5pbmcgYSBkYXRhYmFzZSBuYW1lZCB1bnBhaXJlZCBzdXJyb2dhdGUKLWluZGV4ZWREQi5vcGVu
KHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJl
cXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAor
aW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSwgMikKK3RyYW5zID0gZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uCiBvYmplY3RTdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKHRl
c3REYXRhW25leHRUb09wZW5dLm5hbWUpOwoga2V5ID0gdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFt
ZQogcmVxdWVzdCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKTsKQEAgLTExNCwxMCArNzksOCBA
QCBQQVNTIGN1cnNvci5rZXkgaXMgdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZQogUEFTUyBjdXJz
b3IudmFsdWUgaXMgdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZQogCiByZW9wZW5pbmcgYSBkYXRh
YmFzZSBuYW1lZCBmZmZlCi1pbmRleGVkREIub3Blbih0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1l
KQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScp
Ci10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2luZGV4ZWREQi5vcGVuKHRlc3REYXRhW25l
eHRUb09wZW5dLm5hbWUsIDIpCit0cmFucyA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgogb2Jq
ZWN0U3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSh0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lKTsK
IGtleSA9IHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5v
cGVuQ3Vyc29yKCk7CkBAIC0xMjYsMTAgKzg5LDggQEAgUEFTUyBjdXJzb3Iua2V5IGlzIHRlc3RE
YXRhW25leHRUb09wZW5dLm5hbWUKIFBBU1MgY3Vyc29yLnZhbHVlIGlzIHRlc3REYXRhW25leHRU
b09wZW5dLm5hbWUKIAogcmVvcGVuaW5nIGEgZGF0YWJhc2UgbmFtZWQgZmZmZgotaW5kZXhlZERC
Lm9wZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotdHJhbnMgPSBldmVudC50YXJnZXQucmVz
dWx0CitpbmRleGVkREIub3Blbih0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lLCAyKQordHJhbnMg
PSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KIG9iamVjdFN0b3JlID0gdHJhbnMub2JqZWN0U3Rv
cmUodGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSk7CiBrZXkgPSB0ZXN0RGF0YVtuZXh0VG9PcGVu
XS5uYW1lCiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpOwpAQCAtMTM4LDEwICs5
OSw4IEBAIFBBU1MgY3Vyc29yLmtleSBpcyB0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lCiBQQVNT
IGN1cnNvci52YWx1ZSBpcyB0ZXN0RGF0YVtuZXh0VG9PcGVuXS5uYW1lCiAKIHJlb3BlbmluZyBh
IGRhdGFiYXNlIG5hbWVkIGxpbmUgc2VwYXJhdG9yCi1pbmRleGVkREIub3Blbih0ZXN0RGF0YVtu
ZXh0VG9PcGVuXS5uYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIu
c2V0VmVyc2lvbignMScpCi10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2luZGV4ZWREQi5v
cGVuKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUsIDIpCit0cmFucyA9IGV2ZW50LnRhcmdldC50
cmFuc2FjdGlvbgogb2JqZWN0U3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSh0ZXN0RGF0YVtuZXh0
VG9PcGVuXS5uYW1lKTsKIGtleSA9IHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUKIHJlcXVlc3Qg
PSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZWFkb25seS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZWFkb25seS1leHBlY3RlZC50eHQKaW5kZXggM2RjODliNjY3YTQ1NjQwNjJi
OTIyMTk3MzA5MTY4Njc0NzgzNTBmNi4uMWZkYjM2NzA3NTA5ZWVkOGIzMjZkNzk2NGQ0M2E4NmY3
Y2M5NDBiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9u
bHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlYWRv
bmx5LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNl
dFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVz
ZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiByZWFk
b25seSBwcm9wZXJ0aWVzCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTYsMzEgKzUs
MTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi10
cnlpbmcgdG8gc2V0IHJlYWRvbmx5IHByb3BlcnR5IHJlcXVlc3QucmVzdWx0Ci1yZXF1ZXN0LnJl
c3VsdCA9IEluZmluaXR5Ci1QQVNTIHJlcXVlc3QucmVzdWx0IGlzIHN0aWxsIFtvYmplY3QgSURC
RGF0YWJhc2VdCi10cnlpbmcgdG8gc2V0IHJlYWRvbmx5IHByb3BlcnR5IHJlcXVlc3QuZXJyb3JD
b2RlCi1yZXF1ZXN0LmVycm9yQ29kZSA9IDY2NgotUEFTUyByZXF1ZXN0LmVycm9yQ29kZSBpcyBz
dGlsbCAwCi10cnlpbmcgdG8gc2V0IHJlYWRvbmx5IHByb3BlcnR5IHJlcXVlc3QuZXJyb3IKLXJl
cXVlc3QuZXJyb3IgPSB7fQotUEFTUyByZXF1ZXN0LmVycm9yIGlzIHN0aWxsIG51bGwKLXRyeWlu
ZyB0byBzZXQgcmVhZG9ubHkgcHJvcGVydHkgcmVxdWVzdC5zb3VyY2UKLXJlcXVlc3Quc291cmNl
ID0gdGhpcwotUEFTUyByZXF1ZXN0LnNvdXJjZSBpcyBzdGlsbCBudWxsCi10cnlpbmcgdG8gc2V0
IHJlYWRvbmx5IHByb3BlcnR5IHJlcXVlc3QudHJhbnNhY3Rpb24KLXJlcXVlc3QudHJhbnNhY3Rp
b24gPSB0aGlzCi1QQVNTIHJlcXVlc3QudHJhbnNhY3Rpb24gaXMgc3RpbGwgbnVsbAotdHJ5aW5n
IHRvIHNldCByZWFkb25seSBwcm9wZXJ0eSByZXF1ZXN0LnJlYWR5U3RhdGUKLXJlcXVlc3QucmVh
ZHlTdGF0ZSA9IDY2NgotUEFTUyByZXF1ZXN0LnJlYWR5U3RhdGUgaXMgc3RpbGwgZG9uZQotZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Ci10cnlpbmcgdG8gc2V0IHJlYWRvbmx5IHByb3BlcnR5IGRi
Lm5hbWUKLWRiLm5hbWUgPSAnYmFyJwotUEFTUyBkYi5uYW1lIGlzIHN0aWxsIGZvbwotcmVxdWVz
dCA9IGRiLnNldFZlcnNpb24oJzEnKQotdHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0
OworZGJuYW1lID0gInJlYWRvbmx5Lmh0bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQordHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQu
dHJhbnNhY3Rpb247CiB0cnlpbmcgdG8gc2V0IHJlYWRvbmx5IHByb3BlcnR5IHRyYW5zYWN0aW9u
Lm1vZGUKIHRyYW5zYWN0aW9uLm1vZGUgPSA2NjYKIFBBU1MgdHJhbnNhY3Rpb24ubW9kZSBpcyBz
dGlsbCB2ZXJzaW9uY2hhbmdlCkBAIC04NSw2ICs2MywyOCBAQCBQQVNTIGtleVJhbmdlLmxvd2Vy
T3BlbiBpcyBzdGlsbCBmYWxzZQogdHJ5aW5nIHRvIHNldCByZWFkb25seSBwcm9wZXJ0eSBrZXlS
YW5nZS51cHBlck9wZW4KIGtleVJhbmdlLnVwcGVyT3BlbiA9IHRydWUKIFBBU1Mga2V5UmFuZ2Uu
dXBwZXJPcGVuIGlzIHN0aWxsIGZhbHNlCit0cnlpbmcgdG8gc2V0IHJlYWRvbmx5IHByb3BlcnR5
IHJlcXVlc3QucmVzdWx0CityZXF1ZXN0LnJlc3VsdCA9IEluZmluaXR5CitQQVNTIHJlcXVlc3Qu
cmVzdWx0IGlzIHN0aWxsIFtvYmplY3QgSURCRGF0YWJhc2VdCit0cnlpbmcgdG8gc2V0IHJlYWRv
bmx5IHByb3BlcnR5IHJlcXVlc3QuZXJyb3JDb2RlCityZXF1ZXN0LmVycm9yQ29kZSA9IDY2Ngor
UEFTUyByZXF1ZXN0LmVycm9yQ29kZSBpcyBzdGlsbCAwCit0cnlpbmcgdG8gc2V0IHJlYWRvbmx5
IHByb3BlcnR5IHJlcXVlc3QuZXJyb3IKK3JlcXVlc3QuZXJyb3IgPSB7fQorUEFTUyByZXF1ZXN0
LmVycm9yIGlzIHN0aWxsIG51bGwKK3RyeWluZyB0byBzZXQgcmVhZG9ubHkgcHJvcGVydHkgcmVx
dWVzdC5zb3VyY2UKK3JlcXVlc3Quc291cmNlID0gdGhpcworUEFTUyByZXF1ZXN0LnNvdXJjZSBp
cyBzdGlsbCBudWxsCit0cnlpbmcgdG8gc2V0IHJlYWRvbmx5IHByb3BlcnR5IHJlcXVlc3QudHJh
bnNhY3Rpb24KK3JlcXVlc3QudHJhbnNhY3Rpb24gPSB0aGlzCitQQVNTIHJlcXVlc3QudHJhbnNh
Y3Rpb24gaXMgc3RpbGwgbnVsbAordHJ5aW5nIHRvIHNldCByZWFkb25seSBwcm9wZXJ0eSByZXF1
ZXN0LnJlYWR5U3RhdGUKK3JlcXVlc3QucmVhZHlTdGF0ZSA9IDY2NgorUEFTUyByZXF1ZXN0LnJl
YWR5U3RhdGUgaXMgc3RpbGwgZG9uZQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0Cit0cnlpbmcg
dG8gc2V0IHJlYWRvbmx5IHByb3BlcnR5IGRiLm5hbWUKK2RiLm5hbWUgPSAnYmFyJworUEFTUyBk
Yi5uYW1lIGlzIHN0aWxsIHJlYWRvbmx5Lmh0bWwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWJhc2ljcy5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1iYXNpY3MuanMKaW5kZXggYjcx
MTJjYTcyMTRiZWVmZGZkODk1YTliNmQ5N2I4NjAxNjU2ODgzMS4uMGRlOTY1MTAxNGVjOTkxZDA1
OWM0NDIyZTExYWI4Yzc0ZjhhMjBjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWJhc2ljcy5qcworKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUtYmFzaWNzLmpzCkBAIC01
LDM2ICs1LDEyIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRl
c3QgdGhlIGJhc2ljcyBvZiBJbmRleGVkREIncyBJREJPYmplY3RTdG9yZS4iKTsKIAotZnVuY3Rp
b24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVzdFNldFZlcnNpb25B
Ym9ydCk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZ0KQogewotICAgIHJlbW92ZVZlbmRv
clByZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdv
YmplY3RzdG9yZS1iYXNpY3MnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nl
c3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0K
LWZ1bmN0aW9uIG9wZW5TdWNjZXNzKGV2dCkKLXsKLSAgICBldmVudCA9IGV2dDsKLSAgICBkZWJ1
Zygib3BlblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLmRiID0gZXZhbEFuZExvZygiZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0Iik7CisgICAgcHJlYW1ibGUoZXZ0KTsKKyAgICBkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7CiAKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbign
bmV3IHZlcnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvblN1Y2Nl
c3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0K
LWZ1bmN0aW9uIHNldFZlcnNpb25TdWNjZXNzKGV2dCkKLXsKLSAgICBldmVudCA9IGV2dDsKLSAg
ICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFu
ZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxs
KCJ0cmFucyIpOwotICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsK
LQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KLSAgICBkZWJ1ZygiY3JlYXRlT2Jq
ZWN0U3RvcmUoKToiKTsKICAgICBzZWxmLnN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkiKTsKICAgICB2YXIgc3RvcmVOYW1l
cyA9IGV2YWxBbmRMb2coInN0b3JlTmFtZXMgPSBkYi5vYmplY3RTdG9yZU5hbWVzIik7CiAKQEAg
LTkxLDIyICs2NywzMSBAQCBmdW5jdGlvbiBjcmVhdGVJbmRleCgpCiAKICAgICBkZWJ1ZygiQXNr
IGZvciBhbiBpbmRleCB0aGF0IGRvZXNuJ3QgZXhpc3Q6Iik7CiAgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigic3RvcmUuaW5kZXgoJ2FzZGYnKSIsICJET01FeGNlcHRpb24uTk9UX0ZPVU5EX0VS
UiIsICInTm90Rm91bmRFcnJvciciKTsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gdGVzdFNldFZl
cnNpb25BYm9ydDsKIH0KIAogZnVuY3Rpb24gdGVzdFNldFZlcnNpb25BYm9ydCgpCiB7Ci0gICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coJ2RiLnNldFZlcnNpb24oInZlcnNpb24gZmFpbCIpJyk7Ci0g
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjcmVhdGVBbm90aGVySW5kZXg7Ci0gICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coJ2luZGV4ZWREQi5vcGVuKGRibmFtZSwgMiknKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9
IGNvbm5lY3Rpb24yQmxvY2tlZDsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRT
dWNjZXNzQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBjcmVhdGVBbm90
aGVySW5kZXg7CisgICAgLy8gRklYTUU6IGFkZERhdGEgaXMgb25seSBhYmxlIHRvIGNvbnRpbnVl
IHdpdGggdGhlIHRlc3QgYmVjYXVzZSBvZgorICAgIC8vIGh0dHA6Ly93a2IudWcvMTAyMjk4Lgor
ICAgIHJlcXVlc3Qub25lcnJvciA9IGFkZERhdGE7Cit9CisKK2Z1bmN0aW9uIGNvbm5lY3Rpb24y
QmxvY2tlZCgpCit7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOwogfQogCiBmdW5jdGlv
biBjcmVhdGVBbm90aGVySW5kZXgoZXZ0KQogewogICAgIGV2ZW50ID0gZXZ0OwotICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICJ2ZXJzaW9uIGZhaWwiKTsKKyAgICBkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIpOwog
Ci0gICAgdmFyIHNldFZlcnNpb25UcmFucyA9IGV2YWxBbmRMb2coInNldFZlcnNpb25UcmFucyA9
IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICB2YXIgc2V0VmVyc2lvblRyYW5zID0gZXZhbEFu
ZExvZygic2V0VmVyc2lvblRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CiAgICAg
c2hvdWxkQmVOb25OdWxsKCJzZXRWZXJzaW9uVHJhbnMiKTsKICAgICBzZXRWZXJzaW9uVHJhbnMu
b25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrOwogICAgIHNldFZlcnNpb25U
cmFucy5vbmFib3J0ID0gY2hlY2tNZXRhZGF0YTsKQEAgLTExOCw3ICsxMDMsNyBAQCBmdW5jdGlv
biBjcmVhdGVBbm90aGVySW5kZXgoZXZ0KQogCiBmdW5jdGlvbiBjaGVja01ldGFkYXRhKCkKIHsK
LSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAibmV3IHZlcnNpb24iKTsK
KyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIxIik7CiAgICAgc2hvdWxkQmUoInN0b3JlLnRy
YW5zYWN0aW9uIiwgInNldFZlcnNpb25UcmFucyIpOwogICAgIHNob3VsZEJlKCJzdG9yZS5pbmRl
eE5hbWVzIiwgIlsnaW5kZXhOYW1lJ10iKTsKICAgICBzaG91bGRCZSgic3RvcmUuaW5kZXhOYW1l
cy5sZW5ndGgiLCAiMSIpOwpAQCAtMTMwLDcgKzExNSw2IEBAIGZ1bmN0aW9uIGNoZWNrTWV0YWRh
dGEoKQogICAgIHNob3VsZEJlVW5kZWZpbmVkKCJzdG9yZS5pbmRleE5hbWVzWzEwMF0iKTsKICAg
ICBzaG91bGRCZU51bGwoInN0b3JlLmluZGV4TmFtZXMuaXRlbSgxKSIpOwogICAgIHNob3VsZEJl
TnVsbCgic3RvcmUuaW5kZXhOYW1lcy5pdGVtKDEwMCkiKTsKLSAgICBhZGREYXRhKCk7CiB9CiAK
IHZhciB0ZXN0RGF0ZSA9IG5ldyBEYXRlKCJBdWd1c3QgMjUsIDE5OTEgMjA6NTc6MDgiKTsKQEAg
LTI2Myw5ICsyNDcsMTIgQEAgZnVuY3Rpb24gdGVzdFByZUNvbmRpdGlvbnMoKQogewogICAgIGRl
YnVnKCIiKTsKICAgICBkZWJ1ZygidGVzdFByZUNvbmRpdGlvbnMoKToiKTsKLSAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbigncHJlY29uZGl0aW9uIHZlcnNpb24nKSIpOwor
ICAgIGRiLmNsb3NlKCk7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVu
KGRibmFtZSwgMykiKTsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgIHJlcXVlc3Qu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gdXBncmFkZU5lZWRlZChldnQpIHsKKyAgICAgICAg
cHJlYW1ibGUoZXZ0KTsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAgICAg
ICBzdG9yZVdpdGhJbkxpbmVLZXlzID0gZXZhbEFuZExvZygic3RvcmVXaXRoSW5MaW5lS2V5cyA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZVdpdGhJbkxpbmVLZXlzJywge2tleVBhdGg6ICdr
ZXknfSkiKTsKICAgICAgICAgc3RvcmVXaXRoT3V0T2ZMaW5lS2V5cyA9IGV2YWxBbmRMb2coInN0
b3JlV2l0aE91dE9mTGluZUtleXMgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVXaXRoT3V0
SU9mTGluZUtleXMnKSIpOwogICAgICAgICBzdG9yZVdpdGhJbmRleCA9IGV2YWxBbmRMb2coInN0
b3JlV2l0aEluZGV4ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlV2l0aEluZGV4JykiKTsK
QEAgLTMwOCw3ICsyOTUsMyBAQCBmdW5jdGlvbiB0ZXN0UHJlQ29uZGl0aW9ucygpCiAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwogICAgIH07CiB9Ci0KLXZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL29kZC1zdHJpbmdzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL29kZC1zdHJpbmdzLmpzCmluZGV4IDk3ODk4NTZhM2ExYjJlMzk1ZDgwYmM0NmFhNmJm
YjBlZjM1ODUzZDIuLjc0NTFiMzBlMThmODU2NDA4ZWZmYWI0MDIyM2U1YjIzNGEyMTdjOWQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vZGQtc3Ry
aW5ncy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2Rk
LXN0cmluZ3MuanMKQEAgLTE3LDI5ICsxNywzMiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAg
ICAgICAgICB7IGRlc2NyaXB0aW9uOiAnbGluZSBzZXBhcmF0b3InLCAgICAgbmFtZTogJ1x1MjAy
OCcgfQogICAgIF07CiAgICAgbmV4dFRvT3BlbiA9IDA7Ci0gICAgb3Blbk5leHREYXRhYmFzZSgp
OworICAgIHZhciBudW1EZWxldGVkID0gMDsKKyAgICBkZWJ1ZygiRGVsZXRpbmcgYWxsIHRoZSBk
YXRhYmFzZXMuLi4iKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3REYXRhLmxlbmd0aDsg
aSsrKQorICAgIHsKKyAgICAgICAgcmVxdWVzdCA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSh0
ZXN0RGF0YVtpXS5uYW1lKTsKKyAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVk
QmxvY2tlZENhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICgrK251bURlbGV0ZWQgPT0gdGVzdERhdGEubGVuZ3RoKQorICAgICAgICAg
ICAgICAgIG9wZW5OZXh0RGF0YWJhc2UoKTsKKyAgICAgICAgfTsKKyAgICB9CiB9CiAKIGZ1bmN0
aW9uIG9wZW5OZXh0RGF0YWJhc2UoKQogewogICAgIGRlYnVnKCJvcGVuaW5nIGEgZGF0YWJhc2Ug
bmFtZWQgIiArIHRlc3REYXRhW25leHRUb09wZW5dLmRlc2NyaXB0aW9uKTsKLSAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSki
KTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vz
cygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
LSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIp
OwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gYWRkQUtleTsKLSAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4odGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSwgMSkiKTsKKyAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmJs
b2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub251cGdyYWRl
bmVlZGVkID0gYWRkQUtleTsKIH0KIAogZnVuY3Rpb24gYWRkQUtleSgpCiB7Ci0gICAgZGVsZXRl
QWxsT2JqZWN0U3RvcmVzKGRiKTsKLQorICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKICAg
ICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUodGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSk7Iik7CiAgICAga2V5ID0gZXZhbEFuZExv
Zygia2V5ID0gdGVzdERhdGFbbmV4dFRvT3Blbl0ubmFtZSIpOwogICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKGtleSwga2V5KTsiKTsKQEAgLTYyLDIy
ICs2NSwxNSBAQCBmdW5jdGlvbiBjbG9zZURhdGFiYXNlKCkKIGZ1bmN0aW9uIHZlcmlmeU5leHRE
YXRhYmFzZSgpCiB7CiAgICAgZGVidWcoInJlb3BlbmluZyBhIGRhdGFiYXNlIG5hbWVkICIgKyB0
ZXN0RGF0YVtuZXh0VG9PcGVuXS5kZXNjcmlwdGlvbik7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coImluZGV4ZWREQi5vcGVuKHRlc3REYXRhW25leHRUb09wZW5dLm5hbWUpIik7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBvcGVuU3VjY2VzczI7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzMigpCi17Ci0g
ICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbih0ZXN0RGF0YVtuZXh0VG9PcGVuXS5u
YW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxs
YmFjazsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGdldEFLZXk7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVk
ZWQgPSBnZXRBS2V5OwogfQogCiBmdW5jdGlvbiBnZXRBS2V5KCkKIHsKLSAgICB0cmFucyA9IGV2
YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHRyYW5zID0gZXZh
bEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24iKTsKICAgICBvYmplY3RT
dG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUodGVzdERh
dGFbbmV4dFRvT3Blbl0ubmFtZSk7Iik7CiAgICAga2V5ID0gZXZhbEFuZExvZygia2V5ID0gdGVz
dERhdGFbbmV4dFRvT3Blbl0ubmFtZSIpOwogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpOyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3JlYWRvbmx5LmpzIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3JlYWRvbmx5LmpzCmluZGV4IDk4MmM0ZTg2ZTJl
YmUzOGJkMTdjOWY0N2Q1NWQ4NzY1MjVkMDExOTguLmMxYzJlYTExODVjN2U5YTE4MzQyZjllYWUx
Y2RmZTFjNmNhOTk5ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9yZWFkb25seS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvcmVhZG9ubHkuanMKQEAgLTE4LDM2ICsxOCwxMSBAQCBmdW5jdGlvbiBzZXRS
ZWFkb25seVByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSkKICAgICB9CiB9CiAKLWZ1bmN0aW9uIHRl
c3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIG9wZW5TdWNjZXNzKTsKK2Z1bmN0
aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQot
ICAgIG5hbWUgPSAiZm9vIjsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9w
ZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBv
cGVuU3VjY2VzcygpCi17Ci0gICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgicmVxdWVzdC5yZXN1bHQi
LCAiSW5maW5pdHkiKTsKLSAgICBzZXRSZWFkb25seVByb3BlcnR5KCJyZXF1ZXN0LmVycm9yQ29k
ZSIsICI2NjYiKTsKLSAgICBzZXRSZWFkb25seVByb3BlcnR5KCJyZXF1ZXN0LmVycm9yIiwgInt9
Iik7Ci0gICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgicmVxdWVzdC5zb3VyY2UiLCAidGhpcyIpOwot
ICAgIHNldFJlYWRvbmx5UHJvcGVydHkoInJlcXVlc3QudHJhbnNhY3Rpb24iLCAidGhpcyIpOwot
ICAgIHNldFJlYWRvbmx5UHJvcGVydHkoInJlcXVlc3QucmVhZHlTdGF0ZSIsICI2NjYiKTsKLQot
ICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2V0
UmVhZG9ubHlQcm9wZXJ0eSgiZGIubmFtZSIsICInYmFyJyIpOwotCi0gICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUFuZFBv
cHVsYXRlT2JqZWN0U3RvcmUoKQotewotICAgIHRyYW5zYWN0aW9uID0gZXZhbEFuZExvZygidHJh
bnNhY3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0OyIpOworICAgIGRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsKKyAgICB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uOyIpOwogICAgIHNldFJlYWRvbmx5UHJvcGVydHkoInRyYW5z
YWN0aW9uLm1vZGUiLCAiNjY2Iik7CiAgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgidHJhbnNhY3Rp
b24uZGIiLCAidGhpcyIpOwogCkBAIC05OSw4ICs3NCwyMCBAQCBmdW5jdGlvbiBjaGVja0N1cnNv
cigpCiAgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgia2V5UmFuZ2UudXBwZXIiLCAiSW5maW5pdHki
KTsKICAgICBzZXRSZWFkb25seVByb3BlcnR5KCJrZXlSYW5nZS5sb3dlck9wZW4iLCAidHJ1ZSIp
OwogICAgIHNldFJlYWRvbmx5UHJvcGVydHkoImtleVJhbmdlLnVwcGVyT3BlbiIsICJ0cnVlIik7
Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKCkKK3sKKyAgICByZXF1ZXN0ID0gZXZlbnQudGFy
Z2V0OworICAgIHNldFJlYWRvbmx5UHJvcGVydHkoInJlcXVlc3QucmVzdWx0IiwgIkluZmluaXR5
Iik7CisgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgicmVxdWVzdC5lcnJvckNvZGUiLCAiNjY2Iik7
CisgICAgc2V0UmVhZG9ubHlQcm9wZXJ0eSgicmVxdWVzdC5lcnJvciIsICJ7fSIpOworICAgIHNl
dFJlYWRvbmx5UHJvcGVydHkoInJlcXVlc3Quc291cmNlIiwgInRoaXMiKTsKKyAgICBzZXRSZWFk
b25seVByb3BlcnR5KCJyZXF1ZXN0LnRyYW5zYWN0aW9uIiwgInRoaXMiKTsKKyAgICBzZXRSZWFk
b25seVByb3BlcnR5KCJyZXF1ZXN0LnJlYWR5U3RhdGUiLCAiNjY2Iik7CisKKyAgICBkYiA9IGV2
YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIHNldFJlYWRvbmx5UHJv
cGVydHkoImRiLm5hbWUiLCAiJ2JhciciKTsKIAogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10
ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKaW5kZXggMDBjNzEzYWI2NjllYTY5
MGE2YzkyZmUzMWRmYWFmMjZkMzhjZDA1Ny4uMWRmY2FjOTFkMjJmYzBhNThiMDhjODNiYmExNjI4
YjFlZjVkYWRhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL3NoYXJlZC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvc2hhcmVkLmpzCkBAIC0xODksMTUgKzE4OSwxNyBAQCBmdW5jdGlvbiBpbmRleGVkREJU
ZXN0KHVwZ3JhZGVDYWxsYmFjaywgb3B0aW9uYWxPcGVuQ2FsbGJhY2ssIG9wdGlvbmFsUGFyYW1l
dGVycwogICAgIGRlbGV0ZVJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OwogICAgIGRlbGV0ZVJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFj
azsKICAgICBkZWxldGVSZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICB2
YXIgb3BlblJlcXVlc3Q7CisgICAgICAgIHNlbGYub3BlblJlcXVlc3QgPSBudWxsOwogICAgICAg
ICBpZiAob3B0aW9uYWxQYXJhbWV0ZXJzICYmICd2ZXJzaW9uJyBpbiBvcHRpb25hbFBhcmFtZXRl
cnMpCiAgICAgICAgICAgICBvcGVuUmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVu
KGRibmFtZSwgIiArIG9wdGlvbmFsUGFyYW1ldGVyc1sndmVyc2lvbiddICsgIikiKTsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgb3BlblJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
b3BlbihkYm5hbWUpIik7CisgICAgICAgIHNob3VsZEJlKCJvcGVuUmVxdWVzdC5yZWFkeVN0YXRl
IiwgIidwZW5kaW5nJyIsIHRydWUvKnF1aWV0Ki8pOwogICAgICAgICBvcGVuUmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAgICAgICAgIG9wZW5SZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IHVwZ3JhZGVDYWxsYmFjazsKICAgICAgICAgb3BlblJlcXVlc3Qub25ibG9j
a2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKICAgICAgICAgaWYgKG9wdGlvbmFsT3Bl
bkNhbGxiYWNrKQogICAgICAgICAgICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gb3B0aW9uYWxP
cGVuQ2FsbGJhY2s7CisgICAgICAgIGRlbGV0ZSBzZWxmLm9wZW5SZXF1ZXN0OwogICAgIH07CiB9
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>