<?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>171362</bug_id>
          
          <creation_ts>2017-04-26 19:18:54 -0700</creation_ts>
          <short_desc>Enhance shouldBe()/shouldNotBe() to accept anonymous function arguments</short_desc>
          <delta_ts>2017-04-29 01:48:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159232</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>171424</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>dino</cc>
    
    <cc>fpizlo</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>lforschler</cc>
    
    <cc>saam</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1301893</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-04-26 19:18:54 -0700</bug_when>
    <thetext>We can enhance shouldBe()/shouldNotBe() from js-test-pre.js and js-test.js to take anonymous function arguments (in addition to string arguments) to make it easier to capture local variables inside expressions.

See also Bug 159232 for a similar change to shouldThrow()/shouldNotThrow().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302180</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-04-27 11:08:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/31867686&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302195</commentid>
    <comment_count>2</comment_count>
      <attachid>308416</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-04-27 11:31:11 -0700</bug_when>
    <thetext>Created attachment 308416
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302243</commentid>
    <comment_count>3</comment_count>
      <attachid>308432</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-04-27 12:55:44 -0700</bug_when>
    <thetext>Created attachment 308432
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302269</commentid>
    <comment_count>4</comment_count>
      <attachid>308432</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-27 13:52:39 -0700</bug_when>
    <thetext>Comment on attachment 308432
Patch v2

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

r=me

These files seem to vary between 2 and 4 spaces indentation. You can fix if you want, or leave mixed but eliminate the 3s =)

&gt; LayoutTests/ChangeLog:43
&gt; +        to shoudlBe() into an anonymous function.

Typo: &quot;shoudlBe&quot;

&gt; LayoutTests/http/tests/resources/js-test-pre.js:219
&gt; +  try {
&gt; +     _av = eval(_a);
&gt; +  } catch (e) {

Style: indent is 3 instead of 2.

How did this file come to have 2 space indent anyways. Weird.

&gt; LayoutTests/http/tests/resources/js-test-pre.js:647
&gt; +     return _av.then(function(result) {

Style: whitespace is slightly off</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302297</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-04-27 14:30:09 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #4)
&gt; Comment on attachment 308432 [details]
&gt; Patch v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=308432&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; These files seem to vary between 2 and 4 spaces indentation. You can fix if
&gt; you want, or leave mixed but eliminate the 3s =)
&gt; 
&gt; &gt; LayoutTests/ChangeLog:43
&gt; &gt; +        to shoudlBe() into an anonymous function.
&gt; 
&gt; Typo: &quot;shoudlBe&quot;
&gt; 
&gt; &gt; LayoutTests/http/tests/resources/js-test-pre.js:219
&gt; &gt; +  try {
&gt; &gt; +     _av = eval(_a);
&gt; &gt; +  } catch (e) {
&gt; 
&gt; Style: indent is 3 instead of 2.
&gt; 
&gt; How did this file come to have 2 space indent anyways. Weird.
&gt; 
&gt; &gt; LayoutTests/http/tests/resources/js-test-pre.js:647
&gt; &gt; +     return _av.then(function(result) {
&gt; 
&gt; Style: whitespace is slightly off

Thanks!  Will fix whitespace issues in a separate commit.  (I want to test the new checker while making these changes as well.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302298</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-04-27 14:30:26 -0700</bug_when>
    <thetext>Committed r215894: &lt;http://trac.webkit.org/changeset/215894&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302988</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-04-29 01:48:16 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #5)
&gt; (In reply to Joseph Pecoraro from comment #4)
&gt; &gt; Comment on attachment 308432 [details]
&gt; &gt; Patch v2
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=308432&amp;action=review
&gt; &gt; 
&gt; &gt; r=me
&gt; &gt; 
&gt; &gt; These files seem to vary between 2 and 4 spaces indentation. You can fix if
&gt; &gt; you want, or leave mixed but eliminate the 3s =)
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/ChangeLog:43
&gt; &gt; &gt; +        to shoudlBe() into an anonymous function.
&gt; &gt; 
&gt; &gt; Typo: &quot;shoudlBe&quot;
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/http/tests/resources/js-test-pre.js:219
&gt; &gt; &gt; +  try {
&gt; &gt; &gt; +     _av = eval(_a);
&gt; &gt; &gt; +  } catch (e) {
&gt; &gt; 
&gt; &gt; Style: indent is 3 instead of 2.
&gt; &gt; 
&gt; &gt; How did this file come to have 2 space indent anyways. Weird.
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/http/tests/resources/js-test-pre.js:647
&gt; &gt; &gt; +     return _av.then(function(result) {
&gt; &gt; 
&gt; &gt; Style: whitespace is slightly off
&gt; 
&gt; Thanks!  Will fix whitespace issues in a separate commit.  (I want to test
&gt; the new checker while making these changes as well.)

Bug 171424: check-webkit-style should keep JavaScript test functions in sync</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308416</attachid>
            <date>2017-04-27 11:31:11 -0700</date>
            <delta_ts>2017-04-27 12:54:27 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-171362-20170427113110.patch</filename>
            <type>text/plain</type>
            <size>27039</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NzU2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWVkY2NjOGM2NDgzNTI3MzI2YTNl
MmI1OTRlODU0YjU5MTM5MjljZi4uNWU2ZjI0OGYzZWUwYjJlNWU2NjUwMTg4NzA2OGNkOGE5ZWMw
ZDg1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDE3LTA0LTI3ICBEYXZpZCBLaWx6ZXIgIDxk
ZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgRW5oYW5jZSBzaG91bGRCZSgpL3Nob3VsZE5v
dEJlKCkgdG8gYWNjZXB0IGFub255bW91cyBmdW5jdGlvbiBhcmd1bWVudHMKKyAgICAgICAgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzE3MTM2Mj4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzAwMDAw
MDAwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgY2hhbmdlIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHBhc3MgZWl0aGVyIHRoZSBmaXJzdCBvciBz
ZWNvbmQKKyAgICAgICAgYXJndW1lbnQgKG9yIGJvdGgpIGFzIGFub255bW91cyBmdW5jdGlvbnMg
aW50byBzaG91bGRCZSgpIGFuZAorICAgICAgICBzaG91bGROb3RCZSgpIHRvIG1ha2UgaXQgZWFz
eSB0byBjYXB0dXJlIGxvY2FsIHZhcmlhYmxlcyB3aGVuCisgICAgICAgIHdyaXRpbmcgdGVzdHMu
ICBUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIGNoYW5nZSBpbiByMjAyNjA5IGZvciBCdWcKKyAgICAg
ICAgMTU5MjMyIGZvciBzaG91bGRUaHJvdygpIGFuZCBzaG91bGROb3RUaHJvdygpLgorCisgICAg
ICAgIE5vdGUgdGhhdCBzaG91bGRCZSgpL3Nob3VsZE5vdEJlKCkgZnJvbSB0aGUgZm9sbG93aW5n
IGZpbGVzIHdlcmUKKyAgICAgICAgTk9UIHVwZGF0ZWQgc2luY2UgdGhleSB3ZXJlIGltcG9ydGVk
IGZyb20gb3RoZXIgcHJvamVjdHMgYW5kIGRpZAorICAgICAgICBzaGFyZSB0aGUgZnVsbCBXZWJL
aXQgaGlzdG9yeSBvZiByZXNvdXJjZXMvanMtdGVzdC1wcmUuanM6CisKKyAgICAgICAgICAgIGh0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzCisgICAgICAgICAgICBqcy9tb3ppbGxhL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcworICAgICAgICAgICAgd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCisgICAgICAgICAgICB3ZWJnbC8xLjAuMy9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKKworICAgICAg
ICBIb3dldmVyLCB0aGVzZSBmaWxlcyBXRVJFIGJyb3VnaHQgdXAtdG8tZGF0ZSB3aXRoIHRoZSBh
YmlsaXR5IHRvCisgICAgICAgIHBhc3MgYW5vbnltb3VzIGZ1bmN0aW9ucyBpbnRvIHNob3VsZEJl
KCkvc2hvdWxkTm90QmUoKSBmb3IgdGhpcworICAgICAgICBidWcsIGFuZCBzaG91bGRUaHJvdygp
L3Nob3VsZE5vdFRocm93KCkgd2hpY2ggc2hvdWxkIGhhdmUKKyAgICAgICAgb3JpZ2luYWxseSBi
ZWVuIGZpeGVkIHdpdGggQnVnIDE1OTIzMjoKKworICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMKKyAgICAgICAgICAgIHJlc291cmNlcy9zdGFuZGFsb25lLXBy
ZS5qcworCisgICAgICAgICogY3NzMy9zY3JvbGwtc25hcC9yZXNvdXJjZXMvaWZyYW1lLWNvbnRl
bnQuaHRtbDogRHJpdmUtYnkgZml4CisgICAgICAgIHRvIGRlYnVnIG1lc3NhZ2UgZm9yIGNvcHkt
cGFzdGUgZXJyb3IuICBGb3VuZCBieSBzZWFyY2hpbmcKKyAgICAgICAgTGF5b3V0VGVzdHMgZGly
ZWN0b3J5IGZvciAiZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIi4KKworICAgICAgICAqIGZhc3Qv
Y2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMtZXhwZWN0ZWQudHh0OiBVcGRhdGUgdGVzdAor
ICAgICAgICByZXN1bHRzLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQt
dGVzdHMuaHRtbDogRml4IHdhcm5pbmcgYnkgbWFraW5nCisgICAgICAgIHNlY29uZCBhcmd1bWVu
dCB0byBzaG91bGRCZSgpIGEgc3RyaW5nLgorCisgICAgICAgICogZmFzdC9jc3Mvc2NyaXB0LXRl
c3RzL2ltYWdlLXNldC1wYXJzaW5nLmpzOgorICAgICAgICAodGVzdEltYWdlU2V0UnVsZSk6IFJl
bW92ZSBjb21tZW50IGJ5IGNoYW5naW5nIHNlY29uZCBhcmd1bWVudAorICAgICAgICB0byBzaG91
ZGxCZSgpIGludG8gYW4gYW5vbnltb3VzIGZ1bmN0aW9uLgorCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanM6CisgICAgICAgIChldmFsQW5kTG9nKToKKyAgICAg
ICAgKGV2YWxBbmRMb2dSZXN1bHQpOgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoc2hv
dWxkTm90QmUpOgorICAgICAgICAoc2hvdWxkRXZhbHVhdGVUbyk6CisgICAgICAgIC0gTWFkZSBh
IGZ1bGwgY29weSBvZiByZXNvdXJjZXMvanMtdGVzdC1wcmUuanMgdG8gYnJpbmcgdGhpcyB1cAor
ICAgICAgICAgIHRvIHNwZWVkLiAgTmVlZHMgYSBjaGVja2VyIHdyaXR0ZW4gZm9yIGl0IHRvIGtl
ZXAgdGhlbSBpbiBzeW5jLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9ibG9jay1kb2VzLW5vdC1sZWFrLWxvY2F0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmxvY2stZG9lcy1ub3QtbGVhay1yZWZlcnJl
ci1leHBlY3RlZC50eHQ6CisgICAgICAgIC0gVXBkYXRlIGxpbmUgbnVtYmVycyBhZnRlciB1cGRh
dGluZyBodHRwL3Rlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcy4KKworICAgICAgICAqIGpz
L2Z1bmN0aW9uLWRlY2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgLSBVcGRhdGUgcmVzdWx0cyBhZnRlciBmaXhpbmcgd2FybmluZ3MuCisgICAgICAg
ICoganMvc2NyaXB0LXRlc3RzL2Z1bmN0aW9uLWRlY2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVt
ZW50LmpzOgorICAgICAgICAtIEZpeCB3YXJuaW5ncyBieSBwYXNzaW5nIGluIHN0cmluZ3MgdG8g
c2hvdWxkQmUoKS4KKworICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9zdGFjay11bndpbmRpbmcu
anM6CisgICAgICAgIC0gVXBkYXRlIHJlc3VsdHMgYWZ0ZXIgZml4aW5nIHdhcm5pbmdzLgorICAg
ICAgICAqIGpzL3N0YWNrLXVud2luZGluZy1leHBlY3RlZC50eHQ6CisgICAgICAgIC0gRml4IHdh
cm5pbmdzIGJ5IHBhc3NpbmcgaW4gc3RyaW5ncyB0byBzaG91bGRCZSgpLgorCisgICAgICAgICog
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzOgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAo
c2hvdWxkTm90QmUpOgorICAgICAgICAqIHJlc291cmNlcy9qcy10ZXN0LmpzOgorICAgICAgICAo
c2hvdWxkQmUpOgorICAgICAgICAoc2hvdWxkTm90QmUpOgorICAgICAgICAtIFVwZGF0ZSBzaG91
bGRCZSgpL3Nob3VsZE5vdEJlKCkgdG8gYWNjZXB0IGFub255bW91cyBmdW5jdGlvbgorICAgICAg
ICAgIGFyZ3VtZW50cy4KKworICAgICAgICAqIHJlc291cmNlcy9zdGFuZGFsb25lLXByZS5qczoK
KyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3VsZE5vdEJlKToKKyAgICAgICAgKHNo
b3VsZE5vdFRocm93KToKKyAgICAgICAgKHNob3VsZFRocm93KToKKyAgICAgICAgLSBVcGRhdGUg
c2hvdWxkQmUoKS9zaG91bGROb3RCZSgpIHRvIGFjY2VwdCBhbm9ueW1vdXMgZnVuY3Rpb24KKyAg
ICAgICAgICBhcmd1bWVudHMuCisgICAgICAgIC0gQWxzbyBmaXggc2hvdWxkVGhyb3coKS9zaG91
bGROb3RUaHJvdygpIHRvIGFjY2VwdCBhbm9ueW1vdXMKKyAgICAgICAgICBmdW5jdGlvbiBhcmd1
bWVudHMgKHdoaWNoIHdlcmUgbWlzc2VkIGluIHIyMDI2MDkgZm9yIEJ1ZworICAgICAgICAgIDE1
OTIzMikuCisKIDIwMTctMDQtMjUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBTdXBwbGVtZW50YXJ5IE11bHRpbGluZ3VhbCBQbGFuZSBDb21wbGV4
IFNjcmlwdHMgUmVuZGVyZWQgSW5jb3JyZWN0bHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvc2Nyb2xsLXNuYXAvcmVzb3VyY2VzL2lmcmFtZS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9jc3MzL3Njcm9sbC1zbmFwL3Jlc291cmNlcy9pZnJhbWUtY29udGVudC5odG1sCmluZGV4IGMy
Njk4ZGIwMTFhZGNkOTI2ZGNkOGVlODY0MmRlZDkyZDAzODgzZmMuLjA4YWM0ZmIyMGE1MzJhNDRk
Y2Q4NGRmNzViM2RmZTE0ZjI3NjMxYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMvc2Ny
b2xsLXNuYXAvcmVzb3VyY2VzL2lmcmFtZS1jb250ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
Y3NzMy9zY3JvbGwtc25hcC9yZXNvdXJjZXMvaWZyYW1lLWNvbnRlbnQuaHRtbApAQCAtNTMsNyAr
NTMsNyBAQAogICAgICAgICBmdW5jdGlvbiBzaG91bGRNYXRjaChfYSwgX2IsIHJlc3VsdCkKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKHR5cGVvZiBfYSAhPT0gInN0cmluZyIgfHwgdHlwZW9m
IF9iICE9PSAic3RyaW5nIikKLSAgICAgICAgICAgICAgICB0b3AuZGVidWcoIldBUk46IHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAgICAgICAg
ICAgICAgIHRvcC5kZWJ1ZygiV0FSTjogc2hvdWxkTWF0Y2goKSBleHBlY3RzIHN0cmluZyBhcmd1
bWVudHMiKTsKIAogICAgICAgICAgICAgdmFyIF9hdjsKICAgICAgICAgICAgIHRyeSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS11bml0LXRlc3RzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVz
dHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0MWRiYjEyMDRkZDAxMDc3NTQ5NGQ0NjlhNWQzYTQ0ZGQy
OGNkNDYuLjNmYzQxYzE1NTM4NTk5MmRkYTI0NjAzZmNiMjhmZjdhNWRkNGM3NzcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVz
dHMtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
UEFTUyB0ZXN0U2xpY2UKIHRlc3QgaW5oZXJpdGFuY2UgaGllcmFyY2h5IG9mIHR5cGVkIGFycmF5
IHZpZXdzCiBQQVNTIEFycmF5QnVmZmVyVmlldyBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcwot
V0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMKIFBBU1MgbmV3IFVpbnQ4
Q2xhbXBlZEFycmF5KDEpIGluc3RhbmNlb2YgVWludDhBcnJheSBpcyBmYWxzZQogUEFTUyB0ZXN0
IEZsb2F0MzJBcnJheSBTZXRBbmRHZXRQb3MxMFRvTmVnMTAKIFBBU1MgdGVzdCBGbG9hdDMyQXJy
YXkgQ29uc3RydWN0V2l0aEFycmF5T2ZTaWduZWRWYWx1ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbAppbmRleCBmODg0Njc2YjNm
Mzk2MzIxZGQ0ODM4NjBhZWVjY2RhZjQzMjBmZDBkLi5lZGU3NTAwNTU2NmY5YzM4NzhlYWQ5Zjdm
ODc0YjgxYzU3YmJlZmNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9hcnJheS11bml0LXRlc3RzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvYXJyYXktdW5pdC10ZXN0cy5odG1sCkBAIC0xMjMsNyArMTIzLDcgQEAgZnVuY3Rpb24gdGVz
dEluaGVyaXRhbmNlSGllcmFyY2h5KCkgewogICAgIHRlc3RQYXNzZWQoJ0FycmF5QnVmZmVyVmll
dyBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcycpOwogICB9CiAKLSAgc2hvdWxkQmUoJ25ldyBV
aW50OENsYW1wZWRBcnJheSgxKSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXknLCBmYWxzZSk7CisgIHNo
b3VsZEJlKCduZXcgVWludDhDbGFtcGVkQXJyYXkoMSkgaW5zdGFuY2VvZiBVaW50OEFycmF5Jywg
J2ZhbHNlJyk7CiB9CiAKIC8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zY3Jp
cHQtdGVzdHMvaW1hZ2Utc2V0LXBhcnNpbmcuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zY3Jp
cHQtdGVzdHMvaW1hZ2Utc2V0LXBhcnNpbmcuanMKaW5kZXggZjcyMDI5ODZhYWM4Y2M4ZDRkYmIz
NWU3NDEyN2NjMGZkYThkZjM3MC4uYzhjMTkxMDIyZTYzMjBkODdiMDNlNGMzOWVlMDY5OGM2YjI5
N2E5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2NyaXB0LXRlc3RzL2ltYWdl
LXNldC1wYXJzaW5nLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3NjcmlwdC10ZXN0cy9p
bWFnZS1zZXQtcGFyc2luZy5qcwpAQCAtNDMsNyArNDMsNyBAQCBmdW5jdGlvbiB0ZXN0SW1hZ2VT
ZXRSdWxlKGRlc2NyaXB0aW9uLCBwcm9wZXJ0eSwgcnVsZSwgZXhwZWN0ZWRMZW5ndGgsIGV4cGVj
dGVkVAogICAgICAgICB9CiAgICAgfQogCi0gICAgc2hvdWxkQmUoImltYWdlU2V0UnVsZS5sZW5n
dGgiLCAiIiArIGV4cGVjdGVkTGVuZ3RoKTsgLy8gc2hvdWxkQmUgZXhwZWN0cyBzdHJpbmcgYXJn
dW1lbnRzCisgICAgc2hvdWxkQmUoImltYWdlU2V0UnVsZS5sZW5ndGgiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIGV4cGVjdGVkTGVuZ3RoOyB9KTsKIAogICAgIGlmIChpbWFnZVNldFJ1bGUpIHsKICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZExlbmd0aDsgaSsrKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCmluZGV4IDkxOWU4
MTY5OGMxODM3MDJiNWU5ZjA5OTNjZmQ3ZmU5OTVmMGM4MjQuLjYyODAxYzU1ODc2Mzg4OTVjMjNm
OGJkZDYxM2E5N2E3NmIyMTQ4ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzCkBAIC0xOTMsNyArMTkzLDcgQEAgZnVuY3Rpb24gc3RyaW5n
aWZ5KHYpCiBmdW5jdGlvbiBldmFsQW5kTG9nKF9hLCBfcXVpZXQpCiB7CiAgIGlmICh0eXBlb2Yg
X2EgIT0gInN0cmluZyIpCi0gICAgZGVidWcoIldBUk46IHRyeUFuZExvZygpIGV4cGVjdHMgYSBz
dHJpbmcgYXJndW1lbnQiKTsKKyAgICBkZWJ1ZygiV0FSTjogZXZhbEFuZExvZygpIGV4cGVjdHMg
YSBzdHJpbmcgYXJndW1lbnQiKTsKIAogICAvLyBMb2cgZmlyc3QgaW4gY2FzZSB0aGluZ3MgZ28g
aG9ycmlibHkgd3Jvbmcgb3IgdGhpcyBjYXVzZXMgYSBzeW5jIGV2ZW50LgogICBpZiAoIV9xdWll
dCkKQEAgLTIwOCwyNCArMjA4LDM5IEBAIGZ1bmN0aW9uIGV2YWxBbmRMb2coX2EsIF9xdWlldCkK
ICAgcmV0dXJuIF9hdjsKIH0KIAorZnVuY3Rpb24gZXZhbEFuZExvZ1Jlc3VsdChfYSkKK3sKKyAg
aWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIikKKyAgICBkZWJ1ZygiV0FSTjogZXZhbEFuZExvZ1Jl
c3VsdCgpIGV4cGVjdHMgYSBzdHJpbmcgYXJndW1lbnQiKTsKKworICB2YXIgX2F2OworICB0cnkg
eworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZSk7CisgIH0KKworICBkZWJ1ZygnPHNwYW4+JyAr
IF9hICsgIiBpcyAiICsgZXNjYXBlSFRNTChfYXYpICsgJzwvc3Bhbj4nKTsKK30KKwogZnVuY3Rp
b24gc2hvdWxkQmUoX2EsIF9iLCBxdWlldCkKIHsKLSAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5n
IiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCi0gICAgZGVidWcoIldBUk46IHNob3VsZEJlKCkg
ZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgIGlmICgodHlwZW9mIF9hICE9ICJmdW5jdGlv
biIgJiYgdHlwZW9mIF9hICE9ICJzdHJpbmciKSB8fCAodHlwZW9mIF9iICE9ICJmdW5jdGlvbiIg
JiYgdHlwZW9mIF9iICE9ICJzdHJpbmciKSkKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmUoKSBl
eHBlY3RzIGZ1bmN0aW9uIG9yIHN0cmluZyBhcmd1bWVudHMiKTsKICAgdmFyIGV4Y2VwdGlvbjsK
ICAgdmFyIF9hdjsKICAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgX2F2ID0gKHR5
cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2YWwoX2EpKTsKICAgfSBjYXRjaCAoZSkg
ewotICAgICBleGNlcHRpb24gPSBlOworICAgIGV4Y2VwdGlvbiA9IGU7CiAgIH0KLSAgdmFyIF9i
diA9IGV2YWwoX2IpOworICB2YXIgX2J2ID0gKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2Io
KSA6IGV2YWwoX2IpKTsKIAogICBpZiAoZXhjZXB0aW9uKQogICAgIHRlc3RGYWlsZWQoX2EgKyAi
IHNob3VsZCBiZSAiICsgc3RyaW5naWZ5KF9idikgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4
Y2VwdGlvbik7CiAgIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpIHsKICAgICBp
ZiAoIXF1aWV0KSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzICIgKyBfYik7CisgICAg
ICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsgKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2J2
IDogX2IpKTsKICAgICB9CiAgIH0gZWxzZSBpZiAodHlwZW9mKF9hdikgPT0gdHlwZW9mKF9idikp
CiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBzdHJpbmdpZnkoX2J2KSArICIu
IFdhcyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOwpAQCAtMzc1LDIyICszOTAsMjIgQEAgZnVu
Y3Rpb24gc2hvdWxkQmVDbG9zZVRvKF90b19ldmFsLCBfdGFyZ2V0LCBfdG9sZXJhbmNlLCBxdWll
dCkKIAogZnVuY3Rpb24gc2hvdWxkTm90QmUoX2EsIF9iLCBxdWlldCkKIHsKLSAgaWYgKHR5cGVv
ZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCi0gICAgZGVidWcoIldB
Uk46IHNob3VsZE5vdEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgIGlmICgodHlw
ZW9mIF9hICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9hICE9ICJzdHJpbmciKSB8fCAodHlwZW9m
IF9iICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9iICE9ICJzdHJpbmciKSkKKyAgICBkZWJ1Zygi
V0FSTjogc2hvdWxkTm90QmUoKSBleHBlY3RzIGZ1bmN0aW9uIG9yIHN0cmluZyBhcmd1bWVudHMi
KTsKICAgdmFyIGV4Y2VwdGlvbjsKICAgdmFyIF9hdjsKICAgdHJ5IHsKLSAgICAgX2F2ID0gZXZh
bChfYSk7CisgICAgX2F2ID0gKHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2YWwo
X2EpKTsKICAgfSBjYXRjaCAoZSkgewotICAgICBleGNlcHRpb24gPSBlOworICAgIGV4Y2VwdGlv
biA9IGU7CiAgIH0KLSAgdmFyIF9idiA9IGV2YWwoX2IpOworICB2YXIgX2J2ID0gKHR5cGVvZiBf
YiA9PSAiZnVuY3Rpb24iID8gX2IoKSA6IGV2YWwoX2IpKTsKIAogICBpZiAoZXhjZXB0aW9uKQog
ICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9idiArICIuIFRocmV3IGV4
Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKICAgZWxzZSBpZiAoIWlzUmVzdWx0Q29ycmVjdChfYXYs
IF9idikpIHsKICAgICBpZiAoIXF1aWV0KSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlz
IG5vdCAiICsgX2IpOworICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgbm90ICIgKyAodHlwZW9m
IF9iID09ICJmdW5jdGlvbiIgPyBfYnYgOiBfYikpOwogICAgIH0KICAgfSBlbHNlCiAgICAgdGVz
dEZhaWxlZChfYSArICIgc2hvdWxkIG5vdCBiZSAiICsgX2J2ICsgIi4iKTsKQEAgLTQ0NSw3ICs0
NjAsOCBAQCBmdW5jdGlvbiBzaG91bGROb3RCZUVxdWFsVG9TdHJpbmcoYSwgYikKIH0KIGZ1bmN0
aW9uIHNob3VsZEJlRW1wdHlTdHJpbmcoX2EpIHsgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKF9hLCAi
Iik7IH0KIAotZnVuY3Rpb24gc2hvdWxkRXZhbHVhdGVUbyhhY3R1YWwsIGV4cGVjdGVkKSB7Citm
dW5jdGlvbiBzaG91bGRFdmFsdWF0ZVRvKGFjdHVhbCwgZXhwZWN0ZWQpCit7CiAgIC8vIEEgZ2Vu
ZXJhbC1wdXJwb3NlIGNvbXBhcmF0b3IuICAnYWN0dWFsJyBzaG91bGQgYmUgYSBzdHJpbmcgdG8g
YmUKICAgLy8gZXZhbHVhdGVkLCBhcyBmb3Igc2hvdWxkQmUoKS4gJ2V4cGVjdGVkJyBtYXkgYmUg
YW55IHR5cGUgYW5kIHdpbGwgYmUKICAgLy8gdXNlZCB3aXRob3V0IGJlaW5nIGV2YWwnZWQuCkBA
IC02MTcsNiArNjMzLDI0IEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KF9hLCBfZSwgX21lc3NhZ2Up
CiAgICAgICAgIHRlc3RGYWlsZWQoKF9tZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkgKyAiIHNob3Vs
ZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDog
X2V2KSArICIuIFdhcyAiICsgX2F2ICsgIi4iKTsKIH0KIAorZnVuY3Rpb24gc2hvdWxkUmVqZWN0
KF9hLCBfbWVzc2FnZSkKK3sKKyAgICB2YXIgX2V4Y2VwdGlvbjsKKyAgICB2YXIgX2F2OworICAg
IHRyeSB7CisgICAgICAgIF9hdiA9IHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2
YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgoX21lc3NhZ2Ug
PyBfbWVzc2FnZSA6IF9hKSArICIgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24uIFRocmV3IGV4
Y2VwdGlvbiAiICsgZSArICIuIik7CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsK
KyAgICB9CisKKyAgICAgcmV0dXJuIF9hdi50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAg
ICB0ZXN0RmFpbGVkKChfbWVzc2FnZSA/IF9tZXNzYWdlIDogX2EpICsgIiBzaG91bGQgcmVqZWN0
IHByb21pc2UuIFJlc29sdmVkIHdpdGggIiArIHJlc3VsdCArICIuIik7CisgICAgfSwgZnVuY3Rp
b24oZXJyb3IpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgoX21lc3NhZ2UgPyBfbWVzc2FnZSA6IF9h
KSArICIgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCAiICsgZXJyb3IgKyAiLiIpOworICAgIH0pOwor
fQorCiBmdW5jdGlvbiBzaG91bGRUaHJvd0Vycm9yTmFtZShfYSwgX25hbWUpCiB7CiAgICAgdmFy
IF9leGNlcHRpb247CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvYmxvY2stZG9lcy1ub3QtbGVhay1sb2NhdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmxvY2stZG9lcy1ub3Qt
bGVhay1sb2NhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggNDMzOTFmNGY5NmM1ODNhNGY1MGYwZTVi
NGI5NjE3ZTBkNzNhN2NmZC4uYjMyNjllNjVmMDE4Mzk1NWNkMDdkNWRmZjNhOGIwNTkzNmE0YWYw
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2Jsb2NrLWRvZXMtbm90LWxlYWstbG9jYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9ibG9jay1kb2VzLW5vdC1sZWFrLWxv
Y2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSA3OiBUaGUgWFNTIEF1ZGl0b3IgYmxvY2tlZCBhY2Nlc3MgdG8gJ2h0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsP3Rlc3Q9
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmxvY2stZG9lcy1ub3QtbGVhay1sb2NhdGlvbi5odG1sJmVu
YWJsZS1mdWxsLWJsb2NrPTEmcT0lM0NzY3JpcHQlM0VhbGVydChTdHJpbmcuZnJvbUNoYXJDb2Rl
KDB4NTgsMHg1MywweDUzKSk7JTNDL3NjcmlwdCUzRScgYmVjYXVzZSB0aGUgc291cmNlIGNvZGUg
b2YgYSBzY3JpcHQgd2FzIGZvdW5kIHdpdGhpbiB0aGUgcmVxdWVzdC4gVGhlIHNlcnZlciBzZW50
IGFuICdYLVhTUy1Qcm90ZWN0aW9uJyBoZWFkZXIgcmVxdWVzdGluZyB0aGlzIGJlaGF2aW9yLgot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDIxODogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjE4OiBCbG9ja2VkIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBh
bmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMjI6IEJsb2NrZWQg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2lu
ZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMs
IGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIz
MzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZy
b20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIu
IFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMjMzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAyMzc6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgogUEFTUyB4c3NlZC5jb250ZW50RG9jdW1lbnQgaXMgbnVsbAogUEFTUyB4c3NlZC5j
b250ZW50RG9jdW1lbnQgaXMgY3Jvc3NvcmlnaW4uY29udGVudERvY3VtZW50CiBQQVNTIHhzc2Vk
LmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZiB0aHJldyBleGNlcHRpb24gU2VjdXJpdHlFcnJv
ciAoRE9NIEV4Y2VwdGlvbiAxOCk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9ibG9jay1kb2VzLW5vdC1sZWFrLXJlZmVycmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9ibG9jay1kb2VzLW5vdC1sZWFrLXJl
ZmVycmVyLWV4cGVjdGVkLnR4dAppbmRleCA1OGQwY2FjZmNkOThkMGY5MGViOGY5YjdjNTBlYjUw
NTQ2ZmRjZWM5Li5mNDdlZDJmMmI3ZTZjOTQyNzE0ZjNiMmE4OGM0MWMwODVjZTI3NjM5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmxvY2st
ZG9lcy1ub3QtbGVhay1yZWZlcnJlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jsb2NrLWRvZXMtbm90LWxlYWstcmVmZXJyZXIt
ZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ6IFRo
ZSBYU1MgQXVkaXRvciBibG9ja2VkIGFjY2VzcyB0byAnaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGw/ZW5hYmxlLWZ1bGwt
YmxvY2s9MSZxPSUzQ3NjcmlwdCUzRWFsZXJ0KFN0cmluZy5mcm9tQ2hhckNvZGUoMHg1OCwweDUz
LDB4NTMpKSUzQy9zY3JpcHQlM0UnIGJlY2F1c2UgdGhlIHNvdXJjZSBjb2RlIG9mIGEgc2NyaXB0
IHdhcyBmb3VuZCB3aXRoaW4gdGhlIHJlcXVlc3QuIFRoZSBzZXJ2ZXIgc2VudCBhbiAnWC1YU1Mt
UHJvdGVjdGlvbicgaGVhZGVyIHJlcXVlc3RpbmcgdGhpcyBiZWhhdmlvci4KLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAyMTg6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDIzMzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCiBQQVNTIGZyYW1lLmNvbnRlbnREb2N1bWVudCBpcyBudWxsCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Z1bmN0
aW9uLWRlY2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL2Z1bmN0aW9uLWRlY2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50LWV4cGVj
dGVkLnR4dAppbmRleCA5YjI3N2RjNjNkZmVkZjA5MDA3NWQ1YzFiZTYzN2JlZjRkOWRmYTJkLi44
ZjQ4NjU3Y2RkMjYwODkxODhjN2U3OTNhNmQyMzNjMmJlMWJiNzVjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9mdW5jdGlvbi1kZWNsYXJhdGlvbnMtaW4tc3dpdGNoLXN0YXRlbWVudC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZnVuY3Rpb24tZGVjbGFyYXRpb25zLWluLXN3
aXRjaC1zdGF0ZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsNiBAQAotV0FSTjogc2hvdWxk
QmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMKLVBBU1MgMjAgaXMgMjAKLVdBUk46IHNob3Vs
ZEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzCi1QQVNTIDIwIGlzIDIwCi1XQVJOOiBzaG91
bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cwotUEFTUyAtMSBpcyAtMQorUEFTUyB0KDEp
IGlzIDIwCitQQVNTIHQoMikgaXMgMjAKK1BBU1MgdCgzKSBpcyAtMQogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9zY3JpcHQtdGVzdHMvZnVuY3Rpb24tZGVjbGFyYXRpb25zLWluLXN3aXRjaC1zdGF0ZW1l
bnQuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZnVuY3Rpb24tZGVjbGFyYXRpb25z
LWluLXN3aXRjaC1zdGF0ZW1lbnQuanMKaW5kZXggZjNjNGJhMjA2NTA3OTcxZjU4MDNiNTE0MTY3
Njg0MDBmNDY1M2ZlZi4uMDZjZDkwZWM4MjAyN2E1NWFmZGY2ZjJmMWVhMWI2NGE1MWIzZDkwMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2Z1bmN0aW9uLWRlY2xhcmF0
aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50LmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9mdW5jdGlvbi1kZWNsYXJhdGlvbnMtaW4tc3dpdGNoLXN0YXRlbWVudC5qcwpAQCAtMTks
NiArMTksNiBAQCBmdW5jdGlvbiB0KG4pIHsKICAgICB9CiB9CiAKLXNob3VsZEJlKHQoMSksICcy
MCcpOwotc2hvdWxkQmUodCgyKSwgJzIwJyk7Ci1zaG91bGRCZSh0KDMpLCAnLTEnKTsKK3Nob3Vs
ZEJlKCd0KDEpJywgJzIwJyk7CitzaG91bGRCZSgndCgyKScsICcyMCcpOworc2hvdWxkQmUoJ3Qo
MyknLCAnLTEnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdGFj
ay11bndpbmRpbmcuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvc3RhY2stdW53aW5k
aW5nLmpzCmluZGV4IDljNDE2NDFkMzc1ZDkzYjlhNjU5YmFlZmE1OTg2ZDUzNWJiNzBlOGUuLjJl
ZDM2MTQ4MmI4NWQzNzhkODA3NGI5NmZkNTFkYTZmZjcxN2RhYmYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdGFjay11bndpbmRpbmcuanMKKysrIGIvTGF5b3V0VGVz
dHMvanMvc2NyaXB0LXRlc3RzL3N0YWNrLXVud2luZGluZy5qcwpAQCAtMzIsNyArMzIsNyBAQCBm
dW5jdGlvbiBob3N0QW5kRXhjZXB0aW9uKCkgewogCiB0d29Ib3N0RnVuY3Rpb25zKCk7CiBteUFy
cmF5ID0gaG9zdENhbGxzVXNlcihteUFycmF5KTsKLXNob3VsZEJlKG15QXJyYXksIG5ldyBBcnJh
eSggNSwgNiwgNyApICk7CitzaG91bGRCZSgnbXlBcnJheScsICduZXcgQXJyYXkoIDUsIDYsIDcg
KScpOwogCiB0cnkgewogICAgIGhvc3RBbmRFeGNlcHRpb24oKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3N0YWNrLXVud2luZGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9z
dGFjay11bndpbmRpbmctZXhwZWN0ZWQudHh0CmluZGV4IDE3YTIxMjQzMTQ0YmYwMTAwNzRmNGUw
MjllNWZiMzAwNjAzMmJmMzYuLjkyN2M0NTUyN2NlNzFkN2Q3ODBjM2YyMTNlYTFmZjU1MzMxNjM0
ZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3N0YWNrLXVud2luZGluZy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvc3RhY2stdW53aW5kaW5nLWV4cGVjdGVkLnR4dApAQCAt
NCw4ICs0LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBQQVNTIFR3byBob3N0IGZ1
bmN0aW9ucyBjYWxsZWQgaW4gYSByb3cuCi1XQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5n
IGFyZ3VtZW50cwotUEFTUyA1LDYsNyBpcyA1LDYsNworUEFTUyBteUFycmF5IGlzIG5ldyBBcnJh
eSggNSwgNiwgNyApCiBQQVNTIEV4Y2VwdGlvbiB0aHJvd24gYW5kIGNhdWdodAogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMK
aW5kZXggYmRhMDQ2M2EyOTI2ZmViNDVlYTZmZmExMWE4YTUxNjFiOWE0MTExZi4uNjI4MDFjNTU4
NzYzODg5NWMyM2Y4YmRkNjEzYTk3YTc2YjIxNDg4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcwpAQCAtMjI1LDIyICsyMjUsMjIgQEAgZnVuY3Rpb24gZXZhbEFuZExvZ1Jlc3Vs
dChfYSkKIAogZnVuY3Rpb24gc2hvdWxkQmUoX2EsIF9iLCBxdWlldCkKIHsKLSAgaWYgKHR5cGVv
ZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCi0gICAgZGVidWcoIldB
Uk46IHNob3VsZEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgIGlmICgodHlwZW9m
IF9hICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9hICE9ICJzdHJpbmciKSB8fCAodHlwZW9mIF9i
ICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9iICE9ICJzdHJpbmciKSkKKyAgICBkZWJ1ZygiV0FS
Tjogc2hvdWxkQmUoKSBleHBlY3RzIGZ1bmN0aW9uIG9yIHN0cmluZyBhcmd1bWVudHMiKTsKICAg
dmFyIGV4Y2VwdGlvbjsKICAgdmFyIF9hdjsKICAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7
CisgICAgX2F2ID0gKHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2YWwoX2EpKTsK
ICAgfSBjYXRjaCAoZSkgewotICAgICBleGNlcHRpb24gPSBlOworICAgIGV4Y2VwdGlvbiA9IGU7
CiAgIH0KLSAgdmFyIF9idiA9IGV2YWwoX2IpOworICB2YXIgX2J2ID0gKHR5cGVvZiBfYiA9PSAi
ZnVuY3Rpb24iID8gX2IoKSA6IGV2YWwoX2IpKTsKIAogICBpZiAoZXhjZXB0aW9uKQogICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgc3RyaW5naWZ5KF9idikgKyAiLiBUaHJldyBl
eGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CiAgIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYs
IF9idikpIHsKICAgICBpZiAoIXF1aWV0KSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlz
ICIgKyBfYik7CisgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsgKHR5cGVvZiBfYiA9PSAi
ZnVuY3Rpb24iID8gX2J2IDogX2IpKTsKICAgICB9CiAgIH0gZWxzZSBpZiAodHlwZW9mKF9hdikg
PT0gdHlwZW9mKF9idikpCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBzdHJp
bmdpZnkoX2J2KSArICIuIFdhcyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOwpAQCAtMzkwLDIy
ICszOTAsMjIgQEAgZnVuY3Rpb24gc2hvdWxkQmVDbG9zZVRvKF90b19ldmFsLCBfdGFyZ2V0LCBf
dG9sZXJhbmNlLCBxdWlldCkKIAogZnVuY3Rpb24gc2hvdWxkTm90QmUoX2EsIF9iLCBxdWlldCkK
IHsKLSAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIp
Ci0gICAgZGVidWcoIldBUk46IHNob3VsZE5vdEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRz
Iik7CisgIGlmICgodHlwZW9mIF9hICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9hICE9ICJzdHJp
bmciKSB8fCAodHlwZW9mIF9iICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9iICE9ICJzdHJpbmci
KSkKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxkTm90QmUoKSBleHBlY3RzIGZ1bmN0aW9uIG9yIHN0
cmluZyBhcmd1bWVudHMiKTsKICAgdmFyIGV4Y2VwdGlvbjsKICAgdmFyIF9hdjsKICAgdHJ5IHsK
LSAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgX2F2ID0gKHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24i
ID8gX2EoKSA6IGV2YWwoX2EpKTsKICAgfSBjYXRjaCAoZSkgewotICAgICBleGNlcHRpb24gPSBl
OworICAgIGV4Y2VwdGlvbiA9IGU7CiAgIH0KLSAgdmFyIF9idiA9IGV2YWwoX2IpOworICB2YXIg
X2J2ID0gKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2IoKSA6IGV2YWwoX2IpKTsKIAogICBp
ZiAoZXhjZXB0aW9uKQogICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9i
diArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKICAgZWxzZSBpZiAoIWlzUmVz
dWx0Q29ycmVjdChfYXYsIF9idikpIHsKICAgICBpZiAoIXF1aWV0KSB7Ci0gICAgICAgIHRlc3RQ
YXNzZWQoX2EgKyAiIGlzIG5vdCAiICsgX2IpOworICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMg
bm90ICIgKyAodHlwZW9mIF9iID09ICJmdW5jdGlvbiIgPyBfYnYgOiBfYikpOwogICAgIH0KICAg
fSBlbHNlCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIG5vdCBiZSAiICsgX2J2ICsgIi4i
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QuanMKaW5kZXggYzhjNjQwMTkzM2JjMDU2NTg4ZjYzMjVh
NjMwZWM4Y2M5NTFjM2FiZS4uMDY2ZGJiNjA2MmY0MmU0OTQ0ZGY3ZDQ2NDEzZDY1MmUyMmY4OGI4
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QuanMKKysrIGIvTGF5
b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QuanMKQEAgLTIzMCwyMiArMjMwLDIyIEBAIGZ1bmN0
aW9uIGV2YWxBbmRMb2coX2EsIF9xdWlldCkKIAogZnVuY3Rpb24gc2hvdWxkQmUoX2EsIF9iLCBx
dWlldCkKIHsKLSAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0
cmluZyIpCi0gICAgZGVidWcoIldBUk46IHNob3VsZEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1l
bnRzIik7CisgIGlmICgodHlwZW9mIF9hICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9hICE9ICJz
dHJpbmciKSB8fCAodHlwZW9mIF9iICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9iICE9ICJzdHJp
bmciKSkKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIGZ1bmN0aW9uIG9yIHN0
cmluZyBhcmd1bWVudHMiKTsKICAgdmFyIF9leGNlcHRpb247CiAgIHZhciBfYXY7CiAgIHRyeSB7
Ci0gICAgIF9hdiA9IGV2YWwoX2EpOworICAgIF9hdiA9ICh0eXBlb2YgX2EgPT0gImZ1bmN0aW9u
IiA/IF9hKCkgOiBldmFsKF9hKSk7CiAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgX2V4Y2VwdGlvbiA9
IGU7CisgICAgX2V4Y2VwdGlvbiA9IGU7CiAgIH0KLSAgdmFyIF9idiA9IGV2YWwoX2IpOworICB2
YXIgX2J2ID0gKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2IoKSA6IGV2YWwoX2IpKTsKIAog
ICBpZiAoX2V4Y2VwdGlvbikKICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9i
diArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgX2V4Y2VwdGlvbik7CiAgIGVsc2UgaWYgKGlzUmVz
dWx0Q29ycmVjdChfYXYsIF9idikpIHsKICAgICBpZiAoIXF1aWV0KSB7Ci0gICAgICAgIHRlc3RQ
YXNzZWQoX2EgKyAiIGlzICIgKyBfYik7CisgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsg
KHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2J2IDogX2IpKTsKICAgICB9CiAgIH0gZWxzZSBp
ZiAodHlwZW9mKF9hdikgPT0gdHlwZW9mKF9idikpCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIGJlICIgKyBfYnYgKyAiLiBXYXMgIiArIHN0cmluZ2lmeShfYXYpICsgIi4iKTsKQEAgLTM1
MywyMiArMzUzLDIyIEBAIGZ1bmN0aW9uIHNob3VsZEJlQ2xvc2VUbyhfdG9fZXZhbCwgX3Rhcmdl
dCwgX3RvbGVyYW5jZSwgX3F1aWV0KQogCiBmdW5jdGlvbiBzaG91bGROb3RCZShfYSwgX2IsIF9x
dWlldCkKIHsKLSAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0
cmluZyIpCi0gICAgZGVidWcoIldBUk46IHNob3VsZE5vdEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJn
dW1lbnRzIik7CisgIGlmICgodHlwZW9mIF9hICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9hICE9
ICJzdHJpbmciKSB8fCAodHlwZW9mIF9iICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9iICE9ICJz
dHJpbmciKSkKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxkTm90QmUoKSBleHBlY3RzIGZ1bmN0aW9u
IG9yIHN0cmluZyBhcmd1bWVudHMiKTsKICAgdmFyIF9leGNlcHRpb247CiAgIHZhciBfYXY7CiAg
IHRyeSB7Ci0gICAgIF9hdiA9IGV2YWwoX2EpOworICAgIF9hdiA9ICh0eXBlb2YgX2EgPT0gImZ1
bmN0aW9uIiA/IF9hKCkgOiBldmFsKF9hKSk7CiAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgX2V4Y2Vw
dGlvbiA9IGU7CisgICAgX2V4Y2VwdGlvbiA9IGU7CiAgIH0KLSAgdmFyIF9idiA9IGV2YWwoX2Ip
OworICB2YXIgX2J2ID0gKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2IoKSA6IGV2YWwoX2Ip
KTsKIAogICBpZiAoX2V4Y2VwdGlvbikKICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90
IGJlICIgKyBfYnYgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIF9leGNlcHRpb24pOwogICBlbHNl
IGlmICghaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkgewogICAgIGlmICghX3F1aWV0KSB7Ci0g
ICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vdCAiICsgX2IpOworICAgICAgdGVzdFBhc3Nl
ZChfYSArICIgaXMgbm90ICIgKyAodHlwZW9mIF9iID09ICJmdW5jdGlvbiIgPyBfYnYgOiBfYikp
OwogICAgIH0KICAgfSBlbHNlCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIG5vdCBiZSAi
ICsgX2J2ICsgIi4iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy9zdGFuZGFs
b25lLXByZS5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9zdGFuZGFsb25lLXByZS5qcwppbmRl
eCAyYjU4NTljODE2M2U4MGI1Y2NjYzI1NmU0NjhhOTkyMWMzNjgzY2ViLi4xYzg4MTUxMWNlYjQ0
OTA1NjA3ODkwMGQyZDJhODRmZGI5ZmVmYmM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNv
dXJjZXMvc3RhbmRhbG9uZS1wcmUuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3N0YW5k
YWxvbmUtcHJlLmpzCkBAIC0xMTEsMjQgKzExMSwyNiBAQCBmdW5jdGlvbiBzdHJpbmdpZnkodikK
ICAgICAgICAgcmV0dXJuICIiICsgdjsKIH0KIAotZnVuY3Rpb24gc2hvdWxkQmUoX2EsIF9iKQor
ZnVuY3Rpb24gc2hvdWxkQmUoX2EsIF9iLCBxdWlldCkKIHsKLSAgaWYgKHR5cGVvZiBfYSAhPSAi
c3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCi0gICAgZGVidWcoIldBUk46IHNob3Vs
ZEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgIGlmICgodHlwZW9mIF9hICE9ICJm
dW5jdGlvbiIgJiYgdHlwZW9mIF9hICE9ICJzdHJpbmciKSB8fCAodHlwZW9mIF9iICE9ICJmdW5j
dGlvbiIgJiYgdHlwZW9mIF9iICE9ICJzdHJpbmciKSkKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxk
QmUoKSBleHBlY3RzIGZ1bmN0aW9uIG9yIHN0cmluZyBhcmd1bWVudHMiKTsKICAgdmFyIGV4Y2Vw
dGlvbjsKICAgdmFyIF9hdjsKICAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgX2F2
ID0gKHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2YWwoX2EpKTsKICAgfSBjYXRj
aCAoZSkgewotICAgICBleGNlcHRpb24gPSBlOworICAgIGV4Y2VwdGlvbiA9IGU7CiAgIH0KLSAg
dmFyIF9idiA9IGV2YWwoX2IpOworICB2YXIgX2J2ID0gKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24i
ID8gX2IoKSA6IGV2YWwoX2IpKTsKIAogICBpZiAoZXhjZXB0aW9uKQogICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHNob3VsZCBiZSAiICsgc3RyaW5naWZ5KF9idikgKyAiLiBUaHJldyBleGNlcHRpb24g
IiArIGV4Y2VwdGlvbik7Ci0gIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpCi0g
ICAgdGVzdFBhc3NlZChfYSArICIgaXMgIiArIF9iKTsKLSAgZWxzZSBpZiAodHlwZW9mKF9hdikg
PT0gdHlwZW9mKF9idikpCisgIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpIHsK
KyAgICBpZiAoIXF1aWV0KSB7CisgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsgKHR5cGVv
ZiBfYiA9PSAiZnVuY3Rpb24iID8gX2J2IDogX2IpKTsKKyAgICB9CisgIH0gZWxzZSBpZiAodHlw
ZW9mKF9hdikgPT0gdHlwZW9mKF9idikpCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJl
ICIgKyBzdHJpbmdpZnkoX2J2KSArICIuIFdhcyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOwog
ICBlbHNlCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBzdHJpbmdpZnkoX2J2
KSArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYnYgKyAiKS4gV2FzICIgKyBfYXYgKyAiIChvZiB0
eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7CkBAIC0xOTUsMjIgKzE5NywyMiBAQCBmdW5jdGlv
biBzaG91bGRCZVR5cGUoX2EsIF90eXBlKSB7CiAKIGZ1bmN0aW9uIHNob3VsZE5vdEJlKF9hLCBf
YiwgcXVpZXQpCiB7Ci0gIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9
ICJzdHJpbmciKQotICAgIGRlYnVnKCJXQVJOOiBzaG91bGROb3RCZSgpIGV4cGVjdHMgc3RyaW5n
IGFyZ3VtZW50cyIpOworICBpZiAoKHR5cGVvZiBfYSAhPSAiZnVuY3Rpb24iICYmIHR5cGVvZiBf
YSAhPSAic3RyaW5nIikgfHwgKHR5cGVvZiBfYiAhPSAiZnVuY3Rpb24iICYmIHR5cGVvZiBfYiAh
PSAic3RyaW5nIikpCisgICAgZGVidWcoIldBUk46IHNob3VsZE5vdEJlKCkgZXhwZWN0cyBmdW5j
dGlvbiBvciBzdHJpbmcgYXJndW1lbnRzIik7CiAgIHZhciBleGNlcHRpb247CiAgIHZhciBfYXY7
CiAgIHRyeSB7Ci0gICAgIF9hdiA9IGV2YWwoX2EpOworICAgIF9hdiA9ICh0eXBlb2YgX2EgPT0g
ImZ1bmN0aW9uIiA/IF9hKCkgOiBldmFsKF9hKSk7CiAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgZXhj
ZXB0aW9uID0gZTsKKyAgICBleGNlcHRpb24gPSBlOwogICB9Ci0gIHZhciBfYnYgPSBldmFsKF9i
KTsKKyAgdmFyIF9idiA9ICh0eXBlb2YgX2IgPT0gImZ1bmN0aW9uIiA/IF9iKCkgOiBldmFsKF9i
KSk7CiAKICAgaWYgKGV4Y2VwdGlvbikKICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90
IGJlICIgKyBfYnYgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CiAgIGVsc2Ug
aWYgKCFpc1Jlc3VsdENvcnJlY3QoX2F2LCBfYnYpKSB7CiAgICAgaWYgKCFxdWlldCkgewotICAg
ICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub3QgIiArIF9iKTsKKyAgICAgIHRlc3RQYXNzZWQo
X2EgKyAiIGlzIG5vdCAiICsgKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2J2IDogX2IpKTsK
ICAgICB9CiAgIH0gZWxzZQogICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiAr
IF9idiArICIuIik7CkBAIC0yNjUsMzggKzI2NywzOCBAQCBmdW5jdGlvbiBzaG91bGRCZURlZmlu
ZWQoX2EpCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRlZmluZWQuIFdhcyAiICsg
X2F2KTsKIH0KIAotZnVuY3Rpb24gc2hvdWxkTm90VGhyb3coX2EpIHsKK2Z1bmN0aW9uIHNob3Vs
ZE5vdFRocm93KF9hLCBfbWVzc2FnZSkgewogICAgIHRyeSB7Ci0gICAgICAgIGV2YWwoX2EpOwot
ICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4iKTsKKyAg
ICAgICAgdHlwZW9mIF9hID09ICJmdW5jdGlvbiIgPyBfYSgpIDogZXZhbChfYSk7CisgICAgICAg
IHRlc3RQYXNzZWQoKF9tZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkgKyAiIGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdGVzdEZhaWxlZChfYSAr
ICIgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24uIFRocmV3IGV4Y2VwdGlvbiAiICsgZSArICIu
Iik7CisgICAgICAgIHRlc3RGYWlsZWQoKF9tZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkgKyAiIHNo
b3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uLiBUaHJldyBleGNlcHRpb24gIiArIGUgKyAiLiIpOwog
ICAgIH0KIH0KIAotZnVuY3Rpb24gc2hvdWxkVGhyb3coX2EsIF9lKQorZnVuY3Rpb24gc2hvdWxk
VGhyb3coX2EsIF9lLCBfbWVzc2FnZSkKIHsKLSAgdmFyIGV4Y2VwdGlvbjsKLSAgdmFyIF9hdjsK
LSAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICAgZXhj
ZXB0aW9uID0gZTsKLSAgfQotCi0gIHZhciBfZXY7Ci0gIGlmIChfZSkKLSAgICAgIF9ldiA9ICBl
dmFsKF9lKTsKKyAgICB2YXIgX2V4Y2VwdGlvbjsKKyAgICB2YXIgX2F2OworICAgIHRyeSB7Cisg
ICAgICAgIF9hdiA9IHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2YWwoX2EpOwor
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgX2V4Y2VwdGlvbiA9IGU7CisgICAgfQogCi0gIGlm
IChleGNlcHRpb24pIHsKLSAgICBpZiAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiIHx8IGV4Y2Vw
dGlvbiA9PSBfZXYpCi0gICAgICB0ZXN0UGFzc2VkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiAr
IGV4Y2VwdGlvbiArICIuIik7CisgICAgdmFyIF9ldjsKKyAgICBpZiAoX2UpCisgICAgICAgIF9l
diA9ICBldmFsKF9lKTsKKworICAgIGlmIChfZXhjZXB0aW9uKSB7CisgICAgICAgIGlmICh0eXBl
b2YgX2UgPT0gInVuZGVmaW5lZCIgfHwgX2V4Y2VwdGlvbiA9PSBfZXYpCisgICAgICAgICAgICB0
ZXN0UGFzc2VkKChfbWVzc2FnZSA/IF9tZXNzYWdlIDogX2EpICsgIiB0aHJldyBleGNlcHRpb24g
IiArIF9leGNlcHRpb24gKyAiLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKChfbWVzc2FnZSA/IF9tZXNzYWdlIDogX2EpICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBl
b2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBUaHJldyBl
eGNlcHRpb24gIiArIF9leGNlcHRpb24gKyAiLiIpOworICAgIH0gZWxzZSBpZiAodHlwZW9mIF9h
diA9PSAidW5kZWZpbmVkIikKKyAgICAgICAgdGVzdEZhaWxlZCgoX21lc3NhZ2UgPyBfbWVzc2Fn
ZSA6IF9hKSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8g
ImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzIHVuZGVmaW5lZC4iKTsKICAgICBlbHNlCi0g
ICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVu
ZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBUaHJldyBleGNlcHRpb24gIiAr
IGV4Y2VwdGlvbiArICIuIik7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVk
IikKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0g
InVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgdW5kZWZpbmVkLiIp
OwotICBlbHNlCi0gICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9m
IF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzICIgKyBf
YXYgKyAiLiIpOworICAgICAgICB0ZXN0RmFpbGVkKChfbWVzc2FnZSA/IF9tZXNzYWdlIDogX2Ep
ICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhj
ZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgIiArIF9hdiArICIuIik7CiB9CiAKIGZ1bmN0aW9uIGlz
U3VjY2Vzc2Z1bGx5UGFyc2VkKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308432</attachid>
            <date>2017-04-27 12:55:44 -0700</date>
            <delta_ts>2017-04-27 14:30:47 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-171362-20170427125543.patch</filename>
            <type>text/plain</type>
            <size>32001</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NzU2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWVkY2NjOGM2NDgzNTI3MzI2YTNl
MmI1OTRlODU0YjU5MTM5MjljZi4uZjk2ODY3ZjBkMDViMDFiNDhmNmJmODUwNGVlOWNhOTU2Njk3
YTQxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDE3LTA0LTI3ICBEYXZpZCBLaWx6ZXIgIDxk
ZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgRW5oYW5jZSBzaG91bGRCZSgpL3Nob3VsZE5v
dEJlKCkgdG8gYWNjZXB0IGFub255bW91cyBmdW5jdGlvbiBhcmd1bWVudHMKKyAgICAgICAgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzE3MTM2Mj4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxODY3
Njg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgY2hhbmdlIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHBhc3MgZWl0aGVyIHRoZSBmaXJzdCBvciBz
ZWNvbmQKKyAgICAgICAgYXJndW1lbnQgKG9yIGJvdGgpIGFzIGFub255bW91cyBmdW5jdGlvbnMg
aW50byBzaG91bGRCZSgpIGFuZAorICAgICAgICBzaG91bGROb3RCZSgpIHRvIG1ha2UgaXQgZWFz
eSB0byBjYXB0dXJlIGxvY2FsIHZhcmlhYmxlcyB3aGVuCisgICAgICAgIHdyaXRpbmcgdGVzdHMu
ICBUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIGNoYW5nZSBpbiByMjAyNjA5IGZvciBCdWcKKyAgICAg
ICAgMTU5MjMyIGZvciBzaG91bGRUaHJvdygpIGFuZCBzaG91bGROb3RUaHJvdygpLgorCisgICAg
ICAgIE5vdGUgdGhhdCBzaG91bGRCZSgpL3Nob3VsZE5vdEJlKCkgZnJvbSB0aGUgZm9sbG93aW5n
IGZpbGVzIHdlcmUKKyAgICAgICAgTk9UIHVwZGF0ZWQgc2luY2UgdGhleSB3ZXJlIGltcG9ydGVk
IGZyb20gb3RoZXIgcHJvamVjdHMgYW5kIGRpZAorICAgICAgICBzaGFyZSB0aGUgZnVsbCBXZWJL
aXQgaGlzdG9yeSBvZiByZXNvdXJjZXMvanMtdGVzdC1wcmUuanM6CisKKyAgICAgICAgICAgIGh0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzCisgICAgICAgICAgICBqcy9tb3ppbGxhL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcworICAgICAgICAgICAgd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCisgICAgICAgICAgICB3ZWJnbC8xLjAuMy9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKKworICAgICAg
ICBIb3dldmVyLCB0aGVzZSBmaWxlcyBXRVJFIGJyb3VnaHQgdXAtdG8tZGF0ZSB3aXRoIHRoZSBh
YmlsaXR5IHRvCisgICAgICAgIHBhc3MgYW5vbnltb3VzIGZ1bmN0aW9ucyBpbnRvIHNob3VsZEJl
KCkvc2hvdWxkTm90QmUoKSBmb3IgdGhpcworICAgICAgICBidWcsIGFuZCBzaG91bGRUaHJvdygp
L3Nob3VsZE5vdFRocm93KCkgd2hpY2ggc2hvdWxkIGhhdmUKKyAgICAgICAgb3JpZ2luYWxseSBi
ZWVuIGZpeGVkIHdpdGggQnVnIDE1OTIzMjoKKworICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMKKyAgICAgICAgICAgIHJlc291cmNlcy9zdGFuZGFsb25lLXBy
ZS5qcworCisgICAgICAgICogY3NzMy9zY3JvbGwtc25hcC9yZXNvdXJjZXMvaWZyYW1lLWNvbnRl
bnQuaHRtbDogRHJpdmUtYnkgZml4CisgICAgICAgIHRvIGRlYnVnIG1lc3NhZ2UgZm9yIGNvcHkt
cGFzdGUgZXJyb3IuICBGb3VuZCBieSBzZWFyY2hpbmcKKyAgICAgICAgTGF5b3V0VGVzdHMgZGly
ZWN0b3J5IGZvciAiZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIi4KKworICAgICAgICAqIGZhc3Qv
Y2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMtZXhwZWN0ZWQudHh0OiBVcGRhdGUgdGVzdAor
ICAgICAgICByZXN1bHRzLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQt
dGVzdHMuaHRtbDogRml4IHdhcm5pbmcgYnkgbWFraW5nCisgICAgICAgIHNlY29uZCBhcmd1bWVu
dCB0byBzaG91bGRCZSgpIGEgc3RyaW5nLgorCisgICAgICAgICogZmFzdC9jc3Mvc2NyaXB0LXRl
c3RzL2ltYWdlLXNldC1wYXJzaW5nLmpzOgorICAgICAgICAodGVzdEltYWdlU2V0UnVsZSk6IFJl
bW92ZSBjb21tZW50IGJ5IGNoYW5naW5nIHNlY29uZCBhcmd1bWVudAorICAgICAgICB0byBzaG91
ZGxCZSgpIGludG8gYW4gYW5vbnltb3VzIGZ1bmN0aW9uLgorCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanM6CisgICAgICAgIChldmFsQW5kTG9nKToKKyAgICAg
ICAgKGV2YWxBbmRMb2dSZXN1bHQpOgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoc2hv
dWxkTm90QmUpOgorICAgICAgICAoc2hvdWxkRXZhbHVhdGVUbyk6CisgICAgICAgIC0gTWFkZSBh
IGZ1bGwgY29weSBvZiByZXNvdXJjZXMvanMtdGVzdC1wcmUuanMgdG8gYnJpbmcgdGhpcyB1cAor
ICAgICAgICAgIHRvIHNwZWVkLiAgTmVlZHMgYSBjaGVja2VyIHdyaXR0ZW4gZm9yIGl0IHRvIGtl
ZXAgdGhlbSBpbiBzeW5jLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9ibG9jay1kb2VzLW5vdC1sZWFrLWxvY2F0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmxvY2stZG9lcy1ub3QtbGVhay1yZWZlcnJl
ci1leHBlY3RlZC50eHQ6CisgICAgICAgIC0gVXBkYXRlIGxpbmUgbnVtYmVycyBhZnRlciB1cGRh
dGluZyBodHRwL3Rlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcy4KKworICAgICAgICAqIGpz
L2Z1bmN0aW9uLWRlY2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgLSBVcGRhdGUgcmVzdWx0cyBhZnRlciBmaXhpbmcgd2FybmluZ3MuCisgICAgICAg
ICoganMvc2NyaXB0LXRlc3RzL2Z1bmN0aW9uLWRlY2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVt
ZW50LmpzOgorICAgICAgICAtIEZpeCB3YXJuaW5ncyBieSBwYXNzaW5nIGluIHN0cmluZ3MgdG8g
c2hvdWxkQmUoKS4KKworICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9zdGFjay11bndpbmRpbmcu
anM6CisgICAgICAgIC0gVXBkYXRlIHJlc3VsdHMgYWZ0ZXIgZml4aW5nIHdhcm5pbmdzLgorICAg
ICAgICAqIGpzL3N0YWNrLXVud2luZGluZy1leHBlY3RlZC50eHQ6CisgICAgICAgIC0gRml4IHdh
cm5pbmdzIGJ5IHBhc3NpbmcgaW4gc3RyaW5ncyB0byBzaG91bGRCZSgpLgorCisgICAgICAgICog
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzOgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAo
c2hvdWxkTm90QmUpOgorICAgICAgICAqIHJlc291cmNlcy9qcy10ZXN0LmpzOgorICAgICAgICAo
c2hvdWxkQmUpOgorICAgICAgICAoc2hvdWxkTm90QmUpOgorICAgICAgICAtIFVwZGF0ZSBzaG91
bGRCZSgpL3Nob3VsZE5vdEJlKCkgdG8gYWNjZXB0IGFub255bW91cyBmdW5jdGlvbgorICAgICAg
ICAgIGFyZ3VtZW50cy4KKworICAgICAgICAqIHJlc291cmNlcy9zdGFuZGFsb25lLXByZS5qczoK
KyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3VsZE5vdEJlKToKKyAgICAgICAgKHNo
b3VsZE5vdFRocm93KToKKyAgICAgICAgKHNob3VsZFRocm93KToKKyAgICAgICAgLSBVcGRhdGUg
c2hvdWxkQmUoKS9zaG91bGROb3RCZSgpIHRvIGFjY2VwdCBhbm9ueW1vdXMgZnVuY3Rpb24KKyAg
ICAgICAgICBhcmd1bWVudHMuCisgICAgICAgIC0gQWxzbyBmaXggc2hvdWxkVGhyb3coKS9zaG91
bGROb3RUaHJvdygpIHRvIGFjY2VwdCBhbm9ueW1vdXMKKyAgICAgICAgICBmdW5jdGlvbiBhcmd1
bWVudHMgKHdoaWNoIHdlcmUgbWlzc2VkIGluIHIyMDI2MDkgZm9yIEJ1ZworICAgICAgICAgIDE1
OTIzMikuCisKIDIwMTctMDQtMjUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBTdXBwbGVtZW50YXJ5IE11bHRpbGluZ3VhbCBQbGFuZSBDb21wbGV4
IFNjcmlwdHMgUmVuZGVyZWQgSW5jb3JyZWN0bHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvc2Nyb2xsLXNuYXAvcmVzb3VyY2VzL2lmcmFtZS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9jc3MzL3Njcm9sbC1zbmFwL3Jlc291cmNlcy9pZnJhbWUtY29udGVudC5odG1sCmluZGV4IGMy
Njk4ZGIwMTFhZGNkOTI2ZGNkOGVlODY0MmRlZDkyZDAzODgzZmMuLjA4YWM0ZmIyMGE1MzJhNDRk
Y2Q4NGRmNzViM2RmZTE0ZjI3NjMxYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMvc2Ny
b2xsLXNuYXAvcmVzb3VyY2VzL2lmcmFtZS1jb250ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
Y3NzMy9zY3JvbGwtc25hcC9yZXNvdXJjZXMvaWZyYW1lLWNvbnRlbnQuaHRtbApAQCAtNTMsNyAr
NTMsNyBAQAogICAgICAgICBmdW5jdGlvbiBzaG91bGRNYXRjaChfYSwgX2IsIHJlc3VsdCkKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKHR5cGVvZiBfYSAhPT0gInN0cmluZyIgfHwgdHlwZW9m
IF9iICE9PSAic3RyaW5nIikKLSAgICAgICAgICAgICAgICB0b3AuZGVidWcoIldBUk46IHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAgICAgICAg
ICAgICAgIHRvcC5kZWJ1ZygiV0FSTjogc2hvdWxkTWF0Y2goKSBleHBlY3RzIHN0cmluZyBhcmd1
bWVudHMiKTsKIAogICAgICAgICAgICAgdmFyIF9hdjsKICAgICAgICAgICAgIHRyeSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS11bml0LXRlc3RzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVz
dHMtZXhwZWN0ZWQudHh0CmluZGV4IGI0MWRiYjEyMDRkZDAxMDc3NTQ5NGQ0NjlhNWQzYTQ0ZGQy
OGNkNDYuLjNmYzQxYzE1NTM4NTk5MmRkYTI0NjAzZmNiMjhmZjdhNWRkNGM3NzcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVz
dHMtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
UEFTUyB0ZXN0U2xpY2UKIHRlc3QgaW5oZXJpdGFuY2UgaGllcmFyY2h5IG9mIHR5cGVkIGFycmF5
IHZpZXdzCiBQQVNTIEFycmF5QnVmZmVyVmlldyBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcwot
V0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMKIFBBU1MgbmV3IFVpbnQ4
Q2xhbXBlZEFycmF5KDEpIGluc3RhbmNlb2YgVWludDhBcnJheSBpcyBmYWxzZQogUEFTUyB0ZXN0
IEZsb2F0MzJBcnJheSBTZXRBbmRHZXRQb3MxMFRvTmVnMTAKIFBBU1MgdGVzdCBGbG9hdDMyQXJy
YXkgQ29uc3RydWN0V2l0aEFycmF5T2ZTaWduZWRWYWx1ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbAppbmRleCBmODg0Njc2YjNm
Mzk2MzIxZGQ0ODM4NjBhZWVjY2RhZjQzMjBmZDBkLi5lZGU3NTAwNTU2NmY5YzM4NzhlYWQ5Zjdm
ODc0YjgxYzU3YmJlZmNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9hcnJheS11bml0LXRlc3RzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvYXJyYXktdW5pdC10ZXN0cy5odG1sCkBAIC0xMjMsNyArMTIzLDcgQEAgZnVuY3Rpb24gdGVz
dEluaGVyaXRhbmNlSGllcmFyY2h5KCkgewogICAgIHRlc3RQYXNzZWQoJ0FycmF5QnVmZmVyVmll
dyBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcycpOwogICB9CiAKLSAgc2hvdWxkQmUoJ25ldyBV
aW50OENsYW1wZWRBcnJheSgxKSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXknLCBmYWxzZSk7CisgIHNo
b3VsZEJlKCduZXcgVWludDhDbGFtcGVkQXJyYXkoMSkgaW5zdGFuY2VvZiBVaW50OEFycmF5Jywg
J2ZhbHNlJyk7CiB9CiAKIC8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zY3Jp
cHQtdGVzdHMvaW1hZ2Utc2V0LXBhcnNpbmcuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zY3Jp
cHQtdGVzdHMvaW1hZ2Utc2V0LXBhcnNpbmcuanMKaW5kZXggZjcyMDI5ODZhYWM4Y2M4ZDRkYmIz
NWU3NDEyN2NjMGZkYThkZjM3MC4uYzhjMTkxMDIyZTYzMjBkODdiMDNlNGMzOWVlMDY5OGM2YjI5
N2E5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2NyaXB0LXRlc3RzL2ltYWdl
LXNldC1wYXJzaW5nLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3NjcmlwdC10ZXN0cy9p
bWFnZS1zZXQtcGFyc2luZy5qcwpAQCAtNDMsNyArNDMsNyBAQCBmdW5jdGlvbiB0ZXN0SW1hZ2VT
ZXRSdWxlKGRlc2NyaXB0aW9uLCBwcm9wZXJ0eSwgcnVsZSwgZXhwZWN0ZWRMZW5ndGgsIGV4cGVj
dGVkVAogICAgICAgICB9CiAgICAgfQogCi0gICAgc2hvdWxkQmUoImltYWdlU2V0UnVsZS5sZW5n
dGgiLCAiIiArIGV4cGVjdGVkTGVuZ3RoKTsgLy8gc2hvdWxkQmUgZXhwZWN0cyBzdHJpbmcgYXJn
dW1lbnRzCisgICAgc2hvdWxkQmUoImltYWdlU2V0UnVsZS5sZW5ndGgiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIGV4cGVjdGVkTGVuZ3RoOyB9KTsKIAogICAgIGlmIChpbWFnZVNldFJ1bGUpIHsKICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZExlbmd0aDsgaSsrKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCmluZGV4IDkxOWU4
MTY5OGMxODM3MDJiNWU5ZjA5OTNjZmQ3ZmU5OTVmMGM4MjQuLjYyODAxYzU1ODc2Mzg4OTVjMjNm
OGJkZDYxM2E5N2E3NmIyMTQ4ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzCkBAIC0xOTMsNyArMTkzLDcgQEAgZnVuY3Rpb24gc3RyaW5n
aWZ5KHYpCiBmdW5jdGlvbiBldmFsQW5kTG9nKF9hLCBfcXVpZXQpCiB7CiAgIGlmICh0eXBlb2Yg
X2EgIT0gInN0cmluZyIpCi0gICAgZGVidWcoIldBUk46IHRyeUFuZExvZygpIGV4cGVjdHMgYSBz
dHJpbmcgYXJndW1lbnQiKTsKKyAgICBkZWJ1ZygiV0FSTjogZXZhbEFuZExvZygpIGV4cGVjdHMg
YSBzdHJpbmcgYXJndW1lbnQiKTsKIAogICAvLyBMb2cgZmlyc3QgaW4gY2FzZSB0aGluZ3MgZ28g
aG9ycmlibHkgd3Jvbmcgb3IgdGhpcyBjYXVzZXMgYSBzeW5jIGV2ZW50LgogICBpZiAoIV9xdWll
dCkKQEAgLTIwOCwyNCArMjA4LDM5IEBAIGZ1bmN0aW9uIGV2YWxBbmRMb2coX2EsIF9xdWlldCkK
ICAgcmV0dXJuIF9hdjsKIH0KIAorZnVuY3Rpb24gZXZhbEFuZExvZ1Jlc3VsdChfYSkKK3sKKyAg
aWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIikKKyAgICBkZWJ1ZygiV0FSTjogZXZhbEFuZExvZ1Jl
c3VsdCgpIGV4cGVjdHMgYSBzdHJpbmcgYXJndW1lbnQiKTsKKworICB2YXIgX2F2OworICB0cnkg
eworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZSk7CisgIH0KKworICBkZWJ1ZygnPHNwYW4+JyAr
IF9hICsgIiBpcyAiICsgZXNjYXBlSFRNTChfYXYpICsgJzwvc3Bhbj4nKTsKK30KKwogZnVuY3Rp
b24gc2hvdWxkQmUoX2EsIF9iLCBxdWlldCkKIHsKLSAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5n
IiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCi0gICAgZGVidWcoIldBUk46IHNob3VsZEJlKCkg
ZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgIGlmICgodHlwZW9mIF9hICE9ICJmdW5jdGlv
biIgJiYgdHlwZW9mIF9hICE9ICJzdHJpbmciKSB8fCAodHlwZW9mIF9iICE9ICJmdW5jdGlvbiIg
JiYgdHlwZW9mIF9iICE9ICJzdHJpbmciKSkKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmUoKSBl
eHBlY3RzIGZ1bmN0aW9uIG9yIHN0cmluZyBhcmd1bWVudHMiKTsKICAgdmFyIGV4Y2VwdGlvbjsK
ICAgdmFyIF9hdjsKICAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgX2F2ID0gKHR5
cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2YWwoX2EpKTsKICAgfSBjYXRjaCAoZSkg
ewotICAgICBleGNlcHRpb24gPSBlOworICAgIGV4Y2VwdGlvbiA9IGU7CiAgIH0KLSAgdmFyIF9i
diA9IGV2YWwoX2IpOworICB2YXIgX2J2ID0gKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2Io
KSA6IGV2YWwoX2IpKTsKIAogICBpZiAoZXhjZXB0aW9uKQogICAgIHRlc3RGYWlsZWQoX2EgKyAi
IHNob3VsZCBiZSAiICsgc3RyaW5naWZ5KF9idikgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4
Y2VwdGlvbik7CiAgIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpIHsKICAgICBp
ZiAoIXF1aWV0KSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzICIgKyBfYik7CisgICAg
ICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsgKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2J2
IDogX2IpKTsKICAgICB9CiAgIH0gZWxzZSBpZiAodHlwZW9mKF9hdikgPT0gdHlwZW9mKF9idikp
CiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBzdHJpbmdpZnkoX2J2KSArICIu
IFdhcyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOwpAQCAtMzc1LDIyICszOTAsMjIgQEAgZnVu
Y3Rpb24gc2hvdWxkQmVDbG9zZVRvKF90b19ldmFsLCBfdGFyZ2V0LCBfdG9sZXJhbmNlLCBxdWll
dCkKIAogZnVuY3Rpb24gc2hvdWxkTm90QmUoX2EsIF9iLCBxdWlldCkKIHsKLSAgaWYgKHR5cGVv
ZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCi0gICAgZGVidWcoIldB
Uk46IHNob3VsZE5vdEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgIGlmICgodHlw
ZW9mIF9hICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9hICE9ICJzdHJpbmciKSB8fCAodHlwZW9m
IF9iICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9iICE9ICJzdHJpbmciKSkKKyAgICBkZWJ1Zygi
V0FSTjogc2hvdWxkTm90QmUoKSBleHBlY3RzIGZ1bmN0aW9uIG9yIHN0cmluZyBhcmd1bWVudHMi
KTsKICAgdmFyIGV4Y2VwdGlvbjsKICAgdmFyIF9hdjsKICAgdHJ5IHsKLSAgICAgX2F2ID0gZXZh
bChfYSk7CisgICAgX2F2ID0gKHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2YWwo
X2EpKTsKICAgfSBjYXRjaCAoZSkgewotICAgICBleGNlcHRpb24gPSBlOworICAgIGV4Y2VwdGlv
biA9IGU7CiAgIH0KLSAgdmFyIF9idiA9IGV2YWwoX2IpOworICB2YXIgX2J2ID0gKHR5cGVvZiBf
YiA9PSAiZnVuY3Rpb24iID8gX2IoKSA6IGV2YWwoX2IpKTsKIAogICBpZiAoZXhjZXB0aW9uKQog
ICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9idiArICIuIFRocmV3IGV4
Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKICAgZWxzZSBpZiAoIWlzUmVzdWx0Q29ycmVjdChfYXYs
IF9idikpIHsKICAgICBpZiAoIXF1aWV0KSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlz
IG5vdCAiICsgX2IpOworICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgbm90ICIgKyAodHlwZW9m
IF9iID09ICJmdW5jdGlvbiIgPyBfYnYgOiBfYikpOwogICAgIH0KICAgfSBlbHNlCiAgICAgdGVz
dEZhaWxlZChfYSArICIgc2hvdWxkIG5vdCBiZSAiICsgX2J2ICsgIi4iKTsKQEAgLTQ0NSw3ICs0
NjAsOCBAQCBmdW5jdGlvbiBzaG91bGROb3RCZUVxdWFsVG9TdHJpbmcoYSwgYikKIH0KIGZ1bmN0
aW9uIHNob3VsZEJlRW1wdHlTdHJpbmcoX2EpIHsgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKF9hLCAi
Iik7IH0KIAotZnVuY3Rpb24gc2hvdWxkRXZhbHVhdGVUbyhhY3R1YWwsIGV4cGVjdGVkKSB7Citm
dW5jdGlvbiBzaG91bGRFdmFsdWF0ZVRvKGFjdHVhbCwgZXhwZWN0ZWQpCit7CiAgIC8vIEEgZ2Vu
ZXJhbC1wdXJwb3NlIGNvbXBhcmF0b3IuICAnYWN0dWFsJyBzaG91bGQgYmUgYSBzdHJpbmcgdG8g
YmUKICAgLy8gZXZhbHVhdGVkLCBhcyBmb3Igc2hvdWxkQmUoKS4gJ2V4cGVjdGVkJyBtYXkgYmUg
YW55IHR5cGUgYW5kIHdpbGwgYmUKICAgLy8gdXNlZCB3aXRob3V0IGJlaW5nIGV2YWwnZWQuCkBA
IC02MTcsNiArNjMzLDI0IEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KF9hLCBfZSwgX21lc3NhZ2Up
CiAgICAgICAgIHRlc3RGYWlsZWQoKF9tZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkgKyAiIHNob3Vs
ZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDog
X2V2KSArICIuIFdhcyAiICsgX2F2ICsgIi4iKTsKIH0KIAorZnVuY3Rpb24gc2hvdWxkUmVqZWN0
KF9hLCBfbWVzc2FnZSkKK3sKKyAgICB2YXIgX2V4Y2VwdGlvbjsKKyAgICB2YXIgX2F2OworICAg
IHRyeSB7CisgICAgICAgIF9hdiA9IHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2
YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgoX21lc3NhZ2Ug
PyBfbWVzc2FnZSA6IF9hKSArICIgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24uIFRocmV3IGV4
Y2VwdGlvbiAiICsgZSArICIuIik7CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsK
KyAgICB9CisKKyAgICAgcmV0dXJuIF9hdi50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAg
ICB0ZXN0RmFpbGVkKChfbWVzc2FnZSA/IF9tZXNzYWdlIDogX2EpICsgIiBzaG91bGQgcmVqZWN0
IHByb21pc2UuIFJlc29sdmVkIHdpdGggIiArIHJlc3VsdCArICIuIik7CisgICAgfSwgZnVuY3Rp
b24oZXJyb3IpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgoX21lc3NhZ2UgPyBfbWVzc2FnZSA6IF9h
KSArICIgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCAiICsgZXJyb3IgKyAiLiIpOworICAgIH0pOwor
fQorCiBmdW5jdGlvbiBzaG91bGRUaHJvd0Vycm9yTmFtZShfYSwgX25hbWUpCiB7CiAgICAgdmFy
IF9leGNlcHRpb247CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvYmxvY2stZG9lcy1ub3QtbGVhay1sb2NhdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmxvY2stZG9lcy1ub3Qt
bGVhay1sb2NhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggNDMzOTFmNGY5NmM1ODNhNGY1MGYwZTVi
NGI5NjE3ZTBkNzNhN2NmZC4uYjMyNjllNjVmMDE4Mzk1NWNkMDdkNWRmZjNhOGIwNTkzNmE0YWYw
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2Jsb2NrLWRvZXMtbm90LWxlYWstbG9jYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9ibG9jay1kb2VzLW5vdC1sZWFrLWxv
Y2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSA3OiBUaGUgWFNTIEF1ZGl0b3IgYmxvY2tlZCBhY2Nlc3MgdG8gJ2h0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsP3Rlc3Q9
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmxvY2stZG9lcy1ub3QtbGVhay1sb2NhdGlvbi5odG1sJmVu
YWJsZS1mdWxsLWJsb2NrPTEmcT0lM0NzY3JpcHQlM0VhbGVydChTdHJpbmcuZnJvbUNoYXJDb2Rl
KDB4NTgsMHg1MywweDUzKSk7JTNDL3NjcmlwdCUzRScgYmVjYXVzZSB0aGUgc291cmNlIGNvZGUg
b2YgYSBzY3JpcHQgd2FzIGZvdW5kIHdpdGhpbiB0aGUgcmVxdWVzdC4gVGhlIHNlcnZlciBzZW50
IGFuICdYLVhTUy1Qcm90ZWN0aW9uJyBoZWFkZXIgcmVxdWVzdGluZyB0aGlzIGJlaGF2aW9yLgot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDIxODogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjE4OiBCbG9ja2VkIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBh
bmQgcG9ydHMgbXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMjI6IEJsb2NrZWQg
YSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2lu
ZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMs
IGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIz
MzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZy
b20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIu
IFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMjMzOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAyMzc6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgogUEFTUyB4c3NlZC5jb250ZW50RG9jdW1lbnQgaXMgbnVsbAogUEFTUyB4c3NlZC5j
b250ZW50RG9jdW1lbnQgaXMgY3Jvc3NvcmlnaW4uY29udGVudERvY3VtZW50CiBQQVNTIHhzc2Vk
LmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZiB0aHJldyBleGNlcHRpb24gU2VjdXJpdHlFcnJv
ciAoRE9NIEV4Y2VwdGlvbiAxOCk6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9ibG9jay1kb2VzLW5vdC1sZWFrLXJlZmVycmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9ibG9jay1kb2VzLW5vdC1sZWFrLXJl
ZmVycmVyLWV4cGVjdGVkLnR4dAppbmRleCA1OGQwY2FjZmNkOThkMGY5MGViOGY5YjdjNTBlYjUw
NTQ2ZmRjZWM5Li5mNDdlZDJmMmI3ZTZjOTQyNzE0ZjNiMmE4OGM0MWMwODVjZTI3NjM5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmxvY2st
ZG9lcy1ub3QtbGVhay1yZWZlcnJlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jsb2NrLWRvZXMtbm90LWxlYWstcmVmZXJyZXIt
ZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ6IFRo
ZSBYU1MgQXVkaXRvciBibG9ja2VkIGFjY2VzcyB0byAnaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGw/ZW5hYmxlLWZ1bGwt
YmxvY2s9MSZxPSUzQ3NjcmlwdCUzRWFsZXJ0KFN0cmluZy5mcm9tQ2hhckNvZGUoMHg1OCwweDUz
LDB4NTMpKSUzQy9zY3JpcHQlM0UnIGJlY2F1c2UgdGhlIHNvdXJjZSBjb2RlIG9mIGEgc2NyaXB0
IHdhcyBmb3VuZCB3aXRoaW4gdGhlIHJlcXVlc3QuIFRoZSBzZXJ2ZXIgc2VudCBhbiAnWC1YU1Mt
UHJvdGVjdGlvbicgaGVhZGVyIHJlcXVlc3RpbmcgdGhpcyBiZWhhdmlvci4KLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAyMTg6IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIiBmcm9tIGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiLiBQcm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDIzMzogQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywgZG9tYWlucywgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCiBQQVNTIGZyYW1lLmNvbnRlbnREb2N1bWVudCBpcyBudWxsCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Z1bmN0
aW9uLWRlY2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL2Z1bmN0aW9uLWRlY2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50LWV4cGVj
dGVkLnR4dAppbmRleCA5YjI3N2RjNjNkZmVkZjA5MDA3NWQ1YzFiZTYzN2JlZjRkOWRmYTJkLi44
ZjQ4NjU3Y2RkMjYwODkxODhjN2U3OTNhNmQyMzNjMmJlMWJiNzVjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9mdW5jdGlvbi1kZWNsYXJhdGlvbnMtaW4tc3dpdGNoLXN0YXRlbWVudC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZnVuY3Rpb24tZGVjbGFyYXRpb25zLWluLXN3
aXRjaC1zdGF0ZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsNiBAQAotV0FSTjogc2hvdWxk
QmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMKLVBBU1MgMjAgaXMgMjAKLVdBUk46IHNob3Vs
ZEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzCi1QQVNTIDIwIGlzIDIwCi1XQVJOOiBzaG91
bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cwotUEFTUyAtMSBpcyAtMQorUEFTUyB0KDEp
IGlzIDIwCitQQVNTIHQoMikgaXMgMjAKK1BBU1MgdCgzKSBpcyAtMQogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9zY3JpcHQtdGVzdHMvZnVuY3Rpb24tZGVjbGFyYXRpb25zLWluLXN3aXRjaC1zdGF0ZW1l
bnQuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZnVuY3Rpb24tZGVjbGFyYXRpb25z
LWluLXN3aXRjaC1zdGF0ZW1lbnQuanMKaW5kZXggZjNjNGJhMjA2NTA3OTcxZjU4MDNiNTE0MTY3
Njg0MDBmNDY1M2ZlZi4uMDZjZDkwZWM4MjAyN2E1NWFmZGY2ZjJmMWVhMWI2NGE1MWIzZDkwMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2Z1bmN0aW9uLWRlY2xhcmF0
aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50LmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9mdW5jdGlvbi1kZWNsYXJhdGlvbnMtaW4tc3dpdGNoLXN0YXRlbWVudC5qcwpAQCAtMTks
NiArMTksNiBAQCBmdW5jdGlvbiB0KG4pIHsKICAgICB9CiB9CiAKLXNob3VsZEJlKHQoMSksICcy
MCcpOwotc2hvdWxkQmUodCgyKSwgJzIwJyk7Ci1zaG91bGRCZSh0KDMpLCAnLTEnKTsKK3Nob3Vs
ZEJlKCd0KDEpJywgJzIwJyk7CitzaG91bGRCZSgndCgyKScsICcyMCcpOworc2hvdWxkQmUoJ3Qo
MyknLCAnLTEnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdGFj
ay11bndpbmRpbmcuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvc3RhY2stdW53aW5k
aW5nLmpzCmluZGV4IDljNDE2NDFkMzc1ZDkzYjlhNjU5YmFlZmE1OTg2ZDUzNWJiNzBlOGUuLjJl
ZDM2MTQ4MmI4NWQzNzhkODA3NGI5NmZkNTFkYTZmZjcxN2RhYmYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdGFjay11bndpbmRpbmcuanMKKysrIGIvTGF5b3V0VGVz
dHMvanMvc2NyaXB0LXRlc3RzL3N0YWNrLXVud2luZGluZy5qcwpAQCAtMzIsNyArMzIsNyBAQCBm
dW5jdGlvbiBob3N0QW5kRXhjZXB0aW9uKCkgewogCiB0d29Ib3N0RnVuY3Rpb25zKCk7CiBteUFy
cmF5ID0gaG9zdENhbGxzVXNlcihteUFycmF5KTsKLXNob3VsZEJlKG15QXJyYXksIG5ldyBBcnJh
eSggNSwgNiwgNyApICk7CitzaG91bGRCZSgnbXlBcnJheScsICduZXcgQXJyYXkoIDUsIDYsIDcg
KScpOwogCiB0cnkgewogICAgIGhvc3RBbmRFeGNlcHRpb24oKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3N0YWNrLXVud2luZGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9z
dGFjay11bndpbmRpbmctZXhwZWN0ZWQudHh0CmluZGV4IDE3YTIxMjQzMTQ0YmYwMTAwNzRmNGUw
MjllNWZiMzAwNjAzMmJmMzYuLjkyN2M0NTUyN2NlNzFkN2Q3ODBjM2YyMTNlYTFmZjU1MzMxNjM0
ZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3N0YWNrLXVud2luZGluZy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvc3RhY2stdW53aW5kaW5nLWV4cGVjdGVkLnR4dApAQCAt
NCw4ICs0LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBQQVNTIFR3byBob3N0IGZ1
bmN0aW9ucyBjYWxsZWQgaW4gYSByb3cuCi1XQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5n
IGFyZ3VtZW50cwotUEFTUyA1LDYsNyBpcyA1LDYsNworUEFTUyBteUFycmF5IGlzIG5ldyBBcnJh
eSggNSwgNiwgNyApCiBQQVNTIEV4Y2VwdGlvbiB0aHJvd24gYW5kIGNhdWdodAogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMK
aW5kZXggYmRhMDQ2M2EyOTI2ZmViNDVlYTZmZmExMWE4YTUxNjFiOWE0MTExZi4uNjI4MDFjNTU4
NzYzODg5NWMyM2Y4YmRkNjEzYTk3YTc2YjIxNDg4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcwpAQCAtMjI1LDIyICsyMjUsMjIgQEAgZnVuY3Rpb24gZXZhbEFuZExvZ1Jlc3Vs
dChfYSkKIAogZnVuY3Rpb24gc2hvdWxkQmUoX2EsIF9iLCBxdWlldCkKIHsKLSAgaWYgKHR5cGVv
ZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCi0gICAgZGVidWcoIldB
Uk46IHNob3VsZEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgIGlmICgodHlwZW9m
IF9hICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9hICE9ICJzdHJpbmciKSB8fCAodHlwZW9mIF9i
ICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9iICE9ICJzdHJpbmciKSkKKyAgICBkZWJ1ZygiV0FS
Tjogc2hvdWxkQmUoKSBleHBlY3RzIGZ1bmN0aW9uIG9yIHN0cmluZyBhcmd1bWVudHMiKTsKICAg
dmFyIGV4Y2VwdGlvbjsKICAgdmFyIF9hdjsKICAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7
CisgICAgX2F2ID0gKHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2YWwoX2EpKTsK
ICAgfSBjYXRjaCAoZSkgewotICAgICBleGNlcHRpb24gPSBlOworICAgIGV4Y2VwdGlvbiA9IGU7
CiAgIH0KLSAgdmFyIF9idiA9IGV2YWwoX2IpOworICB2YXIgX2J2ID0gKHR5cGVvZiBfYiA9PSAi
ZnVuY3Rpb24iID8gX2IoKSA6IGV2YWwoX2IpKTsKIAogICBpZiAoZXhjZXB0aW9uKQogICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgc3RyaW5naWZ5KF9idikgKyAiLiBUaHJldyBl
eGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CiAgIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYs
IF9idikpIHsKICAgICBpZiAoIXF1aWV0KSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlz
ICIgKyBfYik7CisgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsgKHR5cGVvZiBfYiA9PSAi
ZnVuY3Rpb24iID8gX2J2IDogX2IpKTsKICAgICB9CiAgIH0gZWxzZSBpZiAodHlwZW9mKF9hdikg
PT0gdHlwZW9mKF9idikpCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBzdHJp
bmdpZnkoX2J2KSArICIuIFdhcyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOwpAQCAtMzkwLDIy
ICszOTAsMjIgQEAgZnVuY3Rpb24gc2hvdWxkQmVDbG9zZVRvKF90b19ldmFsLCBfdGFyZ2V0LCBf
dG9sZXJhbmNlLCBxdWlldCkKIAogZnVuY3Rpb24gc2hvdWxkTm90QmUoX2EsIF9iLCBxdWlldCkK
IHsKLSAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIp
Ci0gICAgZGVidWcoIldBUk46IHNob3VsZE5vdEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRz
Iik7CisgIGlmICgodHlwZW9mIF9hICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9hICE9ICJzdHJp
bmciKSB8fCAodHlwZW9mIF9iICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9iICE9ICJzdHJpbmci
KSkKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxkTm90QmUoKSBleHBlY3RzIGZ1bmN0aW9uIG9yIHN0
cmluZyBhcmd1bWVudHMiKTsKICAgdmFyIGV4Y2VwdGlvbjsKICAgdmFyIF9hdjsKICAgdHJ5IHsK
LSAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgX2F2ID0gKHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24i
ID8gX2EoKSA6IGV2YWwoX2EpKTsKICAgfSBjYXRjaCAoZSkgewotICAgICBleGNlcHRpb24gPSBl
OworICAgIGV4Y2VwdGlvbiA9IGU7CiAgIH0KLSAgdmFyIF9idiA9IGV2YWwoX2IpOworICB2YXIg
X2J2ID0gKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2IoKSA6IGV2YWwoX2IpKTsKIAogICBp
ZiAoZXhjZXB0aW9uKQogICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9i
diArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKICAgZWxzZSBpZiAoIWlzUmVz
dWx0Q29ycmVjdChfYXYsIF9idikpIHsKICAgICBpZiAoIXF1aWV0KSB7Ci0gICAgICAgIHRlc3RQ
YXNzZWQoX2EgKyAiIGlzIG5vdCAiICsgX2IpOworICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMg
bm90ICIgKyAodHlwZW9mIF9iID09ICJmdW5jdGlvbiIgPyBfYnYgOiBfYikpOwogICAgIH0KICAg
fSBlbHNlCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIG5vdCBiZSAiICsgX2J2ICsgIi4i
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QuanMKaW5kZXggYzhjNjQwMTkzM2JjMDU2NTg4ZjYzMjVh
NjMwZWM4Y2M5NTFjM2FiZS4uMDY2ZGJiNjA2MmY0MmU0OTQ0ZGY3ZDQ2NDEzZDY1MmUyMmY4OGI4
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QuanMKKysrIGIvTGF5
b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QuanMKQEAgLTIzMCwyMiArMjMwLDIyIEBAIGZ1bmN0
aW9uIGV2YWxBbmRMb2coX2EsIF9xdWlldCkKIAogZnVuY3Rpb24gc2hvdWxkQmUoX2EsIF9iLCBx
dWlldCkKIHsKLSAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0
cmluZyIpCi0gICAgZGVidWcoIldBUk46IHNob3VsZEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1l
bnRzIik7CisgIGlmICgodHlwZW9mIF9hICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9hICE9ICJz
dHJpbmciKSB8fCAodHlwZW9mIF9iICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9iICE9ICJzdHJp
bmciKSkKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIGZ1bmN0aW9uIG9yIHN0
cmluZyBhcmd1bWVudHMiKTsKICAgdmFyIF9leGNlcHRpb247CiAgIHZhciBfYXY7CiAgIHRyeSB7
Ci0gICAgIF9hdiA9IGV2YWwoX2EpOworICAgIF9hdiA9ICh0eXBlb2YgX2EgPT0gImZ1bmN0aW9u
IiA/IF9hKCkgOiBldmFsKF9hKSk7CiAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgX2V4Y2VwdGlvbiA9
IGU7CisgICAgX2V4Y2VwdGlvbiA9IGU7CiAgIH0KLSAgdmFyIF9idiA9IGV2YWwoX2IpOworICB2
YXIgX2J2ID0gKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2IoKSA6IGV2YWwoX2IpKTsKIAog
ICBpZiAoX2V4Y2VwdGlvbikKICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9i
diArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgX2V4Y2VwdGlvbik7CiAgIGVsc2UgaWYgKGlzUmVz
dWx0Q29ycmVjdChfYXYsIF9idikpIHsKICAgICBpZiAoIXF1aWV0KSB7Ci0gICAgICAgIHRlc3RQ
YXNzZWQoX2EgKyAiIGlzICIgKyBfYik7CisgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsg
KHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2J2IDogX2IpKTsKICAgICB9CiAgIH0gZWxzZSBp
ZiAodHlwZW9mKF9hdikgPT0gdHlwZW9mKF9idikpCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIGJlICIgKyBfYnYgKyAiLiBXYXMgIiArIHN0cmluZ2lmeShfYXYpICsgIi4iKTsKQEAgLTM1
MywyMiArMzUzLDIyIEBAIGZ1bmN0aW9uIHNob3VsZEJlQ2xvc2VUbyhfdG9fZXZhbCwgX3Rhcmdl
dCwgX3RvbGVyYW5jZSwgX3F1aWV0KQogCiBmdW5jdGlvbiBzaG91bGROb3RCZShfYSwgX2IsIF9x
dWlldCkKIHsKLSAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0
cmluZyIpCi0gICAgZGVidWcoIldBUk46IHNob3VsZE5vdEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJn
dW1lbnRzIik7CisgIGlmICgodHlwZW9mIF9hICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9hICE9
ICJzdHJpbmciKSB8fCAodHlwZW9mIF9iICE9ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9iICE9ICJz
dHJpbmciKSkKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxkTm90QmUoKSBleHBlY3RzIGZ1bmN0aW9u
IG9yIHN0cmluZyBhcmd1bWVudHMiKTsKICAgdmFyIF9leGNlcHRpb247CiAgIHZhciBfYXY7CiAg
IHRyeSB7Ci0gICAgIF9hdiA9IGV2YWwoX2EpOworICAgIF9hdiA9ICh0eXBlb2YgX2EgPT0gImZ1
bmN0aW9uIiA/IF9hKCkgOiBldmFsKF9hKSk7CiAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgX2V4Y2Vw
dGlvbiA9IGU7CisgICAgX2V4Y2VwdGlvbiA9IGU7CiAgIH0KLSAgdmFyIF9idiA9IGV2YWwoX2Ip
OworICB2YXIgX2J2ID0gKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2IoKSA6IGV2YWwoX2Ip
KTsKIAogICBpZiAoX2V4Y2VwdGlvbikKICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90
IGJlICIgKyBfYnYgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIF9leGNlcHRpb24pOwogICBlbHNl
IGlmICghaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkgewogICAgIGlmICghX3F1aWV0KSB7Ci0g
ICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vdCAiICsgX2IpOworICAgICAgdGVzdFBhc3Nl
ZChfYSArICIgaXMgbm90ICIgKyAodHlwZW9mIF9iID09ICJmdW5jdGlvbiIgPyBfYnYgOiBfYikp
OwogICAgIH0KICAgfSBlbHNlCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIG5vdCBiZSAi
ICsgX2J2ICsgIi4iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy9zdGFuZGFs
b25lLXByZS5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9zdGFuZGFsb25lLXByZS5qcwppbmRl
eCAyYjU4NTljODE2M2U4MGI1Y2NjYzI1NmU0NjhhOTkyMWMzNjgzY2ViLi4xYzg4MTUxMWNlYjQ0
OTA1NjA3ODkwMGQyZDJhODRmZGI5ZmVmYmM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNv
dXJjZXMvc3RhbmRhbG9uZS1wcmUuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3N0YW5k
YWxvbmUtcHJlLmpzCkBAIC0xMTEsMjQgKzExMSwyNiBAQCBmdW5jdGlvbiBzdHJpbmdpZnkodikK
ICAgICAgICAgcmV0dXJuICIiICsgdjsKIH0KIAotZnVuY3Rpb24gc2hvdWxkQmUoX2EsIF9iKQor
ZnVuY3Rpb24gc2hvdWxkQmUoX2EsIF9iLCBxdWlldCkKIHsKLSAgaWYgKHR5cGVvZiBfYSAhPSAi
c3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCi0gICAgZGVidWcoIldBUk46IHNob3Vs
ZEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgIGlmICgodHlwZW9mIF9hICE9ICJm
dW5jdGlvbiIgJiYgdHlwZW9mIF9hICE9ICJzdHJpbmciKSB8fCAodHlwZW9mIF9iICE9ICJmdW5j
dGlvbiIgJiYgdHlwZW9mIF9iICE9ICJzdHJpbmciKSkKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxk
QmUoKSBleHBlY3RzIGZ1bmN0aW9uIG9yIHN0cmluZyBhcmd1bWVudHMiKTsKICAgdmFyIGV4Y2Vw
dGlvbjsKICAgdmFyIF9hdjsKICAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgX2F2
ID0gKHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2YWwoX2EpKTsKICAgfSBjYXRj
aCAoZSkgewotICAgICBleGNlcHRpb24gPSBlOworICAgIGV4Y2VwdGlvbiA9IGU7CiAgIH0KLSAg
dmFyIF9idiA9IGV2YWwoX2IpOworICB2YXIgX2J2ID0gKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24i
ID8gX2IoKSA6IGV2YWwoX2IpKTsKIAogICBpZiAoZXhjZXB0aW9uKQogICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHNob3VsZCBiZSAiICsgc3RyaW5naWZ5KF9idikgKyAiLiBUaHJldyBleGNlcHRpb24g
IiArIGV4Y2VwdGlvbik7Ci0gIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpCi0g
ICAgdGVzdFBhc3NlZChfYSArICIgaXMgIiArIF9iKTsKLSAgZWxzZSBpZiAodHlwZW9mKF9hdikg
PT0gdHlwZW9mKF9idikpCisgIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpIHsK
KyAgICBpZiAoIXF1aWV0KSB7CisgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsgKHR5cGVv
ZiBfYiA9PSAiZnVuY3Rpb24iID8gX2J2IDogX2IpKTsKKyAgICB9CisgIH0gZWxzZSBpZiAodHlw
ZW9mKF9hdikgPT0gdHlwZW9mKF9idikpCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJl
ICIgKyBzdHJpbmdpZnkoX2J2KSArICIuIFdhcyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOwog
ICBlbHNlCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBzdHJpbmdpZnkoX2J2
KSArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYnYgKyAiKS4gV2FzICIgKyBfYXYgKyAiIChvZiB0
eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7CkBAIC0xOTUsMjIgKzE5NywyMiBAQCBmdW5jdGlv
biBzaG91bGRCZVR5cGUoX2EsIF90eXBlKSB7CiAKIGZ1bmN0aW9uIHNob3VsZE5vdEJlKF9hLCBf
YiwgcXVpZXQpCiB7Ci0gIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9
ICJzdHJpbmciKQotICAgIGRlYnVnKCJXQVJOOiBzaG91bGROb3RCZSgpIGV4cGVjdHMgc3RyaW5n
IGFyZ3VtZW50cyIpOworICBpZiAoKHR5cGVvZiBfYSAhPSAiZnVuY3Rpb24iICYmIHR5cGVvZiBf
YSAhPSAic3RyaW5nIikgfHwgKHR5cGVvZiBfYiAhPSAiZnVuY3Rpb24iICYmIHR5cGVvZiBfYiAh
PSAic3RyaW5nIikpCisgICAgZGVidWcoIldBUk46IHNob3VsZE5vdEJlKCkgZXhwZWN0cyBmdW5j
dGlvbiBvciBzdHJpbmcgYXJndW1lbnRzIik7CiAgIHZhciBleGNlcHRpb247CiAgIHZhciBfYXY7
CiAgIHRyeSB7Ci0gICAgIF9hdiA9IGV2YWwoX2EpOworICAgIF9hdiA9ICh0eXBlb2YgX2EgPT0g
ImZ1bmN0aW9uIiA/IF9hKCkgOiBldmFsKF9hKSk7CiAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgZXhj
ZXB0aW9uID0gZTsKKyAgICBleGNlcHRpb24gPSBlOwogICB9Ci0gIHZhciBfYnYgPSBldmFsKF9i
KTsKKyAgdmFyIF9idiA9ICh0eXBlb2YgX2IgPT0gImZ1bmN0aW9uIiA/IF9iKCkgOiBldmFsKF9i
KSk7CiAKICAgaWYgKGV4Y2VwdGlvbikKICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90
IGJlICIgKyBfYnYgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CiAgIGVsc2Ug
aWYgKCFpc1Jlc3VsdENvcnJlY3QoX2F2LCBfYnYpKSB7CiAgICAgaWYgKCFxdWlldCkgewotICAg
ICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub3QgIiArIF9iKTsKKyAgICAgIHRlc3RQYXNzZWQo
X2EgKyAiIGlzIG5vdCAiICsgKHR5cGVvZiBfYiA9PSAiZnVuY3Rpb24iID8gX2J2IDogX2IpKTsK
ICAgICB9CiAgIH0gZWxzZQogICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiAr
IF9idiArICIuIik7CkBAIC0yNjUsMzggKzI2NywzOCBAQCBmdW5jdGlvbiBzaG91bGRCZURlZmlu
ZWQoX2EpCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRlZmluZWQuIFdhcyAiICsg
X2F2KTsKIH0KIAotZnVuY3Rpb24gc2hvdWxkTm90VGhyb3coX2EpIHsKK2Z1bmN0aW9uIHNob3Vs
ZE5vdFRocm93KF9hLCBfbWVzc2FnZSkgewogICAgIHRyeSB7Ci0gICAgICAgIGV2YWwoX2EpOwot
ICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4iKTsKKyAg
ICAgICAgdHlwZW9mIF9hID09ICJmdW5jdGlvbiIgPyBfYSgpIDogZXZhbChfYSk7CisgICAgICAg
IHRlc3RQYXNzZWQoKF9tZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkgKyAiIGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdGVzdEZhaWxlZChfYSAr
ICIgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24uIFRocmV3IGV4Y2VwdGlvbiAiICsgZSArICIu
Iik7CisgICAgICAgIHRlc3RGYWlsZWQoKF9tZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkgKyAiIHNo
b3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uLiBUaHJldyBleGNlcHRpb24gIiArIGUgKyAiLiIpOwog
ICAgIH0KIH0KIAotZnVuY3Rpb24gc2hvdWxkVGhyb3coX2EsIF9lKQorZnVuY3Rpb24gc2hvdWxk
VGhyb3coX2EsIF9lLCBfbWVzc2FnZSkKIHsKLSAgdmFyIGV4Y2VwdGlvbjsKLSAgdmFyIF9hdjsK
LSAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICAgZXhj
ZXB0aW9uID0gZTsKLSAgfQotCi0gIHZhciBfZXY7Ci0gIGlmIChfZSkKLSAgICAgIF9ldiA9ICBl
dmFsKF9lKTsKKyAgICB2YXIgX2V4Y2VwdGlvbjsKKyAgICB2YXIgX2F2OworICAgIHRyeSB7Cisg
ICAgICAgIF9hdiA9IHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2YWwoX2EpOwor
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgX2V4Y2VwdGlvbiA9IGU7CisgICAgfQogCi0gIGlm
IChleGNlcHRpb24pIHsKLSAgICBpZiAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiIHx8IGV4Y2Vw
dGlvbiA9PSBfZXYpCi0gICAgICB0ZXN0UGFzc2VkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiAr
IGV4Y2VwdGlvbiArICIuIik7CisgICAgdmFyIF9ldjsKKyAgICBpZiAoX2UpCisgICAgICAgIF9l
diA9ICBldmFsKF9lKTsKKworICAgIGlmIChfZXhjZXB0aW9uKSB7CisgICAgICAgIGlmICh0eXBl
b2YgX2UgPT0gInVuZGVmaW5lZCIgfHwgX2V4Y2VwdGlvbiA9PSBfZXYpCisgICAgICAgICAgICB0
ZXN0UGFzc2VkKChfbWVzc2FnZSA/IF9tZXNzYWdlIDogX2EpICsgIiB0aHJldyBleGNlcHRpb24g
IiArIF9leGNlcHRpb24gKyAiLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKChfbWVzc2FnZSA/IF9tZXNzYWdlIDogX2EpICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBl
b2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBUaHJldyBl
eGNlcHRpb24gIiArIF9leGNlcHRpb24gKyAiLiIpOworICAgIH0gZWxzZSBpZiAodHlwZW9mIF9h
diA9PSAidW5kZWZpbmVkIikKKyAgICAgICAgdGVzdEZhaWxlZCgoX21lc3NhZ2UgPyBfbWVzc2Fn
ZSA6IF9hKSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8g
ImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzIHVuZGVmaW5lZC4iKTsKICAgICBlbHNlCi0g
ICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVu
ZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBUaHJldyBleGNlcHRpb24gIiAr
IGV4Y2VwdGlvbiArICIuIik7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVk
IikKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0g
InVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgdW5kZWZpbmVkLiIp
OwotICBlbHNlCi0gICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9m
IF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzICIgKyBf
YXYgKyAiLiIpOworICAgICAgICB0ZXN0RmFpbGVkKChfbWVzc2FnZSA/IF9tZXNzYWdlIDogX2Ep
ICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhj
ZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgIiArIF9hdiArICIuIik7CiB9CiAKIGZ1bmN0aW9uIGlz
U3VjY2Vzc2Z1bGx5UGFyc2VkKCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODNmNGMwMTVkMDZiNzU1YmFhNDdhYTQ2YzhmZjgzN2FkM2Yz
ZjdhMC4uYzY2NGNlY2I5NjhiN2NmMmNiZjYyZjJmYzUyYWZkZDhhMTQ1ZWJkNCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAxNy0wNC0yNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIEVuaGFuY2Ugc2hvdWxkQmUoKS9zaG91bGROb3RCZSgpIHRvIGFjY2VwdCBhbm9ueW1v
dXMgZnVuY3Rpb24gYXJndW1lbnRzCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzEz
NjI+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTg2NzY4Nj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9yZXNvdXJjZXMvc3RhbmRh
bG9uZS1wcmUuanM6CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChzaG91bGROb3RUaHJv
dyk6CisgICAgICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgIC0gVXBkYXRlIHNob3VsZEJlKCkg
dG8gYWNjZXB0IGFub255bW91cyBmdW5jdGlvbiBhcmd1bWVudHMuCisgICAgICAgICAgKFRoZSBz
aG91bGROb3RCZSgpIGZ1bmN0aW9uIHdhcyBuZXZlciBjb3BpZWQgb3Zlci4pCisgICAgICAgIC0g
QWxzbyBmaXggc2hvdWxkVGhyb3coKS9zaG91bGROb3RUaHJvdygpIHRvIGFjY2VwdCBhbm9ueW1v
dXMKKyAgICAgICAgICBmdW5jdGlvbiBhcmd1bWVudHMgKHdoaWNoIHdlcmUgbWlzc2VkIGluIHIy
MDI2MDkgZm9yIEJ1ZworICAgICAgICAgIDE1OTIzMikuCisKIDIwMTctMDQtMjUgIE1hcmsgTGFt
ICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIExvY2FsIENTRSB3cm9uZ2x5IENTRXMg
YXJyYXkgYWNjZXNzZXMgd2l0aCBkaWZmZXJlbnQgcmVzdWx0IHR5cGVzLgpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzIGIvSlNUZXN0cy9zdHJl
c3MvcmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzCmluZGV4IDJlODUwZjU0ZWRiNWEzMjdlZTZm
MDg2ZGE0Nzg3MDVjYWQzZTQyNTEuLjYxYzY1MjcyM2UzMjgyMzE2OTgwOGJjYjQzOGE0MjI0ZmUy
MTkyMmUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy9zdGFuZGFsb25lLXBy
ZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvc3RhbmRhbG9uZS1wcmUuanMKQEAg
LTEyMCwyNCArMTIwLDI2IEBAIGZ1bmN0aW9uIHN0cmluZ2lmeSh2KQogICAgICAgICByZXR1cm4g
IiIgKyB2OwogfQogCi1mdW5jdGlvbiBzaG91bGRCZShfYSwgX2IpCitmdW5jdGlvbiBzaG91bGRC
ZShfYSwgX2IsIHF1aWV0KQogewotICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVv
ZiBfYiAhPSAic3RyaW5nIikKLSAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0
cmluZyBhcmd1bWVudHMiKTsKKyAgaWYgKCh0eXBlb2YgX2EgIT0gImZ1bmN0aW9uIiAmJiB0eXBl
b2YgX2EgIT0gInN0cmluZyIpIHx8ICh0eXBlb2YgX2IgIT0gImZ1bmN0aW9uIiAmJiB0eXBlb2Yg
X2IgIT0gInN0cmluZyIpKQorICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgZnVu
Y3Rpb24gb3Igc3RyaW5nIGFyZ3VtZW50cyIpOwogICB2YXIgZXhjZXB0aW9uOwogICB2YXIgX2F2
OwogICB0cnkgewotICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICBfYXYgPSAodHlwZW9mIF9hID09
ICJmdW5jdGlvbiIgPyBfYSgpIDogZXZhbChfYSkpOwogICB9IGNhdGNoIChlKSB7Ci0gICAgIGV4
Y2VwdGlvbiA9IGU7CisgICAgZXhjZXB0aW9uID0gZTsKICAgfQotICB2YXIgX2J2ID0gZXZhbChf
Yik7CisgIHZhciBfYnYgPSAodHlwZW9mIF9iID09ICJmdW5jdGlvbiIgPyBfYigpIDogZXZhbChf
YikpOwogCiAgIGlmIChleGNlcHRpb24pCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJl
ICIgKyBzdHJpbmdpZnkoX2J2KSArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsK
LSAgZWxzZSBpZiAoaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkKLSAgICB0ZXN0UGFzc2VkKF9h
ICsgIiBpcyAiICsgX2IpOwotICBlbHNlIGlmICh0eXBlb2YoX2F2KSA9PSB0eXBlb2YoX2J2KSkK
KyAgZWxzZSBpZiAoaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkgeworICAgIGlmICghcXVpZXQp
IHsKKyAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzICIgKyAodHlwZW9mIF9iID09ICJmdW5jdGlv
biIgPyBfYnYgOiBfYikpOworICAgIH0KKyAgfSBlbHNlIGlmICh0eXBlb2YoX2F2KSA9PSB0eXBl
b2YoX2J2KSkKICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIHN0cmluZ2lmeShf
YnYpICsgIi4gV2FzICIgKyBzdHJpbmdpZnkoX2F2KSArICIuIik7CiAgIGVsc2UKICAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIHN0cmluZ2lmeShfYnYpICsgIiAob2YgdHlwZSAi
ICsgdHlwZW9mIF9idiArICIpLiBXYXMgIiArIF9hdiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBf
YXYgKyAiKS4iKTsKQEAgLTIzMywzOCArMjM1LDM4IEBAIGZ1bmN0aW9uIHNob3VsZEJlVW5kZWZp
bmVkKF9hKQogICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSB1bmRlZmluZWQuIFdhcyAi
ICsgX2F2KTsKIH0KIAotZnVuY3Rpb24gc2hvdWxkTm90VGhyb3coX2EpIHsKK2Z1bmN0aW9uIHNo
b3VsZE5vdFRocm93KF9hLCBfbWVzc2FnZSkgewogICAgIHRyeSB7Ci0gICAgICAgIGV2YWwoX2Ep
OwotICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4iKTsK
KyAgICAgICAgdHlwZW9mIF9hID09ICJmdW5jdGlvbiIgPyBfYSgpIDogZXZhbChfYSk7CisgICAg
ICAgIHRlc3RQYXNzZWQoKF9tZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkgKyAiIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdGVzdEZhaWxlZChf
YSArICIgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24uIFRocmV3IGV4Y2VwdGlvbiAiICsgZSAr
ICIuIik7CisgICAgICAgIHRlc3RGYWlsZWQoKF9tZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkgKyAi
IHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uLiBUaHJldyBleGNlcHRpb24gIiArIGUgKyAiLiIp
OwogICAgIH0KIH0KIAotZnVuY3Rpb24gc2hvdWxkVGhyb3coX2EsIF9lKQorZnVuY3Rpb24gc2hv
dWxkVGhyb3coX2EsIF9lLCBfbWVzc2FnZSkKIHsKLSAgdmFyIGV4Y2VwdGlvbjsKLSAgdmFyIF9h
djsKLSAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ZXhjZXB0aW9uID0gZTsKLSAgfQotCi0gIHZhciBfZXY7Ci0gIGlmIChfZSkKLSAgICAgIF9ldiA9
ICBldmFsKF9lKTsKKyAgICB2YXIgX2V4Y2VwdGlvbjsKKyAgICB2YXIgX2F2OworICAgIHRyeSB7
CisgICAgICAgIF9hdiA9IHR5cGVvZiBfYSA9PSAiZnVuY3Rpb24iID8gX2EoKSA6IGV2YWwoX2Ep
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgX2V4Y2VwdGlvbiA9IGU7CisgICAgfQogCi0g
IGlmIChleGNlcHRpb24pIHsKLSAgICBpZiAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiIHx8IGV4
Y2VwdGlvbiA9PSBfZXYpCi0gICAgICB0ZXN0UGFzc2VkKF9hICsgIiB0aHJldyBleGNlcHRpb24g
IiArIGV4Y2VwdGlvbiArICIuIik7CisgICAgdmFyIF9ldjsKKyAgICBpZiAoX2UpCisgICAgICAg
IF9ldiA9ICBldmFsKF9lKTsKKworICAgIGlmIChfZXhjZXB0aW9uKSB7CisgICAgICAgIGlmICh0
eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgfHwgX2V4Y2VwdGlvbiA9PSBfZXYpCisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKChfbWVzc2FnZSA/IF9tZXNzYWdlIDogX2EpICsgIiB0aHJldyBleGNlcHRp
b24gIiArIF9leGNlcHRpb24gKyAiLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKChfbWVzc2FnZSA/IF9tZXNzYWdlIDogX2EpICsgIiBzaG91bGQgdGhyb3cgIiArICh0
eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBUaHJl
dyBleGNlcHRpb24gIiArIF9leGNlcHRpb24gKyAiLiIpOworICAgIH0gZWxzZSBpZiAodHlwZW9m
IF9hdiA9PSAidW5kZWZpbmVkIikKKyAgICAgICAgdGVzdEZhaWxlZCgoX21lc3NhZ2UgPyBfbWVz
c2FnZSA6IF9hKSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQi
ID8gImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzIHVuZGVmaW5lZC4iKTsKICAgICBlbHNl
Ci0gICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0g
InVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBUaHJldyBleGNlcHRpb24g
IiArIGV4Y2VwdGlvbiArICIuIik7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZp
bmVkIikKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2Ug
PT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgdW5kZWZpbmVk
LiIpOwotICBlbHNlCi0gICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlw
ZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzICIg
KyBfYXYgKyAiLiIpOworICAgICAgICB0ZXN0RmFpbGVkKChfbWVzc2FnZSA/IF9tZXNzYWdlIDog
X2EpICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4g
ZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgIiArIF9hdiArICIuIik7CiB9CiAKIGZ1bmN0aW9u
IGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCkK
</data>
<flag name="review"
          id="329596"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>