<?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>51721</bug_id>
          
          <creation_ts>2010-12-29 13:17:25 -0800</creation_ts>
          <short_desc>fast/encoding/parser-tests.html is slow on debug builds</short_desc>
          <delta_ts>2011-01-05 15:38:56 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Mihai Parparita">mihaip</reporter>
          <assigned_to name="Jenn Braithwaite">jennb</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>pkasting</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>327680</commentid>
    <comment_count>0</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-29 13:17:25 -0800</bug_when>
    <thetext>fast/encoding/parser-tests.html (added by http://trac.webkit.org/changeset/73756) takes 25 seconds+ to run with debug builds:

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fast%2Fencoding%2Fparser-tests.html

This makes it much more likely to time out or flake if the test bot is under load. Since it looks like it&apos;s running multiple test cases, breaking up those into chunks may be a way to speed things up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327823</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-29 21:05:58 -0800</bug_when>
    <thetext>Yeah, it should be easy to break unto a bunch of smaller tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329157</commentid>
    <comment_count>2</comment_count>
      <attachid>77922</attachid>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2011-01-04 13:04:51 -0800</bug_when>
    <thetext>Created attachment 77922
patch

Broke up parser-tests.html to run 10 tests each. Every parser-tests-XX.html file is identical except for initial current and max values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329173</commentid>
    <comment_count>3</comment_count>
      <attachid>77922</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2011-01-04 13:28:18 -0800</bug_when>
    <thetext>Comment on attachment 77922
patch

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

&gt; LayoutTests/fast/encoding/parser-tests-10.html:20
&gt; +  &lt;script&gt;

Instead of repeating the harness script for every .html file, can you move it into a .js file in resources and reference it?

Ideally it would also write out the text description (and expected failures), so that they don&apos;t have to be repeated either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329214</commentid>
    <comment_count>4</comment_count>
      <attachid>77930</attachid>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2011-01-04 14:20:31 -0800</bug_when>
    <thetext>Created attachment 77930
patch

Test suite logic moved into resources/parser-tests.js as suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329615</commentid>
    <comment_count>5</comment_count>
      <attachid>77930</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2011-01-05 09:43:22 -0800</bug_when>
    <thetext>Comment on attachment 77930
patch

Much better (unfortunately I&apos;m not a reviewer so I can&apos;t r+ this).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329620</commentid>
    <comment_count>6</comment_count>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2011-01-05 09:56:10 -0800</bug_when>
    <thetext>Adam, can you take a look as you reviewed the original patch?  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329838</commentid>
    <comment_count>7</comment_count>
      <attachid>77930</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-05 15:38:51 -0800</bug_when>
    <thetext>Comment on attachment 77930
patch

Clearing flags on attachment: 77930

Committed r75111: &lt;http://trac.webkit.org/changeset/75111&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329839</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-05 15:38:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77922</attachid>
            <date>2011-01-04 13:04:51 -0800</date>
            <delta_ts>2011-01-04 14:20:31 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch-51721.txt</filename>
            <type>text/plain</type>
            <size>51762</size>
            <attacher name="Jenn Braithwaite">jennb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYWRjOGVhLi4yYjI5OWUzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTAx
LTA0ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGZhc3QvZW5jb2RpbmcvcGFyc2Vy
LXRlc3RzLmh0bWwgaXMgc2xvdyBvbiBkZWJ1ZyBidWlsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNzIxCisKKyAgICAgICAgQnJlYWsgdXAgcGFy
c2VyIHRlc3RzIHRvIHJ1biAxMCB0ZXN0cyBwZXIgYmF0Y2guCisKKyAgICAgICAgKiBmYXN0L2Vu
Y29kaW5nL3BhcnNlci10ZXN0cy0xMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTEwLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLmh0bWwuCisgICAgICAgICogZmFzdC9lbmNvZGlu
Zy9wYXJzZXItdGVzdHMtMTAwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
bmNvZGluZy9wYXJzZXItdGVzdHMtMTAwLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zh
c3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLmh0bWwuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9w
YXJzZXItdGVzdHMtMTEwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNv
ZGluZy9wYXJzZXItdGVzdHMtMTEwLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qv
ZW5jb2RpbmcvcGFyc2VyLXRlc3RzLmh0bWwuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9wYXJz
ZXItdGVzdHMtMTIwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGlu
Zy9wYXJzZXItdGVzdHMtMTIwLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvcGFyc2VyLXRlc3RzLmh0bWwuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9wYXJzZXIt
dGVzdHMtMjAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3Bh
cnNlci10ZXN0cy0yMC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L3BhcnNlci10ZXN0cy5odG1sLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3Rz
LTMwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9wYXJzZXIt
dGVzdHMtMzAuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJz
ZXItdGVzdHMuaHRtbC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy00MC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3Rz
LTQwLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRl
c3RzLmh0bWwuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtNTAtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy01MC5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy5o
dG1sLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTYwLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtNjAuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMuaHRtbC4K
KyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy03MC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTcwLmh0bWw6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLmh0bWwuCisgICAg
ICAgICogZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtODAtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy04MC5odG1sOiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy5odG1sLgorICAgICAgICAq
IGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTkwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtOTAuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMuaHRtbC4KKyAgICAgICAgKiBmYXN0
L2VuY29kaW5nL3BhcnNlci10ZXN0cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9lbmNv
ZGluZy9wYXJzZXItdGVzdHMuaHRtbDoKKwogMjAxMS0wMS0wNCAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkOyBBZGRlZCBlZGl0aW5nL3NlbGVj
dGlvbi9jYXJldC1iaWRpLWZpcnN0LWFuZC1sYXN0LWxldHRlcnMuaHRtbCB0byBRdCdzIHNraXBw
ZWQgbGlzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRl
c3RzLTEwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRl
c3RzLTEwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4z
NGE0MWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJz
ZXItdGVzdHMtMTAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBzdWl0
ZSB3YXMgY29udmVydGVkIGZyb20gaHR0cDovL3d3dy5oaXhpZS5jaC90ZXN0cy9hZGhvYy9odG1s
L3BhcnNpbmcvZW5jb2RpbmcvYWxsLmh0bWwKKworVGhlIHN1aXRlIGhhcyBiZWVuIGJyb2tlbiB1
cCB0byBydW4gdGhlIHRlc3RzIGluIHNtYWxsZXIgYmF0Y2hlcy4KKworRXhwZWN0ZWQgZmFpbHVy
ZXM6Cis1NiwgNTcsIDU4LCA1OSAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2Rp
bmcgZGV0ZWN0aW9uIHBoYXNlIGFuZCBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIGEgc2NyaXB0
IGFzIHRleHQsIG5vdCBhIHRhZy4KKzYwIC0gcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBzdHls
ZSBhcyB0ZXh0LCBub3QgYSB0YWcuCis5NywgOTksIDEwMiAtIHdlIGRvIG5vdCBydW4gc2NyaXB0
cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uLgorU3RhdHVzOiBUZXN0cyByYW4uCisKK1Nlcmlv
dXMgZmFpbHVyZXM6CisKKyhUZXN0cyBhcmUgY29uc2lkZXJlZCB0byBwYXNzIGV2ZW4gaWYgdGhl
eSB0cmVhdCBXaW4xMjU0IGFuZCBJU08tODg1OS00IGFzIHNlcGFyYXRlLikKKworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0xMC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMTAuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDYxM2YxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMTAuaHRtbApAQCAtMCwwICsxLDY4IEBA
Cis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorIDxoZWFkPgorICA8dGl0bGU+SGFybmVzczwvdGl0
bGU+CisgPC9oZWFkPgorIDxib2R5IG9ubG9hZD0icnVudGVzdHMoKSI+CisgIDxwPlRoaXMgdGVz
dCBzdWl0ZSB3YXMgY29udmVydGVkIGZyb20gaHR0cDovL3d3dy5oaXhpZS5jaC90ZXN0cy9hZGhv
Yy9odG1sL3BhcnNpbmcvZW5jb2RpbmcvYWxsLmh0bWw8L3A+CisgIDxwPlRoZSBzdWl0ZSBoYXMg
YmVlbiBicm9rZW4gdXAgdG8gcnVuIHRoZSB0ZXN0cyBpbiBzbWFsbGVyIGJhdGNoZXMuPC9wPgor
ICA8dWw+RXhwZWN0ZWQgZmFpbHVyZXM6CisgICAgPGxpPjU2LCA1NywgNTgsIDU5IC0gd2UgZG8g
bm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGluZyBkZXRlY3Rpb24gcGhhc2UgYW5kIHBhcnNl
ciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3JpcHQgYXMgdGV4dCwgbm90IGEgdGFnLjwvbGk+Cisg
ICAgPGxpPjYwIC0gcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBzdHlsZSBhcyB0ZXh0LCBub3Qg
YSB0YWcuPC9saT4KKyAgICA8bGk+OTcsIDk5LCAxMDIgLSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMg
ZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbi48L2xpPgorICA8L3VsPgorICA8cD5TdGF0dXM6IDxz
cGFuIGlkPSJzdGF0dXMiPlRlc3RzIGRpZCBub3QgcnVuLjwvc3Bhbj48L3A+CisgIDxwPlNlcmlv
dXMgZmFpbHVyZXM6PC9wPgorICA8b2wgaWQ9ImZhaWx1cmVzIj4KKyAgPC9vbD4KKyAgPHA+KFRl
c3RzIGFyZSBjb25zaWRlcmVkIHRvIHBhc3MgZXZlbiBpZiB0aGV5IHRyZWF0IFdpbjEyNTQgYW5k
IElTTy04ODU5LTQgYXMgc2VwYXJhdGUuKTwvcD4KKyAgPHA+PGlmcmFtZSBpZD0idGVzdCI+PC9p
ZnJhbWU+PC9wPgorICA8c2NyaXB0PgorICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICB9CisKKyAgIHZhciBmcmFt
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisgICB2YXIgY3VycmVudCA9IDEw
OworICAgdmFyIG1heCA9IDE5OworICAgZnVuY3Rpb24gZG90ZXN0KCkgeworICAgICB2YXIgcyA9
IGN1cnJlbnQgKyAnJzsKKyAgICAgd2hpbGUgKHMubGVuZ3RoIDwgMykgcyA9ICcwJyArIHM7Cisg
ICAgIGZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvJyArIHMgKyAnLmh0bWwnOworICAgICB3aW5kb3cu
cmVjZWl2ZWRSZXN1bHRzID0gZnVuY3Rpb24gKCkgeworICAgICAgIHZhciB3YW50ID0gZnJhbWUu
Y29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0ZWQnKS5maXJzdENo
aWxkLmRhdGE7CisgICAgICAgdmFyIGhhdmUgPSBmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdlbmNvZGluZycpLmZpcnN0Q2hpbGQuZGF0YTsKKyAgICAgICBpZiAo
aGF2ZSA9PSAnSVNPLTg4NTktOScpCisgICAgICAgICBoYXZlID0gJ1dpbmRvd3MtMTI1NCc7Cisg
ICAgICAgaWYgKHdhbnQgIT0gaGF2ZSkgeworICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnbGknKTsKKyAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnYScpOworICAgICAgICAgYS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgn
dGVzdCAnICsgcykpOworICAgICAgICAgYS5ocmVmID0gcyArICcuaHRtbCc7CisgICAgICAgICBs
aS5hcHBlbmRDaGlsZChhKTsKKyAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCc6IGV4cGVjdGVkICcgKyB3YW50ICsgJzsgdXNlZCAnICsgaGF2ZSkpOworICAg
ICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ByZScpOworICAgICAgICAg
cHJlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGZyYW1lLmNvbnRlbnRXaW5k
b3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ByZScpWzBdLmZpcnN0Q2hpbGQuZGF0
YSkpOworICAgICAgICAgbGkuYXBwZW5kQ2hpbGQocHJlKTsKKyAgICAgICAgIGxpLnZhbHVlID0g
Y3VycmVudDsKKyAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYWlsdXJlcycpLmFw
cGVuZENoaWxkKGxpKTsKKyAgICAgICB9CisgICAgICAgY3VycmVudCArPSAxOworICAgICAgIGlm
IChjdXJyZW50IDw9IG1heCkKKyAgICAgICAgIGRvdGVzdCgpOworICAgICAgIGVsc2UgeworICAg
ICAgICAgZnJhbWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmcmFtZSk7CisgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHVzJykuaW5uZXJUZXh0ID0gIlRlc3RzIHJhbi4iOwor
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgfQorICAgICB9OworICAg
fQorICAgZnVuY3Rpb24gcnVudGVzdHMoKSB7CisgICAgIGRvdGVzdCgpOworICAgfQorICAgZnVu
Y3Rpb24gYWxlcnQoKSB7IH0KKyAgPC9zY3JpcHQ+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMTAwLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTEwMC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI1YzA5YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTEwMC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0IHN1aXRlIHdhcyBjb252ZXJ0
ZWQgZnJvbSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9jL2h0bWwvcGFyc2luZy9lbmNv
ZGluZy9hbGwuaHRtbAorCitUaGUgc3VpdGUgaGFzIGJlZW4gYnJva2VuIHVwIHRvIHJ1biB0aGUg
dGVzdHMgaW4gc21hbGxlciBiYXRjaGVzLgorCitFeHBlY3RlZCBmYWlsdXJlczoKKzU2LCA1Nywg
NTgsIDU5IC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGluZyBkZXRlY3Rpb24g
cGhhc2UgYW5kIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3JpcHQgYXMgdGV4dCwgbm90
IGEgdGFnLgorNjAgLSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0eWxlIGFzIHRleHQsIG5v
dCBhIHRhZy4KKzk3LCA5OSwgMTAyIC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNv
ZGluZyBkZXRlY3Rpb24uCitTdGF0dXM6IFRlc3RzIHJhbi4KKworU2VyaW91cyBmYWlsdXJlczoK
KwordGVzdCAxMDI6IGV4cGVjdGVkIFdpbmRvd3MtMTI1NDsgdXNlZCBXaW5kb3dzLTEyNTIKKzwh
RE9DVFlQRSBIVE1MPgorPHNjcmlwdD5kb2N1bWVudC53cml0ZShhdG9iKCdQRzFsZEdFZ2FIUjBj
QzFsY1hWcGRqMGlRMjl1ZEdWdWRDMVVlWEJsSWlCamIyNTBaVzUwUFNKMFpYaDBMMmgwYld3N1ky
aGhjbk5sZEQxSlUwOHRPRGcxT1MwNUlqND0nKSk8L3NjcmlwdD4KKzxzY3JpcHQ+ZG9jdW1lbnQu
d3JpdGUoYXRvYignUEcxbGRHRWdhSFIwY0MxbGNYVnBkajBpUTI5dWRHVnVkQzFVZVhCbElpQmpi
MjUwWlc1MFBTSjBaWGgwTDJoMGJXdzdZMmhoY25ObGREMUpVMDh0T0RnMU9TMHhJajQ9JykpPC9z
Y3JpcHQ+CisoVGVzdHMgYXJlIGNvbnNpZGVyZWQgdG8gcGFzcyBldmVuIGlmIHRoZXkgdHJlYXQg
V2luMTI1NCBhbmQgSVNPLTg4NTktNCBhcyBzZXBhcmF0ZS4pCisKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMTAwLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0xMDAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi44MzAzNzlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMTAwLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFE
T0NUWVBFIEhUTUw+Cis8aHRtbD4KKyA8aGVhZD4KKyAgPHRpdGxlPkhhcm5lc3M8L3RpdGxlPgor
IDwvaGVhZD4KKyA8Ym9keSBvbmxvYWQ9InJ1bnRlc3RzKCkiPgorICA8cD5UaGlzIHRlc3Qgc3Vp
dGUgd2FzIGNvbnZlcnRlZCBmcm9tIGh0dHA6Ly93d3cuaGl4aWUuY2gvdGVzdHMvYWRob2MvaHRt
bC9wYXJzaW5nL2VuY29kaW5nL2FsbC5odG1sPC9wPgorICA8cD5UaGUgc3VpdGUgaGFzIGJlZW4g
YnJva2VuIHVwIHRvIHJ1biB0aGUgdGVzdHMgaW4gc21hbGxlciBiYXRjaGVzLjwvcD4KKyAgPHVs
PkV4cGVjdGVkIGZhaWx1cmVzOgorICAgIDxsaT41NiwgNTcsIDU4LCA1OSAtIHdlIGRvIG5vdCBy
dW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uIHBoYXNlIGFuZCBwYXJzZXIgdHJl
YXRzIG1ldGEgaW5zaWRlIGEgc2NyaXB0IGFzIHRleHQsIG5vdCBhIHRhZy48L2xpPgorICAgIDxs
aT42MCAtIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgc3R5bGUgYXMgdGV4dCwgbm90IGEgdGFn
LjwvbGk+CisgICAgPGxpPjk3LCA5OSwgMTAyIC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmlu
ZyBlbmNvZGluZyBkZXRlY3Rpb24uPC9saT4KKyAgPC91bD4KKyAgPHA+U3RhdHVzOiA8c3BhbiBp
ZD0ic3RhdHVzIj5UZXN0cyBkaWQgbm90IHJ1bi48L3NwYW4+PC9wPgorICA8cD5TZXJpb3VzIGZh
aWx1cmVzOjwvcD4KKyAgPG9sIGlkPSJmYWlsdXJlcyI+CisgIDwvb2w+CisgIDxwPihUZXN0cyBh
cmUgY29uc2lkZXJlZCB0byBwYXNzIGV2ZW4gaWYgdGhleSB0cmVhdCBXaW4xMjU0IGFuZCBJU08t
ODg1OS00IGFzIHNlcGFyYXRlLik8L3A+CisgIDxwPjxpZnJhbWUgaWQ9InRlc3QiPjwvaWZyYW1l
PjwvcD4KKyAgPHNjcmlwdD4KKyAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgfQorCisgICB2YXIgZnJhbWUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOworICAgdmFyIGN1cnJlbnQgPSAxMDA7Cisg
ICB2YXIgbWF4ID0gMTA5OworICAgZnVuY3Rpb24gZG90ZXN0KCkgeworICAgICB2YXIgcyA9IGN1
cnJlbnQgKyAnJzsKKyAgICAgd2hpbGUgKHMubGVuZ3RoIDwgMykgcyA9ICcwJyArIHM7CisgICAg
IGZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvJyArIHMgKyAnLmh0bWwnOworICAgICB3aW5kb3cucmVj
ZWl2ZWRSZXN1bHRzID0gZnVuY3Rpb24gKCkgeworICAgICAgIHZhciB3YW50ID0gZnJhbWUuY29u
dGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0ZWQnKS5maXJzdENoaWxk
LmRhdGE7CisgICAgICAgdmFyIGhhdmUgPSBmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdlbmNvZGluZycpLmZpcnN0Q2hpbGQuZGF0YTsKKyAgICAgICBpZiAoaGF2
ZSA9PSAnSVNPLTg4NTktOScpCisgICAgICAgICBoYXZlID0gJ1dpbmRvd3MtMTI1NCc7CisgICAg
ICAgaWYgKHdhbnQgIT0gaGF2ZSkgeworICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnbGknKTsKKyAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
YScpOworICAgICAgICAgYS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgndGVz
dCAnICsgcykpOworICAgICAgICAgYS5ocmVmID0gcyArICcuaHRtbCc7CisgICAgICAgICBsaS5h
cHBlbmRDaGlsZChhKTsKKyAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCc6IGV4cGVjdGVkICcgKyB3YW50ICsgJzsgdXNlZCAnICsgaGF2ZSkpOworICAgICAg
ICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ByZScpOworICAgICAgICAgcHJl
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGZyYW1lLmNvbnRlbnRXaW5kb3cu
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ByZScpWzBdLmZpcnN0Q2hpbGQuZGF0YSkp
OworICAgICAgICAgbGkuYXBwZW5kQ2hpbGQocHJlKTsKKyAgICAgICAgIGxpLnZhbHVlID0gY3Vy
cmVudDsKKyAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYWlsdXJlcycpLmFwcGVu
ZENoaWxkKGxpKTsKKyAgICAgICB9CisgICAgICAgY3VycmVudCArPSAxOworICAgICAgIGlmIChj
dXJyZW50IDw9IG1heCkKKyAgICAgICAgIGRvdGVzdCgpOworICAgICAgIGVsc2UgeworICAgICAg
ICAgZnJhbWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmcmFtZSk7CisgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnc3RhdHVzJykuaW5uZXJUZXh0ID0gIlRlc3RzIHJhbi4iOworICAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgfQorICAgICB9OworICAgfQor
ICAgZnVuY3Rpb24gcnVudGVzdHMoKSB7CisgICAgIGRvdGVzdCgpOworICAgfQorICAgZnVuY3Rp
b24gYWxlcnQoKSB7IH0KKyAgPC9zY3JpcHQ+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMTEwLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTExMC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRhNDFlNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTExMC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IHN1aXRlIHdhcyBjb252ZXJ0ZWQg
ZnJvbSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9jL2h0bWwvcGFyc2luZy9lbmNvZGlu
Zy9hbGwuaHRtbAorCitUaGUgc3VpdGUgaGFzIGJlZW4gYnJva2VuIHVwIHRvIHJ1biB0aGUgdGVz
dHMgaW4gc21hbGxlciBiYXRjaGVzLgorCitFeHBlY3RlZCBmYWlsdXJlczoKKzU2LCA1NywgNTgs
IDU5IC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGluZyBkZXRlY3Rpb24gcGhh
c2UgYW5kIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3JpcHQgYXMgdGV4dCwgbm90IGEg
dGFnLgorNjAgLSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0eWxlIGFzIHRleHQsIG5vdCBh
IHRhZy4KKzk3LCA5OSwgMTAyIC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGlu
ZyBkZXRlY3Rpb24uCitTdGF0dXM6IFRlc3RzIHJhbi4KKworU2VyaW91cyBmYWlsdXJlczoKKwor
KFRlc3RzIGFyZSBjb25zaWRlcmVkIHRvIHBhc3MgZXZlbiBpZiB0aGV5IHRyZWF0IFdpbjEyNTQg
YW5kIElTTy04ODU5LTQgYXMgc2VwYXJhdGUuKQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTExMC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
bmNvZGluZy9wYXJzZXItdGVzdHMtMTEwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZjJmNDUyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvcGFyc2VyLXRlc3RzLTExMC5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBI
VE1MPgorPGh0bWw+CisgPGhlYWQ+CisgIDx0aXRsZT5IYXJuZXNzPC90aXRsZT4KKyA8L2hlYWQ+
CisgPGJvZHkgb25sb2FkPSJydW50ZXN0cygpIj4KKyAgPHA+VGhpcyB0ZXN0IHN1aXRlIHdhcyBj
b252ZXJ0ZWQgZnJvbSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9jL2h0bWwvcGFyc2lu
Zy9lbmNvZGluZy9hbGwuaHRtbDwvcD4KKyAgPHA+VGhlIHN1aXRlIGhhcyBiZWVuIGJyb2tlbiB1
cCB0byBydW4gdGhlIHRlc3RzIGluIHNtYWxsZXIgYmF0Y2hlcy48L3A+CisgIDx1bD5FeHBlY3Rl
ZCBmYWlsdXJlczoKKyAgICA8bGk+NTYsIDU3LCA1OCwgNTkgLSB3ZSBkbyBub3QgcnVuIHNjcmlw
dHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbiBwaGFzZSBhbmQgcGFyc2VyIHRyZWF0cyBtZXRh
IGluc2lkZSBhIHNjcmlwdCBhcyB0ZXh0LCBub3QgYSB0YWcuPC9saT4KKyAgICA8bGk+NjAgLSBw
YXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0eWxlIGFzIHRleHQsIG5vdCBhIHRhZy48L2xpPgor
ICAgIDxsaT45NywgOTksIDEwMiAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2Rp
bmcgZGV0ZWN0aW9uLjwvbGk+CisgIDwvdWw+CisgIDxwPlN0YXR1czogPHNwYW4gaWQ9InN0YXR1
cyI+VGVzdHMgZGlkIG5vdCBydW4uPC9zcGFuPjwvcD4KKyAgPHA+U2VyaW91cyBmYWlsdXJlczo8
L3A+CisgIDxvbCBpZD0iZmFpbHVyZXMiPgorICA8L29sPgorICA8cD4oVGVzdHMgYXJlIGNvbnNp
ZGVyZWQgdG8gcGFzcyBldmVuIGlmIHRoZXkgdHJlYXQgV2luMTI1NCBhbmQgSVNPLTg4NTktNCBh
cyBzZXBhcmF0ZS4pPC9wPgorICA8cD48aWZyYW1lIGlkPSJ0ZXN0Ij48L2lmcmFtZT48L3A+Cisg
IDxzY3JpcHQ+CisgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgIH0KKworICAgdmFyIGZyYW1lID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKyAgIHZhciBjdXJyZW50ID0gMTEwOworICAgdmFyIG1h
eCA9IDExOTsKKyAgIGZ1bmN0aW9uIGRvdGVzdCgpIHsKKyAgICAgdmFyIHMgPSBjdXJyZW50ICsg
Jyc7CisgICAgIHdoaWxlIChzLmxlbmd0aCA8IDMpIHMgPSAnMCcgKyBzOworICAgICBmcmFtZS5z
cmMgPSAncmVzb3VyY2VzLycgKyBzICsgJy5odG1sJzsKKyAgICAgd2luZG93LnJlY2VpdmVkUmVz
dWx0cyA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICB2YXIgd2FudCA9IGZyYW1lLmNvbnRlbnRXaW5k
b3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdGVkJykuZmlyc3RDaGlsZC5kYXRhOwor
ICAgICAgIHZhciBoYXZlID0gZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZW5jb2RpbmcnKS5maXJzdENoaWxkLmRhdGE7CisgICAgICAgaWYgKGhhdmUgPT0gJ0lT
Ty04ODU5LTknKQorICAgICAgICAgaGF2ZSA9ICdXaW5kb3dzLTEyNTQnOworICAgICAgIGlmICh3
YW50ICE9IGhhdmUpIHsKKyAgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2xpJyk7CisgICAgICAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKKyAg
ICAgICAgIGEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ3Rlc3QgJyArIHMp
KTsKKyAgICAgICAgIGEuaHJlZiA9IHMgKyAnLmh0bWwnOworICAgICAgICAgbGkuYXBwZW5kQ2hp
bGQoYSk7CisgICAgICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgn
OiBleHBlY3RlZCAnICsgd2FudCArICc7IHVzZWQgJyArIGhhdmUpKTsKKyAgICAgICAgIHZhciBw
cmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTsKKyAgICAgICAgIHByZS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmUnKVswXS5maXJzdENoaWxkLmRhdGEpKTsKKyAgICAg
ICAgIGxpLmFwcGVuZENoaWxkKHByZSk7CisgICAgICAgICBsaS52YWx1ZSA9IGN1cnJlbnQ7Cisg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFpbHVyZXMnKS5hcHBlbmRDaGlsZChs
aSk7CisgICAgICAgfQorICAgICAgIGN1cnJlbnQgKz0gMTsKKyAgICAgICBpZiAoY3VycmVudCA8
PSBtYXgpCisgICAgICAgICBkb3Rlc3QoKTsKKyAgICAgICBlbHNlIHsKKyAgICAgICAgIGZyYW1l
LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZnJhbWUpOworICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3N0YXR1cycpLmlubmVyVGV4dCA9ICJUZXN0cyByYW4uIjsKKyAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgIH0KKyAgICAgfTsKKyAgIH0KKyAgIGZ1bmN0
aW9uIHJ1bnRlc3RzKCkgeworICAgICBkb3Rlc3QoKTsKKyAgIH0KKyAgIGZ1bmN0aW9uIGFsZXJ0
KCkgeyB9CisgIDwvc2NyaXB0PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTEyMC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0xMjAtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0YTQxZTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0xMjAtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBzdWl0ZSB3YXMgY29udmVydGVkIGZyb20gaHR0
cDovL3d3dy5oaXhpZS5jaC90ZXN0cy9hZGhvYy9odG1sL3BhcnNpbmcvZW5jb2RpbmcvYWxsLmh0
bWwKKworVGhlIHN1aXRlIGhhcyBiZWVuIGJyb2tlbiB1cCB0byBydW4gdGhlIHRlc3RzIGluIHNt
YWxsZXIgYmF0Y2hlcy4KKworRXhwZWN0ZWQgZmFpbHVyZXM6Cis1NiwgNTcsIDU4LCA1OSAtIHdl
IGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uIHBoYXNlIGFuZCBw
YXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIGEgc2NyaXB0IGFzIHRleHQsIG5vdCBhIHRhZy4KKzYw
IC0gcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBzdHlsZSBhcyB0ZXh0LCBub3QgYSB0YWcuCis5
NywgOTksIDEwMiAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0
aW9uLgorU3RhdHVzOiBUZXN0cyByYW4uCisKK1NlcmlvdXMgZmFpbHVyZXM6CisKKyhUZXN0cyBh
cmUgY29uc2lkZXJlZCB0byBwYXNzIGV2ZW4gaWYgdGhleSB0cmVhdCBXaW4xMjU0IGFuZCBJU08t
ODg1OS00IGFzIHNlcGFyYXRlLikKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL3BhcnNlci10ZXN0cy0xMjAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
cGFyc2VyLXRlc3RzLTEyMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmIwNjAwYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Bh
cnNlci10ZXN0cy0xMjAuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxo
dG1sPgorIDxoZWFkPgorICA8dGl0bGU+SGFybmVzczwvdGl0bGU+CisgPC9oZWFkPgorIDxib2R5
IG9ubG9hZD0icnVudGVzdHMoKSI+CisgIDxwPlRoaXMgdGVzdCBzdWl0ZSB3YXMgY29udmVydGVk
IGZyb20gaHR0cDovL3d3dy5oaXhpZS5jaC90ZXN0cy9hZGhvYy9odG1sL3BhcnNpbmcvZW5jb2Rp
bmcvYWxsLmh0bWw8L3A+CisgIDxwPlRoZSBzdWl0ZSBoYXMgYmVlbiBicm9rZW4gdXAgdG8gcnVu
IHRoZSB0ZXN0cyBpbiBzbWFsbGVyIGJhdGNoZXMuPC9wPgorICA8dWw+RXhwZWN0ZWQgZmFpbHVy
ZXM6CisgICAgPGxpPjU2LCA1NywgNTgsIDU5IC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmlu
ZyBlbmNvZGluZyBkZXRlY3Rpb24gcGhhc2UgYW5kIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUg
YSBzY3JpcHQgYXMgdGV4dCwgbm90IGEgdGFnLjwvbGk+CisgICAgPGxpPjYwIC0gcGFyc2VyIHRy
ZWF0cyBtZXRhIGluc2lkZSBzdHlsZSBhcyB0ZXh0LCBub3QgYSB0YWcuPC9saT4KKyAgICA8bGk+
OTcsIDk5LCAxMDIgLSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVj
dGlvbi48L2xpPgorICA8L3VsPgorICA8cD5TdGF0dXM6IDxzcGFuIGlkPSJzdGF0dXMiPlRlc3Rz
IGRpZCBub3QgcnVuLjwvc3Bhbj48L3A+CisgIDxwPlNlcmlvdXMgZmFpbHVyZXM6PC9wPgorICA8
b2wgaWQ9ImZhaWx1cmVzIj4KKyAgPC9vbD4KKyAgPHA+KFRlc3RzIGFyZSBjb25zaWRlcmVkIHRv
IHBhc3MgZXZlbiBpZiB0aGV5IHRyZWF0IFdpbjEyNTQgYW5kIElTTy04ODU5LTQgYXMgc2VwYXJh
dGUuKTwvcD4KKyAgPHA+PGlmcmFtZSBpZD0idGVzdCI+PC9pZnJhbWU+PC9wPgorICA8c2NyaXB0
PgorICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICB9CisKKyAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0Jyk7CisgICB2YXIgY3VycmVudCA9IDEyMDsKKyAgIHZhciBtYXggPSAxMjM7
CisgICBmdW5jdGlvbiBkb3Rlc3QoKSB7CisgICAgIHZhciBzID0gY3VycmVudCArICcnOworICAg
ICB3aGlsZSAocy5sZW5ndGggPCAzKSBzID0gJzAnICsgczsKKyAgICAgZnJhbWUuc3JjID0gJ3Jl
c291cmNlcy8nICsgcyArICcuaHRtbCc7CisgICAgIHdpbmRvdy5yZWNlaXZlZFJlc3VsdHMgPSBm
dW5jdGlvbiAoKSB7CisgICAgICAgdmFyIHdhbnQgPSBmcmFtZS5jb250ZW50V2luZG93LmRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3RlZCcpLmZpcnN0Q2hpbGQuZGF0YTsKKyAgICAgICB2
YXIgaGF2ZSA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vu
Y29kaW5nJykuZmlyc3RDaGlsZC5kYXRhOworICAgICAgIGlmIChoYXZlID09ICdJU08tODg1OS05
JykKKyAgICAgICAgIGhhdmUgPSAnV2luZG93cy0xMjU0JzsKKyAgICAgICBpZiAod2FudCAhPSBo
YXZlKSB7CisgICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwor
ICAgICAgICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CisgICAgICAgICBh
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCd0ZXN0ICcgKyBzKSk7CisgICAg
ICAgICBhLmhyZWYgPSBzICsgJy5odG1sJzsKKyAgICAgICAgIGxpLmFwcGVuZENoaWxkKGEpOwor
ICAgICAgICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJzogZXhwZWN0
ZWQgJyArIHdhbnQgKyAnOyB1c2VkICcgKyBoYXZlKSk7CisgICAgICAgICB2YXIgcHJlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgncHJlJyk7CisgICAgICAgICBwcmUuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgncHJlJylbMF0uZmlyc3RDaGlsZC5kYXRhKSk7CisgICAgICAgICBsaS5h
cHBlbmRDaGlsZChwcmUpOworICAgICAgICAgbGkudmFsdWUgPSBjdXJyZW50OworICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhaWx1cmVzJykuYXBwZW5kQ2hpbGQobGkpOworICAg
ICAgIH0KKyAgICAgICBjdXJyZW50ICs9IDE7CisgICAgICAgaWYgKGN1cnJlbnQgPD0gbWF4KQor
ICAgICAgICAgZG90ZXN0KCk7CisgICAgICAgZWxzZSB7CisgICAgICAgICBmcmFtZS5wYXJlbnRO
b2RlLnJlbW92ZUNoaWxkKGZyYW1lKTsKKyAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdzdGF0dXMnKS5pbm5lclRleHQgPSAiVGVzdHMgcmFuLiI7CisgICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICB9CisgICAgIH07CisgICB9CisgICBmdW5jdGlvbiBydW50
ZXN0cygpIHsKKyAgICAgZG90ZXN0KCk7CisgICB9CisgICBmdW5jdGlvbiBhbGVydCgpIHsgfQor
ICA8L3NjcmlwdD4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0yMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0yMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMzRhNDFlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTIwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE1IEBACitUaGlzIHRlc3Qgc3VpdGUgd2FzIGNvbnZlcnRlZCBmcm9tIGh0dHA6Ly93d3cuaGl4
aWUuY2gvdGVzdHMvYWRob2MvaHRtbC9wYXJzaW5nL2VuY29kaW5nL2FsbC5odG1sCisKK1RoZSBz
dWl0ZSBoYXMgYmVlbiBicm9rZW4gdXAgdG8gcnVuIHRoZSB0ZXN0cyBpbiBzbWFsbGVyIGJhdGNo
ZXMuCisKK0V4cGVjdGVkIGZhaWx1cmVzOgorNTYsIDU3LCA1OCwgNTkgLSB3ZSBkbyBub3QgcnVu
IHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbiBwaGFzZSBhbmQgcGFyc2VyIHRyZWF0
cyBtZXRhIGluc2lkZSBhIHNjcmlwdCBhcyB0ZXh0LCBub3QgYSB0YWcuCis2MCAtIHBhcnNlciB0
cmVhdHMgbWV0YSBpbnNpZGUgc3R5bGUgYXMgdGV4dCwgbm90IGEgdGFnLgorOTcsIDk5LCAxMDIg
LSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbi4KK1N0YXR1
czogVGVzdHMgcmFuLgorCitTZXJpb3VzIGZhaWx1cmVzOgorCisoVGVzdHMgYXJlIGNvbnNpZGVy
ZWQgdG8gcGFzcyBldmVuIGlmIHRoZXkgdHJlYXQgV2luMTI1NCBhbmQgSVNPLTg4NTktNCBhcyBz
ZXBhcmF0ZS4pCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJz
ZXItdGVzdHMtMjAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3Rz
LTIwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ2YWM2NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTIw
Lmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyA8aGVhZD4K
KyAgPHRpdGxlPkhhcm5lc3M8L3RpdGxlPgorIDwvaGVhZD4KKyA8Ym9keSBvbmxvYWQ9InJ1bnRl
c3RzKCkiPgorICA8cD5UaGlzIHRlc3Qgc3VpdGUgd2FzIGNvbnZlcnRlZCBmcm9tIGh0dHA6Ly93
d3cuaGl4aWUuY2gvdGVzdHMvYWRob2MvaHRtbC9wYXJzaW5nL2VuY29kaW5nL2FsbC5odG1sPC9w
PgorICA8cD5UaGUgc3VpdGUgaGFzIGJlZW4gYnJva2VuIHVwIHRvIHJ1biB0aGUgdGVzdHMgaW4g
c21hbGxlciBiYXRjaGVzLjwvcD4KKyAgPHVsPkV4cGVjdGVkIGZhaWx1cmVzOgorICAgIDxsaT41
NiwgNTcsIDU4LCA1OSAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0
ZWN0aW9uIHBoYXNlIGFuZCBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIGEgc2NyaXB0IGFzIHRl
eHQsIG5vdCBhIHRhZy48L2xpPgorICAgIDxsaT42MCAtIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNp
ZGUgc3R5bGUgYXMgdGV4dCwgbm90IGEgdGFnLjwvbGk+CisgICAgPGxpPjk3LCA5OSwgMTAyIC0g
d2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGluZyBkZXRlY3Rpb24uPC9saT4KKyAg
PC91bD4KKyAgPHA+U3RhdHVzOiA8c3BhbiBpZD0ic3RhdHVzIj5UZXN0cyBkaWQgbm90IHJ1bi48
L3NwYW4+PC9wPgorICA8cD5TZXJpb3VzIGZhaWx1cmVzOjwvcD4KKyAgPG9sIGlkPSJmYWlsdXJl
cyI+CisgIDwvb2w+CisgIDxwPihUZXN0cyBhcmUgY29uc2lkZXJlZCB0byBwYXNzIGV2ZW4gaWYg
dGhleSB0cmVhdCBXaW4xMjU0IGFuZCBJU08tODg1OS00IGFzIHNlcGFyYXRlLik8L3A+CisgIDxw
PjxpZnJhbWUgaWQ9InRlc3QiPjwvaWZyYW1lPjwvcD4KKyAgPHNjcmlwdD4KKyAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgfQorCisgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcp
OworICAgdmFyIGN1cnJlbnQgPSAyMDsKKyAgIHZhciBtYXggPSAyOTsKKyAgIGZ1bmN0aW9uIGRv
dGVzdCgpIHsKKyAgICAgdmFyIHMgPSBjdXJyZW50ICsgJyc7CisgICAgIHdoaWxlIChzLmxlbmd0
aCA8IDMpIHMgPSAnMCcgKyBzOworICAgICBmcmFtZS5zcmMgPSAncmVzb3VyY2VzLycgKyBzICsg
Jy5odG1sJzsKKyAgICAgd2luZG93LnJlY2VpdmVkUmVzdWx0cyA9IGZ1bmN0aW9uICgpIHsKKyAg
ICAgICB2YXIgd2FudCA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2V4cGVjdGVkJykuZmlyc3RDaGlsZC5kYXRhOworICAgICAgIHZhciBoYXZlID0gZnJhbWUu
Y29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZW5jb2RpbmcnKS5maXJzdENo
aWxkLmRhdGE7CisgICAgICAgaWYgKGhhdmUgPT0gJ0lTTy04ODU5LTknKQorICAgICAgICAgaGF2
ZSA9ICdXaW5kb3dzLTEyNTQnOworICAgICAgIGlmICh3YW50ICE9IGhhdmUpIHsKKyAgICAgICAg
IHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CisgICAgICAgICB2YXIgYSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKKyAgICAgICAgIGEuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoJ3Rlc3QgJyArIHMpKTsKKyAgICAgICAgIGEuaHJlZiA9IHMg
KyAnLmh0bWwnOworICAgICAgICAgbGkuYXBwZW5kQ2hpbGQoYSk7CisgICAgICAgICBsaS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnOiBleHBlY3RlZCAnICsgd2FudCArICc7
IHVzZWQgJyArIGhhdmUpKTsKKyAgICAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdwcmUnKTsKKyAgICAgICAgIHByZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZShmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdw
cmUnKVswXS5maXJzdENoaWxkLmRhdGEpKTsKKyAgICAgICAgIGxpLmFwcGVuZENoaWxkKHByZSk7
CisgICAgICAgICBsaS52YWx1ZSA9IGN1cnJlbnQ7CisgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZmFpbHVyZXMnKS5hcHBlbmRDaGlsZChsaSk7CisgICAgICAgfQorICAgICAgIGN1
cnJlbnQgKz0gMTsKKyAgICAgICBpZiAoY3VycmVudCA8PSBtYXgpCisgICAgICAgICBkb3Rlc3Qo
KTsKKyAgICAgICBlbHNlIHsKKyAgICAgICAgIGZyYW1lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
ZnJhbWUpOworICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXR1cycpLmlubmVy
VGV4dCA9ICJUZXN0cyByYW4uIjsKKyAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgIH0KKyAgICAgfTsKKyAgIH0KKyAgIGZ1bmN0aW9uIHJ1bnRlc3RzKCkgeworICAgICBk
b3Rlc3QoKTsKKyAgIH0KKyAgIGZ1bmN0aW9uIGFsZXJ0KCkgeyB9CisgIDwvc2NyaXB0PgorIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFy
c2VyLXRlc3RzLTMwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFy
c2VyLXRlc3RzLTMwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zNGE0MWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9wYXJzZXItdGVzdHMtMzAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVz
dCBzdWl0ZSB3YXMgY29udmVydGVkIGZyb20gaHR0cDovL3d3dy5oaXhpZS5jaC90ZXN0cy9hZGhv
Yy9odG1sL3BhcnNpbmcvZW5jb2RpbmcvYWxsLmh0bWwKKworVGhlIHN1aXRlIGhhcyBiZWVuIGJy
b2tlbiB1cCB0byBydW4gdGhlIHRlc3RzIGluIHNtYWxsZXIgYmF0Y2hlcy4KKworRXhwZWN0ZWQg
ZmFpbHVyZXM6Cis1NiwgNTcsIDU4LCA1OSAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcg
ZW5jb2RpbmcgZGV0ZWN0aW9uIHBoYXNlIGFuZCBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIGEg
c2NyaXB0IGFzIHRleHQsIG5vdCBhIHRhZy4KKzYwIC0gcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lk
ZSBzdHlsZSBhcyB0ZXh0LCBub3QgYSB0YWcuCis5NywgOTksIDEwMiAtIHdlIGRvIG5vdCBydW4g
c2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uLgorU3RhdHVzOiBUZXN0cyByYW4uCisK
K1NlcmlvdXMgZmFpbHVyZXM6CisKKyhUZXN0cyBhcmUgY29uc2lkZXJlZCB0byBwYXNzIGV2ZW4g
aWYgdGhleSB0cmVhdCBXaW4xMjU0IGFuZCBJU08tODg1OS00IGFzIHNlcGFyYXRlLikKKworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0zMC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMzAuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDU3MTIzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMzAuaHRtbApAQCAtMCwwICsx
LDY4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorIDxoZWFkPgorICA8dGl0bGU+SGFybmVz
czwvdGl0bGU+CisgPC9oZWFkPgorIDxib2R5IG9ubG9hZD0icnVudGVzdHMoKSI+CisgIDxwPlRo
aXMgdGVzdCBzdWl0ZSB3YXMgY29udmVydGVkIGZyb20gaHR0cDovL3d3dy5oaXhpZS5jaC90ZXN0
cy9hZGhvYy9odG1sL3BhcnNpbmcvZW5jb2RpbmcvYWxsLmh0bWw8L3A+CisgIDxwPlRoZSBzdWl0
ZSBoYXMgYmVlbiBicm9rZW4gdXAgdG8gcnVuIHRoZSB0ZXN0cyBpbiBzbWFsbGVyIGJhdGNoZXMu
PC9wPgorICA8dWw+RXhwZWN0ZWQgZmFpbHVyZXM6CisgICAgPGxpPjU2LCA1NywgNTgsIDU5IC0g
d2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGluZyBkZXRlY3Rpb24gcGhhc2UgYW5k
IHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3JpcHQgYXMgdGV4dCwgbm90IGEgdGFnLjwv
bGk+CisgICAgPGxpPjYwIC0gcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBzdHlsZSBhcyB0ZXh0
LCBub3QgYSB0YWcuPC9saT4KKyAgICA8bGk+OTcsIDk5LCAxMDIgLSB3ZSBkbyBub3QgcnVuIHNj
cmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbi48L2xpPgorICA8L3VsPgorICA8cD5TdGF0
dXM6IDxzcGFuIGlkPSJzdGF0dXMiPlRlc3RzIGRpZCBub3QgcnVuLjwvc3Bhbj48L3A+CisgIDxw
PlNlcmlvdXMgZmFpbHVyZXM6PC9wPgorICA8b2wgaWQ9ImZhaWx1cmVzIj4KKyAgPC9vbD4KKyAg
PHA+KFRlc3RzIGFyZSBjb25zaWRlcmVkIHRvIHBhc3MgZXZlbiBpZiB0aGV5IHRyZWF0IFdpbjEy
NTQgYW5kIElTTy04ODU5LTQgYXMgc2VwYXJhdGUuKTwvcD4KKyAgPHA+PGlmcmFtZSBpZD0idGVz
dCI+PC9pZnJhbWU+PC9wPgorICA8c2NyaXB0PgorICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICB9CisKKyAgIHZh
ciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisgICB2YXIgY3VycmVu
dCA9IDMwOworICAgdmFyIG1heCA9IDM5OworICAgZnVuY3Rpb24gZG90ZXN0KCkgeworICAgICB2
YXIgcyA9IGN1cnJlbnQgKyAnJzsKKyAgICAgd2hpbGUgKHMubGVuZ3RoIDwgMykgcyA9ICcwJyAr
IHM7CisgICAgIGZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvJyArIHMgKyAnLmh0bWwnOworICAgICB3
aW5kb3cucmVjZWl2ZWRSZXN1bHRzID0gZnVuY3Rpb24gKCkgeworICAgICAgIHZhciB3YW50ID0g
ZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0ZWQnKS5m
aXJzdENoaWxkLmRhdGE7CisgICAgICAgdmFyIGhhdmUgPSBmcmFtZS5jb250ZW50V2luZG93LmRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdlbmNvZGluZycpLmZpcnN0Q2hpbGQuZGF0YTsKKyAgICAg
ICBpZiAoaGF2ZSA9PSAnSVNPLTg4NTktOScpCisgICAgICAgICBoYXZlID0gJ1dpbmRvd3MtMTI1
NCc7CisgICAgICAgaWYgKHdhbnQgIT0gaGF2ZSkgeworICAgICAgICAgdmFyIGxpID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnbGknKTsKKyAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnYScpOworICAgICAgICAgYS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgndGVzdCAnICsgcykpOworICAgICAgICAgYS5ocmVmID0gcyArICcuaHRtbCc7CisgICAg
ICAgICBsaS5hcHBlbmRDaGlsZChhKTsKKyAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCc6IGV4cGVjdGVkICcgKyB3YW50ICsgJzsgdXNlZCAnICsgaGF2ZSkp
OworICAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ByZScpOworICAg
ICAgICAgcHJlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGZyYW1lLmNvbnRl
bnRXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ByZScpWzBdLmZpcnN0Q2hp
bGQuZGF0YSkpOworICAgICAgICAgbGkuYXBwZW5kQ2hpbGQocHJlKTsKKyAgICAgICAgIGxpLnZh
bHVlID0gY3VycmVudDsKKyAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYWlsdXJl
cycpLmFwcGVuZENoaWxkKGxpKTsKKyAgICAgICB9CisgICAgICAgY3VycmVudCArPSAxOworICAg
ICAgIGlmIChjdXJyZW50IDw9IG1heCkKKyAgICAgICAgIGRvdGVzdCgpOworICAgICAgIGVsc2Ug
eworICAgICAgICAgZnJhbWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmcmFtZSk7CisgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHVzJykuaW5uZXJUZXh0ID0gIlRlc3RzIHJh
bi4iOworICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgfQorICAgICB9
OworICAgfQorICAgZnVuY3Rpb24gcnVudGVzdHMoKSB7CisgICAgIGRvdGVzdCgpOworICAgfQor
ICAgZnVuY3Rpb24gYWxlcnQoKSB7IH0KKyAgPC9zY3JpcHQ+CisgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtNDAtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtNDAtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0YTQxZTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy00
MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IHN1aXRlIHdhcyBjb252
ZXJ0ZWQgZnJvbSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9jL2h0bWwvcGFyc2luZy9l
bmNvZGluZy9hbGwuaHRtbAorCitUaGUgc3VpdGUgaGFzIGJlZW4gYnJva2VuIHVwIHRvIHJ1biB0
aGUgdGVzdHMgaW4gc21hbGxlciBiYXRjaGVzLgorCitFeHBlY3RlZCBmYWlsdXJlczoKKzU2LCA1
NywgNTgsIDU5IC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGluZyBkZXRlY3Rp
b24gcGhhc2UgYW5kIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3JpcHQgYXMgdGV4dCwg
bm90IGEgdGFnLgorNjAgLSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0eWxlIGFzIHRleHQs
IG5vdCBhIHRhZy4KKzk3LCA5OSwgMTAyIC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBl
bmNvZGluZyBkZXRlY3Rpb24uCitTdGF0dXM6IFRlc3RzIHJhbi4KKworU2VyaW91cyBmYWlsdXJl
czoKKworKFRlc3RzIGFyZSBjb25zaWRlcmVkIHRvIHBhc3MgZXZlbiBpZiB0aGV5IHRyZWF0IFdp
bjEyNTQgYW5kIElTTy04ODU5LTQgYXMgc2VwYXJhdGUuKQorCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTQwLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy00MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjNjMGY5NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2VuY29kaW5nL3BhcnNlci10ZXN0cy00MC5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQ
RSBIVE1MPgorPGh0bWw+CisgPGhlYWQ+CisgIDx0aXRsZT5IYXJuZXNzPC90aXRsZT4KKyA8L2hl
YWQ+CisgPGJvZHkgb25sb2FkPSJydW50ZXN0cygpIj4KKyAgPHA+VGhpcyB0ZXN0IHN1aXRlIHdh
cyBjb252ZXJ0ZWQgZnJvbSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9jL2h0bWwvcGFy
c2luZy9lbmNvZGluZy9hbGwuaHRtbDwvcD4KKyAgPHA+VGhlIHN1aXRlIGhhcyBiZWVuIGJyb2tl
biB1cCB0byBydW4gdGhlIHRlc3RzIGluIHNtYWxsZXIgYmF0Y2hlcy48L3A+CisgIDx1bD5FeHBl
Y3RlZCBmYWlsdXJlczoKKyAgICA8bGk+NTYsIDU3LCA1OCwgNTkgLSB3ZSBkbyBub3QgcnVuIHNj
cmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbiBwaGFzZSBhbmQgcGFyc2VyIHRyZWF0cyBt
ZXRhIGluc2lkZSBhIHNjcmlwdCBhcyB0ZXh0LCBub3QgYSB0YWcuPC9saT4KKyAgICA8bGk+NjAg
LSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0eWxlIGFzIHRleHQsIG5vdCBhIHRhZy48L2xp
PgorICAgIDxsaT45NywgOTksIDEwMiAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5j
b2RpbmcgZGV0ZWN0aW9uLjwvbGk+CisgIDwvdWw+CisgIDxwPlN0YXR1czogPHNwYW4gaWQ9InN0
YXR1cyI+VGVzdHMgZGlkIG5vdCBydW4uPC9zcGFuPjwvcD4KKyAgPHA+U2VyaW91cyBmYWlsdXJl
czo8L3A+CisgIDxvbCBpZD0iZmFpbHVyZXMiPgorICA8L29sPgorICA8cD4oVGVzdHMgYXJlIGNv
bnNpZGVyZWQgdG8gcGFzcyBldmVuIGlmIHRoZXkgdHJlYXQgV2luMTI1NCBhbmQgSVNPLTg4NTkt
NCBhcyBzZXBhcmF0ZS4pPC9wPgorICA8cD48aWZyYW1lIGlkPSJ0ZXN0Ij48L2lmcmFtZT48L3A+
CisgIDxzY3JpcHQ+CisgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgIH0KKworICAgdmFyIGZyYW1lID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKyAgIHZhciBjdXJyZW50ID0gNDA7CisgICB2YXIg
bWF4ID0gNDk7CisgICBmdW5jdGlvbiBkb3Rlc3QoKSB7CisgICAgIHZhciBzID0gY3VycmVudCAr
ICcnOworICAgICB3aGlsZSAocy5sZW5ndGggPCAzKSBzID0gJzAnICsgczsKKyAgICAgZnJhbWUu
c3JjID0gJ3Jlc291cmNlcy8nICsgcyArICcuaHRtbCc7CisgICAgIHdpbmRvdy5yZWNlaXZlZFJl
c3VsdHMgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgdmFyIHdhbnQgPSBmcmFtZS5jb250ZW50V2lu
ZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3RlZCcpLmZpcnN0Q2hpbGQuZGF0YTsK
KyAgICAgICB2YXIgaGF2ZSA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2VuY29kaW5nJykuZmlyc3RDaGlsZC5kYXRhOworICAgICAgIGlmIChoYXZlID09ICdJ
U08tODg1OS05JykKKyAgICAgICAgIGhhdmUgPSAnV2luZG93cy0xMjU0JzsKKyAgICAgICBpZiAo
d2FudCAhPSBoYXZlKSB7CisgICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdsaScpOworICAgICAgICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7Cisg
ICAgICAgICBhLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCd0ZXN0ICcgKyBz
KSk7CisgICAgICAgICBhLmhyZWYgPSBzICsgJy5odG1sJzsKKyAgICAgICAgIGxpLmFwcGVuZENo
aWxkKGEpOworICAgICAgICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
JzogZXhwZWN0ZWQgJyArIHdhbnQgKyAnOyB1c2VkICcgKyBoYXZlKSk7CisgICAgICAgICB2YXIg
cHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJlJyk7CisgICAgICAgICBwcmUuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgncHJlJylbMF0uZmlyc3RDaGlsZC5kYXRhKSk7CisgICAg
ICAgICBsaS5hcHBlbmRDaGlsZChwcmUpOworICAgICAgICAgbGkudmFsdWUgPSBjdXJyZW50Owor
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhaWx1cmVzJykuYXBwZW5kQ2hpbGQo
bGkpOworICAgICAgIH0KKyAgICAgICBjdXJyZW50ICs9IDE7CisgICAgICAgaWYgKGN1cnJlbnQg
PD0gbWF4KQorICAgICAgICAgZG90ZXN0KCk7CisgICAgICAgZWxzZSB7CisgICAgICAgICBmcmFt
ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZyYW1lKTsKKyAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdzdGF0dXMnKS5pbm5lclRleHQgPSAiVGVzdHMgcmFuLiI7CisgICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICB9CisgICAgIH07CisgICB9CisgICBmdW5j
dGlvbiBydW50ZXN0cygpIHsKKyAgICAgZG90ZXN0KCk7CisgICB9CisgICBmdW5jdGlvbiBhbGVy
dCgpIHsgfQorICA8L3NjcmlwdD4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy01MC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy01MC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNlMDY0NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTUwLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDI3IEBACitUaGlzIHRlc3Qgc3VpdGUgd2FzIGNvbnZlcnRlZCBmcm9tIGh0dHA6
Ly93d3cuaGl4aWUuY2gvdGVzdHMvYWRob2MvaHRtbC9wYXJzaW5nL2VuY29kaW5nL2FsbC5odG1s
CisKK1RoZSBzdWl0ZSBoYXMgYmVlbiBicm9rZW4gdXAgdG8gcnVuIHRoZSB0ZXN0cyBpbiBzbWFs
bGVyIGJhdGNoZXMuCisKK0V4cGVjdGVkIGZhaWx1cmVzOgorNTYsIDU3LCA1OCwgNTkgLSB3ZSBk
byBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbiBwaGFzZSBhbmQgcGFy
c2VyIHRyZWF0cyBtZXRhIGluc2lkZSBhIHNjcmlwdCBhcyB0ZXh0LCBub3QgYSB0YWcuCis2MCAt
IHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgc3R5bGUgYXMgdGV4dCwgbm90IGEgdGFnLgorOTcs
IDk5LCAxMDIgLSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlv
bi4KK1N0YXR1czogVGVzdHMgcmFuLgorCitTZXJpb3VzIGZhaWx1cmVzOgorCit0ZXN0IDA1Njog
ZXhwZWN0ZWQgV2luZG93cy0xMjU0OyB1c2VkIFdpbmRvd3MtMTI1MgorPCFET0NUWVBFIEhUTUw+
Cis8c2NyaXB0PmRvY3VtZW50LndyaXRlKCc8bWV0YSBjaGFyc2V0PSJJU08tODg1OS0nICsgJzki
PicpPC9zY3JpcHQ+Cit0ZXN0IDA1NzogZXhwZWN0ZWQgV2luZG93cy0xMjU0OyB1c2VkIFdpbmRv
d3MtMTI1MgorPCFET0NUWVBFIEhUTUw+Cis8c2NyaXB0PnZhciBzID0gJzkiPic7IGRvY3VtZW50
LndyaXRlKCc8bWV0YSBjaGFyc2V0PSJJU08tODg1OS0nICsgcyk8L3NjcmlwdD4KK3Rlc3QgMDU4
OiBleHBlY3RlZCBXaW5kb3dzLTEyNTQ7IHVzZWQgV2luZG93cy0xMjUyCis8IURPQ1RZUEUgSFRN
TD4KKzxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUoJzxtZXRhIGNoYXJzZXQ9IklTTy04ODU5LTkiPicp
PC9zY3JpcHQ+Cit0ZXN0IDA1OTogZXhwZWN0ZWQgV2luZG93cy0xMjU0OyB1c2VkIFdpbmRvd3Mt
MTI1MgorPCFET0NUWVBFIEhUTUw+Cis8c2NyaXB0IHR5cGU9InRleHQvcGxhaW4iPjxtZXRhIGNo
YXJzZXQ9IklTTy04ODU5LTkiPjwvc2NyaXB0PgorKFRlc3RzIGFyZSBjb25zaWRlcmVkIHRvIHBh
c3MgZXZlbiBpZiB0aGV5IHRyZWF0IFdpbjEyNTQgYW5kIElTTy04ODU5LTQgYXMgc2VwYXJhdGUu
KQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3Rz
LTUwLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy01MC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhYzZkZDAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy01MC5odG1sCkBA
IC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgPGhlYWQ+CisgIDx0aXRs
ZT5IYXJuZXNzPC90aXRsZT4KKyA8L2hlYWQ+CisgPGJvZHkgb25sb2FkPSJydW50ZXN0cygpIj4K
KyAgPHA+VGhpcyB0ZXN0IHN1aXRlIHdhcyBjb252ZXJ0ZWQgZnJvbSBodHRwOi8vd3d3LmhpeGll
LmNoL3Rlc3RzL2FkaG9jL2h0bWwvcGFyc2luZy9lbmNvZGluZy9hbGwuaHRtbDwvcD4KKyAgPHA+
VGhlIHN1aXRlIGhhcyBiZWVuIGJyb2tlbiB1cCB0byBydW4gdGhlIHRlc3RzIGluIHNtYWxsZXIg
YmF0Y2hlcy48L3A+CisgIDx1bD5FeHBlY3RlZCBmYWlsdXJlczoKKyAgICA8bGk+NTYsIDU3LCA1
OCwgNTkgLSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbiBw
aGFzZSBhbmQgcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBhIHNjcmlwdCBhcyB0ZXh0LCBub3Qg
YSB0YWcuPC9saT4KKyAgICA8bGk+NjAgLSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0eWxl
IGFzIHRleHQsIG5vdCBhIHRhZy48L2xpPgorICAgIDxsaT45NywgOTksIDEwMiAtIHdlIGRvIG5v
dCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uLjwvbGk+CisgIDwvdWw+Cisg
IDxwPlN0YXR1czogPHNwYW4gaWQ9InN0YXR1cyI+VGVzdHMgZGlkIG5vdCBydW4uPC9zcGFuPjwv
cD4KKyAgPHA+U2VyaW91cyBmYWlsdXJlczo8L3A+CisgIDxvbCBpZD0iZmFpbHVyZXMiPgorICA8
L29sPgorICA8cD4oVGVzdHMgYXJlIGNvbnNpZGVyZWQgdG8gcGFzcyBldmVuIGlmIHRoZXkgdHJl
YXQgV2luMTI1NCBhbmQgSVNPLTg4NTktNCBhcyBzZXBhcmF0ZS4pPC9wPgorICA8cD48aWZyYW1l
IGlkPSJ0ZXN0Ij48L2lmcmFtZT48L3A+CisgIDxzY3JpcHQ+CisgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgIH0K
KworICAgdmFyIGZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKyAgIHZh
ciBjdXJyZW50ID0gNTA7CisgICB2YXIgbWF4ID0gNTk7CisgICBmdW5jdGlvbiBkb3Rlc3QoKSB7
CisgICAgIHZhciBzID0gY3VycmVudCArICcnOworICAgICB3aGlsZSAocy5sZW5ndGggPCAzKSBz
ID0gJzAnICsgczsKKyAgICAgZnJhbWUuc3JjID0gJ3Jlc291cmNlcy8nICsgcyArICcuaHRtbCc7
CisgICAgIHdpbmRvdy5yZWNlaXZlZFJlc3VsdHMgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgdmFy
IHdhbnQgPSBmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBl
Y3RlZCcpLmZpcnN0Q2hpbGQuZGF0YTsKKyAgICAgICB2YXIgaGF2ZSA9IGZyYW1lLmNvbnRlbnRX
aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VuY29kaW5nJykuZmlyc3RDaGlsZC5kYXRh
OworICAgICAgIGlmIChoYXZlID09ICdJU08tODg1OS05JykKKyAgICAgICAgIGhhdmUgPSAnV2lu
ZG93cy0xMjU0JzsKKyAgICAgICBpZiAod2FudCAhPSBoYXZlKSB7CisgICAgICAgICB2YXIgbGkg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOworICAgICAgICAgdmFyIGEgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdhJyk7CisgICAgICAgICBhLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCd0ZXN0ICcgKyBzKSk7CisgICAgICAgICBhLmhyZWYgPSBzICsgJy5odG1s
JzsKKyAgICAgICAgIGxpLmFwcGVuZENoaWxkKGEpOworICAgICAgICAgbGkuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJzogZXhwZWN0ZWQgJyArIHdhbnQgKyAnOyB1c2VkICcg
KyBoYXZlKSk7CisgICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJl
Jyk7CisgICAgICAgICBwcmUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZnJh
bWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgncHJlJylbMF0u
Zmlyc3RDaGlsZC5kYXRhKSk7CisgICAgICAgICBsaS5hcHBlbmRDaGlsZChwcmUpOworICAgICAg
ICAgbGkudmFsdWUgPSBjdXJyZW50OworICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2ZhaWx1cmVzJykuYXBwZW5kQ2hpbGQobGkpOworICAgICAgIH0KKyAgICAgICBjdXJyZW50ICs9
IDE7CisgICAgICAgaWYgKGN1cnJlbnQgPD0gbWF4KQorICAgICAgICAgZG90ZXN0KCk7CisgICAg
ICAgZWxzZSB7CisgICAgICAgICBmcmFtZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZyYW1lKTsK
KyAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0dXMnKS5pbm5lclRleHQgPSAi
VGVzdHMgcmFuLiI7CisgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICB9
CisgICAgIH07CisgICB9CisgICBmdW5jdGlvbiBydW50ZXN0cygpIHsKKyAgICAgZG90ZXN0KCk7
CisgICB9CisgICBmdW5jdGlvbiBhbGVydCgpIHsgfQorICA8L3NjcmlwdD4KKyA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0
cy02MC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0
cy02MC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRi
OTQ1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2Vy
LXRlc3RzLTYwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3Qgc3VpdGUg
d2FzIGNvbnZlcnRlZCBmcm9tIGh0dHA6Ly93d3cuaGl4aWUuY2gvdGVzdHMvYWRob2MvaHRtbC9w
YXJzaW5nL2VuY29kaW5nL2FsbC5odG1sCisKK1RoZSBzdWl0ZSBoYXMgYmVlbiBicm9rZW4gdXAg
dG8gcnVuIHRoZSB0ZXN0cyBpbiBzbWFsbGVyIGJhdGNoZXMuCisKK0V4cGVjdGVkIGZhaWx1cmVz
OgorNTYsIDU3LCA1OCwgNTkgLSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5n
IGRldGVjdGlvbiBwaGFzZSBhbmQgcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBhIHNjcmlwdCBh
cyB0ZXh0LCBub3QgYSB0YWcuCis2MCAtIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgc3R5bGUg
YXMgdGV4dCwgbm90IGEgdGFnLgorOTcsIDk5LCAxMDIgLSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMg
ZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbi4KK1N0YXR1czogVGVzdHMgcmFuLgorCitTZXJpb3Vz
IGZhaWx1cmVzOgorCit0ZXN0IDA2MDogZXhwZWN0ZWQgV2luZG93cy0xMjU0OyB1c2VkIFdpbmRv
d3MtMTI1MgorPCFET0NUWVBFIEhUTUw+Cis8c3R5bGUgdHlwZT0idGV4dC9wbGFpbiI+PG1ldGEg
Y2hhcnNldD0iSVNPLTg4NTktOSI+PC9zdHlsZT4KKyhUZXN0cyBhcmUgY29uc2lkZXJlZCB0byBw
YXNzIGV2ZW4gaWYgdGhleSB0cmVhdCBXaW4xMjU0IGFuZCBJU08tODg1OS00IGFzIHNlcGFyYXRl
LikKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0
cy02MC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtNjAuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWM0MmY5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtNjAuaHRtbApA
QCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorIDxoZWFkPgorICA8dGl0
bGU+SGFybmVzczwvdGl0bGU+CisgPC9oZWFkPgorIDxib2R5IG9ubG9hZD0icnVudGVzdHMoKSI+
CisgIDxwPlRoaXMgdGVzdCBzdWl0ZSB3YXMgY29udmVydGVkIGZyb20gaHR0cDovL3d3dy5oaXhp
ZS5jaC90ZXN0cy9hZGhvYy9odG1sL3BhcnNpbmcvZW5jb2RpbmcvYWxsLmh0bWw8L3A+CisgIDxw
PlRoZSBzdWl0ZSBoYXMgYmVlbiBicm9rZW4gdXAgdG8gcnVuIHRoZSB0ZXN0cyBpbiBzbWFsbGVy
IGJhdGNoZXMuPC9wPgorICA8dWw+RXhwZWN0ZWQgZmFpbHVyZXM6CisgICAgPGxpPjU2LCA1Nywg
NTgsIDU5IC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGluZyBkZXRlY3Rpb24g
cGhhc2UgYW5kIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3JpcHQgYXMgdGV4dCwgbm90
IGEgdGFnLjwvbGk+CisgICAgPGxpPjYwIC0gcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBzdHls
ZSBhcyB0ZXh0LCBub3QgYSB0YWcuPC9saT4KKyAgICA8bGk+OTcsIDk5LCAxMDIgLSB3ZSBkbyBu
b3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbi48L2xpPgorICA8L3VsPgor
ICA8cD5TdGF0dXM6IDxzcGFuIGlkPSJzdGF0dXMiPlRlc3RzIGRpZCBub3QgcnVuLjwvc3Bhbj48
L3A+CisgIDxwPlNlcmlvdXMgZmFpbHVyZXM6PC9wPgorICA8b2wgaWQ9ImZhaWx1cmVzIj4KKyAg
PC9vbD4KKyAgPHA+KFRlc3RzIGFyZSBjb25zaWRlcmVkIHRvIHBhc3MgZXZlbiBpZiB0aGV5IHRy
ZWF0IFdpbjEyNTQgYW5kIElTTy04ODU5LTQgYXMgc2VwYXJhdGUuKTwvcD4KKyAgPHA+PGlmcmFt
ZSBpZD0idGVzdCI+PC9pZnJhbWU+PC9wPgorICA8c2NyaXB0PgorICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICB9
CisKKyAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisgICB2
YXIgY3VycmVudCA9IDYwOworICAgdmFyIG1heCA9IDY5OworICAgZnVuY3Rpb24gZG90ZXN0KCkg
eworICAgICB2YXIgcyA9IGN1cnJlbnQgKyAnJzsKKyAgICAgd2hpbGUgKHMubGVuZ3RoIDwgMykg
cyA9ICcwJyArIHM7CisgICAgIGZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvJyArIHMgKyAnLmh0bWwn
OworICAgICB3aW5kb3cucmVjZWl2ZWRSZXN1bHRzID0gZnVuY3Rpb24gKCkgeworICAgICAgIHZh
ciB3YW50ID0gZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhw
ZWN0ZWQnKS5maXJzdENoaWxkLmRhdGE7CisgICAgICAgdmFyIGhhdmUgPSBmcmFtZS5jb250ZW50
V2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlbmNvZGluZycpLmZpcnN0Q2hpbGQuZGF0
YTsKKyAgICAgICBpZiAoaGF2ZSA9PSAnSVNPLTg4NTktOScpCisgICAgICAgICBoYXZlID0gJ1dp
bmRvd3MtMTI1NCc7CisgICAgICAgaWYgKHdhbnQgIT0gaGF2ZSkgeworICAgICAgICAgdmFyIGxp
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKKyAgICAgICAgIHZhciBhID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnYScpOworICAgICAgICAgYS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgndGVzdCAnICsgcykpOworICAgICAgICAgYS5ocmVmID0gcyArICcuaHRt
bCc7CisgICAgICAgICBsaS5hcHBlbmRDaGlsZChhKTsKKyAgICAgICAgIGxpLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCc6IGV4cGVjdGVkICcgKyB3YW50ICsgJzsgdXNlZCAn
ICsgaGF2ZSkpOworICAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3By
ZScpOworICAgICAgICAgcHJlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGZy
YW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ByZScpWzBd
LmZpcnN0Q2hpbGQuZGF0YSkpOworICAgICAgICAgbGkuYXBwZW5kQ2hpbGQocHJlKTsKKyAgICAg
ICAgIGxpLnZhbHVlID0gY3VycmVudDsKKyAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdmYWlsdXJlcycpLmFwcGVuZENoaWxkKGxpKTsKKyAgICAgICB9CisgICAgICAgY3VycmVudCAr
PSAxOworICAgICAgIGlmIChjdXJyZW50IDw9IG1heCkKKyAgICAgICAgIGRvdGVzdCgpOworICAg
ICAgIGVsc2UgeworICAgICAgICAgZnJhbWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmcmFtZSk7
CisgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHVzJykuaW5uZXJUZXh0ID0g
IlRlc3RzIHJhbi4iOworICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAg
fQorICAgICB9OworICAgfQorICAgZnVuY3Rpb24gcnVudGVzdHMoKSB7CisgICAgIGRvdGVzdCgp
OworICAgfQorICAgZnVuY3Rpb24gYWxlcnQoKSB7IH0KKyAgPC9zY3JpcHQ+CisgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVz
dHMtNzAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVz
dHMtNzAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0
YTQxZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNl
ci10ZXN0cy03MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IHN1aXRl
IHdhcyBjb252ZXJ0ZWQgZnJvbSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9jL2h0bWwv
cGFyc2luZy9lbmNvZGluZy9hbGwuaHRtbAorCitUaGUgc3VpdGUgaGFzIGJlZW4gYnJva2VuIHVw
IHRvIHJ1biB0aGUgdGVzdHMgaW4gc21hbGxlciBiYXRjaGVzLgorCitFeHBlY3RlZCBmYWlsdXJl
czoKKzU2LCA1NywgNTgsIDU5IC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGlu
ZyBkZXRlY3Rpb24gcGhhc2UgYW5kIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3JpcHQg
YXMgdGV4dCwgbm90IGEgdGFnLgorNjAgLSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0eWxl
IGFzIHRleHQsIG5vdCBhIHRhZy4KKzk3LCA5OSwgMTAyIC0gd2UgZG8gbm90IHJ1biBzY3JpcHRz
IGR1cmluZyBlbmNvZGluZyBkZXRlY3Rpb24uCitTdGF0dXM6IFRlc3RzIHJhbi4KKworU2VyaW91
cyBmYWlsdXJlczoKKworKFRlc3RzIGFyZSBjb25zaWRlcmVkIHRvIHBhc3MgZXZlbiBpZiB0aGV5
IHRyZWF0IFdpbjEyNTQgYW5kIElTTy04ODU5LTQgYXMgc2VwYXJhdGUuKQorCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTcwLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy03MC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4MjQ2MjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy03MC5odG1sCkBAIC0wLDAgKzEsNjggQEAK
KzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgPGhlYWQ+CisgIDx0aXRsZT5IYXJuZXNzPC90aXRs
ZT4KKyA8L2hlYWQ+CisgPGJvZHkgb25sb2FkPSJydW50ZXN0cygpIj4KKyAgPHA+VGhpcyB0ZXN0
IHN1aXRlIHdhcyBjb252ZXJ0ZWQgZnJvbSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9j
L2h0bWwvcGFyc2luZy9lbmNvZGluZy9hbGwuaHRtbDwvcD4KKyAgPHA+VGhlIHN1aXRlIGhhcyBi
ZWVuIGJyb2tlbiB1cCB0byBydW4gdGhlIHRlc3RzIGluIHNtYWxsZXIgYmF0Y2hlcy48L3A+Cisg
IDx1bD5FeHBlY3RlZCBmYWlsdXJlczoKKyAgICA8bGk+NTYsIDU3LCA1OCwgNTkgLSB3ZSBkbyBu
b3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbiBwaGFzZSBhbmQgcGFyc2Vy
IHRyZWF0cyBtZXRhIGluc2lkZSBhIHNjcmlwdCBhcyB0ZXh0LCBub3QgYSB0YWcuPC9saT4KKyAg
ICA8bGk+NjAgLSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0eWxlIGFzIHRleHQsIG5vdCBh
IHRhZy48L2xpPgorICAgIDxsaT45NywgOTksIDEwMiAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBk
dXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uLjwvbGk+CisgIDwvdWw+CisgIDxwPlN0YXR1czogPHNw
YW4gaWQ9InN0YXR1cyI+VGVzdHMgZGlkIG5vdCBydW4uPC9zcGFuPjwvcD4KKyAgPHA+U2VyaW91
cyBmYWlsdXJlczo8L3A+CisgIDxvbCBpZD0iZmFpbHVyZXMiPgorICA8L29sPgorICA8cD4oVGVz
dHMgYXJlIGNvbnNpZGVyZWQgdG8gcGFzcyBldmVuIGlmIHRoZXkgdHJlYXQgV2luMTI1NCBhbmQg
SVNPLTg4NTktNCBhcyBzZXBhcmF0ZS4pPC9wPgorICA8cD48aWZyYW1lIGlkPSJ0ZXN0Ij48L2lm
cmFtZT48L3A+CisgIDxzY3JpcHQ+CisgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgIH0KKworICAgdmFyIGZyYW1l
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKyAgIHZhciBjdXJyZW50ID0gNzA7
CisgICB2YXIgbWF4ID0gNzk7CisgICBmdW5jdGlvbiBkb3Rlc3QoKSB7CisgICAgIHZhciBzID0g
Y3VycmVudCArICcnOworICAgICB3aGlsZSAocy5sZW5ndGggPCAzKSBzID0gJzAnICsgczsKKyAg
ICAgZnJhbWUuc3JjID0gJ3Jlc291cmNlcy8nICsgcyArICcuaHRtbCc7CisgICAgIHdpbmRvdy5y
ZWNlaXZlZFJlc3VsdHMgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgdmFyIHdhbnQgPSBmcmFtZS5j
b250ZW50V2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3RlZCcpLmZpcnN0Q2hp
bGQuZGF0YTsKKyAgICAgICB2YXIgaGF2ZSA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2VuY29kaW5nJykuZmlyc3RDaGlsZC5kYXRhOworICAgICAgIGlmICho
YXZlID09ICdJU08tODg1OS05JykKKyAgICAgICAgIGhhdmUgPSAnV2luZG93cy0xMjU0JzsKKyAg
ICAgICBpZiAod2FudCAhPSBoYXZlKSB7CisgICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdsaScpOworICAgICAgICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdhJyk7CisgICAgICAgICBhLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCd0
ZXN0ICcgKyBzKSk7CisgICAgICAgICBhLmhyZWYgPSBzICsgJy5odG1sJzsKKyAgICAgICAgIGxp
LmFwcGVuZENoaWxkKGEpOworICAgICAgICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoJzogZXhwZWN0ZWQgJyArIHdhbnQgKyAnOyB1c2VkICcgKyBoYXZlKSk7CisgICAg
ICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJlJyk7CisgICAgICAgICBw
cmUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZnJhbWUuY29udGVudFdpbmRv
dy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgncHJlJylbMF0uZmlyc3RDaGlsZC5kYXRh
KSk7CisgICAgICAgICBsaS5hcHBlbmRDaGlsZChwcmUpOworICAgICAgICAgbGkudmFsdWUgPSBj
dXJyZW50OworICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhaWx1cmVzJykuYXBw
ZW5kQ2hpbGQobGkpOworICAgICAgIH0KKyAgICAgICBjdXJyZW50ICs9IDE7CisgICAgICAgaWYg
KGN1cnJlbnQgPD0gbWF4KQorICAgICAgICAgZG90ZXN0KCk7CisgICAgICAgZWxzZSB7CisgICAg
ICAgICBmcmFtZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZyYW1lKTsKKyAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0dXMnKS5pbm5lclRleHQgPSAiVGVzdHMgcmFuLiI7Cisg
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICB9CisgICAgIH07CisgICB9
CisgICBmdW5jdGlvbiBydW50ZXN0cygpIHsKKyAgICAgZG90ZXN0KCk7CisgICB9CisgICBmdW5j
dGlvbiBhbGVydCgpIHsgfQorICA8L3NjcmlwdD4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy04MC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy04MC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRhNDFlNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTgwLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3Qgc3VpdGUgd2FzIGNvbnZlcnRlZCBm
cm9tIGh0dHA6Ly93d3cuaGl4aWUuY2gvdGVzdHMvYWRob2MvaHRtbC9wYXJzaW5nL2VuY29kaW5n
L2FsbC5odG1sCisKK1RoZSBzdWl0ZSBoYXMgYmVlbiBicm9rZW4gdXAgdG8gcnVuIHRoZSB0ZXN0
cyBpbiBzbWFsbGVyIGJhdGNoZXMuCisKK0V4cGVjdGVkIGZhaWx1cmVzOgorNTYsIDU3LCA1OCwg
NTkgLSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbiBwaGFz
ZSBhbmQgcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBhIHNjcmlwdCBhcyB0ZXh0LCBub3QgYSB0
YWcuCis2MCAtIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgc3R5bGUgYXMgdGV4dCwgbm90IGEg
dGFnLgorOTcsIDk5LCAxMDIgLSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5n
IGRldGVjdGlvbi4KK1N0YXR1czogVGVzdHMgcmFuLgorCitTZXJpb3VzIGZhaWx1cmVzOgorCiso
VGVzdHMgYXJlIGNvbnNpZGVyZWQgdG8gcGFzcyBldmVuIGlmIHRoZXkgdHJlYXQgV2luMTI1NCBh
bmQgSVNPLTg4NTktNCBhcyBzZXBhcmF0ZS4pCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtODAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvcGFyc2VyLXRlc3RzLTgwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYWFjZjBhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvcGFyc2VyLXRlc3RzLTgwLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIEhUTUw+
Cis8aHRtbD4KKyA8aGVhZD4KKyAgPHRpdGxlPkhhcm5lc3M8L3RpdGxlPgorIDwvaGVhZD4KKyA8
Ym9keSBvbmxvYWQ9InJ1bnRlc3RzKCkiPgorICA8cD5UaGlzIHRlc3Qgc3VpdGUgd2FzIGNvbnZl
cnRlZCBmcm9tIGh0dHA6Ly93d3cuaGl4aWUuY2gvdGVzdHMvYWRob2MvaHRtbC9wYXJzaW5nL2Vu
Y29kaW5nL2FsbC5odG1sPC9wPgorICA8cD5UaGUgc3VpdGUgaGFzIGJlZW4gYnJva2VuIHVwIHRv
IHJ1biB0aGUgdGVzdHMgaW4gc21hbGxlciBiYXRjaGVzLjwvcD4KKyAgPHVsPkV4cGVjdGVkIGZh
aWx1cmVzOgorICAgIDxsaT41NiwgNTcsIDU4LCA1OSAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBk
dXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uIHBoYXNlIGFuZCBwYXJzZXIgdHJlYXRzIG1ldGEgaW5z
aWRlIGEgc2NyaXB0IGFzIHRleHQsIG5vdCBhIHRhZy48L2xpPgorICAgIDxsaT42MCAtIHBhcnNl
ciB0cmVhdHMgbWV0YSBpbnNpZGUgc3R5bGUgYXMgdGV4dCwgbm90IGEgdGFnLjwvbGk+CisgICAg
PGxpPjk3LCA5OSwgMTAyIC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGluZyBk
ZXRlY3Rpb24uPC9saT4KKyAgPC91bD4KKyAgPHA+U3RhdHVzOiA8c3BhbiBpZD0ic3RhdHVzIj5U
ZXN0cyBkaWQgbm90IHJ1bi48L3NwYW4+PC9wPgorICA8cD5TZXJpb3VzIGZhaWx1cmVzOjwvcD4K
KyAgPG9sIGlkPSJmYWlsdXJlcyI+CisgIDwvb2w+CisgIDxwPihUZXN0cyBhcmUgY29uc2lkZXJl
ZCB0byBwYXNzIGV2ZW4gaWYgdGhleSB0cmVhdCBXaW4xMjU0IGFuZCBJU08tODg1OS00IGFzIHNl
cGFyYXRlLik8L3A+CisgIDxwPjxpZnJhbWUgaWQ9InRlc3QiPjwvaWZyYW1lPjwvcD4KKyAgPHNj
cmlwdD4KKyAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgfQorCisgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdCcpOworICAgdmFyIGN1cnJlbnQgPSA4MDsKKyAgIHZhciBtYXggPSA4
OTsKKyAgIGZ1bmN0aW9uIGRvdGVzdCgpIHsKKyAgICAgdmFyIHMgPSBjdXJyZW50ICsgJyc7Cisg
ICAgIHdoaWxlIChzLmxlbmd0aCA8IDMpIHMgPSAnMCcgKyBzOworICAgICBmcmFtZS5zcmMgPSAn
cmVzb3VyY2VzLycgKyBzICsgJy5odG1sJzsKKyAgICAgd2luZG93LnJlY2VpdmVkUmVzdWx0cyA9
IGZ1bmN0aW9uICgpIHsKKyAgICAgICB2YXIgd2FudCA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdGVkJykuZmlyc3RDaGlsZC5kYXRhOworICAgICAg
IHZhciBoYXZlID0gZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZW5jb2RpbmcnKS5maXJzdENoaWxkLmRhdGE7CisgICAgICAgaWYgKGhhdmUgPT0gJ0lTTy04ODU5
LTknKQorICAgICAgICAgaGF2ZSA9ICdXaW5kb3dzLTEyNTQnOworICAgICAgIGlmICh3YW50ICE9
IGhhdmUpIHsKKyAgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7
CisgICAgICAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKKyAgICAgICAg
IGEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ3Rlc3QgJyArIHMpKTsKKyAg
ICAgICAgIGEuaHJlZiA9IHMgKyAnLmh0bWwnOworICAgICAgICAgbGkuYXBwZW5kQ2hpbGQoYSk7
CisgICAgICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnOiBleHBl
Y3RlZCAnICsgd2FudCArICc7IHVzZWQgJyArIGhhdmUpKTsKKyAgICAgICAgIHZhciBwcmUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTsKKyAgICAgICAgIHByZS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCdwcmUnKVswXS5maXJzdENoaWxkLmRhdGEpKTsKKyAgICAgICAgIGxp
LmFwcGVuZENoaWxkKHByZSk7CisgICAgICAgICBsaS52YWx1ZSA9IGN1cnJlbnQ7CisgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFpbHVyZXMnKS5hcHBlbmRDaGlsZChsaSk7Cisg
ICAgICAgfQorICAgICAgIGN1cnJlbnQgKz0gMTsKKyAgICAgICBpZiAoY3VycmVudCA8PSBtYXgp
CisgICAgICAgICBkb3Rlc3QoKTsKKyAgICAgICBlbHNlIHsKKyAgICAgICAgIGZyYW1lLnBhcmVu
dE5vZGUucmVtb3ZlQ2hpbGQoZnJhbWUpOworICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3N0YXR1cycpLmlubmVyVGV4dCA9ICJUZXN0cyByYW4uIjsKKyAgICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworICAgICAgIH0KKyAgICAgfTsKKyAgIH0KKyAgIGZ1bmN0aW9uIHJ1
bnRlc3RzKCkgeworICAgICBkb3Rlc3QoKTsKKyAgIH0KKyAgIGZ1bmN0aW9uIGFsZXJ0KCkgeyB9
CisgIDwvc2NyaXB0PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTkwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTkwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjg4MmE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtOTAtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjIgQEAKK1RoaXMgdGVzdCBzdWl0ZSB3YXMgY29udmVydGVkIGZyb20gaHR0cDovL3d3dy5o
aXhpZS5jaC90ZXN0cy9hZGhvYy9odG1sL3BhcnNpbmcvZW5jb2RpbmcvYWxsLmh0bWwKKworVGhl
IHN1aXRlIGhhcyBiZWVuIGJyb2tlbiB1cCB0byBydW4gdGhlIHRlc3RzIGluIHNtYWxsZXIgYmF0
Y2hlcy4KKworRXhwZWN0ZWQgZmFpbHVyZXM6Cis1NiwgNTcsIDU4LCA1OSAtIHdlIGRvIG5vdCBy
dW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uIHBoYXNlIGFuZCBwYXJzZXIgdHJl
YXRzIG1ldGEgaW5zaWRlIGEgc2NyaXB0IGFzIHRleHQsIG5vdCBhIHRhZy4KKzYwIC0gcGFyc2Vy
IHRyZWF0cyBtZXRhIGluc2lkZSBzdHlsZSBhcyB0ZXh0LCBub3QgYSB0YWcuCis5NywgOTksIDEw
MiAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uLgorU3Rh
dHVzOiBUZXN0cyByYW4uCisKK1NlcmlvdXMgZmFpbHVyZXM6CisKK3Rlc3QgMDk3OiBleHBlY3Rl
ZCBXaW5kb3dzLTEyNTQ7IHVzZWQgV2luZG93cy0xMjUyCis8IURPQ1RZUEUgSFRNTD4KKzxzY3Jp
cHQ+ZG9jdW1lbnQud3JpdGUoYXRvYignUEcxbGRHRWdhSFIwY0MxbGNYVnBkajBpUTI5dWRHVnVk
QzFVZVhCbElpQmpiMjUwWlc1MFBTSjBaWGgwTDJoMGJXdzdZMmhoY25ObGREMUpVMDh0T0RnMU9T
MDVJajQ9JykpPC9zY3JpcHQ+Cit0ZXN0IDA5OTogZXhwZWN0ZWQgV2luZG93cy0xMjUyOyB1c2Vk
IFdpbmRvd3MtMTI1NAorPCFET0NUWVBFIEhUTUw+Cis8c2NyaXB0PmRvY3VtZW50LndyaXRlKGF0
b2IoJ1BHMWxkR0VnYUhSMGNDMWxjWFZwZGowaVEyOXVkR1Z1ZEMxVWVYQmxJaUJqYjI1MFpXNTBQ
U0owWlhoMEwyaDBiV3c3WTJoaGNuTmxkRDFKVTA4dE9EZzFPUzB4SWo0PScpKTwvc2NyaXB0Pgor
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNl
dD1JU08tODg1OS05Ij4KKyhUZXN0cyBhcmUgY29uc2lkZXJlZCB0byBwYXNzIGV2ZW4gaWYgdGhl
eSB0cmVhdCBXaW4xMjU0IGFuZCBJU08tODg1OS00IGFzIHNlcGFyYXRlLikKKworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy05MC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtOTAuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjIwMTY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtOTAuaHRtbApAQCAtMCwwICsxLDY4IEBA
Cis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorIDxoZWFkPgorICA8dGl0bGU+SGFybmVzczwvdGl0
bGU+CisgPC9oZWFkPgorIDxib2R5IG9ubG9hZD0icnVudGVzdHMoKSI+CisgIDxwPlRoaXMgdGVz
dCBzdWl0ZSB3YXMgY29udmVydGVkIGZyb20gaHR0cDovL3d3dy5oaXhpZS5jaC90ZXN0cy9hZGhv
Yy9odG1sL3BhcnNpbmcvZW5jb2RpbmcvYWxsLmh0bWw8L3A+CisgIDxwPlRoZSBzdWl0ZSBoYXMg
YmVlbiBicm9rZW4gdXAgdG8gcnVuIHRoZSB0ZXN0cyBpbiBzbWFsbGVyIGJhdGNoZXMuPC9wPgor
ICA8dWw+RXhwZWN0ZWQgZmFpbHVyZXM6CisgICAgPGxpPjU2LCA1NywgNTgsIDU5IC0gd2UgZG8g
bm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGluZyBkZXRlY3Rpb24gcGhhc2UgYW5kIHBhcnNl
ciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3JpcHQgYXMgdGV4dCwgbm90IGEgdGFnLjwvbGk+Cisg
ICAgPGxpPjYwIC0gcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBzdHlsZSBhcyB0ZXh0LCBub3Qg
YSB0YWcuPC9saT4KKyAgICA8bGk+OTcsIDk5LCAxMDIgLSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMg
ZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbi48L2xpPgorICA8L3VsPgorICA8cD5TdGF0dXM6IDxz
cGFuIGlkPSJzdGF0dXMiPlRlc3RzIGRpZCBub3QgcnVuLjwvc3Bhbj48L3A+CisgIDxwPlNlcmlv
dXMgZmFpbHVyZXM6PC9wPgorICA8b2wgaWQ9ImZhaWx1cmVzIj4KKyAgPC9vbD4KKyAgPHA+KFRl
c3RzIGFyZSBjb25zaWRlcmVkIHRvIHBhc3MgZXZlbiBpZiB0aGV5IHRyZWF0IFdpbjEyNTQgYW5k
IElTTy04ODU5LTQgYXMgc2VwYXJhdGUuKTwvcD4KKyAgPHA+PGlmcmFtZSBpZD0idGVzdCI+PC9p
ZnJhbWU+PC9wPgorICA8c2NyaXB0PgorICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICB9CisKKyAgIHZhciBmcmFt
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisgICB2YXIgY3VycmVudCA9IDkw
OworICAgdmFyIG1heCA9IDk5OworICAgZnVuY3Rpb24gZG90ZXN0KCkgeworICAgICB2YXIgcyA9
IGN1cnJlbnQgKyAnJzsKKyAgICAgd2hpbGUgKHMubGVuZ3RoIDwgMykgcyA9ICcwJyArIHM7Cisg
ICAgIGZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvJyArIHMgKyAnLmh0bWwnOworICAgICB3aW5kb3cu
cmVjZWl2ZWRSZXN1bHRzID0gZnVuY3Rpb24gKCkgeworICAgICAgIHZhciB3YW50ID0gZnJhbWUu
Y29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0ZWQnKS5maXJzdENo
aWxkLmRhdGE7CisgICAgICAgdmFyIGhhdmUgPSBmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdlbmNvZGluZycpLmZpcnN0Q2hpbGQuZGF0YTsKKyAgICAgICBpZiAo
aGF2ZSA9PSAnSVNPLTg4NTktOScpCisgICAgICAgICBoYXZlID0gJ1dpbmRvd3MtMTI1NCc7Cisg
ICAgICAgaWYgKHdhbnQgIT0gaGF2ZSkgeworICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnbGknKTsKKyAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnYScpOworICAgICAgICAgYS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgn
dGVzdCAnICsgcykpOworICAgICAgICAgYS5ocmVmID0gcyArICcuaHRtbCc7CisgICAgICAgICBs
aS5hcHBlbmRDaGlsZChhKTsKKyAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCc6IGV4cGVjdGVkICcgKyB3YW50ICsgJzsgdXNlZCAnICsgaGF2ZSkpOworICAg
ICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ByZScpOworICAgICAgICAg
cHJlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGZyYW1lLmNvbnRlbnRXaW5k
b3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ByZScpWzBdLmZpcnN0Q2hpbGQuZGF0
YSkpOworICAgICAgICAgbGkuYXBwZW5kQ2hpbGQocHJlKTsKKyAgICAgICAgIGxpLnZhbHVlID0g
Y3VycmVudDsKKyAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYWlsdXJlcycpLmFw
cGVuZENoaWxkKGxpKTsKKyAgICAgICB9CisgICAgICAgY3VycmVudCArPSAxOworICAgICAgIGlm
IChjdXJyZW50IDw9IG1heCkKKyAgICAgICAgIGRvdGVzdCgpOworICAgICAgIGVsc2UgeworICAg
ICAgICAgZnJhbWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmcmFtZSk7CisgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHVzJykuaW5uZXJUZXh0ID0gIlRlc3RzIHJhbi4iOwor
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgfQorICAgICB9OworICAg
fQorICAgZnVuY3Rpb24gcnVudGVzdHMoKSB7CisgICAgIGRvdGVzdCgpOworICAgfQorICAgZnVu
Y3Rpb24gYWxlcnQoKSB7IH0KKyAgPC9zY3JpcHQ+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGZiMTVhZTIuLjM0YTQxZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvcGFyc2VyLXRlc3RzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL3BhcnNlci10ZXN0cy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw3IEBACiBUaGlzIHRlc3Qg
c3VpdGUgd2FzIGNvbnZlcnRlZCBmcm9tIGh0dHA6Ly93d3cuaGl4aWUuY2gvdGVzdHMvYWRob2Mv
aHRtbC9wYXJzaW5nL2VuY29kaW5nL2FsbC5odG1sCiAKK1RoZSBzdWl0ZSBoYXMgYmVlbiBicm9r
ZW4gdXAgdG8gcnVuIHRoZSB0ZXN0cyBpbiBzbWFsbGVyIGJhdGNoZXMuCisKIEV4cGVjdGVkIGZh
aWx1cmVzOgogNTYsIDU3LCA1OCwgNTkgLSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVu
Y29kaW5nIGRldGVjdGlvbiBwaGFzZSBhbmQgcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBhIHNj
cmlwdCBhcyB0ZXh0LCBub3QgYSB0YWcuCiA2MCAtIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUg
c3R5bGUgYXMgdGV4dCwgbm90IGEgdGFnLgpAQCAtOCwzMiArMTAsNiBAQCBTdGF0dXM6IFRlc3Rz
IHJhbi4KIAogU2VyaW91cyBmYWlsdXJlczoKIAotdGVzdCAwNTY6IGV4cGVjdGVkIFdpbmRvd3Mt
MTI1NDsgdXNlZCBXaW5kb3dzLTEyNTIKLTwhRE9DVFlQRSBIVE1MPgotPHNjcmlwdD5kb2N1bWVu
dC53cml0ZSgnPG1ldGEgY2hhcnNldD0iSVNPLTg4NTktJyArICc5Ij4nKTwvc2NyaXB0PgotdGVz
dCAwNTc6IGV4cGVjdGVkIFdpbmRvd3MtMTI1NDsgdXNlZCBXaW5kb3dzLTEyNTIKLTwhRE9DVFlQ
RSBIVE1MPgotPHNjcmlwdD52YXIgcyA9ICc5Ij4nOyBkb2N1bWVudC53cml0ZSgnPG1ldGEgY2hh
cnNldD0iSVNPLTg4NTktJyArIHMpPC9zY3JpcHQ+Ci10ZXN0IDA1ODogZXhwZWN0ZWQgV2luZG93
cy0xMjU0OyB1c2VkIFdpbmRvd3MtMTI1MgotPCFET0NUWVBFIEhUTUw+Ci08c2NyaXB0PmRvY3Vt
ZW50LndyaXRlKCc8bWV0YSBjaGFyc2V0PSJJU08tODg1OS05Ij4nKTwvc2NyaXB0PgotdGVzdCAw
NTk6IGV4cGVjdGVkIFdpbmRvd3MtMTI1NDsgdXNlZCBXaW5kb3dzLTEyNTIKLTwhRE9DVFlQRSBI
VE1MPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L3BsYWluIj48bWV0YSBjaGFyc2V0PSJJU08tODg1OS05
Ij48L3NjcmlwdD4KLXRlc3QgMDYwOiBleHBlY3RlZCBXaW5kb3dzLTEyNTQ7IHVzZWQgV2luZG93
cy0xMjUyCi08IURPQ1RZUEUgSFRNTD4KLTxzdHlsZSB0eXBlPSJ0ZXh0L3BsYWluIj48bWV0YSBj
aGFyc2V0PSJJU08tODg1OS05Ij48L3N0eWxlPgotdGVzdCAwOTc6IGV4cGVjdGVkIFdpbmRvd3Mt
MTI1NDsgdXNlZCBXaW5kb3dzLTEyNTIKLTwhRE9DVFlQRSBIVE1MPgotPHNjcmlwdD5kb2N1bWVu
dC53cml0ZShhdG9iKCdQRzFsZEdFZ2FIUjBjQzFsY1hWcGRqMGlRMjl1ZEdWdWRDMVVlWEJsSWlC
amIyNTBaVzUwUFNKMFpYaDBMMmgwYld3N1kyaGhjbk5sZEQxSlUwOHRPRGcxT1MwNUlqND0nKSk8
L3NjcmlwdD4KLXRlc3QgMDk5OiBleHBlY3RlZCBXaW5kb3dzLTEyNTI7IHVzZWQgV2luZG93cy0x
MjU0Ci08IURPQ1RZUEUgSFRNTD4KLTxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUoYXRvYignUEcxbGRH
RWdhSFIwY0MxbGNYVnBkajBpUTI5dWRHVnVkQzFVZVhCbElpQmpiMjUwWlc1MFBTSjBaWGgwTDJo
MGJXdzdZMmhoY25ObGREMUpVMDh0T0RnMU9TMHhJajQ9JykpPC9zY3JpcHQ+Ci08bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PUlTTy04ODU5
LTkiPgotdGVzdCAxMDI6IGV4cGVjdGVkIFdpbmRvd3MtMTI1NDsgdXNlZCBXaW5kb3dzLTEyNTIK
LTwhRE9DVFlQRSBIVE1MPgotPHNjcmlwdD5kb2N1bWVudC53cml0ZShhdG9iKCdQRzFsZEdFZ2FI
UjBjQzFsY1hWcGRqMGlRMjl1ZEdWdWRDMVVlWEJsSWlCamIyNTBaVzUwUFNKMFpYaDBMMmgwYld3
N1kyaGhjbk5sZEQxSlUwOHRPRGcxT1MwNUlqND0nKSk8L3NjcmlwdD4KLTxzY3JpcHQ+ZG9jdW1l
bnQud3JpdGUoYXRvYignUEcxbGRHRWdhSFIwY0MxbGNYVnBkajBpUTI5dWRHVnVkQzFVZVhCbElp
QmpiMjUwWlc1MFBTSjBaWGgwTDJoMGJXdzdZMmhoY25ObGREMUpVMDh0T0RnMU9TMHhJajQ9Jykp
PC9zY3JpcHQ+CiAoVGVzdHMgYXJlIGNvbnNpZGVyZWQgdG8gcGFzcyBldmVuIGlmIHRoZXkgdHJl
YXQgV2luMTI1NCBhbmQgSVNPLTg4NTktNCBhcyBzZXBhcmF0ZS4pCiAKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLmh0bWwKaW5kZXggZmVhZDUwYS4uYTRiMDA3MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy5odG1sCkBAIC01LDYg
KzUsNyBAQAogIDwvaGVhZD4KICA8Ym9keSBvbmxvYWQ9InJ1bnRlc3RzKCkiPgogICA8cD5UaGlz
IHRlc3Qgc3VpdGUgd2FzIGNvbnZlcnRlZCBmcm9tIGh0dHA6Ly93d3cuaGl4aWUuY2gvdGVzdHMv
YWRob2MvaHRtbC9wYXJzaW5nL2VuY29kaW5nL2FsbC5odG1sPC9wPgorICA8cD5UaGUgc3VpdGUg
aGFzIGJlZW4gYnJva2VuIHVwIHRvIHJ1biB0aGUgdGVzdHMgaW4gc21hbGxlciBiYXRjaGVzLjwv
cD4KICAgPHVsPkV4cGVjdGVkIGZhaWx1cmVzOgogICAgIDxsaT41NiwgNTcsIDU4LCA1OSAtIHdl
IGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uIHBoYXNlIGFuZCBw
YXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIGEgc2NyaXB0IGFzIHRleHQsIG5vdCBhIHRhZy48L2xp
PgogICAgIDxsaT42MCAtIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgc3R5bGUgYXMgdGV4dCwg
bm90IGEgdGFnLjwvbGk+CkBAIC0yNCw3ICsyNSw3IEBACiAKICAgIHZhciBmcmFtZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CiAgICB2YXIgY3VycmVudCA9IDE7Ci0gICB2YXIg
bWF4ID0gMTIzOworICAgdmFyIG1heCA9IDk7CiAgICBmdW5jdGlvbiBkb3Rlc3QoKSB7CiAgICAg
IHZhciBzID0gY3VycmVudCArICcnOwogICAgICB3aGlsZSAocy5sZW5ndGggPCAzKSBzID0gJzAn
ICsgczsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77930</attachid>
            <date>2011-01-04 14:20:31 -0800</date>
            <delta_ts>2011-01-05 15:38:51 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch-51721-2.txt</filename>
            <type>text/plain</type>
            <size>27624</size>
            <attacher name="Jenn Braithwaite">jennb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYWRjOGVhLi45MDljNDE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMDEt
MDQgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZmFzdC9lbmNvZGluZy9wYXJzZXIt
dGVzdHMuaHRtbCBpcyBzbG93IG9uIGRlYnVnIGJ1aWxkcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE3MjEKKworICAgICAgICBCcmVhayB1cCBwYXJz
ZXIgdGVzdHMgdG8gcnVuIDEwIHRlc3RzIHBlciBiYXRjaC4KKworICAgICAgICAqIGZhc3QvZW5j
b2RpbmcvcGFyc2VyLXRlc3RzLTEwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMTAuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMuaHRtbC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5n
L3BhcnNlci10ZXN0cy0xMDAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Vu
Y29kaW5nL3BhcnNlci10ZXN0cy0xMDAuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9wYXJzZXItdGVzdHMuaHRtbC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3Bh
cnNlci10ZXN0cy0xMTAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29k
aW5nL3BhcnNlci10ZXN0cy0xMTAuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9l
bmNvZGluZy9wYXJzZXItdGVzdHMuaHRtbC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BhcnNl
ci10ZXN0cy0xMjAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5n
L3BhcnNlci10ZXN0cy0xMjAuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9lbmNv
ZGluZy9wYXJzZXItdGVzdHMuaHRtbC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BhcnNlci10
ZXN0cy0yMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcGFy
c2VyLXRlc3RzLTIwLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
cGFyc2VyLXRlc3RzLmh0bWwuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMt
MzAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BhcnNlci10
ZXN0cy0zMC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNl
ci10ZXN0cy5odG1sLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTQwLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMt
NDAuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVz
dHMuaHRtbC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy01MC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTUwLmh0
bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLmh0
bWwuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtNjAtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy02MC5odG1sOiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy5odG1sLgor
ICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTcwLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtNzAuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMuaHRtbC4KKyAgICAg
ICAgKiBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy04MC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTgwLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLmh0bWwuCisgICAgICAgICog
ZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtOTAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy05MC5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy5odG1sLgorICAgICAgICAqIGZhc3Qv
ZW5jb2RpbmcvcGFyc2VyLXRlc3RzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2VuY29k
aW5nL3BhcnNlci10ZXN0cy5odG1sOgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcvcmVzb3VyY2Vz
L3BhcnNlci10ZXN0cy5qczogQWRkZWQuCisKIDIwMTEtMDEtMDQgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZDsgQWRkZWQgZWRpdGluZy9zZWxl
Y3Rpb24vY2FyZXQtYmlkaS1maXJzdC1hbmQtbGFzdC1sZXR0ZXJzLmh0bWwgdG8gUXQncyBza2lw
cGVkIGxpc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10
ZXN0cy0xMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10
ZXN0cy0xMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzRhNDFlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFy
c2VyLXRlc3RzLTEwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3Qgc3Vp
dGUgd2FzIGNvbnZlcnRlZCBmcm9tIGh0dHA6Ly93d3cuaGl4aWUuY2gvdGVzdHMvYWRob2MvaHRt
bC9wYXJzaW5nL2VuY29kaW5nL2FsbC5odG1sCisKK1RoZSBzdWl0ZSBoYXMgYmVlbiBicm9rZW4g
dXAgdG8gcnVuIHRoZSB0ZXN0cyBpbiBzbWFsbGVyIGJhdGNoZXMuCisKK0V4cGVjdGVkIGZhaWx1
cmVzOgorNTYsIDU3LCA1OCwgNTkgLSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29k
aW5nIGRldGVjdGlvbiBwaGFzZSBhbmQgcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBhIHNjcmlw
dCBhcyB0ZXh0LCBub3QgYSB0YWcuCis2MCAtIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgc3R5
bGUgYXMgdGV4dCwgbm90IGEgdGFnLgorOTcsIDk5LCAxMDIgLSB3ZSBkbyBub3QgcnVuIHNjcmlw
dHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbi4KK1N0YXR1czogVGVzdHMgcmFuLgorCitTZXJp
b3VzIGZhaWx1cmVzOgorCisoVGVzdHMgYXJlIGNvbnNpZGVyZWQgdG8gcGFzcyBldmVuIGlmIHRo
ZXkgdHJlYXQgV2luMTI1NCBhbmQgSVNPLTg4NTktNCBhcyBzZXBhcmF0ZS4pCisKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMTAuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTEwLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjlhZmIzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTEwLmh0bWwKQEAgLTAsMCArMSw5IEBA
Cis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorIDxoZWFkPgorICA8dGl0bGU+SGFybmVzczwvdGl0
bGU+CisgPC9oZWFkPgorIDxib2R5IG9ubG9hZD0icnVudGVzdHMoMTAsIDE5KSI+CisgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy9wYXJzZXItdGVzdHMuanMi
Pjwvc2NyaXB0PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTEwMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0xMDAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiNWMwOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0xMDAtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTkgQEAKK1RoaXMgdGVzdCBzdWl0ZSB3YXMgY29udmVydGVkIGZyb20gaHR0cDovL3d3dy5o
aXhpZS5jaC90ZXN0cy9hZGhvYy9odG1sL3BhcnNpbmcvZW5jb2RpbmcvYWxsLmh0bWwKKworVGhl
IHN1aXRlIGhhcyBiZWVuIGJyb2tlbiB1cCB0byBydW4gdGhlIHRlc3RzIGluIHNtYWxsZXIgYmF0
Y2hlcy4KKworRXhwZWN0ZWQgZmFpbHVyZXM6Cis1NiwgNTcsIDU4LCA1OSAtIHdlIGRvIG5vdCBy
dW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uIHBoYXNlIGFuZCBwYXJzZXIgdHJl
YXRzIG1ldGEgaW5zaWRlIGEgc2NyaXB0IGFzIHRleHQsIG5vdCBhIHRhZy4KKzYwIC0gcGFyc2Vy
IHRyZWF0cyBtZXRhIGluc2lkZSBzdHlsZSBhcyB0ZXh0LCBub3QgYSB0YWcuCis5NywgOTksIDEw
MiAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uLgorU3Rh
dHVzOiBUZXN0cyByYW4uCisKK1NlcmlvdXMgZmFpbHVyZXM6CisKK3Rlc3QgMTAyOiBleHBlY3Rl
ZCBXaW5kb3dzLTEyNTQ7IHVzZWQgV2luZG93cy0xMjUyCis8IURPQ1RZUEUgSFRNTD4KKzxzY3Jp
cHQ+ZG9jdW1lbnQud3JpdGUoYXRvYignUEcxbGRHRWdhSFIwY0MxbGNYVnBkajBpUTI5dWRHVnVk
QzFVZVhCbElpQmpiMjUwWlc1MFBTSjBaWGgwTDJoMGJXdzdZMmhoY25ObGREMUpVMDh0T0RnMU9T
MDVJajQ9JykpPC9zY3JpcHQ+Cis8c2NyaXB0PmRvY3VtZW50LndyaXRlKGF0b2IoJ1BHMWxkR0Vn
YUhSMGNDMWxjWFZwZGowaVEyOXVkR1Z1ZEMxVWVYQmxJaUJqYjI1MFpXNTBQU0owWlhoMEwyaDBi
V3c3WTJoaGNuTmxkRDFKVTA4dE9EZzFPUzB4SWo0PScpKTwvc2NyaXB0PgorKFRlc3RzIGFyZSBj
b25zaWRlcmVkIHRvIHBhc3MgZXZlbiBpZiB0aGV5IHRyZWF0IFdpbjEyNTQgYW5kIElTTy04ODU5
LTQgYXMgc2VwYXJhdGUuKQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvcGFyc2VyLXRlc3RzLTEwMC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJz
ZXItdGVzdHMtMTAwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U4
MGIxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2Vy
LXRlc3RzLTEwMC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4K
KyA8aGVhZD4KKyAgPHRpdGxlPkhhcm5lc3M8L3RpdGxlPgorIDwvaGVhZD4KKyA8Ym9keSBvbmxv
YWQ9InJ1bnRlc3RzKDEwMCwgMTA5KSI+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9InJlc291cmNlcy9wYXJzZXItdGVzdHMuanMiPjwvc2NyaXB0PgorIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3Rz
LTExMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0
cy0xMTAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0
YTQxZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNl
ci10ZXN0cy0xMTAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBzdWl0
ZSB3YXMgY29udmVydGVkIGZyb20gaHR0cDovL3d3dy5oaXhpZS5jaC90ZXN0cy9hZGhvYy9odG1s
L3BhcnNpbmcvZW5jb2RpbmcvYWxsLmh0bWwKKworVGhlIHN1aXRlIGhhcyBiZWVuIGJyb2tlbiB1
cCB0byBydW4gdGhlIHRlc3RzIGluIHNtYWxsZXIgYmF0Y2hlcy4KKworRXhwZWN0ZWQgZmFpbHVy
ZXM6Cis1NiwgNTcsIDU4LCA1OSAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2Rp
bmcgZGV0ZWN0aW9uIHBoYXNlIGFuZCBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIGEgc2NyaXB0
IGFzIHRleHQsIG5vdCBhIHRhZy4KKzYwIC0gcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBzdHls
ZSBhcyB0ZXh0LCBub3QgYSB0YWcuCis5NywgOTksIDEwMiAtIHdlIGRvIG5vdCBydW4gc2NyaXB0
cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uLgorU3RhdHVzOiBUZXN0cyByYW4uCisKK1Nlcmlv
dXMgZmFpbHVyZXM6CisKKyhUZXN0cyBhcmUgY29uc2lkZXJlZCB0byBwYXNzIGV2ZW4gaWYgdGhl
eSB0cmVhdCBXaW4xMjU0IGFuZCBJU08tODg1OS00IGFzIHNlcGFyYXRlLikKKworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0xMTAuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTExMC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjY2QzZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0xMTAuaHRtbApAQCAtMCwwICsxLDkg
QEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgPGhlYWQ+CisgIDx0aXRsZT5IYXJuZXNzPC90
aXRsZT4KKyA8L2hlYWQ+CisgPGJvZHkgb25sb2FkPSJydW50ZXN0cygxMTAsIDExOSkiPgorICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvcGFyc2VyLXRlc3Rz
LmpzIj48L3NjcmlwdD4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0xMjAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMTIwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGE0MWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMTIwLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE1IEBACitUaGlzIHRlc3Qgc3VpdGUgd2FzIGNvbnZlcnRlZCBmcm9tIGh0dHA6Ly93
d3cuaGl4aWUuY2gvdGVzdHMvYWRob2MvaHRtbC9wYXJzaW5nL2VuY29kaW5nL2FsbC5odG1sCisK
K1RoZSBzdWl0ZSBoYXMgYmVlbiBicm9rZW4gdXAgdG8gcnVuIHRoZSB0ZXN0cyBpbiBzbWFsbGVy
IGJhdGNoZXMuCisKK0V4cGVjdGVkIGZhaWx1cmVzOgorNTYsIDU3LCA1OCwgNTkgLSB3ZSBkbyBu
b3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbiBwaGFzZSBhbmQgcGFyc2Vy
IHRyZWF0cyBtZXRhIGluc2lkZSBhIHNjcmlwdCBhcyB0ZXh0LCBub3QgYSB0YWcuCis2MCAtIHBh
cnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgc3R5bGUgYXMgdGV4dCwgbm90IGEgdGFnLgorOTcsIDk5
LCAxMDIgLSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbi4K
K1N0YXR1czogVGVzdHMgcmFuLgorCitTZXJpb3VzIGZhaWx1cmVzOgorCisoVGVzdHMgYXJlIGNv
bnNpZGVyZWQgdG8gcGFzcyBldmVuIGlmIHRoZXkgdHJlYXQgV2luMTI1NCBhbmQgSVNPLTg4NTkt
NCBhcyBzZXBhcmF0ZS4pCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9wYXJzZXItdGVzdHMtMTIwLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNl
ci10ZXN0cy0xMjAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzY5
MWU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXIt
dGVzdHMtMTIwLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgor
IDxoZWFkPgorICA8dGl0bGU+SGFybmVzczwvdGl0bGU+CisgPC9oZWFkPgorIDxib2R5IG9ubG9h
ZD0icnVudGVzdHMoMTIwLCAxMjMpIj4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0icmVzb3VyY2VzL3BhcnNlci10ZXN0cy5qcyI+PC9zY3JpcHQ+CisgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMt
MjAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMt
MjAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0YTQx
ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10
ZXN0cy0yMC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IHN1aXRlIHdh
cyBjb252ZXJ0ZWQgZnJvbSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9jL2h0bWwvcGFy
c2luZy9lbmNvZGluZy9hbGwuaHRtbAorCitUaGUgc3VpdGUgaGFzIGJlZW4gYnJva2VuIHVwIHRv
IHJ1biB0aGUgdGVzdHMgaW4gc21hbGxlciBiYXRjaGVzLgorCitFeHBlY3RlZCBmYWlsdXJlczoK
KzU2LCA1NywgNTgsIDU5IC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGluZyBk
ZXRlY3Rpb24gcGhhc2UgYW5kIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3JpcHQgYXMg
dGV4dCwgbm90IGEgdGFnLgorNjAgLSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0eWxlIGFz
IHRleHQsIG5vdCBhIHRhZy4KKzk3LCA5OSwgMTAyIC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1
cmluZyBlbmNvZGluZyBkZXRlY3Rpb24uCitTdGF0dXM6IFRlc3RzIHJhbi4KKworU2VyaW91cyBm
YWlsdXJlczoKKworKFRlc3RzIGFyZSBjb25zaWRlcmVkIHRvIHBhc3MgZXZlbiBpZiB0aGV5IHRy
ZWF0IFdpbjEyNTQgYW5kIElTTy04ODU5LTQgYXMgc2VwYXJhdGUuKQorCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTIwLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0yMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjViZTVjYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0yMC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFE
T0NUWVBFIEhUTUw+Cis8aHRtbD4KKyA8aGVhZD4KKyAgPHRpdGxlPkhhcm5lc3M8L3RpdGxlPgor
IDwvaGVhZD4KKyA8Ym9keSBvbmxvYWQ9InJ1bnRlc3RzKDIwLCAyOSkiPgorICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvcGFyc2VyLXRlc3RzLmpzIj48L3Nj
cmlwdD4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL3BhcnNlci10ZXN0cy0zMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Vu
Y29kaW5nL3BhcnNlci10ZXN0cy0zMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMzRhNDFlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTMwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBA
CitUaGlzIHRlc3Qgc3VpdGUgd2FzIGNvbnZlcnRlZCBmcm9tIGh0dHA6Ly93d3cuaGl4aWUuY2gv
dGVzdHMvYWRob2MvaHRtbC9wYXJzaW5nL2VuY29kaW5nL2FsbC5odG1sCisKK1RoZSBzdWl0ZSBo
YXMgYmVlbiBicm9rZW4gdXAgdG8gcnVuIHRoZSB0ZXN0cyBpbiBzbWFsbGVyIGJhdGNoZXMuCisK
K0V4cGVjdGVkIGZhaWx1cmVzOgorNTYsIDU3LCA1OCwgNTkgLSB3ZSBkbyBub3QgcnVuIHNjcmlw
dHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbiBwaGFzZSBhbmQgcGFyc2VyIHRyZWF0cyBtZXRh
IGluc2lkZSBhIHNjcmlwdCBhcyB0ZXh0LCBub3QgYSB0YWcuCis2MCAtIHBhcnNlciB0cmVhdHMg
bWV0YSBpbnNpZGUgc3R5bGUgYXMgdGV4dCwgbm90IGEgdGFnLgorOTcsIDk5LCAxMDIgLSB3ZSBk
byBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbi4KK1N0YXR1czogVGVz
dHMgcmFuLgorCitTZXJpb3VzIGZhaWx1cmVzOgorCisoVGVzdHMgYXJlIGNvbnNpZGVyZWQgdG8g
cGFzcyBldmVuIGlmIHRoZXkgdHJlYXQgV2luMTI1NCBhbmQgSVNPLTg4NTktNCBhcyBzZXBhcmF0
ZS4pCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVz
dHMtMzAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTMwLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJmZjBhYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTMwLmh0bWwK
QEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorIDxoZWFkPgorICA8dGl0
bGU+SGFybmVzczwvdGl0bGU+CisgPC9oZWFkPgorIDxib2R5IG9ubG9hZD0icnVudGVzdHMoMzAs
IDM5KSI+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy9w
YXJzZXItdGVzdHMuanMiPjwvc2NyaXB0PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTQwLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTQwLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGE0MWU3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtNDAtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBzdWl0ZSB3YXMgY29udmVydGVkIGZyb20g
aHR0cDovL3d3dy5oaXhpZS5jaC90ZXN0cy9hZGhvYy9odG1sL3BhcnNpbmcvZW5jb2RpbmcvYWxs
Lmh0bWwKKworVGhlIHN1aXRlIGhhcyBiZWVuIGJyb2tlbiB1cCB0byBydW4gdGhlIHRlc3RzIGlu
IHNtYWxsZXIgYmF0Y2hlcy4KKworRXhwZWN0ZWQgZmFpbHVyZXM6Cis1NiwgNTcsIDU4LCA1OSAt
IHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uIHBoYXNlIGFu
ZCBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIGEgc2NyaXB0IGFzIHRleHQsIG5vdCBhIHRhZy4K
KzYwIC0gcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBzdHlsZSBhcyB0ZXh0LCBub3QgYSB0YWcu
Cis5NywgOTksIDEwMiAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0
ZWN0aW9uLgorU3RhdHVzOiBUZXN0cyByYW4uCisKK1NlcmlvdXMgZmFpbHVyZXM6CisKKyhUZXN0
cyBhcmUgY29uc2lkZXJlZCB0byBwYXNzIGV2ZW4gaWYgdGhleSB0cmVhdCBXaW4xMjU0IGFuZCBJ
U08tODg1OS00IGFzIHNlcGFyYXRlLikKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2VuY29kaW5nL3BhcnNlci10ZXN0cy00MC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9wYXJzZXItdGVzdHMtNDAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43YzBiNzI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9w
YXJzZXItdGVzdHMtNDAuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0
bWw+CisgPGhlYWQ+CisgIDx0aXRsZT5IYXJuZXNzPC90aXRsZT4KKyA8L2hlYWQ+CisgPGJvZHkg
b25sb2FkPSJydW50ZXN0cyg0MCwgNDkpIj4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0icmVzb3VyY2VzL3BhcnNlci10ZXN0cy5qcyI+PC9zY3JpcHQ+CisgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVz
dHMtNTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVz
dHMtNTAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFj
ZTA2NDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNl
ci10ZXN0cy01MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorVGhpcyB0ZXN0IHN1aXRl
IHdhcyBjb252ZXJ0ZWQgZnJvbSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9jL2h0bWwv
cGFyc2luZy9lbmNvZGluZy9hbGwuaHRtbAorCitUaGUgc3VpdGUgaGFzIGJlZW4gYnJva2VuIHVw
IHRvIHJ1biB0aGUgdGVzdHMgaW4gc21hbGxlciBiYXRjaGVzLgorCitFeHBlY3RlZCBmYWlsdXJl
czoKKzU2LCA1NywgNTgsIDU5IC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGlu
ZyBkZXRlY3Rpb24gcGhhc2UgYW5kIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3JpcHQg
YXMgdGV4dCwgbm90IGEgdGFnLgorNjAgLSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0eWxl
IGFzIHRleHQsIG5vdCBhIHRhZy4KKzk3LCA5OSwgMTAyIC0gd2UgZG8gbm90IHJ1biBzY3JpcHRz
IGR1cmluZyBlbmNvZGluZyBkZXRlY3Rpb24uCitTdGF0dXM6IFRlc3RzIHJhbi4KKworU2VyaW91
cyBmYWlsdXJlczoKKwordGVzdCAwNTY6IGV4cGVjdGVkIFdpbmRvd3MtMTI1NDsgdXNlZCBXaW5k
b3dzLTEyNTIKKzwhRE9DVFlQRSBIVE1MPgorPHNjcmlwdD5kb2N1bWVudC53cml0ZSgnPG1ldGEg
Y2hhcnNldD0iSVNPLTg4NTktJyArICc5Ij4nKTwvc2NyaXB0PgordGVzdCAwNTc6IGV4cGVjdGVk
IFdpbmRvd3MtMTI1NDsgdXNlZCBXaW5kb3dzLTEyNTIKKzwhRE9DVFlQRSBIVE1MPgorPHNjcmlw
dD52YXIgcyA9ICc5Ij4nOyBkb2N1bWVudC53cml0ZSgnPG1ldGEgY2hhcnNldD0iSVNPLTg4NTkt
JyArIHMpPC9zY3JpcHQ+Cit0ZXN0IDA1ODogZXhwZWN0ZWQgV2luZG93cy0xMjU0OyB1c2VkIFdp
bmRvd3MtMTI1MgorPCFET0NUWVBFIEhUTUw+Cis8c2NyaXB0PmRvY3VtZW50LndyaXRlKCc8bWV0
YSBjaGFyc2V0PSJJU08tODg1OS05Ij4nKTwvc2NyaXB0PgordGVzdCAwNTk6IGV4cGVjdGVkIFdp
bmRvd3MtMTI1NDsgdXNlZCBXaW5kb3dzLTEyNTIKKzwhRE9DVFlQRSBIVE1MPgorPHNjcmlwdCB0
eXBlPSJ0ZXh0L3BsYWluIj48bWV0YSBjaGFyc2V0PSJJU08tODg1OS05Ij48L3NjcmlwdD4KKyhU
ZXN0cyBhcmUgY29uc2lkZXJlZCB0byBwYXNzIGV2ZW4gaWYgdGhleSB0cmVhdCBXaW4xMjU0IGFu
ZCBJU08tODg1OS00IGFzIHNlcGFyYXRlLikKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy01MC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNv
ZGluZy9wYXJzZXItdGVzdHMtNTAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4yNjQ0NjFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9wYXJzZXItdGVzdHMtNTAuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBIVE1MPgor
PGh0bWw+CisgPGhlYWQ+CisgIDx0aXRsZT5IYXJuZXNzPC90aXRsZT4KKyA8L2hlYWQ+CisgPGJv
ZHkgb25sb2FkPSJydW50ZXN0cyg1MCwgNTkpIj4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0icmVzb3VyY2VzL3BhcnNlci10ZXN0cy5qcyI+PC9zY3JpcHQ+CisgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXIt
dGVzdHMtNjAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXIt
dGVzdHMtNjAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmVkYjk0NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Bh
cnNlci10ZXN0cy02MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGhpcyB0ZXN0IHN1
aXRlIHdhcyBjb252ZXJ0ZWQgZnJvbSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9jL2h0
bWwvcGFyc2luZy9lbmNvZGluZy9hbGwuaHRtbAorCitUaGUgc3VpdGUgaGFzIGJlZW4gYnJva2Vu
IHVwIHRvIHJ1biB0aGUgdGVzdHMgaW4gc21hbGxlciBiYXRjaGVzLgorCitFeHBlY3RlZCBmYWls
dXJlczoKKzU2LCA1NywgNTgsIDU5IC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNv
ZGluZyBkZXRlY3Rpb24gcGhhc2UgYW5kIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3Jp
cHQgYXMgdGV4dCwgbm90IGEgdGFnLgorNjAgLSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0
eWxlIGFzIHRleHQsIG5vdCBhIHRhZy4KKzk3LCA5OSwgMTAyIC0gd2UgZG8gbm90IHJ1biBzY3Jp
cHRzIGR1cmluZyBlbmNvZGluZyBkZXRlY3Rpb24uCitTdGF0dXM6IFRlc3RzIHJhbi4KKworU2Vy
aW91cyBmYWlsdXJlczoKKwordGVzdCAwNjA6IGV4cGVjdGVkIFdpbmRvd3MtMTI1NDsgdXNlZCBX
aW5kb3dzLTEyNTIKKzwhRE9DVFlQRSBIVE1MPgorPHN0eWxlIHR5cGU9InRleHQvcGxhaW4iPjxt
ZXRhIGNoYXJzZXQ9IklTTy04ODU5LTkiPjwvc3R5bGU+CisoVGVzdHMgYXJlIGNvbnNpZGVyZWQg
dG8gcGFzcyBldmVuIGlmIHRoZXkgdHJlYXQgV2luMTI1NCBhbmQgSVNPLTg4NTktNCBhcyBzZXBh
cmF0ZS4pCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXIt
dGVzdHMtNjAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTYw
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGViMzA0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTYwLmh0
bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorIDxoZWFkPgorICA8
dGl0bGU+SGFybmVzczwvdGl0bGU+CisgPC9oZWFkPgorIDxib2R5IG9ubG9hZD0icnVudGVzdHMo
NjAsIDY5KSI+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNl
cy9wYXJzZXItdGVzdHMuanMiPjwvc2NyaXB0PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTcwLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTcwLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGE0MWU3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtNzAtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBzdWl0ZSB3YXMgY29udmVydGVkIGZy
b20gaHR0cDovL3d3dy5oaXhpZS5jaC90ZXN0cy9hZGhvYy9odG1sL3BhcnNpbmcvZW5jb2Rpbmcv
YWxsLmh0bWwKKworVGhlIHN1aXRlIGhhcyBiZWVuIGJyb2tlbiB1cCB0byBydW4gdGhlIHRlc3Rz
IGluIHNtYWxsZXIgYmF0Y2hlcy4KKworRXhwZWN0ZWQgZmFpbHVyZXM6Cis1NiwgNTcsIDU4LCA1
OSAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uIHBoYXNl
IGFuZCBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIGEgc2NyaXB0IGFzIHRleHQsIG5vdCBhIHRh
Zy4KKzYwIC0gcGFyc2VyIHRyZWF0cyBtZXRhIGluc2lkZSBzdHlsZSBhcyB0ZXh0LCBub3QgYSB0
YWcuCis5NywgOTksIDEwMiAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2Rpbmcg
ZGV0ZWN0aW9uLgorU3RhdHVzOiBUZXN0cyByYW4uCisKK1NlcmlvdXMgZmFpbHVyZXM6CisKKyhU
ZXN0cyBhcmUgY29uc2lkZXJlZCB0byBwYXNzIGV2ZW4gaWYgdGhleSB0cmVhdCBXaW4xMjU0IGFu
ZCBJU08tODg1OS00IGFzIHNlcGFyYXRlLikKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy03MC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNv
ZGluZy9wYXJzZXItdGVzdHMtNzAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zMTIwYjkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9wYXJzZXItdGVzdHMtNzAuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBIVE1MPgor
PGh0bWw+CisgPGhlYWQ+CisgIDx0aXRsZT5IYXJuZXNzPC90aXRsZT4KKyA8L2hlYWQ+CisgPGJv
ZHkgb25sb2FkPSJydW50ZXN0cyg3MCwgNzkpIj4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0icmVzb3VyY2VzL3BhcnNlci10ZXN0cy5qcyI+PC9zY3JpcHQ+CisgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXIt
dGVzdHMtODAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXIt
dGVzdHMtODAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjM0YTQxZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Bh
cnNlci10ZXN0cy04MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IHN1
aXRlIHdhcyBjb252ZXJ0ZWQgZnJvbSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9jL2h0
bWwvcGFyc2luZy9lbmNvZGluZy9hbGwuaHRtbAorCitUaGUgc3VpdGUgaGFzIGJlZW4gYnJva2Vu
IHVwIHRvIHJ1biB0aGUgdGVzdHMgaW4gc21hbGxlciBiYXRjaGVzLgorCitFeHBlY3RlZCBmYWls
dXJlczoKKzU2LCA1NywgNTgsIDU5IC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNv
ZGluZyBkZXRlY3Rpb24gcGhhc2UgYW5kIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3Jp
cHQgYXMgdGV4dCwgbm90IGEgdGFnLgorNjAgLSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0
eWxlIGFzIHRleHQsIG5vdCBhIHRhZy4KKzk3LCA5OSwgMTAyIC0gd2UgZG8gbm90IHJ1biBzY3Jp
cHRzIGR1cmluZyBlbmNvZGluZyBkZXRlY3Rpb24uCitTdGF0dXM6IFRlc3RzIHJhbi4KKworU2Vy
aW91cyBmYWlsdXJlczoKKworKFRlc3RzIGFyZSBjb25zaWRlcmVkIHRvIHBhc3MgZXZlbiBpZiB0
aGV5IHRyZWF0IFdpbjEyNTQgYW5kIElTTy04ODU5LTQgYXMgc2VwYXJhdGUuKQorCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTgwLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy04MC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTVmZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy04MC5odG1sCkBAIC0wLDAgKzEsOSBA
QAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyA8aGVhZD4KKyAgPHRpdGxlPkhhcm5lc3M8L3Rp
dGxlPgorIDwvaGVhZD4KKyA8Ym9keSBvbmxvYWQ9InJ1bnRlc3RzKDgwLCA4OSkiPgorICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvcGFyc2VyLXRlc3RzLmpz
Ij48L3NjcmlwdD4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy05MC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy05MC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYjI4ODJhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTkwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIyIEBACitUaGlzIHRlc3Qgc3VpdGUgd2FzIGNvbnZlcnRlZCBmcm9tIGh0dHA6Ly93d3cuaGl4
aWUuY2gvdGVzdHMvYWRob2MvaHRtbC9wYXJzaW5nL2VuY29kaW5nL2FsbC5odG1sCisKK1RoZSBz
dWl0ZSBoYXMgYmVlbiBicm9rZW4gdXAgdG8gcnVuIHRoZSB0ZXN0cyBpbiBzbWFsbGVyIGJhdGNo
ZXMuCisKK0V4cGVjdGVkIGZhaWx1cmVzOgorNTYsIDU3LCA1OCwgNTkgLSB3ZSBkbyBub3QgcnVu
IHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbiBwaGFzZSBhbmQgcGFyc2VyIHRyZWF0
cyBtZXRhIGluc2lkZSBhIHNjcmlwdCBhcyB0ZXh0LCBub3QgYSB0YWcuCis2MCAtIHBhcnNlciB0
cmVhdHMgbWV0YSBpbnNpZGUgc3R5bGUgYXMgdGV4dCwgbm90IGEgdGFnLgorOTcsIDk5LCAxMDIg
LSB3ZSBkbyBub3QgcnVuIHNjcmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbi4KK1N0YXR1
czogVGVzdHMgcmFuLgorCitTZXJpb3VzIGZhaWx1cmVzOgorCit0ZXN0IDA5NzogZXhwZWN0ZWQg
V2luZG93cy0xMjU0OyB1c2VkIFdpbmRvd3MtMTI1MgorPCFET0NUWVBFIEhUTUw+Cis8c2NyaXB0
PmRvY3VtZW50LndyaXRlKGF0b2IoJ1BHMWxkR0VnYUhSMGNDMWxjWFZwZGowaVEyOXVkR1Z1ZEMx
VWVYQmxJaUJqYjI1MFpXNTBQU0owWlhoMEwyaDBiV3c3WTJoaGNuTmxkRDFKVTA4dE9EZzFPUzA1
SWo0PScpKTwvc2NyaXB0PgordGVzdCAwOTk6IGV4cGVjdGVkIFdpbmRvd3MtMTI1MjsgdXNlZCBX
aW5kb3dzLTEyNTQKKzwhRE9DVFlQRSBIVE1MPgorPHNjcmlwdD5kb2N1bWVudC53cml0ZShhdG9i
KCdQRzFsZEdFZ2FIUjBjQzFsY1hWcGRqMGlRMjl1ZEdWdWRDMVVlWEJsSWlCamIyNTBaVzUwUFNK
MFpYaDBMMmgwYld3N1kyaGhjbk5sZEQxSlUwOHRPRGcxT1MweElqND0nKSk8L3NjcmlwdD4KKzxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9
SVNPLTg4NTktOSI+CisoVGVzdHMgYXJlIGNvbnNpZGVyZWQgdG8gcGFzcyBldmVuIGlmIHRoZXkg
dHJlYXQgV2luMTI1NCBhbmQgSVNPLTg4NTktNCBhcyBzZXBhcmF0ZS4pCisKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtOTAuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTkwLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMDEyMDA5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTkwLmh0bWwKQEAgLTAsMCArMSw5IEBACis8
IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorIDxoZWFkPgorICA8dGl0bGU+SGFybmVzczwvdGl0bGU+
CisgPC9oZWFkPgorIDxib2R5IG9ubG9hZD0icnVudGVzdHMoOTAsIDk5KSI+CisgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy9wYXJzZXItdGVzdHMuanMiPjwv
c2NyaXB0PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZW5jb2RpbmcvcGFyc2VyLXRlc3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcvcGFyc2VyLXRlc3RzLWV4cGVjdGVkLnR4dAppbmRleCBmYjE1YWUyLi4zNGE0MWU3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtZXhwZWN0
ZWQudHh0CkBAIC0xLDUgKzEsNyBAQAogVGhpcyB0ZXN0IHN1aXRlIHdhcyBjb252ZXJ0ZWQgZnJv
bSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9jL2h0bWwvcGFyc2luZy9lbmNvZGluZy9h
bGwuaHRtbAogCitUaGUgc3VpdGUgaGFzIGJlZW4gYnJva2VuIHVwIHRvIHJ1biB0aGUgdGVzdHMg
aW4gc21hbGxlciBiYXRjaGVzLgorCiBFeHBlY3RlZCBmYWlsdXJlczoKIDU2LCA1NywgNTgsIDU5
IC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1cmluZyBlbmNvZGluZyBkZXRlY3Rpb24gcGhhc2Ug
YW5kIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgYSBzY3JpcHQgYXMgdGV4dCwgbm90IGEgdGFn
LgogNjAgLSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0eWxlIGFzIHRleHQsIG5vdCBhIHRh
Zy4KQEAgLTgsMzIgKzEwLDYgQEAgU3RhdHVzOiBUZXN0cyByYW4uCiAKIFNlcmlvdXMgZmFpbHVy
ZXM6CiAKLXRlc3QgMDU2OiBleHBlY3RlZCBXaW5kb3dzLTEyNTQ7IHVzZWQgV2luZG93cy0xMjUy
Ci08IURPQ1RZUEUgSFRNTD4KLTxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUoJzxtZXRhIGNoYXJzZXQ9
IklTTy04ODU5LScgKyAnOSI+Jyk8L3NjcmlwdD4KLXRlc3QgMDU3OiBleHBlY3RlZCBXaW5kb3dz
LTEyNTQ7IHVzZWQgV2luZG93cy0xMjUyCi08IURPQ1RZUEUgSFRNTD4KLTxzY3JpcHQ+dmFyIHMg
PSAnOSI+JzsgZG9jdW1lbnQud3JpdGUoJzxtZXRhIGNoYXJzZXQ9IklTTy04ODU5LScgKyBzKTwv
c2NyaXB0PgotdGVzdCAwNTg6IGV4cGVjdGVkIFdpbmRvd3MtMTI1NDsgdXNlZCBXaW5kb3dzLTEy
NTIKLTwhRE9DVFlQRSBIVE1MPgotPHNjcmlwdD5kb2N1bWVudC53cml0ZSgnPG1ldGEgY2hhcnNl
dD0iSVNPLTg4NTktOSI+Jyk8L3NjcmlwdD4KLXRlc3QgMDU5OiBleHBlY3RlZCBXaW5kb3dzLTEy
NTQ7IHVzZWQgV2luZG93cy0xMjUyCi08IURPQ1RZUEUgSFRNTD4KLTxzY3JpcHQgdHlwZT0idGV4
dC9wbGFpbiI+PG1ldGEgY2hhcnNldD0iSVNPLTg4NTktOSI+PC9zY3JpcHQ+Ci10ZXN0IDA2MDog
ZXhwZWN0ZWQgV2luZG93cy0xMjU0OyB1c2VkIFdpbmRvd3MtMTI1MgotPCFET0NUWVBFIEhUTUw+
Ci08c3R5bGUgdHlwZT0idGV4dC9wbGFpbiI+PG1ldGEgY2hhcnNldD0iSVNPLTg4NTktOSI+PC9z
dHlsZT4KLXRlc3QgMDk3OiBleHBlY3RlZCBXaW5kb3dzLTEyNTQ7IHVzZWQgV2luZG93cy0xMjUy
Ci08IURPQ1RZUEUgSFRNTD4KLTxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUoYXRvYignUEcxbGRHRWdh
SFIwY0MxbGNYVnBkajBpUTI5dWRHVnVkQzFVZVhCbElpQmpiMjUwWlc1MFBTSjBaWGgwTDJoMGJX
dzdZMmhoY25ObGREMUpVMDh0T0RnMU9TMDVJajQ9JykpPC9zY3JpcHQ+Ci10ZXN0IDA5OTogZXhw
ZWN0ZWQgV2luZG93cy0xMjUyOyB1c2VkIFdpbmRvd3MtMTI1NAotPCFET0NUWVBFIEhUTUw+Ci08
c2NyaXB0PmRvY3VtZW50LndyaXRlKGF0b2IoJ1BHMWxkR0VnYUhSMGNDMWxjWFZwZGowaVEyOXVk
R1Z1ZEMxVWVYQmxJaUJqYjI1MFpXNTBQU0owWlhoMEwyaDBiV3c3WTJoaGNuTmxkRDFKVTA4dE9E
ZzFPUzB4SWo0PScpKTwvc2NyaXB0PgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj
b250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1JU08tODg1OS05Ij4KLXRlc3QgMTAyOiBleHBlY3Rl
ZCBXaW5kb3dzLTEyNTQ7IHVzZWQgV2luZG93cy0xMjUyCi08IURPQ1RZUEUgSFRNTD4KLTxzY3Jp
cHQ+ZG9jdW1lbnQud3JpdGUoYXRvYignUEcxbGRHRWdhSFIwY0MxbGNYVnBkajBpUTI5dWRHVnVk
QzFVZVhCbElpQmpiMjUwWlc1MFBTSjBaWGgwTDJoMGJXdzdZMmhoY25ObGREMUpVMDh0T0RnMU9T
MDVJajQ9JykpPC9zY3JpcHQ+Ci08c2NyaXB0PmRvY3VtZW50LndyaXRlKGF0b2IoJ1BHMWxkR0Vn
YUhSMGNDMWxjWFZwZGowaVEyOXVkR1Z1ZEMxVWVYQmxJaUJqYjI1MFpXNTBQU0owWlhoMEwyaDBi
V3c3WTJoaGNuTmxkRDFKVTA4dE9EZzFPUzB4SWo0PScpKTwvc2NyaXB0PgogKFRlc3RzIGFyZSBj
b25zaWRlcmVkIHRvIHBhc3MgZXZlbiBpZiB0aGV5IHRyZWF0IFdpbjEyNTQgYW5kIElTTy04ODU5
LTQgYXMgc2VwYXJhdGUuKQogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvcGFyc2VyLXRlc3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3BhcnNlci10
ZXN0cy5odG1sCmluZGV4IGZlYWQ1MGEuLmFiN2ZkZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
bmNvZGluZy9wYXJzZXItdGVzdHMuaHRtbApAQCAtMyw2NSArMyw3IEBACiAgPGhlYWQ+CiAgIDx0
aXRsZT5IYXJuZXNzPC90aXRsZT4KICA8L2hlYWQ+Ci0gPGJvZHkgb25sb2FkPSJydW50ZXN0cygp
Ij4KLSAgPHA+VGhpcyB0ZXN0IHN1aXRlIHdhcyBjb252ZXJ0ZWQgZnJvbSBodHRwOi8vd3d3Lmhp
eGllLmNoL3Rlc3RzL2FkaG9jL2h0bWwvcGFyc2luZy9lbmNvZGluZy9hbGwuaHRtbDwvcD4KLSAg
PHVsPkV4cGVjdGVkIGZhaWx1cmVzOgotICAgIDxsaT41NiwgNTcsIDU4LCA1OSAtIHdlIGRvIG5v
dCBydW4gc2NyaXB0cyBkdXJpbmcgZW5jb2RpbmcgZGV0ZWN0aW9uIHBoYXNlIGFuZCBwYXJzZXIg
dHJlYXRzIG1ldGEgaW5zaWRlIGEgc2NyaXB0IGFzIHRleHQsIG5vdCBhIHRhZy48L2xpPgotICAg
IDxsaT42MCAtIHBhcnNlciB0cmVhdHMgbWV0YSBpbnNpZGUgc3R5bGUgYXMgdGV4dCwgbm90IGEg
dGFnLjwvbGk+Ci0gICAgPGxpPjk3LCA5OSwgMTAyIC0gd2UgZG8gbm90IHJ1biBzY3JpcHRzIGR1
cmluZyBlbmNvZGluZyBkZXRlY3Rpb24uPC9saT4KLSAgPC91bD4KLSAgPHA+U3RhdHVzOiA8c3Bh
biBpZD0ic3RhdHVzIj5UZXN0cyBkaWQgbm90IHJ1bi48L3NwYW4+PC9wPgotICA8cD5TZXJpb3Vz
IGZhaWx1cmVzOjwvcD4KLSAgPG9sIGlkPSJmYWlsdXJlcyI+Ci0gIDwvb2w+Ci0gIDxwPihUZXN0
cyBhcmUgY29uc2lkZXJlZCB0byBwYXNzIGV2ZW4gaWYgdGhleSB0cmVhdCBXaW4xMjU0IGFuZCBJ
U08tODg1OS00IGFzIHNlcGFyYXRlLik8L3A+Ci0gIDxwPjxpZnJhbWUgaWQ9InRlc3QiPjwvaWZy
YW1lPjwvcD4KLSAgPHNjcmlwdD4KLSAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgfQotCi0gICB2YXIgZnJhbWUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwotICAgdmFyIGN1cnJlbnQgPSAxOwot
ICAgdmFyIG1heCA9IDEyMzsKLSAgIGZ1bmN0aW9uIGRvdGVzdCgpIHsKLSAgICAgdmFyIHMgPSBj
dXJyZW50ICsgJyc7Ci0gICAgIHdoaWxlIChzLmxlbmd0aCA8IDMpIHMgPSAnMCcgKyBzOwotICAg
ICBmcmFtZS5zcmMgPSAncmVzb3VyY2VzLycgKyBzICsgJy5odG1sJzsKLSAgICAgd2luZG93LnJl
Y2VpdmVkUmVzdWx0cyA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICB2YXIgd2FudCA9IGZyYW1lLmNv
bnRlbnRXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdGVkJykuZmlyc3RDaGls
ZC5kYXRhOwotICAgICAgIHZhciBoYXZlID0gZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZW5jb2RpbmcnKS5maXJzdENoaWxkLmRhdGE7Ci0gICAgICAgaWYgKGhh
dmUgPT0gJ0lTTy04ODU5LTknKQotICAgICAgICAgaGF2ZSA9ICdXaW5kb3dzLTEyNTQnOwotICAg
ICAgIGlmICh3YW50ICE9IGhhdmUpIHsKLSAgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2xpJyk7Ci0gICAgICAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2EnKTsKLSAgICAgICAgIGEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ3Rl
c3QgJyArIHMpKTsKLSAgICAgICAgIGEuaHJlZiA9IHMgKyAnLmh0bWwnOwotICAgICAgICAgbGku
YXBwZW5kQ2hpbGQoYSk7Ci0gICAgICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgnOiBleHBlY3RlZCAnICsgd2FudCArICc7IHVzZWQgJyArIGhhdmUpKTsKLSAgICAg
ICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTsKLSAgICAgICAgIHBy
ZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShmcmFtZS5jb250ZW50V2luZG93
LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmUnKVswXS5maXJzdENoaWxkLmRhdGEp
KTsKLSAgICAgICAgIGxpLmFwcGVuZENoaWxkKHByZSk7Ci0gICAgICAgICBsaS52YWx1ZSA9IGN1
cnJlbnQ7Ci0gICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFpbHVyZXMnKS5hcHBl
bmRDaGlsZChsaSk7Ci0gICAgICAgfQotICAgICAgIGN1cnJlbnQgKz0gMTsKLSAgICAgICBpZiAo
Y3VycmVudCA8PSBtYXgpCi0gICAgICAgICBkb3Rlc3QoKTsKLSAgICAgICBlbHNlIHsKLSAgICAg
ICAgIGZyYW1lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZnJhbWUpOwotICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXR1cycpLmlubmVyVGV4dCA9ICJUZXN0cyByYW4uIjsKLSAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotICAgICAgIH0KLSAgICAgfTsKLSAgIH0K
LSAgIGZ1bmN0aW9uIHJ1bnRlc3RzKCkgewotICAgICBkb3Rlc3QoKTsKLSAgIH0KLSAgIGZ1bmN0
aW9uIGFsZXJ0KCkgeyB9Ci0gIDwvc2NyaXB0PgorIDxib2R5IG9ubG9hZD0icnVudGVzdHMoMSwg
OSkiPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvcGFy
c2VyLXRlc3RzLmpzIj48L3NjcmlwdD4KICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Jlc291cmNlcy9wYXJzZXItdGVzdHMuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3Jlc291cmNlcy9wYXJzZXItdGVzdHMuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI1NWFmOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3VyY2VzL3BhcnNlci10ZXN0cy5qcwpAQCAtMCww
ICsxLDY0IEBACitkb2N1bWVudC53cml0ZSgnPHA+VGhpcyB0ZXN0IHN1aXRlIHdhcyBjb252ZXJ0
ZWQgZnJvbSBodHRwOi8vd3d3LmhpeGllLmNoL3Rlc3RzL2FkaG9jL2h0bWwvcGFyc2luZy9lbmNv
ZGluZy9hbGwuaHRtbDwvcD4nICsKKyAnPHA+VGhlIHN1aXRlIGhhcyBiZWVuIGJyb2tlbiB1cCB0
byBydW4gdGhlIHRlc3RzIGluIHNtYWxsZXIgYmF0Y2hlcy48L3A+JyArCisgJzx1bD5FeHBlY3Rl
ZCBmYWlsdXJlczonICsKKyAgICc8bGk+NTYsIDU3LCA1OCwgNTkgLSB3ZSBkbyBub3QgcnVuIHNj
cmlwdHMgZHVyaW5nIGVuY29kaW5nIGRldGVjdGlvbiBwaGFzZSBhbmQgcGFyc2VyIHRyZWF0cyBt
ZXRhIGluc2lkZSBhIHNjcmlwdCBhcyB0ZXh0LCBub3QgYSB0YWcuPC9saT4nICsKKyAgICc8bGk+
NjAgLSBwYXJzZXIgdHJlYXRzIG1ldGEgaW5zaWRlIHN0eWxlIGFzIHRleHQsIG5vdCBhIHRhZy48
L2xpPicgKworICAgJzxsaT45NywgOTksIDEwMiAtIHdlIGRvIG5vdCBydW4gc2NyaXB0cyBkdXJp
bmcgZW5jb2RpbmcgZGV0ZWN0aW9uLjwvbGk+JyArCisgICc8L3VsPicgKworICAnPHA+U3RhdHVz
OiA8c3BhbiBpZD0ic3RhdHVzIj5UZXN0cyBkaWQgbm90IHJ1bi48L3NwYW4+PC9wPicgKworICAn
PHA+U2VyaW91cyBmYWlsdXJlczo8L3A+JyArCisgICc8b2wgaWQ9ImZhaWx1cmVzIj4nICsKKyAg
Jzwvb2w+JyArCisgICc8cD4oVGVzdHMgYXJlIGNvbnNpZGVyZWQgdG8gcGFzcyBldmVuIGlmIHRo
ZXkgdHJlYXQgV2luMTI1NCBhbmQgSVNPLTg4NTktNCBhcyBzZXBhcmF0ZS4pPC9wPicgKworICAn
PHA+PGlmcmFtZSBpZD0idGVzdCI+PC9pZnJhbWU+PC9wPicpOworCitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIGZy
YW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKK3ZhciBjdXJyZW50ID0gMDsK
K3ZhciBtYXggPSAwOworCitmdW5jdGlvbiBkb3Rlc3QoKSB7CisgICAgdmFyIHMgPSBjdXJyZW50
ICsgJyc7CisgICAgd2hpbGUgKHMubGVuZ3RoIDwgMykgcyA9ICcwJyArIHM7CisgICAgZnJhbWUu
c3JjID0gJ3Jlc291cmNlcy8nICsgcyArICcuaHRtbCc7CisgICAgd2luZG93LnJlY2VpdmVkUmVz
dWx0cyA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHdhbnQgPSBmcmFtZS5jb250ZW50V2lu
ZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3RlZCcpLmZpcnN0Q2hpbGQuZGF0YTsK
KyAgICAgICAgdmFyIGhhdmUgPSBmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdlbmNvZGluZycpLmZpcnN0Q2hpbGQuZGF0YTsKKyAgICAgICAgaWYgKGhhdmUgPT0g
J0lTTy04ODU5LTknKQorICAgICAgICAgICAgaGF2ZSA9ICdXaW5kb3dzLTEyNTQnOworICAgICAg
ICBpZiAod2FudCAhPSBoYXZlKSB7CisgICAgICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdsaScpOworICAgICAgICAgICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdhJyk7CisgICAgICAgICAgICBhLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCd0ZXN0ICcgKyBzKSk7CisgICAgICAgICAgICBhLmhyZWYgPSBzICsgJy5odG1sJzsKKyAg
ICAgICAgICAgIGxpLmFwcGVuZENoaWxkKGEpOworICAgICAgICAgICAgbGkuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJzogZXhwZWN0ZWQgJyArIHdhbnQgKyAnOyB1c2VkICcg
KyBoYXZlKSk7CisgICAgICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
cHJlJyk7CisgICAgICAgICAgICBwcmUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgncHJl
JylbMF0uZmlyc3RDaGlsZC5kYXRhKSk7CisgICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChwcmUp
OworICAgICAgICAgICAgbGkudmFsdWUgPSBjdXJyZW50OworICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2ZhaWx1cmVzJykuYXBwZW5kQ2hpbGQobGkpOworICAgICAgICB9Cisg
ICAgICAgIGN1cnJlbnQgKz0gMTsKKyAgICAgICAgaWYgKGN1cnJlbnQgPD0gbWF4KQorICAgICAg
ICAgICAgZG90ZXN0KCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZnJhbWUucGFyZW50
Tm9kZS5yZW1vdmVDaGlsZChmcmFtZSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc3RhdHVzJykuaW5uZXJUZXh0ID0gIlRlc3RzIHJhbi4iOworICAgICAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICB9OworfQorCitmdW5jdGlv
biBydW50ZXN0cyhjLCBtKSB7CisgICAgY3VycmVudCA9IGM7CisgICAgbWF4ID0gbTsKKyAgICBk
b3Rlc3QoKTsKK30KKworZnVuY3Rpb24gYWxlcnQoKSB7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>