<?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>211814</bug_id>
          
          <creation_ts>2020-05-12 16:05:02 -0700</creation_ts>
          <short_desc>Make editing-word-with-marker-1.html work on iOS</short_desc>
          <delta_ts>2020-05-17 21:16:14 -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 Local 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=211802</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>211802</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1652003</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-05-12 16:05:02 -0700</bug_when>
    <thetext>Make editing-word-with-marker-1.html work on iOS. Then I will move it in bug #211802.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652010</commentid>
    <comment_count>1</comment_count>
      <attachid>399195</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-05-12 16:13:01 -0700</bug_when>
    <thetext>Created attachment 399195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653334</commentid>
    <comment_count>2</comment_count>
      <attachid>399195</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-05-16 10:27:49 -0700</bug_when>
    <thetext>Comment on attachment 399195
Patch

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

&gt; LayoutTests/editing/mac/spelling/editing-word-with-marker-1.html:61
&gt; +    textarea.focus();

Why don&apos;t we have to do the same thing here as resetText() when calling textarea.focus()?

    if (window.testRunner)
        await UIHelper.activateElementAndWaitForInputSession(textarea);
    else
        textarea.focus();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653336</commentid>
    <comment_count>3</comment_count>
      <attachid>399195</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-05-16 10:46:09 -0700</bug_when>
    <thetext>Comment on attachment 399195
Patch

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

&gt;&gt; LayoutTests/editing/mac/spelling/editing-word-with-marker-1.html:61
&gt;&gt; +    textarea.focus();
&gt; 
&gt; Why don&apos;t we have to do the same thing here as resetText() when calling textarea.focus()?
&gt; 
&gt;     if (window.testRunner)
&gt;         await UIHelper.activateElementAndWaitForInputSession(textarea);
&gt;     else
&gt;         textarea.focus();

Focus() not needed. Will remove. It&apos;s a no-op in the context of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653480</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-05-17 21:10:54 -0700</bug_when>
    <thetext>Thanks Simon!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653481</commentid>
    <comment_count>5</comment_count>
      <attachid>399620</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-05-17 21:13:30 -0700</bug_when>
    <thetext>Created attachment 399620
To Land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653482</commentid>
    <comment_count>6</comment_count>
      <attachid>399621</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-05-17 21:14:23 -0700</bug_when>
    <thetext>Created attachment 399621
To Land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653483</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-05-17 21:15:03 -0700</bug_when>
    <thetext>Committed r261796: &lt;https://trac.webkit.org/changeset/261796&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653484</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-17 21:16:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/63326378&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399195</attachid>
            <date>2020-05-12 16:13:01 -0700</date>
            <delta_ts>2020-05-17 21:13:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211814-20200512161300.patch</filename>
            <type>text/plain</type>
            <size>17501</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMzA0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmVmMGNmMjNlZDE1NzNhNjAzNjUz
OTVlMDc3ZjYzYzQxMzJmMDMzNS4uMjUyOWNlNGUyM2QwNTc0ZDg1N2YwYmI5ZWYyZDI2NTQ3Mjdi
ZjJlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA1LTEyICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGVkaXRpbmctd29yZC13aXRoLW1hcmtl
ci0xLmh0bWwgd29yayBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMTgxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1pbmltYWwgY2hhbmdlcyBuZWVkZWQgdG8gbWFrZSB0aGUgdGVzdCB3b3Jr
IG9uIGlPUyArIHJlYmFzZSB0aGUgcmVzdWx0cy4gSSB3YXMgdGVtcHRlZCB0byBnbworICAgICAg
ICBmdWxsIGpzLXRlc3QuanMgY29udmVyc2lvbiwgYnV0IEkgZGlkbid0IGRvIHNvIHRvIHJlZHVj
ZSB0aGUgcmlzayBJIGludHJvZHVjZSBhIGJ1ZyBhbmQgSSB0aGluaworICAgICAgICBpcyBnb29k
IGVub3VnaC4KKworICAgICAgICBUbyBtYWtlIHRoZSB0ZXN0IHdvcmsgb24gaU9TIEkgZW5hYmxl
IGludGVybmFscy5zZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSArIHVzZSBVSUhl
bHBlcgorICAgICAgICB0byBhY3RpdmF0ZSB0aGUgdGV4dGFyZWEgKyBibHVyIHRoZSB0ZXh0YXJl
YSBvbiByZXNldCAoZm9yIG1heGltYWwgY29kZSByZXVzZSkuIEkgZGlkbid0IGVuYWJsZSB0aGlz
CisgICAgICAgIHZpYSB0aGUgV0tUUiBvcHRpb24gc3BlbGxDaGVja2luZ0RvdHMgYmVjYXVzZSB0
aGlzIHRlc3Qgc2hvdWxkIGJlIGNhcGFibGUgb2YgcnVubmluZyBpbiBEdW1wUmVuZGVyVHJlZQor
ICAgICAgICB0aG91Z2ggd2UgZG9uJ3QgYWN0dWFsbHkgcnVuIER1bXBSZW5kZXJUcmVlIGZvciBp
T1Mgb24gYW55IGJvdHMuIFNvLCBJIGRpZCB0aGlzIGxhcmdlbHkgZm9yIGp1c3QgZm9yIG1lLgor
CisgICAgICAgICogZWRpdGluZy9tYWMvc3BlbGxpbmcvZWRpdGluZy13b3JkLXdpdGgtbWFya2Vy
LTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvbWFjL3NwZWxsaW5nL2VkaXRpbmct
d29yZC13aXRoLW1hcmtlci0xLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnM6IFRlbXBvcmFyaWx5IG1hcmsgdGhpcyB0ZXN0IGFzIFBBU1MgaGVyZSBzbyB0aGF0
IGlPUyBydW5zIGl0IGV2ZW4KKyAgICAgICAgdGhvdWdoIGl0cyBpbiBhIE1hYy1zcGVjaWZpYyBk
aXJlY3RvcnkuIEkgd2lsbCByZW1vdmUgdGhpcyBlbnRyeSB3aGVuIEkgbW92ZSB0aGUgdGVzdCB0
byBlZGl0aW5nL3NwZWxsaW5nCisgICAgICAgIGluIHRoZSBmaXggZm9yIDxodHRwczovL3dlYmtp
dC5vcmcvYi8yMTE4MDI+LgorCiAyMDIwLTA1LTEyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KIAogICAgICAgICBNYWtlIGVkaXRpbmcvc3BlbGxpbmcvZWRpdGluZy13b3JkLXdp
dGgtbWFya2VyLTIuaHRtbCB0ZXN0IHdoYXQgaXQgY2xhaW1zIGFuZCBtYWtlIGl0IHdvcmsgb24g
aU9TCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL21hYy9zcGVsbGluZy9lZGl0aW5n
LXdvcmQtd2l0aC1tYXJrZXItMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL21h
Yy9zcGVsbGluZy9lZGl0aW5nLXdvcmQtd2l0aC1tYXJrZXItMS1leHBlY3RlZC50eHQKaW5kZXgg
OGQyMTkyMTBmM2Y5NzA5ZGNkYTgwYjNlMDhmMDVkOTAwZmI2OTZjNi4uOTk0NjFkNDRhNjgxODI3
N2QzMjhmNGYwNGU2ZjI3MmY2MzVlYTFjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9tYWMvc3BlbGxpbmcvZWRpdGluZy13b3JkLXdpdGgtbWFya2VyLTEtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvbWFjL3NwZWxsaW5nL2VkaXRpbmctd29yZC13aXRoLW1h
cmtlci0xLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSwxMyBAQAotVGhlIHRlc3QgdmVyaWZpZWQg
dGhhdCB3aGVuIGEgd29yZCBpcyBtb2RpZmllZCwgaXRzIFNwZWxsaW5nIGFuZCBBdXRvY29ycmVj
dGlvbiBNYXJrZXJzIGFyZSByZW1vdmVkLiBXaGVuIG1hbnVsbHkgdGVzdGluZywgdHlwZSAiaXQn
cyBhIG1lYWdlc2dhIiwgdGhlbiBlZGl0IHRoZSB3b3JkICJtZWFnZXNnYSIuIFlvdSBzaG91bGQg
c2VlIHRoZSB1bmRlcmxpbmUgdW5kZXIgdGhlIG1vZGlmaWVkICJtZWFnZXNnYSIgZGlzcHBlYXJz
IGFmdGVyIGVkaXRpbmcuCitUaGUgdGVzdCB2ZXJpZmllZCB0aGF0IHdoZW4gYSB3b3JkIGlzIG1v
ZGlmaWVkLCBpdHMgc3BlbGxpbmcgbWFya2VycyBhcmUgcmVtb3ZlZC4gV2hlbiBtYW51YWxseSB0
ZXN0aW5nLCB0eXBlICJpdCdzIGEgbWVhZ2VzZ2EiLCB0aGVuIGVkaXQgdGhlIHdvcmQgIm1lYWdl
c2dhIi4gWW91IHNob3VsZCBzZWUgdGhlIHVuZGVybGluZSB1bmRlciB0aGUgbW9kaWZpZWQgIm1l
YWdlc2dhIiBkaXNwcGVhcnMgYWZ0ZXIgZWRpdGluZy4KIAogCiBTVUNDRVNTCi1GQUlMVVJFLiBU
aGUgd29yZCAnYW1lYWdlc2dhJyBoYXMgdW5kZXJsaW5lLgotRkFJTFVSRS4gVGhlIHdvcmQgJ2Vh
Z2VzZ2EnIGhhcyB1bmRlcmxpbmUuCi1GQUlMVVJFLiBUaGUgc2VnbWVudCAnbWVhIGdlc2dhJyBo
YXMgdW5kZXJsaW5lLgogU1VDQ0VTUwotRkFJTFVSRS4gVGhlIHNlZ21lbnQgJ21lYSBnYScgaGFz
IHVuZGVybGluZS4KLUZBSUxVUkUuIFRoZSB3b3JkICdhbWVhZ2VzZ2EnIGhhcyB1bmRlcmxpbmUu
CitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCiBTVUNDRVNTCiBT
VUNDRVNTCiBTVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL21hYy9zcGVs
bGluZy9lZGl0aW5nLXdvcmQtd2l0aC1tYXJrZXItMS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9tYWMvc3BlbGxpbmcvZWRpdGluZy13b3JkLXdpdGgtbWFya2VyLTEuaHRtbAppbmRleCA5NTEy
NzMzMmU1ZWIxN2U2MzkzNTE3YjRiMjQyNjJkM2ZlMjIxOWU3Li4wMjhmMTQwZDQxYjhkMTlhYTM0
NGI1MzQ2YmIzZTM3NjQ1YzMyOTc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL21h
Yy9zcGVsbGluZy9lZGl0aW5nLXdvcmQtd2l0aC1tYXJrZXItMS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvbWFjL3NwZWxsaW5nL2VkaXRpbmctd29yZC13aXRoLW1hcmtlci0xLmh0bWwK
QEAgLTEsMTkgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KLTxzY3Jp
cHQgc3JjPS4uLy4uL2VkaXRpbmcuanMgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQv
amF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZWRpdGluZy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+CiA8dGl0bGU+RWRpdGluZyB3b3JkIHdpdGggbWFya2VyIHRlc3QgMTwvdGl0bGU+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2lmICh3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgaWYgKFVJSGVscGVyLmlzSU9TRmFtaWx5KCkgfHwgIVVJSGVscGVy
LmlzV2ViS2l0MigpKQorICAgICAgICBpbnRlcm5hbHMuc2V0Q29udGludW91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKHRydWUpOworICAgIGVsc2UgeworICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKHRydWUpOworICAgIH0K
K30KKzwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08cD5UaGUgdGVzdCB2ZXJpZmllZCB0aGF0
IHdoZW4gYSB3b3JkIGlzIG1vZGlmaWVkLCBpdHMgU3BlbGxpbmcgYW5kIEF1dG9jb3JyZWN0aW9u
IE1hcmtlcnMgYXJlIHJlbW92ZWQuCi1XaGVuIG1hbnVsbHkgdGVzdGluZywgdHlwZSAiaXQncyBh
IG1lYWdlc2dhIiwgdGhlbiBlZGl0IHRoZSB3b3JkICJtZWFnZXNnYSIuIFlvdSBzaG91bGQgc2Vl
IHRoZSAKKzxwPlRoZSB0ZXN0IHZlcmlmaWVkIHRoYXQgd2hlbiBhIHdvcmQgaXMgbW9kaWZpZWQs
IGl0cyBzcGVsbGluZyBtYXJrZXJzIGFyZSByZW1vdmVkLgorV2hlbiBtYW51YWxseSB0ZXN0aW5n
LCB0eXBlICJpdCdzIGEgbWVhZ2VzZ2EiLCB0aGVuIGVkaXQgdGhlIHdvcmQgIm1lYWdlc2dhIi4g
WW91IHNob3VsZCBzZWUgdGhlIAogdW5kZXJsaW5lIHVuZGVyIHRoZSBtb2RpZmllZCAibWVhZ2Vz
Z2EiIGRpc3BwZWFycyBhZnRlciBlZGl0aW5nLjwvcD4KIDx0ZXh0YXJlYSBpZD0idGVzdCIgY29s
cz0iODAiIHJvd3M9IjEwIj48L3RleHRhcmVhPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08
c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotZnVu
Y3Rpb24gcmVzZXRUZXh0KCkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyku
Zm9jdXMoKTsKLSAgICBleGVjU2VsZWN0QWxsQ29tbWFuZCgpOwotICAgIGV4ZWNEZWxldGVDb21t
YW5kKCk7Cis8c2NyaXB0PgorbGV0IHRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3QiKTsKKworYXN5bmMgZnVuY3Rpb24gcmVzZXRUZXh0KCkKK3sKKyAgICB0ZXh0YXJlYS5i
bHVyKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICBhd2FpdCBVSUhlbHBl
ci5hY3RpdmF0ZUVsZW1lbnRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uKHRleHRhcmVhKTsKKyAgICBl
bHNlCisgICAgICAgIHRleHRhcmVhLmZvY3VzKCk7CisgICAgdGV4dGFyZWEudmFsdWUgPSAiIjsK
ICAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnaScpOwogICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5k
KCd0Jyk7CiAgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ1wnJyk7CkBAIC0zMiwxNDcgKzU1LDEz
OCBAQCBmdW5jdGlvbiByZXNldFRleHQoKSB7CiAgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJyAn
KTsKIH0KIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci19Ci0KLXJlc2V0VGV4dCgpOwotdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdCcpOwotdGV4dGFyZWEuZm9jdXMoKTsKLXRleHRhcmVhLnNldFNlbGVjdGlvblJh
bmdlKDE0LCAxNSk7Ci1leGVjRGVsZXRlQ29tbWFuZCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMg
JiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikgewotICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsNykgPT0gMCkgewotICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9ICdTVUNDRVNTPGJyPic7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5p
bm5lckhUTUwgPSAiRkFJTFVSRS4gVGhlIHdvcmQgJ21lYWdlc2cnIGhhcyB1bmRlcmxpbmUuPGJy
PiI7Cithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICByZXNldFRleHQoKTsKKyAgICB0
ZXh0YXJlYS5mb2N1cygpOworICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDE0LCAxNSk7
CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAgICBpZiAod2luZG93LmludGVybmFscyAmJiB3
aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKSB7CisgICAgICAgIGlmICghd2luZG93
LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig3LCA3KSkKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gJ1NVQ0NFU1M8YnI+JzsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUn
KS5pbm5lckhUTUwgPSAiRkFJTFVSRS4gVGhlIHdvcmQgJ21lYWdlc2cnIGhhcyB1bmRlcmxpbmUu
PGJyPiI7CiAgICAgfQotfQogCi0vLyBUZXN0aW5nIGRlbGV0aW9uIGF0IHZhcmlvdXMgbG9jYXRp
b24uCi1yZXNldFRleHQoKTsKLXRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDYsIDYpOwotZXhl
Y0ZvcndhcmREZWxldGVDb21tYW5kKCk7Ci1pZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cu
aW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKSB7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMu
aGFzU3BlbGxpbmdNYXJrZXIoNiw4KSA9PSAwKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnNvbGUnKS5pbm5lckhUTUwgKyAnU1VDQ0VTUzxicj4nOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKyAiRkFJTFVSRS4gVGhlIHdvcmQg
J2FtZWFnZXNnYScgaGFzIHVuZGVybGluZS48YnI+IjsKKyAgICAvLyBUZXN0aW5nIGRlbGV0aW9u
IGF0IHZhcmlvdXMgbG9jYXRpb24uCisgICAgcmVzZXRUZXh0KCk7CisgICAgdGV4dGFyZWEuc2V0
U2VsZWN0aW9uUmFuZ2UoNiwgNik7CisgICAgZXhlY0ZvcndhcmREZWxldGVDb21tYW5kKCk7Cisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01h
cmtlcikgeworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIo
NiwgOCkpCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlu
bmVySFRNTCArPSAnU1VDQ0VTUzxicj4nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAiRkFJTFVSRS4gVGhl
IHdvcmQgJ2FtZWFnZXNnYScgaGFzIHVuZGVybGluZS48YnI+IjsKICAgICB9Ci19CiAKLXJlc2V0
VGV4dCgpOwotdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoNywgNyk7Ci1leGVjRm9yd2FyZERl
bGV0ZUNvbW1hbmQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMu
aGFzU3BlbGxpbmdNYXJrZXIpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscy5oYXNTcGVsbGlu
Z01hcmtlcig3LDcpID09IDApIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlu
bmVySFRNTCArICdTVUNDRVNTPGJyPic7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArICJGQUlMVVJFLiBUaGUgd29yZCAnZWFnZXNnYScg
aGFzIHVuZGVybGluZS48YnI+IjsKKyAgICByZXNldFRleHQoKTsKKyAgICB0ZXh0YXJlYS5zZXRT
ZWxlY3Rpb25SYW5nZSg3LCA3KTsKKyAgICBleGVjRm9yd2FyZERlbGV0ZUNvbW1hbmQoKTsKKyAg
ICBpZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFy
a2VyKSB7CisgICAgICAgIGlmICghd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig3
LCA3KSkKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5u
ZXJIVE1MICs9ICdTVUNDRVNTPGJyPic7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICJGQUlMVVJFLiBUaGUg
d29yZCAnZWFnZXNnYScgaGFzIHVuZGVybGluZS48YnI+IjsKICAgICB9Ci19CiAKLXJlc2V0VGV4
dCgpOwotdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMTAsIDEwKTsKLXR5cGVDaGFyYWN0ZXJD
b21tYW5kKCcgJyk7Ci1pZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhh
c1NwZWxsaW5nTWFya2VyKSB7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdN
YXJrZXIoNywzKSA9PSAwICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoMTEs
NSkgPT0gMCkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlu
bmVySFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsg
J1NVQ0NFU1M8YnI+JzsKLSAgICB9IGVsc2UgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25z
b2xlJykuaW5uZXJIVE1MICsgIkZBSUxVUkUuIFRoZSBzZWdtZW50ICdtZWEgZ2VzZ2EnIGhhcyB1
bmRlcmxpbmUuPGJyPiI7CisgICAgcmVzZXRUZXh0KCk7CisgICAgdGV4dGFyZWEuc2V0U2VsZWN0
aW9uUmFuZ2UoMTAsIDEwKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnICcpOworICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIp
IHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsIDMp
ICYmICF3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDExLCA1KSkKKyAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICdTVUND
RVNTPGJyPic7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICJGQUlMVVJFLiBUaGUgc2VnbWVudCAnbWVhIGdl
c2dhJyBoYXMgdW5kZXJsaW5lLjxicj4iOwogICAgIH0KLX0KIAotcmVzZXRUZXh0KCk7Ci10ZXh0
YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgxMCwgMTMpOwotZXhlY0RlbGV0ZUNvbW1hbmQoKTsKLWlm
ICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIp
IHsKLSAgICBpZiAod2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig3LDUpID09IDAp
IHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArICdTVUNDRVNT
PGJyPic7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlu
bmVySFRNTCArICJGQUlMVVJFLiBUaGUgd29yZCAnbWVhZ2EnIGhhcyB1bmRlcmxpbmUuPGJyPiI7
CisgICAgcmVzZXRUZXh0KCk7CisgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMTAsIDEz
KTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzICYm
IHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsKKyAgICAgICAgaWYgKCF3aW5k
b3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsIDUpKQorICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gJ1NVQ0NFU1M8YnI+JzsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNv
bGUnKS5pbm5lckhUTUwgKz0gIkZBSUxVUkUuIFRoZSB3b3JkICdtZWFnYScgaGFzIHVuZGVybGlu
ZS48YnI+IjsKICAgICB9Ci19CiAKLXJlc2V0VGV4dCgpOwotdGV4dGFyZWEuc2V0U2VsZWN0aW9u
UmFuZ2UoMTAsIDEzKTsKLXR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7Ci1pZiAod2luZG93Lmlu
dGVybmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKSB7Ci0gICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoNywzKSA9PSAwICYmIHdpbmRvdy5p
bnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoMTEsMikgPT0gMCkgewotICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsgJ1NVQ0NFU1M8YnI+JzsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsgIkZBSUxVUkUu
IFRoZSBzZWdtZW50ICdtZWEgZ2EnIGhhcyB1bmRlcmxpbmUuPGJyPiI7CisgICAgcmVzZXRUZXh0
KCk7CisgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMTAsIDEzKTsKKyAgICB0eXBlQ2hh
cmFjdGVyQ29tbWFuZCgnICcpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy5p
bnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJu
YWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsIDMpICYmICF3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxs
aW5nTWFya2VyKDExLCAyKSkKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b25zb2xlJykuaW5uZXJIVE1MICs9ICdTVUNDRVNTPGJyPic7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICJG
QUlMVVJFLiBUaGUgc2VnbWVudCAnbWVhIGdhJyBoYXMgdW5kZXJsaW5lLjxicj4iOwogICAgIH0K
LX0KIAotLy8gVGVzdGluZyBhcHBlbmRpbmcgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyLgotcmVz
ZXRUZXh0KCk7Ci10ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSg3LCA3KTsKLXR5cGVDaGFyYWN0
ZXJDb21tYW5kKCdhJyk7Ci1pZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJuYWxz
Lmhhc1NwZWxsaW5nTWFya2VyKSB7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxp
bmdNYXJrZXIoOCw4KSA9PSAwKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5p
bm5lckhUTUwgKyAnU1VDQ0VTUzxicj4nOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKyAiRkFJTFVSRS4gVGhlIHdvcmQgJ2FtZWFnZXNn
YScgaGFzIHVuZGVybGluZS48YnI+IjsKKyAgICAvLyBUZXN0aW5nIGFwcGVuZGluZyBub24td2hp
dGVzcGFjZSBjaGFyYWN0ZXIuCisgICAgcmVzZXRUZXh0KCk7CisgICAgdGV4dGFyZWEuc2V0U2Vs
ZWN0aW9uUmFuZ2UoNywgNyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2EnKTsKKyAgICBp
ZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2Vy
KSB7CisgICAgICAgIGlmICghd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig4LCA4
KSkKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJI
VE1MICs9ICdTVUNDRVNTPGJyPic7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICJGQUlMVVJFLiBUaGUgd29y
ZCAnYW1lYWdlc2dhJyBoYXMgdW5kZXJsaW5lLjxicj4iOwogICAgIH0KLX0KIAotcmVzZXRUZXh0
KCk7Ci10ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgxNSwgMTUpOwotdHlwZUNoYXJhY3RlckNv
bW1hbmQoJ2EnKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFz
U3BlbGxpbmdNYXJrZXIpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01h
cmtlcig3LDgpID09IDApIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNv
bGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVy
SFRNTCArICdTVUNDRVNTPGJyPic7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmlubmVySFRNTCArICJGQUlMVVJFLiBUaGUgd29yZCAnbWVhZ2VzZ2FhJyBo
YXMgdW5kZXJsaW5lLjxicj4iOworICAgIHJlc2V0VGV4dCgpOworICAgIHRleHRhcmVhLnNldFNl
bGVjdGlvblJhbmdlKDE1LCAxNSk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2EnKTsKKyAg
ICBpZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFy
a2VyKSB7CisgICAgICAgIGlmICghd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig3
LDgpKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5l
ckhUTUwgKz0gJ1NVQ0NFU1M8YnI+JzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gIkZBSUxVUkUuIFRoZSB3
b3JkICdtZWFnZXNnYWEnIGhhcyB1bmRlcmxpbmUuPGJyPiI7CiAgICAgfQotfQogCi0vLyBUZXN0
aW5nIHBhc3RpbmcuCi1yZXNldFRleHQoKTsKLXRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QnKTsKLXRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDAsNCk7Ci1leGVjQ29w
eUNvbW1hbmQoKTsKLXRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDcsIDcpOwotZXhlY1Bhc3Rl
Q29tbWFuZCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNT
cGVsbGluZ01hcmtlcikgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFy
a2VyKDExLDgpID09IDApIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNv
bGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVy
SFRNTCArICdTVUNDRVNTPGJyPic7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmlubmVySFRNTCArICJGQUlMVVJFLiBUaGUgd29yZCAnbWVhZ2VzZ2EnIGhh
cyB1bmRlcmxpbmUuPGJyPiI7CisgICAgLy8gVGVzdGluZyBwYXN0aW5nLgorICAgIHJlc2V0VGV4
dCgpOworICAgIHRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKyAg
ICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgwLCA0KTsKKyAgICBleGVjQ29weUNvbW1hbmQo
KTsKKyAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSg3LCA3KTsKKyAgICBleGVjUGFzdGVD
b21tYW5kKCk7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5o
YXNTcGVsbGluZ01hcmtlcikgeworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMuaGFzU3Bl
bGxpbmdNYXJrZXIoMTEsIDgpKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gJ1NVQ0NFU1M8YnI+JzsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKz0g
IkZBSUxVUkUuIFRoZSB3b3JkICdtZWFnZXNnYScgaGFzIHVuZGVybGluZS48YnI+IjsKICAgICB9
Ci19CiAKLXJlc2V0VGV4dCgpOwotdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdCcpOwotdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMCw0KTsKLWV4ZWNDb3B5Q29tbWFu
ZCgpOwotdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMTUsIDE1KTsKLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy51cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7Ci1l
eGVjUGFzdGVDb21tYW5kKCk7Ci1pZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJu
YWxzLmhhc1NwZWxsaW5nTWFya2VyKSB7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMuaGFzU3Bl
bGxpbmdNYXJrZXIoNyw4KSA9PSAwKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUn
KS5pbm5lckhUTUwgKyAnU1VDQ0VTUzxicj4nOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKyAiRkFJTFVSRS4gVGhlIHdvcmQgJ21lYWdl
c2dhJyBoYXMgdW5kZXJsaW5lLjxicj4iOworICAgIHJlc2V0VGV4dCgpOworICAgIHRleHRhcmVh
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKyAgICB0ZXh0YXJlYS5zZXRTZWxl
Y3Rpb25SYW5nZSgwLCA0KTsKKyAgICBleGVjQ29weUNvbW1hbmQoKTsKKyAgICB0ZXh0YXJlYS5z
ZXRTZWxlY3Rpb25SYW5nZSgxNSwgMTUpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICBpbnRlcm5hbHMudXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOworICAgIGV4ZWNQ
YXN0ZUNvbW1hbmQoKTsKKyAgICBpZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJu
YWxzLmhhc1NwZWxsaW5nTWFya2VyKSB7CisgICAgICAgIGlmICghd2luZG93LmludGVybmFscy5o
YXNTcGVsbGluZ01hcmtlcig3LCA4KSkKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICdTVUNDRVNTPGJyPic7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1M
ICs9ICJGQUlMVVJFLiBUaGUgd29yZCAnbWVhZ2VzZ2EnIGhhcyB1bmRlcmxpbmUuPGJyPiI7CiAg
ICAgfQotfQogCi1yZXNldFRleHQoKTsKLXRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3QnKTsKLXRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDAsNCk7Ci1leGVjQ29weUNv
bW1hbmQoKTsKLXRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDEwLCAxMCk7Ci1leGVjUGFzdGVD
b21tYW5kKCk7Ci1pZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1Nw
ZWxsaW5nTWFya2VyKSB7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJr
ZXIoNywzKSA9PSAwICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoMTUsNSkg
PT0gMCkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVy
SFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsgJ1NV
Q0NFU1M8YnI+JzsKLSAgICB9IGVsc2UgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xl
JykuaW5uZXJIVE1MICsgIkZBSUxVUkUuIFRoZSB3b3JkICdtZWFpdFwnc2dlc2dhJyBoYXMgdW5k
ZXJsaW5lLjxicj4iOworICAgIHJlc2V0VGV4dCgpOworICAgIHRleHRhcmVhID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKyAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgw
LCA0KTsKKyAgICBleGVjQ29weUNvbW1hbmQoKTsKKyAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25S
YW5nZSgxMCwgMTApOworICAgIGV4ZWNQYXN0ZUNvbW1hbmQoKTsKKyAgICBpZiAod2luZG93Lmlu
dGVybmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKSB7CisgICAgICAg
IGlmICghd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig3LCAzKSAmJiAhd2luZG93
LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcigxNSwgNSkpCisgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAnU1VDQ0VTUzxicj4nOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29s
ZScpLmlubmVySFRNTCArPSAiRkFJTFVSRS4gVGhlIHdvcmQgJ21lYWl0XCdzZ2VzZ2EnIGhhcyB1
bmRlcmxpbmUuPGJyPiI7CiAgICAgfQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAorcnVuVGVzdCgpOwogPC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDIzM2E5MzhmMTE1MGFlM2Q0YzJiNTk0ZmVjNjY4NmM1ZjFlZjQxYWMuLmI0YmI3
ZjQ5OTAxZjRlMjQzMzc5YmFjYTAzZTQ2M2E5NTRmMGQ5ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNyw2ICsyNyw4IEBAIGh0dHAvdGVzdHMvZ3pp
cC1jb250ZW50LWVuY29kaW5nIFsgUGFzcyBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL2V2ZW50cy9kb2N1bWVudC1sZXZlbC10b3VjaG1vdmUtZXZlbnQtbGlzdGVuZXIt
cGFzc2l2ZS1ieS1kZWZhdWx0Lmh0bWwgWyBQYXNzIF0KIAord2Via2l0Lm9yZy9iLzIxMTgxMyBl
ZGl0aW5nL21hYy9zcGVsbGluZy9lZGl0aW5nLXdvcmQtd2l0aC1tYXJrZXItMS5odG1sIFsgUGFz
cyBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIHBsYXRmb3Jt
LXNwZWNpZmljIGRpcmVjdG9yaWVzLgogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Lwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399620</attachid>
            <date>2020-05-17 21:13:30 -0700</date>
            <delta_ts>2020-05-17 21:14:22 -0700</delta_ts>
            <desc>To Land</desc>
            <filename>bug-211814-20200517211329.patch</filename>
            <type>text/plain</type>
            <size>17470</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzk1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjdlMWJjOWJhZjc2NzJmNDg3NjUy
ODA4MThlNWQ0ZTc5NDI0NDViMy4uZmU5OGZhMTQ1NWE3YzM3OTY5NjUwZWEzZGFiODdlZjVjMWM1
OGQ2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA1LTE3ICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGVkaXRpbmctd29yZC13aXRoLW1hcmtl
ci0xLmh0bWwgd29yayBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMTgxNAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
KworICAgICAgICBNaW5pbWFsIGNoYW5nZXMgbmVlZGVkIHRvIG1ha2UgdGhlIHRlc3Qgd29yayBv
biBpT1MgKyByZWJhc2UgdGhlIHJlc3VsdHMuIEkgd2FzIHRlbXB0ZWQgdG8gZ28KKyAgICAgICAg
ZnVsbCBqcy10ZXN0LmpzIGNvbnZlcnNpb24sIGJ1dCBJIGRpZG4ndCBkbyBzbyB0byByZWR1Y2Ug
dGhlIHJpc2sgSSBpbnRyb2R1Y2UgYSBidWcgYW5kIEkgdGhpbmsKKyAgICAgICAgaXMgZ29vZCBl
bm91Z2guCisKKyAgICAgICAgVG8gbWFrZSB0aGUgdGVzdCB3b3JrIG9uIGlPUyBJIGVuYWJsZSBp
bnRlcm5hbHMuc2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgKyB1c2UgVUlIZWxw
ZXIKKyAgICAgICAgdG8gYWN0aXZhdGUgdGhlIHRleHRhcmVhICsgYmx1ciB0aGUgdGV4dGFyZWEg
b24gcmVzZXQgKGZvciBtYXhpbWFsIGNvZGUgcmV1c2UpLiBJIGRpZG4ndCBlbmFibGUgdGhpcwor
ICAgICAgICB2aWEgdGhlIFdLVFIgb3B0aW9uIHNwZWxsQ2hlY2tpbmdEb3RzIGJlY2F1c2UgdGhp
cyB0ZXN0IHNob3VsZCBiZSBjYXBhYmxlIG9mIHJ1bm5pbmcgaW4gRHVtcFJlbmRlclRyZWUKKyAg
ICAgICAgdGhvdWdoIHdlIGRvbid0IGFjdHVhbGx5IHJ1biBEdW1wUmVuZGVyVHJlZSBmb3IgaU9T
IG9uIGFueSBib3RzLiBTbywgSSBkaWQgdGhpcyBsYXJnZWx5IGZvciBqdXN0IGZvciBtZS4KKwor
ICAgICAgICAqIGVkaXRpbmcvbWFjL3NwZWxsaW5nL2VkaXRpbmctd29yZC13aXRoLW1hcmtlci0x
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL21hYy9zcGVsbGluZy9lZGl0aW5nLXdv
cmQtd2l0aC1tYXJrZXItMS5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zOiBUZW1wb3JhcmlseSBtYXJrIHRoaXMgdGVzdCBhcyBQQVNTIGhlcmUgc28gdGhhdCBp
T1MgcnVucyBpdCBldmVuCisgICAgICAgIHRob3VnaCBpdHMgaW4gYSBNYWMtc3BlY2lmaWMgZGly
ZWN0b3J5LiBJIHdpbGwgcmVtb3ZlIHRoaXMgZW50cnkgd2hlbiBJIG1vdmUgdGhlIHRlc3QgdG8g
ZWRpdGluZy9zcGVsbGluZworICAgICAgICBpbiB0aGUgZml4IGZvciA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMjExODAyPi4KKwogMjAyMC0wNS0xNyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5j
b20+CiAKICAgICAgICAgaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXkvQXBwbGVQYXlJbnN0YWxsbWVu
dENvbmZpZ3VyYXRpb24uaHR0cHMuaHRtbCBmYWlscyBpbiBwdWJsaWMgU0RLIGJ1aWxkcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9tYWMvc3BlbGxpbmcvZWRpdGluZy13b3JkLXdp
dGgtbWFya2VyLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9tYWMvc3BlbGxp
bmcvZWRpdGluZy13b3JkLXdpdGgtbWFya2VyLTEtZXhwZWN0ZWQudHh0CmluZGV4IDhkMjE5MjEw
ZjNmOTcwOWRjZGE4MGIzZTA4ZjA1ZDkwMGZiNjk2YzYuLjk5NDYxZDQ0YTY4MTgyNzdkMzI4ZjRm
MDRlNmYyNzJmNjM1ZWExY2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvbWFjL3Nw
ZWxsaW5nL2VkaXRpbmctd29yZC13aXRoLW1hcmtlci0xLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL21hYy9zcGVsbGluZy9lZGl0aW5nLXdvcmQtd2l0aC1tYXJrZXItMS1l
eHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsMTMgQEAKLVRoZSB0ZXN0IHZlcmlmaWVkIHRoYXQgd2hl
biBhIHdvcmQgaXMgbW9kaWZpZWQsIGl0cyBTcGVsbGluZyBhbmQgQXV0b2NvcnJlY3Rpb24gTWFy
a2VycyBhcmUgcmVtb3ZlZC4gV2hlbiBtYW51bGx5IHRlc3RpbmcsIHR5cGUgIml0J3MgYSBtZWFn
ZXNnYSIsIHRoZW4gZWRpdCB0aGUgd29yZCAibWVhZ2VzZ2EiLiBZb3Ugc2hvdWxkIHNlZSB0aGUg
dW5kZXJsaW5lIHVuZGVyIHRoZSBtb2RpZmllZCAibWVhZ2VzZ2EiIGRpc3BwZWFycyBhZnRlciBl
ZGl0aW5nLgorVGhlIHRlc3QgdmVyaWZpZWQgdGhhdCB3aGVuIGEgd29yZCBpcyBtb2RpZmllZCwg
aXRzIHNwZWxsaW5nIG1hcmtlcnMgYXJlIHJlbW92ZWQuIFdoZW4gbWFudWFsbHkgdGVzdGluZywg
dHlwZSAiaXQncyBhIG1lYWdlc2dhIiwgdGhlbiBlZGl0IHRoZSB3b3JkICJtZWFnZXNnYSIuIFlv
dSBzaG91bGQgc2VlIHRoZSB1bmRlcmxpbmUgdW5kZXIgdGhlIG1vZGlmaWVkICJtZWFnZXNnYSIg
ZGlzcHBlYXJzIGFmdGVyIGVkaXRpbmcuCiAKIAogU1VDQ0VTUwotRkFJTFVSRS4gVGhlIHdvcmQg
J2FtZWFnZXNnYScgaGFzIHVuZGVybGluZS4KLUZBSUxVUkUuIFRoZSB3b3JkICdlYWdlc2dhJyBo
YXMgdW5kZXJsaW5lLgotRkFJTFVSRS4gVGhlIHNlZ21lbnQgJ21lYSBnZXNnYScgaGFzIHVuZGVy
bGluZS4KIFNVQ0NFU1MKLUZBSUxVUkUuIFRoZSBzZWdtZW50ICdtZWEgZ2EnIGhhcyB1bmRlcmxp
bmUuCi1GQUlMVVJFLiBUaGUgd29yZCAnYW1lYWdlc2dhJyBoYXMgdW5kZXJsaW5lLgorU1VDQ0VT
UworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUwogU1VDQ0VTUwogU1VDQ0VTUwog
U1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9tYWMvc3BlbGxpbmcvZWRp
dGluZy13b3JkLXdpdGgtbWFya2VyLTEuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvbWFjL3Nw
ZWxsaW5nL2VkaXRpbmctd29yZC13aXRoLW1hcmtlci0xLmh0bWwKaW5kZXggOTUxMjczMzJlNWVi
MTdlNjM5MzUxN2I0YjI0MjYyZDNmZTIyMTllNy4uNWIxMmUwYmVlMzc4ZThlMTA3ODVmY2I5MzVh
MTg0YzEzZTFjZDU4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9tYWMvc3BlbGxp
bmcvZWRpdGluZy13b3JkLXdpdGgtbWFya2VyLTEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL21hYy9zcGVsbGluZy9lZGl0aW5nLXdvcmQtd2l0aC1tYXJrZXItMS5odG1sCkBAIC0xLDE5
ICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0u
Li8uLi9lZGl0aW5nLmpzIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2VkaXRpbmcuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0Pgog
PHRpdGxlPkVkaXRpbmcgd29yZCB3aXRoIG1hcmtlciB0ZXN0IDE8L3RpdGxlPgorPHNjcmlwdD4K
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitpZiAod2luZG93LmludGVybmFs
cykgeworICAgIGlmIChVSUhlbHBlci5pc0lPU0ZhbWlseSgpIHx8ICFVSUhlbHBlci5pc1dlYktp
dDIoKSkKKyAgICAgICAgaW50ZXJuYWxzLnNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCh0cnVlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZp
ZWRUZXh0Q2hlY2tlckVuYWJsZWQodHJ1ZSk7CisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0cnVlKTsKKyAgICB9Cit9Cis8L3Nj
cmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHA+VGhlIHRlc3QgdmVyaWZpZWQgdGhhdCB3aGVuIGEg
d29yZCBpcyBtb2RpZmllZCwgaXRzIFNwZWxsaW5nIGFuZCBBdXRvY29ycmVjdGlvbiBNYXJrZXJz
IGFyZSByZW1vdmVkLgotV2hlbiBtYW51bGx5IHRlc3RpbmcsIHR5cGUgIml0J3MgYSBtZWFnZXNn
YSIsIHRoZW4gZWRpdCB0aGUgd29yZCAibWVhZ2VzZ2EiLiBZb3Ugc2hvdWxkIHNlZSB0aGUgCis8
cD5UaGUgdGVzdCB2ZXJpZmllZCB0aGF0IHdoZW4gYSB3b3JkIGlzIG1vZGlmaWVkLCBpdHMgc3Bl
bGxpbmcgbWFya2VycyBhcmUgcmVtb3ZlZC4KK1doZW4gbWFudWFsbHkgdGVzdGluZywgdHlwZSAi
aXQncyBhIG1lYWdlc2dhIiwgdGhlbiBlZGl0IHRoZSB3b3JkICJtZWFnZXNnYSIuIFlvdSBzaG91
bGQgc2VlIHRoZSAKIHVuZGVybGluZSB1bmRlciB0aGUgbW9kaWZpZWQgIm1lYWdlc2dhIiBkaXNw
cGVhcnMgYWZ0ZXIgZWRpdGluZy48L3A+CiA8dGV4dGFyZWEgaWQ9InRlc3QiIGNvbHM9IjgwIiBy
b3dzPSIxMCI+PC90ZXh0YXJlYT4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdCBs
YW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLWZ1bmN0aW9uIHJl
c2V0VGV4dCgpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpLmZvY3VzKCk7
Ci0gICAgZXhlY1NlbGVjdEFsbENvbW1hbmQoKTsKLSAgICBleGVjRGVsZXRlQ29tbWFuZCgpOwor
PHNjcmlwdD4KK2xldCB0ZXh0YXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7
CisKK2FzeW5jIGZ1bmN0aW9uIHJlc2V0VGV4dCgpCit7CisgICAgdGV4dGFyZWEuYmx1cigpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZh
dGVFbGVtZW50QW5kV2FpdEZvcklucHV0U2Vzc2lvbih0ZXh0YXJlYSk7CisgICAgZWxzZQorICAg
ICAgICB0ZXh0YXJlYS5mb2N1cygpOworICAgIHRleHRhcmVhLnZhbHVlID0gIiI7CiAgICAgdHlw
ZUNoYXJhY3RlckNvbW1hbmQoJ2knKTsKICAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgndCcpOwog
ICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdcJycpOwpAQCAtMzIsMTQ3ICs1NSwxMzcgQEAgZnVu
Y3Rpb24gcmVzZXRUZXh0KCkgewogICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7CiB9CiAK
LWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwot
fQotCi1yZXNldFRleHQoKTsKLXRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3QnKTsKLXRleHRhcmVhLmZvY3VzKCk7Ci10ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgxNCwg
MTUpOwotZXhlY0RlbGV0ZUNvbW1hbmQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRv
dy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsKLSAgICBpZiAod2luZG93LmludGVybmFs
cy5oYXNTcGVsbGluZ01hcmtlcig3LDcpID09IDApIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSAnU1VDQ0VTUzxicj4nOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1M
ID0gIkZBSUxVUkUuIFRoZSB3b3JkICdtZWFnZXNnJyBoYXMgdW5kZXJsaW5lLjxicj4iOworYXN5
bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgcmVzZXRUZXh0KCk7CisgICAgdGV4dGFyZWEu
c2V0U2VsZWN0aW9uUmFuZ2UoMTQsIDE1KTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgpOworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJr
ZXIpIHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcs
IDcpKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5l
ckhUTUwgPSAnU1VDQ0VTUzxicj4nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9ICJGQUlMVVJFLiBUaGUgd29y
ZCAnbWVhZ2VzZycgaGFzIHVuZGVybGluZS48YnI+IjsKICAgICB9Ci19CiAKLS8vIFRlc3Rpbmcg
ZGVsZXRpb24gYXQgdmFyaW91cyBsb2NhdGlvbi4KLXJlc2V0VGV4dCgpOwotdGV4dGFyZWEuc2V0
U2VsZWN0aW9uUmFuZ2UoNiwgNik7Ci1leGVjRm9yd2FyZERlbGV0ZUNvbW1hbmQoKTsKLWlmICh3
aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsK
LSAgICBpZiAod2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig2LDgpID09IDApIHsK
LSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArICdTVUNDRVNTPGJy
Pic7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNv
bGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVy
SFRNTCArICJGQUlMVVJFLiBUaGUgd29yZCAnYW1lYWdlc2dhJyBoYXMgdW5kZXJsaW5lLjxicj4i
OworICAgIC8vIFRlc3RpbmcgZGVsZXRpb24gYXQgdmFyaW91cyBsb2NhdGlvbi4KKyAgICByZXNl
dFRleHQoKTsKKyAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSg2LCA2KTsKKyAgICBleGVj
Rm9yd2FyZERlbGV0ZUNvbW1hbmQoKTsKKyAgICBpZiAod2luZG93LmludGVybmFscyAmJiB3aW5k
b3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKSB7CisgICAgICAgIGlmICghd2luZG93Lmlu
dGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig2LCA4KSkKKyAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICdTVUNDRVNTPGJyPic7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyku
aW5uZXJIVE1MICs9ICJGQUlMVVJFLiBUaGUgd29yZCAnYW1lYWdlc2dhJyBoYXMgdW5kZXJsaW5l
Ljxicj4iOwogICAgIH0KLX0KIAotcmVzZXRUZXh0KCk7Ci10ZXh0YXJlYS5zZXRTZWxlY3Rpb25S
YW5nZSg3LCA3KTsKLWV4ZWNGb3J3YXJkRGVsZXRlQ29tbWFuZCgpOwotaWYgKHdpbmRvdy5pbnRl
cm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikgewotICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsNykgPT0gMCkgewotICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsgJ1NVQ0NFU1M8YnI+JzsKLSAgICB9
IGVsc2UgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVy
SFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsgIkZB
SUxVUkUuIFRoZSB3b3JkICdlYWdlc2dhJyBoYXMgdW5kZXJsaW5lLjxicj4iOworICAgIHJlc2V0
VGV4dCgpOworICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDcsIDcpOworICAgIGV4ZWNG
b3J3YXJkRGVsZXRlQ29tbWFuZCgpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRv
dy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50
ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsIDcpKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gJ1NVQ0NFU1M8YnI+JzsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5p
bm5lckhUTUwgKz0gIkZBSUxVUkUuIFRoZSB3b3JkICdlYWdlc2dhJyBoYXMgdW5kZXJsaW5lLjxi
cj4iOwogICAgIH0KLX0KIAotcmVzZXRUZXh0KCk7Ci10ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5n
ZSgxMCwgMTApOwotdHlwZUNoYXJhY3RlckNvbW1hbmQoJyAnKTsKLWlmICh3aW5kb3cuaW50ZXJu
YWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsKLSAgICBpZiAod2lu
ZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig3LDMpID09IDAgJiYgd2luZG93LmludGVy
bmFscy5oYXNTcGVsbGluZ01hcmtlcigxMSw1KSA9PSAwKSB7Ci0gICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKyAnU1VDQ0VTUzxicj4nOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKyAiRkFJTFVSRS4gVGhl
IHNlZ21lbnQgJ21lYSBnZXNnYScgaGFzIHVuZGVybGluZS48YnI+IjsKKyAgICByZXNldFRleHQo
KTsKKyAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgxMCwgMTApOworICAgIHR5cGVDaGFy
YWN0ZXJDb21tYW5kKCcgJyk7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93Lmlu
dGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikgeworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5h
bHMuaGFzU3BlbGxpbmdNYXJrZXIoNywgMykgJiYgIXdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxp
bmdNYXJrZXIoMTEsIDUpKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnNvbGUnKS5pbm5lckhUTUwgKz0gJ1NVQ0NFU1M8YnI+JzsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gIkZB
SUxVUkUuIFRoZSBzZWdtZW50ICdtZWEgZ2VzZ2EnIGhhcyB1bmRlcmxpbmUuPGJyPiI7CiAgICAg
fQotfQogCi1yZXNldFRleHQoKTsKLXRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDEwLCAxMyk7
Ci1leGVjRGVsZXRlQ29tbWFuZCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93Lmlu
dGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzLmhh
c1NwZWxsaW5nTWFya2VyKDcsNSkgPT0gMCkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25z
b2xlJykuaW5uZXJIVE1MICsgJ1NVQ0NFU1M8YnI+JzsKLSAgICB9IGVsc2UgewotICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsgIkZBSUxVUkUuIFRoZSB3b3JkICdt
ZWFnYScgaGFzIHVuZGVybGluZS48YnI+IjsKKyAgICByZXNldFRleHQoKTsKKyAgICB0ZXh0YXJl
YS5zZXRTZWxlY3Rpb25SYW5nZSgxMCwgMTMpOworICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7Cisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01h
cmtlcikgeworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIo
NywgNSkpCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlu
bmVySFRNTCArPSAnU1VDQ0VTUzxicj4nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAiRkFJTFVSRS4gVGhl
IHdvcmQgJ21lYWdhJyBoYXMgdW5kZXJsaW5lLjxicj4iOwogICAgIH0KLX0KIAotcmVzZXRUZXh0
KCk7Ci10ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgxMCwgMTMpOwotdHlwZUNoYXJhY3RlckNv
bW1hbmQoJyAnKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFz
U3BlbGxpbmdNYXJrZXIpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01h
cmtlcig3LDMpID09IDAgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcigxMSwy
KSA9PSAwKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5u
ZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKyAn
U1VDQ0VTUzxicj4nOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNv
bGUnKS5pbm5lckhUTUwgKyAiRkFJTFVSRS4gVGhlIHNlZ21lbnQgJ21lYSBnYScgaGFzIHVuZGVy
bGluZS48YnI+IjsKKyAgICByZXNldFRleHQoKTsKKyAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25S
YW5nZSgxMCwgMTMpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7CisgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikgewor
ICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoNywgMykgJiYg
IXdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoMTEsIDIpKQorICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gJ1NVQ0NFU1M8
YnI+JzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gIkZBSUxVUkUuIFRoZSBzZWdtZW50ICdtZWEgZ2EnIGhh
cyB1bmRlcmxpbmUuPGJyPiI7CiAgICAgfQotfQogCi0vLyBUZXN0aW5nIGFwcGVuZGluZyBub24t
d2hpdGVzcGFjZSBjaGFyYWN0ZXIuCi1yZXNldFRleHQoKTsKLXRleHRhcmVhLnNldFNlbGVjdGlv
blJhbmdlKDcsIDcpOwotdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2EnKTsKLWlmICh3aW5kb3cuaW50
ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsKLSAgICBpZiAo
d2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig4LDgpID09IDApIHsKLSAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArICdTVUNDRVNTPGJyPic7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5l
ckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArICJG
QUlMVVJFLiBUaGUgd29yZCAnYW1lYWdlc2dhJyBoYXMgdW5kZXJsaW5lLjxicj4iOworICAgIC8v
IFRlc3RpbmcgYXBwZW5kaW5nIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3Rlci4KKyAgICByZXNldFRl
eHQoKTsKKyAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSg3LCA3KTsKKyAgICB0eXBlQ2hh
cmFjdGVyQ29tbWFuZCgnYScpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy5p
bnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJu
YWxzLmhhc1NwZWxsaW5nTWFya2VyKDgsIDgpKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gJ1NVQ0NFU1M8YnI+JzsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5l
ckhUTUwgKz0gIkZBSUxVUkUuIFRoZSB3b3JkICdhbWVhZ2VzZ2EnIGhhcyB1bmRlcmxpbmUuPGJy
PiI7CiAgICAgfQotfQogCi1yZXNldFRleHQoKTsKLXRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdl
KDE1LCAxNSk7Ci10eXBlQ2hhcmFjdGVyQ29tbWFuZCgnYScpOwotaWYgKHdpbmRvdy5pbnRlcm5h
bHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikgewotICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsOCkgPT0gMCkgewotICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsgJ1NVQ0NFU1M8YnI+JzsKLSAgICB9IGVs
c2UgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRN
TCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsgIkZBSUxV
UkUuIFRoZSB3b3JkICdtZWFnZXNnYWEnIGhhcyB1bmRlcmxpbmUuPGJyPiI7CisgICAgcmVzZXRU
ZXh0KCk7CisgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMTUsIDE1KTsKKyAgICB0eXBl
Q2hhcmFjdGVyQ29tbWFuZCgnYScpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRv
dy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50
ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsOCkpCisgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAnU1VDQ0VTUzxicj4nOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlu
bmVySFRNTCArPSAiRkFJTFVSRS4gVGhlIHdvcmQgJ21lYWdlc2dhYScgaGFzIHVuZGVybGluZS48
YnI+IjsKICAgICB9Ci19CiAKLS8vIFRlc3RpbmcgcGFzdGluZy4KLXJlc2V0VGV4dCgpOwotdGV4
dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwotdGV4dGFyZWEuc2V0U2Vs
ZWN0aW9uUmFuZ2UoMCw0KTsKLWV4ZWNDb3B5Q29tbWFuZCgpOwotdGV4dGFyZWEuc2V0U2VsZWN0
aW9uUmFuZ2UoNywgNyk7Ci1leGVjUGFzdGVDb21tYW5kKCk7Ci1pZiAod2luZG93LmludGVybmFs
cyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKSB7Ci0gICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoMTEsOCkgPT0gMCkgewotICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsgJ1NVQ0NFU1M8YnI+JzsKLSAgICB9IGVs
c2UgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRN
TCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsgIkZBSUxV
UkUuIFRoZSB3b3JkICdtZWFnZXNnYScgaGFzIHVuZGVybGluZS48YnI+IjsKKyAgICAvLyBUZXN0
aW5nIHBhc3RpbmcuCisgICAgcmVzZXRUZXh0KCk7CisgICAgdGV4dGFyZWEgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdCcpOworICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDAs
IDQpOworICAgIGV4ZWNDb3B5Q29tbWFuZCgpOworICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJh
bmdlKDcsIDcpOworICAgIGV4ZWNQYXN0ZUNvbW1hbmQoKTsKKyAgICBpZiAod2luZG93LmludGVy
bmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKSB7CisgICAgICAgIGlm
ICghd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcigxMSwgOCkpCisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAnU1VDQ0VT
Uzxicj4nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmlubmVySFRNTCArPSAiRkFJTFVSRS4gVGhlIHdvcmQgJ21lYWdlc2dhJyBo
YXMgdW5kZXJsaW5lLjxicj4iOwogICAgIH0KLX0KIAotcmVzZXRUZXh0KCk7Ci10ZXh0YXJlYSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7Ci10ZXh0YXJlYS5zZXRTZWxlY3Rpb25S
YW5nZSgwLDQpOwotZXhlY0NvcHlDb21tYW5kKCk7Ci10ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5n
ZSgxNSwgMTUpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnVwZGF0ZUVk
aXRvclVJTm93SWZTY2hlZHVsZWQoKTsKLWV4ZWNQYXN0ZUNvbW1hbmQoKTsKLWlmICh3aW5kb3cu
aW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsKLSAgICBp
ZiAod2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig3LDgpID09IDApIHsKLSAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArICdTVUNDRVNTPGJyPic7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5p
bm5lckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCAr
ICJGQUlMVVJFLiBUaGUgd29yZCAnbWVhZ2VzZ2EnIGhhcyB1bmRlcmxpbmUuPGJyPiI7CisgICAg
cmVzZXRUZXh0KCk7CisgICAgdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dCcpOworICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDAsIDQpOworICAgIGV4ZWNDb3B5
Q29tbWFuZCgpOworICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDE1LCAxNSk7CisgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy51cGRhdGVFZGl0b3JVSU5v
d0lmU2NoZWR1bGVkKCk7CisgICAgZXhlY1Bhc3RlQ29tbWFuZCgpOworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsKKyAgICAg
ICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsIDgpKQorICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gJ1NV
Q0NFU1M8YnI+JzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gIkZBSUxVUkUuIFRoZSB3b3JkICdtZWFnZXNn
YScgaGFzIHVuZGVybGluZS48YnI+IjsKICAgICB9Ci19CiAKLXJlc2V0VGV4dCgpOwotdGV4dGFy
ZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwotdGV4dGFyZWEuc2V0U2VsZWN0
aW9uUmFuZ2UoMCw0KTsKLWV4ZWNDb3B5Q29tbWFuZCgpOwotdGV4dGFyZWEuc2V0U2VsZWN0aW9u
UmFuZ2UoMTAsIDEwKTsKLWV4ZWNQYXN0ZUNvbW1hbmQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxz
ICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsKLSAgICBpZiAod2luZG93
LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig3LDMpID09IDAgJiYgd2luZG93LmludGVybmFs
cy5oYXNTcGVsbGluZ01hcmtlcigxNSw1KSA9PSAwKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKS5pbm5lckhUTUwgKyAnU1VDQ0VTUzxicj4nOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKyAiRkFJTFVSRS4gVGhlIHdv
cmQgJ21lYWl0XCdzZ2VzZ2EnIGhhcyB1bmRlcmxpbmUuPGJyPiI7CisgICAgcmVzZXRUZXh0KCk7
CisgICAgdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOworICAgIHRl
eHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDAsIDQpOworICAgIGV4ZWNDb3B5Q29tbWFuZCgpOwor
ICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDEwLCAxMCk7CisgICAgZXhlY1Bhc3RlQ29t
bWFuZCgpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFz
U3BlbGxpbmdNYXJrZXIpIHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxs
aW5nTWFya2VyKDcsIDMpICYmICF3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDE1
LCA1KSkKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5u
ZXJIVE1MICs9ICdTVUNDRVNTPGJyPic7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICJGQUlMVVJFLiBUaGUg
d29yZCAnbWVhaXRcJ3NnZXNnYScgaGFzIHVuZGVybGluZS48YnI+IjsKICAgICB9CisKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
fQogCitydW5UZXN0KCk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjQ3YjhlN2VlOGQ1NjgwZTdjNTdk
NDkzZWEzYmEwNzBjMjJhMzlmNi4uYjNhMTg1NmI2ODEyMDMyNjA3ZmU2NzZiZjlkMTU2ODk2ZTRk
YWJmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI3
LDYgKzI3LDggQEAgaHR0cC90ZXN0cy9nemlwLWNvbnRlbnQtZW5jb2RpbmcgWyBQYXNzIF0KIAog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL2RvY3VtZW50LWxldmVs
LXRvdWNobW92ZS1ldmVudC1saXN0ZW5lci1wYXNzaXZlLWJ5LWRlZmF1bHQuaHRtbCBbIFBhc3Mg
XQogCit3ZWJraXQub3JnL2IvMjExODEzIGVkaXRpbmcvbWFjL3NwZWxsaW5nL2VkaXRpbmctd29y
ZC13aXRoLW1hcmtlci0xLmh0bWwgWyBQYXNzIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwogIyBFbmQgcGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0b3JpZXMuCiAjLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399621</attachid>
            <date>2020-05-17 21:14:23 -0700</date>
            <delta_ts>2020-05-17 21:14:23 -0700</delta_ts>
            <desc>To Land</desc>
            <filename>bug-211814-20200517211422.patch</filename>
            <type>text/plain</type>
            <size>17487</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzk1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjdlMWJjOWJhZjc2NzJmNDg3NjUy
ODA4MThlNWQ0ZTc5NDI0NDViMy4uMjg1OWFjM2UzZWU2NWUyNzdjNGUyMjdiZDkyNTE4ODhkYjI3
MGNiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA1LTE3ICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGVkaXRpbmctd29yZC13aXRoLW1hcmtl
ci0xLmh0bWwgd29yayBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMTgxNAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlciBh
bmQgRGF2aWQgS2lsemVyLgorCisgICAgICAgIE1pbmltYWwgY2hhbmdlcyBuZWVkZWQgdG8gbWFr
ZSB0aGUgdGVzdCB3b3JrIG9uIGlPUyArIHJlYmFzZSB0aGUgcmVzdWx0cy4gSSB3YXMgdGVtcHRl
ZCB0byBnbworICAgICAgICBmdWxsIGpzLXRlc3QuanMgY29udmVyc2lvbiwgYnV0IEkgZGlkbid0
IGRvIHNvIHRvIHJlZHVjZSB0aGUgcmlzayBJIGludHJvZHVjZSBhIGJ1ZyBhbmQgSSB0aGluawor
ICAgICAgICBpcyBnb29kIGVub3VnaC4KKworICAgICAgICBUbyBtYWtlIHRoZSB0ZXN0IHdvcmsg
b24gaU9TIEkgZW5hYmxlIGludGVybmFscy5zZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWQoKSArIHVzZSBVSUhlbHBlcgorICAgICAgICB0byBhY3RpdmF0ZSB0aGUgdGV4dGFyZWEgKyBi
bHVyIHRoZSB0ZXh0YXJlYSBvbiByZXNldCAoZm9yIG1heGltYWwgY29kZSByZXVzZSkuIEkgZGlk
bid0IGVuYWJsZSB0aGlzCisgICAgICAgIHZpYSB0aGUgV0tUUiBvcHRpb24gc3BlbGxDaGVja2lu
Z0RvdHMgYmVjYXVzZSB0aGlzIHRlc3Qgc2hvdWxkIGJlIGNhcGFibGUgb2YgcnVubmluZyBpbiBE
dW1wUmVuZGVyVHJlZQorICAgICAgICB0aG91Z2ggd2UgZG9uJ3QgYWN0dWFsbHkgcnVuIER1bXBS
ZW5kZXJUcmVlIGZvciBpT1Mgb24gYW55IGJvdHMuIFNvLCBJIGRpZCB0aGlzIGxhcmdlbHkgZm9y
IGp1c3QgZm9yIG1lLgorCisgICAgICAgICogZWRpdGluZy9tYWMvc3BlbGxpbmcvZWRpdGluZy13
b3JkLXdpdGgtbWFya2VyLTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvbWFjL3Nw
ZWxsaW5nL2VkaXRpbmctd29yZC13aXRoLW1hcmtlci0xLmh0bWw6CisgICAgICAgICogcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6IFRlbXBvcmFyaWx5IG1hcmsgdGhpcyB0ZXN0IGFzIFBB
U1MgaGVyZSBzbyB0aGF0IGlPUyBydW5zIGl0IGV2ZW4KKyAgICAgICAgdGhvdWdoIGl0cyBpbiBh
IE1hYy1zcGVjaWZpYyBkaXJlY3RvcnkuIEkgd2lsbCByZW1vdmUgdGhpcyBlbnRyeSB3aGVuIEkg
bW92ZSB0aGUgdGVzdCB0byBlZGl0aW5nL3NwZWxsaW5nCisgICAgICAgIGluIHRoZSBmaXggZm9y
IDxodHRwczovL3dlYmtpdC5vcmcvYi8yMTE4MDI+LgorCiAyMDIwLTA1LTE3ICBBbmR5IEVzdGVz
ICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwL3Rlc3RzL3NzbC9hcHBsZXBheS9B
cHBsZVBheUluc3RhbGxtZW50Q29uZmlndXJhdGlvbi5odHRwcy5odG1sIGZhaWxzIGluIHB1Ymxp
YyBTREsgYnVpbGRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL21hYy9zcGVsbGlu
Zy9lZGl0aW5nLXdvcmQtd2l0aC1tYXJrZXItMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL21hYy9zcGVsbGluZy9lZGl0aW5nLXdvcmQtd2l0aC1tYXJrZXItMS1leHBlY3RlZC50
eHQKaW5kZXggOGQyMTkyMTBmM2Y5NzA5ZGNkYTgwYjNlMDhmMDVkOTAwZmI2OTZjNi4uOTk0NjFk
NDRhNjgxODI3N2QzMjhmNGYwNGU2ZjI3MmY2MzVlYTFjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9tYWMvc3BlbGxpbmcvZWRpdGluZy13b3JkLXdpdGgtbWFya2VyLTEtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvbWFjL3NwZWxsaW5nL2VkaXRpbmctd29y
ZC13aXRoLW1hcmtlci0xLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSwxMyBAQAotVGhlIHRlc3Qg
dmVyaWZpZWQgdGhhdCB3aGVuIGEgd29yZCBpcyBtb2RpZmllZCwgaXRzIFNwZWxsaW5nIGFuZCBB
dXRvY29ycmVjdGlvbiBNYXJrZXJzIGFyZSByZW1vdmVkLiBXaGVuIG1hbnVsbHkgdGVzdGluZywg
dHlwZSAiaXQncyBhIG1lYWdlc2dhIiwgdGhlbiBlZGl0IHRoZSB3b3JkICJtZWFnZXNnYSIuIFlv
dSBzaG91bGQgc2VlIHRoZSB1bmRlcmxpbmUgdW5kZXIgdGhlIG1vZGlmaWVkICJtZWFnZXNnYSIg
ZGlzcHBlYXJzIGFmdGVyIGVkaXRpbmcuCitUaGUgdGVzdCB2ZXJpZmllZCB0aGF0IHdoZW4gYSB3
b3JkIGlzIG1vZGlmaWVkLCBpdHMgc3BlbGxpbmcgbWFya2VycyBhcmUgcmVtb3ZlZC4gV2hlbiBt
YW51YWxseSB0ZXN0aW5nLCB0eXBlICJpdCdzIGEgbWVhZ2VzZ2EiLCB0aGVuIGVkaXQgdGhlIHdv
cmQgIm1lYWdlc2dhIi4gWW91IHNob3VsZCBzZWUgdGhlIHVuZGVybGluZSB1bmRlciB0aGUgbW9k
aWZpZWQgIm1lYWdlc2dhIiBkaXNwcGVhcnMgYWZ0ZXIgZWRpdGluZy4KIAogCiBTVUNDRVNTCi1G
QUlMVVJFLiBUaGUgd29yZCAnYW1lYWdlc2dhJyBoYXMgdW5kZXJsaW5lLgotRkFJTFVSRS4gVGhl
IHdvcmQgJ2VhZ2VzZ2EnIGhhcyB1bmRlcmxpbmUuCi1GQUlMVVJFLiBUaGUgc2VnbWVudCAnbWVh
IGdlc2dhJyBoYXMgdW5kZXJsaW5lLgogU1VDQ0VTUwotRkFJTFVSRS4gVGhlIHNlZ21lbnQgJ21l
YSBnYScgaGFzIHVuZGVybGluZS4KLUZBSUxVUkUuIFRoZSB3b3JkICdhbWVhZ2VzZ2EnIGhhcyB1
bmRlcmxpbmUuCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCiBT
VUNDRVNTCiBTVUNDRVNTCiBTVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L21hYy9zcGVsbGluZy9lZGl0aW5nLXdvcmQtd2l0aC1tYXJrZXItMS5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9tYWMvc3BlbGxpbmcvZWRpdGluZy13b3JkLXdpdGgtbWFya2VyLTEuaHRtbApp
bmRleCA5NTEyNzMzMmU1ZWIxN2U2MzkzNTE3YjRiMjQyNjJkM2ZlMjIxOWU3Li41YjEyZTBiZWUz
NzhlOGUxMDc4NWZjYjkzNWExODRjMTNlMWNkNThjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL21hYy9zcGVsbGluZy9lZGl0aW5nLXdvcmQtd2l0aC1tYXJrZXItMS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvbWFjL3NwZWxsaW5nL2VkaXRpbmctd29yZC13aXRoLW1hcmtl
ci0xLmh0bWwKQEAgLTEsMTkgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVh
ZD4KLTxzY3JpcHQgc3JjPS4uLy4uL2VkaXRpbmcuanMgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZWRpdGlu
Zy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+CiA8dGl0bGU+RWRpdGluZyB3b3JkIHdpdGggbWFya2VyIHRlc3QgMTwv
dGl0bGU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgaWYgKFVJSGVscGVyLmlzSU9TRmFtaWx5KCkgfHwg
IVVJSGVscGVyLmlzV2ViS2l0MigpKQorICAgICAgICBpbnRlcm5hbHMuc2V0Q29udGludW91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKHRydWUpOworICAgIGVsc2UgeworICAgICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKHRydWUp
OworICAgIH0KK30KKzwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08cD5UaGUgdGVzdCB2ZXJp
ZmllZCB0aGF0IHdoZW4gYSB3b3JkIGlzIG1vZGlmaWVkLCBpdHMgU3BlbGxpbmcgYW5kIEF1dG9j
b3JyZWN0aW9uIE1hcmtlcnMgYXJlIHJlbW92ZWQuCi1XaGVuIG1hbnVsbHkgdGVzdGluZywgdHlw
ZSAiaXQncyBhIG1lYWdlc2dhIiwgdGhlbiBlZGl0IHRoZSB3b3JkICJtZWFnZXNnYSIuIFlvdSBz
aG91bGQgc2VlIHRoZSAKKzxwPlRoZSB0ZXN0IHZlcmlmaWVkIHRoYXQgd2hlbiBhIHdvcmQgaXMg
bW9kaWZpZWQsIGl0cyBzcGVsbGluZyBtYXJrZXJzIGFyZSByZW1vdmVkLgorV2hlbiBtYW51YWxs
eSB0ZXN0aW5nLCB0eXBlICJpdCdzIGEgbWVhZ2VzZ2EiLCB0aGVuIGVkaXQgdGhlIHdvcmQgIm1l
YWdlc2dhIi4gWW91IHNob3VsZCBzZWUgdGhlIAogdW5kZXJsaW5lIHVuZGVyIHRoZSBtb2RpZmll
ZCAibWVhZ2VzZ2EiIGRpc3BwZWFycyBhZnRlciBlZGl0aW5nLjwvcD4KIDx0ZXh0YXJlYSBpZD0i
dGVzdCIgY29scz0iODAiIHJvd3M9IjEwIj48L3RleHRhcmVhPgogPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci08c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgotZnVuY3Rpb24gcmVzZXRUZXh0KCkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0JykuZm9jdXMoKTsKLSAgICBleGVjU2VsZWN0QWxsQ29tbWFuZCgpOwotICAgIGV4ZWNE
ZWxldGVDb21tYW5kKCk7Cis8c2NyaXB0PgorbGV0IHRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRlc3QiKTsKKworYXN5bmMgZnVuY3Rpb24gcmVzZXRUZXh0KCkKK3sKKyAgICB0
ZXh0YXJlYS5ibHVyKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICBhd2Fp
dCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uKHRleHRhcmVh
KTsKKyAgICBlbHNlCisgICAgICAgIHRleHRhcmVhLmZvY3VzKCk7CisgICAgdGV4dGFyZWEudmFs
dWUgPSAiIjsKICAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnaScpOwogICAgIHR5cGVDaGFyYWN0
ZXJDb21tYW5kKCd0Jyk7CiAgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ1wnJyk7CkBAIC0zMiwx
NDcgKzU1LDEzNyBAQCBmdW5jdGlvbiByZXNldFRleHQoKSB7CiAgICAgdHlwZUNoYXJhY3RlckNv
bW1hbmQoJyAnKTsKIH0KIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci19Ci0KLXJlc2V0VGV4dCgpOwotdGV4dGFyZWEgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdCcpOwotdGV4dGFyZWEuZm9jdXMoKTsKLXRleHRhcmVhLnNldFNl
bGVjdGlvblJhbmdlKDE0LCAxNSk7Ci1leGVjRGVsZXRlQ29tbWFuZCgpOwotaWYgKHdpbmRvdy5p
bnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikgewotICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsNykgPT0gMCkgewotICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9ICdTVUNDRVNT
PGJyPic7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnNvbGUnKS5pbm5lckhUTUwgPSAiRkFJTFVSRS4gVGhlIHdvcmQgJ21lYWdlc2cnIGhhcyB1bmRl
cmxpbmUuPGJyPiI7Cithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICByZXNldFRleHQo
KTsKKyAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgxNCwgMTUpOworICAgIGV4ZWNEZWxl
dGVDb21tYW5kKCk7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmludGVybmFs
cy5oYXNTcGVsbGluZ01hcmtlcikgeworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMuaGFz
U3BlbGxpbmdNYXJrZXIoNywgNykpCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmlubmVySFRNTCA9ICdTVUNDRVNTPGJyPic7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0g
IkZBSUxVUkUuIFRoZSB3b3JkICdtZWFnZXNnJyBoYXMgdW5kZXJsaW5lLjxicj4iOwogICAgIH0K
LX0KIAotLy8gVGVzdGluZyBkZWxldGlvbiBhdCB2YXJpb3VzIGxvY2F0aW9uLgotcmVzZXRUZXh0
KCk7Ci10ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSg2LCA2KTsKLWV4ZWNGb3J3YXJkRGVsZXRl
Q29tbWFuZCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNT
cGVsbGluZ01hcmtlcikgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFy
a2VyKDYsOCkgPT0gMCkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29s
ZScpLmlubmVySFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJI
VE1MICsgJ1NVQ0NFU1M8YnI+JzsKLSAgICB9IGVsc2UgewotICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb25zb2xlJykuaW5uZXJIVE1MICsgIkZBSUxVUkUuIFRoZSB3b3JkICdhbWVhZ2VzZ2EnIGhh
cyB1bmRlcmxpbmUuPGJyPiI7CisgICAgLy8gVGVzdGluZyBkZWxldGlvbiBhdCB2YXJpb3VzIGxv
Y2F0aW9uLgorICAgIHJlc2V0VGV4dCgpOworICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdl
KDYsIDYpOworICAgIGV4ZWNGb3J3YXJkRGVsZXRlQ29tbWFuZCgpOworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIpIHsKKyAgICAg
ICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDYsIDgpKQorICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gJ1NV
Q0NFU1M8YnI+JzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gIkZBSUxVUkUuIFRoZSB3b3JkICdhbWVhZ2Vz
Z2EnIGhhcyB1bmRlcmxpbmUuPGJyPiI7CiAgICAgfQotfQogCi1yZXNldFRleHQoKTsKLXRleHRh
cmVhLnNldFNlbGVjdGlvblJhbmdlKDcsIDcpOwotZXhlY0ZvcndhcmREZWxldGVDb21tYW5kKCk7
Ci1pZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFy
a2VyKSB7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoNyw3KSA9
PSAwKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJI
VE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKyAnU1VD
Q0VTUzxicj4nOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUn
KS5pbm5lckhUTUwgKyAiRkFJTFVSRS4gVGhlIHdvcmQgJ2VhZ2VzZ2EnIGhhcyB1bmRlcmxpbmUu
PGJyPiI7CisgICAgcmVzZXRUZXh0KCk7CisgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2Uo
NywgNyk7CisgICAgZXhlY0ZvcndhcmREZWxldGVDb21tYW5kKCk7CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikgeworICAgICAg
ICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoNywgNykpCisgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAnU1VD
Q0VTUzxicj4nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAiRkFJTFVSRS4gVGhlIHdvcmQgJ2VhZ2VzZ2En
IGhhcyB1bmRlcmxpbmUuPGJyPiI7CiAgICAgfQotfQogCi1yZXNldFRleHQoKTsKLXRleHRhcmVh
LnNldFNlbGVjdGlvblJhbmdlKDEwLCAxMCk7Ci10eXBlQ2hhcmFjdGVyQ29tbWFuZCgnICcpOwot
aWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtl
cikgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsMykgPT0g
MCAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDExLDUpID09IDApIHsKLSAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArICdTVUNDRVNTPGJyPic7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUn
KS5pbm5lckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRN
TCArICJGQUlMVVJFLiBUaGUgc2VnbWVudCAnbWVhIGdlc2dhJyBoYXMgdW5kZXJsaW5lLjxicj4i
OworICAgIHJlc2V0VGV4dCgpOworICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDEwLCAx
MCk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJyAnKTsKKyAgICBpZiAod2luZG93LmludGVy
bmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKSB7CisgICAgICAgIGlm
ICghd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig3LCAzKSAmJiAhd2luZG93Lmlu
dGVybmFscy5oYXNTcGVsbGluZ01hcmtlcigxMSwgNSkpCisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAnU1VDQ0VTUzxicj4nOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScp
LmlubmVySFRNTCArPSAiRkFJTFVSRS4gVGhlIHNlZ21lbnQgJ21lYSBnZXNnYScgaGFzIHVuZGVy
bGluZS48YnI+IjsKICAgICB9Ci19CiAKLXJlc2V0VGV4dCgpOwotdGV4dGFyZWEuc2V0U2VsZWN0
aW9uUmFuZ2UoMTAsIDEzKTsKLWV4ZWNEZWxldGVDb21tYW5kKCk7Ci1pZiAod2luZG93LmludGVy
bmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKSB7Ci0gICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoNyw1KSA9PSAwKSB7Ci0gICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKyAnU1VDQ0VTUzxicj4nOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJI
VE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKyAiRkFJ
TFVSRS4gVGhlIHdvcmQgJ21lYWdhJyBoYXMgdW5kZXJsaW5lLjxicj4iOworICAgIHJlc2V0VGV4
dCgpOworICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDEwLCAxMyk7CisgICAgZXhlY0Rl
bGV0ZUNvbW1hbmQoKTsKKyAgICBpZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJu
YWxzLmhhc1NwZWxsaW5nTWFya2VyKSB7CisgICAgICAgIGlmICghd2luZG93LmludGVybmFscy5o
YXNTcGVsbGluZ01hcmtlcig3LCA1KSkKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICdTVUNDRVNTPGJyPic7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1M
ICs9ICJGQUlMVVJFLiBUaGUgd29yZCAnbWVhZ2EnIGhhcyB1bmRlcmxpbmUuPGJyPiI7CiAgICAg
fQotfQogCi1yZXNldFRleHQoKTsKLXRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDEwLCAxMyk7
Ci10eXBlQ2hhcmFjdGVyQ29tbWFuZCgnICcpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2lu
ZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikgewotICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsMykgPT0gMCAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1Nw
ZWxsaW5nTWFya2VyKDExLDIpID09IDApIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29s
ZScpLmlubmVySFRNTCArICdTVUNDRVNTPGJyPic7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArICJGQUlMVVJFLiBUaGUgc2VnbWVudCAn
bWVhIGdhJyBoYXMgdW5kZXJsaW5lLjxicj4iOworICAgIHJlc2V0VGV4dCgpOworICAgIHRleHRh
cmVhLnNldFNlbGVjdGlvblJhbmdlKDEwLCAxMyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQo
JyAnKTsKKyAgICBpZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1Nw
ZWxsaW5nTWFya2VyKSB7CisgICAgICAgIGlmICghd2luZG93LmludGVybmFscy5oYXNTcGVsbGlu
Z01hcmtlcig3LCAzKSAmJiAhd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcigxMSwg
MikpCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVy
SFRNTCArPSAnU1VDQ0VTUzxicj4nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAiRkFJTFVSRS4gVGhlIHNl
Z21lbnQgJ21lYSBnYScgaGFzIHVuZGVybGluZS48YnI+IjsKICAgICB9Ci19CiAKLS8vIFRlc3Rp
bmcgYXBwZW5kaW5nIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3Rlci4KLXJlc2V0VGV4dCgpOwotdGV4
dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoNywgNyk7Ci10eXBlQ2hhcmFjdGVyQ29tbWFuZCgnYScp
OwotaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01h
cmtlcikgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDgsOCkg
PT0gMCkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVy
SFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsgJ1NV
Q0NFU1M8YnI+JzsKLSAgICB9IGVsc2UgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xl
JykuaW5uZXJIVE1MICsgIkZBSUxVUkUuIFRoZSB3b3JkICdhbWVhZ2VzZ2EnIGhhcyB1bmRlcmxp
bmUuPGJyPiI7CisgICAgLy8gVGVzdGluZyBhcHBlbmRpbmcgbm9uLXdoaXRlc3BhY2UgY2hhcmFj
dGVyLgorICAgIHJlc2V0VGV4dCgpOworICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKDcs
IDcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdhJyk7CisgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikgeworICAgICAgICBp
ZiAoIXdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoOCwgOCkpCisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAnU1VDQ0VT
Uzxicj4nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmlubmVySFRNTCArPSAiRkFJTFVSRS4gVGhlIHdvcmQgJ2FtZWFnZXNnYScg
aGFzIHVuZGVybGluZS48YnI+IjsKICAgICB9Ci19CiAKLXJlc2V0VGV4dCgpOwotdGV4dGFyZWEu
c2V0U2VsZWN0aW9uUmFuZ2UoMTUsIDE1KTsKLXR5cGVDaGFyYWN0ZXJDb21tYW5kKCdhJyk7Ci1p
ZiAod2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2Vy
KSB7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoNyw4KSA9PSAw
KSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1M
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKyAnU1VDQ0VT
Uzxicj4nOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5p
bm5lckhUTUwgKyAiRkFJTFVSRS4gVGhlIHdvcmQgJ21lYWdlc2dhYScgaGFzIHVuZGVybGluZS48
YnI+IjsKKyAgICByZXNldFRleHQoKTsKKyAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgx
NSwgMTUpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdhJyk7CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikgeworICAgICAg
ICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoNyw4KSkKKyAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICdTVUND
RVNTPGJyPic7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICJGQUlMVVJFLiBUaGUgd29yZCAnbWVhZ2VzZ2Fh
JyBoYXMgdW5kZXJsaW5lLjxicj4iOwogICAgIH0KLX0KIAotLy8gVGVzdGluZyBwYXN0aW5nLgot
cmVzZXRUZXh0KCk7Ci10ZXh0YXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7
Ci10ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgwLDQpOwotZXhlY0NvcHlDb21tYW5kKCk7Ci10
ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSg3LCA3KTsKLWV4ZWNQYXN0ZUNvbW1hbmQoKTsKLWlm
ICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIp
IHsKLSAgICBpZiAod2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcigxMSw4KSA9PSAw
KSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1M
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKyAnU1VDQ0VT
Uzxicj4nOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b25zb2xlJykuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5p
bm5lckhUTUwgKyAiRkFJTFVSRS4gVGhlIHdvcmQgJ21lYWdlc2dhJyBoYXMgdW5kZXJsaW5lLjxi
cj4iOworICAgIC8vIFRlc3RpbmcgcGFzdGluZy4KKyAgICByZXNldFRleHQoKTsKKyAgICB0ZXh0
YXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisgICAgdGV4dGFyZWEuc2V0
U2VsZWN0aW9uUmFuZ2UoMCwgNCk7CisgICAgZXhlY0NvcHlDb21tYW5kKCk7CisgICAgdGV4dGFy
ZWEuc2V0U2VsZWN0aW9uUmFuZ2UoNywgNyk7CisgICAgZXhlY1Bhc3RlQ29tbWFuZCgpOworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJr
ZXIpIHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDEx
LCA4KSkKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5u
ZXJIVE1MICs9ICdTVUNDRVNTPGJyPic7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9ICJGQUlMVVJFLiBUaGUg
d29yZCAnbWVhZ2VzZ2EnIGhhcyB1bmRlcmxpbmUuPGJyPiI7CiAgICAgfQotfQogCi1yZXNldFRl
eHQoKTsKLXRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKLXRleHRh
cmVhLnNldFNlbGVjdGlvblJhbmdlKDAsNCk7Ci1leGVjQ29weUNvbW1hbmQoKTsKLXRleHRhcmVh
LnNldFNlbGVjdGlvblJhbmdlKDE1LCAxNSk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBp
bnRlcm5hbHMudXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwotZXhlY1Bhc3RlQ29tbWFu
ZCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGlu
Z01hcmtlcikgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcs
OCkgPT0gMCkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlu
bmVySFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICsg
J1NVQ0NFU1M8YnI+JzsKLSAgICB9IGVsc2UgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25z
b2xlJykuaW5uZXJIVE1MICsgIkZBSUxVUkUuIFRoZSB3b3JkICdtZWFnZXNnYScgaGFzIHVuZGVy
bGluZS48YnI+IjsKKyAgICByZXNldFRleHQoKTsKKyAgICB0ZXh0YXJlYSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMCwg
NCk7CisgICAgZXhlY0NvcHlDb21tYW5kKCk7CisgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFu
Z2UoMTUsIDE1KTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxz
LnVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKKyAgICBleGVjUGFzdGVDb21tYW5kKCk7
CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGlu
Z01hcmtlcikgeworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJr
ZXIoNywgOCkpCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScp
LmlubmVySFRNTCArPSAnU1VDQ0VTUzxicj4nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAiRkFJTFVSRS4g
VGhlIHdvcmQgJ21lYWdlc2dhJyBoYXMgdW5kZXJsaW5lLjxicj4iOwogICAgIH0KLX0KIAotcmVz
ZXRUZXh0KCk7Ci10ZXh0YXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7Ci10
ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgwLDQpOwotZXhlY0NvcHlDb21tYW5kKCk7Ci10ZXh0
YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgxMCwgMTApOwotZXhlY1Bhc3RlQ29tbWFuZCgpOwotaWYg
KHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikg
ewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDcsMykgPT0gMCAm
JiB3aW5kb3cuaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDE1LDUpID09IDApIHsKLSAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArICdTVUNDRVNTPGJyPic7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5p
bm5lckhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCAr
ICJGQUlMVVJFLiBUaGUgd29yZCAnbWVhaXRcJ3NnZXNnYScgaGFzIHVuZGVybGluZS48YnI+IjsK
KyAgICByZXNldFRleHQoKTsKKyAgICB0ZXh0YXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0Jyk7CisgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgNCk7CisgICAgZXhl
Y0NvcHlDb21tYW5kKCk7CisgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMTAsIDEwKTsK
KyAgICBleGVjUGFzdGVDb21tYW5kKCk7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2lu
ZG93LmludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcikgeworICAgICAgICBpZiAoIXdpbmRvdy5p
bnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoNywgMykgJiYgIXdpbmRvdy5pbnRlcm5hbHMuaGFz
U3BlbGxpbmdNYXJrZXIoMTUsIDUpKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gJ1NVQ0NFU1M8YnI+JzsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwg
Kz0gIkZBSUxVUkUuIFRoZSB3b3JkICdtZWFpdFwnc2dlc2dhJyBoYXMgdW5kZXJsaW5lLjxicj4i
OwogICAgIH0KKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiB9CiAKK3J1blRlc3QoKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2NDdi
OGU3ZWU4ZDU2ODBlN2M1N2Q0OTNlYTNiYTA3MGMyMmEzOWY2Li5iM2ExODU2YjY4MTIwMzI2MDdm
ZTY3NmJmOWQxNTY4OTZlNGRhYmYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMjcsNiArMjcsOCBAQCBodHRwL3Rlc3RzL2d6aXAtY29udGVudC1lbmNv
ZGluZyBbIFBhc3MgXQogCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVu
dHMvZG9jdW1lbnQtbGV2ZWwtdG91Y2htb3ZlLWV2ZW50LWxpc3RlbmVyLXBhc3NpdmUtYnktZGVm
YXVsdC5odG1sIFsgUGFzcyBdCiAKK3dlYmtpdC5vcmcvYi8yMTE4MTMgZWRpdGluZy9tYWMvc3Bl
bGxpbmcvZWRpdGluZy13b3JkLXdpdGgtbWFya2VyLTEuaHRtbCBbIFBhc3MgXQorCiAjLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJl
Y3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
</data>

          </attachment>
      

    </bug>

</bugzilla>