<?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>34945</bug_id>
          
          <creation_ts>2010-02-15 08:23:55 -0800</creation_ts>
          <short_desc>Improve API for form validation message strings</short_desc>
          <delta_ts>2010-11-14 21:40:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dimich</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>190467</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-02-15 08:23:55 -0800</bug_when>
    <thetext>Improve form validation messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190468</commentid>
    <comment_count>1</comment_count>
      <attachid>48754</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-02-15 08:30:25 -0800</bug_when>
    <thetext>Created attachment 48754
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190470</commentid>
    <comment_count>2</comment_count>
      <attachid>48756</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-02-15 08:37:08 -0800</bug_when>
    <thetext>Created attachment 48756
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197471</commentid>
    <comment_count>3</comment_count>
      <attachid>50278</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-08 23:09:50 -0800</bug_when>
    <thetext>Created attachment 50278
Proposed patch (rev.3)

Upload the same patch again to kick EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197479</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-08 23:39:36 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=50278) [details]
&gt; Proposed patch (rev.3)
&gt; 
&gt; Upload the same patch again to kick EWS.

Oh, I understand.  svn-apply doesn&apos;t support Git binary diff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203903</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-25 01:35:04 -0700</bug_when>
    <thetext>It does not support delta binary diffs, only literal binary diffs. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240450</commentid>
    <comment_count>6</comment_count>
      <attachid>50278</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-20 08:46:47 -0700</bug_when>
    <thetext>Comment on attachment 50278
Proposed patch (rev.3)

This patch has been up for review for too long.  Who&apos;s the right person to review this patch?  Why has it stalled out?  I don&apos;t know whether the new messages are better or worse than the old messages.  Is there a spec for this stuff?  Something has broken down here.

LayoutTests/fast/forms/script-tests/validationMessage.js:16
 +           &quot;&apos;The value does not match to a character restriction for this field.&apos;&quot;);
Where do these messages come from?  Are they speced somewhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307739</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-10 23:15:29 -0800</bug_when>
    <thetext>I have changed my mind.
I won&apos;t change the existing form validation messages, and just add some additional parameters to validationMessage*() functions in order that a port can improve the messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307743</commentid>
    <comment_count>8</comment_count>
      <attachid>73583</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-10 23:28:38 -0800</bug_when>
    <thetext>Created attachment 73583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308711</commentid>
    <comment_count>9</comment_count>
      <attachid>73583</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-11-12 12:35:09 -0800</bug_when>
    <thetext>Comment on attachment 73583
Patch

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309171</commentid>
    <comment_count>10</comment_count>
      <attachid>73873</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-14 20:53:15 -0800</bug_when>
    <thetext>Created attachment 73873
Patch 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309173</commentid>
    <comment_count>11</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-14 20:54:48 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 73583 [details])
&gt; ok.

Thank you for r+.  But I have updated the patch.
I added a dedicated function for &lt;input type=email multiple&gt;. It should show a different message than &lt;input type=email&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309178</commentid>
    <comment_count>12</comment_count>
      <attachid>73873</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-11-14 21:06:25 -0800</bug_when>
    <thetext>Comment on attachment 73873
Patch 5

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309188</commentid>
    <comment_count>13</comment_count>
      <attachid>73873</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-14 21:40:15 -0800</bug_when>
    <thetext>Comment on attachment 73873
Patch 5

Clearing flags on attachment: 73873

Committed r71996: &lt;http://trac.webkit.org/changeset/71996&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309189</commentid>
    <comment_count>14</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-14 21:40:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48754</attachid>
            <date>2010-02-15 08:30:25 -0800</date>
            <delta_ts>2010-02-15 08:37:03 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-34945-20100216013023.patch</filename>
            <type>text/plain</type>
            <size>46036</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YTA2NTg4Li43MTM1NDc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDIt
MTUgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZm9ybSB2YWxpZGF0aW9uIG1l
c3NhZ2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzQ5NDUKKworICAgICAgICBVcGRhdGUgdGhlIHRlc3QgZm9yIHZhbGlkYXRpb24gbWVzc2FnZSBj
aGFuZ2VzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFsaWRhdGlvbk1l
c3NhZ2UuanM6CisgICAgICAgICogZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3Rl
ZC50eHQ6CisKIDIwMTAtMDItMTUgIFJvYmVydCBIb2dhbiAgPHJvYmVydEByb2JlcnRob2dhbi5u
ZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy92YWxpZGF0aW9uTWVzc2FnZS5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpz
CmluZGV4IDA2YzdhNzQuLmFiOGZhY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpzCkBAIC0xLDYwICsxLDYw
IEBACiBkZXNjcmlwdGlvbigiVGVzdCBmb3IgdmFsaWRhdGlvbk1lc3NhZ2UgRE9NIHByb3BlcnR5
LiIpOwogCiB2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKTsKK2Z1bmN0
aW9uIG1lc3NhZ2VGb3IodGFnTmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMpIHsKKyAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7CisgICAgZWxlbWVudC5uYW1l
ID0gImZvbyI7CisgICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlOworICAgIGZvciAodmFyIHByb3Ag
aW4gYXR0cmlidXRlcykKKwllbGVtZW50W3Byb3BdID0gYXR0cmlidXRlc1twcm9wXTsKKyAgICBm
b3JtLmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIHJldHVybiBlbGVtZW50LnZhbGlkYXRpb25N
ZXNzYWdlOworfQogCiAvLyBBbiBpbnB1dCBlbGVtZW50IHdpdGggYSBwYXR0ZXJuIHNldCBhbmQg
YSBtaXNtYXRjaGVkIHZhbHVlCi12YXIgcGF0dGVybklucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW5wdXQiKTsKLXBhdHRlcm5JbnB1dC5uYW1lID0gInBhdHRlcm5JbnB1dCI7Ci1wYXR0
ZXJuSW5wdXQucGF0dGVybiA9ICJsb3JlbSBpcHN1bSI7Ci1wYXR0ZXJuSW5wdXQudmFsdWUgPSAi
bG9yZW0iOwotZm9ybS5hcHBlbmRDaGlsZChwYXR0ZXJuSW5wdXQpOwotc2hvdWxkQmUoInBhdHRl
cm5JbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIncGF0dGVybiBtaXNtYXRjaCciKTsKK3Nob3Vs
ZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICdsb3JlbScsIHtwYXR0ZXJuOidsb3JlbSBpcHN1bSd9
KSIsCisgICAgICAgICAiJ1RoZSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0byBhIGNoYXJhY3RlciBy
ZXN0cmljdGlvbiBmb3IgdGhpcyBmaWVsZC4nIik7CiAKIC8vIEEgcmVxdWlyZWQgaW5wdXQgd2l0
aCBhbiBlbXB0eSB2YWx1ZQotdmFyIHJlcXVpcmVkSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpbnB1dCIpOwotcmVxdWlyZWRJbnB1dC5uYW1lID0gInJlcXVpcmVkSW5wdXQiOwotcmVx
dWlyZWRJbnB1dC5yZXF1aXJlZCA9IHRydWU7Ci1mb3JtLmFwcGVuZENoaWxkKHJlcXVpcmVkSW5w
dXQpOwotc2hvdWxkQmUoInJlcXVpcmVkSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3ZhbHVl
IG1pc3NpbmcnIik7Ci0KK3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICcnLCB7cmVxdWly
ZWQ6dHJ1ZX0pIiwKKyAgICAgICAgICInTmVlZCB0byBzcGVjaWZ5IG5vbi1lbXB0eSB2YWx1ZS4n
Iik7CiAvLyBBIHJlcXVpcmVkIHRleHRhcmVhIHdpdGggYW4gZW1wdHkgdmFsdWUKLXZhciByZXF1
aXJlZFRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsKLXJlcXVp
cmVkVGV4dEFyZWEubmFtZSA9ICJyZXF1aXJlZFRleHRBcmVhIjsKLXJlcXVpcmVkVGV4dEFyZWEu
cmVxdWlyZWQgPSB0cnVlOwotZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFRleHRBcmVhKTsKLXNo
b3VsZEJlKCJyZXF1aXJlZFRleHRBcmVhLnZhbGlkYXRpb25NZXNzYWdlIiwgIid2YWx1ZSBtaXNz
aW5nJyIpOworc2hvdWxkQmUoIm1lc3NhZ2VGb3IoJ3RleHRhcmVhJywgJycsIHtyZXF1aXJlZDp0
cnVlfSkiLAorICAgICAgICAgIidOZWVkIHRvIHNwZWNpZnkgbm9uLWVtcHR5IHZhbHVlLiciKTsK
IAogLy8gQSB0eXBlPWVtYWlsIGlucHV0IGZvciB0aGUgInR5cGUgbWlzbWF0Y2giIGZsYWcKLXZh
ciBlbWFpbElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKLWVtYWlsSW5w
dXQubmFtZSA9ICJlbWFpbElucHV0IjsKLWVtYWlsSW5wdXQudHlwZSA9ICJlbWFpbCI7Ci1lbWFp
bElucHV0LnZhbHVlID0gImluY29ycmVjdFZhbHVlIjsKLWZvcm0uYXBwZW5kQ2hpbGQoZW1haWxJ
bnB1dCk7Ci1zaG91bGRCZSgiZW1haWxJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIndHlwZSBt
aXNtYXRjaCciKTsKK3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICdpbmNvcnJlY3RWYWx1
ZScsIHt0eXBlOidlbWFpbCd9KSIsCisgICAgICAgICAiJ1RoZSB2YWx1ZSBzaG91bGQgYmUgYW4g
ZS1tYWlsIGFkZHJlc3MuJyIpOworc2hvdWxkQmUoIm1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29y
cmVjdFZhbHVlJywge3R5cGU6J2VtYWlsJywgbXVsdGlwbGU6dHJ1ZX0pIiwKKyAgICAgICAgICIn
VGhlIHZhbHVlIHNob3VsZCBiZSBjb21tYS1zZXBhcmF0ZWQgZS1tYWlsIGFkZHJlc2VzLiciKTsK
K3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICdpbmNvcnJlY3RWYWx1ZScsIHt0eXBlOidu
dW1iZXInfSkiLAorICAgICAgICAgIidUaGUgdmFsdWUgc2hvdWxkIGJlIGEgbnVtYmVyLiciKTsK
K3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICdpbmNvcnJlY3RWYWx1ZScsIHt0eXBlOid1
cmwnfSkiLAorICAgICAgICAgIidUaGUgdmFsdWUgc2hvdWxkIGJlIGEgd2ViIGFkZHJlc3MuJyIp
Oworc2hvdWxkQmUoIm1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29ycmVjdFZhbHVlJywge3R5cGU6
J2NvbG9yJ30pIiwKKyAgICAgICAgICInVGhlIHZhbHVlIGRvZXMgbm90IG1hdGNoIHRvIHRoZSBm
b3JtIGZpZWxkIHR5cGUuJyIpOworCisvLyBBbiBpbnB1dCB3aXRoIHRvbyBsb25nIHZhbHVlCitz
aG91bGRCZSgibWVzc2FnZUZvcignaW5wdXQnLCAnYWJjJywge21heExlbmd0aDoyfSkiLAorICAg
ICAgICAgIidUaGUgdGV4dCBpcyB0b28gbG9uZy4gSXRzIGxlbmd0aCBpcyAzIGNoYXJhY3RlcnMs
IGFuZCB0aGUgbWF4aW11bSBsZW5ndGggaXMgMiBjaGFyYWN0ZXJzLiciKTsKKy8vIEEgdGV4dGFy
ZWEgd2l0aCB0b28gbG9uZyB2YXVsdWUKK3Nob3VsZEJlKCJtZXNzYWdlRm9yKCd0ZXh0YXJlYScs
ICdhYmMnLCB7bWF4TGVuZ3RoOjJ9KSIsCisgICAgICAgICAiJ1RoZSB0ZXh0IGlzIHRvbyBsb25n
LiBJdHMgbGVuZ3RoIGlzIDMgY2hhcmFjdGVycywgYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyAy
IGNoYXJhY3RlcnMuJyIpOworCisvLyBBICJudW1iZXIiIGlucHV0IGZvciAicmFuZ2UgdW5kZXJm
bG93IiBmbGFnCitzaG91bGRCZSgibWVzc2FnZUZvcignaW5wdXQnLCAnMScsIHt0eXBlOidudW1i
ZXInLCBtaW46JzInfSkiLAorICAgICAgICAgIidUaGUgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIg
dGhhbiBvciBlcXVhbCB0byAyLiciKTsKIAotLy8gQSAicmFuZ2VkIiBpbnB1dCBmb3IgInJhbmdl
IHVuZGVyZmxvdyIgZmxhZwotdmFyIHVuZGVySW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbnB1dCIpOwotdW5kZXJJbnB1dC5uYW1lID0gInVuZGVySW5wdXQiOwotdW5kZXJJbnB1dC50
eXBlID0gInJhbmdlIjsKLXVuZGVySW5wdXQubWluID0gIjIiOwotdW5kZXJJbnB1dC52YWx1ZSA9
ICIxIjsKLWZvcm0uYXBwZW5kQ2hpbGQodW5kZXJJbnB1dCk7Ci1zaG91bGRCZSgidW5kZXJJbnB1
dC52YWxpZGF0aW9uTWVzc2FnZSIsICIncmFuZ2UgdW5kZXJmbG93JyIpOworLy8gQSAibnVtYmVy
IiBpbnB1dCBmb3IgInJhbmdlIG92ZXJmbG93IiBmbGFnCitzaG91bGRCZSgibWVzc2FnZUZvcign
aW5wdXQnLCAnMycsIHt0eXBlOidudW1iZXInLCBtYXg6JzInfSkiLAorICAgICAgICAgIidUaGUg
dmFsdWUgc2hvdWxkIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAyLiciKTsKIAotLy8gQSAicmFu
Z2VkIiBpbnB1dCBmb3IgInJhbmdlIG92ZXJmbG93IiBmbGFnCi12YXIgb3ZlcklucHV0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKLW92ZXJJbnB1dC5uYW1lID0gIm92ZXJJbnB1
dCI7Ci1vdmVySW5wdXQudHlwZSA9ICJyYW5nZSI7Ci1vdmVySW5wdXQubWF4ID0gIjIiOwotb3Zl
cklucHV0LnZhbHVlID0gIjMiOwotZm9ybS5hcHBlbmRDaGlsZChvdmVySW5wdXQpOwotc2hvdWxk
QmUoIm92ZXJJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIncmFuZ2Ugb3ZlcmZsb3cnIik7Cisv
LyBBICJudW1iZXIiIGlucHV0IHdpdGggc3RlcC1taXNtYXRjaGVkIHZhbHVlCitzaG91bGRCZSgi
bWVzc2FnZUZvcignaW5wdXQnLCAnMi4wJywge3R5cGU6J251bWJlcicsIHN0ZXA6JzEuMTAnfSki
LAorICAgICAgICAgIidUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB2YWx1ZSBhbmQgMCBzaG91
bGQgYmUgYSBtdWx0aXBsZSBvZiAxLjEuJyIpOwogCiAvLyBBIGJ1dHRvbiBjYW4ndCBiZSB2YWxp
dGVkIGFuZCwgdGh1cywgaGFzIGEgYmxhbmsgdmFsaWRhdGlvbk1lc3NhZ2UKLXZhciBidXQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKLWJ1dC5uYW1lID0gImJ1dHRvbiI7Ci1m
b3JtLmFwcGVuZENoaWxkKGJ1dCk7Ci1zaG91bGRCZSgiYnV0LnZhbGlkYXRpb25NZXNzYWdlIiwg
IicnIik7CitzaG91bGRCZSgibWVzc2FnZUZvcignYnV0dG9uJywgJycsIHt9KSIsICInJyIpOwog
CiAvLyBBbiBpbnB1dCBjb250cm9sIHdpdGggbm8gbmFtZSwgc28gaXQgY2FuJ3QgYmUgdmFsaWRh
dGVkICh3aWxsVmFsaWRhdGUgPSBmYWxzZSkKIHZhciBhbm9uaW5wdXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbnB1dCIpOwpAQCAtNjIsMTUgKzYyLDkgQEAgZm9ybS5hcHBlbmRDaGlsZChh
bm9uaW5wdXQpOwogc2hvdWxkQmUoImFub25pbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICInJyIp
CiAKIC8vIEZpZWxkc2V0cyBjYW4ndCBiZSB2YWxpZGF0ZWQKLXZhciBoYXBweUZpZWxkc2V0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKTsKLWhhcHB5RmllbGRzZXQubmFtZSA9
ICJmaWVsZHNldCI7Ci1mb3JtLmFwcGVuZENoaWxkKGhhcHB5RmllbGRzZXQpOwotc2hvdWxkQmUo
ImhhcHB5RmllbGRzZXQudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJyciKTsKK3Nob3VsZEJlKCJtZXNz
YWdlRm9yKCdmaWVsZHNldCcsICcnLCB7fSkiLCAiJyciKTsKIAogLy8gU2VsZWN0IGNvbnRyb2xz
IGNhbid0IGJlIHZhbGlkYXRlZCB0b28KLXZhciBoYXBweVNlbGVjdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNlbGVjdCIpOwotaGFwcHlTZWxlY3QubmFtZSA9ICJzZWxlY3QiOwotZm9ybS5h
cHBlbmRDaGlsZChoYXBweVNlbGVjdCk7Ci1zaG91bGRCZSgiaGFwcHlTZWxlY3QudmFsaWRhdGlv
bk1lc3NhZ2UiLCAiJyciKTsKK3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdzZWxlY3QnLCAnJywge30p
IiwgIicnIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dAppbmRl
eCAxNzJmZGI5Li5hYzEzZmU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Zh
bGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dApAQCAtMywxNiArMywyMyBAQCBUZXN0IGZv
ciB2YWxpZGF0aW9uTWVzc2FnZSBET00gcHJvcGVydHkuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCiAKIAotUEFTUyBwYXR0ZXJuSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3BhdHRlcm4g
bWlzbWF0Y2gnCi1QQVNTIHJlcXVpcmVkSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVl
IG1pc3NpbmcnCi1QQVNTIHJlcXVpcmVkVGV4dEFyZWEudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3Zh
bHVlIG1pc3NpbmcnCi1QQVNTIGVtYWlsSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3R5cGUg
bWlzbWF0Y2gnCi1QQVNTIHVuZGVySW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3JhbmdlIHVu
ZGVyZmxvdycKLVBBU1Mgb3ZlcklucHV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICdyYW5nZSBvdmVy
ZmxvdycKLVBBU1MgYnV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICcnCitQQVNTIG1lc3NhZ2VGb3Io
J2lucHV0JywgJ2xvcmVtJywge3BhdHRlcm46J2xvcmVtIGlwc3VtJ30pIGlzICdUaGUgdmFsdWUg
ZG9lcyBub3QgbWF0Y2ggdG8gYSBjaGFyYWN0ZXIgcmVzdHJpY3Rpb24gZm9yIHRoaXMgZmllbGQu
JworUEFTUyBtZXNzYWdlRm9yKCdpbnB1dCcsICcnLCB7cmVxdWlyZWQ6dHJ1ZX0pIGlzICdOZWVk
IHRvIHNwZWNpZnkgbm9uLWVtcHR5IHZhbHVlLicKK1BBU1MgbWVzc2FnZUZvcigndGV4dGFyZWEn
LCAnJywge3JlcXVpcmVkOnRydWV9KSBpcyAnTmVlZCB0byBzcGVjaWZ5IG5vbi1lbXB0eSB2YWx1
ZS4nCitQQVNTIG1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29ycmVjdFZhbHVlJywge3R5cGU6J2Vt
YWlsJ30pIGlzICdUaGUgdmFsdWUgc2hvdWxkIGJlIGFuIGUtbWFpbCBhZGRyZXNzLicKK1BBU1Mg
bWVzc2FnZUZvcignaW5wdXQnLCAnaW5jb3JyZWN0VmFsdWUnLCB7dHlwZTonZW1haWwnLCBtdWx0
aXBsZTp0cnVlfSkgaXMgJ1RoZSB2YWx1ZSBzaG91bGQgYmUgY29tbWEtc2VwYXJhdGVkIGUtbWFp
bCBhZGRyZXNlcy4nCitQQVNTIG1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29ycmVjdFZhbHVlJywg
e3R5cGU6J251bWJlcid9KSBpcyAnVGhlIHZhbHVlIHNob3VsZCBiZSBhIG51bWJlci4nCitQQVNT
IG1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29ycmVjdFZhbHVlJywge3R5cGU6J3VybCd9KSBpcyAn
VGhlIHZhbHVlIHNob3VsZCBiZSBhIHdlYiBhZGRyZXNzLicKK1BBU1MgbWVzc2FnZUZvcignaW5w
dXQnLCAnaW5jb3JyZWN0VmFsdWUnLCB7dHlwZTonY29sb3InfSkgaXMgJ1RoZSB2YWx1ZSBkb2Vz
IG5vdCBtYXRjaCB0byB0aGUgZm9ybSBmaWVsZCB0eXBlLicKK1BBU1MgbWVzc2FnZUZvcignaW5w
dXQnLCAnYWJjJywge21heExlbmd0aDoyfSkgaXMgJ1RoZSB0ZXh0IGlzIHRvbyBsb25nLiBJdHMg
bGVuZ3RoIGlzIDMgY2hhcmFjdGVycywgYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyAyIGNoYXJh
Y3RlcnMuJworUEFTUyBtZXNzYWdlRm9yKCd0ZXh0YXJlYScsICdhYmMnLCB7bWF4TGVuZ3RoOjJ9
KSBpcyAnVGhlIHRleHQgaXMgdG9vIGxvbmcuIEl0cyBsZW5ndGggaXMgMyBjaGFyYWN0ZXJzLCBh
bmQgdGhlIG1heGltdW0gbGVuZ3RoIGlzIDIgY2hhcmFjdGVycy4nCitQQVNTIG1lc3NhZ2VGb3Io
J2lucHV0JywgJzEnLCB7dHlwZTonbnVtYmVyJywgbWluOicyJ30pIGlzICdUaGUgdmFsdWUgc2hv
dWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAyLicKK1BBU1MgbWVzc2FnZUZvcignaW5w
dXQnLCAnMycsIHt0eXBlOidudW1iZXInLCBtYXg6JzInfSkgaXMgJ1RoZSB2YWx1ZSBzaG91bGQg
YmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDIuJworUEFTUyBtZXNzYWdlRm9yKCdpbnB1dCcsICcy
LjAnLCB7dHlwZTonbnVtYmVyJywgc3RlcDonMS4xMCd9KSBpcyAnVGhlIGRpZmZlcmVuY2UgYmV0
d2VlbiB0aGUgdmFsdWUgYW5kIDAgc2hvdWxkIGJlIGEgbXVsdGlwbGUgb2YgMS4xLicKK1BBU1Mg
bWVzc2FnZUZvcignYnV0dG9uJywgJycsIHt9KSBpcyAnJwogUEFTUyBhbm9uaW5wdXQudmFsaWRh
dGlvbk1lc3NhZ2UgaXMgJycKLVBBU1MgaGFwcHlGaWVsZHNldC52YWxpZGF0aW9uTWVzc2FnZSBp
cyAnJwotUEFTUyBoYXBweVNlbGVjdC52YWxpZGF0aW9uTWVzc2FnZSBpcyAnJworUEFTUyBtZXNz
YWdlRm9yKCdmaWVsZHNldCcsICcnLCB7fSkgaXMgJycKK1BBU1MgbWVzc2FnZUZvcignc2VsZWN0
JywgJycsIHt9KSBpcyAnJwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGRmNDdjYjAuLmEwN2RiODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMTAtMDItMTUgIEtl
bnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZm9ybSB2YWxpZGF0aW9uIG1lc3NhZ2Vz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ5NDUK
KworICAgICAgICAtIE1ha2UgbWVzc2FnZXMgZGV0YWlsZWQKKyAgICAgICAgLSBJbnRyb2R1Y2Ug
dHlwZS1zcGVjaWZpYyB0eXBlTWlzbWF0Y2ggbWVzc2FnZXMgZm9yIGVtYWlsLCBudW1iZXIsIGFu
ZCBVUkwKKyAgICAgICAgLSBUbyBzaG93IG1pbi9tYXgvc3RlcCB2YWx1ZXMsIGFkZCBtZXRob2Rz
IHRvIEhUTUxJbnB1dEVsZW1lbnQKKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwU3RyaW5nKToKKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJ
bnB1dEVsZW1lbnQ6Om1pbmltdW1TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6bWF4aW11bVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpzdGVwQmFzZVN0cmluZyk6CisgICAgICAgICogcGFnZS9tYWMvV2ViQ29yZVZpZXdGYWN0
b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9p
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVt
YWlsVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRj
aE11bHRpbGVFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VU
eXBlTWlzbWF0Y2hOdW1iZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoVVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVz
c2FnZVRvb0xvbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VVbmRlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VPdmVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVw
TWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NC
cmV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
RW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21h
dGNoTXVsdGlsZUVtYWlsVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaE51bWJlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hVUkxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVG9vTG9uZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VS
YW5nZVVuZGVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VS
YW5nZU92ZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0
ZXBNaXNtYXRjaFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdz
R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5n
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hFbWFp
bFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hN
dWx0aWxlRW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoTnVtYmVyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaFVSTFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNz
YWdlVG9vTG9uZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZVVuZGVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZU92ZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBN
aXNtYXRjaFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NI
YWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRj
aEVtYWlsVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaE11bHRpbGVFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9u
TWVzc2FnZVRvb0xvbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VVbmRlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VPdmVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VT
dGVwTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5n
c01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
RW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21h
dGNoTXVsdGlwbGVFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9u
TWVzc2FnZVRvb0xvbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VVbmRlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VPdmVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VT
dGVwTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25zLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVs
dGlsZUVtYWlsVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaE51bWJlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VU
eXBlTWlzbWF0Y2hVUkxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
VG9vTG9uZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVu
ZGVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92
ZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNt
YXRjaFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRp
bGVFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlz
bWF0Y2hOdW1iZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoVVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRv
b0xvbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRl
cmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVy
Zmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0
Y2hUZXh0KToKKwogMjAxMC0wMi0xNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQ6IHRvdWNoIEluc3BlY3RvckNvbnRyb2xsZXIg
aW4gb3JkZXIgdG8ga2ljayB3aW4gYm90IHRlc3RzCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
aW5kZXggNWI5MTIzZC4uOGYzZTdmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAt
NjM3LDYgKzYzNywxNyBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmdldEFsbG93ZWRWYWx1ZVN0
ZXAoZG91YmxlKiBzdGVwKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitTdHJpbmcgSFRN
TElucHV0RWxlbWVudDo6c3RlcFN0cmluZygpIGNvbnN0Cit7CisgICAgZG91YmxlIHN0ZXAsIGRl
ZmF1bHRTdGVwLCBzdGVwU2NhbGVGYWN0b3I7CisgICAgaWYgKCFnZXRBbGxvd2VkVmFsdWVTdGVw
KCZzdGVwKSB8fCAhZ2V0U3RlcFBhcmFtZXRlcnMoJmRlZmF1bHRTdGVwLCAmc3RlcFNjYWxlRmFj
dG9yKSkgeworICAgICAgICAvLyBzdGVwU3RyaW5nKCkgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IGlm
IHN0ZXBNaXNtYXRjaCgpIGlzIHRydWUuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgfQorICAgIHJldHVybiBzZXJpYWxpemVGb3JO
dW1iZXJUeXBlKHN0ZXAgLyBzdGVwU2NhbGVGYWN0b3IpOworfQorCiB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OmFwcGx5U3RlcChkb3VibGUgY291bnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IGRvdWJsZSBzdGVwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMDE2YThlYS4uZjg2YzYz
MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yNjAsOSArMjYwLDkgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCB3aWxsVmFsaWRhdGUoKSBjb25zdDsKIAogICAgIC8vIEhlbHBlcnMg
Zm9yIFZhbGlkaXR5U3RhdGU6OnZhbGlkYXRpb25NZXNzYWdlKCkuCi0gICAgU3RyaW5nIG1pbmlt
dW1TdHJpbmcoKSBjb25zdDsKLSAgICBTdHJpbmcgbWF4aW11bVN0cmluZygpIGNvbnN0OwotICAg
IFN0cmluZyBzdGVwQmFzZVN0cmluZygpIGNvbnN0OworICAgIFN0cmluZyBtaW5pbXVtU3RyaW5n
KCkgY29uc3QgeyByZXR1cm4gc2VyaWFsaXplKG1pbmltdW0oKSk7IH0KKyAgICBTdHJpbmcgbWF4
aW11bVN0cmluZygpIGNvbnN0IHsgcmV0dXJuIHNlcmlhbGl6ZShtYXhpbXVtKCkpOyB9CisgICAg
U3RyaW5nIHN0ZXBCYXNlU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gc2VyaWFsaXplKHN0ZXBCYXNl
KCkpOyB9CiAgICAgU3RyaW5nIHN0ZXBTdHJpbmcoKSBjb25zdDsKIAogICAgIC8vIENvbnZlcnRz
IHRoZSBzcGVjaWZpZWQgc3RyaW5nIHRvIGEgZmxvYXRpbmcgbnVtYmVyLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaCBiL1dlYkNvcmUvcGFnZS9tYWMv
V2ViQ29yZVZpZXdGYWN0b3J5LmgKaW5kZXggZmVmODU2YS4uMTYxOTg2MCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaAorKysgYi9XZWJDb3JlL3BhZ2Uv
bWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oCkBAIC0xNTQsMTEgKzE1NCwxNSBAQAogCiAtIChOU1N0
cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dDsKIC0gKE5TU3RyaW5nICop
dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0OworLSAoTlNTdHJpbmcgKil2YWxpZGF0
aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dDsKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aXBsZUVtYWlsVGV4dDsKKy0gKE5TU3RyaW5nICopdmFs
aWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0OworLSAoTlNTdHJpbmcgKil2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHQ7CiAtIChOU1N0cmluZyAqKXZhbGlkYXRp
b25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dDsKLS0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1l
c3NhZ2VUb29Mb25nVGV4dDsKLS0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVu
ZGVyZmxvd1RleHQ7Ci0tIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxv
d1RleHQ7Ci0tIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dDsK
Ky0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dDooaW50KWdyYXBoZW1l
TGVuZ3RoIG1heDooaW50KW1heExlbmd0aDsKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3Nh
Z2VSYW5nZVVuZGVyZmxvd1RleHQ6KE5TU3RyaW5nKiltaW5pbXVtOworLSAoTlNTdHJpbmcgKil2
YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0OihOU1N0cmluZyopbWF4aW11bTsKKy0g
KE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0OihOU1N0cmluZyop
c3RlcEJhc2Ugc3RlcDooTlNTdHJpbmcqKXN0ZXA7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAKaW5kZXggMmZj
ODgwYi4uZjM2YWNjNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL0xvY2Fs
aXplZFN0cmluZ3NBbmRyb2lkLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9j
YWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwCkBAIC0zMzEsMzEgKzMzMSw1NSBAQCBTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9
CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpbGVFbWFpbFRleHQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
VHlwZU1pc21hdGNoVVJMVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRj
aFRleHQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwog
fQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCitTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGludCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93
VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJu
IFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4
dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJp
bmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQog
Ci1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKK1N0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJldy5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwCmluZGV4IDQ1ODhm
MGYuLmViNTY4NGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRT
dHJpbmdzQnJldy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmlu
Z3NCcmV3LmNwcApAQCAtMzYzLDMxICszNjMsNTUgQEAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
VHlwZU1pc21hdGNoVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hFbWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hNdWx0aWxlRW1haWxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoTnVtYmVyVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVS
TFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwor
fQorCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9v
TG9uZ1RleHQoaW50LCBpbnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4g
U3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4
dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoY29uc3QgU3Ry
aW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0K
IAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQorU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VT
dGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCmluZGV4IGUwZWMzYWIuLmIyMzRmMzQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCkBAIC00ODgsMzgg
KzQ4OCw2MSBAQCBTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGlt
ZSkKIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpCiB7Ci0gICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygidmFsdWUgbWlzc2luZyIpKTsKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOChfKCJOZWVkIHRvIHNwZWNpZnkgbm9uLWVtcHR5IHZhbHVlLiIpKTsK
IH0KIAogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCiB7Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJ0eXBlIG1p
c21hdGNoIikpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIlRoZSB2YWx1ZSBkb2Vz
IG5vdCBtYXRjaCB0byB0aGUgZm9ybSBmaWVsZCB0eXBlLiIpKTsKK30KKworU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOChfKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGFuIGUtbWFpbCBhZGRyZXNzLiIpKTsK
K30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlsZUVtYWlsVGV4
dCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiVGhlIHZhbHVlIHNob3VsZCBi
ZSBjb21tYS1zZXBhcmF0ZWQgZS1tYWlsIGFkZHJlc2VzLiIpKTsKK30KKworU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVyVGV4dCgpCit7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoXygiVGhlIHZhbHVlIHNob3VsZCBiZSBhIG51bWJlci4iKSk7Cit9CisKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHQoKQoreworICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KF8oIlRoZSB2YWx1ZSBzaG91bGQgYmUgYSB3ZWIgYWRkcmVzcy4i
KSk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQog
ewotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oInBhdHRlcm4gbWlzbWF0Y2giKSk7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiVGhlIHZhbHVlIGRvZXMgbm90IG1hdGNoIHRv
IGEgY2hhcmFjdGVyIHJlc3RyaWN0aW9uIGZvciB0aGlzIGZpZWxkLiIpKTsKIH0KIAotU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
VG9vTG9uZ1RleHQoaW50IGdyYXBoZW1lTGVuZ3RoLCBpbnQgbWF4TGVuZ3RoKQogewotICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KF8oInRvbyBsb25nIikpOworICAgIEdPd25QdHI8Z2NoYXI+
IHN0cmluZyhnX3N0cmR1cF9wcmludGYoQ18oIlRoZSB0ZXh0IGlzIHRvbyBsb25nLiBJdHMgbGVu
Z3RoIGlzICVkIGNoYXJhY3RlcnMsIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggaXMgJWQgY2hhcmFj
dGVycy4iKSwgZ3JhcGhlbWVMZW5ndGgsIG1heExlbmd0aCkpOworICAgIHJldHVybiBTdHJpbmc6
OmZyb21VVEY4KHN0cmluZy5nZXQoKSk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlVW5kZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxv
d1RleHQoY29uc3QgU3RyaW5nJiBtaW5pbXVtKQogewotICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KF8oInJhbmdlIHVuZGVyZmxvdyIpKTsKKyAgICBHT3duUHRyPGdjaGFyPiBzdHJpbmcoZ19z
dHJkdXBfcHJpbnRmKENfKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVh
bCB0byAlcy4iKSwgbWluaW11bS51dGY4KCkuZGF0YSgpKSk7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoc3RyaW5nLmdldCgpKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VPdmVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1Rl
eHQoY29uc3QgU3RyaW5nJiBtYXhpbXVtKQogewotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4
KF8oInJhbmdlIG92ZXJmbG93IikpOworICAgIEdPd25QdHI8Z2NoYXI+IHN0cmluZyhnX3N0cmR1
cF9wcmludGYoQ18oIlRoZSB2YWx1ZSBzaG91bGQgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVA
LiIpLCBtYXhpbXVtLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRG
OChzdHJpbmcuZ2V0KCkpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0
Y2hUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3Qg
U3RyaW5nJiBzdGVwQmFzZSwgY29uc3QgU3RyaW5nJiBzdGVwKQogewotICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KF8oInN0ZXAgbWlzbWF0Y2giKSk7CisgICAgR093blB0cjxnY2hhcj4gc3Ry
aW5nKGdfc3RyZHVwX3ByaW50ZihDXygiVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdmFsdWUg
YW5kICUxJEAgc2hvdWxkIGJlIGEgbXVsdGlwbGUgb2YgJTIkQC4iKSwgc3RlcEJhc2UudXRmOCgp
LmRhdGEoKSwgc3RlcC51dGY4KCkuZGF0YSgpKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVU
Rjgoc3RyaW5nLmdldCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9o
YWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9M
b2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwCmluZGV4IDUzMjE3OTIuLjBhZTZlNjkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAKQEAgLTM2
NSwzMSArMzY1LDU1IEBAIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQo
KQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoRW1haWxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVs
dGlsZUVtYWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE51bWJlclRl
eHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hVUkxUZXh0KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwogU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRv
b0xvbmdUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCwgaW50
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1T
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlT3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBN
aXNtYXRjaFRleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9j
YWxpemVkU3RyaW5nc01hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsaXplZFN0cmlu
Z3NNYWMubW0KaW5kZXggNTVmZGQyMS4uMzhlZDBlZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9Mb2NhbGl6ZWRTdHJpbmdzTWFjLm1tCkBAIC03ODAsNiArNzgwLDM4IEBAIFN0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0K
IAorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0KCkKK3sKKyAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdG
YWN0b3J5IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxU
ZXh0XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmco
KTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlwbGVFbWFp
bFRleHQoKQoreworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4g
W1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hNdWx0aXBsZUVtYWlsVGV4dF07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaE51bWJlclRleHQoKQoreworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCgpCit7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHRdOworICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCiBTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CkBAIC03ODgsMzQgKzgyMCwzNCBAQCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQ
YXR0ZXJuTWlzbWF0Y2hUZXh0KCkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRv
b0xvbmdUZXh0KGludCBncmFwaGVtZUxlbmd0aCwgaW50IG1heExlbmd0aCkKIHsKICAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5
IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHRdOworICAgIHJldHVy
biBbW1dlYkNvcmVWaWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVRv
b0xvbmdUZXh0OmdyYXBoZW1lTGVuZ3RoIG1heDptYXhMZW5ndGhdOwogICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VVbmRlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYgbWluaW11bSkKIHsKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNo
YXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0XTsKKyAgICBy
ZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFsaWRhdGlvbk1lc3Nh
Z2VSYW5nZVVuZGVyZmxvd1RleHQ6bWluaW11bV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZs
b3dUZXh0KGNvbnN0IFN0cmluZyYgbWF4aW11bSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7Ci0gICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3Rvcnld
IHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHRdOworICAgIHJldHVybiBbW1dlYkNv
cmVWaWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZs
b3dUZXh0Om1heGltdW1dOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgcmV0
dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hU
ZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3QgU3Ry
aW5nJiBzdGVwQmFzZSwgY29uc3QgU3RyaW5nJiBzdGVwKQogewogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKLSAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFj
dG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0XTsKKyAgICByZXR1cm4gW1tX
ZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlz
bWF0Y2hUZXh0OnN0ZXBCYXNlIHN0ZXA6c3RlcF07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0xvY2FsaXphdGlvbnMuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6YXRp
b25zLmNwcAppbmRleCBjOTE5MTkzLi4xYWZiNDM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0xvY2FsaXphdGlvbnMuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvTG9jYWxp
emF0aW9ucy5jcHAKQEAgLTQ5NCwzMSArNDk0LDU1IEBAIFN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaFRleHQoKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoTXVsdGlsZUVtYWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaE51bWJlclRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hV
UkxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKwogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRv
b0xvbmdUZXh0KGludCwgaW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJu
IFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1Rl
eHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KGNvbnN0IFN0
cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9
CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK1N0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
U3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93
eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCmluZGV4IDg1NzM0ODIuLjQxM2NkNDIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKQEAgLTM0NiwzMSArMzQ2LDU1
IEBAIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQogICAgIHJldHVy
biBTdHJpbmcoKTsKIH0KIAorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1h
aWxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlsZUVtYWlsVGV4
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE51bWJlclRleHQoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hVUkxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
UGF0dGVybk1pc21hdGNoVGV4dCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1
cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCwgaW50KQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VVbmRlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlT3ZlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dU
ZXh0KGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4g
U3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQo
KQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0
cmluZygpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L0NoYW5nZUxvZyBiL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggMTM0YTI1Mi4uZjI0MGRhZSAxMDA2NDQKLS0tIGEvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDItMTUgIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZm9ybSB2YWxpZGF0aW9uIG1lc3NhZ2VzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ5NDUKKworICAg
ICAgICAqIEVuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczogUmVnZW5lcmF0ZWQuCisK
IDIwMTAtMDItMDQgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvRW5nbGlzaC5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUu
c3RyaW5ncwppbmRleCA0MmMxMzg2OGFmOGU4ZjJlY2MwOTcwMGI5YWU5ZGFkMjc2NzI1Y2FkLi41
NTc1YzRmNWFlNmJmMDNiMTY2OTYwYzM5M2RhMGJjMzQ4ZjJhZWM5IDEwMDY0NApHSVQgYmluYXJ5
IHBhdGNoCmRlbHRhIDI1MDkKemNtZDU7T0hVSX44MiFwaUtARztGdk5JRFIzI2std2clSnFHTH1O
bEE4ZjtCT3BpZ01obW91WjVSZDtTUnhvK0h1CnpNcjkhemxVYjFYQz52UkBiWksxcTVCdmNkSj9I
aWJFJElMP0cwbmB9ZXNrfSs9UjRveSZhYkVLZ3wrdGcrZGVnMQp6QFQ+MSVsS0UrZztUSUp7WXt9
cW1OZiFTamw5MEhwO0N+dnt2PCQoUCFXJiFMOSFmfShAJkdvIV5rZEZBdTZ7V1gKelFjbzRpYFFZ
PU0xRnQqeldnd0A0WCR3YiZSUUVIJEd5fElqRTFCN05yVH00c0B2PmUpQUkyJng8TTZ9OFl8aEpL
CnpvezF9a14pQGIzQ1NkakhgNX5hdStYU0JXRFpFXiZPdnJKOUlAOHNjWnd4UmYhX291eVhHPihH
VERySmlQZDZlTQp6ODR8fGJtUGZlbj9IV2xpNUNid0lYSnJ5MjN6ISlRb3Vxd0dnQmI5REtHU0dw
dDFPPH1BY0pedT18d0o4S2oqeXAKemVANFV8an04KVgtcHlgI2JncGZGZE54eSppMGJFYk9jRllo
JXNqPnxpRitFLWAhVCtPX2x6PlZxbTgtMV98UjRxCnpENV8yeC1ZYkB6aG92bENJYilhO0luMVVg
c1hiQXNsfTdQY1JQNmVIJEUpMkV6cTEoRkkwNlgrPmkzS0VyTHUoawp6RXJ9NHM+TnthVk9jc0wp
WChEUiFxZ1JkMzlxbmUzIzJ8RShCODs+VWBCKCo2e0tfYi0tI2FNI2EjLVU/NUt7LVYKemlwKH4j
IWxwJmAhVHF2I2d7O3s+NTJrZjh2NjQtc1JCMmE/YzZXZVU0bSZFaXJmX1BvPlFyfkpycFZ+LVpN
aHs9CnpodnZlcjZiNEVOVF95X09tP09GJUYxenVoO3AhczRCXzB8ZldMTlQjOUM7WVRhMHBlPT5i
UEVRJmIwfGprI29Nagp6d1lKOEsyeSE+MkpzNSgldkM0NzhybyptWl42enY+dTM4NVg1R0toJkda
JFRNKFJjXiNlbnhHLUlqKzlHb2RgQjYKeilrY1pBcSFXZkdhSmVqJmJ2TmRUIzQ/Rz1lVXVIcTd4
V2l+JTcocV8mc143ekxUdiNxJjxBajJ2ZHoka3NoZSozCnpeTCM8TllqJj1mJm9xbUlZczRhRnIp
JlB6cTxaMzliR2x6SGNCdE88Rj11dHthaiNsITgrQWUoN2RxOWo2O01BdQpVUHBnSThzNTclVS0+
SygqK2pgeWg3aSgrKVEyK257CgpkZWx0YSA2MjgKemNtZG5EalFQKDU8XyN5Y0h+LWY4cV9OcFBW
aGlKQnxLaE9DXko5WThIfUI0JDs0b1B9SjhaSWhOfWd1e0xuMT43Cno1VC1IfEcyfTVRRnl1MDFH
ODYremtaM1lQMjc/ayUlb2QyMTd6bjdHeWtUblNXYnV0VW9BKylvVkY0UFNGbk12Rgp6azdFKGdw
Z2V8anB6I1V9YDN6LVhZdGs1VWZiNFE0cXclUGtFUmRaKVN1eGtrNjxKTHcoOTlHZiUpKEdOKmBl
UWsKenYqeSs9ZXl7X1p2cWtFUWZXe085e2d3KiFaMylvdEFqY3tJU3M2ZVAxKXZObFdEMDtSTkdL
SG5SVXxRI2Y8K1k9Cnp2PjVhbXhQYWIzc0tPbjNJTWdzUFdLNXBHPGk3ZCE1ZCY3Qm9BZjNOciU2
bjxqSDtQanlGLWU8MVE8O0RLKVhTfgp6MSQ1V3NnMDlyYmd7UzwwPmJmUTtyd1E0WEZqUnRGanhX
fTVzQGM1WilLWjkqLT9la2glWVl1dDBlVEdOWF4xQ14KWnBARCUmMDllI2FAKWUhRGYyIU4mKiV1
WncwUlhqTm5AYSF5CgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMmFiOTJlMS4uNjUzNmE5ZCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDItMTUgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcHJvdmUgZm9ybSB2YWxpZGF0aW9uIG1lc3NhZ2VzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ5NDUKKworICAgICAgICAqIHNyYy9Mb2Nh
bGl6ZWRTdHJpbmdzLmNwcDogRm9sbG93IExvY2FsaXplZFN0cmluZ3MuaCBjaGFuZ2UuCisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpbGVFbWFp
bFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hO
dW1iZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21h
dGNoVVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1Rl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0
KToKKwogMjAxMC0wMi0xNCAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggNGUwMTg0OC4uYjJmNzllYyAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0yODQsMzEgKzI4NCw1NSBAQCBT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKICAgICByZXR1cm4gU3Ry
aW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpbGVFbWFpbFRleHQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRl
cm5NaXNtYXRjaFRleHQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0
cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGludCkKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
VW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92
ZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChj
b25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmlu
ZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmco
KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggODRiMTUzZS4uZjhkZTg4MCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wMi0x
NSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wcm92ZSBmb3JtIHZhbGlkYXRpb24gbWVz
c2FnZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NDk0NQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3RvcnkubW06IEZvbGxv
dyBMb2NhbGl6ZWRTdHJpbmdzLmggY2hhbmdlLgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2
YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHRdKToKKyAgICAgICAgKC1bV2ViVmlld0Zh
Y3RvcnkgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0XSk6CisgICAgICAgICgtW1dl
YlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0XSk6Cisg
ICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVs
dGlwbGVFbWFpbFRleHRdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3RvcnkgdmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0XSk6CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dF0pOgorICAgICAgICAoLVtXZWJW
aWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHRdKToKKyAgICAg
ICAgKC1bV2ViVmlld0ZhY3RvcnkgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dDptYXg6XSk6
CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZs
b3dUZXh0Ol0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlT3ZlcmZsb3dUZXh0Ol0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9u
TWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQ6c3RlcDpdKToKKwogMjAxMC0wMi0xMiAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3RvcnkubW0g
Yi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpZXdGYWN0b3J5Lm1tCmluZGV4IDI2MDdm
MTguLjEyNTExNjMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmll
d0ZhY3RvcnkubW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFjdG9y
eS5tbQpAQCAtNzc5LDM3ICs3NzksNTcgQEAKIAogLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVz
c2FnZVZhbHVlTWlzc2luZ1RleHQKIHsKLSAgICByZXR1cm4gVUlfU1RSSU5HKCJ2YWx1ZSBtaXNz
aW5nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgcmVxdWlyZWQgZm9ybSBjb250cm9sIGVsZW1l
bnRzIHRoYXQgaGF2ZSBubyB2YWx1ZSIpOworICAgIHJldHVybiBVSV9TVFJJTkcoIk5lZWQgdG8g
c3BlY2lmeSBub24tZW1wdHkgdmFsdWUuIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgcmVxdWly
ZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBubyB2YWx1ZSIpOwogfQogCiAtIChO
U1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dAogewotICAgIHJldHVy
biBVSV9TVFJJTkcoInR5cGUgbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1
dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpOworICAgIHJl
dHVybiBVSV9TVFJJTkcoIlRoZSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0byB0aGUgZm9ybSBmaWVs
ZCB0eXBlLiIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0
aCBhIHZhbHVlIG5vdCBtYXRjaGluZyB0eXBlIik7Cit9CisKKy0gKE5TU3RyaW5nICopdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hFbWFpbFRleHQKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5H
KCJUaGUgdmFsdWUgc2hvdWxkIGJlIGFuIGUtbWFpbCBhZGRyZXNzLiIsICJWYWxpZGF0aW9uIG1l
c3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCBhIHZhbHVlIG5vdCBtYXRjaGluZyBl
bWFpbCB0eXBlIik7Cit9CisKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlz
bWF0Y2hNdWx0aXBsZUVtYWlsVGV4dAoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlRoZSB2YWx1
ZSBzaG91bGQgYmUgY29tbWEtc2VwYXJhdGVkIGUtbWFpbCBhZGRyZXNlcy4iLCAiVmFsaWRhdGlv
biBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hp
bmcgbXVsdGlwbGUgZW1haWwgdHlwZSIpOworfQorCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVyVGV4dAoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlRo
ZSB2YWx1ZSBzaG91bGQgYmUgYSBudW1iZXIuIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5w
dXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUgbm90IG1hdGNoaW5nIG51bWJlciB0eXBlIik7
Cit9CisKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hVUkxUZXh0
Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygiVGhlIHZhbHVlIHNob3VsZCBiZSBhIHdlYiBhZGRy
ZXNzLiIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCBh
IHZhbHVlIG5vdCBtYXRjaGluZyBVUkwgdHlwZSIpOwogfQogCiAtIChOU1N0cmluZyAqKXZhbGlk
YXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dAogewotICAgIHJldHVybiBVSV9TVFJJTkco
InBhdHRlcm4gbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNv
bnRyb2xzIHJlcXVpcmluZyBhIGNvbnN0cmFpbmVkIHZhbHVlIGFjY29yZGluZyB0byBwYXR0ZXJu
Iik7CisgICAgcmV0dXJuIFVJX1NUUklORygiVGhlIHZhbHVlIGRvZXMgbm90IG1hdGNoIHRvIGEg
Y2hhcmFjdGVyIHJlc3RyaWN0aW9uIGZvciB0aGlzIGZpZWxkLiIsICJWYWxpZGF0aW9uIG1lc3Nh
Z2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUg
YWNjb3JkaW5nIHRvIHBhdHRlcm4iKTsKIH0KIAotLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVz
c2FnZVRvb0xvbmdUZXh0CistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1Rl
eHQ6KGludClncmFwaGVtZUxlbmd0aCBtYXg6KGludCltYXhMZW5ndGgKIHsKLSAgICByZXR1cm4g
VUlfU1RSSU5HKCJ0b28gbG9uZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGZvcm0gY29udHJv
bCBlbGVtZW50cyB3aXRoIGEgdmFsdWUgbG9uZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2VkIGxlbmd0
aCIpOworICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpVSV9TVFJJTkcoIlRo
ZSB0ZXh0IGlzIHRvbyBsb25nLiBJdHMgbGVuZ3RoIGlzICUxJGQgY2hhcmFjdGVycywgYW5kIHRo
ZSBtYXhpbXVtIGxlbmd0aCBpcyAlMiRkIGNoYXJhY3RlcnMuIiwgIlZhbGlkYXRpb24gbWVzc2Fn
ZSBmb3IgZm9ybSBjb250cm9sIGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhp
bXVtIGFsbG93ZWQgbGVuZ3RoIiksIGdyYXBoZW1lTGVuZ3RoLCBtYXhMZW5ndGhdOwogfQogCi0t
IChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0CistIChOU1N0
cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0OihOU1N0cmluZyopbWlu
aW11bQogewotICAgIHJldHVybiBVSV9TVFJJTkcoInJhbmdlIHVuZGVyZmxvdyIsICJWYWxpZGF0
aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBsb3dlciB0aGFu
IGFsbG93ZWQgbWluaW11bSIpOworICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpVSV9TVFJJTkcoIlRoZSB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRv
ICVALiIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2
YWx1ZSBsb3dlciB0aGFuIGFsbG93ZWQgbWluaW11bSIpLCBtaW5pbXVtXTsKIH0KIAotLSAoTlNT
dHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0CistIChOU1N0cmluZyAq
KXZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQ6KE5TU3RyaW5nKiltYXhpbXVtCiB7
Ci0gICAgcmV0dXJuIFVJX1NUUklORygicmFuZ2Ugb3ZlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNz
YWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgaGlnaGVyIHRoYW4gYWxsb3dl
ZCBtYXhpbXVtIik7CisgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OlVJX1NU
UklORygiVGhlIHZhbHVlIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJUAuIiwgIlZh
bGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIGhpZ2hl
ciB0aGFuIGFsbG93ZWQgbWF4aW11bSIpLCBtYXhpbXVtXTsKIH0KIAotLSAoTlNTdHJpbmcgKil2
YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlv
bk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0OihOU1N0cmluZyopc3RlcEJhc2Ugc3RlcDooTlNTdHJp
bmcqKXN0ZXAKIHsKLSAgICByZXR1cm4gVUlfU1RSSU5HKCJzdGVwIG1pc21hdGNoIiwgIlZhbGlk
YXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIG5vdCByZXNw
ZWN0aW5nIHRoZSBzdGVwIGF0dHJpYnV0ZSIpOworICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpVSV9TVFJJTkcoIlRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHZhbHVlIGFu
ZCAlMSRAIHNob3VsZCBiZSBhIG11bHRpcGxlIG9mICUyJEAuIiwgIlZhbGlkYXRpb24gbWVzc2Fn
ZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aGVuIHRoZSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0
byA8dGhlIGZpcnN0IHBhcmFtZXRlcj4gKyA8YW55IGludGVnZXI+IHggPHRoZSBzZWNvbmQgcGFy
YW1ldGVyPiIpLCBzdGVwQmFzZSwgc3RlcF07CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1dlYktp
dC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZmMwYzIyNC4uMzdl
YWY1ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wMi0xNSAgS2VudCBUYW11cmEgIDx0a2Vu
dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wcm92ZSBmb3JtIHZhbGlkYXRpb24gbWVzc2FnZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDk0NQorCisgICAgICAgICogV2Vi
Q29yZUxvY2FsaXplZFN0cmluZ3MuY3BwOiBGb2xsb3cgTG9jYWxpemVkU3RyaW5ncy5oIGNoYW5n
ZS4KKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hFbWFpbFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aXBs
ZUVtYWlsVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaE51bWJlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hVUkxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUGF0
dGVybk1pc21hdGNoVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRv
b0xvbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRl
cmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVy
Zmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0
Y2hUZXh0KToKKwogMjAxMC0wMi0xMiAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1dl
YktpdC93aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwIGIvV2ViS2l0L3dpbi9XZWJDb3Jl
TG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggNTg1MDYwNS4uZDQ4ZjAyZiAxMDA2NDQKLS0tIGEv
V2ViS2l0L3dpbi9XZWJDb3JlTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvV2ViS2l0L3dpbi9X
ZWJDb3JlTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTI0MiwxMCArMjQyLDQzIEBAIFN0cmluZyBX
ZWJDb3JlOjpsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG9hdCB0aW1lKQogCiAjZW5k
aWYgIC8vIEVOQUJMRShWSURFTykKIAotU3RyaW5nIFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
VmFsdWVNaXNzaW5nVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygidmFs
dWUgbWlzc2luZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVpcmVkIGZvcm0gY29udHJv
bCBlbGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKSk7IH0KLVN0cmluZyBXZWJDb3JlOjp2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9V
SV9TVFJJTkcoInR5cGUgbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBm
b3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpKTsgfQotU3RyaW5n
IFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpIHsgcmV0dXJu
IFN0cmluZyhMUENUU1RSX1VJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9u
IG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQg
dmFsdWUgYWNjb3JkaW5nIHRvIHBhdHRlcm4iKSk7IH0KLVN0cmluZyBXZWJDb3JlOjp2YWxpZGF0
aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5H
KCJ0b28gbG9uZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGZvcm0gY29udHJvbCBlbGVtZW50
cyB3aXRoIGEgdmFsdWUgbG9uZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2VkIGxlbmd0aCIpKTsgfQot
U3RyaW5nIFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkgeyBy
ZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJyYW5nZSB1bmRlcmZsb3ciLCAiVmFsaWRh
dGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgbG93ZXIgdGhh
biBhbGxvd2VkIG1pbmltdW0iKSk7IH0KLVN0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlT3ZlcmZsb3dUZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJy
YW5nZSBvdmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJv
bHMgd2l0aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKSk7IH0KLVN0cmluZyBX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKSB7IHJldHVybiBTdHJp
bmcoTFBDVFNUUl9VSV9TVFJJTkcoInN0ZXAgbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdl
IGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgbm90IHJlc3BlY3RpbmcgdGhlIHN0
ZXAgYXR0cmlidXRlIikpOyB9CitTdHJpbmcgV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1
ZU1pc3NpbmdUZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJOZWVkIHRv
IHNwZWNpZnkgbm9uLWVtcHR5IHZhbHVlLiIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVp
cmVkIGZvcm0gY29udHJvbCBlbGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKSk7IH0KK1N0cmlu
ZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKSB7IHJldHVybiBT
dHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIlRoZSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0byB0aGUg
Zm9ybSBmaWVsZCB0eXBlLiIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29u
dHJvbHMgd2l0aCBhIHZhbHVlIG5vdCBtYXRjaGluZyB0eXBlIikpOyB9CitTdHJpbmcgV2ViQ29y
ZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQ
Q1RTVFJfVUlfU1RSSU5HKCJUaGUgdmFsdWUgZG9lcyBub3QgbWF0Y2ggdG8gdGhlIGZvcm0gZmll
bGQgdHlwZS4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdp
dGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpKTsgfQorU3RyaW5nIFdlYkNvcmU6OnZhbGlk
YXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RT
VFJfVUlfU1RSSU5HKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGFuIGUtbWFpbCBhZGRyZXNzLiIsICJW
YWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCBhIHZhbHVlIG5v
dCBtYXRjaGluZyBlbWFpbCB0eXBlIikpOyB9CitTdHJpbmcgV2ViQ29yZTo6dmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aXBsZUVtYWlsVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENU
U1RSX1VJX1NUUklORygiVGhlIHZhbHVlIHNob3VsZCBiZSBjb21tYS1zZXBhcmF0ZWQgZS1tYWls
IGFkZHJlc2VzLiIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMg
d2l0aCBhIHZhbHVlIG5vdCBtYXRjaGluZyBtdWx0aXBsZSBlbWFpbCB0eXBlIikpOyB9CitTdHJp
bmcgV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KCkgeyBy
ZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGEgbnVt
YmVyLiIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCBh
IHZhbHVlIG5vdCBtYXRjaGluZyBudW1iZXIgdHlwZSIpKTsgfQorU3RyaW5nIFdlYkNvcmU6OnZh
bGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENU
U1RSX1VJX1NUUklORygiVGhlIHZhbHVlIHNob3VsZCBiZSBhIHdlYiBhZGRyZXNzLiIsICJWYWxp
ZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCBhIHZhbHVlIG5vdCBt
YXRjaGluZyBVUkwgdHlwZSIpKTsgfQorU3RyaW5nIFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
UGF0dGVybk1pc21hdGNoVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygi
VGhlIHZhbHVlIGRvZXMgbm90IG1hdGNoIHRvIGEgY2hhcmFjdGVyIHJlc3RyaWN0aW9uIGZvciB0
aGlzIGZpZWxkLiIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMg
cmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNjb3JkaW5nIHRvIHBhdHRlcm4iKSk7IH0K
KworU3RyaW5nIFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoaW50IGdyYXBo
ZW1lTGVuZ3RoLCBpbnQgbWF4TGVuZ3RoKQoreworICAgIHN0YXRpYyBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+IGZvcm1hdChBZG9wdENGLCBVSV9TVFJJTkcoIlRoZSB0ZXh0IGlzIHRvbyBsb25nLiBJ
dHMgbGVuZ3RoIGlzICUxJGQgY2hhcmFjdGVycywgYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyAl
MiRkIGNoYXJhY3RlcnMuIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBjb250cm9sIGVs
ZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIikp
OworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVzdWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3Jl
YXRlV2l0aEZvcm1hdCgwLCAwLCBmb3JtYXQuZ2V0KCksIGdyYXBoZW1lTGVuZ3RoLCBtYXhMZW5n
dGgpKTsKKyAgICByZXR1cm4gcmVzdWx0LmdldCgpOworfQorCitTdHJpbmcgV2ViQ29yZTo6dmFs
aWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoY29uc3QgU3RyaW5nJiBtaW5pbXVtKQor
eworICAgIHN0YXRpYyBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZvcm1hdChBZG9wdENGLCBVSV9T
VFJJTkcoIlRoZSB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVALiIs
ICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBs
b3dlciB0aGFuIGFsbG93ZWQgbWluaW11bSIpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IG1pbmltdW1DRihBZG9wdENGLCBtaW5pbXVtLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gcmVzdWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1h
dCgwLCAwLCBmb3JtYXQuZ2V0KCksIG1pbmltdW1DRi5nZXQoKSkpOworICAgIHJldHVybiByZXN1
bHQuZ2V0KCk7Cit9CisKK1N0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3Zl
cmZsb3dUZXh0KGNvbnN0IFN0cmluZyYgbWF4aW11bSkKK3sKKyAgICBzdGF0aWMgUmV0YWluUHRy
PENGU3RyaW5nUmVmPiBmb3JtYXQoQWRvcHRDRiwgVUlfU1RSSU5HKCJUaGUgdmFsdWUgc2hvdWxk
IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlQC4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBp
bnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgaGlnaGVyIHRoYW4gYWxsb3dlZCBtYXhpbXVt
IikpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gbWF4aW11bUNGKEFkb3B0Q0YsIG1heGlt
dW0uY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXN1bHQo
QWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0KDAsIDAsIGZvcm1hdC5nZXQoKSwgbWF4
aW11bUNGLmdldCgpKSk7CisgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKK30KKworU3RyaW5nIFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmIHN0
ZXBCYXNlLCBjb25zdCBTdHJpbmcmIHN0ZXApCit7CisgICAgc3RhdGljIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gZm9ybWF0KEFkb3B0Q0YsIFVJX1NUUklORygiVGhlIGRpZmZlcmVuY2UgYmV0d2Vl
biB0aGUgdmFsdWUgYW5kICUxJEAgc2hvdWxkIGJlIGEgbXVsdGlwbGUgb2YgJTIkQC4iLCAiVmFs
aWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdoZW4gdGhlIHZhbHVlIGRv
ZXMgbm90IG1hdGNoIHRvIDx0aGUgZmlyc3QgcGFyYW1ldGVyPiArIDxhbnkgaW50ZWdlcj4geCA8
dGhlIHNlY29uZCBwYXJhbWV0ZXI+IikpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc3Rl
cEJhc2VDRihBZG9wdENGLCBzdGVwQmFzZS5jcmVhdGVDRlN0cmluZygpKTsKKyAgICBSZXRhaW5Q
dHI8Q0ZTdHJpbmdSZWY+IHN0ZXBDRihBZG9wdENGLCBzdGVwLmNyZWF0ZUNGU3RyaW5nKCkpOwor
ICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVzdWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRl
V2l0aEZvcm1hdCgwLCAwLCBmb3JtYXQuZ2V0KCksIHN0ZXBCYXNlQ0YuZ2V0KCksIHN0ZXBDRi5n
ZXQoKSkpOworICAgIHJldHVybiByZXN1bHQuZ2V0KCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48756</attachid>
            <date>2010-02-15 08:37:08 -0800</date>
            <delta_ts>2010-03-08 23:09:50 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-34945-20100216013706.patch</filename>
            <type>text/plain</type>
            <size>51347</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YTA2NTg4Li43MTM1NDc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDIt
MTUgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZm9ybSB2YWxpZGF0aW9uIG1l
c3NhZ2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzQ5NDUKKworICAgICAgICBVcGRhdGUgdGhlIHRlc3QgZm9yIHZhbGlkYXRpb24gbWVzc2FnZSBj
aGFuZ2VzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFsaWRhdGlvbk1l
c3NhZ2UuanM6CisgICAgICAgICogZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3Rl
ZC50eHQ6CisKIDIwMTAtMDItMTUgIFJvYmVydCBIb2dhbiAgPHJvYmVydEByb2JlcnRob2dhbi5u
ZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy92YWxpZGF0aW9uTWVzc2FnZS5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpz
CmluZGV4IDA2YzdhNzQuLmFiOGZhY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpzCkBAIC0xLDYwICsxLDYw
IEBACiBkZXNjcmlwdGlvbigiVGVzdCBmb3IgdmFsaWRhdGlvbk1lc3NhZ2UgRE9NIHByb3BlcnR5
LiIpOwogCiB2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKTsKK2Z1bmN0
aW9uIG1lc3NhZ2VGb3IodGFnTmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMpIHsKKyAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7CisgICAgZWxlbWVudC5uYW1l
ID0gImZvbyI7CisgICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlOworICAgIGZvciAodmFyIHByb3Ag
aW4gYXR0cmlidXRlcykKKwllbGVtZW50W3Byb3BdID0gYXR0cmlidXRlc1twcm9wXTsKKyAgICBm
b3JtLmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIHJldHVybiBlbGVtZW50LnZhbGlkYXRpb25N
ZXNzYWdlOworfQogCiAvLyBBbiBpbnB1dCBlbGVtZW50IHdpdGggYSBwYXR0ZXJuIHNldCBhbmQg
YSBtaXNtYXRjaGVkIHZhbHVlCi12YXIgcGF0dGVybklucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW5wdXQiKTsKLXBhdHRlcm5JbnB1dC5uYW1lID0gInBhdHRlcm5JbnB1dCI7Ci1wYXR0
ZXJuSW5wdXQucGF0dGVybiA9ICJsb3JlbSBpcHN1bSI7Ci1wYXR0ZXJuSW5wdXQudmFsdWUgPSAi
bG9yZW0iOwotZm9ybS5hcHBlbmRDaGlsZChwYXR0ZXJuSW5wdXQpOwotc2hvdWxkQmUoInBhdHRl
cm5JbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIncGF0dGVybiBtaXNtYXRjaCciKTsKK3Nob3Vs
ZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICdsb3JlbScsIHtwYXR0ZXJuOidsb3JlbSBpcHN1bSd9
KSIsCisgICAgICAgICAiJ1RoZSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0byBhIGNoYXJhY3RlciBy
ZXN0cmljdGlvbiBmb3IgdGhpcyBmaWVsZC4nIik7CiAKIC8vIEEgcmVxdWlyZWQgaW5wdXQgd2l0
aCBhbiBlbXB0eSB2YWx1ZQotdmFyIHJlcXVpcmVkSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpbnB1dCIpOwotcmVxdWlyZWRJbnB1dC5uYW1lID0gInJlcXVpcmVkSW5wdXQiOwotcmVx
dWlyZWRJbnB1dC5yZXF1aXJlZCA9IHRydWU7Ci1mb3JtLmFwcGVuZENoaWxkKHJlcXVpcmVkSW5w
dXQpOwotc2hvdWxkQmUoInJlcXVpcmVkSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3ZhbHVl
IG1pc3NpbmcnIik7Ci0KK3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICcnLCB7cmVxdWly
ZWQ6dHJ1ZX0pIiwKKyAgICAgICAgICInTmVlZCB0byBzcGVjaWZ5IG5vbi1lbXB0eSB2YWx1ZS4n
Iik7CiAvLyBBIHJlcXVpcmVkIHRleHRhcmVhIHdpdGggYW4gZW1wdHkgdmFsdWUKLXZhciByZXF1
aXJlZFRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsKLXJlcXVp
cmVkVGV4dEFyZWEubmFtZSA9ICJyZXF1aXJlZFRleHRBcmVhIjsKLXJlcXVpcmVkVGV4dEFyZWEu
cmVxdWlyZWQgPSB0cnVlOwotZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFRleHRBcmVhKTsKLXNo
b3VsZEJlKCJyZXF1aXJlZFRleHRBcmVhLnZhbGlkYXRpb25NZXNzYWdlIiwgIid2YWx1ZSBtaXNz
aW5nJyIpOworc2hvdWxkQmUoIm1lc3NhZ2VGb3IoJ3RleHRhcmVhJywgJycsIHtyZXF1aXJlZDp0
cnVlfSkiLAorICAgICAgICAgIidOZWVkIHRvIHNwZWNpZnkgbm9uLWVtcHR5IHZhbHVlLiciKTsK
IAogLy8gQSB0eXBlPWVtYWlsIGlucHV0IGZvciB0aGUgInR5cGUgbWlzbWF0Y2giIGZsYWcKLXZh
ciBlbWFpbElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKLWVtYWlsSW5w
dXQubmFtZSA9ICJlbWFpbElucHV0IjsKLWVtYWlsSW5wdXQudHlwZSA9ICJlbWFpbCI7Ci1lbWFp
bElucHV0LnZhbHVlID0gImluY29ycmVjdFZhbHVlIjsKLWZvcm0uYXBwZW5kQ2hpbGQoZW1haWxJ
bnB1dCk7Ci1zaG91bGRCZSgiZW1haWxJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIndHlwZSBt
aXNtYXRjaCciKTsKK3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICdpbmNvcnJlY3RWYWx1
ZScsIHt0eXBlOidlbWFpbCd9KSIsCisgICAgICAgICAiJ1RoZSB2YWx1ZSBzaG91bGQgYmUgYW4g
ZS1tYWlsIGFkZHJlc3MuJyIpOworc2hvdWxkQmUoIm1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29y
cmVjdFZhbHVlJywge3R5cGU6J2VtYWlsJywgbXVsdGlwbGU6dHJ1ZX0pIiwKKyAgICAgICAgICIn
VGhlIHZhbHVlIHNob3VsZCBiZSBjb21tYS1zZXBhcmF0ZWQgZS1tYWlsIGFkZHJlc2VzLiciKTsK
K3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICdpbmNvcnJlY3RWYWx1ZScsIHt0eXBlOidu
dW1iZXInfSkiLAorICAgICAgICAgIidUaGUgdmFsdWUgc2hvdWxkIGJlIGEgbnVtYmVyLiciKTsK
K3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICdpbmNvcnJlY3RWYWx1ZScsIHt0eXBlOid1
cmwnfSkiLAorICAgICAgICAgIidUaGUgdmFsdWUgc2hvdWxkIGJlIGEgd2ViIGFkZHJlc3MuJyIp
Oworc2hvdWxkQmUoIm1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29ycmVjdFZhbHVlJywge3R5cGU6
J2NvbG9yJ30pIiwKKyAgICAgICAgICInVGhlIHZhbHVlIGRvZXMgbm90IG1hdGNoIHRvIHRoZSBm
b3JtIGZpZWxkIHR5cGUuJyIpOworCisvLyBBbiBpbnB1dCB3aXRoIHRvbyBsb25nIHZhbHVlCitz
aG91bGRCZSgibWVzc2FnZUZvcignaW5wdXQnLCAnYWJjJywge21heExlbmd0aDoyfSkiLAorICAg
ICAgICAgIidUaGUgdGV4dCBpcyB0b28gbG9uZy4gSXRzIGxlbmd0aCBpcyAzIGNoYXJhY3RlcnMs
IGFuZCB0aGUgbWF4aW11bSBsZW5ndGggaXMgMiBjaGFyYWN0ZXJzLiciKTsKKy8vIEEgdGV4dGFy
ZWEgd2l0aCB0b28gbG9uZyB2YXVsdWUKK3Nob3VsZEJlKCJtZXNzYWdlRm9yKCd0ZXh0YXJlYScs
ICdhYmMnLCB7bWF4TGVuZ3RoOjJ9KSIsCisgICAgICAgICAiJ1RoZSB0ZXh0IGlzIHRvbyBsb25n
LiBJdHMgbGVuZ3RoIGlzIDMgY2hhcmFjdGVycywgYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyAy
IGNoYXJhY3RlcnMuJyIpOworCisvLyBBICJudW1iZXIiIGlucHV0IGZvciAicmFuZ2UgdW5kZXJm
bG93IiBmbGFnCitzaG91bGRCZSgibWVzc2FnZUZvcignaW5wdXQnLCAnMScsIHt0eXBlOidudW1i
ZXInLCBtaW46JzInfSkiLAorICAgICAgICAgIidUaGUgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIg
dGhhbiBvciBlcXVhbCB0byAyLiciKTsKIAotLy8gQSAicmFuZ2VkIiBpbnB1dCBmb3IgInJhbmdl
IHVuZGVyZmxvdyIgZmxhZwotdmFyIHVuZGVySW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbnB1dCIpOwotdW5kZXJJbnB1dC5uYW1lID0gInVuZGVySW5wdXQiOwotdW5kZXJJbnB1dC50
eXBlID0gInJhbmdlIjsKLXVuZGVySW5wdXQubWluID0gIjIiOwotdW5kZXJJbnB1dC52YWx1ZSA9
ICIxIjsKLWZvcm0uYXBwZW5kQ2hpbGQodW5kZXJJbnB1dCk7Ci1zaG91bGRCZSgidW5kZXJJbnB1
dC52YWxpZGF0aW9uTWVzc2FnZSIsICIncmFuZ2UgdW5kZXJmbG93JyIpOworLy8gQSAibnVtYmVy
IiBpbnB1dCBmb3IgInJhbmdlIG92ZXJmbG93IiBmbGFnCitzaG91bGRCZSgibWVzc2FnZUZvcign
aW5wdXQnLCAnMycsIHt0eXBlOidudW1iZXInLCBtYXg6JzInfSkiLAorICAgICAgICAgIidUaGUg
dmFsdWUgc2hvdWxkIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAyLiciKTsKIAotLy8gQSAicmFu
Z2VkIiBpbnB1dCBmb3IgInJhbmdlIG92ZXJmbG93IiBmbGFnCi12YXIgb3ZlcklucHV0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKLW92ZXJJbnB1dC5uYW1lID0gIm92ZXJJbnB1
dCI7Ci1vdmVySW5wdXQudHlwZSA9ICJyYW5nZSI7Ci1vdmVySW5wdXQubWF4ID0gIjIiOwotb3Zl
cklucHV0LnZhbHVlID0gIjMiOwotZm9ybS5hcHBlbmRDaGlsZChvdmVySW5wdXQpOwotc2hvdWxk
QmUoIm92ZXJJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIncmFuZ2Ugb3ZlcmZsb3cnIik7Cisv
LyBBICJudW1iZXIiIGlucHV0IHdpdGggc3RlcC1taXNtYXRjaGVkIHZhbHVlCitzaG91bGRCZSgi
bWVzc2FnZUZvcignaW5wdXQnLCAnMi4wJywge3R5cGU6J251bWJlcicsIHN0ZXA6JzEuMTAnfSki
LAorICAgICAgICAgIidUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB2YWx1ZSBhbmQgMCBzaG91
bGQgYmUgYSBtdWx0aXBsZSBvZiAxLjEuJyIpOwogCiAvLyBBIGJ1dHRvbiBjYW4ndCBiZSB2YWxp
dGVkIGFuZCwgdGh1cywgaGFzIGEgYmxhbmsgdmFsaWRhdGlvbk1lc3NhZ2UKLXZhciBidXQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKLWJ1dC5uYW1lID0gImJ1dHRvbiI7Ci1m
b3JtLmFwcGVuZENoaWxkKGJ1dCk7Ci1zaG91bGRCZSgiYnV0LnZhbGlkYXRpb25NZXNzYWdlIiwg
IicnIik7CitzaG91bGRCZSgibWVzc2FnZUZvcignYnV0dG9uJywgJycsIHt9KSIsICInJyIpOwog
CiAvLyBBbiBpbnB1dCBjb250cm9sIHdpdGggbm8gbmFtZSwgc28gaXQgY2FuJ3QgYmUgdmFsaWRh
dGVkICh3aWxsVmFsaWRhdGUgPSBmYWxzZSkKIHZhciBhbm9uaW5wdXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbnB1dCIpOwpAQCAtNjIsMTUgKzYyLDkgQEAgZm9ybS5hcHBlbmRDaGlsZChh
bm9uaW5wdXQpOwogc2hvdWxkQmUoImFub25pbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICInJyIp
CiAKIC8vIEZpZWxkc2V0cyBjYW4ndCBiZSB2YWxpZGF0ZWQKLXZhciBoYXBweUZpZWxkc2V0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKTsKLWhhcHB5RmllbGRzZXQubmFtZSA9
ICJmaWVsZHNldCI7Ci1mb3JtLmFwcGVuZENoaWxkKGhhcHB5RmllbGRzZXQpOwotc2hvdWxkQmUo
ImhhcHB5RmllbGRzZXQudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJyciKTsKK3Nob3VsZEJlKCJtZXNz
YWdlRm9yKCdmaWVsZHNldCcsICcnLCB7fSkiLCAiJyciKTsKIAogLy8gU2VsZWN0IGNvbnRyb2xz
IGNhbid0IGJlIHZhbGlkYXRlZCB0b28KLXZhciBoYXBweVNlbGVjdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNlbGVjdCIpOwotaGFwcHlTZWxlY3QubmFtZSA9ICJzZWxlY3QiOwotZm9ybS5h
cHBlbmRDaGlsZChoYXBweVNlbGVjdCk7Ci1zaG91bGRCZSgiaGFwcHlTZWxlY3QudmFsaWRhdGlv
bk1lc3NhZ2UiLCAiJyciKTsKK3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdzZWxlY3QnLCAnJywge30p
IiwgIicnIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dAppbmRl
eCAxNzJmZGI5Li5hYzEzZmU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Zh
bGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dApAQCAtMywxNiArMywyMyBAQCBUZXN0IGZv
ciB2YWxpZGF0aW9uTWVzc2FnZSBET00gcHJvcGVydHkuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCiAKIAotUEFTUyBwYXR0ZXJuSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3BhdHRlcm4g
bWlzbWF0Y2gnCi1QQVNTIHJlcXVpcmVkSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVl
IG1pc3NpbmcnCi1QQVNTIHJlcXVpcmVkVGV4dEFyZWEudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3Zh
bHVlIG1pc3NpbmcnCi1QQVNTIGVtYWlsSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3R5cGUg
bWlzbWF0Y2gnCi1QQVNTIHVuZGVySW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3JhbmdlIHVu
ZGVyZmxvdycKLVBBU1Mgb3ZlcklucHV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICdyYW5nZSBvdmVy
ZmxvdycKLVBBU1MgYnV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICcnCitQQVNTIG1lc3NhZ2VGb3Io
J2lucHV0JywgJ2xvcmVtJywge3BhdHRlcm46J2xvcmVtIGlwc3VtJ30pIGlzICdUaGUgdmFsdWUg
ZG9lcyBub3QgbWF0Y2ggdG8gYSBjaGFyYWN0ZXIgcmVzdHJpY3Rpb24gZm9yIHRoaXMgZmllbGQu
JworUEFTUyBtZXNzYWdlRm9yKCdpbnB1dCcsICcnLCB7cmVxdWlyZWQ6dHJ1ZX0pIGlzICdOZWVk
IHRvIHNwZWNpZnkgbm9uLWVtcHR5IHZhbHVlLicKK1BBU1MgbWVzc2FnZUZvcigndGV4dGFyZWEn
LCAnJywge3JlcXVpcmVkOnRydWV9KSBpcyAnTmVlZCB0byBzcGVjaWZ5IG5vbi1lbXB0eSB2YWx1
ZS4nCitQQVNTIG1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29ycmVjdFZhbHVlJywge3R5cGU6J2Vt
YWlsJ30pIGlzICdUaGUgdmFsdWUgc2hvdWxkIGJlIGFuIGUtbWFpbCBhZGRyZXNzLicKK1BBU1Mg
bWVzc2FnZUZvcignaW5wdXQnLCAnaW5jb3JyZWN0VmFsdWUnLCB7dHlwZTonZW1haWwnLCBtdWx0
aXBsZTp0cnVlfSkgaXMgJ1RoZSB2YWx1ZSBzaG91bGQgYmUgY29tbWEtc2VwYXJhdGVkIGUtbWFp
bCBhZGRyZXNlcy4nCitQQVNTIG1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29ycmVjdFZhbHVlJywg
e3R5cGU6J251bWJlcid9KSBpcyAnVGhlIHZhbHVlIHNob3VsZCBiZSBhIG51bWJlci4nCitQQVNT
IG1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29ycmVjdFZhbHVlJywge3R5cGU6J3VybCd9KSBpcyAn
VGhlIHZhbHVlIHNob3VsZCBiZSBhIHdlYiBhZGRyZXNzLicKK1BBU1MgbWVzc2FnZUZvcignaW5w
dXQnLCAnaW5jb3JyZWN0VmFsdWUnLCB7dHlwZTonY29sb3InfSkgaXMgJ1RoZSB2YWx1ZSBkb2Vz
IG5vdCBtYXRjaCB0byB0aGUgZm9ybSBmaWVsZCB0eXBlLicKK1BBU1MgbWVzc2FnZUZvcignaW5w
dXQnLCAnYWJjJywge21heExlbmd0aDoyfSkgaXMgJ1RoZSB0ZXh0IGlzIHRvbyBsb25nLiBJdHMg
bGVuZ3RoIGlzIDMgY2hhcmFjdGVycywgYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyAyIGNoYXJh
Y3RlcnMuJworUEFTUyBtZXNzYWdlRm9yKCd0ZXh0YXJlYScsICdhYmMnLCB7bWF4TGVuZ3RoOjJ9
KSBpcyAnVGhlIHRleHQgaXMgdG9vIGxvbmcuIEl0cyBsZW5ndGggaXMgMyBjaGFyYWN0ZXJzLCBh
bmQgdGhlIG1heGltdW0gbGVuZ3RoIGlzIDIgY2hhcmFjdGVycy4nCitQQVNTIG1lc3NhZ2VGb3Io
J2lucHV0JywgJzEnLCB7dHlwZTonbnVtYmVyJywgbWluOicyJ30pIGlzICdUaGUgdmFsdWUgc2hv
dWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAyLicKK1BBU1MgbWVzc2FnZUZvcignaW5w
dXQnLCAnMycsIHt0eXBlOidudW1iZXInLCBtYXg6JzInfSkgaXMgJ1RoZSB2YWx1ZSBzaG91bGQg
YmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDIuJworUEFTUyBtZXNzYWdlRm9yKCdpbnB1dCcsICcy
LjAnLCB7dHlwZTonbnVtYmVyJywgc3RlcDonMS4xMCd9KSBpcyAnVGhlIGRpZmZlcmVuY2UgYmV0
d2VlbiB0aGUgdmFsdWUgYW5kIDAgc2hvdWxkIGJlIGEgbXVsdGlwbGUgb2YgMS4xLicKK1BBU1Mg
bWVzc2FnZUZvcignYnV0dG9uJywgJycsIHt9KSBpcyAnJwogUEFTUyBhbm9uaW5wdXQudmFsaWRh
dGlvbk1lc3NhZ2UgaXMgJycKLVBBU1MgaGFwcHlGaWVsZHNldC52YWxpZGF0aW9uTWVzc2FnZSBp
cyAnJwotUEFTUyBoYXBweVNlbGVjdC52YWxpZGF0aW9uTWVzc2FnZSBpcyAnJworUEFTUyBtZXNz
YWdlRm9yKCdmaWVsZHNldCcsICcnLCB7fSkgaXMgJycKK1BBU1MgbWVzc2FnZUZvcignc2VsZWN0
JywgJycsIHt9KSBpcyAnJwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGRmNDdjYjAuLjZkMDI2ODUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTMgQEAKKzIwMTAtMDItMTUgIEtl
bnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZm9ybSB2YWxpZGF0aW9uIG1lc3NhZ2Vz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ5NDUK
KworICAgICAgICAtIE1ha2UgbWVzc2FnZXMgZGV0YWlsZWQKKyAgICAgICAgLSBJbnRyb2R1Y2Ug
dHlwZS1zcGVjaWZpYyB0eXBlTWlzbWF0Y2ggbWVzc2FnZXMgZm9yIGVtYWlsLCBudW1iZXIsIGFu
ZCBVUkwKKyAgICAgICAgLSBUbyBzaG93IG1pbi9tYXgvc3RlcCB2YWx1ZXMsIGFkZCBtZXRob2Rz
IHRvIEhUTUxJbnB1dEVsZW1lbnQKKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwU3RyaW5nKToKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Om1p
bmltdW1TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6bWF4aW11
bVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwQmFzZVN0
cmluZyk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9WYWxpZGl0eVN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6
OnZhbGlkYXRpb25NZXNzYWdlKToKKyAgICAgICAgKiBwYWdlL21hYy9XZWJDb3JlVmlld0ZhY3Rv
cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICog
cGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpbGVFbWFpbFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVVJM
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlsZUVtYWlsVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE51bWJl
clRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hV
UkxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hFbWFpbFRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aWxlRW1haWxUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVyVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpbGVFbWFpbFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1i
ZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
VVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlwbGVFbWFpbFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1i
ZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
VVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlsZUVtYWlsVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE51bWJlclRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hVUkxUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpbGVFbWFpbFRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKwogMjAxMC0w
Mi0xNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBO
b3QgcmV2aWV3ZWQ6IHRvdWNoIEluc3BlY3RvckNvbnRyb2xsZXIgaW4gb3JkZXIgdG8ga2ljayB3
aW4gYm90IHRlc3RzCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCAxMTcw
ODdiLi4wYjFlYzU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTE2
Nyw2ICsxNjcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3Rh
cnQsIGludCBlbmQpOwogICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uKCkgY29uc3Q7CiAK
KyAgICB2aXJ0dWFsIGludCBtYXhMZW5ndGgoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJp
bmcgdmFsdWUoKSBjb25zdCA9IDA7CisKIHByb3RlY3RlZDoKICAgICBib29sIHBsYWNlaG9sZGVy
U2hvdWxkQmVWaXNpYmxlKCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVQbGFjZWhvbGRlclZpc2li
aWxpdHkoYm9vbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggNWI5MTIzZC4uOGYz
ZTdmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNjM3LDYgKzYzNywxNyBAQCBi
b29sIEhUTUxJbnB1dEVsZW1lbnQ6OmdldEFsbG93ZWRWYWx1ZVN0ZXAoZG91YmxlKiBzdGVwKSBj
b25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6c3Rl
cFN0cmluZygpIGNvbnN0Cit7CisgICAgZG91YmxlIHN0ZXAsIGRlZmF1bHRTdGVwLCBzdGVwU2Nh
bGVGYWN0b3I7CisgICAgaWYgKCFnZXRBbGxvd2VkVmFsdWVTdGVwKCZzdGVwKSB8fCAhZ2V0U3Rl
cFBhcmFtZXRlcnMoJmRlZmF1bHRTdGVwLCAmc3RlcFNjYWxlRmFjdG9yKSkgeworICAgICAgICAv
LyBzdGVwU3RyaW5nKCkgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IGlmIHN0ZXBNaXNtYXRjaCgpIGlz
IHRydWUuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CisgICAgfQorICAgIHJldHVybiBzZXJpYWxpemVGb3JOdW1iZXJUeXBlKHN0ZXAgLyBz
dGVwU2NhbGVGYWN0b3IpOworfQorCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3RlcChk
b3VibGUgY291bnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGRvdWJsZSBzdGVwOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmgKaW5kZXggNDA5MzBhYy4uZjg2YzYzMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCkBAIC0yNTksNiArMjU5LDEyIEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFs
IGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3Q7CiAKKyAgICAvLyBIZWxwZXJzIGZvciBWYWxpZGl0
eVN0YXRlOjp2YWxpZGF0aW9uTWVzc2FnZSgpLgorICAgIFN0cmluZyBtaW5pbXVtU3RyaW5nKCkg
Y29uc3QgeyByZXR1cm4gc2VyaWFsaXplKG1pbmltdW0oKSk7IH0KKyAgICBTdHJpbmcgbWF4aW11
bVN0cmluZygpIGNvbnN0IHsgcmV0dXJuIHNlcmlhbGl6ZShtYXhpbXVtKCkpOyB9CisgICAgU3Ry
aW5nIHN0ZXBCYXNlU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gc2VyaWFsaXplKHN0ZXBCYXNlKCkp
OyB9CisgICAgU3RyaW5nIHN0ZXBTdHJpbmcoKSBjb25zdDsKKwogICAgIC8vIENvbnZlcnRzIHRo
ZSBzcGVjaWZpZWQgc3RyaW5nIHRvIGEgZmxvYXRpbmcgbnVtYmVyLgogICAgIC8vIElmIHRoZSBj
b252ZXJzaW9uIGZhaWxzLCB0aGUgcmV0dXJuIHZhbHVlIGlzIGZhbHNlLiBUYWtlIGNhcmUgdGhh
dCBsZWFkaW5nIG9yIHRyYWlsaW5nIHVubmVjZXNzYXJ5IGNoYXJhY3RlcnMgbWFrZSBmYWlsdXJl
cy4gIFRoaXMgcmV0dXJucyBmYWxzZSBmb3IgYW4gZW1wdHkgc3RyaW5nIGlucHV0LgogICAgIC8v
IFRoZSBkb3VibGUqIHBhcmFtZXRlciBtYXkgYmUgMC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5oCmluZGV4IDhkOTJhNDguLjEzMzNjZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
aApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRG
b2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVG
b2N1c0FwcGVhcmFuY2UoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOwogCi0gICAgU3Ry
aW5nIHZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUoKSBjb25zdDsKICAg
ICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBkZWZhdWx0VmFsdWUo
KSBjb25zdDsKICAgICB2b2lkIHNldERlZmF1bHRWYWx1ZShjb25zdCBTdHJpbmcmKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcCBiL1dlYkNvcmUvaHRtbC9WYWxp
ZGl0eVN0YXRlLmNwcAppbmRleCBjNmM1OGE1Li42MzkyZTA3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUu
Y3BwCkBAIC00OSwxOCArNDksNDcgQEAgU3RyaW5nIFZhbGlkaXR5U3RhdGU6OnZhbGlkYXRpb25N
ZXNzYWdlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIG1fY3VzdG9tRXJyb3JNZXNzYWdlOwogICAg
IGlmICh2YWx1ZU1pc3NpbmcoKSkKICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nVGV4dCgpOwotICAgIGlmICh0eXBlTWlzbWF0Y2goKSkKKyAgICBib29sIGlzSW5w
dXRFbGVtZW50ID0gbV9jb250cm9sLT5oYXNUYWdOYW1lKGlucHV0VGFnKTsKKyAgICBib29sIGlz
VGV4dEFyZWFFbGVtZW50ID0gbV9jb250cm9sLT5oYXNUYWdOYW1lKHRleHRhcmVhVGFnKTsKKyAg
ICBpZiAodHlwZU1pc21hdGNoKCkpIHsKKyAgICAgICAgaWYgKGlzSW5wdXRFbGVtZW50KSB7Cisg
ICAgICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1
dEVsZW1lbnQqPihtX2NvbnRyb2wpOworICAgICAgICAgICAgaWYgKGlucHV0LT5pbnB1dFR5cGUo
KSA9PSBIVE1MSW5wdXRFbGVtZW50OjpFTUFJTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5w
dXQtPm11bHRpcGxlKCkgPyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpcGxlRW1h
aWxUZXh0KCkgOiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCgpOworICAg
ICAgICAgICAgaWYgKGlucHV0LT5pbnB1dFR5cGUoKSA9PSBIVE1MSW5wdXRFbGVtZW50OjpOVU1C
RVIpCisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
TnVtYmVyVGV4dCgpOworICAgICAgICAgICAgaWYgKGlucHV0LT5pbnB1dFR5cGUoKSA9PSBIVE1M
SW5wdXRFbGVtZW50OjpVUkwpCisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoVVJMVGV4dCgpOworICAgICAgICAgICAgLy8gV2UgZG9uJ3QgcHJvdmlk
ZSBkZWRpY2F0ZWQgbWVzc2FnZXMgZm9yIENPTE9SIGFuZCBkYXRlL3RpbWUgdHlwZXMKKyAgICAg
ICAgICAgIC8vIGJlY2F1c2UgdGhlaXIgVUlzIHNob3VsZCBwcmV2ZW50IGludmFsaWQgdmFsdWVz
LgorICAgICAgICB9CiAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRj
aFRleHQoKTsKKyAgICB9CiAgICAgaWYgKHBhdHRlcm5NaXNtYXRjaCgpKQogICAgICAgICByZXR1
cm4gdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCk7Ci0gICAgaWYgKHRvb0xv
bmcoKSkKLSAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKTsKLSAg
ICBpZiAocmFuZ2VVbmRlcmZsb3coKSkKLSAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VVbmRlcmZsb3dUZXh0KCk7Ci0gICAgaWYgKHJhbmdlT3ZlcmZsb3coKSkKLSAgICAgICAg
cmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKTsKLSAgICBpZiAoc3Rl
cE1pc21hdGNoKCkpCi0gICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRj
aFRleHQoKTsKKyAgICBpZiAodG9vTG9uZygpKSB7CisgICAgICAgIGlmICghaXNJbnB1dEVsZW1l
bnQgJiYgIWlzVGV4dEFyZWFFbGVtZW50KSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCogdGV4dCA9IHN0YXRpY19jYXN0PEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50Kj4obV9jb250cm9sKTsKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25N
ZXNzYWdlVG9vTG9uZ1RleHQodGV4dC0+dmFsdWUoKS5udW1HcmFwaGVtZUNsdXN0ZXJzKCksIHRl
eHQtPm1heExlbmd0aCgpKTsKKyAgICB9CisgICAgaWYgKHJhbmdlVW5kZXJmbG93KCkpIHsKKyAg
ICAgICAgQVNTRVJUKGlzSW5wdXRFbGVtZW50KTsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9jb250cm9sKTsKKyAgICAg
ICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KGlucHV0LT5taW5p
bXVtU3RyaW5nKCkpOworICAgIH0KKyAgICBpZiAocmFuZ2VPdmVyZmxvdygpKSB7CisgICAgICAg
IEFTU0VSVChpc0lucHV0RWxlbWVudCk7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0
ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fY29udHJvbCk7CisgICAgICAgIHJl
dHVybiB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KGlucHV0LT5tYXhpbXVtU3Ry
aW5nKCkpOworICAgIH0KKyAgICBpZiAoc3RlcE1pc21hdGNoKCkpIHsKKyAgICAgICAgQVNTRVJU
KGlzSW5wdXRFbGVtZW50KTsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0
aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9jb250cm9sKTsKKyAgICAgICAgcmV0dXJuIHZh
bGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChpbnB1dC0+c3RlcEJhc2VTdHJpbmcoKSwg
aW5wdXQtPnN0ZXBTdHJpbmcoKSk7CisgICAgfQogCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaCBiL1dlYkNv
cmUvcGFnZS9tYWMvV2ViQ29yZVZpZXdGYWN0b3J5LmgKaW5kZXggZmVmODU2YS4uMTYxOTg2MCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oCkBAIC0xNTQsMTEgKzE1NCwxNSBA
QAogCiAtIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dDsKIC0g
KE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0OworLSAoTlNTdHJp
bmcgKil2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dDsKKy0gKE5TU3RyaW5n
ICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aXBsZUVtYWlsVGV4dDsKKy0gKE5T
U3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0OworLSAoTlNT
dHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHQ7CiAtIChOU1N0cmlu
ZyAqKXZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dDsKLS0gKE5TU3RyaW5nICop
dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dDsKLS0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQ7Ci0tIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VPdmVyZmxvd1RleHQ7Ci0tIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlU3RlcE1p
c21hdGNoVGV4dDsKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dDoo
aW50KWdyYXBoZW1lTGVuZ3RoIG1heDooaW50KW1heExlbmd0aDsKKy0gKE5TU3RyaW5nICopdmFs
aWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQ6KE5TU3RyaW5nKiltaW5pbXVtOworLSAo
TlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0OihOU1N0cmluZyop
bWF4aW11bTsKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0
OihOU1N0cmluZyopc3RlcEJhc2Ugc3RlcDooTlNTdHJpbmcqKXN0ZXA7CiAKIEBlbmQKIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCA2Y2E1NzczLi4xY2UwZjc5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApAQCAtMTQ2LDEyICsxNDYsMTUgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4
dCgpOwogICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKKyAg
ICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hFbWFpbFRleHQoKTsKKyAgICBT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aXBsZUVtYWlsVGV4dCgpOwor
ICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE51bWJlclRleHQoKTsKKyAg
ICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hVUkxUZXh0KCk7CiAgICAgU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpOwotICAgIFN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7Ci0gICAgU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCk7Ci0gICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VPdmVyZmxvd1RleHQoKTsKLSAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0
Y2hUZXh0KCk7Ci0KKyAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQg
Z3JhcGhlbWVMZW5ndGgsIGludCBtYXhMZW5ndGgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmIG1pbmltdW0pOworICAgIFN0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYgbWF4aW11
bSk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBT
dHJpbmcmIHN0ZXBCYXNlLCBjb25zdCBTdHJpbmcmIHN0ZXApOwogfQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3Bw
CmluZGV4IDJmYzg4MGIuLmYzNmFjYzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vYW5k
cm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9h
bmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcApAQCAtMzMxLDMxICszMzEsNTUgQEAg
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCiAgICAgcmV0dXJuIFN0
cmluZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hFbWFpbFRl
eHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aWxlRW1haWxUZXh0KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVyVGV4dCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0
ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBT
dHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQorU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoaW50LCBpbnQpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZVVuZGVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
ICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VP
dmVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQo
Y29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpCitT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5n
KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0Jy
ZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcApp
bmRleCA0NTg4ZjBmLi5lYjU2ODRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcv
TG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2Nh
bGl6ZWRTdHJpbmdzQnJldy5jcHAKQEAgLTM2MywzMSArMzYzLDU1IEBAIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAor
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlsZUVtYWlsVGV4dCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVR5cGVNaXNtYXRjaE51bWJlclRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hVUkxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKwogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4
dCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
LVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVRvb0xvbmdUZXh0KGludCwgaW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVu
ZGVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3Ry
aW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQorU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAppbmRleCBlMGVjM2FiLi5iMjM0
ZjM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3Rr
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcApA
QCAtNDg4LDM4ICs0ODgsNjEgQEAgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9u
KGZsb2F0IHRpbWUpCiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQo
KQogewotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oInZhbHVlIG1pc3NpbmciKSk7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiTmVlZCB0byBzcGVjaWZ5IG5vbi1lbXB0eSB2
YWx1ZS4iKSk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQo
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
XygidHlwZSBtaXNtYXRjaCIpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJUaGUg
dmFsdWUgZG9lcyBub3QgbWF0Y2ggdG8gdGhlIGZvcm0gZmllbGQgdHlwZS4iKSk7Cit9CisKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCgpCit7CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiVGhlIHZhbHVlIHNob3VsZCBiZSBhbiBlLW1haWwgYWRk
cmVzcy4iKSk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRp
bGVFbWFpbFRleHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIlRoZSB2YWx1
ZSBzaG91bGQgYmUgY29tbWEtc2VwYXJhdGVkIGUtbWFpbCBhZGRyZXNlcy4iKSk7Cit9CisKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE51bWJlclRleHQoKQoreworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIlRoZSB2YWx1ZSBzaG91bGQgYmUgYSBudW1iZXIuIikp
OworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hVUkxUZXh0KCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGEgd2Vi
IGFkZHJlc3MuIikpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0
Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJwYXR0ZXJuIG1pc21h
dGNoIikpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIlRoZSB2YWx1ZSBkb2VzIG5v
dCBtYXRjaCB0byBhIGNoYXJhY3RlciByZXN0cmljdGlvbiBmb3IgdGhpcyBmaWVsZC4iKSk7CiB9
CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCBncmFwaGVtZUxlbmd0aCwgaW50IG1heExlbmd0aCkK
IHsKLSAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJ0b28gbG9uZyIpKTsKKyAgICBHT3du
UHRyPGdjaGFyPiBzdHJpbmcoZ19zdHJkdXBfcHJpbnRmKENfKCJUaGUgdGV4dCBpcyB0b28gbG9u
Zy4gSXRzIGxlbmd0aCBpcyAlZCBjaGFyYWN0ZXJzLCBhbmQgdGhlIG1heGltdW0gbGVuZ3RoIGlz
ICVkIGNoYXJhY3RlcnMuIiksIGdyYXBoZW1lTGVuZ3RoLCBtYXhMZW5ndGgpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tVVRGOChzdHJpbmcuZ2V0KCkpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VVbmRlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYgbWluaW11bSkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tVVRGOChfKCJyYW5nZSB1bmRlcmZsb3ciKSk7CisgICAgR093blB0cjxnY2hhcj4g
c3RyaW5nKGdfc3RyZHVwX3ByaW50ZihDXygiVGhlIHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRo
YW4gb3IgZXF1YWwgdG8gJXMuIiksIG1pbmltdW0udXRmOCgpLmRhdGEoKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KHN0cmluZy5nZXQoKSk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
T3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYgbWF4aW11bSkKIHsKLSAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOChfKCJyYW5nZSBvdmVyZmxvdyIpKTsKKyAgICBHT3duUHRyPGdjaGFyPiBzdHJp
bmcoZ19zdHJkdXBfcHJpbnRmKENfKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGxlc3MgdGhhbiBvciBl
cXVhbCB0byAlQC4iKSwgbWF4aW11bS51dGY4KCkuZGF0YSgpKSk7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoc3RyaW5nLmdldCgpKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
U3RlcE1pc21hdGNoVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hU
ZXh0KGNvbnN0IFN0cmluZyYgc3RlcEJhc2UsIGNvbnN0IFN0cmluZyYgc3RlcCkKIHsKLSAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJzdGVwIG1pc21hdGNoIikpOworICAgIEdPd25QdHI8
Z2NoYXI+IHN0cmluZyhnX3N0cmR1cF9wcmludGYoQ18oIlRoZSBkaWZmZXJlbmNlIGJldHdlZW4g
dGhlIHZhbHVlIGFuZCAlMSRAIHNob3VsZCBiZSBhIG11bHRpcGxlIG9mICUyJEAuIiksIHN0ZXBC
YXNlLnV0ZjgoKS5kYXRhKCksIHN0ZXAudXRmOCgpLmRhdGEoKSkpOworICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KHN0cmluZy5nZXQoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcAppbmRleCA1MzIxNzkyLi4wYWU2ZTY5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlr
dS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3Uu
Y3BwCkBAIC0zNjUsMzEgKzM2NSw1NSBAQCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlz
bWF0Y2hUZXh0KCkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaE11bHRpbGVFbWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hOdW1iZXJUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIFN0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4
dChpbnQsIGludCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNt
YXRjaFRleHQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0xvY2FsaXplZFN0cmluZ3NNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2Nh
bGl6ZWRTdHJpbmdzTWFjLm1tCmluZGV4IDU1ZmRkMjEuLjM4ZWQwZWQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsaXplZFN0cmluZ3NNYWMubW0KKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbQpAQCAtNzgwLDYgKzc4MCwzOCBAQCBT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKICAgICByZXR1cm4gU3Ry
aW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4
dCgpCit7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBbW1dl
YkNvcmVWaWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaEVtYWlsVGV4dF07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11
bHRpcGxlRW1haWxUZXh0KCkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Cisg
ICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlwbGVFbWFpbFRleHRdOworICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KCkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3Rv
cnldIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVyVGV4dF07CisgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHQoKQoreworICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVk
RmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hVUkxUZXh0XTsKKyAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwogU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCiB7CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwpAQCAtNzg4LDM0ICs4MjAsMzQgQEAgU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQog
Ci1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dChpbnQgZ3JhcGhlbWVMZW5ndGgsIGludCBtYXhMZW5ndGgpCiB7
CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgIHJldHVybiBbW1dlYkNvcmVW
aWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0XTsK
KyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dDpncmFwaGVtZUxlbmd0aCBtYXg6bWF4TGVuZ3RoXTsKICAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmIG1pbmltdW0pCiB7CiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgIHJldHVybiBbW1dlYkNvcmVWaWV3
RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4
dF07CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIHZhbGlk
YXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0Om1pbmltdW1dOwogICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VS
YW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmIG1heGltdW0pCiB7CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwotICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFjdG9yeSBzaGFy
ZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0XTsKKyAgICByZXR1
cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VS
YW5nZU92ZXJmbG93VGV4dDptYXhpbXVtXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3Rl
cE1pc21hdGNoVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0
KGNvbnN0IFN0cmluZyYgc3RlcEJhc2UsIGNvbnN0IFN0cmluZyYgc3RlcCkKIHsKICAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5
IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dF07CisgICAg
cmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNz
YWdlU3RlcE1pc21hdGNoVGV4dDpzdGVwQmFzZSBzdGVwOnN0ZXBdOwogICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25zLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQv
TG9jYWxpemF0aW9ucy5jcHAKaW5kZXggYzkxOTE5My4uMWFmYjQzNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25zLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0xvY2FsaXphdGlvbnMuY3BwCkBAIC00OTQsMzEgKzQ5NCw1NSBAQCBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpbGVFbWFpbFRleHQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoVVJMVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
U3RyaW5nKCk7Cit9CisKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRl
eHQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQog
Ci1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGludCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
ICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VV
bmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4
dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0
cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgp
CitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcm
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1T
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAppbmRleCA4NTczNDgyLi40MTNjZDQy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCkBAIC0zNDYs
MzEgKzM0Niw1NSBAQCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkK
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaEVtYWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
U3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRp
bGVFbWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29M
b25nVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGludCkK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlz
bWF0Y2hUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAg
IHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9DaGFuZ2VMb2cgYi9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDEzNGEyNTIuLmYyNDBkYWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEwLTAyLTE1
ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXByb3ZlIGZvcm0gdmFsaWRhdGlvbiBtZXNz
YWdlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0
OTQ1CisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6IFJlZ2Vu
ZXJhdGVkLgorCiAyMDEwLTAyLTA0ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L0Vu
Z2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBiL1dlYktpdC9FbmdsaXNoLmxwcm9qL0xv
Y2FsaXphYmxlLnN0cmluZ3MKaW5kZXggNDJjMTM4NjhhZjhlOGYyZWNjMDk3MDBiOWFlOWRhZDI3
NjcyNWNhZC4uNTU3NWM0ZjVhZTZiZjAzYjE2Njk2MGMzOTNkYTBiYzM0OGYyYWVjOSAxMDA2NDQK
R0lUIGJpbmFyeSBwYXRjaApkZWx0YSAyNTA5CnpjbWQ1O09IVUl+ODIhcGlLQEc7RnZOSURSMyNr
LXdnJUpxR0x9TmxBOGY7Qk9waWdNaG1vdVo1UmQ7U1J4bytIdQp6TXI5IXpsVWIxWEM+dlJAYlpL
MXE1QnZjZEo/SGliRSRJTD9HMG5gfWVza30rPVI0b3kmYWJFS2d8K3RnK2RlZzEKekBUPjElbEtF
K2c7VElKe1l7fXFtTmYhU2psOTBIcDtDfnZ7djwkKFAhVyYhTDkhZn0oQCZHbyFea2RGQXU2e1dY
CnpRY280aWBRWT1NMUZ0KnpXZ3dANFgkd2ImUlFFSCRHeXxJakUxQjdOclR9NHNAdj5lKUFJMiZ4
PE02fThZfGhKSwp6b3sxfWteKUBiM0NTZGpIYDV+YXUrWFNCV0RaRV4mT3ZySjlJQDhzY1p3eFJm
IV9vdXlYRz4oR1REckppUGQ2ZU0Kejg0fHxibVBmZW4/SFdsaTVDYndJWEpyeTIzeiEpUW91cXdH
Z0JiOURLR1NHcHQxTzx9QWNKXnU9fHdKOEtqKnlwCnplQDRVfGp9OClYLXB5YCNiZ3BmRmROeHkq
aTBiRWJPY0ZZaCVzaj58aUYrRS1gIVQrT19sej5WcW04LTFffFI0cQp6RDVfMngtWWJAemhvdmxD
SWIpYTtJbjFVYHNYYkFzbH03UGNSUDZlSCRFKTJFenExKEZJMDZYKz5pM0tFckx1KGsKekVyfTRz
Pk57YVZPY3NMKVgoRFIhcWdSZDM5cW5lMyMyfEUoQjg7PlVgQigqNntLX2ItLSNhTSNhIy1VPzVL
ey1WCnppcCh+IyFscCZgIVRxdiNnezt7PjUya2Y4djY0LXNSQjJhP2M2V2VVNG0mRWlyZl9Qbz5R
cn5KcnBWfi1aTWh7PQp6aHZ2ZXI2YjRFTlRfeV9PbT9PRiVGMXp1aDtwIXM0Ql8wfGZXTE5UIzlD
O1lUYTBwZT0+YlBFUSZiMHxqayNvTWoKendZSjhLMnkhPjJKczUoJXZDNDc4cm8qbVpeNnp2PnUz
ODVYNUdLaCZHWiRUTShSY14jZW54Ry1Jais5R29kYEI2Cnopa2NaQXEhV2ZHYUplaiZidk5kVCM0
P0c9ZVV1SHE3eFdpfiU3KHFfJnNeN3pMVHYjcSY8QWoydmR6JGtzaGUqMwp6XkwjPE5ZaiY9ZiZv
cW1JWXM0YUZyKSZQenE8WjM5YkdsekhjQnRPPEY9dXR7YWojbCE4K0FlKDdkcTlqNjtNQXUKVVBw
Z0k4czU3JVUtPksoKitqYHloN2koKylRMituewoKZGVsdGEgNjI4CnpjbWRuRGpRUCg1PF8jeWNI
fi1mOHFfTnBQVmhpSkJ8S2hPQ15KOVk4SH1CNCQ7NG9QfUo4WkloTn1ndXtMbjE+Nwp6NVQtSHxH
Mn01UUZ5dTAxRzg2K3prWjNZUDI3P2slJW9kMjE3em43R3lrVG5TV2J1dFVvQSspb1ZGNFBTRm5N
dkYKems3RShncGdlfGpweiNVfWAzei1YWXRrNVVmYjRRNHF3JVBrRVJkWilTdXhrazY8Skx3KDk5
R2YlKShHTipgZVFrCnp2KnkrPWV5e19adnFrRVFmV3tPOXtndyohWjMpb3RBamN7SVNzNmVQMSl2
TmxXRDA7Uk5HS0huUlV8USNmPCtZPQp6dj41YW14UGFiM3NLT24zSU1nc1BXSzVwRzxpN2QhNWQm
N0JvQWYzTnIlNm48akg7UGp5Ri1lPDFRPDtESylYU34KejEkNVdzZzA5cmJne1M8MD5iZlE7cndR
NFhGalJ0Rmp4V301c0BjNVopS1o5Ki0/ZWtoJVlZdXQwZVRHTlheMUNeClpwQEQlJjA5ZSNhQCll
IURmMiFOJioldVp3MFJYak5uQGEheQoKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDJhYjkyZTEuLjY1MzZhOWQg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTAyLTE1ICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXByb3ZlIGZvcm0gdmFsaWRhdGlvbiBtZXNzYWdlcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0OTQ1CisKKyAgICAgICAg
KiBzcmMvTG9jYWxpemVkU3RyaW5ncy5jcHA6IEZvbGxvdyBMb2NhbGl6ZWRTdHJpbmdzLmggY2hh
bmdlLgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hFbWFp
bFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hN
dWx0aWxlRW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoTnVtYmVyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaFVSTFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VUb29Mb25nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
VW5kZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
T3ZlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1p
c21hdGNoVGV4dCk6CisKIDIwMTAtMDItMTQgIFZhbmdlbGlzIEtva2tldmlzICA8dmFuZ2VsaXNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IDRlMDE4NDguLmIyZjc5ZWMg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtMjg0LDMxICsy
ODQsNTUgQEAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCiAgICAg
cmV0dXJuIFN0cmluZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hFbWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aWxlRW1h
aWxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVyVGV4dCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCiBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAg
IHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1Rl
eHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoaW50LCBpbnQpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlUmFuZ2VPdmVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVy
Zmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJl
dHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNo
VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1
cm4gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCmluZGV4IDg0YjE1M2UuLmY4ZGU4ODAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDItMTUgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZm9ybSB2YWxp
ZGF0aW9uIG1lc3NhZ2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzQ5NDUKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlZpZXdGYWN0b3J5
Lm1tOiBGb2xsb3cgTG9jYWxpemVkU3RyaW5ncy5oIGNoYW5nZS4KKyAgICAgICAgKC1bV2ViVmll
d0ZhY3RvcnkgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0XSk6CisgICAgICAgICgt
W1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dF0pOgorICAg
ICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWls
VGV4dF0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaE11bHRpcGxlRW1haWxUZXh0XSk6CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZh
bGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVyVGV4dF0pOgorICAgICAgICAoLVtXZWJW
aWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHRdKToKKyAgICAg
ICAgKC1bV2ViVmlld0ZhY3RvcnkgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0
XSk6CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1Rl
eHQ6bWF4Ol0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlVW5kZXJmbG93VGV4dDpdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3RvcnkgdmFsaWRhdGlv
bk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dDpdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3Rvcnkg
dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0OnN0ZXA6XSk6CisKIDIwMTAtMDItMTIg
IERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNh
bSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpZXdG
YWN0b3J5Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFjdG9yeS5tbQpp
bmRleCAyNjA3ZjE4Li4xMjUxMTYzIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlZpZXdGYWN0b3J5Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Vmlld0ZhY3RvcnkubW0KQEAgLTc3OSwzNyArNzc5LDU3IEBACiAKIC0gKE5TU3RyaW5nICopdmFs
aWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0CiB7Ci0gICAgcmV0dXJuIFVJX1NUUklORygi
dmFsdWUgbWlzc2luZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVpcmVkIGZvcm0gY29u
dHJvbCBlbGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKTsKKyAgICByZXR1cm4gVUlfU1RSSU5H
KCJOZWVkIHRvIHNwZWNpZnkgbm9uLWVtcHR5IHZhbHVlLiIsICJWYWxpZGF0aW9uIG1lc3NhZ2Ug
Zm9yIHJlcXVpcmVkIGZvcm0gY29udHJvbCBlbGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKTsK
IH0KIAogLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQKIHsK
LSAgICByZXR1cm4gVUlfU1RSSU5HKCJ0eXBlIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2Fn
ZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUgbm90IG1hdGNoaW5nIHR5cGUi
KTsKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJUaGUgdmFsdWUgZG9lcyBub3QgbWF0Y2ggdG8gdGhl
IGZvcm0gZmllbGQgdHlwZS4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNv
bnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpOworfQorCistIChOU1N0cmlu
ZyAqKXZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0Cit7CisgICAgcmV0dXJu
IFVJX1NUUklORygiVGhlIHZhbHVlIHNob3VsZCBiZSBhbiBlLW1haWwgYWRkcmVzcy4iLCAiVmFs
aWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3Qg
bWF0Y2hpbmcgZW1haWwgdHlwZSIpOworfQorCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoTXVsdGlwbGVFbWFpbFRleHQKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5H
KCJUaGUgdmFsdWUgc2hvdWxkIGJlIGNvbW1hLXNlcGFyYXRlZCBlLW1haWwgYWRkcmVzZXMuIiwg
IlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUg
bm90IG1hdGNoaW5nIG11bHRpcGxlIGVtYWlsIHR5cGUiKTsKK30KKworLSAoTlNTdHJpbmcgKil2
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE51bWJlclRleHQKK3sKKyAgICByZXR1cm4gVUlf
U1RSSU5HKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGEgbnVtYmVyLiIsICJWYWxpZGF0aW9uIG1lc3Nh
Z2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCBhIHZhbHVlIG5vdCBtYXRjaGluZyBudW1i
ZXIgdHlwZSIpOworfQorCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21h
dGNoVVJMVGV4dAoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlRoZSB2YWx1ZSBzaG91bGQgYmUg
YSB3ZWIgYWRkcmVzcy4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRy
b2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgVVJMIHR5cGUiKTsKIH0KIAogLSAoTlNTdHJp
bmcgKil2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQKIHsKLSAgICByZXR1cm4g
VUlfU1RSSU5HKCJwYXR0ZXJuIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5w
dXQgZm9ybSBjb250cm9scyByZXF1aXJpbmcgYSBjb25zdHJhaW5lZCB2YWx1ZSBhY2NvcmRpbmcg
dG8gcGF0dGVybiIpOworICAgIHJldHVybiBVSV9TVFJJTkcoIlRoZSB2YWx1ZSBkb2VzIG5vdCBt
YXRjaCB0byBhIGNoYXJhY3RlciByZXN0cmljdGlvbiBmb3IgdGhpcyBmaWVsZC4iLCAiVmFsaWRh
dGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmluZyBhIGNvbnN0cmFp
bmVkIHZhbHVlIGFjY29yZGluZyB0byBwYXR0ZXJuIik7CiB9CiAKLS0gKE5TU3RyaW5nICopdmFs
aWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dAorLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0OihpbnQpZ3JhcGhlbWVMZW5ndGggbWF4OihpbnQpbWF4TGVuZ3RoCiB7Ci0g
ICAgcmV0dXJuIFVJX1NUUklORygidG9vIGxvbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgd2l0aCBhIHZhbHVlIGxvbmdlciB0aGFuIG1heGltdW0gYWxs
b3dlZCBsZW5ndGgiKTsKKyAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6VUlf
U1RSSU5HKCJUaGUgdGV4dCBpcyB0b28gbG9uZy4gSXRzIGxlbmd0aCBpcyAlMSRkIGNoYXJhY3Rl
cnMsIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggaXMgJTIkZCBjaGFyYWN0ZXJzLiIsICJWYWxpZGF0
aW9uIG1lc3NhZ2UgZm9yIGZvcm0gY29udHJvbCBlbGVtZW50cyB3aXRoIGEgdmFsdWUgbG9uZ2Vy
IHRoYW4gbWF4aW11bSBhbGxvd2VkIGxlbmd0aCIpLCBncmFwaGVtZUxlbmd0aCwgbWF4TGVuZ3Ro
XTsKIH0KIAotLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4
dAorLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dDooTlNT
dHJpbmcqKW1pbmltdW0KIHsKLSAgICByZXR1cm4gVUlfU1RSSU5HKCJyYW5nZSB1bmRlcmZsb3ci
LCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUg
bG93ZXIgdGhhbiBhbGxvd2VkIG1pbmltdW0iKTsKKyAgICByZXR1cm4gW05TU3RyaW5nIHN0cmlu
Z1dpdGhGb3JtYXQ6VUlfU1RSSU5HKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBv
ciBlcXVhbCB0byAlQC4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRy
b2xzIHdpdGggdmFsdWUgbG93ZXIgdGhhbiBhbGxvd2VkIG1pbmltdW0iKSwgbWluaW11bV07CiB9
CiAKLS0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dAorLSAo
TlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0OihOU1N0cmluZyop
bWF4aW11bQogewotICAgIHJldHVybiBVSV9TVFJJTkcoInJhbmdlIG92ZXJmbG93IiwgIlZhbGlk
YXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIGhpZ2hlciB0
aGFuIGFsbG93ZWQgbWF4aW11bSIpOworICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpVSV9TVFJJTkcoIlRoZSB2YWx1ZSBzaG91bGQgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRv
ICVALiIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2
YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKSwgbWF4aW11bV07CiB9CiAKLS0gKE5T
U3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0CistIChOU1N0cmluZyAq
KXZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dDooTlNTdHJpbmcqKXN0ZXBCYXNlIHN0
ZXA6KE5TU3RyaW5nKilzdGVwCiB7Ci0gICAgcmV0dXJuIFVJX1NUUklORygic3RlcCBtaXNtYXRj
aCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1
ZSBub3QgcmVzcGVjdGluZyB0aGUgc3RlcCBhdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6VUlfU1RSSU5HKCJUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRo
ZSB2YWx1ZSBhbmQgJTEkQCBzaG91bGQgYmUgYSBtdWx0aXBsZSBvZiAlMiRALiIsICJWYWxpZGF0
aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2hlbiB0aGUgdmFsdWUgZG9lcyBu
b3QgbWF0Y2ggdG8gPHRoZSBmaXJzdCBwYXJhbWV0ZXI+ICsgPGFueSBpbnRlZ2VyPiB4IDx0aGUg
c2Vjb25kIHBhcmFtZXRlcj4iKSwgc3RlcEJhc2UsIHN0ZXBdOwogfQogCiBAZW5kCmRpZmYgLS1n
aXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGZj
MGMyMjQuLjM3ZWFmNWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDItMTUgIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZm9ybSB2YWxpZGF0aW9uIG1lc3NhZ2VzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ5NDUKKworICAg
ICAgICAqIFdlYkNvcmVMb2NhbGl6ZWRTdHJpbmdzLmNwcDogRm9sbG93IExvY2FsaXplZFN0cmlu
Z3MuaCBjaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
RW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21h
dGNoTXVsdGlwbGVFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9u
TWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlVW5kZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlT3ZlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
U3RlcE1pc21hdGNoVGV4dCk6CisKIDIwMTAtMDItMTIgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWlu
c3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYg
LS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVMb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1dlYktpdC93
aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IDU4NTA2MDUuLmQ0OGYwMmYgMTAw
NjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1dl
YktpdC93aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0yNDIsMTAgKzI0Miw0MyBA
QCBTdHJpbmcgV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGlt
ZSkKIAogI2VuZGlmICAvLyBFTkFCTEUoVklERU8pCiAKLVN0cmluZyBXZWJDb3JlOjp2YWxpZGF0
aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9T
VFJJTkcoInZhbHVlIG1pc3NpbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciByZXF1aXJlZCBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgdGhhdCBoYXZlIG5vIHZhbHVlIikpOyB9Ci1TdHJpbmcgV2Vi
Q29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkgeyByZXR1cm4gU3RyaW5n
KExQQ1RTVFJfVUlfU1RSSU5HKCJ0eXBlIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBm
b3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUgbm90IG1hdGNoaW5nIHR5cGUiKSk7
IH0KLVN0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQo
KSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoInBhdHRlcm4gbWlzbWF0Y2giLCAi
VmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmluZyBhIGNv
bnN0cmFpbmVkIHZhbHVlIGFjY29yZGluZyB0byBwYXR0ZXJuIikpOyB9Ci1TdHJpbmcgV2ViQ29y
ZTo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RS
X1VJX1NUUklORygidG9vIGxvbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBmb3JtIGNvbnRy
b2wgZWxlbWVudHMgd2l0aCBhIHZhbHVlIGxvbmdlciB0aGFuIG1heGltdW0gYWxsb3dlZCBsZW5n
dGgiKSk7IH0KLVN0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93
VGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygicmFuZ2UgdW5kZXJmbG93
IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVl
IGxvd2VyIHRoYW4gYWxsb3dlZCBtaW5pbXVtIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6dmFsaWRh
dGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJ
X1NUUklORygicmFuZ2Ugb3ZlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBm
b3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgaGlnaGVyIHRoYW4gYWxsb3dlZCBtYXhpbXVtIikpOyB9
Ci1TdHJpbmcgV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkgeyBy
ZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJzdGVwIG1pc21hdGNoIiwgIlZhbGlkYXRp
b24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIG5vdCByZXNwZWN0
aW5nIHRoZSBzdGVwIGF0dHJpYnV0ZSIpKTsgfQorU3RyaW5nIFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklO
RygiTmVlZCB0byBzcGVjaWZ5IG5vbi1lbXB0eSB2YWx1ZS4iLCAiVmFsaWRhdGlvbiBtZXNzYWdl
IGZvciByZXF1aXJlZCBmb3JtIGNvbnRyb2wgZWxlbWVudHMgdGhhdCBoYXZlIG5vIHZhbHVlIikp
OyB9CitTdHJpbmcgV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkg
eyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJUaGUgdmFsdWUgZG9lcyBub3QgbWF0
Y2ggdG8gdGhlIGZvcm0gZmllbGQgdHlwZS4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1
dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpKTsgfQorU3Ry
aW5nIFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpIHsgcmV0dXJu
IFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiVGhlIHZhbHVlIGRvZXMgbm90IG1hdGNoIHRvIHRo
ZSBmb3JtIGZpZWxkIHR5cGUuIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBj
b250cm9scyB3aXRoIGEgdmFsdWUgbm90IG1hdGNoaW5nIHR5cGUiKSk7IH0KK1N0cmluZyBXZWJD
b3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCgpIHsgcmV0dXJuIFN0
cmluZyhMUENUU1RSX1VJX1NUUklORygiVGhlIHZhbHVlIHNob3VsZCBiZSBhbiBlLW1haWwgYWRk
cmVzcy4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGgg
YSB2YWx1ZSBub3QgbWF0Y2hpbmcgZW1haWwgdHlwZSIpKTsgfQorU3RyaW5nIFdlYkNvcmU6OnZh
bGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlwbGVFbWFpbFRleHQoKSB7IHJldHVybiBT
dHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIlRoZSB2YWx1ZSBzaG91bGQgYmUgY29tbWEtc2VwYXJh
dGVkIGUtbWFpbCBhZGRyZXNlcy4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3Jt
IGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgbXVsdGlwbGUgZW1haWwgdHlwZSIp
KTsgfQorU3RyaW5nIFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVy
VGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiVGhlIHZhbHVlIHNob3Vs
ZCBiZSBhIG51bWJlci4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRy
b2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgbnVtYmVyIHR5cGUiKSk7IH0KK1N0cmluZyBX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHQoKSB7IHJldHVybiBT
dHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIlRoZSB2YWx1ZSBzaG91bGQgYmUgYSB3ZWIgYWRkcmVz
cy4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2
YWx1ZSBub3QgbWF0Y2hpbmcgVVJMIHR5cGUiKSk7IH0KK1N0cmluZyBXZWJDb3JlOjp2YWxpZGF0
aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9V
SV9TVFJJTkcoIlRoZSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0byBhIGNoYXJhY3RlciByZXN0cmlj
dGlvbiBmb3IgdGhpcyBmaWVsZC4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3Jt
IGNvbnRyb2xzIHJlcXVpcmluZyBhIGNvbnN0cmFpbmVkIHZhbHVlIGFjY29yZGluZyB0byBwYXR0
ZXJuIikpOyB9CisKK1N0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0
KGludCBncmFwaGVtZUxlbmd0aCwgaW50IG1heExlbmd0aCkKK3sKKyAgICBzdGF0aWMgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiBmb3JtYXQoQWRvcHRDRiwgVUlfU1RSSU5HKCJUaGUgdGV4dCBpcyB0
b28gbG9uZy4gSXRzIGxlbmd0aCBpcyAlMSRkIGNoYXJhY3RlcnMsIGFuZCB0aGUgbWF4aW11bSBs
ZW5ndGggaXMgJTIkZCBjaGFyYWN0ZXJzLiIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGZvcm0g
Y29udHJvbCBlbGVtZW50cyB3aXRoIGEgdmFsdWUgbG9uZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2Vk
IGxlbmd0aCIpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHJlc3VsdChBZG9wdENGLCBD
RlN0cmluZ0NyZWF0ZVdpdGhGb3JtYXQoMCwgMCwgZm9ybWF0LmdldCgpLCBncmFwaGVtZUxlbmd0
aCwgbWF4TGVuZ3RoKSk7CisgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKK30KKworU3RyaW5nIFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYg
bWluaW11bSkKK3sKKyAgICBzdGF0aWMgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmb3JtYXQoQWRv
cHRDRiwgVUlfU1RSSU5HKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVh
bCB0byAlQC4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdp
dGggdmFsdWUgbG93ZXIgdGhhbiBhbGxvd2VkIG1pbmltdW0iKSk7CisgICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBtaW5pbXVtQ0YoQWRvcHRDRiwgbWluaW11bS5jcmVhdGVDRlN0cmluZygpKTsK
KyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHJlc3VsdChBZG9wdENGLCBDRlN0cmluZ0NyZWF0
ZVdpdGhGb3JtYXQoMCwgMCwgZm9ybWF0LmdldCgpLCBtaW5pbXVtQ0YuZ2V0KCkpKTsKKyAgICBy
ZXR1cm4gcmVzdWx0LmdldCgpOworfQorCitTdHJpbmcgV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmIG1heGltdW0pCit7CisgICAgc3RhdGlj
IFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9ybWF0KEFkb3B0Q0YsIFVJX1NUUklORygiVGhlIHZh
bHVlIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJUAuIiwgIlZhbGlkYXRpb24gbWVz
c2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIGhpZ2hlciB0aGFuIGFsbG93
ZWQgbWF4aW11bSIpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IG1heGltdW1DRihBZG9w
dENGLCBtYXhpbXVtLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gcmVzdWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdCgwLCAwLCBmb3JtYXQu
Z2V0KCksIG1heGltdW1DRi5nZXQoKSkpOworICAgIHJldHVybiByZXN1bHQuZ2V0KCk7Cit9CisK
K1N0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3Qg
U3RyaW5nJiBzdGVwQmFzZSwgY29uc3QgU3RyaW5nJiBzdGVwKQoreworICAgIHN0YXRpYyBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IGZvcm1hdChBZG9wdENGLCBVSV9TVFJJTkcoIlRoZSBkaWZmZXJl
bmNlIGJldHdlZW4gdGhlIHZhbHVlIGFuZCAlMSRAIHNob3VsZCBiZSBhIG11bHRpcGxlIG9mICUy
JEAuIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aGVuIHRo
ZSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0byA8dGhlIGZpcnN0IHBhcmFtZXRlcj4gKyA8YW55IGlu
dGVnZXI+IHggPHRoZSBzZWNvbmQgcGFyYW1ldGVyPiIpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+IHN0ZXBCYXNlQ0YoQWRvcHRDRiwgc3RlcEJhc2UuY3JlYXRlQ0ZTdHJpbmcoKSk7Cisg
ICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzdGVwQ0YoQWRvcHRDRiwgc3RlcC5jcmVhdGVDRlN0
cmluZygpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHJlc3VsdChBZG9wdENGLCBDRlN0
cmluZ0NyZWF0ZVdpdGhGb3JtYXQoMCwgMCwgZm9ybWF0LmdldCgpLCBzdGVwQmFzZUNGLmdldCgp
LCBzdGVwQ0YuZ2V0KCkpKTsKKyAgICByZXR1cm4gcmVzdWx0LmdldCgpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50278</attachid>
            <date>2010-03-08 23:09:50 -0800</date>
            <delta_ts>2010-11-10 23:28:33 -0800</delta_ts>
            <desc>Proposed patch (rev.3)</desc>
            <filename>bug-34945-20100216013706.patch</filename>
            <type>text/plain</type>
            <size>51347</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YTA2NTg4Li43MTM1NDc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDIt
MTUgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZm9ybSB2YWxpZGF0aW9uIG1l
c3NhZ2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzQ5NDUKKworICAgICAgICBVcGRhdGUgdGhlIHRlc3QgZm9yIHZhbGlkYXRpb24gbWVzc2FnZSBj
aGFuZ2VzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFsaWRhdGlvbk1l
c3NhZ2UuanM6CisgICAgICAgICogZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3Rl
ZC50eHQ6CisKIDIwMTAtMDItMTUgIFJvYmVydCBIb2dhbiAgPHJvYmVydEByb2JlcnRob2dhbi5u
ZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy92YWxpZGF0aW9uTWVzc2FnZS5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpz
CmluZGV4IDA2YzdhNzQuLmFiOGZhY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpzCkBAIC0xLDYwICsxLDYw
IEBACiBkZXNjcmlwdGlvbigiVGVzdCBmb3IgdmFsaWRhdGlvbk1lc3NhZ2UgRE9NIHByb3BlcnR5
LiIpOwogCiB2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKTsKK2Z1bmN0
aW9uIG1lc3NhZ2VGb3IodGFnTmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMpIHsKKyAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7CisgICAgZWxlbWVudC5uYW1l
ID0gImZvbyI7CisgICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlOworICAgIGZvciAodmFyIHByb3Ag
aW4gYXR0cmlidXRlcykKKwllbGVtZW50W3Byb3BdID0gYXR0cmlidXRlc1twcm9wXTsKKyAgICBm
b3JtLmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIHJldHVybiBlbGVtZW50LnZhbGlkYXRpb25N
ZXNzYWdlOworfQogCiAvLyBBbiBpbnB1dCBlbGVtZW50IHdpdGggYSBwYXR0ZXJuIHNldCBhbmQg
YSBtaXNtYXRjaGVkIHZhbHVlCi12YXIgcGF0dGVybklucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW5wdXQiKTsKLXBhdHRlcm5JbnB1dC5uYW1lID0gInBhdHRlcm5JbnB1dCI7Ci1wYXR0
ZXJuSW5wdXQucGF0dGVybiA9ICJsb3JlbSBpcHN1bSI7Ci1wYXR0ZXJuSW5wdXQudmFsdWUgPSAi
bG9yZW0iOwotZm9ybS5hcHBlbmRDaGlsZChwYXR0ZXJuSW5wdXQpOwotc2hvdWxkQmUoInBhdHRl
cm5JbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIncGF0dGVybiBtaXNtYXRjaCciKTsKK3Nob3Vs
ZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICdsb3JlbScsIHtwYXR0ZXJuOidsb3JlbSBpcHN1bSd9
KSIsCisgICAgICAgICAiJ1RoZSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0byBhIGNoYXJhY3RlciBy
ZXN0cmljdGlvbiBmb3IgdGhpcyBmaWVsZC4nIik7CiAKIC8vIEEgcmVxdWlyZWQgaW5wdXQgd2l0
aCBhbiBlbXB0eSB2YWx1ZQotdmFyIHJlcXVpcmVkSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpbnB1dCIpOwotcmVxdWlyZWRJbnB1dC5uYW1lID0gInJlcXVpcmVkSW5wdXQiOwotcmVx
dWlyZWRJbnB1dC5yZXF1aXJlZCA9IHRydWU7Ci1mb3JtLmFwcGVuZENoaWxkKHJlcXVpcmVkSW5w
dXQpOwotc2hvdWxkQmUoInJlcXVpcmVkSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3ZhbHVl
IG1pc3NpbmcnIik7Ci0KK3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICcnLCB7cmVxdWly
ZWQ6dHJ1ZX0pIiwKKyAgICAgICAgICInTmVlZCB0byBzcGVjaWZ5IG5vbi1lbXB0eSB2YWx1ZS4n
Iik7CiAvLyBBIHJlcXVpcmVkIHRleHRhcmVhIHdpdGggYW4gZW1wdHkgdmFsdWUKLXZhciByZXF1
aXJlZFRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsKLXJlcXVp
cmVkVGV4dEFyZWEubmFtZSA9ICJyZXF1aXJlZFRleHRBcmVhIjsKLXJlcXVpcmVkVGV4dEFyZWEu
cmVxdWlyZWQgPSB0cnVlOwotZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFRleHRBcmVhKTsKLXNo
b3VsZEJlKCJyZXF1aXJlZFRleHRBcmVhLnZhbGlkYXRpb25NZXNzYWdlIiwgIid2YWx1ZSBtaXNz
aW5nJyIpOworc2hvdWxkQmUoIm1lc3NhZ2VGb3IoJ3RleHRhcmVhJywgJycsIHtyZXF1aXJlZDp0
cnVlfSkiLAorICAgICAgICAgIidOZWVkIHRvIHNwZWNpZnkgbm9uLWVtcHR5IHZhbHVlLiciKTsK
IAogLy8gQSB0eXBlPWVtYWlsIGlucHV0IGZvciB0aGUgInR5cGUgbWlzbWF0Y2giIGZsYWcKLXZh
ciBlbWFpbElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKLWVtYWlsSW5w
dXQubmFtZSA9ICJlbWFpbElucHV0IjsKLWVtYWlsSW5wdXQudHlwZSA9ICJlbWFpbCI7Ci1lbWFp
bElucHV0LnZhbHVlID0gImluY29ycmVjdFZhbHVlIjsKLWZvcm0uYXBwZW5kQ2hpbGQoZW1haWxJ
bnB1dCk7Ci1zaG91bGRCZSgiZW1haWxJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIndHlwZSBt
aXNtYXRjaCciKTsKK3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICdpbmNvcnJlY3RWYWx1
ZScsIHt0eXBlOidlbWFpbCd9KSIsCisgICAgICAgICAiJ1RoZSB2YWx1ZSBzaG91bGQgYmUgYW4g
ZS1tYWlsIGFkZHJlc3MuJyIpOworc2hvdWxkQmUoIm1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29y
cmVjdFZhbHVlJywge3R5cGU6J2VtYWlsJywgbXVsdGlwbGU6dHJ1ZX0pIiwKKyAgICAgICAgICIn
VGhlIHZhbHVlIHNob3VsZCBiZSBjb21tYS1zZXBhcmF0ZWQgZS1tYWlsIGFkZHJlc2VzLiciKTsK
K3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICdpbmNvcnJlY3RWYWx1ZScsIHt0eXBlOidu
dW1iZXInfSkiLAorICAgICAgICAgIidUaGUgdmFsdWUgc2hvdWxkIGJlIGEgbnVtYmVyLiciKTsK
K3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdpbnB1dCcsICdpbmNvcnJlY3RWYWx1ZScsIHt0eXBlOid1
cmwnfSkiLAorICAgICAgICAgIidUaGUgdmFsdWUgc2hvdWxkIGJlIGEgd2ViIGFkZHJlc3MuJyIp
Oworc2hvdWxkQmUoIm1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29ycmVjdFZhbHVlJywge3R5cGU6
J2NvbG9yJ30pIiwKKyAgICAgICAgICInVGhlIHZhbHVlIGRvZXMgbm90IG1hdGNoIHRvIHRoZSBm
b3JtIGZpZWxkIHR5cGUuJyIpOworCisvLyBBbiBpbnB1dCB3aXRoIHRvbyBsb25nIHZhbHVlCitz
aG91bGRCZSgibWVzc2FnZUZvcignaW5wdXQnLCAnYWJjJywge21heExlbmd0aDoyfSkiLAorICAg
ICAgICAgIidUaGUgdGV4dCBpcyB0b28gbG9uZy4gSXRzIGxlbmd0aCBpcyAzIGNoYXJhY3RlcnMs
IGFuZCB0aGUgbWF4aW11bSBsZW5ndGggaXMgMiBjaGFyYWN0ZXJzLiciKTsKKy8vIEEgdGV4dGFy
ZWEgd2l0aCB0b28gbG9uZyB2YXVsdWUKK3Nob3VsZEJlKCJtZXNzYWdlRm9yKCd0ZXh0YXJlYScs
ICdhYmMnLCB7bWF4TGVuZ3RoOjJ9KSIsCisgICAgICAgICAiJ1RoZSB0ZXh0IGlzIHRvbyBsb25n
LiBJdHMgbGVuZ3RoIGlzIDMgY2hhcmFjdGVycywgYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyAy
IGNoYXJhY3RlcnMuJyIpOworCisvLyBBICJudW1iZXIiIGlucHV0IGZvciAicmFuZ2UgdW5kZXJm
bG93IiBmbGFnCitzaG91bGRCZSgibWVzc2FnZUZvcignaW5wdXQnLCAnMScsIHt0eXBlOidudW1i
ZXInLCBtaW46JzInfSkiLAorICAgICAgICAgIidUaGUgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIg
dGhhbiBvciBlcXVhbCB0byAyLiciKTsKIAotLy8gQSAicmFuZ2VkIiBpbnB1dCBmb3IgInJhbmdl
IHVuZGVyZmxvdyIgZmxhZwotdmFyIHVuZGVySW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbnB1dCIpOwotdW5kZXJJbnB1dC5uYW1lID0gInVuZGVySW5wdXQiOwotdW5kZXJJbnB1dC50
eXBlID0gInJhbmdlIjsKLXVuZGVySW5wdXQubWluID0gIjIiOwotdW5kZXJJbnB1dC52YWx1ZSA9
ICIxIjsKLWZvcm0uYXBwZW5kQ2hpbGQodW5kZXJJbnB1dCk7Ci1zaG91bGRCZSgidW5kZXJJbnB1
dC52YWxpZGF0aW9uTWVzc2FnZSIsICIncmFuZ2UgdW5kZXJmbG93JyIpOworLy8gQSAibnVtYmVy
IiBpbnB1dCBmb3IgInJhbmdlIG92ZXJmbG93IiBmbGFnCitzaG91bGRCZSgibWVzc2FnZUZvcign
aW5wdXQnLCAnMycsIHt0eXBlOidudW1iZXInLCBtYXg6JzInfSkiLAorICAgICAgICAgIidUaGUg
dmFsdWUgc2hvdWxkIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAyLiciKTsKIAotLy8gQSAicmFu
Z2VkIiBpbnB1dCBmb3IgInJhbmdlIG92ZXJmbG93IiBmbGFnCi12YXIgb3ZlcklucHV0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKLW92ZXJJbnB1dC5uYW1lID0gIm92ZXJJbnB1
dCI7Ci1vdmVySW5wdXQudHlwZSA9ICJyYW5nZSI7Ci1vdmVySW5wdXQubWF4ID0gIjIiOwotb3Zl
cklucHV0LnZhbHVlID0gIjMiOwotZm9ybS5hcHBlbmRDaGlsZChvdmVySW5wdXQpOwotc2hvdWxk
QmUoIm92ZXJJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIncmFuZ2Ugb3ZlcmZsb3cnIik7Cisv
LyBBICJudW1iZXIiIGlucHV0IHdpdGggc3RlcC1taXNtYXRjaGVkIHZhbHVlCitzaG91bGRCZSgi
bWVzc2FnZUZvcignaW5wdXQnLCAnMi4wJywge3R5cGU6J251bWJlcicsIHN0ZXA6JzEuMTAnfSki
LAorICAgICAgICAgIidUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB2YWx1ZSBhbmQgMCBzaG91
bGQgYmUgYSBtdWx0aXBsZSBvZiAxLjEuJyIpOwogCiAvLyBBIGJ1dHRvbiBjYW4ndCBiZSB2YWxp
dGVkIGFuZCwgdGh1cywgaGFzIGEgYmxhbmsgdmFsaWRhdGlvbk1lc3NhZ2UKLXZhciBidXQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKLWJ1dC5uYW1lID0gImJ1dHRvbiI7Ci1m
b3JtLmFwcGVuZENoaWxkKGJ1dCk7Ci1zaG91bGRCZSgiYnV0LnZhbGlkYXRpb25NZXNzYWdlIiwg
IicnIik7CitzaG91bGRCZSgibWVzc2FnZUZvcignYnV0dG9uJywgJycsIHt9KSIsICInJyIpOwog
CiAvLyBBbiBpbnB1dCBjb250cm9sIHdpdGggbm8gbmFtZSwgc28gaXQgY2FuJ3QgYmUgdmFsaWRh
dGVkICh3aWxsVmFsaWRhdGUgPSBmYWxzZSkKIHZhciBhbm9uaW5wdXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbnB1dCIpOwpAQCAtNjIsMTUgKzYyLDkgQEAgZm9ybS5hcHBlbmRDaGlsZChh
bm9uaW5wdXQpOwogc2hvdWxkQmUoImFub25pbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICInJyIp
CiAKIC8vIEZpZWxkc2V0cyBjYW4ndCBiZSB2YWxpZGF0ZWQKLXZhciBoYXBweUZpZWxkc2V0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKTsKLWhhcHB5RmllbGRzZXQubmFtZSA9
ICJmaWVsZHNldCI7Ci1mb3JtLmFwcGVuZENoaWxkKGhhcHB5RmllbGRzZXQpOwotc2hvdWxkQmUo
ImhhcHB5RmllbGRzZXQudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJyciKTsKK3Nob3VsZEJlKCJtZXNz
YWdlRm9yKCdmaWVsZHNldCcsICcnLCB7fSkiLCAiJyciKTsKIAogLy8gU2VsZWN0IGNvbnRyb2xz
IGNhbid0IGJlIHZhbGlkYXRlZCB0b28KLXZhciBoYXBweVNlbGVjdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNlbGVjdCIpOwotaGFwcHlTZWxlY3QubmFtZSA9ICJzZWxlY3QiOwotZm9ybS5h
cHBlbmRDaGlsZChoYXBweVNlbGVjdCk7Ci1zaG91bGRCZSgiaGFwcHlTZWxlY3QudmFsaWRhdGlv
bk1lc3NhZ2UiLCAiJyciKTsKK3Nob3VsZEJlKCJtZXNzYWdlRm9yKCdzZWxlY3QnLCAnJywge30p
IiwgIicnIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dAppbmRl
eCAxNzJmZGI5Li5hYzEzZmU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Zh
bGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dApAQCAtMywxNiArMywyMyBAQCBUZXN0IGZv
ciB2YWxpZGF0aW9uTWVzc2FnZSBET00gcHJvcGVydHkuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCiAKIAotUEFTUyBwYXR0ZXJuSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3BhdHRlcm4g
bWlzbWF0Y2gnCi1QQVNTIHJlcXVpcmVkSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVl
IG1pc3NpbmcnCi1QQVNTIHJlcXVpcmVkVGV4dEFyZWEudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3Zh
bHVlIG1pc3NpbmcnCi1QQVNTIGVtYWlsSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3R5cGUg
bWlzbWF0Y2gnCi1QQVNTIHVuZGVySW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3JhbmdlIHVu
ZGVyZmxvdycKLVBBU1Mgb3ZlcklucHV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICdyYW5nZSBvdmVy
ZmxvdycKLVBBU1MgYnV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICcnCitQQVNTIG1lc3NhZ2VGb3Io
J2lucHV0JywgJ2xvcmVtJywge3BhdHRlcm46J2xvcmVtIGlwc3VtJ30pIGlzICdUaGUgdmFsdWUg
ZG9lcyBub3QgbWF0Y2ggdG8gYSBjaGFyYWN0ZXIgcmVzdHJpY3Rpb24gZm9yIHRoaXMgZmllbGQu
JworUEFTUyBtZXNzYWdlRm9yKCdpbnB1dCcsICcnLCB7cmVxdWlyZWQ6dHJ1ZX0pIGlzICdOZWVk
IHRvIHNwZWNpZnkgbm9uLWVtcHR5IHZhbHVlLicKK1BBU1MgbWVzc2FnZUZvcigndGV4dGFyZWEn
LCAnJywge3JlcXVpcmVkOnRydWV9KSBpcyAnTmVlZCB0byBzcGVjaWZ5IG5vbi1lbXB0eSB2YWx1
ZS4nCitQQVNTIG1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29ycmVjdFZhbHVlJywge3R5cGU6J2Vt
YWlsJ30pIGlzICdUaGUgdmFsdWUgc2hvdWxkIGJlIGFuIGUtbWFpbCBhZGRyZXNzLicKK1BBU1Mg
bWVzc2FnZUZvcignaW5wdXQnLCAnaW5jb3JyZWN0VmFsdWUnLCB7dHlwZTonZW1haWwnLCBtdWx0
aXBsZTp0cnVlfSkgaXMgJ1RoZSB2YWx1ZSBzaG91bGQgYmUgY29tbWEtc2VwYXJhdGVkIGUtbWFp
bCBhZGRyZXNlcy4nCitQQVNTIG1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29ycmVjdFZhbHVlJywg
e3R5cGU6J251bWJlcid9KSBpcyAnVGhlIHZhbHVlIHNob3VsZCBiZSBhIG51bWJlci4nCitQQVNT
IG1lc3NhZ2VGb3IoJ2lucHV0JywgJ2luY29ycmVjdFZhbHVlJywge3R5cGU6J3VybCd9KSBpcyAn
VGhlIHZhbHVlIHNob3VsZCBiZSBhIHdlYiBhZGRyZXNzLicKK1BBU1MgbWVzc2FnZUZvcignaW5w
dXQnLCAnaW5jb3JyZWN0VmFsdWUnLCB7dHlwZTonY29sb3InfSkgaXMgJ1RoZSB2YWx1ZSBkb2Vz
IG5vdCBtYXRjaCB0byB0aGUgZm9ybSBmaWVsZCB0eXBlLicKK1BBU1MgbWVzc2FnZUZvcignaW5w
dXQnLCAnYWJjJywge21heExlbmd0aDoyfSkgaXMgJ1RoZSB0ZXh0IGlzIHRvbyBsb25nLiBJdHMg
bGVuZ3RoIGlzIDMgY2hhcmFjdGVycywgYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyAyIGNoYXJh
Y3RlcnMuJworUEFTUyBtZXNzYWdlRm9yKCd0ZXh0YXJlYScsICdhYmMnLCB7bWF4TGVuZ3RoOjJ9
KSBpcyAnVGhlIHRleHQgaXMgdG9vIGxvbmcuIEl0cyBsZW5ndGggaXMgMyBjaGFyYWN0ZXJzLCBh
bmQgdGhlIG1heGltdW0gbGVuZ3RoIGlzIDIgY2hhcmFjdGVycy4nCitQQVNTIG1lc3NhZ2VGb3Io
J2lucHV0JywgJzEnLCB7dHlwZTonbnVtYmVyJywgbWluOicyJ30pIGlzICdUaGUgdmFsdWUgc2hv
dWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAyLicKK1BBU1MgbWVzc2FnZUZvcignaW5w
dXQnLCAnMycsIHt0eXBlOidudW1iZXInLCBtYXg6JzInfSkgaXMgJ1RoZSB2YWx1ZSBzaG91bGQg
YmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDIuJworUEFTUyBtZXNzYWdlRm9yKCdpbnB1dCcsICcy
LjAnLCB7dHlwZTonbnVtYmVyJywgc3RlcDonMS4xMCd9KSBpcyAnVGhlIGRpZmZlcmVuY2UgYmV0
d2VlbiB0aGUgdmFsdWUgYW5kIDAgc2hvdWxkIGJlIGEgbXVsdGlwbGUgb2YgMS4xLicKK1BBU1Mg
bWVzc2FnZUZvcignYnV0dG9uJywgJycsIHt9KSBpcyAnJwogUEFTUyBhbm9uaW5wdXQudmFsaWRh
dGlvbk1lc3NhZ2UgaXMgJycKLVBBU1MgaGFwcHlGaWVsZHNldC52YWxpZGF0aW9uTWVzc2FnZSBp
cyAnJwotUEFTUyBoYXBweVNlbGVjdC52YWxpZGF0aW9uTWVzc2FnZSBpcyAnJworUEFTUyBtZXNz
YWdlRm9yKCdmaWVsZHNldCcsICcnLCB7fSkgaXMgJycKK1BBU1MgbWVzc2FnZUZvcignc2VsZWN0
JywgJycsIHt9KSBpcyAnJwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGRmNDdjYjAuLjZkMDI2ODUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTMgQEAKKzIwMTAtMDItMTUgIEtl
bnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZm9ybSB2YWxpZGF0aW9uIG1lc3NhZ2Vz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ5NDUK
KworICAgICAgICAtIE1ha2UgbWVzc2FnZXMgZGV0YWlsZWQKKyAgICAgICAgLSBJbnRyb2R1Y2Ug
dHlwZS1zcGVjaWZpYyB0eXBlTWlzbWF0Y2ggbWVzc2FnZXMgZm9yIGVtYWlsLCBudW1iZXIsIGFu
ZCBVUkwKKyAgICAgICAgLSBUbyBzaG93IG1pbi9tYXgvc3RlcCB2YWx1ZXMsIGFkZCBtZXRob2Rz
IHRvIEhUTUxJbnB1dEVsZW1lbnQKKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwU3RyaW5nKToKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Om1p
bmltdW1TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6bWF4aW11
bVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwQmFzZVN0
cmluZyk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9WYWxpZGl0eVN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6
OnZhbGlkYXRpb25NZXNzYWdlKToKKyAgICAgICAgKiBwYWdlL21hYy9XZWJDb3JlVmlld0ZhY3Rv
cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICog
cGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpbGVFbWFpbFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVVJM
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlsZUVtYWlsVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE51bWJl
clRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hV
UkxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hFbWFpbFRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aWxlRW1haWxUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVyVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpbGVFbWFpbFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1i
ZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
VVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlwbGVFbWFpbFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1i
ZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
VVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlsZUVtYWlsVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE51bWJlclRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hVUkxUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpbGVFbWFpbFRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKwogMjAxMC0w
Mi0xNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBO
b3QgcmV2aWV3ZWQ6IHRvdWNoIEluc3BlY3RvckNvbnRyb2xsZXIgaW4gb3JkZXIgdG8ga2ljayB3
aW4gYm90IHRlc3RzCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCAxMTcw
ODdiLi4wYjFlYzU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTE2
Nyw2ICsxNjcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3Rh
cnQsIGludCBlbmQpOwogICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uKCkgY29uc3Q7CiAK
KyAgICB2aXJ0dWFsIGludCBtYXhMZW5ndGgoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJp
bmcgdmFsdWUoKSBjb25zdCA9IDA7CisKIHByb3RlY3RlZDoKICAgICBib29sIHBsYWNlaG9sZGVy
U2hvdWxkQmVWaXNpYmxlKCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVQbGFjZWhvbGRlclZpc2li
aWxpdHkoYm9vbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggNWI5MTIzZC4uOGYz
ZTdmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNjM3LDYgKzYzNywxNyBAQCBi
b29sIEhUTUxJbnB1dEVsZW1lbnQ6OmdldEFsbG93ZWRWYWx1ZVN0ZXAoZG91YmxlKiBzdGVwKSBj
b25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6c3Rl
cFN0cmluZygpIGNvbnN0Cit7CisgICAgZG91YmxlIHN0ZXAsIGRlZmF1bHRTdGVwLCBzdGVwU2Nh
bGVGYWN0b3I7CisgICAgaWYgKCFnZXRBbGxvd2VkVmFsdWVTdGVwKCZzdGVwKSB8fCAhZ2V0U3Rl
cFBhcmFtZXRlcnMoJmRlZmF1bHRTdGVwLCAmc3RlcFNjYWxlRmFjdG9yKSkgeworICAgICAgICAv
LyBzdGVwU3RyaW5nKCkgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IGlmIHN0ZXBNaXNtYXRjaCgpIGlz
IHRydWUuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CisgICAgfQorICAgIHJldHVybiBzZXJpYWxpemVGb3JOdW1iZXJUeXBlKHN0ZXAgLyBz
dGVwU2NhbGVGYWN0b3IpOworfQorCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3RlcChk
b3VibGUgY291bnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGRvdWJsZSBzdGVwOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmgKaW5kZXggNDA5MzBhYy4uZjg2YzYzMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCkBAIC0yNTksNiArMjU5LDEyIEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFs
IGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3Q7CiAKKyAgICAvLyBIZWxwZXJzIGZvciBWYWxpZGl0
eVN0YXRlOjp2YWxpZGF0aW9uTWVzc2FnZSgpLgorICAgIFN0cmluZyBtaW5pbXVtU3RyaW5nKCkg
Y29uc3QgeyByZXR1cm4gc2VyaWFsaXplKG1pbmltdW0oKSk7IH0KKyAgICBTdHJpbmcgbWF4aW11
bVN0cmluZygpIGNvbnN0IHsgcmV0dXJuIHNlcmlhbGl6ZShtYXhpbXVtKCkpOyB9CisgICAgU3Ry
aW5nIHN0ZXBCYXNlU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gc2VyaWFsaXplKHN0ZXBCYXNlKCkp
OyB9CisgICAgU3RyaW5nIHN0ZXBTdHJpbmcoKSBjb25zdDsKKwogICAgIC8vIENvbnZlcnRzIHRo
ZSBzcGVjaWZpZWQgc3RyaW5nIHRvIGEgZmxvYXRpbmcgbnVtYmVyLgogICAgIC8vIElmIHRoZSBj
b252ZXJzaW9uIGZhaWxzLCB0aGUgcmV0dXJuIHZhbHVlIGlzIGZhbHNlLiBUYWtlIGNhcmUgdGhh
dCBsZWFkaW5nIG9yIHRyYWlsaW5nIHVubmVjZXNzYXJ5IGNoYXJhY3RlcnMgbWFrZSBmYWlsdXJl
cy4gIFRoaXMgcmV0dXJucyBmYWxzZSBmb3IgYW4gZW1wdHkgc3RyaW5nIGlucHV0LgogICAgIC8v
IFRoZSBkb3VibGUqIHBhcmFtZXRlciBtYXkgYmUgMC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5oCmluZGV4IDhkOTJhNDguLjEzMzNjZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
aApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRG
b2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVG
b2N1c0FwcGVhcmFuY2UoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOwogCi0gICAgU3Ry
aW5nIHZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUoKSBjb25zdDsKICAg
ICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBkZWZhdWx0VmFsdWUo
KSBjb25zdDsKICAgICB2b2lkIHNldERlZmF1bHRWYWx1ZShjb25zdCBTdHJpbmcmKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcCBiL1dlYkNvcmUvaHRtbC9WYWxp
ZGl0eVN0YXRlLmNwcAppbmRleCBjNmM1OGE1Li42MzkyZTA3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUu
Y3BwCkBAIC00OSwxOCArNDksNDcgQEAgU3RyaW5nIFZhbGlkaXR5U3RhdGU6OnZhbGlkYXRpb25N
ZXNzYWdlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIG1fY3VzdG9tRXJyb3JNZXNzYWdlOwogICAg
IGlmICh2YWx1ZU1pc3NpbmcoKSkKICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nVGV4dCgpOwotICAgIGlmICh0eXBlTWlzbWF0Y2goKSkKKyAgICBib29sIGlzSW5w
dXRFbGVtZW50ID0gbV9jb250cm9sLT5oYXNUYWdOYW1lKGlucHV0VGFnKTsKKyAgICBib29sIGlz
VGV4dEFyZWFFbGVtZW50ID0gbV9jb250cm9sLT5oYXNUYWdOYW1lKHRleHRhcmVhVGFnKTsKKyAg
ICBpZiAodHlwZU1pc21hdGNoKCkpIHsKKyAgICAgICAgaWYgKGlzSW5wdXRFbGVtZW50KSB7Cisg
ICAgICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1
dEVsZW1lbnQqPihtX2NvbnRyb2wpOworICAgICAgICAgICAgaWYgKGlucHV0LT5pbnB1dFR5cGUo
KSA9PSBIVE1MSW5wdXRFbGVtZW50OjpFTUFJTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5w
dXQtPm11bHRpcGxlKCkgPyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpcGxlRW1h
aWxUZXh0KCkgOiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCgpOworICAg
ICAgICAgICAgaWYgKGlucHV0LT5pbnB1dFR5cGUoKSA9PSBIVE1MSW5wdXRFbGVtZW50OjpOVU1C
RVIpCisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
TnVtYmVyVGV4dCgpOworICAgICAgICAgICAgaWYgKGlucHV0LT5pbnB1dFR5cGUoKSA9PSBIVE1M
SW5wdXRFbGVtZW50OjpVUkwpCisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoVVJMVGV4dCgpOworICAgICAgICAgICAgLy8gV2UgZG9uJ3QgcHJvdmlk
ZSBkZWRpY2F0ZWQgbWVzc2FnZXMgZm9yIENPTE9SIGFuZCBkYXRlL3RpbWUgdHlwZXMKKyAgICAg
ICAgICAgIC8vIGJlY2F1c2UgdGhlaXIgVUlzIHNob3VsZCBwcmV2ZW50IGludmFsaWQgdmFsdWVz
LgorICAgICAgICB9CiAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRj
aFRleHQoKTsKKyAgICB9CiAgICAgaWYgKHBhdHRlcm5NaXNtYXRjaCgpKQogICAgICAgICByZXR1
cm4gdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCk7Ci0gICAgaWYgKHRvb0xv
bmcoKSkKLSAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKTsKLSAg
ICBpZiAocmFuZ2VVbmRlcmZsb3coKSkKLSAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VVbmRlcmZsb3dUZXh0KCk7Ci0gICAgaWYgKHJhbmdlT3ZlcmZsb3coKSkKLSAgICAgICAg
cmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKTsKLSAgICBpZiAoc3Rl
cE1pc21hdGNoKCkpCi0gICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRj
aFRleHQoKTsKKyAgICBpZiAodG9vTG9uZygpKSB7CisgICAgICAgIGlmICghaXNJbnB1dEVsZW1l
bnQgJiYgIWlzVGV4dEFyZWFFbGVtZW50KSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCogdGV4dCA9IHN0YXRpY19jYXN0PEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50Kj4obV9jb250cm9sKTsKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25N
ZXNzYWdlVG9vTG9uZ1RleHQodGV4dC0+dmFsdWUoKS5udW1HcmFwaGVtZUNsdXN0ZXJzKCksIHRl
eHQtPm1heExlbmd0aCgpKTsKKyAgICB9CisgICAgaWYgKHJhbmdlVW5kZXJmbG93KCkpIHsKKyAg
ICAgICAgQVNTRVJUKGlzSW5wdXRFbGVtZW50KTsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9jb250cm9sKTsKKyAgICAg
ICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KGlucHV0LT5taW5p
bXVtU3RyaW5nKCkpOworICAgIH0KKyAgICBpZiAocmFuZ2VPdmVyZmxvdygpKSB7CisgICAgICAg
IEFTU0VSVChpc0lucHV0RWxlbWVudCk7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0
ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fY29udHJvbCk7CisgICAgICAgIHJl
dHVybiB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KGlucHV0LT5tYXhpbXVtU3Ry
aW5nKCkpOworICAgIH0KKyAgICBpZiAoc3RlcE1pc21hdGNoKCkpIHsKKyAgICAgICAgQVNTRVJU
KGlzSW5wdXRFbGVtZW50KTsKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0
aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9jb250cm9sKTsKKyAgICAgICAgcmV0dXJuIHZh
bGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChpbnB1dC0+c3RlcEJhc2VTdHJpbmcoKSwg
aW5wdXQtPnN0ZXBTdHJpbmcoKSk7CisgICAgfQogCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaCBiL1dlYkNv
cmUvcGFnZS9tYWMvV2ViQ29yZVZpZXdGYWN0b3J5LmgKaW5kZXggZmVmODU2YS4uMTYxOTg2MCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oCkBAIC0xNTQsMTEgKzE1NCwxNSBA
QAogCiAtIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dDsKIC0g
KE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0OworLSAoTlNTdHJp
bmcgKil2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dDsKKy0gKE5TU3RyaW5n
ICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aXBsZUVtYWlsVGV4dDsKKy0gKE5T
U3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0OworLSAoTlNT
dHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHQ7CiAtIChOU1N0cmlu
ZyAqKXZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dDsKLS0gKE5TU3RyaW5nICop
dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dDsKLS0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQ7Ci0tIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VPdmVyZmxvd1RleHQ7Ci0tIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlU3RlcE1p
c21hdGNoVGV4dDsKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dDoo
aW50KWdyYXBoZW1lTGVuZ3RoIG1heDooaW50KW1heExlbmd0aDsKKy0gKE5TU3RyaW5nICopdmFs
aWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQ6KE5TU3RyaW5nKiltaW5pbXVtOworLSAo
TlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0OihOU1N0cmluZyop
bWF4aW11bTsKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0
OihOU1N0cmluZyopc3RlcEJhc2Ugc3RlcDooTlNTdHJpbmcqKXN0ZXA7CiAKIEBlbmQKIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCA2Y2E1NzczLi4xY2UwZjc5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApAQCAtMTQ2LDEyICsxNDYsMTUgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4
dCgpOwogICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKKyAg
ICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hFbWFpbFRleHQoKTsKKyAgICBT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aXBsZUVtYWlsVGV4dCgpOwor
ICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE51bWJlclRleHQoKTsKKyAg
ICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hVUkxUZXh0KCk7CiAgICAgU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpOwotICAgIFN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7Ci0gICAgU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCk7Ci0gICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VPdmVyZmxvd1RleHQoKTsKLSAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0
Y2hUZXh0KCk7Ci0KKyAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQg
Z3JhcGhlbWVMZW5ndGgsIGludCBtYXhMZW5ndGgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmIG1pbmltdW0pOworICAgIFN0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYgbWF4aW11
bSk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBT
dHJpbmcmIHN0ZXBCYXNlLCBjb25zdCBTdHJpbmcmIHN0ZXApOwogfQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3Bw
CmluZGV4IDJmYzg4MGIuLmYzNmFjYzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vYW5k
cm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9h
bmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcApAQCAtMzMxLDMxICszMzEsNTUgQEAg
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCiAgICAgcmV0dXJuIFN0
cmluZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hFbWFpbFRl
eHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aWxlRW1haWxUZXh0KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVyVGV4dCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0
ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBT
dHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQorU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoaW50LCBpbnQpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZVVuZGVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
ICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VP
dmVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQo
Y29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpCitT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5n
KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0Jy
ZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcApp
bmRleCA0NTg4ZjBmLi5lYjU2ODRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcv
TG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2Nh
bGl6ZWRTdHJpbmdzQnJldy5jcHAKQEAgLTM2MywzMSArMzYzLDU1IEBAIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAor
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlsZUVtYWlsVGV4dCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVR5cGVNaXNtYXRjaE51bWJlclRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hVUkxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKwogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4
dCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
LVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVRvb0xvbmdUZXh0KGludCwgaW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVu
ZGVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3Ry
aW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQorU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAppbmRleCBlMGVjM2FiLi5iMjM0
ZjM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3Rr
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcApA
QCAtNDg4LDM4ICs0ODgsNjEgQEAgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9u
KGZsb2F0IHRpbWUpCiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQo
KQogewotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oInZhbHVlIG1pc3NpbmciKSk7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiTmVlZCB0byBzcGVjaWZ5IG5vbi1lbXB0eSB2
YWx1ZS4iKSk7CiB9CiAKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQo
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
XygidHlwZSBtaXNtYXRjaCIpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJUaGUg
dmFsdWUgZG9lcyBub3QgbWF0Y2ggdG8gdGhlIGZvcm0gZmllbGQgdHlwZS4iKSk7Cit9CisKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCgpCit7CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiVGhlIHZhbHVlIHNob3VsZCBiZSBhbiBlLW1haWwgYWRk
cmVzcy4iKSk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRp
bGVFbWFpbFRleHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIlRoZSB2YWx1
ZSBzaG91bGQgYmUgY29tbWEtc2VwYXJhdGVkIGUtbWFpbCBhZGRyZXNlcy4iKSk7Cit9CisKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE51bWJlclRleHQoKQoreworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIlRoZSB2YWx1ZSBzaG91bGQgYmUgYSBudW1iZXIuIikp
OworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hVUkxUZXh0KCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGEgd2Vi
IGFkZHJlc3MuIikpOwogfQogCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0
Y2hUZXh0KCkKIHsKLSAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJwYXR0ZXJuIG1pc21h
dGNoIikpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIlRoZSB2YWx1ZSBkb2VzIG5v
dCBtYXRjaCB0byBhIGNoYXJhY3RlciByZXN0cmljdGlvbiBmb3IgdGhpcyBmaWVsZC4iKSk7CiB9
CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCBncmFwaGVtZUxlbmd0aCwgaW50IG1heExlbmd0aCkK
IHsKLSAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJ0b28gbG9uZyIpKTsKKyAgICBHT3du
UHRyPGdjaGFyPiBzdHJpbmcoZ19zdHJkdXBfcHJpbnRmKENfKCJUaGUgdGV4dCBpcyB0b28gbG9u
Zy4gSXRzIGxlbmd0aCBpcyAlZCBjaGFyYWN0ZXJzLCBhbmQgdGhlIG1heGltdW0gbGVuZ3RoIGlz
ICVkIGNoYXJhY3RlcnMuIiksIGdyYXBoZW1lTGVuZ3RoLCBtYXhMZW5ndGgpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tVVRGOChzdHJpbmcuZ2V0KCkpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VVbmRlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYgbWluaW11bSkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tVVRGOChfKCJyYW5nZSB1bmRlcmZsb3ciKSk7CisgICAgR093blB0cjxnY2hhcj4g
c3RyaW5nKGdfc3RyZHVwX3ByaW50ZihDXygiVGhlIHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRo
YW4gb3IgZXF1YWwgdG8gJXMuIiksIG1pbmltdW0udXRmOCgpLmRhdGEoKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KHN0cmluZy5nZXQoKSk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
T3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYgbWF4aW11bSkKIHsKLSAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOChfKCJyYW5nZSBvdmVyZmxvdyIpKTsKKyAgICBHT3duUHRyPGdjaGFyPiBzdHJp
bmcoZ19zdHJkdXBfcHJpbnRmKENfKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGxlc3MgdGhhbiBvciBl
cXVhbCB0byAlQC4iKSwgbWF4aW11bS51dGY4KCkuZGF0YSgpKSk7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoc3RyaW5nLmdldCgpKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
U3RlcE1pc21hdGNoVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hU
ZXh0KGNvbnN0IFN0cmluZyYgc3RlcEJhc2UsIGNvbnN0IFN0cmluZyYgc3RlcCkKIHsKLSAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJzdGVwIG1pc21hdGNoIikpOworICAgIEdPd25QdHI8
Z2NoYXI+IHN0cmluZyhnX3N0cmR1cF9wcmludGYoQ18oIlRoZSBkaWZmZXJlbmNlIGJldHdlZW4g
dGhlIHZhbHVlIGFuZCAlMSRAIHNob3VsZCBiZSBhIG11bHRpcGxlIG9mICUyJEAuIiksIHN0ZXBC
YXNlLnV0ZjgoKS5kYXRhKCksIHN0ZXAudXRmOCgpLmRhdGEoKSkpOworICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KHN0cmluZy5nZXQoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcAppbmRleCA1MzIxNzkyLi4wYWU2ZTY5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlr
dS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3Uu
Y3BwCkBAIC0zNjUsMzEgKzM2NSw1NSBAQCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlz
bWF0Y2hUZXh0KCkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaE11bHRpbGVFbWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hOdW1iZXJUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIFN0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4
dChpbnQsIGludCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNt
YXRjaFRleHQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0xvY2FsaXplZFN0cmluZ3NNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2Nh
bGl6ZWRTdHJpbmdzTWFjLm1tCmluZGV4IDU1ZmRkMjEuLjM4ZWQwZWQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsaXplZFN0cmluZ3NNYWMubW0KKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbQpAQCAtNzgwLDYgKzc4MCwzOCBAQCBT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKICAgICByZXR1cm4gU3Ry
aW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4
dCgpCit7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBbW1dl
YkNvcmVWaWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaEVtYWlsVGV4dF07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11
bHRpcGxlRW1haWxUZXh0KCkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Cisg
ICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlwbGVFbWFpbFRleHRdOworICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KCkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3Rv
cnldIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVyVGV4dF07CisgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHQoKQoreworICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVk
RmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hVUkxUZXh0XTsKKyAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwogU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCiB7CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwpAQCAtNzg4LDM0ICs4MjAsMzQgQEAgU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQog
Ci1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dChpbnQgZ3JhcGhlbWVMZW5ndGgsIGludCBtYXhMZW5ndGgpCiB7
CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgIHJldHVybiBbW1dlYkNvcmVW
aWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0XTsK
KyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dDpncmFwaGVtZUxlbmd0aCBtYXg6bWF4TGVuZ3RoXTsKICAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmIG1pbmltdW0pCiB7CiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgIHJldHVybiBbW1dlYkNvcmVWaWV3
RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4
dF07CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIHZhbGlk
YXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0Om1pbmltdW1dOwogICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VS
YW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmIG1heGltdW0pCiB7CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwotICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFjdG9yeSBzaGFy
ZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0XTsKKyAgICByZXR1
cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VS
YW5nZU92ZXJmbG93VGV4dDptYXhpbXVtXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3Rl
cE1pc21hdGNoVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0
KGNvbnN0IFN0cmluZyYgc3RlcEJhc2UsIGNvbnN0IFN0cmluZyYgc3RlcCkKIHsKICAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5
IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dF07CisgICAg
cmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNz
YWdlU3RlcE1pc21hdGNoVGV4dDpzdGVwQmFzZSBzdGVwOnN0ZXBdOwogICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25zLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQv
TG9jYWxpemF0aW9ucy5jcHAKaW5kZXggYzkxOTE5My4uMWFmYjQzNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25zLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0xvY2FsaXphdGlvbnMuY3BwCkBAIC00OTQsMzEgKzQ5NCw1NSBAQCBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRpbGVFbWFpbFRleHQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoVVJMVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
U3RyaW5nKCk7Cit9CisKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRl
eHQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQog
Ci1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGludCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
ICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VV
bmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4
dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0
cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgp
CitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcm
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1T
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAppbmRleCA4NTczNDgyLi40MTNjZDQy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCkBAIC0zNDYs
MzEgKzM0Niw1NSBAQCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkK
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaEVtYWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
U3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE11bHRp
bGVFbWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29M
b25nVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGludCkK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlz
bWF0Y2hUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAg
IHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9DaGFuZ2VMb2cgYi9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDEzNGEyNTIuLmYyNDBkYWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEwLTAyLTE1
ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXByb3ZlIGZvcm0gdmFsaWRhdGlvbiBtZXNz
YWdlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0
OTQ1CisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6IFJlZ2Vu
ZXJhdGVkLgorCiAyMDEwLTAyLTA0ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L0Vu
Z2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBiL1dlYktpdC9FbmdsaXNoLmxwcm9qL0xv
Y2FsaXphYmxlLnN0cmluZ3MKaW5kZXggNDJjMTM4NjhhZjhlOGYyZWNjMDk3MDBiOWFlOWRhZDI3
NjcyNWNhZC4uNTU3NWM0ZjVhZTZiZjAzYjE2Njk2MGMzOTNkYTBiYzM0OGYyYWVjOSAxMDA2NDQK
R0lUIGJpbmFyeSBwYXRjaApkZWx0YSAyNTA5CnpjbWQ1O09IVUl+ODIhcGlLQEc7RnZOSURSMyNr
LXdnJUpxR0x9TmxBOGY7Qk9waWdNaG1vdVo1UmQ7U1J4bytIdQp6TXI5IXpsVWIxWEM+dlJAYlpL
MXE1QnZjZEo/SGliRSRJTD9HMG5gfWVza30rPVI0b3kmYWJFS2d8K3RnK2RlZzEKekBUPjElbEtF
K2c7VElKe1l7fXFtTmYhU2psOTBIcDtDfnZ7djwkKFAhVyYhTDkhZn0oQCZHbyFea2RGQXU2e1dY
CnpRY280aWBRWT1NMUZ0KnpXZ3dANFgkd2ImUlFFSCRHeXxJakUxQjdOclR9NHNAdj5lKUFJMiZ4
PE02fThZfGhKSwp6b3sxfWteKUBiM0NTZGpIYDV+YXUrWFNCV0RaRV4mT3ZySjlJQDhzY1p3eFJm
IV9vdXlYRz4oR1REckppUGQ2ZU0Kejg0fHxibVBmZW4/SFdsaTVDYndJWEpyeTIzeiEpUW91cXdH
Z0JiOURLR1NHcHQxTzx9QWNKXnU9fHdKOEtqKnlwCnplQDRVfGp9OClYLXB5YCNiZ3BmRmROeHkq
aTBiRWJPY0ZZaCVzaj58aUYrRS1gIVQrT19sej5WcW04LTFffFI0cQp6RDVfMngtWWJAemhvdmxD
SWIpYTtJbjFVYHNYYkFzbH03UGNSUDZlSCRFKTJFenExKEZJMDZYKz5pM0tFckx1KGsKekVyfTRz
Pk57YVZPY3NMKVgoRFIhcWdSZDM5cW5lMyMyfEUoQjg7PlVgQigqNntLX2ItLSNhTSNhIy1VPzVL
ey1WCnppcCh+IyFscCZgIVRxdiNnezt7PjUya2Y4djY0LXNSQjJhP2M2V2VVNG0mRWlyZl9Qbz5R
cn5KcnBWfi1aTWh7PQp6aHZ2ZXI2YjRFTlRfeV9PbT9PRiVGMXp1aDtwIXM0Ql8wfGZXTE5UIzlD
O1lUYTBwZT0+YlBFUSZiMHxqayNvTWoKendZSjhLMnkhPjJKczUoJXZDNDc4cm8qbVpeNnp2PnUz
ODVYNUdLaCZHWiRUTShSY14jZW54Ry1Jais5R29kYEI2Cnopa2NaQXEhV2ZHYUplaiZidk5kVCM0
P0c9ZVV1SHE3eFdpfiU3KHFfJnNeN3pMVHYjcSY8QWoydmR6JGtzaGUqMwp6XkwjPE5ZaiY9ZiZv
cW1JWXM0YUZyKSZQenE8WjM5YkdsekhjQnRPPEY9dXR7YWojbCE4K0FlKDdkcTlqNjtNQXUKVVBw
Z0k4czU3JVUtPksoKitqYHloN2koKylRMituewoKZGVsdGEgNjI4CnpjbWRuRGpRUCg1PF8jeWNI
fi1mOHFfTnBQVmhpSkJ8S2hPQ15KOVk4SH1CNCQ7NG9QfUo4WkloTn1ndXtMbjE+Nwp6NVQtSHxH
Mn01UUZ5dTAxRzg2K3prWjNZUDI3P2slJW9kMjE3em43R3lrVG5TV2J1dFVvQSspb1ZGNFBTRm5N
dkYKems3RShncGdlfGpweiNVfWAzei1YWXRrNVVmYjRRNHF3JVBrRVJkWilTdXhrazY8Skx3KDk5
R2YlKShHTipgZVFrCnp2KnkrPWV5e19adnFrRVFmV3tPOXtndyohWjMpb3RBamN7SVNzNmVQMSl2
TmxXRDA7Uk5HS0huUlV8USNmPCtZPQp6dj41YW14UGFiM3NLT24zSU1nc1BXSzVwRzxpN2QhNWQm
N0JvQWYzTnIlNm48akg7UGp5Ri1lPDFRPDtESylYU34KejEkNVdzZzA5cmJne1M8MD5iZlE7cndR
NFhGalJ0Rmp4V301c0BjNVopS1o5Ki0/ZWtoJVlZdXQwZVRHTlheMUNeClpwQEQlJjA5ZSNhQCll
IURmMiFOJioldVp3MFJYak5uQGEheQoKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDJhYjkyZTEuLjY1MzZhOWQg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTAyLTE1ICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXByb3ZlIGZvcm0gdmFsaWRhdGlvbiBtZXNzYWdlcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0OTQ1CisKKyAgICAgICAg
KiBzcmMvTG9jYWxpemVkU3RyaW5ncy5jcHA6IEZvbGxvdyBMb2NhbGl6ZWRTdHJpbmdzLmggY2hh
bmdlLgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hFbWFp
bFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hN
dWx0aWxlRW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoTnVtYmVyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaFVSTFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VUb29Mb25nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
VW5kZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
T3ZlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1p
c21hdGNoVGV4dCk6CisKIDIwMTAtMDItMTQgIFZhbmdlbGlzIEtva2tldmlzICA8dmFuZ2VsaXNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IDRlMDE4NDguLmIyZjc5ZWMg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtMjg0LDMxICsy
ODQsNTUgQEAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCiAgICAg
cmV0dXJuIFN0cmluZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hFbWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hNdWx0aWxlRW1h
aWxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVyVGV4dCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCiBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAg
IHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1Rl
eHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoaW50LCBpbnQpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlUmFuZ2VPdmVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVy
Zmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJl
dHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNo
VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1
cm4gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCmluZGV4IDg0YjE1M2UuLmY4ZGU4ODAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDItMTUgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZm9ybSB2YWxp
ZGF0aW9uIG1lc3NhZ2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzQ5NDUKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlZpZXdGYWN0b3J5
Lm1tOiBGb2xsb3cgTG9jYWxpemVkU3RyaW5ncy5oIGNoYW5nZS4KKyAgICAgICAgKC1bV2ViVmll
d0ZhY3RvcnkgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0XSk6CisgICAgICAgICgt
W1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dF0pOgorICAg
ICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWls
VGV4dF0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaE11bHRpcGxlRW1haWxUZXh0XSk6CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZh
bGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVyVGV4dF0pOgorICAgICAgICAoLVtXZWJW
aWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHRdKToKKyAgICAg
ICAgKC1bV2ViVmlld0ZhY3RvcnkgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0
XSk6CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1Rl
eHQ6bWF4Ol0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlVW5kZXJmbG93VGV4dDpdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3RvcnkgdmFsaWRhdGlv
bk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dDpdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3Rvcnkg
dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0OnN0ZXA6XSk6CisKIDIwMTAtMDItMTIg
IERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNh
bSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpZXdG
YWN0b3J5Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFjdG9yeS5tbQpp
bmRleCAyNjA3ZjE4Li4xMjUxMTYzIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlZpZXdGYWN0b3J5Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Vmlld0ZhY3RvcnkubW0KQEAgLTc3OSwzNyArNzc5LDU3IEBACiAKIC0gKE5TU3RyaW5nICopdmFs
aWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0CiB7Ci0gICAgcmV0dXJuIFVJX1NUUklORygi
dmFsdWUgbWlzc2luZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVpcmVkIGZvcm0gY29u
dHJvbCBlbGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKTsKKyAgICByZXR1cm4gVUlfU1RSSU5H
KCJOZWVkIHRvIHNwZWNpZnkgbm9uLWVtcHR5IHZhbHVlLiIsICJWYWxpZGF0aW9uIG1lc3NhZ2Ug
Zm9yIHJlcXVpcmVkIGZvcm0gY29udHJvbCBlbGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKTsK
IH0KIAogLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQKIHsK
LSAgICByZXR1cm4gVUlfU1RSSU5HKCJ0eXBlIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2Fn
ZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUgbm90IG1hdGNoaW5nIHR5cGUi
KTsKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJUaGUgdmFsdWUgZG9lcyBub3QgbWF0Y2ggdG8gdGhl
IGZvcm0gZmllbGQgdHlwZS4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNv
bnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpOworfQorCistIChOU1N0cmlu
ZyAqKXZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRW1haWxUZXh0Cit7CisgICAgcmV0dXJu
IFVJX1NUUklORygiVGhlIHZhbHVlIHNob3VsZCBiZSBhbiBlLW1haWwgYWRkcmVzcy4iLCAiVmFs
aWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3Qg
bWF0Y2hpbmcgZW1haWwgdHlwZSIpOworfQorCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoTXVsdGlwbGVFbWFpbFRleHQKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5H
KCJUaGUgdmFsdWUgc2hvdWxkIGJlIGNvbW1hLXNlcGFyYXRlZCBlLW1haWwgYWRkcmVzZXMuIiwg
IlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUg
bm90IG1hdGNoaW5nIG11bHRpcGxlIGVtYWlsIHR5cGUiKTsKK30KKworLSAoTlNTdHJpbmcgKil2
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaE51bWJlclRleHQKK3sKKyAgICByZXR1cm4gVUlf
U1RSSU5HKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGEgbnVtYmVyLiIsICJWYWxpZGF0aW9uIG1lc3Nh
Z2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCBhIHZhbHVlIG5vdCBtYXRjaGluZyBudW1i
ZXIgdHlwZSIpOworfQorCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21h
dGNoVVJMVGV4dAoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlRoZSB2YWx1ZSBzaG91bGQgYmUg
YSB3ZWIgYWRkcmVzcy4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRy
b2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgVVJMIHR5cGUiKTsKIH0KIAogLSAoTlNTdHJp
bmcgKil2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQKIHsKLSAgICByZXR1cm4g
VUlfU1RSSU5HKCJwYXR0ZXJuIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5w
dXQgZm9ybSBjb250cm9scyByZXF1aXJpbmcgYSBjb25zdHJhaW5lZCB2YWx1ZSBhY2NvcmRpbmcg
dG8gcGF0dGVybiIpOworICAgIHJldHVybiBVSV9TVFJJTkcoIlRoZSB2YWx1ZSBkb2VzIG5vdCBt
YXRjaCB0byBhIGNoYXJhY3RlciByZXN0cmljdGlvbiBmb3IgdGhpcyBmaWVsZC4iLCAiVmFsaWRh
dGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmluZyBhIGNvbnN0cmFp
bmVkIHZhbHVlIGFjY29yZGluZyB0byBwYXR0ZXJuIik7CiB9CiAKLS0gKE5TU3RyaW5nICopdmFs
aWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dAorLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0OihpbnQpZ3JhcGhlbWVMZW5ndGggbWF4OihpbnQpbWF4TGVuZ3RoCiB7Ci0g
ICAgcmV0dXJuIFVJX1NUUklORygidG9vIGxvbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgd2l0aCBhIHZhbHVlIGxvbmdlciB0aGFuIG1heGltdW0gYWxs
b3dlZCBsZW5ndGgiKTsKKyAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6VUlf
U1RSSU5HKCJUaGUgdGV4dCBpcyB0b28gbG9uZy4gSXRzIGxlbmd0aCBpcyAlMSRkIGNoYXJhY3Rl
cnMsIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggaXMgJTIkZCBjaGFyYWN0ZXJzLiIsICJWYWxpZGF0
aW9uIG1lc3NhZ2UgZm9yIGZvcm0gY29udHJvbCBlbGVtZW50cyB3aXRoIGEgdmFsdWUgbG9uZ2Vy
IHRoYW4gbWF4aW11bSBhbGxvd2VkIGxlbmd0aCIpLCBncmFwaGVtZUxlbmd0aCwgbWF4TGVuZ3Ro
XTsKIH0KIAotLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4
dAorLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dDooTlNT
dHJpbmcqKW1pbmltdW0KIHsKLSAgICByZXR1cm4gVUlfU1RSSU5HKCJyYW5nZSB1bmRlcmZsb3ci
LCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUg
bG93ZXIgdGhhbiBhbGxvd2VkIG1pbmltdW0iKTsKKyAgICByZXR1cm4gW05TU3RyaW5nIHN0cmlu
Z1dpdGhGb3JtYXQ6VUlfU1RSSU5HKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBv
ciBlcXVhbCB0byAlQC4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRy
b2xzIHdpdGggdmFsdWUgbG93ZXIgdGhhbiBhbGxvd2VkIG1pbmltdW0iKSwgbWluaW11bV07CiB9
CiAKLS0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dAorLSAo
TlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0OihOU1N0cmluZyop
bWF4aW11bQogewotICAgIHJldHVybiBVSV9TVFJJTkcoInJhbmdlIG92ZXJmbG93IiwgIlZhbGlk
YXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIGhpZ2hlciB0
aGFuIGFsbG93ZWQgbWF4aW11bSIpOworICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpVSV9TVFJJTkcoIlRoZSB2YWx1ZSBzaG91bGQgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRv
ICVALiIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2
YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKSwgbWF4aW11bV07CiB9CiAKLS0gKE5T
U3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0CistIChOU1N0cmluZyAq
KXZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dDooTlNTdHJpbmcqKXN0ZXBCYXNlIHN0
ZXA6KE5TU3RyaW5nKilzdGVwCiB7Ci0gICAgcmV0dXJuIFVJX1NUUklORygic3RlcCBtaXNtYXRj
aCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1
ZSBub3QgcmVzcGVjdGluZyB0aGUgc3RlcCBhdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6VUlfU1RSSU5HKCJUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRo
ZSB2YWx1ZSBhbmQgJTEkQCBzaG91bGQgYmUgYSBtdWx0aXBsZSBvZiAlMiRALiIsICJWYWxpZGF0
aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2hlbiB0aGUgdmFsdWUgZG9lcyBu
b3QgbWF0Y2ggdG8gPHRoZSBmaXJzdCBwYXJhbWV0ZXI+ICsgPGFueSBpbnRlZ2VyPiB4IDx0aGUg
c2Vjb25kIHBhcmFtZXRlcj4iKSwgc3RlcEJhc2UsIHN0ZXBdOwogfQogCiBAZW5kCmRpZmYgLS1n
aXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGZj
MGMyMjQuLjM3ZWFmNWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDItMTUgIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcHJvdmUgZm9ybSB2YWxpZGF0aW9uIG1lc3NhZ2VzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ5NDUKKworICAg
ICAgICAqIFdlYkNvcmVMb2NhbGl6ZWRTdHJpbmdzLmNwcDogRm9sbG93IExvY2FsaXplZFN0cmlu
Z3MuaCBjaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
RW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21h
dGNoTXVsdGlwbGVFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hOdW1iZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoVVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9u
TWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlVW5kZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlT3ZlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
U3RlcE1pc21hdGNoVGV4dCk6CisKIDIwMTAtMDItMTIgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWlu
c3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYg
LS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVMb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1dlYktpdC93
aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IDU4NTA2MDUuLmQ0OGYwMmYgMTAw
NjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1dl
YktpdC93aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0yNDIsMTAgKzI0Miw0MyBA
QCBTdHJpbmcgV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGlt
ZSkKIAogI2VuZGlmICAvLyBFTkFCTEUoVklERU8pCiAKLVN0cmluZyBXZWJDb3JlOjp2YWxpZGF0
aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9T
VFJJTkcoInZhbHVlIG1pc3NpbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciByZXF1aXJlZCBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgdGhhdCBoYXZlIG5vIHZhbHVlIikpOyB9Ci1TdHJpbmcgV2Vi
Q29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkgeyByZXR1cm4gU3RyaW5n
KExQQ1RTVFJfVUlfU1RSSU5HKCJ0eXBlIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBm
b3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUgbm90IG1hdGNoaW5nIHR5cGUiKSk7
IH0KLVN0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQo
KSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoInBhdHRlcm4gbWlzbWF0Y2giLCAi
VmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmluZyBhIGNv
bnN0cmFpbmVkIHZhbHVlIGFjY29yZGluZyB0byBwYXR0ZXJuIikpOyB9Ci1TdHJpbmcgV2ViQ29y
ZTo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RS
X1VJX1NUUklORygidG9vIGxvbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBmb3JtIGNvbnRy
b2wgZWxlbWVudHMgd2l0aCBhIHZhbHVlIGxvbmdlciB0aGFuIG1heGltdW0gYWxsb3dlZCBsZW5n
dGgiKSk7IH0KLVN0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93
VGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygicmFuZ2UgdW5kZXJmbG93
IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVl
IGxvd2VyIHRoYW4gYWxsb3dlZCBtaW5pbXVtIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6dmFsaWRh
dGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJ
X1NUUklORygicmFuZ2Ugb3ZlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBm
b3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgaGlnaGVyIHRoYW4gYWxsb3dlZCBtYXhpbXVtIikpOyB9
Ci1TdHJpbmcgV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkgeyBy
ZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJzdGVwIG1pc21hdGNoIiwgIlZhbGlkYXRp
b24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIG5vdCByZXNwZWN0
aW5nIHRoZSBzdGVwIGF0dHJpYnV0ZSIpKTsgfQorU3RyaW5nIFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklO
RygiTmVlZCB0byBzcGVjaWZ5IG5vbi1lbXB0eSB2YWx1ZS4iLCAiVmFsaWRhdGlvbiBtZXNzYWdl
IGZvciByZXF1aXJlZCBmb3JtIGNvbnRyb2wgZWxlbWVudHMgdGhhdCBoYXZlIG5vIHZhbHVlIikp
OyB9CitTdHJpbmcgV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkg
eyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJUaGUgdmFsdWUgZG9lcyBub3QgbWF0
Y2ggdG8gdGhlIGZvcm0gZmllbGQgdHlwZS4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1
dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpKTsgfQorU3Ry
aW5nIFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpIHsgcmV0dXJu
IFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiVGhlIHZhbHVlIGRvZXMgbm90IG1hdGNoIHRvIHRo
ZSBmb3JtIGZpZWxkIHR5cGUuIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBj
b250cm9scyB3aXRoIGEgdmFsdWUgbm90IG1hdGNoaW5nIHR5cGUiKSk7IH0KK1N0cmluZyBXZWJD
b3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEVtYWlsVGV4dCgpIHsgcmV0dXJuIFN0
cmluZyhMUENUU1RSX1VJX1NUUklORygiVGhlIHZhbHVlIHNob3VsZCBiZSBhbiBlLW1haWwgYWRk
cmVzcy4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGgg
YSB2YWx1ZSBub3QgbWF0Y2hpbmcgZW1haWwgdHlwZSIpKTsgfQorU3RyaW5nIFdlYkNvcmU6OnZh
bGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTXVsdGlwbGVFbWFpbFRleHQoKSB7IHJldHVybiBT
dHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIlRoZSB2YWx1ZSBzaG91bGQgYmUgY29tbWEtc2VwYXJh
dGVkIGUtbWFpbCBhZGRyZXNlcy4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3Jt
IGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgbXVsdGlwbGUgZW1haWwgdHlwZSIp
KTsgfQorU3RyaW5nIFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoTnVtYmVy
VGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiVGhlIHZhbHVlIHNob3Vs
ZCBiZSBhIG51bWJlci4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRy
b2xzIHdpdGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgbnVtYmVyIHR5cGUiKSk7IH0KK1N0cmluZyBX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFVSTFRleHQoKSB7IHJldHVybiBT
dHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIlRoZSB2YWx1ZSBzaG91bGQgYmUgYSB3ZWIgYWRkcmVz
cy4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2
YWx1ZSBub3QgbWF0Y2hpbmcgVVJMIHR5cGUiKSk7IH0KK1N0cmluZyBXZWJDb3JlOjp2YWxpZGF0
aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9V
SV9TVFJJTkcoIlRoZSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0byBhIGNoYXJhY3RlciByZXN0cmlj
dGlvbiBmb3IgdGhpcyBmaWVsZC4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3Jt
IGNvbnRyb2xzIHJlcXVpcmluZyBhIGNvbnN0cmFpbmVkIHZhbHVlIGFjY29yZGluZyB0byBwYXR0
ZXJuIikpOyB9CisKK1N0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0
KGludCBncmFwaGVtZUxlbmd0aCwgaW50IG1heExlbmd0aCkKK3sKKyAgICBzdGF0aWMgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiBmb3JtYXQoQWRvcHRDRiwgVUlfU1RSSU5HKCJUaGUgdGV4dCBpcyB0
b28gbG9uZy4gSXRzIGxlbmd0aCBpcyAlMSRkIGNoYXJhY3RlcnMsIGFuZCB0aGUgbWF4aW11bSBs
ZW5ndGggaXMgJTIkZCBjaGFyYWN0ZXJzLiIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGZvcm0g
Y29udHJvbCBlbGVtZW50cyB3aXRoIGEgdmFsdWUgbG9uZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2Vk
IGxlbmd0aCIpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHJlc3VsdChBZG9wdENGLCBD
RlN0cmluZ0NyZWF0ZVdpdGhGb3JtYXQoMCwgMCwgZm9ybWF0LmdldCgpLCBncmFwaGVtZUxlbmd0
aCwgbWF4TGVuZ3RoKSk7CisgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKK30KKworU3RyaW5nIFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYg
bWluaW11bSkKK3sKKyAgICBzdGF0aWMgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmb3JtYXQoQWRv
cHRDRiwgVUlfU1RSSU5HKCJUaGUgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVh
bCB0byAlQC4iLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdp
dGggdmFsdWUgbG93ZXIgdGhhbiBhbGxvd2VkIG1pbmltdW0iKSk7CisgICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBtaW5pbXVtQ0YoQWRvcHRDRiwgbWluaW11bS5jcmVhdGVDRlN0cmluZygpKTsK
KyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHJlc3VsdChBZG9wdENGLCBDRlN0cmluZ0NyZWF0
ZVdpdGhGb3JtYXQoMCwgMCwgZm9ybWF0LmdldCgpLCBtaW5pbXVtQ0YuZ2V0KCkpKTsKKyAgICBy
ZXR1cm4gcmVzdWx0LmdldCgpOworfQorCitTdHJpbmcgV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VSYW5nZU92ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmIG1heGltdW0pCit7CisgICAgc3RhdGlj
IFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9ybWF0KEFkb3B0Q0YsIFVJX1NUUklORygiVGhlIHZh
bHVlIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJUAuIiwgIlZhbGlkYXRpb24gbWVz
c2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIGhpZ2hlciB0aGFuIGFsbG93
ZWQgbWF4aW11bSIpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IG1heGltdW1DRihBZG9w
dENGLCBtYXhpbXVtLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gcmVzdWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdCgwLCAwLCBmb3JtYXQu
Z2V0KCksIG1heGltdW1DRi5nZXQoKSkpOworICAgIHJldHVybiByZXN1bHQuZ2V0KCk7Cit9CisK
K1N0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3Qg
U3RyaW5nJiBzdGVwQmFzZSwgY29uc3QgU3RyaW5nJiBzdGVwKQoreworICAgIHN0YXRpYyBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IGZvcm1hdChBZG9wdENGLCBVSV9TVFJJTkcoIlRoZSBkaWZmZXJl
bmNlIGJldHdlZW4gdGhlIHZhbHVlIGFuZCAlMSRAIHNob3VsZCBiZSBhIG11bHRpcGxlIG9mICUy
JEAuIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aGVuIHRo
ZSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0byA8dGhlIGZpcnN0IHBhcmFtZXRlcj4gKyA8YW55IGlu
dGVnZXI+IHggPHRoZSBzZWNvbmQgcGFyYW1ldGVyPiIpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+IHN0ZXBCYXNlQ0YoQWRvcHRDRiwgc3RlcEJhc2UuY3JlYXRlQ0ZTdHJpbmcoKSk7Cisg
ICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzdGVwQ0YoQWRvcHRDRiwgc3RlcC5jcmVhdGVDRlN0
cmluZygpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHJlc3VsdChBZG9wdENGLCBDRlN0
cmluZ0NyZWF0ZVdpdGhGb3JtYXQoMCwgMCwgZm9ybWF0LmdldCgpLCBzdGVwQmFzZUNGLmdldCgp
LCBzdGVwQ0YuZ2V0KCkpKTsKKyAgICByZXR1cm4gcmVzdWx0LmdldCgpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73583</attachid>
            <date>2010-11-10 23:28:38 -0800</date>
            <delta_ts>2010-11-14 20:53:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34945-20101111162836.patch</filename>
            <type>text/plain</type>
            <size>29648</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjQ0ZTAwZDhiYmNhNzMxMWVjMDQ4OGVkODA0ZDNjM2ZkYzA3Y2U3Zi4uY2ZjMGE1ZDVjMmRhN2I3
OTA3NjNkYzBmM2Q4ZDM4OGJhNmMyYTU1MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAxMC0xMS0xMCAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wcm92ZSBBUEkgZm9yIGZvcm0gdmFsaWRhdGlvbiBt
ZXNzYWdlIHN0cmluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM0OTQ1CisgICAgICAgIAorICAgICAgICBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIHR3
byBuZXcgZnVuY3Rpb25zOworICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZv
cipUZXh0KCkuIFRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgZWFjaAorICAgICAgICBwbGF0Zm9ybSBp
cyBqdXN0IGEgY2FsbCB0byB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKS4KKwor
ICAgICAgICBTb21lIHZhbGlkYXRpb25NZXNzYWdlKigpIGZ1bmN0aW9ucyBoYXZlIG5ldyBwYXJh
bWV0ZXJzLiAgVGhlIHBhcmFtZXRlcnMKKyAgICAgICAgYXJlIGlnbm9yZWQgaW4gYWxsIHBsYXRm
b3JtcyBmb3Igbm93LgorCisgICAgICAgIFRoaXMgY2hhbmdlIGRvZXNuJ3QgY2hhbmdlIGFueSBi
ZWhhdmlvci4gSG93ZXZlciBhIHBsYXRmb3JtIGNhbiBhZGQKKyAgICAgICAgYWRkaXRpb25hbCBp
bmZvcm1hdGlvbiB0byB2YWxpZGF0aW9uIG1lc3NhZ2VzLiAgZS5nLiBDaGFuZ2luZyAidHlwZQor
ICAgICAgICBtaXNtYXRjaCIgdG8gIlBsZWFzZSBzcGVjaWZ5IGFuIGUtbWFpbCBhZGRyZXNzIiBm
b3IgPGlucHV0IHR5cGU9ZW1haWw+LgorCisgICAgICAgICogaHRtbC9FbWFpbElucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbWFpbElucHV0VHlwZTo6dHlwZU1pc21hdGNoVGV4dCk6
IENhbGwgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQoKS4KKyAgICAg
ICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50Lmg6IEFkZCBtYXhMZW5ndGgoKSBhbmQgdmFsdWUoKSB0byBhY2Nlc3MgdGhlbSBm
cm9tIFZhbGlkaXR5U3RhdGUuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDog
QWRkIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHRvIHBhc3MgZXh0cmEKKyAgICAgICAgICBpbmZv
cm1hdGlvbiB0byB2YWxpZGF0aW9uIG1lc3NhZ2Ugc3RyaW5nIGZ1bmN0aW9ucy4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Om1pbmltdW1TdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6bWF4aW11bVN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwQmFzZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW5wdXRFbGVtZW50OjpzdGVwU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OnR5cGVNaXNtYXRjaFRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6dHlwZU1p
c21hdGNoVGV4dCk6IENhbGwgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkuCisg
ICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1VSTElucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpVUkxJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaFRleHQpOiBD
YWxsIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCgpLgorICAgICAgICAq
IGh0bWwvVVJMSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OnZhbGlkYXRpb25NZXNzYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICAgLSBBZGQgdmFsaWRhdGlvbk1lc3NhZ2VU
eXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQoKSBhbmQgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hGb3JVUkxUZXh0KCkKKyAgICAgICAgICAtIEFkZCBsZW5ndGggcGFyYW1ldGVycyB0byB2YWxp
ZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkuCisgICAgICAgICAgLSBBZGQgdGhlIG1pbmltdW0g
dmFsdWUgcGFyYW1ldGVyIHRvIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkK
KyAgICAgICAgICAtIEFkZCB0aGUgbWF4aW11bSB2YWx1ZSBwYXJhbWV0ZXIgdG8gdmFsaWRhdGlv
bk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCisgICAgICAgICAgLSBBZGQgcGFyYW1ldGVycyBv
ZiB0aGUgYmFzZSB2YWx1ZSBhbmQgdGhlIHN0ZXAgdmFsdWUgdG8gdmFsaWRhdGlvbk1lc3NhZ2VT
dGVwTWlzbWF0Y2hUZXh0KCkKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0
cmluZ3NBbmRyb2lkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoRm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9u
TWVzc2FnZVRvb0xvbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VVbmRlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VPdmVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VT
dGVwTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmlu
Z3NCcmV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21h
dGNoRm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoRm9yVVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VV
bmRlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VP
dmVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlz
bWF0Y2hUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCk6CisgICAgICAg
ICogcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKwogMjAxMC0xMC0xNSAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNw
cCBiL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKaW5kZXggNzhiZGE5YzZiMWUxYTMy
YzVjMzE1OTZkNTFiMmVmNGRjYmNkNTY3Mi4uN2VmOTJiMDY0MDM3MTNiYWY4NDBkYTllZDU1Yzhj
ODlkY2VjNTM1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcAor
KysgYi9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAj
aW5jbHVkZSAiRW1haWxJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiUmVndWxhckV4cHJl
c3Npb24uaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC03OSw0ICs4MCw5IEBA
IGJvb2wgRW1haWxJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaCgpIGNvbnN0CiAgICAgcmV0dXJuIHR5
cGVNaXNtYXRjaEZvcihlbGVtZW50KCktPnZhbHVlKCkpOwogfQogCitTdHJpbmcgRW1haWxJbnB1
dFR5cGU6OnR5cGVNaXNtYXRjaFRleHQoKSBjb25zdAoreworICAgIHJldHVybiB2YWxpZGF0aW9u
TWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaCBiL1dlYkNv
cmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCmluZGV4IGI3N2E5YWQwYWM4MDM0Mjk3NGZlMTk3Njc2
MDY0MWJhZjI5OTIwN2QuLjc3MTcxNWE1MjdlNzRiYjIyYjRmNThkMzQxNzg0ZWYxMjY2YjcxNTcg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCisrKyBiL1dlYkNvcmUv
aHRtbC9FbWFpbElucHV0VHlwZS5oCkBAIC00NCw2ICs0NCw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2hGb3IoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmly
dHVhbCBib29sIHR5cGVNaXNtYXRjaCgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHR5cGVN
aXNtYXRjaFRleHQoKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmggYi9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4IDE5NjBmYzM0ZjI4OGRhMzU2MmVlNmNk
MTc5NGFiMzkwN2JlNTkzYTMuLjE2MWFhNzM3ODIzNzI1ZDMyYjYwZTNmOGM4NmUwODEzZTJhYzI0
M2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMTk2LDYgKzE5Niw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGludCBzdGFydCwgaW50IGVu
ZCk7CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gc2VsZWN0aW9uKCkgY29uc3Q7CiAKKyAgICB2aXJ0
dWFsIGludCBtYXhMZW5ndGgoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUo
KSBjb25zdCA9IDA7CisKIHByb3RlY3RlZDoKICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDU0MDY1MjQ3NTYzMTA3NzM5ZDBmOTE5NzE4
ZmU1MTA4OTM0N2Y4MTcuLjQwNGUzZTc1NDVhZjBlMzcxMTNiZDBkNDQ1NDY5NmUwNTM3ODc1MmIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTI1MSw2ICsyNTEsMzcgQEAgYm9vbCBI
VE1MSW5wdXRFbGVtZW50OjpzdGVwTWlzbWF0Y2goY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QK
ICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnN0ZXBNaXNtYXRjaCh2YWx1ZSwgc3RlcCk7CiB9CiAK
K1N0cmluZyBIVE1MSW5wdXRFbGVtZW50OjptaW5pbXVtU3RyaW5nKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9pbnB1dFR5cGUtPnNlcmlhbGl6ZShtaW5pbXVtKCkpOworfQorCitTdHJpbmcgSFRN
TElucHV0RWxlbWVudDo6bWF4aW11bVN0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5w
dXRUeXBlLT5zZXJpYWxpemUobWF4aW11bSgpKTsKK30KKworU3RyaW5nIEhUTUxJbnB1dEVsZW1l
bnQ6OnN0ZXBCYXNlU3RyaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnNl
cmlhbGl6ZShtX2lucHV0VHlwZS0+c3RlcEJhc2UoKSk7Cit9CisKK1N0cmluZyBIVE1MSW5wdXRF
bGVtZW50OjpzdGVwU3RyaW5nKCkgY29uc3QKK3sKKyAgICBkb3VibGUgc3RlcDsKKyAgICBpZiAo
IWdldEFsbG93ZWRWYWx1ZVN0ZXAoJnN0ZXApKSB7CisgICAgICAgIC8vIHN0ZXBTdHJpbmcoKSBz
aG91bGQgYmUgY2FsbGVkIG9ubHkgaWYgc3RlcE1pc21hdGNoKCkgY2FuIGJlIHRydWUuCisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAg
fQorICAgIHJldHVybiBzZXJpYWxpemVGb3JOdW1iZXJUeXBlKHN0ZXAgLyBtX2lucHV0VHlwZS0+
c3RlcFNjYWxlRmFjdG9yKCkpOworfQorCitTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6dHlwZU1p
c21hdGNoVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT50eXBlTWlzbWF0
Y2hUZXh0KCk7Cit9CisKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6Z2V0QWxsb3dlZFZhbHVlU3Rl
cChkb3VibGUqIHN0ZXApIGNvbnN0CiB7CiAgICAgcmV0dXJuIGdldEFsbG93ZWRWYWx1ZVN0ZXBX
aXRoRGVjaW1hbFBsYWNlcyhzdGVwLCAwKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDBh
Y2YyMWU3NWU4ZjcxYmY3OTY0NjVjNDgxZmUxMTljNDVjMTdmMGYuLmU5OTA3ZDIxMTJmMWJhNjNi
NDMyOGFkMTA3OWQzYjUzYzQwNTQ2ZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtNjgs
NiArNjgsMTEgQEAgcHVibGljOgogICAgIGJvb2wgZ2V0QWxsb3dlZFZhbHVlU3RlcFdpdGhEZWNp
bWFsUGxhY2VzKGRvdWJsZSosIHVuc2lnbmVkKikgY29uc3Q7CiAgICAgLy8gRm9yIFZhbGlkaXR5
U3RhdGUuCiAgICAgYm9vbCBzdGVwTWlzbWF0Y2goY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAg
U3RyaW5nIG1pbmltdW1TdHJpbmcoKSBjb25zdDsKKyAgICBTdHJpbmcgbWF4aW11bVN0cmluZygp
IGNvbnN0OworICAgIFN0cmluZyBzdGVwQmFzZVN0cmluZygpIGNvbnN0OworICAgIFN0cmluZyBz
dGVwU3RyaW5nKCkgY29uc3Q7CisgICAgU3RyaW5nIHR5cGVNaXNtYXRjaFRleHQoKSBjb25zdDsK
IAogICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXAoKSBh
bmQgc3RlcERvd24oKS4KICAgICB2b2lkIHN0ZXBVcChpbnQsIEV4Y2VwdGlvbkNvZGUmKTsKQEAg
LTE3MSw3ICsxNzYsNyBAQCBwdWJsaWM6CiAKICAgICBLVVJMIHNyYygpIGNvbnN0OwogCi0gICAg
aW50IG1heExlbmd0aCgpIGNvbnN0OworICAgIHZpcnR1YWwgaW50IG1heExlbmd0aCgpIGNvbnN0
OwogICAgIHZvaWQgc2V0TWF4TGVuZ3RoKGludCwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgYm9v
bCBtdWx0aXBsZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggZDk1
MWMwMmM1MDRiOTk3ZDk3NzViM2RjMmJlMzI3NzNjMjA0NGFlZC4uNjY5ZmNkOGM1MDk4NWJiMmJl
ZGRlZWZiMTRjN2Q1YjU4YjA2YTNiNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCkBA
IC00MCwxMiArNDAsMTIgQEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGRXcmFwVGV4dCgpIGNv
bnN0IHsgcmV0dXJuIG1fd3JhcCAhPSBOb1dyYXA7IH0KIAotICAgIFN0cmluZyB2YWx1ZSgpIGNv
bnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRWYWx1
ZShjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgZGVmYXVsdFZhbHVlKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXREZWZhdWx0VmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgaW50IHRleHRMZW5ndGgo
KSBjb25zdCB7IHJldHVybiB2YWx1ZSgpLmxlbmd0aCgpOyB9Ci0gICAgaW50IG1heExlbmd0aCgp
IGNvbnN0OworICAgIHZpcnR1YWwgaW50IG1heExlbmd0aCgpIGNvbnN0OwogICAgIHZvaWQgc2V0
TWF4TGVuZ3RoKGludCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIGJvb2wgdmFsdWVNaXNzaW5nKGNv
bnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0IHsgcmV0dXJuIGlzUmVxdWlyZWRGb3JtQ29udHJvbCgp
ICYmICFkaXNhYmxlZCgpICYmICFyZWFkT25seSgpICYmIHZhbHVlLmlzRW1wdHkoKTsgfQogICAg
IGJvb2wgdG9vTG9uZyhjb25zdCBTdHJpbmcmLCBOZWVkc1RvQ2hlY2tEaXJ0eUZsYWcpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmNwcAppbmRleCBjMGNjMzQyNzkwYWM5MWVlNTJlNTI3YjM1YThiM2MxOGRmOWJm
OGQ0Li5hMGVhMTEwOTZmYjYxZDY0OWYzOTQwZWQyNWI1MTFkZDcyMDhiNjI5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkhpZGRlbklucHV0VHlwZS5oIgogI2lu
Y2x1ZGUgIkltYWdlSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiSXNJbmRleElucHV0VHlwZS5oIgor
I2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNb250aElucHV0VHlwZS5o
IgogI2luY2x1ZGUgIk51bWJlcklucHV0VHlwZS5oIgogI2luY2x1ZGUgIlBhc3N3b3JkSW5wdXRU
eXBlLmgiCkBAIC0yNjksNiArMjcwLDExIEBAIGRvdWJsZSBJbnB1dFR5cGU6OmFjY2VwdGFibGVF
cnJvcihkb3VibGUpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK1N0cmluZyBJbnB1dFR5cGU6
OnR5cGVNaXNtYXRjaFRleHQoKSBjb25zdAoreworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaFRleHQoKTsKK30KKwogUmVuZGVyT2JqZWN0KiBJbnB1dFR5cGU6OmNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewogICAg
IHJldHVybiBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdChlbGVtZW50KCksIHN0eWxlKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuaAppbmRleCA3OGFhYjdjODFhNGRhNjgzYjE2NmM3OTFmY2Q3OTViMTcxYjhjNzQ5Li5kZmE0
ZmIwMWFhYTlmZGY5NWJkNzcxODIzMjMyZmY5NGEzMTYxNzU2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC05Niw2
ICs5Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcGFyc2VkU3RlcFZhbHVlU2hvdWxk
QmVJbnRlZ2VyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNjYWxlZFN0ZXBWYWxldVNob3Vs
ZEJlSW50ZWdlcigpIGNvbnN0OwogICAgIHZpcnR1YWwgZG91YmxlIGFjY2VwdGFibGVFcnJvcihk
b3VibGUpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHR5cGVNaXNtYXRjaFRleHQoKSBjb25z
dDsKIAogICAgIC8vIE1pc2NlbGxhbmVvdXMgZnVuY3Rpb25zCiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwIGIvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAK
aW5kZXggNTE3ZmZhZDBhY2NkYWI4OTg5OTRmZDIyMWNjZDkyYzZhYjRlYzc1NS4uMWI4ZjNkYTU2
MGIzN2RhYzczNzcxNDNkYmQwN2RkODIxMjYyMWEwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L1VSTElucHV0VHlwZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJVUkxJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUgIkhU
TUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVk
ZSAiS1VSTC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTU3LDQgKzU4LDkg
QEAgYm9vbCBVUkxJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaCgpIGNvbnN0CiAgICAgcmV0dXJuIHR5
cGVNaXNtYXRjaEZvcihlbGVtZW50KCktPnZhbHVlKCkpOwogfQogCitTdHJpbmcgVVJMSW5wdXRU
eXBlOjp0eXBlTWlzbWF0Y2hUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaCBiL1dlYkNvcmUvaHRt
bC9VUkxJbnB1dFR5cGUuaAppbmRleCA4MmFiMWI3ZWZkODljNDhhYjFmNDRhZGRmMDk3ZDY2Nzhk
MWYwZGEwLi40YTY1MjJjZjU3NjYzNTQzN2RkNTgzZDY0NTBjYjU1YTdlNjQyMmUxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgKKysrIGIvV2ViQ29yZS9odG1sL1VSTElu
cHV0VHlwZS5oCkBAIC00NCw2ICs0NCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCB0
eXBlTWlzbWF0Y2hGb3IoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHR5
cGVNaXNtYXRjaCgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHR5cGVNaXNtYXRjaFRleHQo
KSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcCBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNw
cAppbmRleCA1N2ZiNDM4ODNiMDM2NjU2MmFkOWZiM2IzOTFlMmMzNTllYWFkZmNlLi44NGZjNjY0
YzQxY2MzZDgzNmIyY2M1MzY5OGRiM2I1MTQ2MzA0MmNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3Bw
CkBAIC00NCwxOCArNDQsNDUgQEAgU3RyaW5nIFZhbGlkaXR5U3RhdGU6OnZhbGlkYXRpb25NZXNz
YWdlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIG1fY3VzdG9tRXJyb3JNZXNzYWdlOwogICAgIGlm
ICh2YWx1ZU1pc3NpbmcoKSkKICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVN
aXNzaW5nVGV4dCgpOwotICAgIGlmICh0eXBlTWlzbWF0Y2goKSkKLSAgICAgICAgcmV0dXJuIHZh
bGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwogICAgIGlmIChwYXR0ZXJuTWlzbWF0
Y2goKSkKICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4
dCgpOwotICAgIGlmICh0b29Mb25nKCkpCi0gICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KCk7Ci0gICAgaWYgKHJhbmdlVW5kZXJmbG93KCkpCi0gICAgICAgIHJldHVy
biB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpOwotICAgIGlmIChyYW5nZU92
ZXJmbG93KCkpCi0gICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dU
ZXh0KCk7Ci0gICAgaWYgKHN0ZXBNaXNtYXRjaCgpKQotICAgICAgICByZXR1cm4gdmFsaWRhdGlv
bk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7CisgICAgYm9vbCBpc0lucHV0RWxlbWVudCA9IG1f
Y29udHJvbC0+aGFzVGFnTmFtZShpbnB1dFRhZyk7CisgICAgYm9vbCBpc1RleHRBcmVhRWxlbWVu
dCA9IG1fY29udHJvbC0+aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZyk7CisgICAgaWYgKHR5cGVNaXNt
YXRjaCgpKSB7CisgICAgICAgIGlmIChpc0lucHV0RWxlbWVudCkKKyAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9jb250cm9sKS0+dHlwZU1pc21hdGNo
VGV4dCgpOworICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0
KCk7CisgICAgfQorICAgIGlmICh0b29Mb25nKCkpIHsKKyAgICAgICAgaWYgKCFpc0lucHV0RWxl
bWVudCAmJiAhaXNUZXh0QXJlYUVsZW1lbnQpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICB9CisgICAgICAg
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KiB0ZXh0ID0gc3RhdGljX2Nhc3Q8SFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQqPihtX2NvbnRyb2wpOworICAgICAgICByZXR1cm4gdmFsaWRhdGlv
bk1lc3NhZ2VUb29Mb25nVGV4dChudW1HcmFwaGVtZUNsdXN0ZXJzKHRleHQtPnZhbHVlKCkpLCB0
ZXh0LT5tYXhMZW5ndGgoKSk7CisgICAgfQorICAgIGlmIChyYW5nZVVuZGVyZmxvdygpKSB7Cisg
ICAgICAgIGlmICghaXNJbnB1dEVsZW1lbnQpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICB9CisgICAgICAg
IHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4obV9jb250cm9sKS0+bWluaW11bVN0cmluZygpKTsKKyAgICB9Cisg
ICAgaWYgKHJhbmdlT3ZlcmZsb3coKSkgeworICAgICAgICBpZiAoIWlzSW5wdXRFbGVtZW50KSB7
CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZU92ZXJmbG93VGV4dChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9jb250cm9sKS0+
bWF4aW11bVN0cmluZygpKTsKKyAgICB9CisgICAgaWYgKHN0ZXBNaXNtYXRjaCgpKSB7CisgICAg
ICAgIGlmICghaXNJbnB1dEVsZW1lbnQpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICB9CisgICAgICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1f
Y29udHJvbCk7CisgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRl
eHQoaW5wdXQtPnN0ZXBCYXNlU3RyaW5nKCksIGlucHV0LT5zdGVwU3RyaW5nKCkpOworICAgIH0K
IAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
Y3BwCmluZGV4IDAxMmQ5MGUxNzE1OTU2ZjFhMzViNGExZThkM2ZlNWFhYTg3MjU0ZGYuLmUyYWI5
ZjFhMDUyMDBlN2ViODNhOTBjZDQ5YmIyODljNWE3MjEzMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2Nh
bGl6ZWRTdHJpbmdzLmNwcApAQCAtNTkwLDI3ICs1OTAsMzcgQEAgU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCiAgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygp
LT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRl
eHQoKTsKIH0KIAorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxU
ZXh0KCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0
cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworfQorCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKK3sKKyAgICByZXR1
cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworfQorCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKICAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVz
KCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21h
dGNoVGV4dCgpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCitT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGludCkKIHsKICAgICByZXR1
cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlkYXRp
b25NZXNzYWdlVG9vTG9uZ1RleHQoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93
VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1Rl
eHQoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQor
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikK
IHsKICAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5
KCktPnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKTsKIH0KIAotU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAg
cmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxp
ZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmgKaW5kZXggYTcyZWI4YTllYTdlNzYzMTFiMGFiYjRhZDJkZjg1MmYzYjBhNmIzNi4u
NGY5NTAyZjJlODMyOGQ0ZmJlZGEyNDQyMGZhMDFiNTAzZmJiNjA2MSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTE2NywxMSArMTY3LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKICAg
ICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KCk7CisgICAgU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCgpOwogICAgIFN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKLSAgICBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpOwotICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlVW5kZXJmbG93VGV4dCgpOwotICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3Zl
cmZsb3dUZXh0KCk7Ci0gICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4
dCgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCB2YWx1ZUxl
bmd0aCwgaW50IG1heExlbmd0aCk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VV
bmRlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYgbWluaW11bSk7CisgICAgU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJiBtYXhpbXVtKTsKKyAgICBT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYgYmFz
ZSwgY29uc3QgU3RyaW5nJiBzdGVwKTsKIAogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcAppbmRleCBmYTRmODZhNTk2M2Iy
ODU1MzRjOWQ1Y2Q2ZWIzNTRjZTMzNjBiZjIxLi4xOGNhZDA4YTVkNzM4M2FiNDQxNjk5ODQzY2Yx
ZGUzYmFmZTQ5NzY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxp
emVkU3RyaW5nc0FuZHJvaWQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2Nh
bGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAKQEAgLTM5MSwzMSArMzkxLDQzIEBAIFN0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0K
IAorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaFRleHQoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
Rm9yVVJMVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7Cit9CisKIFN0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAg
cmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4
dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGludCkKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VSYW5nZU92ZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJm
bG93VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0
dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hU
ZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRT
dHJpbmdzQnJldy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0Jy
ZXcuY3BwCmluZGV4IDdjNmM1NjQ4MTNmODY1ZDc2OTVhYzRhYTQ5MjViYWYxNzJkYjJkYzQuLjBj
Nzc0NTU3YjgxNjM2MjcwNzE3Y2Y1ZmE0ZDY5ZjMyODZlZGMyYmIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJldy5jcHAKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcApAQCAtNDA4LDMxICs0MDgsNDMg
QEAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCiAgICAgcmV0dXJu
IFN0cmluZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JF
bWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKK30KKwogU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVRvb0xvbmdUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGlu
dCwgaW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwog
fQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQorU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVJhbmdlT3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVN0ZXBNaXNtYXRjaFRleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNo
VGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6
ZWRTdHJpbmdzRWZsLmNwcAppbmRleCBhODE0MzRmMDJiOWE4NzFkMjc5YjI4OTg2NDlmMTI1NzQ3
ZDBjYTgxLi42ZTE5NjJiM2FlZjM0NTY2YjVkNTE1NDU0NGM0ZTFjOGEyYzhhNDAxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtNDM1LDIyICs0
MzUsMjIgQEAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCiAg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoInBhdHRlcm4gbWlzbWF0Y2giKTsKIH0KIAotU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOCgicmFuZ2Ugb3ZlcmZsb3ciKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KCJyYW5nZSB1bmRlcmZsb3ciKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
U3RlcE1pc21hdGNoVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hU
ZXh0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoInN0ZXAgbWlzbWF0Y2giKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
VG9vTG9uZ1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoaW50LCBp
bnQpCiB7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoInRvbyBsb25nIik7CiB9CkBAIC00
NjAsNiArNDYwLDE2IEBAIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQo
KQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJ0eXBlIG1pc21hdGNoIik7CiB9CiAKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dCgpCit7CisgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoInR5cGUgbWlzbWF0Y2giKTsKK30KKworU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCgpCit7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoInR5cGUgbWlzbWF0Y2giKTsKK30KKwogU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpCiB7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
InZhbHVlIG1pc3NpbmciKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2Fs
aXplZFN0cmluZ3NHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5n
c0d0ay5jcHAKaW5kZXggNzg1MTMyNmU4NzMxMWI3NjEwNmU2NWI5OTBjMjUxYWU1ZWFkZTM1OC4u
M2NjM2Q3NjkyY2M0YmYyZGM1NjI5NTQzZGZmNWY2M2UxMjc5ZmQ3MyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKQEAgLTU1OSwyNyArNTU5LDM5IEBA
IFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQogICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KF8oInR5cGUgbWlzbWF0Y2giKSk7CiB9CiAKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7Cit9
CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1p
c21hdGNoVGV4dCgpOworfQorCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0
Y2hUZXh0KCkKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJwYXR0ZXJuIG1pc21h
dGNoIikpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGludCkKIHsKICAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOChfKCJ0b28gbG9uZyIpKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
VW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KF8oInJhbmdlIHVuZGVyZmxvdyIpKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VPdmVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxv
d1RleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJy
YW5nZSBvdmVyZmxvdyIpKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21h
dGNoVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
Xygic3RlcCBtaXNtYXRjaCIpKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vaGFp
a3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9j
YWxpemVkU3RyaW5nc0hhaWt1LmNwcAppbmRleCA0YzEyY2YzYmYzZGE3OGJmZjlhY2YxYWRjYTZh
M2NjYzA1MzU1NWU2Li41ZmRlNzBmMDBmMjE5NmZjMzQyN2U2NTRjYWZiMzljODA4MDVkOTkzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3Bw
CkBAIC00MTUsMzEgKzQxNSw0MyBAQCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hUZXh0KCkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7Cit9CisKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
VGV4dCgpOworfQorCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0
KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAot
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlVG9vTG9uZ1RleHQoaW50LCBpbnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5k
ZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQo
Y29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQor
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKaW5kZXggMTBlYTQzNTM1YTBlYjU1MzMy
M2I5OTliMTUzNmQxYWZmYWNkYTlmZC4uNGE3NzhlOWI1ZTdkYWI1YjcxYTlmY2RmZTMyN2M3NGY2
MGU3MTQzNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdz
V3guY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcApA
QCAtMzk2LDMxICszOTYsNDMgQEAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
VGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworfQorCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRl
eHQoKTsKK30KKwogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVRvb0xvbmdUZXh0KGludCwgaW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAg
cmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVy
Zmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KGNv
bnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5n
KCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQorU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggYmYwN2Y2NzQ4ZGJhZWM0NzdjMWM1MDc1M2RhNDdhNWM0YzA3OGYyMy4uMGE3M2ZiMDY2YzY1
ZGVjYWU3NWNhMWI3ZThhNThkYTVlNjY0M2M2YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTAtMTEtMTAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgQVBJIGZv
ciBmb3JtIHZhbGlkYXRpb24gbWVzc2FnZSBzdHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDk0NQorCisgICAgICAgICogcHVibGljL1dlYkxv
Y2FsaXplZFN0cmluZy5oOgorICAgICAgICAqIHNyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJM
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToKKwog
MjAxMC0xMS0xMCAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkxvY2FsaXplZFN0cmluZy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJM
b2NhbGl6ZWRTdHJpbmcuaAppbmRleCBiYjQ1YjZlOTg4M2VmZjk4YTFjZTE1ZGNiNzlkMTJmMTJi
ZDBhNmUwLi40NjVkNDkyNmJmODYyNDY0NmE1NDdmNDM5ODU1ZmFlNDljMWIwMTdkIDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxvY2FsaXplZFN0cmluZy5oCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTG9jYWxpemVkU3RyaW5nLmgKQEAgLTYwLDYgKzYwLDgg
QEAgc3RydWN0IFdlYkxvY2FsaXplZFN0cmluZyB7CiAgICAgICAgIEtleWdlbk1lbnVNZWRpdW1H
cmFkZUtleVNpemUsCiAgICAgICAgIFZhbGlkYXRpb25WYWx1ZU1pc3NpbmcsCiAgICAgICAgIFZh
bGlkYXRpb25UeXBlTWlzbWF0Y2gsCisgICAgICAgIFZhbGlkYXRpb25UeXBlTWlzbWF0Y2hGb3JF
bWFpbCwKKyAgICAgICAgVmFsaWRhdGlvblR5cGVNaXNtYXRjaEZvclVSTCwKICAgICAgICAgVmFs
aWRhdGlvblBhdHRlcm5NaXNtYXRjaCwKICAgICAgICAgVmFsaWRhdGlvblRvb0xvbmcsCiAgICAg
ICAgIFZhbGlkYXRpb25SYW5nZVVuZGVyZmxvdywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsaXpl
ZFN0cmluZ3MuY3BwCmluZGV4IDYxNGFhYzMzMzU5YmU2MDZmNDk3N2JlZDA0NThjMGE4MTNhMTFh
ZTEuLmVhMTI3YWJjYzAzNDQ0MGIzYmIwODcxZWEzNWU2YTQ0OTE2ZWVjMGIgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtMzA0LDI4ICszMDQsNDIgQEAgU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCiAgICAgcmV0dXJuIHF1ZXJ5
KFdlYkxvY2FsaXplZFN0cmluZzo6VmFsaWRhdGlvblR5cGVNaXNtYXRjaCk7CiB9CiAKK1N0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dCgpCit7CisgICAgcmV0
dXJuIHF1ZXJ5KFdlYkxvY2FsaXplZFN0cmluZzo6VmFsaWRhdGlvblR5cGVNaXNtYXRjaEZvckVt
YWlsKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4
dCgpCit7CisgICAgcmV0dXJuIHF1ZXJ5KFdlYkxvY2FsaXplZFN0cmluZzo6VmFsaWRhdGlvblR5
cGVNaXNtYXRjaEZvclVSTCk7Cit9CisKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5N
aXNtYXRjaFRleHQoKQogewogICAgIHJldHVybiBxdWVyeShXZWJMb2NhbGl6ZWRTdHJpbmc6OlZh
bGlkYXRpb25QYXR0ZXJuTWlzbWF0Y2gpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VU
b29Mb25nVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGlu
dCkKIHsKKyAgICAvLyBGSVhNRTogcGFzcyB0aGUgYXJndW1lbnRzLgogICAgIHJldHVybiBxdWVy
eShXZWJMb2NhbGl6ZWRTdHJpbmc6OlZhbGlkYXRpb25Ub29Mb25nKTsKIH0KIAotU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVJhbmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogeworICAgIC8vIEZJWE1FOiBw
YXNzIHRoZSBhcmd1bWVudHMuCiAgICAgcmV0dXJuIHF1ZXJ5KFdlYkxvY2FsaXplZFN0cmluZzo6
VmFsaWRhdGlvblJhbmdlVW5kZXJmbG93KTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VPdmVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxv
d1RleHQoY29uc3QgU3RyaW5nJikKIHsKKyAgICAvLyBGSVhNRTogcGFzcyB0aGUgYXJndW1lbnRz
LgogICAgIHJldHVybiBxdWVyeShXZWJMb2NhbGl6ZWRTdHJpbmc6OlZhbGlkYXRpb25SYW5nZU92
ZXJmbG93KTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgp
CitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpCiB7CisgICAgLy8gRklYTUU6IHBhc3MgdGhlIGFyZ3VtZW50cy4KICAg
ICByZXR1cm4gcXVlcnkoV2ViTG9jYWxpemVkU3RyaW5nOjpWYWxpZGF0aW9uU3RlcE1pc21hdGNo
KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73873</attachid>
            <date>2010-11-14 20:53:15 -0800</date>
            <delta_ts>2010-11-14 21:40:15 -0800</delta_ts>
            <desc>Patch 5</desc>
            <filename>bug-34945-20101115135313.patch</filename>
            <type>text/plain</type>
            <size>31688</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmZhMGVkZDc5M2UyZDEwMWU3ZDE0ZGM5OTRmNDRhYzY3ZTQwOTA0Yi4uMTEwNTY3ODk5YzJkMzRl
M2YwMzg5YmU1NmM0Yjg2M2VmYmFkYTAyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDggQEAKKzIwMTAtMTEtMTAgIEtl
bnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgQVBJIGZvciBmb3JtIHZhbGlkYXRpb24g
bWVzc2FnZSBzdHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNDk0NQorICAgICAgICAKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW50cm9kdWNlcyB0
aHJlZSBuZXcgZnVuY3Rpb25zOworICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRj
aEZvcipUZXh0KCkuIFRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgZWFjaAorICAgICAgICBwbGF0Zm9y
bSBpcyBqdXN0IGEgY2FsbCB0byB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKS4K
KworICAgICAgICBTb21lIHZhbGlkYXRpb25NZXNzYWdlKigpIGZ1bmN0aW9ucyBoYXZlIG5ldyBw
YXJhbWV0ZXJzLiAgVGhlIHBhcmFtZXRlcnMKKyAgICAgICAgYXJlIGlnbm9yZWQgaW4gYWxsIHBs
YXRmb3JtcyBmb3Igbm93LgorCisgICAgICAgIFRoaXMgY2hhbmdlIGRvZXNuJ3QgY2hhbmdlIGFu
eSBiZWhhdmlvci4gSG93ZXZlciBhIHBsYXRmb3JtIGNhbiBhZGQKKyAgICAgICAgYWRkaXRpb25h
bCBpbmZvcm1hdGlvbiB0byB2YWxpZGF0aW9uIG1lc3NhZ2VzLiAgZS5nLiBDaGFuZ2luZyAidHlw
ZQorICAgICAgICBtaXNtYXRjaCIgdG8gIlBsZWFzZSBzcGVjaWZ5IGFuIGUtbWFpbCBhZGRyZXNz
IiBmb3IgPGlucHV0IHR5cGU9ZW1haWw+LgorCisgICAgICAgICogaHRtbC9FbWFpbElucHV0VHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbWFpbElucHV0VHlwZTo6dHlwZU1pc21hdGNoVGV4
dCk6IENhbGwgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQoKQorICAg
ICAgICAgIG9yIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRl
eHQoKS4KKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6IEFkZCBtYXhMZW5ndGgoKSBhbmQgdmFsdWUoKSB0byBh
Y2Nlc3MgdGhlbSBmcm9tIFZhbGlkaXR5U3RhdGUuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcDogQWRkIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHRvIHBhc3MgZXh0cmEKKyAg
ICAgICAgICBpbmZvcm1hdGlvbiB0byB2YWxpZGF0aW9uIG1lc3NhZ2Ugc3RyaW5nIGZ1bmN0aW9u
cy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Om1pbmltdW1TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6bWF4aW11bVN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwQmFzZVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnR5cGVNaXNtYXRjaFRleHQpOgorICAgICAgICAqIGh0bWwv
SFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6dHlwZU1pc21hdGNoVGV4dCk6IENhbGwgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hUZXh0KCkuCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1VS
TElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkxJbnB1dFR5cGU6OnR5cGVNaXNt
YXRjaFRleHQpOiBDYWxsIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCgp
LgorICAgICAgICAqIGh0bWwvVVJMSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9WYWxpZGl0
eVN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OnZhbGlkYXRpb25N
ZXNzYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlw
bGVFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlz
bWF0Y2hGb3JVUkxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9v
TG9uZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVy
Zmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJm
bG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRj
aFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAg
ICAtIEFkZCB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dCgpLAorICAg
ICAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsVGV4
dCgpIGFuZAorICAgICAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxU
ZXh0KCkKKyAgICAgICAgICAtIEFkZCBsZW5ndGggcGFyYW1ldGVycyB0byB2YWxpZGF0aW9uTWVz
c2FnZVRvb0xvbmdUZXh0KCkuCisgICAgICAgICAgLSBBZGQgdGhlIG1pbmltdW0gdmFsdWUgcGFy
YW1ldGVyIHRvIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKKyAgICAgICAg
ICAtIEFkZCB0aGUgbWF4aW11bSB2YWx1ZSBwYXJhbWV0ZXIgdG8gdmFsaWRhdGlvbk1lc3NhZ2VS
YW5nZU92ZXJmbG93VGV4dCgpCisgICAgICAgICAgLSBBZGQgcGFyYW1ldGVycyBvZiB0aGUgYmFz
ZSB2YWx1ZSBhbmQgdGhlIHN0ZXAgdmFsdWUgdG8gdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0
Y2hUZXh0KCkKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRy
b2lkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
Rm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1p
c21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlk
YXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVz
c2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2JyZXcvTG9jYWxpemVk
U3RyaW5nc0JyZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hGb3JFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlk
YXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0xv
Y2FsaXplZFN0cmluZ3NFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VSYW5nZU92ZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlVW5kZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2Fn
ZVN0ZXBNaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VU
b29Mb25nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaEZvckVtYWlsVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaEZvck11bHRpcGxlRW1haWxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlk
YXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFs
aWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCk6CisgICAgICAgICogcGxh
dGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvck11bHRpcGxlRW1haWxU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9y
VVJMVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KToK
KwogMjAxMC0xMS0xNCAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAK
aW5kZXggNzhiZGE5YzZiMWUxYTMyYzVjMzE1OTZkNTFiMmVmNGRjYmNkNTY3Mi4uZTYxMTI5ZWYy
NWQyNDBkMzVlNzExOGEyYTAyMDFiNDBmMGE3ODZiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0VtYWlsSW5wdXRUeXBlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3Bw
CkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiRW1haWxJbnB1dFR5cGUuaCIKIAogI2luY2x1
ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAj
aW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogCkBAIC03OSw0ICs4MCw5IEBAIGJvb2wgRW1haWxJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaCgp
IGNvbnN0CiAgICAgcmV0dXJuIHR5cGVNaXNtYXRjaEZvcihlbGVtZW50KCktPnZhbHVlKCkpOwog
fQogCitTdHJpbmcgRW1haWxJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaFRleHQoKSBjb25zdAorewor
ICAgIHJldHVybiBlbGVtZW50KCktPm11bHRpcGxlKCkgPyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaEZvck11bHRpcGxlRW1haWxUZXh0KCkgOiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaEZvckVtYWlsVGV4dCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaCBiL1dlYkNvcmUvaHRtbC9FbWFpbElu
cHV0VHlwZS5oCmluZGV4IGI3N2E5YWQwYWM4MDM0Mjk3NGZlMTk3Njc2MDY0MWJhZjI5OTIwN2Qu
Ljc3MTcxNWE1MjdlNzRiYjIyYjRmNThkMzQxNzg0ZWYxMjY2YjcxNTcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCisrKyBiL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0
VHlwZS5oCkBAIC00NCw2ICs0NCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCB0eXBl
TWlzbWF0Y2hGb3IoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHR5cGVN
aXNtYXRjaCgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHR5cGVNaXNtYXRjaFRleHQoKSBj
b25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5oCmluZGV4IDE5NjBmYzM0ZjI4OGRhMzU2MmVlNmNkMTc5NGFiMzkwN2JlNTkz
YTMuLjE2MWFhNzM3ODIzNzI1ZDMyYjYwZTNmOGM4NmUwODEzZTJhYzI0M2YgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMTk2LDYgKzE5Niw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGludCBzdGFydCwgaW50IGVuZCk7CiAgICAgUGFzc1Jl
ZlB0cjxSYW5nZT4gc2VsZWN0aW9uKCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIGludCBtYXhMZW5n
dGgoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUoKSBjb25zdCA9IDA7CisK
IHByb3RlY3RlZDoKICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCmluZGV4IDU0MDY1MjQ3NTYzMTA3NzM5ZDBmOTE5NzE4ZmU1MTA4OTM0N2Y4MTcu
LjQwNGUzZTc1NDVhZjBlMzcxMTNiZDBkNDQ1NDY5NmUwNTM3ODc1MmIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKQEAgLTI1MSw2ICsyNTEsMzcgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50
OjpzdGVwTWlzbWF0Y2goY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKICAgICByZXR1cm4gbV9p
bnB1dFR5cGUtPnN0ZXBNaXNtYXRjaCh2YWx1ZSwgc3RlcCk7CiB9CiAKK1N0cmluZyBIVE1MSW5w
dXRFbGVtZW50OjptaW5pbXVtU3RyaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbnB1dFR5
cGUtPnNlcmlhbGl6ZShtaW5pbXVtKCkpOworfQorCitTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6
bWF4aW11bVN0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5zZXJpYWxp
emUobWF4aW11bSgpKTsKK30KKworU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBCYXNlU3Ry
aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnNlcmlhbGl6ZShtX2lucHV0
VHlwZS0+c3RlcEJhc2UoKSk7Cit9CisKK1N0cmluZyBIVE1MSW5wdXRFbGVtZW50OjpzdGVwU3Ry
aW5nKCkgY29uc3QKK3sKKyAgICBkb3VibGUgc3RlcDsKKyAgICBpZiAoIWdldEFsbG93ZWRWYWx1
ZVN0ZXAoJnN0ZXApKSB7CisgICAgICAgIC8vIHN0ZXBTdHJpbmcoKSBzaG91bGQgYmUgY2FsbGVk
IG9ubHkgaWYgc3RlcE1pc21hdGNoKCkgY2FuIGJlIHRydWUuCisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgfQorICAgIHJldHVybiBz
ZXJpYWxpemVGb3JOdW1iZXJUeXBlKHN0ZXAgLyBtX2lucHV0VHlwZS0+c3RlcFNjYWxlRmFjdG9y
KCkpOworfQorCitTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6dHlwZU1pc21hdGNoVGV4dCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT50eXBlTWlzbWF0Y2hUZXh0KCk7Cit9CisK
IGJvb2wgSFRNTElucHV0RWxlbWVudDo6Z2V0QWxsb3dlZFZhbHVlU3RlcChkb3VibGUqIHN0ZXAp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGdldEFsbG93ZWRWYWx1ZVN0ZXBXaXRoRGVjaW1hbFBsYWNl
cyhzdGVwLCAwKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmgg
Yi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDBhY2YyMWU3NWU4ZjcxYmY3
OTY0NjVjNDgxZmUxMTljNDVjMTdmMGYuLmU5OTA3ZDIxMTJmMWJhNjNiNDMyOGFkMTA3OWQzYjUz
YzQwNTQ2ZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtNjgsNiArNjgsMTEgQEAgcHVi
bGljOgogICAgIGJvb2wgZ2V0QWxsb3dlZFZhbHVlU3RlcFdpdGhEZWNpbWFsUGxhY2VzKGRvdWJs
ZSosIHVuc2lnbmVkKikgY29uc3Q7CiAgICAgLy8gRm9yIFZhbGlkaXR5U3RhdGUuCiAgICAgYm9v
bCBzdGVwTWlzbWF0Y2goY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgU3RyaW5nIG1pbmltdW1T
dHJpbmcoKSBjb25zdDsKKyAgICBTdHJpbmcgbWF4aW11bVN0cmluZygpIGNvbnN0OworICAgIFN0
cmluZyBzdGVwQmFzZVN0cmluZygpIGNvbnN0OworICAgIFN0cmluZyBzdGVwU3RyaW5nKCkgY29u
c3Q7CisgICAgU3RyaW5nIHR5cGVNaXNtYXRjaFRleHQoKSBjb25zdDsKIAogICAgIC8vIEltcGxl
bWVudGF0aW9ucyBvZiBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXAoKSBhbmQgc3RlcERvd24oKS4K
ICAgICB2b2lkIHN0ZXBVcChpbnQsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTE3MSw3ICsxNzYsNyBA
QCBwdWJsaWM6CiAKICAgICBLVVJMIHNyYygpIGNvbnN0OwogCi0gICAgaW50IG1heExlbmd0aCgp
IGNvbnN0OworICAgIHZpcnR1YWwgaW50IG1heExlbmd0aCgpIGNvbnN0OwogICAgIHZvaWQgc2V0
TWF4TGVuZ3RoKGludCwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgYm9vbCBtdWx0aXBsZSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBiL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggZDk1MWMwMmM1MDRiOTk3ZDk3
NzViM2RjMmJlMzI3NzNjMjA0NGFlZC4uNjY5ZmNkOGM1MDk4NWJiMmJlZGRlZWZiMTRjN2Q1YjU4
YjA2YTNiNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC00MCwxMiArNDAsMTIg
QEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGRXcmFwVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1f
d3JhcCAhPSBOb1dyYXA7IH0KIAotICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OworICAgIHZpcnR1
YWwgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
KTsKICAgICBTdHJpbmcgZGVmYXVsdFZhbHVlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZWZhdWx0
VmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgaW50IHRleHRMZW5ndGgoKSBjb25zdCB7IHJldHVy
biB2YWx1ZSgpLmxlbmd0aCgpOyB9Ci0gICAgaW50IG1heExlbmd0aCgpIGNvbnN0OworICAgIHZp
cnR1YWwgaW50IG1heExlbmd0aCgpIGNvbnN0OwogICAgIHZvaWQgc2V0TWF4TGVuZ3RoKGludCwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYgdmFs
dWUpIGNvbnN0IHsgcmV0dXJuIGlzUmVxdWlyZWRGb3JtQ29udHJvbCgpICYmICFkaXNhYmxlZCgp
ICYmICFyZWFkT25seSgpICYmIHZhbHVlLmlzRW1wdHkoKTsgfQogICAgIGJvb2wgdG9vTG9uZyhj
b25zdCBTdHJpbmcmLCBOZWVkc1RvQ2hlY2tEaXJ0eUZsYWcpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApp
bmRleCBjMGNjMzQyNzkwYWM5MWVlNTJlNTI3YjM1YThiM2MxOGRmOWJmOGQ0Li5hMGVhMTEwOTZm
YjYxZDY0OWYzOTQwZWQyNWI1MTFkZDcyMDhiNjI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNDEsNiAr
NDEsNyBAQAogI2luY2x1ZGUgIkhpZGRlbklucHV0VHlwZS5oIgogI2luY2x1ZGUgIkltYWdlSW5w
dXRUeXBlLmgiCiAjaW5jbHVkZSAiSXNJbmRleElucHV0VHlwZS5oIgorI2luY2x1ZGUgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNb250aElucHV0VHlwZS5oIgogI2luY2x1ZGUgIk51
bWJlcklucHV0VHlwZS5oIgogI2luY2x1ZGUgIlBhc3N3b3JkSW5wdXRUeXBlLmgiCkBAIC0yNjks
NiArMjcwLDExIEBAIGRvdWJsZSBJbnB1dFR5cGU6OmFjY2VwdGFibGVFcnJvcihkb3VibGUpIGNv
bnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK1N0cmluZyBJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaFRl
eHQoKSBjb25zdAoreworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRl
eHQoKTsKK30KKwogUmVuZGVyT2JqZWN0KiBJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hKiwgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewogICAgIHJldHVybiBSZW5kZXJP
YmplY3Q6OmNyZWF0ZU9iamVjdChlbGVtZW50KCksIHN0eWxlKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaCBiL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA3OGFh
YjdjODFhNGRhNjgzYjE2NmM3OTFmY2Q3OTViMTcxYjhjNzQ5Li5kZmE0ZmIwMWFhYTlmZGY5NWJk
NzcxODIzMjMyZmY5NGEzMTYxNzU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmgKKysrIGIvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC05Niw2ICs5Niw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgcGFyc2VkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIHNjYWxlZFN0ZXBWYWxldVNob3VsZEJlSW50ZWdlcigpIGNv
bnN0OwogICAgIHZpcnR1YWwgZG91YmxlIGFjY2VwdGFibGVFcnJvcihkb3VibGUpIGNvbnN0Owor
ICAgIHZpcnR1YWwgU3RyaW5nIHR5cGVNaXNtYXRjaFRleHQoKSBjb25zdDsKIAogICAgIC8vIE1p
c2NlbGxhbmVvdXMgZnVuY3Rpb25zCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9VUkxJbnB1
dFR5cGUuY3BwIGIvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKaW5kZXggNTE3ZmZhZDBh
Y2NkYWI4OTg5OTRmZDIyMWNjZDkyYzZhYjRlYzc1NS4uMWI4ZjNkYTU2MGIzN2RhYzczNzcxNDNk
YmQwN2RkODIxMjYyMWEwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJVUkxJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTU3LDQgKzU4LDkgQEAgYm9vbCBVUkxJbnB1
dFR5cGU6OnR5cGVNaXNtYXRjaCgpIGNvbnN0CiAgICAgcmV0dXJuIHR5cGVNaXNtYXRjaEZvcihl
bGVtZW50KCktPnZhbHVlKCkpOwogfQogCitTdHJpbmcgVVJMSW5wdXRUeXBlOjp0eXBlTWlzbWF0
Y2hUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hGb3JVUkxUZXh0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaCBiL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUu
aAppbmRleCA4MmFiMWI3ZWZkODljNDhhYjFmNDRhZGRmMDk3ZDY2NzhkMWYwZGEwLi40YTY1MjJj
ZjU3NjYzNTQzN2RkNTgzZDY0NTBjYjU1YTdlNjQyMmUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvVVJMSW5wdXRUeXBlLmgKKysrIGIvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oCkBAIC00
NCw2ICs0NCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZv
cm1Db250cm9sVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2hGb3Io
Y29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaCgpIGNv
bnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHR5cGVNaXNtYXRjaFRleHQoKSBjb25zdDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0
eVN0YXRlLmNwcCBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAppbmRleCA1N2ZiNDM4
ODNiMDM2NjU2MmFkOWZiM2IzOTFlMmMzNTllYWFkZmNlLi44NGZjNjY0YzQxY2MzZDgzNmIyY2M1
MzY5OGRiM2I1MTQ2MzA0MmNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0
ZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCkBAIC00NCwxOCArNDQs
NDUgQEAgU3RyaW5nIFZhbGlkaXR5U3RhdGU6OnZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIG1fY3VzdG9tRXJyb3JNZXNzYWdlOwogICAgIGlmICh2YWx1ZU1pc3Npbmco
KSkKICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOwot
ICAgIGlmICh0eXBlTWlzbWF0Y2goKSkKLSAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdl
VHlwZU1pc21hdGNoVGV4dCgpOwogICAgIGlmIChwYXR0ZXJuTWlzbWF0Y2goKSkKICAgICAgICAg
cmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpOwotICAgIGlmICh0
b29Mb25nKCkpCi0gICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7
Ci0gICAgaWYgKHJhbmdlVW5kZXJmbG93KCkpCi0gICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVz
c2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpOwotICAgIGlmIChyYW5nZU92ZXJmbG93KCkpCi0gICAg
ICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCk7Ci0gICAgaWYg
KHN0ZXBNaXNtYXRjaCgpKQotICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlz
bWF0Y2hUZXh0KCk7CisgICAgYm9vbCBpc0lucHV0RWxlbWVudCA9IG1fY29udHJvbC0+aGFzVGFn
TmFtZShpbnB1dFRhZyk7CisgICAgYm9vbCBpc1RleHRBcmVhRWxlbWVudCA9IG1fY29udHJvbC0+
aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZyk7CisgICAgaWYgKHR5cGVNaXNtYXRjaCgpKSB7CisgICAg
ICAgIGlmIChpc0lucHV0RWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4obV9jb250cm9sKS0+dHlwZU1pc21hdGNoVGV4dCgpOworICAgICAg
ICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgfQorICAg
IGlmICh0b29Mb25nKCkpIHsKKyAgICAgICAgaWYgKCFpc0lucHV0RWxlbWVudCAmJiAhaXNUZXh0
QXJlYUVsZW1lbnQpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICB9CisgICAgICAgIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50KiB0ZXh0ID0gc3RhdGljX2Nhc3Q8SFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQqPihtX2NvbnRyb2wpOworICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25n
VGV4dChudW1HcmFwaGVtZUNsdXN0ZXJzKHRleHQtPnZhbHVlKCkpLCB0ZXh0LT5tYXhMZW5ndGgo
KSk7CisgICAgfQorICAgIGlmIChyYW5nZVVuZGVyZmxvdygpKSB7CisgICAgICAgIGlmICghaXNJ
bnB1dEVsZW1lbnQpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWxpZGF0
aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4obV9jb250cm9sKS0+bWluaW11bVN0cmluZygpKTsKKyAgICB9CisgICAgaWYgKHJhbmdlT3Zl
cmZsb3coKSkgeworICAgICAgICBpZiAoIWlzSW5wdXRFbGVtZW50KSB7CisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dChz
dGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9jb250cm9sKS0+bWF4aW11bVN0cmluZygp
KTsKKyAgICB9CisgICAgaWYgKHN0ZXBNaXNtYXRjaCgpKSB7CisgICAgICAgIGlmICghaXNJbnB1
dEVsZW1lbnQpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICB9CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fY29udHJvbCk7CisgICAg
ICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoaW5wdXQtPnN0ZXBC
YXNlU3RyaW5nKCksIGlucHV0LT5zdGVwU3RyaW5nKCkpOworICAgIH0KIAogICAgIHJldHVybiBT
dHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IDAxMmQ5
MGUxNzE1OTU2ZjFhMzViNGExZThkM2ZlNWFhYTg3MjU0ZGYuLjAyMTIwNWE2OWY3ODg4YzAwMzlh
NTA4NTYyN2VmNDZkYTM5MmJhMmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNw
cApAQCAtNTkwLDI3ICs1OTAsNDIgQEAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21h
dGNoVGV4dCgpCiAgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25T
dHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKIH0KIAorU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KCkKK3sKKyAgICBy
ZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPnZhbGlk
YXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsVGV4dCgpCit7CisgICAgcmV0dXJuIHBs
YXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVz
c2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoRm9yVVJMVGV4dCgpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygp
LT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRl
eHQoKTsKK30KKwogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgp
CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT52YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKIH0KIAotU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
VG9vTG9uZ1RleHQoaW50LCBpbnQpCiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygp
LT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7
CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsK
ICAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCk7CiB9CiAKLVN0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlT3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT52YWxpZGF0aW9uTWVzc2FnZVJh
bmdlT3ZlcmZsb3dUZXh0KCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNt
YXRjaFRleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0
Y2hUZXh0KCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuaCBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IGE3MmViOGE5
ZWE3ZTc2MzExYjBhYmI0YWQyZGY4NTJmM2IwYTZiMzYuLmQzMzJlNDU5YWYxMDgyOGRhNDZmMjFi
MTJlN2Q5NzJkZTk4NmVhNTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0x
NjcsMTEgKzE2NywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CiAgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoVGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaEZvckVtYWlsVGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaEZvck11bHRpcGxlRW1haWxUZXh0KCk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCgpOwogICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKLSAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29M
b25nVGV4dCgpOwotICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4
dCgpOwotICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCk7Ci0g
ICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpOworICAgIFN0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCB2YWx1ZUxlbmd0aCwgaW50IG1heExl
bmd0aCk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KGNv
bnN0IFN0cmluZyYgbWluaW11bSk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VP
dmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJiBtYXhpbXVtKTsKKyAgICBTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYgYmFzZSwgY29uc3QgU3RyaW5n
JiBzdGVwKTsKIAogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9j
YWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL0xvY2Fs
aXplZFN0cmluZ3NBbmRyb2lkLmNwcAppbmRleCBmYTRmODZhNTk2M2IyODU1MzRjOWQ1Y2Q2ZWIz
NTRjZTMzNjBiZjIxLi45Mjc4YWQ4MDIzMzBhMWU2NjUzYmVjYzA0ODZiYjJhZWI2N2YyNmUyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJv
aWQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5k
cm9pZC5jcHAKQEAgLTM5MSwzMSArMzkxLDQ5IEBAIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaFRleHQoKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yRW1haWxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsK
K30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFp
bFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VU
eXBlTWlzbWF0Y2hGb3JVUkxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKK30KKwogU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCwg
aW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQog
Ci1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQorU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlT3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0
ZXBNaXNtYXRjaFRleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4
dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgcmV0dXJuIFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3
L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6
ZWRTdHJpbmdzQnJldy5jcHAKaW5kZXggN2M2YzU2NDgxM2Y4NjVkNzY5NWFjNGFhNDkyNWJhZjE3
MmRiMmRjNC4uYjA0NDYyM2ZmMmU0YjA0NDcyODk3ZjAzZWZhZGRjYzM0YzhkZDNmNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwCkBAIC00MDgs
MzEgKzQwOCw0OSBAQCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkK
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaEZvckVtYWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7Cit9CisKK1N0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvck11bHRpcGxlRW1haWxUZXh0KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRj
aFRleHQoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJM
VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7Cit9CisKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBh
dHRlcm5NaXNtYXRjaFRleHQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJu
IFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCitT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGludCkKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlVW5kZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZU92ZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4
dChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0
cmluZygpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJp
bmcoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NF
ZmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAKaW5k
ZXggYTgxNDM0ZjAyYjlhODcxZDI3OWIyODk4NjQ5ZjEyNTc0N2QwY2E4MS4uMjkzNTk4MzgxODQ2
OGE0ZTgzNDMzMWQxYjAzNTY5YzlhZDZkYjZkNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
TG9jYWxpemVkU3RyaW5nc0VmbC5jcHAKQEAgLTQzNSwyMiArNDM1LDIyIEBAIFN0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQogICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KCJwYXR0ZXJuIG1pc21hdGNoIik7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZs
b3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoInJh
bmdlIG92ZXJmbG93Iik7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJm
bG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoY29u
c3QgU3RyaW5nJikKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgicmFuZ2UgdW5kZXJm
bG93Iik7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQor
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dChjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJzdGVwIG1pc21h
dGNoIik7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK1N0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KGludCwgaW50KQogewogICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KCJ0b28gbG9uZyIpOwogfQpAQCAtNDYwLDYgKzQ2MCwyMSBAQCBTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKICAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOCgidHlwZSBtaXNtYXRjaCIpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KCJ0eXBlIG1pc21hdGNoIik7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVN
aXNtYXRjaEZvck11bHRpcGxlRW1haWxUZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCgidHlwZSBtaXNtYXRjaCIpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hGb3JVUkxUZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgidHlw
ZSBtaXNtYXRjaCIpOworfQorCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdU
ZXh0KCkKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgidmFsdWUgbWlzc2luZyIpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAppbmRleCA3ODUx
MzI2ZTg3MzExYjc2MTA2ZTY1Yjk5MGMyNTFhZTVlYWRlMzU4Li42OGMxNTk4MDNmNGY5YmJiZDYy
NDY3MTE2NWNiNmYyNTkwNDdmNzcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9M
b2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6
ZWRTdHJpbmdzR3RrLmNwcApAQCAtNTU5LDI3ICs1NTksNDUgQEAgU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygi
dHlwZSBtaXNtYXRjaCIpKTsKIH0KIAorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21h
dGNoRm9yRW1haWxUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB2
YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKK30KKworU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlVHlwZU1pc21hdGNoRm9yTXVsdGlwbGVFbWFpbFRleHQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4
dCgpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JVUkxUZXh0
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2Fn
ZVR5cGVNaXNtYXRjaFRleHQoKTsKK30KKwogU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVy
bk1pc21hdGNoVGV4dCgpCiB7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygicGF0dGVy
biBtaXNtYXRjaCIpKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQo
KQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoaW50LCBpbnQpCiB7CiAgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygidG9vIGxvbmciKSk7CiB9CiAKLVN0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VSYW5nZVVuZGVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOChfKCJyYW5nZSB1bmRlcmZsb3ciKSk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
T3ZlcmZsb3dUZXh0KGNvbnN0IFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVU
RjgoXygicmFuZ2Ugb3ZlcmZsb3ciKSk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0
ZXBNaXNtYXRjaFRleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4
dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KF8oInN0ZXAgbWlzbWF0Y2giKSk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hh
aWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAKaW5kZXggNGMxMmNmM2JmM2RhNzhiZmY5YWNm
MWFkY2E2YTNjY2MwNTM1NTVlNi4uZTVjYTAwMWE5OTVhYzZjZTkzMzg3NTVlMWNmMmZiOTFhMTUy
NTRiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdz
SGFpa3UuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hh
aWt1LmNwcApAQCAtNDE1LDMxICs0MTUsNDkgQEAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlw
ZU1pc21hdGNoVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRleHQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOwor
fQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWls
VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaEZvclVSTFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworfQorCiBTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
VG9vTG9uZ1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoaW50LCBp
bnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
LVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCitTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
UmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3Rl
cE1pc21hdGNoVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ICAgICByZXR1cm4gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3d4L0xv
Y2FsaXplZFN0cmluZ3NXeC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmlu
Z3NXeC5jcHAKaW5kZXggMTBlYTQzNTM1YTBlYjU1MzMyM2I5OTliMTUzNmQxYWZmYWNkYTlmZC4u
MWI0NjY0M2IxMmIyNjkyYmE3YTljOWI1YTg2NjJlYWE3MzlmY2Q1YiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcApAQCAtMzk2LDMxICszOTYsNDkgQEAgU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCiAgICAgcmV0dXJuIFN0cmlu
ZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRl
eHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoVGV4dCgpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7Cit9CisKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvclVSTFRleHQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
VGV4dCgpOworfQorCiBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0
KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAot
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25N
ZXNzYWdlVG9vTG9uZ1RleHQoaW50LCBpbnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAg
ICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5k
ZXJmbG93VGV4dCgpCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQo
Y29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQor
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3QgU3RyaW5nJikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCBjNzBmOGZkNjEyNmFkNGNlZDA0ZTZlYTMyYzU1MDIwMGZiZDRhMDZkLi5iZGJlZGI3NmQ4
MmU4Mzg2YjA4ZDI1ZGZkZTQzZjBiYjkzOGE4YWVjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MCBAQAorMjAxMC0xMS0xMCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wcm92ZSBBUEkg
Zm9yIGZvcm0gdmFsaWRhdGlvbiBtZXNzYWdlIHN0cmluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0OTQ1CisKKyAgICAgICAgKiBwdWJsaWMvV2Vi
TG9jYWxpemVkU3RyaW5nLmg6CisgICAgICAgICogc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JFbWFpbFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hGb3JN
dWx0aXBsZUVtYWlsVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaEZvclVSTFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3Nh
Z2VUb29Mb25nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
VW5kZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
T3ZlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1p
c21hdGNoVGV4dCk6CisKIDIwMTAtMTEtMTMgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTG9jYWxpemVkU3RyaW5nLmggYi9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkxvY2FsaXplZFN0cmluZy5oCmluZGV4IGJiNDViNmU5ODgzZWZm
OThhMWNlMTVkY2I3OWQxMmYxMmJkMGE2ZTAuLjhhYjVmOGQxOTM0MjdmN2U0NDQ3ZWE4Mzc5ODJl
ODliNzRhMWE1ODAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTG9jYWxp
emVkU3RyaW5nLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMb2NhbGl6ZWRTdHJp
bmcuaApAQCAtNjAsNiArNjAsOSBAQCBzdHJ1Y3QgV2ViTG9jYWxpemVkU3RyaW5nIHsKICAgICAg
ICAgS2V5Z2VuTWVudU1lZGl1bUdyYWRlS2V5U2l6ZSwKICAgICAgICAgVmFsaWRhdGlvblZhbHVl
TWlzc2luZywKICAgICAgICAgVmFsaWRhdGlvblR5cGVNaXNtYXRjaCwKKyAgICAgICAgVmFsaWRh
dGlvblR5cGVNaXNtYXRjaEZvckVtYWlsLAorICAgICAgICBWYWxpZGF0aW9uVHlwZU1pc21hdGNo
Rm9yTXVsdGlwbGVFbWFpbCwKKyAgICAgICAgVmFsaWRhdGlvblR5cGVNaXNtYXRjaEZvclVSTCwK
ICAgICAgICAgVmFsaWRhdGlvblBhdHRlcm5NaXNtYXRjaCwKICAgICAgICAgVmFsaWRhdGlvblRv
b0xvbmcsCiAgICAgICAgIFZhbGlkYXRpb25SYW5nZVVuZGVyZmxvdywKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IDYxNGFhYzMzMzU5YmU2MDZmNDk3N2JlZDA0
NThjMGE4MTNhMTFhZTEuLjk0N2U3MzJmOTY5YzVhNzM1NDRkYmI4Y2MxZmZkNWYyNzJjMWVmOTcg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtMzA0LDI4ICsz
MDQsNDcgQEAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCiAgICAg
cmV0dXJuIHF1ZXJ5KFdlYkxvY2FsaXplZFN0cmluZzo6VmFsaWRhdGlvblR5cGVNaXNtYXRjaCk7
CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaEZvckVtYWlsVGV4dCgp
Cit7CisgICAgcmV0dXJuIHF1ZXJ5KFdlYkxvY2FsaXplZFN0cmluZzo6VmFsaWRhdGlvblR5cGVN
aXNtYXRjaEZvckVtYWlsKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21h
dGNoRm9yTXVsdGlwbGVFbWFpbFRleHQoKQoreworICAgIHJldHVybiBxdWVyeShXZWJMb2NhbGl6
ZWRTdHJpbmc6OlZhbGlkYXRpb25UeXBlTWlzbWF0Y2hGb3JNdWx0aXBsZUVtYWlsKTsKK30KKwor
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoRm9yVVJMVGV4dCgpCit7CisgICAg
cmV0dXJuIHF1ZXJ5KFdlYkxvY2FsaXplZFN0cmluZzo6VmFsaWRhdGlvblR5cGVNaXNtYXRjaEZv
clVSTCk7Cit9CisKIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQo
KQogewogICAgIHJldHVybiBxdWVyeShXZWJMb2NhbGl6ZWRTdHJpbmc6OlZhbGlkYXRpb25QYXR0
ZXJuTWlzbWF0Y2gpOwogfQogCi1TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgp
CitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dChpbnQsIGludCkKIHsKKyAgICAv
LyBGSVhNRTogcGFzcyB0aGUgYXJndW1lbnRzLgogICAgIHJldHVybiBxdWVyeShXZWJMb2NhbGl6
ZWRTdHJpbmc6OlZhbGlkYXRpb25Ub29Mb25nKTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5k
ZXJmbG93VGV4dChjb25zdCBTdHJpbmcmKQogeworICAgIC8vIEZJWE1FOiBwYXNzIHRoZSBhcmd1
bWVudHMuCiAgICAgcmV0dXJuIHF1ZXJ5KFdlYkxvY2FsaXplZFN0cmluZzo6VmFsaWRhdGlvblJh
bmdlVW5kZXJmbG93KTsKIH0KIAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxv
d1RleHQoKQorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoY29uc3Qg
U3RyaW5nJikKIHsKKyAgICAvLyBGSVhNRTogcGFzcyB0aGUgYXJndW1lbnRzLgogICAgIHJldHVy
biBxdWVyeShXZWJMb2NhbGl6ZWRTdHJpbmc6OlZhbGlkYXRpb25SYW5nZU92ZXJmbG93KTsKIH0K
IAotU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpCitTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpCiB7CisgICAgLy8gRklYTUU6IHBhc3MgdGhlIGFyZ3VtZW50cy4KICAgICByZXR1cm4gcXVl
cnkoV2ViTG9jYWxpemVkU3RyaW5nOjpWYWxpZGF0aW9uU3RlcE1pc21hdGNoKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>