<?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>26133</bug_id>
          
          <creation_ts>2009-06-02 08:36:24 -0700</creation_ts>
          <short_desc>Adapt and import py-dom-xpath tests</short_desc>
          <delta_ts>2009-06-02 12:29:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>XML</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>123987</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-06-02 08:36:24 -0700</bug_when>
    <thetext>&lt;http://code.google.com/p/py-dom-xpath/&gt; is a Python implementation of XPath 1.0, and it comes with a test suite that we could convert into JavaScript. The code is under MIT License.

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123989</commentid>
    <comment_count>1</comment_count>
      <attachid>30869</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-06-02 09:11:44 -0700</bug_when>
    <thetext>Created attachment 30869
proposed patch

This also fixes some minor bugs found with the test suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124006</commentid>
    <comment_count>2</comment_count>
      <attachid>30869</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-06-02 10:27:37 -0700</bug_when>
    <thetext>Comment on attachment 30869
proposed patch

&gt; +        Fix bugs found with this test suite:
&gt; +        - name and local-name were incorrect for processing instructions (XPath expanded-name
&gt; +        doesn&apos;t match DOM exactly);
&gt; +        - name, local-name and namespace functions sould crash on attribute nodes;

Typo: &quot;sould&quot;

&gt; +        which doesn&apos;t match anything available via DOM exactly. Calculate the expanded name properly.
&gt; +        (WebCore::XPath::FunNamespaceURI::evaluate): This function could crash if used with an
&gt; +        attribute node, because it released what was possibly the only reference to attribute node
&gt; +        before using it. Changed the fucntion to avoid such situation.

Typo: &quot;fucntion&quot;

&gt; +
&gt; +            // String::toDouble() supports exponential notation, which is not allowed in XPath.
&gt; +            unsigned len = str.length();
&gt; +            for (unsigned i = 0; i &lt; len; ++i) {
&gt; +                UChar c = str[i];
&gt; +                if ((c &lt; &apos;0&apos; || c &gt; &apos;9&apos;) &amp;&amp; c != &apos;.&apos;  &amp;&amp; c != &apos;-&apos;)

Can we use isASCIIDigit here?


r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124017</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-06-02 11:00:33 -0700</bug_when>
    <thetext>Committed revision 44361.

&gt; Can we use isASCIIDigit here?

We can!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124034</commentid>
    <comment_count>4</comment_count>
      <attachid>30869</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-06-02 12:29:33 -0700</bug_when>
    <thetext>Comment on attachment 30869
proposed patch

&gt; +            unsigned len = str.length();
&gt; +            for (unsigned i = 0; i &lt; len; ++i) {
&gt; +                UChar c = str[i];
&gt; +                if ((c &lt; &apos;0&apos; || c &gt; &apos;9&apos;) &amp;&amp; c != &apos;.&apos;  &amp;&amp; c != &apos;-&apos;)
&gt; +                    return numeric_limits&lt;double&gt;::quiet_NaN();
&gt; +            }

I&apos;d like to see this in a helper function, just because the name of that function might be a useful bit of documentation.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30869</attachid>
            <date>2009-06-02 09:11:44 -0700</date>
            <delta_ts>2009-06-02 10:27:37 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>py-dom-xpath.txt</filename>
            <type>text/plain</type>
            <size>79344</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDM1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjggQEAKKzIwMDktMDYtMDIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjEzMworICAgICAgICBB
ZGFwdCBhbmQgaW1wb3J0IHB5LWRvbS14cGF0aCB0ZXN0cworCisgICAgICAgIFRlc3RzOiBmYXN0
L3hwYXRoL3B5LWRvbS14cGF0aC9hYmJyZXZpYXRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QveHBhdGgvcHktZG9tLXhwYXRoL2F4ZXMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC94cGF0
aC9weS1kb20teHBhdGgvZGF0YS5odG1sCisgICAgICAgICAgICAgICBmYXN0L3hwYXRoL3B5LWRv
bS14cGF0aC9leHByZXNzaW9ucy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3hwYXRoL3B5LWRv
bS14cGF0aC9mdW5jdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC94cGF0aC9weS1kb20t
eHBhdGgvbm9kZXRlc3RzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QveHBhdGgvcHktZG9tLXhw
YXRoL3BhdGhzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QveHBhdGgvcHktZG9tLXhwYXRoL3By
ZWRpY2F0ZXMuaHRtbAorCisgICAgICAgIEZpeCBidWdzIGZvdW5kIHdpdGggdGhpcyB0ZXN0IHN1
aXRlOgorICAgICAgICAtIG5hbWUgYW5kIGxvY2FsLW5hbWUgd2VyZSBpbmNvcnJlY3QgZm9yIHBy
b2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zIChYUGF0aCBleHBhbmRlZC1uYW1lCisgICAgICAgIGRvZXNu
J3QgbWF0Y2ggRE9NIGV4YWN0bHkpOworICAgICAgICAtIG5hbWUsIGxvY2FsLW5hbWUgYW5kIG5h
bWVzcGFjZSBmdW5jdGlvbnMgc291bGQgY3Jhc2ggb24gYXR0cmlidXRlIG5vZGVzOworICAgICAg
ICAtIGF0dGVtcHMgdG8gbWFrZSBub2RlIHNldHMgZnJvbSBvdGhlciB0eXBlcyB3ZXJlIG5vdCBk
ZXRlY3RlZCBhcyBlcnJvcnMuCisKKyAgICAgICAgTm8gcGVyZm9ybWFuY2UgaW1wYWN0LgorCisg
ICAgICAgICogeG1sL1hQYXRoRXhwcmVzc2lvbk5vZGUuaDogVHJhY2sgdHlwZSBjb252ZXJzaW9u
IGVycm9ycyB0aGF0IGhhcHBlbiBkdXJpbmcgZXZhbHVhdGlvbi4KKyAgICAgICAgQW4gZXJyb3Ig
d29uJ3Qgc3RvcCBldmFsdWF0aW9uLCBidXQgYW4gZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIGFm
dGVyd2FyZHMuIFdlIGNvdWxkIGFsc28KKyAgICAgICAgZGV0ZWN0IGNvbnZlcnNpb24gZXJyb3Jz
IGF0IGNvbXBpbGUgdGltZSwgYnV0IG5vdCBpZiB3ZSdyZSBnb2luZyB0byBzdXBwb3J0IFhQYXRo
IHZhcmlhYmxlcworICAgICAgICAod2hpY2ggaXMgdW5uZWNlc3NhcnkgZm9yIFhQYXRoRXZhbHVh
dG9yLCBidXQgd2lsbCBiZSBuZWNlc3NhcnkgaWYgd2UgZGVjaWRlIHRvIG1ha2Ugb3VyIG93bgor
ICAgICAgICBYU0xUIG9uZSBkYXkpLgorCisgICAgICAgICogeG1sL1hQYXRoRXhwcmVzc2lvbi5j
cHA6IChXZWJDb3JlOjpYUGF0aEV4cHJlc3Npb246OmV2YWx1YXRlKTogQ2hlY2sgd2hldGhlciBh
IHR5cGUKKyAgICAgICAgY29udmVyc2lvbiBleGNlcHRpb24gb2NjdXJyZWQgZHVyaW5nIGV2YWx1
YXRpb24sIGFuZCByYWlzZSBhbiBleGNwZXRpb24gaWYgaXQgZGlkLgorCisgICAgICAgICogeG1s
L1hQYXRoRnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpleHBhbmRlZE5h
bWVMb2NhbFBhcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OmV4cGFuZGVkTmFtZSk6Cisg
ICAgICAgIFhQYXRoIG5hbWUoKSwgbG9jYWwtbmFtZSgpIGFuZCBuYW1lc3BhY2UtdXJpKCkgZnVu
Y3Rpb25zIGFyZSBkZWZpbmVkIGluIHRlcm1zIG9mIGV4cGFuZGVkLW5hbWUsCisgICAgICAgIHdo
aWNoIGRvZXNuJ3QgbWF0Y2ggYW55dGhpbmcgYXZhaWxhYmxlIHZpYSBET00gZXhhY3RseS4gQ2Fs
Y3VsYXRlIHRoZSBleHBhbmRlZCBuYW1lIHByb3Blcmx5LgorICAgICAgICAoV2ViQ29yZTo6WFBh
dGg6OkZ1bk5hbWVzcGFjZVVSSTo6ZXZhbHVhdGUpOiBUaGlzIGZ1bmN0aW9uIGNvdWxkIGNyYXNo
IGlmIHVzZWQgd2l0aCBhbgorICAgICAgICBhdHRyaWJ1dGUgbm9kZSwgYmVjYXVzZSBpdCByZWxl
YXNlZCB3aGF0IHdhcyBwb3NzaWJseSB0aGUgb25seSByZWZlcmVuY2UgdG8gYXR0cmlidXRlIG5v
ZGUKKyAgICAgICAgYmVmb3JlIHVzaW5nIGl0LiBDaGFuZ2VkIHRoZSBmdWNudGlvbiB0byBhdm9p
ZCBzdWNoIHNpdHVhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5Mb2NhbE5hbWU6
OmV2YWx1YXRlKTogRGl0dG8uIEFsc28sIHVzZWQgdGhlIG5ldyBleHBhbmRlZE5hbWVMb2NhbFBh
cnQoKQorICAgICAgICB0byB3b3JrIHByb3Blcmx5IHdpdGggcHJvY2Vzc2luZyBpbnN0cnVjdGlv
biBub2Rlcy4KKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5OYW1lOjpldmFsdWF0ZSk6IERp
dHRvICh1c2luZyBleHBhbmRlZE5hbWUoKSkuCisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVu
Q291bnQ6OmV2YWx1YXRlKTogU2lnbmFsIGFuIGVycm9yIGlmIHRoZSBhcmd1bWVudCBpcyBub3Qg
YSBub2RlLXNldAorICAgICAgICAoYnkgdXNpbmcgdG9Ob2RlU2V0IHVuY29uZGl0aW9uYWxseSwg
d2hpY2ggd2lsbCByYWlzZSBhbiBlcnJvciwgYW5kIHJldHVybiBhbiBlbXB0eSBzZXQpLgorCisg
ICAgICAgICogeG1sL1hQYXRoUGF0aC5jcHA6IChXZWJDb3JlOjpYUGF0aDo6RmlsdGVyOjpldmFs
dWF0ZSk6IFNpZ25hbCBhbiBlcnJvciBpZiB0aGUgZXhwcmVzc2lvbgorICAgICAgICBldmFsdWF0
aW9uIHJlc3VsdCBpcyBub3QgYSBub2RlLXNldC4KKworICAgICAgICAqIHhtbC9YUGF0aFBhdGgu
aDogKFdlYkNvcmU6OlhQYXRoOjpGaWx0ZXI6OnJlc3VsdFR5cGUpOiBBIEZpbHRlcidzIHJlc3Vs
dCBpcyBhY3R1YWxseQorICAgICAgICBhbHdheXMgYSBub2RlLXNldCAodGhpcyBpcyBub3Qgc28g
Zm9yIEZpbHRlckV4cHIgcHJvZHVjdGlvbiBpbiB0aGUgc3BlYywgYnV0IGlzIGZvciB1cywKKyAg
ICAgICAgYmVjYXVzZSB3ZSBkb24ndCBuYWl2ZWx5IG1hcCBCTkYgcHJvZHVjdGlvbnMgdG8gY2xh
c3NlcykuCisKKyAgICAgICAgKiB4bWwvWFBhdGhQcmVkaWNhdGUuY3BwOiAoV2ViQ29yZTo6WFBh
dGg6OlVuaW9uOjpldmFsdWF0ZSk6IFNpZ25hbCBhbiBlcnJvciBpZiBlaXRoZXIgc2lkZQorICAg
ICAgICBpcyBub3QgYSBub2RlLXNldC4KKworICAgICAgICAqIHhtbC9YUGF0aFN0ZXAuY3BwOiBS
ZW1vdmVkIGFuIHVubmVjZXNhcnkgaW5jbHVkZS4KKworICAgICAgICAqIHhtbC9YUGF0aFZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpWYWx1ZTo6dG9Ob2RlU2V0KTogU2lnbmFs
IGFuIGVycm9yIGlmIGNvbnZlcnNpb24gZmFpbHMuCisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6
VmFsdWU6Om1vZGlmaWFibGVOb2RlU2V0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpYUGF0
aDo6VmFsdWU6OnRvTnVtYmVyKTogRG9uJ3QgYWxsb3cgaW5wdXRzIHRoYXQgZG9uJ3QgbWF0Y2gg
WFBhdGggTnVtYmVyIHByb2R1Y3Rpb24KKyAgICAgICAgKGluIHBhcnRpY3VsYXIsIHRob3NlIHVz
aW5nIGV4cG9uZW50aWFsIG5vdGF0aW9uKS4KKwogMjAwOS0wNi0wMSAgSmVyZW15IE9ybG93ICA8
am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4g
IExhbmRlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb24uY3BwCShyZXZp
c2lvbiA0NDM0OCkKKysrIFdlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDkgKzMwLDggQEAKICNpZiBFTkFCTEUoWFBBVEgpCiAKICNpbmNsdWRlICJE
b2N1bWVudC5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJOb2RlLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJYUGF0aEV4Y2VwdGlvbi5o
IgogI2luY2x1ZGUgIlhQYXRoRXhwcmVzc2lvbk5vZGUuaCIKICNpbmNsdWRlICJYUGF0aE5TUmVz
b2x2ZXIuaCIKICNpbmNsdWRlICJYUGF0aFBhcnNlci5oIgpAQCAtNzEsOSArNzAsMTcgQEAgUGFz
c1JlZlB0cjxYUGF0aFJlc3VsdD4gWFBhdGhFeHByZXNzaW9uOgogICAgIGV2YWx1YXRpb25Db250
ZXh0Lm5vZGUgPSBjb250ZXh0Tm9kZTsKICAgICBldmFsdWF0aW9uQ29udGV4dC5zaXplID0gMTsK
ICAgICBldmFsdWF0aW9uQ29udGV4dC5wb3NpdGlvbiA9IDE7CisgICAgZXZhbHVhdGlvbkNvbnRl
eHQuaGFkVHlwZUNvbnZlcnNpb25FcnJvciA9IGZhbHNlOwogICAgIFJlZlB0cjxYUGF0aFJlc3Vs
dD4gcmVzdWx0ID0gWFBhdGhSZXN1bHQ6OmNyZWF0ZShjb250ZXh0Tm9kZS0+ZG9jdW1lbnQoKSwg
bV90b3BFeHByZXNzaW9uLT5ldmFsdWF0ZSgpKTsKICAgICBldmFsdWF0aW9uQ29udGV4dC5ub2Rl
ID0gMDsgLy8gRG8gbm90IGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIGNvbnRleHQgbm9kZSwgYXMg
dGhpcyBtYXkgcHJldmVudCB0aGUgd2hvbGUgZG9jdW1lbnQgZnJvbSBiZWluZyBkZXN0cm95ZWQg
aW4gdGltZS4KIAorICAgIGlmIChldmFsdWF0aW9uQ29udGV4dC5oYWRUeXBlQ29udmVyc2lvbkVy
cm9yKSB7CisgICAgICAgIC8vIEl0IGlzIG5vdCBzcGVjaWZpZWQgd2hhdCB0byBkbyBpZiB0eXBl
IGNvbnZlcnNpb24gZmFpbHMgd2hpbGUgZXZhbHVhdGluZyBhbiBleHByZXNzaW9uLCBhbmQgSU5W
QUxJRF9FWFBSRVNTSU9OX0VSUiBpcyBub3QgZXhhY3RseSByaWdodAorICAgICAgICAvLyB3aGVu
IHRoZSBmYWlsdXJlIGhhcHBlbnMgaW4gYW4gb3RoZXJ3aXNlIHZhbGlkIGV4cHJlc3Npb24gYmVj
YXVzZSBvZiBhIHZhcmlhYmxlLiBCdXQgWFBhdGhFdmFsdWF0b3IgZG9lcyBub3Qgc3VwcG9ydCB2
YXJpYWJsZXMsIHNvIGl0J3MgY2xvc2UgZW5vdWdoLgorICAgICAgICBlYyA9IFhQYXRoRXhjZXB0
aW9uOjpJTlZBTElEX0VYUFJFU1NJT05fRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisK
ICAgICBpZiAodHlwZSAhPSBYUGF0aFJlc3VsdDo6QU5ZX1RZUEUpIHsKICAgICAgICAgZWMgPSAw
OwogICAgICAgICByZXN1bHQtPmNvbnZlcnRUbyh0eXBlLCBlYyk7CkluZGV4OiBXZWJDb3JlL3ht
bC9YUGF0aEV4cHJlc3Npb25Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWFBhdGhF
eHByZXNzaW9uTm9kZS5oCShyZXZpc2lvbiA0NDM0OCkKKysrIFdlYkNvcmUveG1sL1hQYXRoRXhw
cmVzc2lvbk5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTMgKzQwLDEyIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBuYW1lc3BhY2UgWFBhdGggewogICAgICAgICAKICAgICAgICAgc3Ry
dWN0IEV2YWx1YXRpb25Db250ZXh0IHsKLSAgICAgICAgICAgIEV2YWx1YXRpb25Db250ZXh0KCkg
OiBub2RlKDApLCBzaXplKDApLCBwb3NpdGlvbigwKSB7IH0KLQogICAgICAgICAgICAgUmVmUHRy
PE5vZGU+IG5vZGU7CiAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemU7CiAgICAgICAgICAg
ICB1bnNpZ25lZCBsb25nIHBvc2l0aW9uOwogICAgICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4gdmFyaWFibGVCaW5kaW5nczsKIAorICAgICAgICAgICAgYm9vbCBoYWRUeXBlQ29udmVy
c2lvbkVycm9yOwogICAgICAgICB9OwogCiAgICAgICAgIGNsYXNzIFBhcnNlTm9kZSB7CkluZGV4
OiBXZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94
bWwvWFBhdGhGdW5jdGlvbnMuY3BwCShyZXZpc2lvbiA0NDM0OCkKKysrIFdlYkNvcmUveG1sL1hQ
YXRoRnVuY3Rpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIk5hbWVkTm9k
ZU1hcC5oIgorI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlhN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiWFBhdGhVdGlsLmgiCiAjaW5jbHVkZSAiWFBhdGhWYWx1ZS5o
IgpAQCAtMzYyLDcxICszNjMsNjcgQEAgVmFsdWUgRnVuSWQ6OmV2YWx1YXRlKCkgY29uc3QKICAg
ICByZXR1cm4gVmFsdWUocmVzdWx0LCBWYWx1ZTo6YWRvcHQpOwogfQogCitzdGF0aWMgaW5saW5l
IFN0cmluZyBleHBhbmRlZE5hbWVMb2NhbFBhcnQoTm9kZSogbm9kZSkKK3sKKyAgICAvLyBUaGUg
bG9jYWwgcGFydCBvZiBhbiBYUGF0aCBleHBhbmRlZC1uYW1lIG1hdGNoZXMgRE9NIGxvY2FsIG5h
bWUgZm9yIG1vc3Qgbm9kZSB0eXBlcywgZXhjZXB0IGZvciBuYW1lc3BhY2Ugbm9kZXMgYW5kIHBy
b2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gbm9kZXMuCisgICAgQVNTRVJUKG5vZGUtPm5vZGVUeXBlKCkg
IT0gTm9kZTo6WFBBVEhfTkFNRVNQQUNFX05PREUpOyAvLyBOb3Qgc3VwcG9ydGVkIHlldC4KKyAg
ICBpZiAobm9kZS0+bm9kZVR5cGUoKSA9PSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05P
REUpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihu
b2RlKS0+dGFyZ2V0KCk7CisgICAgcmV0dXJuIG5vZGUtPmxvY2FsTmFtZSgpLnN0cmluZygpOwor
fQorCitzdGF0aWMgaW5saW5lIFN0cmluZyBleHBhbmRlZE5hbWUoTm9kZSogbm9kZSkKK3sKKyAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIHByZWZpeCA9IG5vZGUtPnByZWZpeCgpOworICAgIHJldHVy
biBwcmVmaXguaXNFbXB0eSgpID8gZXhwYW5kZWROYW1lTG9jYWxQYXJ0KG5vZGUpIDogcHJlZml4
ICsgIjoiICsgZXhwYW5kZWROYW1lTG9jYWxQYXJ0KG5vZGUpOworfQorCiBWYWx1ZSBGdW5Mb2Nh
bE5hbWU6OmV2YWx1YXRlKCkgY29uc3QKIHsKLSAgICBOb2RlKiBub2RlID0gMDsKICAgICBpZiAo
YXJnQ291bnQoKSA+IDApIHsKICAgICAgICAgVmFsdWUgYSA9IGFyZygwKS0+ZXZhbHVhdGUoKTsK
ICAgICAgICAgaWYgKCFhLmlzTm9kZVNldCgpKQogICAgICAgICAgICAgcmV0dXJuICIiOwogCi0g
ICAgICAgIG5vZGUgPSBhLnRvTm9kZVNldCgpLmZpcnN0Tm9kZSgpOwotICAgICAgICBpZiAoIW5v
ZGUpCi0gICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgIE5vZGUqIG5vZGUgPSBhLnRvTm9k
ZVNldCgpLmZpcnN0Tm9kZSgpOworICAgICAgICByZXR1cm4gbm9kZSA/IGV4cGFuZGVkTmFtZUxv
Y2FsUGFydChub2RlKSA6ICIiOwogICAgIH0KIAotICAgIGlmICghbm9kZSkKLSAgICAgICAgbm9k
ZSA9IGV2YWx1YXRpb25Db250ZXh0KCkubm9kZS5nZXQoKTsKLQotICAgIHJldHVybiBub2RlLT5s
b2NhbE5hbWUoKS5zdHJpbmcoKTsKKyAgICByZXR1cm4gZXhwYW5kZWROYW1lTG9jYWxQYXJ0KGV2
YWx1YXRpb25Db250ZXh0KCkubm9kZS5nZXQoKSk7CiB9CiAKIFZhbHVlIEZ1bk5hbWVzcGFjZVVS
STo6ZXZhbHVhdGUoKSBjb25zdAogewotICAgIE5vZGUqIG5vZGUgPSAwOwogICAgIGlmIChhcmdD
b3VudCgpID4gMCkgewogICAgICAgICBWYWx1ZSBhID0gYXJnKDApLT5ldmFsdWF0ZSgpOwogICAg
ICAgICBpZiAoIWEuaXNOb2RlU2V0KCkpCiAgICAgICAgICAgICByZXR1cm4gIiI7CiAKLSAgICAg
ICAgbm9kZSA9IGEudG9Ob2RlU2V0KCkuZmlyc3ROb2RlKCk7Ci0gICAgICAgIGlmICghbm9kZSkK
LSAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgTm9kZSogbm9kZSA9IGEudG9Ob2RlU2V0
KCkuZmlyc3ROb2RlKCk7CisgICAgICAgIHJldHVybiBub2RlID8gbm9kZS0+bmFtZXNwYWNlVVJJ
KCkuc3RyaW5nKCkgOiAiIjsKICAgICB9CiAKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIG5vZGUg
PSBldmFsdWF0aW9uQ29udGV4dCgpLm5vZGUuZ2V0KCk7Ci0KLSAgICByZXR1cm4gbm9kZS0+bmFt
ZXNwYWNlVVJJKCkuc3RyaW5nKCk7CisgICAgcmV0dXJuIGV2YWx1YXRpb25Db250ZXh0KCkubm9k
ZS0+bmFtZXNwYWNlVVJJKCkuc3RyaW5nKCk7CiB9CiAKIFZhbHVlIEZ1bk5hbWU6OmV2YWx1YXRl
KCkgY29uc3QKIHsKLSAgICBOb2RlKiBub2RlID0gMDsKICAgICBpZiAoYXJnQ291bnQoKSA+IDAp
IHsKICAgICAgICAgVmFsdWUgYSA9IGFyZygwKS0+ZXZhbHVhdGUoKTsKICAgICAgICAgaWYgKCFh
LmlzTm9kZVNldCgpKQogICAgICAgICAgICAgcmV0dXJuICIiOwogCi0gICAgICAgIG5vZGUgPSBh
LnRvTm9kZVNldCgpLmZpcnN0Tm9kZSgpOwotICAgICAgICBpZiAoIW5vZGUpCi0gICAgICAgICAg
ICByZXR1cm4gIiI7CisgICAgICAgIE5vZGUqIG5vZGUgPSBhLnRvTm9kZVNldCgpLmZpcnN0Tm9k
ZSgpOworICAgICAgICByZXR1cm4gbm9kZSA/IGV4cGFuZGVkTmFtZShub2RlKSA6ICIiOwogICAg
IH0KIAotICAgIGlmICghbm9kZSkKLSAgICAgICAgbm9kZSA9IGV2YWx1YXRpb25Db250ZXh0KCku
bm9kZS5nZXQoKTsKLQotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4ID0gbm9kZS0+cHJl
Zml4KCk7Ci0gICAgcmV0dXJuIHByZWZpeC5pc0VtcHR5KCkgPyBub2RlLT5sb2NhbE5hbWUoKS5z
dHJpbmcoKSA6IHByZWZpeCArICI6IiArIG5vZGUtPmxvY2FsTmFtZSgpOworICAgIHJldHVybiBl
eHBhbmRlZE5hbWUoZXZhbHVhdGlvbkNvbnRleHQoKS5ub2RlLmdldCgpKTsKIH0KIAogVmFsdWUg
RnVuQ291bnQ6OmV2YWx1YXRlKCkgY29uc3QKIHsKICAgICBWYWx1ZSBhID0gYXJnKDApLT5ldmFs
dWF0ZSgpOwogICAgIAotICAgIGlmICghYS5pc05vZGVTZXQoKSkKLSAgICAgICAgcmV0dXJuIDAu
MDsKLSAgICAKICAgICByZXR1cm4gZG91YmxlKGEudG9Ob2RlU2V0KCkuc2l6ZSgpKTsKIH0KIApJ
bmRleDogV2ViQ29yZS94bWwvWFBhdGhQYXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3ht
bC9YUGF0aFBhdGguY3BwCShyZXZpc2lvbiA0NDM0OCkKKysrIFdlYkNvcmUveG1sL1hQYXRoUGF0
aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDkgKzU2LDYgQEAgVmFsdWUgRmlsdGVyOjpldmFs
dWF0ZSgpIGNvbnN0CiB7CiAgICAgVmFsdWUgdiA9IG1fZXhwci0+ZXZhbHVhdGUoKTsKICAgICAK
LSAgICBpZiAoIXYuaXNOb2RlU2V0KCkpIAotICAgICAgICByZXR1cm4gdjsKLQogICAgIE5vZGVT
ZXQmIG5vZGVzID0gdi5tb2RpZmlhYmxlTm9kZVNldCgpOwogICAgIG5vZGVzLnNvcnQoKTsKIApJ
bmRleDogV2ViQ29yZS94bWwvWFBhdGhQYXRoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwv
WFBhdGhQYXRoLmgJKHJldmlzaW9uIDQ0MzQ4KQorKysgV2ViQ29yZS94bWwvWFBhdGhQYXRoLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAgICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0OwogCiAgICAgICAgIHByaXZh
dGU6Ci0gICAgICAgICAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCB7
IHJldHVybiBtX2V4cHItPnJlc3VsdFR5cGUoKTsgfQorICAgICAgICAgICAgdmlydHVhbCBWYWx1
ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3QgeyByZXR1cm4gVmFsdWU6Ok5vZGVTZXRWYWx1ZTsg
fQogCiAgICAgICAgICAgICBFeHByZXNzaW9uKiBtX2V4cHI7CiAgICAgICAgICAgICBWZWN0b3I8
UHJlZGljYXRlKj4gbV9wcmVkaWNhdGVzOwpJbmRleDogV2ViQ29yZS94bWwvWFBhdGhQcmVkaWNh
dGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hQYXRoUHJlZGljYXRlLmNwcAkocmV2
aXNpb24gNDQzNDgpCisrKyBXZWJDb3JlL3htbC9YUGF0aFByZWRpY2F0ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIzMyw4ICsyMzMsNiBAQCBWYWx1ZSBVbmlvbjo6ZXZhbHVhdGUoKSBjb25zdAog
ewogICAgIFZhbHVlIGxoc1Jlc3VsdCA9IHN1YkV4cHIoMCktPmV2YWx1YXRlKCk7CiAgICAgVmFs
dWUgcmhzID0gc3ViRXhwcigxKS0+ZXZhbHVhdGUoKTsKLSAgICBpZiAoIWxoc1Jlc3VsdC5pc05v
ZGVTZXQoKSB8fCAhcmhzLmlzTm9kZVNldCgpKQotICAgICAgICByZXR1cm4gTm9kZVNldCgpOwog
ICAgIAogICAgIE5vZGVTZXQmIHJlc3VsdFNldCA9IGxoc1Jlc3VsdC5tb2RpZmlhYmxlTm9kZVNl
dCgpOwogICAgIGNvbnN0IE5vZGVTZXQmIHJoc05vZGVzID0gcmhzLnRvTm9kZVNldCgpOwpJbmRl
eDogV2ViQ29yZS94bWwvWFBhdGhTdGVwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9Y
UGF0aFN0ZXAuY3BwCShyZXZpc2lvbiA0NDM0OCkKKysrIFdlYkNvcmUveG1sL1hQYXRoU3RlcC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDA1IEZyZXJpY2ggUmFhYmUgPHJhYWJlQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDkgQXBwbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNyBBbGV4ZXkgUHJvc2t1
cnlha292IDxhcEB3ZWJraXQub3JnPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzQsNyArMzQsNiBA
QAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUg
Ik5hbWVkTm9kZU1hcC5oIgotI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgogI2luY2x1ZGUg
IlhQYXRoUGFyc2VyLmgiCiAjaW5jbHVkZSAiWFBhdGhVdGlsLmgiCiAKSW5kZXg6IFdlYkNvcmUv
eG1sL1hQYXRoVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hQYXRoVmFsdWUu
Y3BwCShyZXZpc2lvbiA0NDM0OCkKKysrIFdlYkNvcmUveG1sL1hQYXRoVmFsdWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCwxMSArMzAsMTEgQEAKICNpZiBFTkFCTEUoWFBBVEgpCiAKICNpbmNs
dWRlICJOb2RlLmgiCisjaW5jbHVkZSAiWFBhdGhFeHByZXNzaW9uTm9kZS5oIgogI2luY2x1ZGUg
IlhQYXRoVXRpbC5oIgotCisjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0
cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUgPGxpbWl0cz4K
IAogdXNpbmcgc3RkOjpudW1lcmljX2xpbWl0czsKIApAQCAtNDUsNiArNDUsOSBAQCBjb25zdCBW
YWx1ZTo6QWRvcHRUYWcgVmFsdWU6OmFkb3B0ID0ge307CiAKIGNvbnN0IE5vZGVTZXQmIFZhbHVl
Ojp0b05vZGVTZXQoKSBjb25zdAogeworICAgIGlmICghaXNOb2RlU2V0KCkpCisgICAgICAgIEV4
cHJlc3Npb246OmV2YWx1YXRpb25Db250ZXh0KCkuaGFkVHlwZUNvbnZlcnNpb25FcnJvciA9IHRy
dWU7CisKICAgICBpZiAoIW1fZGF0YSkgewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE5v
ZGVTZXQsIGVtcHR5Tm9kZVNldCwgKCkpOwogICAgICAgICByZXR1cm4gZW1wdHlOb2RlU2V0OwpA
QCAtNTUsNiArNTgsOSBAQCBjb25zdCBOb2RlU2V0JiBWYWx1ZTo6dG9Ob2RlU2V0KCkgY29uc3QK
IAogTm9kZVNldCYgVmFsdWU6Om1vZGlmaWFibGVOb2RlU2V0KCkKIHsKKyAgICBpZiAoIWlzTm9k
ZVNldCgpKQorICAgICAgICBFeHByZXNzaW9uOjpldmFsdWF0aW9uQ29udGV4dCgpLmhhZFR5cGVD
b252ZXJzaW9uRXJyb3IgPSB0cnVlOworCiAgICAgaWYgKCFtX2RhdGEpCiAgICAgICAgIG1fZGF0
YSA9IFZhbHVlRGF0YTo6Y3JlYXRlKCk7CiAgICAgCkBAIC04Niw4ICs5MiwxOCBAQCBkb3VibGUg
VmFsdWU6OnRvTnVtYmVyKCkgY29uc3QKICAgICAgICAgY2FzZSBOdW1iZXJWYWx1ZToKICAgICAg
ICAgICAgIHJldHVybiBtX251bWJlcjsKICAgICAgICAgY2FzZSBTdHJpbmdWYWx1ZTogeworICAg
ICAgICAgICAgY29uc3QgU3RyaW5nJiBzdHIgPSBtX2RhdGEtPm1fc3RyaW5nLnNpbXBsaWZ5V2hp
dGVTcGFjZSgpOworCisgICAgICAgICAgICAvLyBTdHJpbmc6OnRvRG91YmxlKCkgc3VwcG9ydHMg
ZXhwb25lbnRpYWwgbm90YXRpb24sIHdoaWNoIGlzIG5vdCBhbGxvd2VkIGluIFhQYXRoLgorICAg
ICAgICAgICAgdW5zaWduZWQgbGVuID0gc3RyLmxlbmd0aCgpOworICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgVUNoYXIgYyA9
IHN0cltpXTsKKyAgICAgICAgICAgICAgICBpZiAoKGMgPCAnMCcgfHwgYyA+ICc5JykgJiYgYyAh
PSAnLicgICYmIGMgIT0gJy0nKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAg
IGJvb2wgY2FuQ29udmVydDsKLSAgICAgICAgICAgIGRvdWJsZSB2YWx1ZSA9IG1fZGF0YS0+bV9z
dHJpbmcuc2ltcGxpZnlXaGl0ZVNwYWNlKCkudG9Eb3VibGUoJmNhbkNvbnZlcnQpOworICAgICAg
ICAgICAgZG91YmxlIHZhbHVlID0gc3RyLnRvRG91YmxlKCZjYW5Db252ZXJ0KTsKICAgICAgICAg
ICAgIGlmIChjYW5Db252ZXJ0KQogICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAg
ICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDQ0MzU4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDktMDYtMDIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjEzMworICAg
ICAgICBBZGFwdCBhbmQgaW1wb3J0IHB5LWRvbS14cGF0aCB0ZXN0cworCisgICAgICAgICogZmFz
dC94cGF0aC94cGF0aC10ZXN0LXByZS5qczogKHRlc3QpOiBBZGRlZCBhIG5ldyBoZWxwZXIgZnVu
Y3Rpb24uCisKKyAgICAgICAgKiBmYXN0L3hwYXRoL3B5LWRvbS14cGF0aDogQWRkZWQuCisgICAg
ICAgICogZmFzdC94cGF0aC9weS1kb20teHBhdGgvYWJicmV2aWF0aW9ucy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QveHBhdGgvcHktZG9tLXhwYXRoL2FiYnJldmlhdGlvbnMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC94cGF0aC9weS1kb20teHBhdGgvYXhlcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QveHBhdGgvcHktZG9tLXhwYXRoL2F4ZXMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC94cGF0aC9weS1kb20teHBhdGgvZGF0YS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QveHBhdGgvcHktZG9tLXhwYXRoL2RhdGEu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC94cGF0aC9weS1kb20teHBhdGgvZXhwcmVzc2lv
bnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3hwYXRoL3B5LWRvbS14cGF0
aC9leHByZXNzaW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3hwYXRoL3B5LWRvbS14
cGF0aC9ub2RldGVzdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3hwYXRo
L3B5LWRvbS14cGF0aC9ub2RldGVzdHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC94cGF0
aC9weS1kb20teHBhdGgvcGF0aHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3hwYXRoL3B5LWRvbS14cGF0aC9wYXRocy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3hw
YXRoL3B5LWRvbS14cGF0aC9wcmVkaWNhdGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC94cGF0aC9weS1kb20teHBhdGgvcHJlZGljYXRlcy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgQWxsIHRoZXNlIHRlc3RzIHBhc3Mgbm93IChzb21ldGltZXMsIHdpdGggYWRhcHRhdGlvbnMs
IHNlZSBjb21tZW50cyBpbnNpZGUpLgorCisgICAgICAgICogZmFzdC94cGF0aC9weS1kb20teHBh
dGgvZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94cGF0aC9w
eS1kb20teHBhdGgvZnVuY3Rpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICBpZCgpIGZ1bmN0aW9u
IGZhaWxzIGJlY2F1c2Ugb2YgYnVnIDEyOTcxLgorCiAyMDA5LTA2LTAyICBKb2hubnkgRGluZyAg
PGpvaG5ueWRpbmcud2Via2l0QGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4
ZXkgUHJvc2t1cnlha292LiAgTGFuZGVkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L3hwYXRoL3hwYXRoLXRlc3QtcHJlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QveHBhdGgveHBhdGgtdGVzdC1wcmUuanMJKHJldmlzaW9uIDQ0MzQ4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC94cGF0aC94cGF0aC10ZXN0LXByZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMTMs
MyArMTMsMzUgQEAgZnVuY3Rpb24gY2hlY2tTbmFwc2hvdChjb21tZW50LCBhY3R1YWwsIAogICAg
IAogICAgIHRlc3RQYXNzZWQoY29tbWVudCk7CiB9CisKK2Z1bmN0aW9uIHRlc3QoZG9jLCBjb250
ZXh0LCBleHByLCBleHBlY3RlZCwgbnNSZXNvbHZlcikKK3sKKyAgICB0cnkgeworICAgICAgICBp
ZiAodHlwZW9mKGNvbnRleHQpID09ICJzdHJpbmciKQorICAgICAgICAgICAgY29udGV4dCA9IGRv
Yy5ldmFsdWF0ZShjb250ZXh0LCBkb2MuZG9jdW1lbnRFbGVtZW50LCBuc1Jlc29sdmVyLCBYUGF0
aFJlc3VsdC5BTllfVU5PUkRFUkVEX05PREVfVFlQRSwgbnVsbCkuc2luZ2xlTm9kZVZhbHVlOwor
ICAgICAgICBpZiAodHlwZW9mKGV4cGVjdGVkKSA9PSAib2JqZWN0IikgeworICAgICAgICAgICAg
dmFyIHJlc3VsdCA9IGRvYy5ldmFsdWF0ZShleHByLCBjb250ZXh0LCBuc1Jlc29sdmVyLCBYUGF0
aFJlc3VsdC5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7CisgICAgICAgICAgICBj
aGVja1NuYXBzaG90KGV4cHIsICByZXN1bHQsIGV4cGVjdGVkKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHZhciByZXN1bHQgPSBkb2MuZXZhbHVhdGUoZXhwciwgY29udGV4dCwgbnNS
ZXNvbHZlciwgWFBhdGhSZXN1bHQuQU5ZX1RZUEUsIG51bGwpOworICAgICAgICAgICAgaWYgKHR5
cGVvZihleHBlY3RlZCkgPT0gIm51bWJlciIpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0
Lm51bWJlclZhbHVlID09IGV4cGVjdGVkKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KGV4cHIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZChleHByICsgIjogZXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIiwgYWN0dWFsICIgKyByZXN1
bHQubnVtYmVyVmFsdWUpOworICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YoZXhwZWN0ZWQp
ID09ICJzdHJpbmciKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdHJpbmdWYWx1ZSA9
PSBleHBlY3RlZCkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChleHByKTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXhwciArICI6
IGV4cGVjdGVkICciICsgZXhwZWN0ZWQgKyAiJywgYWN0dWFsICciICsgcmVzdWx0LnN0cmluZ1Zh
bHVlICsgIiciKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mKGV4cGVjdGVkKSA9PSAi
Ym9vbGVhbiIpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmJvb2xlYW5WYWx1ZSA9PSBl
eHBlY3RlZCkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChleHByKTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXhwciArICI6IGV4
cGVjdGVkICciICsgZXhwZWN0ZWQgKyAiJywgYWN0dWFsICciICsgcmVzdWx0LmJvb2xlYW5WYWx1
ZSArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGNhdGNoIChleCkgewor
ICAgICAgICB0ZXN0RmFpbGVkKGV4cHIgKyAiOiByYWlzZWQgIiArIGV4KTsKKyAgICB9Cit9Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9hYmJyZXZpYXRpb25zLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14
cGF0aC9hYmJyZXZpYXRpb25zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL2FiYnJldmlhdGlvbnMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACitQQVNTIHBhcmEKK1BBU1MgKgorUEFTUyB0ZXh0
KCkKK1BBU1MgQG5hbWUKK1BBU1MgQCoKK1BBU1MgcGFyYVsxXQorUEFTUyBwYXJhW2xhc3QoKV0K
K1BBU1MgKi9wYXJhCitQQVNTIC9kb2MvY2hhcHRlcls1XS9zZWN0aW9uWzJdCitQQVNTIGNoYXB0
ZXIvL3BhcmEKK1BBU1MgLy9wYXJhCitQQVNTIC8vb2xpc3QvaXRlbQorUEFTUyAuCitQQVNTIC4v
cGFyYQorUEFTUyAuLgorUEFTUyAuLi9AbGFuZworUEFTUyBwYXJhW0B0eXBlPSJ3YXJuaW5nIl0K
K1BBU1MgcGFyYVtAdHlwZT0id2FybmluZyJdWzVdCitQQVNTIHBhcmFbNV1bQHR5cGU9Indhcm5p
bmciXQorUEFTUyBjaGFwdGVyW3RpdGxlPSdJbnRyb2R1Y3Rpb24nXQorUEFTUyBjaGFwdGVyW3Rp
dGxlXQorUEFTUyBlbXBsb3llZVtAc2VjcmV0YXJ5IGFuZCBAYXNzaXN0YW50XQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL2FiYnJldmlhdGlvbnMt
ZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxh
aW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QveHBhdGgvcHktZG9tLXhwYXRoL2FiYnJldmlhdGlvbnMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9hYmJyZXZpYXRpb25zLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9hYmJyZXZp
YXRpb25zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTgyIEBACis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4veHBhdGgtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlw
dD4KK3ZhciBkb2MgPSAobmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKAorICAgICc8ZG9j
PicgKworICAgICcgICAgPHBhcmEgaWQ9IjEiIC8+JyArCisgICAgJyAgICA8ZGl2IGlkPSIyIiAv
PicgKworICAgICcgICAgPHBhcmEgaWQ9IjMiIC8+JyArCisgICAgJzwvZG9jPicsCisgICAgJ2Fw
cGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICJwYXJhIiwg
W2RvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyYSIpWzBdLCBkb2MuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoInBhcmEiKVsxXV0pOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICIqIiwg
W2RvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyYSIpWzBdLCBkb2MuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImRpdiIpWzBdLCBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcmEiKVsxXV0pOwor
Citkb2MgPSAobmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKCc8ZG9jPlRoaXMgaXMgPGk+
c29tZTwvaT4gdGV4dC48L2RvYz4nLCAnYXBwbGljYXRpb24veG1sJyk7Cit0ZXN0KGRvYywgZG9j
LmRvY3VtZW50RWxlbWVudCwgInRleHQoKSIsIFtkb2MuZG9jdW1lbnRFbGVtZW50LmZpcnN0Q2hp
bGQsIGRvYy5kb2N1bWVudEVsZW1lbnQubGFzdENoaWxkXSk7CisKK2RvYyA9IChuZXcgRE9NUGFy
c2VyKS5wYXJzZUZyb21TdHJpbmcoJzxkb2MgbmFtZT0iZm9vIiB2YWx1ZT0iYmFyIiAvPicsICdh
cHBsaWNhdGlvbi94bWwnKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAiQG5hbWUi
LCBbZG9jLmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGVOb2RlKCJuYW1lIildKTsKK3Rlc3Qo
ZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAiQCoiLCBbZG9jLmRvY3VtZW50RWxlbWVudC5nZXRB
dHRyaWJ1dGVOb2RlKCJuYW1lIiksIGRvYy5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlTm9k
ZSgidmFsdWUiKV0pOworCitkb2MgPSAobmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKCc8
ZG9jPjxwYXJhIGlkPSIxIiAvPjxwYXJhIGlkPSIyIiAvPjxwYXJhIGlkPSIzIiAvPjwvZG9jPics
ICdhcHBsaWNhdGlvbi94bWwnKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAicGFy
YVsxXSIsIFtkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcmEiKVswXV0pOwordGVzdChkb2Ms
IGRvYy5kb2N1bWVudEVsZW1lbnQsICJwYXJhW2xhc3QoKV0iLCBbZG9jLmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJwYXJhIilbMl1dKTsKKworZG9jID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0
cmluZygKKyAgICAnPGRvYz4nICsKKyAgICAnICAgIDxjaGFwdGVyPjxwYXJhIGlkPSIxIiAvPjxw
YXJhIGlkPSIyIiAvPjwvY2hhcHRlcj4nICsKKyAgICAnICAgIDxzZWN0aW9uPjxwYXJhIGlkPSIz
IiAvPjxzdWI+PHBhcmEgaWQ9IjQiIC8+PC9zdWI+PC9zZWN0aW9uPicgKworICAgICcgICAgPHBh
cmEgaWQ9IjQiIC8+JyArCisgICAgJzwvZG9jPicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwor
dGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICIqL3BhcmEiLCBbZG9jLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJwYXJhIilbMF0sIGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyYSIpWzFd
LCBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcmEiKVsyXV0pOworCitkb2MgPSAobmV3IERP
TVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKAorICAgICc8ZG9jPicgKworICAgICcgICAgPGNoYXB0
ZXIgaWQ9IjEiIC8+PGNoYXB0ZXIgaWQ9IjIiIC8+PGNoYXB0ZXIgaWQ9IjMiIC8+JyArCisgICAg
JyAgICA8Y2hhcHRlciBpZD0iNCI+JyArCisgICAgJyAgICAgIDxzZWN0aW9uIGlkPSI0LjEiIC8+
PHNlY3Rpb24gaWQ9IjQuMiIgLz48c2VjdGlvbiBpZD0iNC4zIiAvPicgKworICAgICcgICAgPC9j
aGFwdGVyPicgKworICAgICcgICAgPGNoYXB0ZXIgaWQ9IjUiPicgKworICAgICcgICAgICA8c2Vj
dGlvbiBpZD0iNS4xIiAvPjxzZWN0aW9uIGlkPSI1LjIiIC8+PHNlY3Rpb24gaWQ9IjUuMyIgLz4n
ICsKKyAgICAnICAgIDwvY2hhcHRlcj4nICsKKyAgICAnPC9kb2M+JywKKyAgICAnYXBwbGljYXRp
b24veG1sJyk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgIi9kb2MvY2hhcHRlcls1
XS9zZWN0aW9uWzJdIiwgW2RvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2VjdGlvbiIpWzRdXSk7
CisKK2RvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoCisgICAgJzxkb2M+JyAr
CisgICAgJyAgICA8Y2hhcHRlcj48cGFyYSBpZD0iMSIgLz48cGFyYSBpZD0iMiIgLz48L2NoYXB0
ZXI+JyArCisgICAgJyAgICA8Y2hhcHRlcj48c2VjdGlvbj48cGFyYSBpZD0iMyIgLz48L3NlY3Rp
b24+PC9jaGFwdGVyPicgKworICAgICcgICAgPHBhcmEgaWQ9IjQiIC8+JyArCisgICAgJzwvZG9j
PicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1l
bnQsICJjaGFwdGVyLy9wYXJhIiwgW2RvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyYSIpWzBd
LCBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcmEiKVsxXSwgZG9jLmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJwYXJhIilbMl1dKTsKKworZG9jID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0
cmluZygKKyAgICAnPHBhcmEgaWQ9IjAiPicgKworICAgICcgICAgPGRpdiBpZD0iMSIgLz4nICsK
KyAgICAnICAgIDxwYXJhIGlkPSIyIj4nICsKKyAgICAnICAgICAgICA8cGFyYSBpZD0iMyIgLz4n
ICsKKyAgICAnICAgIDwvcGFyYT4nICsKKyAgICAnPC9wYXJhPicsCisgICAgJ2FwcGxpY2F0aW9u
L3htbCcpOwordGVzdChkb2MsICcvL3BhcmFbQGlkPSIyIl0nLCAnLy9wYXJhJywgW2RvYy5nZXRF
bGVtZW50c0J5VGFnTmFtZSgicGFyYSIpWzBdLCBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBh
cmEiKVsxXSwgZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJhIilbMl1dKTsKKworZG9jID0g
KG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZygKKyAgICAnPGRvYz4nICsKKyAgICAnICAg
IDxpdGVtIGlkPSIxIj4nICsKKyAgICAnICAgICAgICA8Y29udGV4dCAvPicgKworICAgICcgICAg
ICAgIDxvbGlzdD48aXRlbSBpZD0iMiIgLz48L29saXN0PicgKworICAgICcgICAgPC9pdGVtPicg
KworICAgICcgICAgPG9saXN0PjxpdGVtIGlkPSIzIiAvPjwvb2xpc3Q+JyArCisgICAgJzwvZG9j
PicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsICcvL2NvbnRleHQnLCAnLy9v
bGlzdC9pdGVtJywgW2RvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaXRlbSIpWzFdLCBkb2MuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoIml0ZW0iKVsyXV0pOworCitkb2MgPSAobmV3IERPTVBhcnNlciku
cGFyc2VGcm9tU3RyaW5nKAorICAgICc8ZG9jIGlkPSIwIj4nICsKKyAgICAnICAgIDxwYXJhIGlk
PSIxIi8+JyArCisgICAgJzwvZG9jPicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChk
b2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcuJywgW2RvYy5kb2N1bWVudEVsZW1lbnRdKTsKKwor
ZG9jID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZygKKyAgICAnPHBhcmEgaWQ9IjAi
PicgKworICAgICcgICAgPGRpdiBpZD0iMSIgLz4nICsKKyAgICAnICAgIDxwYXJhIGlkPSIyIj4n
ICsKKyAgICAnICAgICAgICA8cGFyYSBpZD0iMyIgLz4nICsKKyAgICAnICAgIDwvcGFyYT4nICsK
KyAgICAnPC9wYXJhPicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsICcvL3Bh
cmFbQGlkPSIyIl0nLCAnLi9wYXJhJywgW2RvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyYSIp
WzJdXSk7CisKK2RvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoCisgICAgJzxk
b2MgaWQ9IjAiPicgKworICAgICcgICAgPGNoYXB0ZXIgaWQ9IjEiPicgKworICAgICcgICAgICAg
IDxpdGVtIGlkPSIyIiAvPicgKworICAgICcgICAgICAgIDxpdGVtIGlkPSIzIj48c3ViaXRlbSBp
ZD0iNCIgLz48L2l0ZW0+JyArCisgICAgJyAgICA8L2NoYXB0ZXI+JyArCisgICAgJzwvZG9jPics
CisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsICcvL2l0ZW1bQGlkPSIzIl0nLCAn
Li4nLCBbZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJjaGFwdGVyIilbMF1dKTsKKworZG9jID0g
KG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZygKKyAgICAnPGRvYyBpZD0iMCI+JyArCisg
ICAgJyAgICA8Y2hhcHRlciBpZD0iMSIgbGFuZz0iZW4iPicgKworICAgICcgICAgICAgIDxpdGVt
IGlkPSIyIiAvPicgKworICAgICcgICAgICAgIDxpdGVtIGlkPSIzIj48c3ViaXRlbSBpZD0iNCIg
Lz48L2l0ZW0+JyArCisgICAgJyAgICA8L2NoYXB0ZXI+JyArCisgICAgJzwvZG9jPicsCisgICAg
J2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsICcvL2l0ZW1bQGlkPSIzIl0nLCAnLi4vQGxh
bmcnLCBbZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJjaGFwdGVyIilbMF0uZ2V0QXR0cmlidXRl
Tm9kZSgibGFuZyIpXSk7CisKK2RvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmco
CisgICAgJzxkb2M+JyArCisgICAgJyAgICA8cGFyYSBpZD0iMSIgdHlwZT0iaW5mbyIgLz4nICsK
KyAgICAnICAgIDxwYXJhIGlkPSIyIiB0eXBlPSJ3YXJuaW5nIiAvPicgKworICAgICcgICAgPHBh
cmEgaWQ9IjMiIHR5cGU9Indhcm5pbmciIC8+JyArCisgICAgJyAgICA8cGFyYSBpZD0iNCIgdHlw
ZT0iZXJyb3IiIC8+JyArCisgICAgJzwvZG9jPicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwor
dGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICdwYXJhW0B0eXBlPSJ3YXJuaW5nIl0nLCBb
ZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJhIilbMV0sIGRvYy5nZXRFbGVtZW50c0J5VGFn
TmFtZSgicGFyYSIpWzJdXSk7CisKK2RvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJp
bmcoCisgICAgJzxkb2M+JyArCisgICAgJyAgICA8cGFyYSBpZD0iMSIgdHlwZT0iaW5mbyIgLz4n
ICsKKyAgICAnICAgIDxwYXJhIGlkPSIyIiB0eXBlPSJ3YXJuaW5nIiAvPicgKworICAgICcgICAg
PHBhcmEgaWQ9IjMiIHR5cGU9Indhcm5pbmciIC8+JyArCisgICAgJyAgICA8cGFyYSBpZD0iNCIg
dHlwZT0id2FybmluZyIgLz4nICsKKyAgICAnICAgIDxwYXJhIGlkPSI1IiB0eXBlPSJlcnJvciIg
Lz4nICsKKyAgICAnICAgIDxwYXJhIGlkPSI2IiB0eXBlPSJ3YXJuaW5nIiAvPicgKworICAgICcg
ICAgPHBhcmEgaWQ9IjciIHR5cGU9Indhcm5pbmciIC8+JyArCisgICAgJzwvZG9jPicsCisgICAg
J2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICdwYXJh
W0B0eXBlPSJ3YXJuaW5nIl1bNV0nLCBbZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJhIilb
Nl1dKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAncGFyYVs1XVtAdHlwZT0id2Fy
bmluZyJdJywgW10pOworCitkb2MgPSAobmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKAor
ICAgICc8ZG9jPicgKworICAgICcgICAgPGNoYXB0ZXIgaWQ9IjEiIC8+JyArCisgICAgJyAgICA8
Y2hhcHRlciBpZD0iMiI+PHRpdGxlPkludHJvZHVjdGlvbjwvdGl0bGU+PC9jaGFwdGVyPicgKwor
ICAgICcgICAgPGNoYXB0ZXIgaWQ9IjMiPjx0aXRsZT5Cb2R5PC90aXRsZT48L2NoYXB0ZXI+JyAr
CisgICAgJyAgICA8Y2hhcHRlciBpZD0iNCI+JyArCisgICAgJyAgICAgICAgPHRpdGxlPkFub3Ro
ZXI8L3RpdGxlPicgKworICAgICcgICAgICAgIDx0aXRsZT5JbnRyb2R1Y3Rpb248L3RpdGxlPicg
KworICAgICcgICAgPC9jaGFwdGVyPicgKworICAgICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlv
bi94bWwnKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAiY2hhcHRlclt0aXRsZT0n
SW50cm9kdWN0aW9uJ10iLCBbZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJjaGFwdGVyIilbMV0s
IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiY2hhcHRlciIpWzNdXSk7CisKK2RvYyA9IChuZXcg
RE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoCisgICAgJzxkb2M+JyArCisgICAgJyAgICA8Y2hh
cHRlciBpZD0iMSIgLz4nICsKKyAgICAnICAgIDxjaGFwdGVyIGlkPSIyIj48dGl0bGUgLz48L2No
YXB0ZXI+JyArCisgICAgJyAgICA8Y2hhcHRlciBpZD0iMyI+PHRpdGxlIC8+PHRpdGxlIC8+PC9j
aGFwdGVyPicgKworICAgICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlvbi94bWwnKTsKK3Rlc3Qo
ZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAiY2hhcHRlclt0aXRsZV0iLCBbZG9jLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJjaGFwdGVyIilbMV0sIGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiY2hh
cHRlciIpWzJdXSk7CisKK2RvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoCisg
ICAgJzxkb2M+JyArCisgICAgJyAgICA8ZW1wbG95ZWUgbmFtZT0iQWxpY2UiIC8+JyArCisgICAg
JyAgICA8ZW1wbG95ZWUgbmFtZT0iQm9iIiBzZWNyZXRhcnk9IkNhdGh5IiAvPicgKworICAgICcg
ICAgPGVtcGxveWVlIG5hbWU9IkRpYW5uZSIgc2VjcmV0YXJ5PSJFZHdhcmQiIGFzc2lzdGFudD0i
RnJhbiIgLz4nICsKKyAgICAnPC9kb2M+JywKKyAgICAnYXBwbGljYXRpb24veG1sJyk7Cit0ZXN0
KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgImVtcGxveWVlW0BzZWNyZXRhcnkgYW5kIEBhc3Np
c3RhbnRdIiwgW2RvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZW1wbG95ZWUiKVsyXV0pOworCisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHkt
ZG9tLXhwYXRoL2FiYnJldmlhdGlvbnMuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5
cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14
cGF0aC9heGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3hw
YXRoL3B5LWRvbS14cGF0aC9heGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL2F4ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDMzIEBACitQQVNTIC8vKltAaWQ9IjIiXS9jaGlsZDo6KgorUEFTUyAv
LypbQGlkPSIyLjIiXS9wYXJlbnQ6OioKK1BBU1MgLy8qW0BpZD0iMi4yIl0vYW5jZXN0b3I6OioK
K1BBU1MgLy8qW0BpZD0iMi4yIl0vZm9sbG93aW5nLXNpYmxpbmc6OioKK1BBU1MgLy8qW0BpZD0i
Mi4yIl0vcHJlY2VkaW5nLXNpYmxpbmc6OioKK1BBU1MgLy8qW0BpZD0iMi4yIl0vZm9sbG93aW5n
OjoqCitQQVNTIC8vKltAaWQ9IjIuMiJdL3ByZWNlZGluZzo6KgorUEFTUyAvLypbQGlkPSIyLjIi
XS9hdHRyaWJ1dGU6OioKK1BBU1MgLy8qW0BpZD0iMi4yIl0vc2VsZjo6KgorUEFTUyAvLypbQGlk
PSIxIl0vZGVzY2VuZGFudC1vci1zZWxmOjoqCitQQVNTIC8vKltAaWQ9IjIuMiJdL2FuY2VzdG9y
LW9yLXNlbGY6OioKK1Rlc3QgdGhhdCB0aGUgYW5jZXN0b3IsIGRlc2NlbmRhbnQsIGZvbGxvd2lu
ZywgcHJlY2VkaW5nLCBhbmQgc2VsZiBheGVzIHBhcnRpdGlvbiB0aGUgZG9jdW1lbnQKK1BBU1Mg
bm9kZUNvdW50IGlzIDE2CitQQVNTIDAKK1BBU1MgMQorUEFTUyAxLjEKK1BBU1MgMS4xLjEKK1BB
U1MgMgorUEFTUyAyLjEKK1BBU1MgMi4xLjEKK1BBU1MgMi4yCitQQVNTIDIuMi4xCitQQVNTIDIu
Mi4yCitQQVNTIDIuMi4zCitQQVNTIDIuMworUEFTUyAyLjMuMQorUEFTUyAzCitQQVNTIDMuMQor
UEFTUyAzLjEuMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9t
LXhwYXRoL2F4ZXMtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQog
ICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL2F4ZXMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9heGVzLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9heGVzLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTI2IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4veHBhdGgtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGFy
cmF5c0FyZUVxdWFsKGFycmF5MSwgYXJyYXkyKSB7CisgICB2YXIgdGVtcCA9IG5ldyBBcnJheSgp
OworICAgaWYgKCAoIWFycmF5MVswXSkgfHwgKCFhcnJheTJbMF0pICkgeyAvLyBJZiBlaXRoZXIg
aXMgbm90IGFuIGFycmF5CisgICAgICByZXR1cm4gZmFsc2U7CisgICB9CisgICBpZiAoYXJyYXkx
Lmxlbmd0aCAhPSBhcnJheTIubGVuZ3RoKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICB9Cisg
ICAvLyBQdXQgYWxsIHRoZSBlbGVtZW50cyBmcm9tIGFycmF5MSBpbnRvIGEgInRhZ2dlZCIgYXJy
YXkKKyAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkxLmxlbmd0aDsgaSsrKSB7CisgICAgICBr
ZXkgPSAodHlwZW9mIGFycmF5MVtpXSkgKyAifiIgKyBhcnJheTFbaV07CisgICAvLyBVc2UgInR5
cGVvZiIgc28gYSBudW1iZXIgMSBpc24ndCBlcXVhbCB0byBhIHN0cmluZyAiMSIuCisgICAgICBp
ZiAodGVtcFtrZXldKSB7IHRlbXBba2V5XSsrOyB9IGVsc2UgeyB0ZW1wW2tleV0gPSAxOyB9Cisg
ICAvLyB0ZW1wW2tleV0gPSAjIG9mIG9jY3VycmVuY2VzIG9mIHRoZSB2YWx1ZSAoc28gYW4gZWxl
bWVudCBjb3VsZCBhcHBlYXIgbXVsdGlwbGUgdGltZXMpCisgICB9CisgICAvLyBHbyB0aHJvdWdo
IGFycmF5MiAtIGlmIHNhbWUgdGFnIG1pc3NpbmcgaW4gInRhZ2dlZCIgYXJyYXksIG5vdCBlcXVh
bAorICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheTIubGVuZ3RoOyBpKyspIHsKKyAgICAgIGtl
eSA9ICh0eXBlb2YgYXJyYXkyW2ldKSArICJ+IiArIGFycmF5MltpXTsKKyAgICAgIGlmICh0ZW1w
W2tleV0pIHsKKyAgICAgICAgIGlmICh0ZW1wW2tleV0gPT0gMCkgeyByZXR1cm4gZmFsc2U7IH0g
ZWxzZSB7IHRlbXBba2V5XS0tOyB9CisgICAgICAvLyBTdWJ0cmFjdCB0byBrZWVwIHRyYWNrIG9m
ICMgb2YgYXBwZWFyYW5jZXMgaW4gYXJyYXkyCisgICAgICB9IGVsc2UgeyAvLyBLZXkgZGlkbid0
IGFwcGVhciBpbiBhcnJheTEsIGFycmF5cyBhcmUgbm90IGVxdWFsLgorICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgfQorICAgfQorICAgLy8gSWYgd2UgZ2V0IHRvIHRoaXMgcG9pbnQsIHRo
ZW4gZXZlcnkgZ2VuZXJhdGVkIGtleSBpbiBhcnJheTEgc2hvd2VkIHVwIHRoZSBleGFjdCBzYW1l
CisgICAvLyBudW1iZXIgb2YgdGltZXMgaW4gYXJyYXkyLCBzbyB0aGUgYXJyYXlzIGFyZSBlcXVh
bC4KKyAgIHJldHVybiB0cnVlOworfQorCisKK3ZhciBkb2MgPSAobmV3IERPTVBhcnNlcikucGFy
c2VGcm9tU3RyaW5nKAorICAgICc8ZG9jIGlkPSIwIj4nICsKKyAgICAgICAgJzxjaGFwdGVyIGlk
PSIxIj4nICsKKyAgICAgICAgICAgICc8c2VjdGlvbiBpZD0iMS4xIj4nICsKKyAgICAgICAgICAg
ICAgICAnPGl0ZW0gaWQ9IjEuMS4xIiAvPicgKworICAgICAgICAgICAgJzwvc2VjdGlvbj4nICsK
KyAgICAgICAgJzwvY2hhcHRlcj4nICsKKyAgICAgICAgJzxjaGFwdGVyIGlkPSIyIj4nICsKKyAg
ICAgICAgICAgICc8c2VjdGlvbiBpZD0iMi4xIj4nICsKKyAgICAgICAgICAgICAgICAnPGl0ZW0g
aWQ9IjIuMS4xIiAvPicgKworICAgICAgICAgICAgJzwvc2VjdGlvbj4nICsKKyAgICAgICAgICAg
ICc8c2VjdGlvbiBpZD0iMi4yIj4nICsKKyAgICAgICAgICAgICAgICAnPGl0ZW0gaWQ9IjIuMi4x
IiAvPjxpdGVtIGlkPSIyLjIuMiIgLz48aXRlbSBpZD0iMi4yLjMiIC8+JyArCisgICAgICAgICAg
ICAnPC9zZWN0aW9uPicgKworICAgICAgICAgICAgJzxzZWN0aW9uIGlkPSIyLjMiPicgKworICAg
ICAgICAgICAgICAgICc8aXRlbSBpZD0iMi4zLjEiIC8+JyArCisgICAgICAgICAgICAnPC9zZWN0
aW9uPicgKworICAgICAgICAnPC9jaGFwdGVyPicgKworICAgICAgICAnPGNoYXB0ZXIgaWQ9IjMi
PicgKworICAgICAgICAgICAgJzxzZWN0aW9uIGlkPSIzLjEiPicgKworICAgICAgICAgICAgICAg
ICc8aXRlbSBpZD0iMy4xLjEiIC8+JyArCisgICAgICAgICAgICAnPC9zZWN0aW9uPicgKworICAg
ICAgICAnPC9jaGFwdGVyPicgKworICAgICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlvbi94bWwn
KTsKKwordmFyIFJPT1QgPSBkb2MuZG9jdW1lbnRFbGVtZW50OwordmFyIENIQVBURVIxID0gUk9P
VC5maXJzdENoaWxkOwordmFyIENIQVBURVIyID0gQ0hBUFRFUjEubmV4dFNpYmxpbmc7Cit2YXIg
Q0hBUFRFUjMgPSBDSEFQVEVSMi5uZXh0U2libGluZzsKK3ZhciBTRUNUSU9OMTEgPSBDSEFQVEVS
MS5maXJzdENoaWxkOwordmFyIFNFQ1RJT04yMSA9IENIQVBURVIyLmZpcnN0Q2hpbGQ7Cit2YXIg
U0VDVElPTjIyID0gU0VDVElPTjIxLm5leHRTaWJsaW5nOwordmFyIFNFQ1RJT04yMyA9IFNFQ1RJ
T04yMi5uZXh0U2libGluZzsKK3ZhciBTRUNUSU9OMzEgPSBDSEFQVEVSMy5maXJzdENoaWxkOwor
dmFyIElURU0xMTEgPSBTRUNUSU9OMTEuZmlyc3RDaGlsZDsKK3ZhciBJVEVNMjExID0gU0VDVElP
TjIxLmZpcnN0Q2hpbGQ7Cit2YXIgSVRFTTIyMSA9IFNFQ1RJT04yMi5maXJzdENoaWxkOwordmFy
IElURU0yMjIgPSBJVEVNMjIxLm5leHRTaWJsaW5nOwordmFyIElURU0yMjMgPSBJVEVNMjIyLm5l
eHRTaWJsaW5nOwordmFyIElURU0yMzEgPSBTRUNUSU9OMjMuZmlyc3RDaGlsZDsKK3ZhciBJVEVN
MzExID0gU0VDVElPTjMxLmZpcnN0Q2hpbGQ7CisKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVt
ZW50LCAnLy8qW0BpZD0iMiJdL2NoaWxkOjoqJywgW1NFQ1RJT04yMSwgU0VDVElPTjIyLCBTRUNU
SU9OMjNdKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnLy8qW0BpZD0iMi4yIl0v
cGFyZW50OjoqJywgW0NIQVBURVIyXSk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwg
Jy8vKltAaWQ9IjIuMiJdL2FuY2VzdG9yOjoqJywgW1JPT1QsIENIQVBURVIyXSk7Cit0ZXN0KGRv
YywgZG9jLmRvY3VtZW50RWxlbWVudCwgJy8vKltAaWQ9IjIuMiJdL2ZvbGxvd2luZy1zaWJsaW5n
OjoqJywgW1NFQ1RJT04yM10pOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcvLypb
QGlkPSIyLjIiXS9wcmVjZWRpbmctc2libGluZzo6KicsIFtTRUNUSU9OMjFdKTsKK3Rlc3QoZG9j
LCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnLy8qW0BpZD0iMi4yIl0vZm9sbG93aW5nOjoqJywgW1NF
Q1RJT04yMywgSVRFTTIzMSwgQ0hBUFRFUjMsIFNFQ1RJT04zMSwgSVRFTTMxMV0pOwordGVzdChk
b2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcvLypbQGlkPSIyLjIiXS9wcmVjZWRpbmc6OionLCBb
Q0hBUFRFUjEsIFNFQ1RJT04xMSwgSVRFTTExMSwgU0VDVElPTjIxLCBJVEVNMjExXSk7Cit0ZXN0
KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJy8vKltAaWQ9IjIuMiJdL2F0dHJpYnV0ZTo6Kics
IFtTRUNUSU9OMjIuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKV0pOwordGVzdChkb2MsIGRvYy5kb2N1
bWVudEVsZW1lbnQsICcvLypbQGlkPSIyLjIiXS9zZWxmOjoqJywgW1NFQ1RJT04yMl0pOwordGVz
dChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcvLypbQGlkPSIxIl0vZGVzY2VuZGFudC1vci1z
ZWxmOjoqJywgW0NIQVBURVIxLCBTRUNUSU9OMTEsIElURU0xMTFdKTsKK3Rlc3QoZG9jLCBkb2Mu
ZG9jdW1lbnRFbGVtZW50LCAnLy8qW0BpZD0iMi4yIl0vYW5jZXN0b3Itb3Itc2VsZjo6KicsIFtS
T09ULCBDSEFQVEVSMiwgU0VDVElPTjIyXSk7CisKK2RlYnVnKCJUZXN0IHRoYXQgdGhlIGFuY2Vz
dG9yLCBkZXNjZW5kYW50LCBmb2xsb3dpbmcsIHByZWNlZGluZywgYW5kIHNlbGYgYXhlcyBwYXJ0
aXRpb24gdGhlIGRvY3VtZW50Iik7Cit2YXIgbm9kZUNvdW50ID0gZG9jLmV2YWx1YXRlKCJjb3Vu
dCgvLyopIiwgZG9jLmRvY3VtZW50RWxlbWVudCwgbnVsbCwgWFBhdGhSZXN1bHQuQU5ZX1RZUEUs
IG51bGwpLm51bWJlclZhbHVlOworc2hvdWxkQmUoJ25vZGVDb3VudCcsICcxNicpOwordmFyIGFs
bE5vZGVzID0gZG9jLmV2YWx1YXRlKCIvLyoiLCBkb2MuZG9jdW1lbnRFbGVtZW50LCBudWxsLCBY
UGF0aFJlc3VsdC5VTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBudWxsKTsKK3ZhciBhbGxO
b2Rlc1NldCA9IFtdCitmb3IgKGkgPSAwOyBpIDwgYWxsTm9kZXMuc25hcHNob3RMZW5ndGg7ICsr
aSkgeworICAgIGFsbE5vZGVzU2V0LnB1c2goYWxsTm9kZXMuc25hcHNob3RJdGVtKGkpKTsKK30K
K2ZvciAoaSA9IDA7IGkgPCBhbGxOb2Rlcy5zbmFwc2hvdExlbmd0aDsgKytpKSB7CisgICAgdmFy
IG5vZGUgPSBhbGxOb2Rlcy5zbmFwc2hvdEl0ZW0oaSk7CisgICAgdmFyIHJlc3VsdE5vZGVzID0g
W107CisgICAgdmFyIGF4ZXMgPSBbJ2FuY2VzdG9yJywnZGVzY2VuZGFudCcsJ2ZvbGxvd2luZycs
J3ByZWNlZGluZycsJ3NlbGYnXTsKKyAgICBmb3IgKGF4aXMgaW4gYXhlcykgeworICAgICAgICB2
YXIgcmVzID0gZG9jLmV2YWx1YXRlKGF4ZXNbYXhpc10gKyAiOjoqIiwgbm9kZSwgbnVsbCwgWFBh
dGhSZXN1bHQuVU5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRSwgbnVsbCk7CisgICAgICAgIHdo
aWxlIChuID0gcmVzLml0ZXJhdGVOZXh0KCkpIHsKKyAgICAgICAgICAgIHJlc3VsdE5vZGVzLnB1
c2gobik7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGFycmF5c0FyZUVxdWFsKHJlc3VsdE5v
ZGVzLCBhbGxOb2Rlc1NldCkpCisgICAgICAgIHRlc3RQYXNzZWQobm9kZS5nZXRBdHRyaWJ1dGUo
ImlkIikpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZChub2RlLmdldEF0dHJpYnV0ZSgi
aWQiKSk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zh
c3QveHBhdGgvcHktZG9tLXhwYXRoL2F4ZXMuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1l
LXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRv
bS14cGF0aC9kYXRhLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3hwYXRoL3B5LWRvbS14cGF0aC9kYXRhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL2RhdGEtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDI5IEBACitQQVNTIG5vcm1hbGl6ZS1zcGFjZSgvKQorUEFTUyBu
YW1lKC8pCitQQVNTIGxvY2FsLW5hbWUoLykKK1BBU1MgbmFtZXNwYWNlLXVyaSgvKQorUEFTUyBu
b3JtYWxpemUtc3BhY2UoL2RvYykKK1BBU1Mgc3RyaW5nKC8vYTppdGVtKQorUEFTUyBuYW1lKC8v
YTppdGVtKQorUEFTUyBsb2NhbC1uYW1lKC8vYTppdGVtKQorUEFTUyBuYW1lc3BhY2UtdXJpKC8v
YTppdGVtKQorUEFTUyBzdHJpbmcoLy9AYXR0cmlidXRlKQorUEFTUyBuYW1lKC8vQGE6YXR0cmli
dXRlKQorUEFTUyBsb2NhbC1uYW1lKC8vQGE6YXR0cmlidXRlKQorUEFTUyBuYW1lc3BhY2UtdXJp
KC8vQGE6YXR0cmlidXRlKQorUEFTUyBzdHJpbmcoLy9wcm9jZXNzaW5nLWluc3RydWN0aW9uKCkp
CitQQVNTIG5hbWUoLy9wcm9jZXNzaW5nLWluc3RydWN0aW9uKCkpCitQQVNTIGxvY2FsLW5hbWUo
Ly9wcm9jZXNzaW5nLWluc3RydWN0aW9uKCkpCitQQVNTIG5hbWVzcGFjZS11cmkoLy9wcm9jZXNz
aW5nLWluc3RydWN0aW9uKCkpCitQQVNTIHN0cmluZygvL2NvbW1lbnQoKSkKK1BBU1MgbmFtZSgv
L2NvbW1lbnQoKSkKK1BBU1MgbG9jYWwtbmFtZSgvL2NvbW1lbnQoKSkKK1BBU1MgbmFtZXNwYWNl
LXVyaSgvL2NvbW1lbnQoKSkKK1BBU1Mgc3RyaW5nKC8vZWxlbWVudC90ZXh0KCkpCitQQVNTIG5h
bWUoLy9lbGVtZW50L3RleHQoKSkKK1BBU1MgbG9jYWwtbmFtZSgvL2VsZW1lbnQvdGV4dCgpKQor
UEFTUyBuYW1lc3BhY2UtdXJpKC8vZWxlbWVudC90ZXh0KCkpCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvZmFzdC94cGF0aC9weS1kb20teHBhdGgvZGF0YS1leHBlY3RlZC50eHQKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9sLXN0
eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9weS1kb20teHBh
dGgvZGF0YS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9t
LXhwYXRoL2RhdGEuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QveHBhdGgv
cHktZG9tLXhwYXRoL2RhdGEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MiBAQAorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3hwYXRoLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisKKzxzY3JpcHQ+Cit2YXIgZG9jID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZygK
KyAgICAnPGRvYyB4bWxuczphPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2EiPicgKworICAgICcg
ICAgPGVsZW1lbnQgYXR0cmlidXRlPSImcXVvdDt2YWx1ZSZxdW90OyI+Jmx0O3RleHQmZ3Q7PC9l
bGVtZW50PicgKworICAgICcgICAgZm9sbG93ZWQnICsKKyAgICAnICAgIDw/cHJvY2Vzc2luZyAg
aW5zdHJ1Y3Rpb24gPz4nICsKKyAgICAnICAgIGJ5JyArCisgICAgJyAgICA8IS0tIGNvbW1lbnQg
LS0+JyArCisgICAgJyAgICBtb3JlIHRleHQnICsKKyAgICAnICAgIDxhOml0ZW0gYXR0cmlidXRl
PSIxIiBhOmF0dHJpYnV0ZT0iMiIgLz4nICsKKyAgICAnPC9kb2M+JywKKyAgICAnYXBwbGljYXRp
b24veG1sJyk7Cit2YXIgbnNSZXNvbHZlciA9IGRvYy5jcmVhdGVOU1Jlc29sdmVyKGRvYy5kb2N1
bWVudEVsZW1lbnQpOworCit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJ25vcm1hbGl6
ZS1zcGFjZSgvKScsICI8dGV4dD4gZm9sbG93ZWQgYnkgbW9yZSB0ZXh0IiwgbnNSZXNvbHZlcik7
Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJ25hbWUoLyknLCAiIiwgbnNSZXNvbHZl
cik7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJ2xvY2FsLW5hbWUoLyknLCAiIiwg
bnNSZXNvbHZlcik7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJ25hbWVzcGFjZS11
cmkoLyknLCAiIiwgbnNSZXNvbHZlcik7CisKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50
LCAnbm9ybWFsaXplLXNwYWNlKC9kb2MpJywgIjx0ZXh0PiBmb2xsb3dlZCBieSBtb3JlIHRleHQi
LCBuc1Jlc29sdmVyKTsKKwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICdzdHJpbmco
Ly9hOml0ZW0pJywgIiIsIG5zUmVzb2x2ZXIpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1l
bnQsICduYW1lKC8vYTppdGVtKScsICJhOml0ZW0iLCBuc1Jlc29sdmVyKTsKK3Rlc3QoZG9jLCBk
b2MuZG9jdW1lbnRFbGVtZW50LCAnbG9jYWwtbmFtZSgvL2E6aXRlbSknLCAiaXRlbSIsIG5zUmVz
b2x2ZXIpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICduYW1lc3BhY2UtdXJpKC8v
YTppdGVtKScsICJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2EiLCBuc1Jlc29sdmVyKTsKKwordGVz
dChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICdzdHJpbmcoLy9AYXR0cmlidXRlKScsICdcInZh
bHVlXCInLCBuc1Jlc29sdmVyKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnbmFt
ZSgvL0BhOmF0dHJpYnV0ZSknLCAnYTphdHRyaWJ1dGUnLCBuc1Jlc29sdmVyKTsKK3Rlc3QoZG9j
LCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnbG9jYWwtbmFtZSgvL0BhOmF0dHJpYnV0ZSknLCAnYXR0
cmlidXRlJywgbnNSZXNvbHZlcik7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJ25h
bWVzcGFjZS11cmkoLy9AYTphdHRyaWJ1dGUpJywgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vYScs
IG5zUmVzb2x2ZXIpOworCit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJ3N0cmluZygv
L3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24oKSknLCAnaW5zdHJ1Y3Rpb24gJywgbnNSZXNvbHZlcik7
Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJ25hbWUoLy9wcm9jZXNzaW5nLWluc3Ry
dWN0aW9uKCkpJywgJ3Byb2Nlc3NpbmcnLCBuc1Jlc29sdmVyKTsKK3Rlc3QoZG9jLCBkb2MuZG9j
dW1lbnRFbGVtZW50LCAnbG9jYWwtbmFtZSgvL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24oKSknLCAn
cHJvY2Vzc2luZycsIG5zUmVzb2x2ZXIpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQs
ICduYW1lc3BhY2UtdXJpKC8vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbigpKScsICcnLCBuc1Jlc29s
dmVyKTsKKwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICdzdHJpbmcoLy9jb21tZW50
KCkpJywgJyBjb21tZW50ICcsIG5zUmVzb2x2ZXIpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVs
ZW1lbnQsICduYW1lKC8vY29tbWVudCgpKScsICcnLCBuc1Jlc29sdmVyKTsKK3Rlc3QoZG9jLCBk
b2MuZG9jdW1lbnRFbGVtZW50LCAnbG9jYWwtbmFtZSgvL2NvbW1lbnQoKSknLCAnJywgbnNSZXNv
bHZlcik7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJ25hbWVzcGFjZS11cmkoLy9j
b21tZW50KCkpJywgJycsIG5zUmVzb2x2ZXIpOworCit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxl
bWVudCwgJ3N0cmluZygvL2VsZW1lbnQvdGV4dCgpKScsICc8dGV4dD4nLCBuc1Jlc29sdmVyKTsK
K3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnbmFtZSgvL2VsZW1lbnQvdGV4dCgpKScs
ICcnLCBuc1Jlc29sdmVyKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnbG9jYWwt
bmFtZSgvL2VsZW1lbnQvdGV4dCgpKScsICcnLCBuc1Jlc29sdmVyKTsKK3Rlc3QoZG9jLCBkb2Mu
ZG9jdW1lbnRFbGVtZW50LCAnbmFtZXNwYWNlLXVyaSgvL2VsZW1lbnQvdGV4dCgpKScsICcnLCBu
c1Jlc29sdmVyKTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0
cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9kYXRhLmh0bWwKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46
bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9w
eS1kb20teHBhdGgvZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL2V4cHJlc3Npb25zLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL2V4cHJl
c3Npb25zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MSBAQAorUEFTUyAv
L2l0ZW1bQGlkID49IDIgYW5kIEBpZCA8PSAiNCJdCitQQVNTIC8vaXRlbVtAaWQgPj0gMiBhbmQg
QGlkIDw9IDNdCitQQVNTIGRvYy5ldmFsdWF0ZSgicG9zaXRpb24oMSkiLCBkb2MuZG9jdW1lbnRF
bGVtZW50LCBudWxsLCBYUGF0aFJlc3VsdC5BTllfVFlQRSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTlZBTElEX0VYUFJFU1NJT05fRVJSOiBET00gWFBhdGggRXhjZXB0aW9uIDUxLgor
UEFTUyBkb2MuZXZhbHVhdGUoIm5vdCgpIiwgZG9jLmRvY3VtZW50RWxlbWVudCwgbnVsbCwgWFBh
dGhSZXN1bHQuQU5ZX1RZUEUsIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9F
WFBSRVNTSU9OX0VSUjogRE9NIFhQYXRoIEV4Y2VwdGlvbiA1MS4KK1BBU1Mgc3RyaW5nLWxlbmd0
aCgxMDApCitQQVNTIGRvYy5ldmFsdWF0ZSgiY291bnQoMTAwKSIsIGRvYy5kb2N1bWVudEVsZW1l
bnQsIG51bGwsIFhQYXRoUmVzdWx0LkFOWV9UWVBFLCBudWxsKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfRVhQUkVTU0lPTl9FUlI6IERPTSBYUGF0aCBFeGNlcHRpb24gNTEuCitQQVNT
IGRvYy5ldmFsdWF0ZSgiYWR1bWJyYXRlKCkiLCBkb2MuZG9jdW1lbnRFbGVtZW50LCBudWxsLCBY
UGF0aFJlc3VsdC5BTllfVFlQRSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElE
X0VYUFJFU1NJT05fRVJSOiBET00gWFBhdGggRXhjZXB0aW9uIDUxLgorUEFTUyAvL2l0ZW1bQGlk
IG1vZCAyID0gMF0gfCAvL2l0ZW1bQGlkIG1vZCAzID0gMF0KK1BBU1MgZG9jLmV2YWx1YXRlKCIv
L2l0ZW0gfCA0MiIsIGRvYy5kb2N1bWVudEVsZW1lbnQsIG51bGwsIFhQYXRoUmVzdWx0LkFOWV9U
WVBFLCBudWxsKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfRVhQUkVTU0lPTl9FUlI6
IERPTSBYUGF0aCBFeGNlcHRpb24gNTEuCitQQVNTIGRvYy5ldmFsdWF0ZSgiL2RvYy8oaXRlbVtA
aWQgPSAyXSB8IGl0ZW1bQGlkID0gNl0pL0BpZCIsIGRvYy5kb2N1bWVudEVsZW1lbnQsIG51bGws
IFhQYXRoUmVzdWx0LkFOWV9UWVBFLCBudWxsKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFM
SURfRVhQUkVTU0lPTl9FUlI6IERPTSBYUGF0aCBFeGNlcHRpb24gNTEuCitQQVNTIGRvYy5ldmFs
dWF0ZSgnIm1vbnR5Ii9hbmFjb25kYScsIGRvYy5kb2N1bWVudEVsZW1lbnQsIG51bGwsIFhQYXRo
UmVzdWx0LkFOWV9UWVBFLCBudWxsKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfRVhQ
UkVTU0lPTl9FUlI6IERPTSBYUGF0aCBFeGNlcHRpb24gNTEuCitQQVNTIGRvYy5ldmFsdWF0ZSgn
L2RvYy9zdHJpbmcoaXRlbVtAaWQgPSAyXSkvQGlkJywgZG9jLmRvY3VtZW50RWxlbWVudCwgbnVs
bCwgWFBhdGhSZXN1bHQuQU5ZX1RZUEUsIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5W
QUxJRF9FWFBSRVNTSU9OX0VSUjogRE9NIFhQYXRoIEV4Y2VwdGlvbiA1MS4KK1BBU1MgZG9jLmV2
YWx1YXRlKCcoMSlbMV0nLCBkb2MuZG9jdW1lbnRFbGVtZW50LCBudWxsLCBYUGF0aFJlc3VsdC5B
TllfVFlQRSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0VYUFJFU1NJT05f
RVJSOiBET00gWFBhdGggRXhjZXB0aW9uIDUxLgorUEFTUyAxIG9yIDEKK1BBU1MgMSBvciAwCitQ
QVNTIDAgb3IgMQorUEFTUyAwIG9yIDAKK1BBU1MgMSBhbmQgMQorUEFTUyAxIGFuZCAwCitQQVNT
IDAgYW5kIDEKK1BBU1MgMCBhbmQgMAorUEFTUyAoLy9zZXRbQGlkPTFdLyopID0gKC8vc2V0W0Bp
ZD0zXS8qKQorUEFTUyAoLy9zZXRbQGlkPTFdLyopID0gKC8vc2V0W0BpZD0yXS8qKQorUEFTUyAo
Ly9zZXRbQGlkPTFdLyopICE9ICgvL3NldFtAaWQ9MV0vKikKK1BBU1MgKC8vc2V0W0BpZD00XS8q
KSAhPSAoLy9zZXRbQGlkPTRdLyopCitQQVNTICgvL3NldFtAaWQ9MV0vKikgPD0gKC8vc2V0W0Bp
ZD0yXS8qKQorUEFTUyAoLy9zZXRbQGlkPTJdLyopIDw9ICgvL3NldFtAaWQ9MV0vKikKK1BBU1Mg
KC8vc2V0W0BpZD0xXS8qKSA8ICgvL3NldFtAaWQ9Ml0vKikKK1BBU1MgKC8vc2V0W0BpZD0yXS8q
KSA8ICgvL3NldFtAaWQ9MV0vKikKK1BBU1MgKC8vc2V0W0BpZD0yXS8qKSA+ICgvL3NldFtAaWQ9
MV0vKikKK1BBU1MgKC8vc2V0W0BpZD0xXS8qKSA+ICgvL3NldFtAaWQ9Ml0vKikKK1BBU1MgKC8v
c2V0W0BpZD0yXS8qKSA+PSAoLy9zZXRbQGlkPTFdLyopCitQQVNTICgvL3NldFtAaWQ9MV0vKikg
Pj0gKC8vc2V0W0BpZD0yXS8qKQorUEFTUyAoLy9zZXRbQGlkPTRdLyopID0gKDEgPSAxKQorUEFT
UyAoLy9zZXRbQGlkPTRdLyopID0gKDEgPSAwKQorUEFTUyAoLy9zZXRbQGlkPTRdLyopICE9ICgx
ID0gMCkKK1BBU1MgKC8vc2V0W0BpZD00XS8qKSAhPSAoMSA9IDEpCitQQVNTICgvL3NldFtAaWQ9
NF0vKikgPSA0MgorUEFTUyAoLy9zZXRbQGlkPTRdLyopID0gNDMKK1BBU1MgKC8vc2V0W0BpZD00
XS8qKSAhPSA0MworUEFTUyAoLy9zZXRbQGlkPTRdLyopICE9IDQyCitQQVNTICgvL3NldFtAaWQ9
NF0vKikgPSAiNDIuMCIKK1BBU1MgKC8vc2V0W0BpZD00XS8qKSA9ICI0MiIKK1BBU1MgKC8vc2V0
W0BpZD00XS8qKSAhPSAiNDIiCitQQVNTICgvL3NldFtAaWQ9NF0vKikgIT0gIjQyLjAiCitQQVNT
ICJhIiA8PSAiYSIKK1BBU1MgImEiIDw9ICJiIgorUEFTUyAiYSIgPj0gImEiCitQQVNTICJiIiA+
ICJhIgorUEFTUyAxIDw9IDEKK1BBU1MgMiA8PSAxCitQQVNTIDEgPCAyCitQQVNTIDEgPCAxCitQ
QVNTIDEgPj0gMQorUEFTUyAxID49IDIKK1BBU1MgMiA+IDEKK1BBU1MgMSA+IDEKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9leHByZXNzaW9ucy1l
eHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFp
bgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC94cGF0aC9weS1kb20teHBhdGgvZXhwcmVzc2lvbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9leHByZXNzaW9ucy5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9weS1kb20teHBhdGgvZXhwcmVzc2lvbnMu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNDggQEAKKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi94cGF0aC10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgordmFy
IGRvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoCisgICAgJzxkb2M+JyArCisg
ICAgICAgICc8aXRlbSBpZD0iMSIgLz4nICsKKyAgICAgICAgJzxpdGVtIGlkPSIyIiAvPicgKwor
ICAgICAgICAnPGl0ZW0gaWQ9IjMiIC8+JyArCisgICAgICAgICc8aXRlbSBpZD0iNCIgLz4nICsK
KyAgICAgICAgJzxpdGVtIGlkPSI1IiAvPicgKworICAgICc8L2RvYz4nLAorICAgICdhcHBsaWNh
dGlvbi94bWwnKTsKKwordmFyIFJPT1QgPSBkb2MuZG9jdW1lbnRFbGVtZW50OwordmFyIElURU0x
ID0gUk9PVC5maXJzdENoaWxkOwordmFyIElURU0yID0gSVRFTTEubmV4dFNpYmxpbmc7Cit2YXIg
SVRFTTMgPSBJVEVNMi5uZXh0U2libGluZzsKK3ZhciBJVEVNNCA9IElURU0zLm5leHRTaWJsaW5n
OworCit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJy8vaXRlbVtAaWQgPj0gMiBhbmQg
QGlkIDw9ICI0Il0nLCBbSVRFTTIsIElURU0zLCBJVEVNNF0pOwordGVzdChkb2MsIGRvYy5kb2N1
bWVudEVsZW1lbnQsICcvL2l0ZW1bQGlkID49IDIgYW5kIEBpZCA8PSAzXScsIFtJVEVNMiwgSVRF
TTNdKTsKK3Nob3VsZFRocm93KCdkb2MuZXZhbHVhdGUoInBvc2l0aW9uKDEpIiwgZG9jLmRvY3Vt
ZW50RWxlbWVudCwgbnVsbCwgWFBhdGhSZXN1bHQuQU5ZX1RZUEUsIG51bGwpJyk7CitzaG91bGRU
aHJvdygnZG9jLmV2YWx1YXRlKCJub3QoKSIsIGRvYy5kb2N1bWVudEVsZW1lbnQsIG51bGwsIFhQ
YXRoUmVzdWx0LkFOWV9UWVBFLCBudWxsKScpOwordGVzdChkb2MsIGRvYywgInN0cmluZy1sZW5n
dGgoMTAwKSIsIDMpOworc2hvdWxkVGhyb3coJ2RvYy5ldmFsdWF0ZSgiY291bnQoMTAwKSIsIGRv
Yy5kb2N1bWVudEVsZW1lbnQsIG51bGwsIFhQYXRoUmVzdWx0LkFOWV9UWVBFLCBudWxsKScpOwor
c2hvdWxkVGhyb3coJ2RvYy5ldmFsdWF0ZSgiYWR1bWJyYXRlKCkiLCBkb2MuZG9jdW1lbnRFbGVt
ZW50LCBudWxsLCBYUGF0aFJlc3VsdC5BTllfVFlQRSwgbnVsbCknKTsKKwordmFyIGRvYyA9IChu
ZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoCisgICAgJzxkb2M+JyArCisgICAgICAgICc8
aXRlbSBpZD0iMSIgLz4nICsKKyAgICAgICAgJzxpdGVtIGlkPSIyIiAvPicgKworICAgICAgICAn
PGl0ZW0gaWQ9IjMiIC8+JyArCisgICAgICAgICc8aXRlbSBpZD0iNCIgLz4nICsKKyAgICAgICAg
JzxpdGVtIGlkPSI1IiAvPicgKworICAgICAgICAnPGl0ZW0gaWQ9IjYiIC8+JyArCisgICAgICAg
ICc8aXRlbSBpZD0iNyIgLz4nICsKKyAgICAgICAgJzxpdGVtIGlkPSI4IiAvPicgKworICAgICAg
ICAnPGl0ZW0gaWQ9IjkiIC8+JyArCisgICAgJzwvZG9jPicsCisgICAgJ2FwcGxpY2F0aW9uL3ht
bCcpOworCit2YXIgUk9PVCA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7Cit2YXIgSVRFTTEgPSBST09U
LmZpcnN0Q2hpbGQ7Cit2YXIgSVRFTTIgPSBJVEVNMS5uZXh0U2libGluZzsKK3ZhciBJVEVNMyA9
IElURU0yLm5leHRTaWJsaW5nOwordmFyIElURU00ID0gSVRFTTMubmV4dFNpYmxpbmc7Cit2YXIg
SVRFTTUgPSBJVEVNNC5uZXh0U2libGluZzsKK3ZhciBJVEVNNiA9IElURU01Lm5leHRTaWJsaW5n
OwordmFyIElURU03ID0gSVRFTTYubmV4dFNpYmxpbmc7Cit2YXIgSVRFTTggPSBJVEVNNy5uZXh0
U2libGluZzsKK3ZhciBJVEVNOSA9IElURU04Lm5leHRTaWJsaW5nOworCit0ZXN0KGRvYywgZG9j
LmRvY3VtZW50RWxlbWVudCwgJy8vaXRlbVtAaWQgbW9kIDIgPSAwXSB8IC8vaXRlbVtAaWQgbW9k
IDMgPSAwXScsIFtJVEVNMiwgSVRFTTMsIElURU00LCBJVEVNNiwgSVRFTTgsIElURU05XSk7Citz
aG91bGRUaHJvdygnZG9jLmV2YWx1YXRlKCIvL2l0ZW0gfCA0MiIsIGRvYy5kb2N1bWVudEVsZW1l
bnQsIG51bGwsIFhQYXRoUmVzdWx0LkFOWV9UWVBFLCBudWxsKScpOworc2hvdWxkVGhyb3coJ2Rv
Yy5ldmFsdWF0ZSgiL2RvYy8oaXRlbVtAaWQgPSAyXSB8IGl0ZW1bQGlkID0gNl0pL0BpZCIsIGRv
Yy5kb2N1bWVudEVsZW1lbnQsIG51bGwsIFhQYXRoUmVzdWx0LkFOWV9UWVBFLCBudWxsKScpOyAv
LyBUaGlzIHRlc3QgZG9lc24ndCB0aHJvdyBpbiBweS1kb20tcGF0aCwgd2hpY2ggaXMgYSBidWcu
CitzaG91bGRUaHJvdygiZG9jLmV2YWx1YXRlKCdcIm1vbnR5XCIvYW5hY29uZGEnLCBkb2MuZG9j
dW1lbnRFbGVtZW50LCBudWxsLCBYUGF0aFJlc3VsdC5BTllfVFlQRSwgbnVsbCkiKTsKK3Nob3Vs
ZFRocm93KCJkb2MuZXZhbHVhdGUoJy9kb2Mvc3RyaW5nKGl0ZW1bQGlkID0gMl0pL0BpZCcsIGRv
Yy5kb2N1bWVudEVsZW1lbnQsIG51bGwsIFhQYXRoUmVzdWx0LkFOWV9UWVBFLCBudWxsKSIpOwor
c2hvdWxkVGhyb3coImRvYy5ldmFsdWF0ZSgnKDEpWzFdJywgZG9jLmRvY3VtZW50RWxlbWVudCwg
bnVsbCwgWFBhdGhSZXN1bHQuQU5ZX1RZUEUsIG51bGwpIik7CisKKy8vIEFkZGVkIGZvciBXZWJL
aXQuCit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJygxKScsIDEpOwordGVzdChkb2Ms
IGRvYy5kb2N1bWVudEVsZW1lbnQsICcoKDEgKyAxKSknLCAyKTsKKwordmFyIGRvYyA9IChuZXcg
RE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoCisgICAgJzxkb2M+JyArCisgICAgJyAgICA8c2V0
IGlkPSIxIj4nICsKKyAgICAnICAgICAgICA8aXRlbT4xPC9pdGVtPicgKworICAgICcgICAgICAg
IDxpdGVtPjI8L2l0ZW0+JyArCisgICAgJyAgICAgICAgPGl0ZW0+MzwvaXRlbT4nICsKKyAgICAn
ICAgICAgICA8aXRlbT40PC9pdGVtPicgKworICAgICcgICAgPC9zZXQ+JyArCisgICAgJyAgICA8
c2V0IGlkPSIyIj4nICsKKyAgICAnICAgICAgICA8aXRlbT41PC9pdGVtPicgKworICAgICcgICAg
ICAgIDxpdGVtPjY8L2l0ZW0+JyArCisgICAgJyAgICAgICAgPGl0ZW0+NzwvaXRlbT4nICsKKyAg
ICAnICAgICAgICA8aXRlbT44PC9pdGVtPicgKworICAgICcgICAgPC9zZXQ+JyArCisgICAgJyAg
ICA8c2V0IGlkPSIzIj4nICsKKyAgICAnICAgICAgICA8aXRlbT4wPC9pdGVtPicgKworICAgICcg
ICAgICAgIDxpdGVtPjM8L2l0ZW0+JyArCisgICAgJyAgICAgICAgPGl0ZW0+NjwvaXRlbT4nICsK
KyAgICAnICAgICAgICA8aXRlbT45PC9pdGVtPicgKworICAgICcgICAgPC9zZXQ+JyArCisgICAg
JyAgICA8c2V0IGlkPSI0Ij4nICsKKyAgICAnICAgICAgICA8aXRlbT40Mi4wPC9pdGVtPicgKwor
ICAgICcgICAgPC9zZXQ+JyArCisgICAgJzwvZG9jPicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcp
OworCit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJzEgb3IgMScsIHRydWUpOwordGVz
dChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcxIG9yIDAnLCB0cnVlKTsKK3Rlc3QoZG9jLCBk
b2MuZG9jdW1lbnRFbGVtZW50LCAnMCBvciAxJywgdHJ1ZSk7Cit0ZXN0KGRvYywgZG9jLmRvY3Vt
ZW50RWxlbWVudCwgJzAgb3IgMCcsIGZhbHNlKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVt
ZW50LCAnMSBhbmQgMScsIHRydWUpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcx
IGFuZCAwJywgZmFsc2UpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcwIGFuZCAx
JywgZmFsc2UpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcwIGFuZCAwJywgZmFs
c2UpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcoLy9zZXRbQGlkPTFdLyopID0g
KC8vc2V0W0BpZD0zXS8qKScsIHRydWUpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQs
ICcoLy9zZXRbQGlkPTFdLyopID0gKC8vc2V0W0BpZD0yXS8qKScsIGZhbHNlKTsKK3Rlc3QoZG9j
LCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnKC8vc2V0W0BpZD0xXS8qKSAhPSAoLy9zZXRbQGlkPTFd
LyopJywgdHJ1ZSk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJygvL3NldFtAaWQ9
NF0vKikgIT0gKC8vc2V0W0BpZD00XS8qKScsIGZhbHNlKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1l
bnRFbGVtZW50LCAnKC8vc2V0W0BpZD0xXS8qKSA8PSAoLy9zZXRbQGlkPTJdLyopJywgdHJ1ZSk7
Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJygvL3NldFtAaWQ9Ml0vKikgPD0gKC8v
c2V0W0BpZD0xXS8qKScsIGZhbHNlKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAn
KC8vc2V0W0BpZD0xXS8qKSA8ICgvL3NldFtAaWQ9Ml0vKiknLCB0cnVlKTsKK3Rlc3QoZG9jLCBk
b2MuZG9jdW1lbnRFbGVtZW50LCAnKC8vc2V0W0BpZD0yXS8qKSA8ICgvL3NldFtAaWQ9MV0vKikn
LCBmYWxzZSk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJygvL3NldFtAaWQ9Ml0v
KikgPiAoLy9zZXRbQGlkPTFdLyopJywgdHJ1ZSk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxl
bWVudCwgJygvL3NldFtAaWQ9MV0vKikgPiAoLy9zZXRbQGlkPTJdLyopJywgZmFsc2UpOwordGVz
dChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcoLy9zZXRbQGlkPTJdLyopID49ICgvL3NldFtA
aWQ9MV0vKiknLCB0cnVlKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnKC8vc2V0
W0BpZD0xXS8qKSA+PSAoLy9zZXRbQGlkPTJdLyopJywgZmFsc2UpOwordGVzdChkb2MsIGRvYy5k
b2N1bWVudEVsZW1lbnQsICcoLy9zZXRbQGlkPTRdLyopID0gKDEgPSAxKScsIHRydWUpOwordGVz
dChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcoLy9zZXRbQGlkPTRdLyopID0gKDEgPSAwKScs
IGZhbHNlKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnKC8vc2V0W0BpZD00XS8q
KSAhPSAoMSA9IDApJywgdHJ1ZSk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJygv
L3NldFtAaWQ9NF0vKikgIT0gKDEgPSAxKScsIGZhbHNlKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1l
bnRFbGVtZW50LCAnKC8vc2V0W0BpZD00XS8qKSA9IDQyJywgdHJ1ZSk7Cit0ZXN0KGRvYywgZG9j
LmRvY3VtZW50RWxlbWVudCwgJygvL3NldFtAaWQ9NF0vKikgPSA0MycsIGZhbHNlKTsKK3Rlc3Qo
ZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnKC8vc2V0W0BpZD00XS8qKSAhPSA0MycsIHRydWUp
OwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcoLy9zZXRbQGlkPTRdLyopICE9IDQy
JywgZmFsc2UpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcoLy9zZXRbQGlkPTRd
LyopID0gIjQyLjAiJywgdHJ1ZSk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJygv
L3NldFtAaWQ9NF0vKikgPSAiNDIiJywgZmFsc2UpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVs
ZW1lbnQsICcoLy9zZXRbQGlkPTRdLyopICE9ICI0MiInLCB0cnVlKTsKK3Rlc3QoZG9jLCBkb2Mu
ZG9jdW1lbnRFbGVtZW50LCAnKC8vc2V0W0BpZD00XS8qKSAhPSAiNDIuMCInLCBmYWxzZSk7Cit0
ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJyJhIiA8PSAiYSInLCBmYWxzZSk7Cit0ZXN0
KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJyJhIiA8PSAiYiInLCBmYWxzZSk7Cit0ZXN0KGRv
YywgZG9jLmRvY3VtZW50RWxlbWVudCwgJyJhIiA+PSAiYSInLCBmYWxzZSk7Cit0ZXN0KGRvYywg
ZG9jLmRvY3VtZW50RWxlbWVudCwgJyJiIiA+ICJhIicsIGZhbHNlKTsKK3Rlc3QoZG9jLCBkb2Mu
ZG9jdW1lbnRFbGVtZW50LCAnMSA8PSAxJywgdHJ1ZSk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50
RWxlbWVudCwgJzIgPD0gMScsIGZhbHNlKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50
LCAnMSA8IDInLCB0cnVlKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnMSA8IDEn
LCBmYWxzZSk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJzEgPj0gMScsIHRydWUp
OwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcxID49IDInLCBmYWxzZSk7Cit0ZXN0
KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJzIgPiAxJywgdHJ1ZSk7Cit0ZXN0KGRvYywgZG9j
LmRvY3VtZW50RWxlbWVudCwgJzEgPiAxJywgZmFsc2UpOworCisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL2V4cHJlc3Np
b25zLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9weS1kb20teHBhdGgvZnVuY3Rpb25zLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0
aC9mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC94cGF0aC9weS1kb20teHBhdGgvZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw4NiBAQAorUEFTUyAvL2l0ZW1bQGlkPWxhc3QoKV0KK1BBU1MgLy9pdGVtW3Bv
c2l0aW9uKCk9M10KK1BBU1MgY291bnQoLy9pdGVtKQorRkFJTCBpZCgiYyIpIGluY29ycmVjdCBs
ZW5ndGggKGV4cGVjdGVkIDEsIGFjdHVhbCAwKQorRkFJTCBpZCgvL3JlZmVyZW5jZSkgaW5jb3Jy
ZWN0IGxlbmd0aCAoZXhwZWN0ZWQgMywgYWN0dWFsIDApCitQQVNTIGxvY2FsLW5hbWUoLy9zZWxm
Ojpub2RlKClbQGlkPTddKQorUEFTUyBudW1iZXIoLy9zZWxmOjpub2RlKClbQGlkPTddL2F0dHJp
YnV0ZTo6Kltsb2NhbC1uYW1lKCk9InZhbHVlIl0pCitQQVNTIGxvY2FsLW5hbWUoL2Fic2VudCkK
K1BBU1MgbmFtZXNwYWNlLXVyaSgvL3NlbGY6Om5vZGUoKVtAaWQ+NV0pCitQQVNTIC8vc2VsZjo6
bm9kZSgpW0BpZCBhbmQgbmFtZXNwYWNlLXVyaSgpPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2Ii
XQorUEFTUyBuYW1lc3BhY2UtdXJpKC9hYnNlbnQpCitQQVNTIG5hbWUoLy9zZWxmOjpub2RlKClb
QGlkPTddKQorUEFTUyAvL3NlbGY6Om5vZGUoKVtuYW1lKCk9ImI6aXRlbSJdCitQQVNTIG5hbWUo
L2Fic2VudCkKK1BBU1Mgc3RyaW5nKC8vcGFyYSkKK1BBU1Mgc3RyaW5nKC8vaW5jb25jZWl2YWJs
ZSkKK1BBU1Mgc3RyaW5nKDAgZGl2IDApCitQQVNTIHN0cmluZygxIGRpdiAwKQorUEFTUyBzdHJp
bmcoLTEgZGl2IDApCitQQVNTIHN0cmluZygyLjUgKiAyKQorUEFTUyBzdHJpbmcoMSBkaXYgLTIp
CitQQVNTIHN0cmluZygxID0gMikKK1BBU1Mgc3RyaW5nKCJzdHJpbmciKQorUEFTUyAvL3BhcmFb
c3RyaW5nKCk9IlR3byJdCitQQVNTIGNvbmNhdCgvL3BhcmEsICI6IiwgLy9wYXJhWzJdKQorUEFT
UyBzdGFydHMtd2l0aCgiZm9vLWJhciIsICJmb28iKQorUEFTUyBzdGFydHMtd2l0aCgiZm9vLWJh
ciIsICJiYXIiKQorUEFTUyBjb250YWlucygiZm9vLWJhciIsICJvLWIiKQorUEFTUyBjb250YWlu
cygiZm9vLWJhciIsICJiLW8iKQorUEFTUyBzdWJzdHJpbmctYmVmb3JlKCJmb286OmJhciIsICI6
OiIpCitQQVNTIHN1YnN0cmluZy1iZWZvcmUoImZvbzo6YmFyIiwgIi0tIikKK1BBU1Mgc3Vic3Ry
aW5nLWFmdGVyKCJmb286OmJhciIsICI6OiIpCitQQVNTIHN1YnN0cmluZy1hZnRlcigiZm9vOjpi
YXIiLCAiLS0iKQorUEFTUyBzdWJzdHJpbmcoIjEyMzQ1IiwgMikKK1BBU1Mgc3Vic3RyaW5nKCIx
MjM0NSIsIDIsIDMpCitQQVNTIHN1YnN0cmluZygiMTIzNDUiLCAxLjUsIDIuNikKK1BBU1Mgc3Vi
c3RyaW5nKCIxMjM0NSIsIDAsIDMpCitQQVNTIHN1YnN0cmluZygiMTIzNDUiLCAwIGRpdiAwLCAz
KQorUEFTUyBzdWJzdHJpbmcoIjEyMzQ1IiwgMSwgMCBkaXYgMCkKK1BBU1Mgc3Vic3RyaW5nKCIx
MjM0NSIsIC00MiwgMSBkaXYgMCkKK1BBU1Mgc3Vic3RyaW5nKCIxMjM0NSIsIC0xIGRpdiAwLCAx
IGRpdiAwKQorUEFTUyBzdWJzdHJpbmcoIjEyMzQ1IiwgNiwgMSkKK1BBU1Mgc3Vic3RyaW5nKCIx
MjM0NSIsIDEsIDApCitQQVNTIHN0cmluZy1sZW5ndGgoIjEyMzQ1IikKK1BBU1MgLy9wYXJhW3N0
cmluZy1sZW5ndGgoKT01XQorUEFTUyBub3JtYWxpemUtc3BhY2UoIiAgIG9uZSAgIHR3byAgICIp
CitQQVNTIC8vcGFyYVtub3JtYWxpemUtc3BhY2UoKSA9ICJGb3VyIl0KK1BBU1MgdHJhbnNsYXRl
KCJhYmNkZWYiLCAiYWJjZGUiLCAieHl6IikKK1BBU1MgYm9vbGVhbigxKQorUEFTUyBib29sZWFu
KDApCitQQVNTIGJvb2xlYW4oMCBkaXYgMCkKK1BBU1MgYm9vbGVhbihjb2QpCitQQVNTIGJvb2xl
YW4oZG9jKQorUEFTUyBib29sZWFuKCIiKQorUEFTUyBib29sZWFuKCJmb28iKQorUEFTUyBub3Qo
MSA9IDEpCitQQVNTIHRydWUoKQorUEFTUyBmYWxzZSgpCitQQVNTIC8vKltsYW5nKCJlbiIpXQor
UEFTUyAvLypbbGFuZygiRU4tVVMiKV0KK1BBU1Mgbm9ybWFsaXplLXNwYWNlKCgvL3RleHQoKVts
YW5nKCJqcCIpXSlbbm9ybWFsaXplLXNwYWNlKCldKQorUEFTUyBzdHJpbmcobnVtYmVyKCItMWU1
IikpCitQQVNTIG51bWJlcih0cnVlKCkpCitQQVNTIG51bWJlcihmYWxzZSgpKQorUEFTUyBudW1i
ZXIoLy9pdGVtKQorUEFTUyBzdHJpbmcoLy9pdGVtW251bWJlcigpPTQgZGl2IDJdKQorUEFTUyBz
dW0oLy9pdGVtKQorUEFTUyBmbG9vcigxLjk5KQorUEFTUyBmbG9vcigtMS45OSkKK1BBU1MgY2Vp
bGluZygxLjk5KQorUEFTUyBjZWlsaW5nKC0xLjk5KQorUEFTUyByb3VuZCgxLjUpCitQQVNTIHJv
dW5kKC0xLjUpCitQQVNTIHN0cmluZyhyb3VuZCgwIGRpdiAwKSkKK1BBU1Mgcm91bmQoMSBkaXYg
MCkKK1BBU1Mgcm91bmQoLTEgZGl2IDApCitQQVNTIG51bWJlcigiLjEiKQorUEFTUyBudW1iZXIo
IjEuIikKK1BBU1Mgc3RyaW5nKG51bWJlcigiLjEuIikpCitQQVNTIHN0cmluZyhudW1iZXIoIi4u
MSIpKQorUEFTUyBzdHJpbmcobnVtYmVyKCIxLi4iKSkKK1BBU1Mgc3RyaW5nKG51bWJlcigiLi0x
IikpCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9weS1kb20teHBhdGgv
ZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAg
KyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9mdW5jdGlvbnMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9mdW5jdGlvbnMuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL2Z1bmN0
aW9ucy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5OCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3hwYXRoLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+
Cit2YXIgZG9jID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZygKKyAgICAnPCFET0NU
WVBFIGRvYyBbPCFBVFRMSVNUIGl0ZW0gaWRlbnRpZmllciBJRCAjSU1QTElFRD5dPicgKyAKKyAg
ICAnPGRvYz4nICsgCisgICAgICAgICc8aXRlbSBpZD0iMSIgaWRlbnRpZmllcj0iYSIgLz4nICsg
CisgICAgICAgICc8aXRlbSBpZD0iMiIgaWRlbnRpZmllcj0iYiIgLz4nICsgCisgICAgICAgICc8
aXRlbSBpZD0iMyIgaWRlbnRpZmllcj0iYyIgLz4nICsgCisgICAgICAgICc8aXRlbSBpZD0iNCIg
aWRlbnRpZmllcj0iZCIgLz4nICsgCisgICAgICAgICc8aXRlbSBpZD0iNSIgaWRlbnRpZmllcj0i
ZSIgLz4nICsgCisgICAgICAgICc8cmVmZXJlbmNlPmE8L3JlZmVyZW5jZT4nICsgCisgICAgICAg
ICc8cmVmZXJlbmNlPmM8L3JlZmVyZW5jZT4nICsgCisgICAgICAgICc8cmVmZXJlbmNlPmU8L3Jl
ZmVyZW5jZT4nICsgCisgICAgICAgICc8bmFtZXNwYWNlIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1w
bGUuY29tL2EiIHhtbG5zOmI9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vYiI+JyArIAorICAgICAg
ICAgICAgJzxpdGVtIGlkPSI2IiAvPicgKyAKKyAgICAgICAgICAgICc8YjppdGVtIGlkPSI3IiBi
OnZhbHVlPSI0MiIgLz4nICsgCisgICAgICAgICc8L25hbWVzcGFjZT4nICsgCisgICAgJzwvZG9j
PicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOworCit2YXIgUk9PVCA9IGRvYy5kb2N1bWVudEVs
ZW1lbnQ7Cit2YXIgSVRFTTEgPSBST09ULmZpcnN0Q2hpbGQ7Cit2YXIgSVRFTTIgPSBJVEVNMS5u
ZXh0U2libGluZzsKK3ZhciBJVEVNMyA9IElURU0yLm5leHRTaWJsaW5nOwordmFyIElURU00ID0g
SVRFTTMubmV4dFNpYmxpbmc7Cit2YXIgSVRFTTUgPSBJVEVNNC5uZXh0U2libGluZzsKK3ZhciBS
RUZBID0gSVRFTTUubmV4dFNpYmxpbmc7Cit2YXIgUkVGQyA9IFJFRkEubmV4dFNpYmxpbmc7Cit2
YXIgUkVGRSA9IFJFRkMubmV4dFNpYmxpbmc7Cit2YXIgTkFNRVNQQUNFID0gUkVGRS5uZXh0U2li
bGluZzsKK3ZhciBJVEVNNiA9IE5BTUVTUEFDRS5maXJzdENoaWxkOwordmFyIElURU03ID0gSVRF
TTYubmV4dFNpYmxpbmc7CisKK3Rlc3QoZG9jLCBST09ULCAnLy9pdGVtW0BpZD1sYXN0KCldJywg
W0lURU01XSk7Cit0ZXN0KGRvYywgUk9PVCwgJy8vaXRlbVtwb3NpdGlvbigpPTNdJywgW0lURU0z
XSk7Cit0ZXN0KGRvYywgUk9PVCwgJ2NvdW50KC8vaXRlbSknLCA1KTsKK3Rlc3QoZG9jLCBST09U
LCAnaWQoImMiKScsIFtJVEVNM10pOwordGVzdChkb2MsIFJPT1QsICdpZCgvL3JlZmVyZW5jZSkn
LCBbSVRFTTEsIElURU0zLCBJVEVNNV0pOworLy8gVGhlIGJlbG93IHRlc3QgaXMgd3JvbmcsIGl0
IGhhcyBhbiBpbnZhbGlkIGV4cHJlc3Npb24uCisvL3Rlc3QoZG9jLCBST09ULCAnLy9yZWZlcmVu
Y2UvaWQoImEiKScsIFtJVEVNMV0pOworLy8gU2V2ZXJhbCB0ZXN0cyBiZWxvdyBvcmlnaW5hbGx5
IHVzZWQgcHJlZGljYXRlcyB3aXRoIGFuIGFiYnJldmlhdGVkIHN0ZXAsIHdoaWNoIGlzIGZvcm1h
bGx5IGludmFsaWQsIHNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyNjMyPi4KK3Rlc3QoZG9jLCBST09ULCAnbG9jYWwtbmFtZSgvL3NlbGY6Om5vZGUoKVtAaWQ9
N10pJywgJ2l0ZW0nKTsKK3Rlc3QoZG9jLCBST09ULCAnbnVtYmVyKC8vc2VsZjo6bm9kZSgpW0Bp
ZD03XS9hdHRyaWJ1dGU6OipbbG9jYWwtbmFtZSgpPSJ2YWx1ZSJdKScsIDQyKTsKK3Rlc3QoZG9j
LCBST09ULCAnbG9jYWwtbmFtZSgvYWJzZW50KScsICcnKTsKK3Rlc3QoZG9jLCBST09ULCAnbmFt
ZXNwYWNlLXVyaSgvL3NlbGY6Om5vZGUoKVtAaWQ+NV0pJywgJ2h0dHA6Ly93d3cuZXhhbXBsZS5j
b20vYScpOwordGVzdChkb2MsIFJPT1QsICcvL3NlbGY6Om5vZGUoKVtAaWQgYW5kIG5hbWVzcGFj
ZS11cmkoKT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9iIl0nLCBbSVRFTTddKTsKK3Rlc3QoZG9j
LCBST09ULCAnbmFtZXNwYWNlLXVyaSgvYWJzZW50KScsICcnKTsKK3Rlc3QoZG9jLCBST09ULCAn
bmFtZSgvL3NlbGY6Om5vZGUoKVtAaWQ9N10pJywgJ2I6aXRlbScpOwordGVzdChkb2MsIFJPT1Qs
ICcvL3NlbGY6Om5vZGUoKVtuYW1lKCk9ImI6aXRlbSJdJywgW0lURU03XSk7Cit0ZXN0KGRvYywg
Uk9PVCwgJ25hbWUoL2Fic2VudCknLCAnJyk7CisKKworZG9jID0gKG5ldyBET01QYXJzZXIpLnBh
cnNlRnJvbVN0cmluZygKKyAgICAnPGRvYz4nICsKKyAgICAgICAgJzxwYXJhIGlkPSIxIj5PbmU8
L3BhcmE+JyArCisgICAgICAgICc8cGFyYSBpZD0iMiI+VHdvPC9wYXJhPicgKworICAgICAgICAn
PHBhcmEgaWQ9IjMiPlRocmVlPC9wYXJhPicgKworICAgICAgICAnPHBhcmEgaWQ9IjQiPicgKwor
ICAgICAgICAgICAgJ0ZvdXInICsKKyAgICAgICAgJzwvcGFyYT4nICsKKyAgICAnPC9kb2M+JywK
KyAgICAnYXBwbGljYXRpb24veG1sJyk7CisKK3ZhciBST09UID0gZG9jLmRvY3VtZW50RWxlbWVu
dDsKK3ZhciBQQVJBMSA9IFJPT1QuZmlyc3RDaGlsZDsKK3ZhciBQQVJBMiA9IFBBUkExLm5leHRT
aWJsaW5nOwordmFyIFBBUkEzID0gUEFSQTIubmV4dFNpYmxpbmc7Cit2YXIgUEFSQTQgPSBQQVJB
My5uZXh0U2libGluZzsKKwordGVzdChkb2MsIGRvYywgJ3N0cmluZygvL3BhcmEpJywgJ09uZScp
OwordGVzdChkb2MsIGRvYywgJ3N0cmluZygvL2luY29uY2VpdmFibGUpJywgJycpOwordGVzdChk
b2MsIGRvYywgJ3N0cmluZygwIGRpdiAwKScsICdOYU4nKTsKK3Rlc3QoZG9jLCBkb2MsICdzdHJp
bmcoMSBkaXYgMCknLCAnSW5maW5pdHknKTsKK3Rlc3QoZG9jLCBkb2MsICdzdHJpbmcoLTEgZGl2
IDApJywgJy1JbmZpbml0eScpOwordGVzdChkb2MsIGRvYywgJ3N0cmluZygyLjUgKiAyKScsICc1
Jyk7Cit0ZXN0KGRvYywgZG9jLCAnc3RyaW5nKDEgZGl2IC0yKScsICctMC41Jyk7Cit0ZXN0KGRv
YywgZG9jLCAnc3RyaW5nKDEgPSAyKScsICdmYWxzZScpOwordGVzdChkb2MsIGRvYywgJ3N0cmlu
Zygic3RyaW5nIiknLCAnc3RyaW5nJyk7Cit0ZXN0KGRvYywgZG9jLCAnLy9wYXJhW3N0cmluZygp
PSJUd28iXScsIFtQQVJBMl0pOwordGVzdChkb2MsIGRvYywgJ2NvbmNhdCgvL3BhcmEsICI6Iiwg
Ly9wYXJhWzJdKScsICdPbmU6VHdvJyk7Cit0ZXN0KGRvYywgZG9jLCAnc3RhcnRzLXdpdGgoImZv
by1iYXIiLCAiZm9vIiknLCB0cnVlKTsKK3Rlc3QoZG9jLCBkb2MsICdzdGFydHMtd2l0aCgiZm9v
LWJhciIsICJiYXIiKScsIGZhbHNlKTsKK3Rlc3QoZG9jLCBkb2MsICdjb250YWlucygiZm9vLWJh
ciIsICJvLWIiKScsIHRydWUpOwordGVzdChkb2MsIGRvYywgJ2NvbnRhaW5zKCJmb28tYmFyIiwg
ImItbyIpJywgZmFsc2UpOwordGVzdChkb2MsIGRvYywgJ3N1YnN0cmluZy1iZWZvcmUoImZvbzo6
YmFyIiwgIjo6IiknLCAnZm9vJyk7Cit0ZXN0KGRvYywgZG9jLCAnc3Vic3RyaW5nLWJlZm9yZSgi
Zm9vOjpiYXIiLCAiLS0iKScsICcnKTsKK3Rlc3QoZG9jLCBkb2MsICdzdWJzdHJpbmctYWZ0ZXIo
ImZvbzo6YmFyIiwgIjo6IiknLCAnYmFyJyk7Cit0ZXN0KGRvYywgZG9jLCAnc3Vic3RyaW5nLWFm
dGVyKCJmb286OmJhciIsICItLSIpJywgJycpOwordGVzdChkb2MsIGRvYywgJ3N1YnN0cmluZygi
MTIzNDUiLCAyKScsICcyMzQ1Jyk7Cit0ZXN0KGRvYywgZG9jLCAnc3Vic3RyaW5nKCIxMjM0NSIs
IDIsIDMpJywgJzIzNCcpOwordGVzdChkb2MsIGRvYywgJ3N1YnN0cmluZygiMTIzNDUiLCAxLjUs
IDIuNiknLCAnMjM0Jyk7Cit0ZXN0KGRvYywgZG9jLCAnc3Vic3RyaW5nKCIxMjM0NSIsIDAsIDMp
JywgJzEyJyk7Cit0ZXN0KGRvYywgZG9jLCAnc3Vic3RyaW5nKCIxMjM0NSIsIDAgZGl2IDAsIDMp
JywgJycpOwordGVzdChkb2MsIGRvYywgJ3N1YnN0cmluZygiMTIzNDUiLCAxLCAwIGRpdiAwKScs
ICcnKTsKK3Rlc3QoZG9jLCBkb2MsICdzdWJzdHJpbmcoIjEyMzQ1IiwgLTQyLCAxIGRpdiAwKScs
ICcxMjM0NScpOwordGVzdChkb2MsIGRvYywgJ3N1YnN0cmluZygiMTIzNDUiLCAtMSBkaXYgMCwg
MSBkaXYgMCknLCAnJyk7Cit0ZXN0KGRvYywgZG9jLCAnc3Vic3RyaW5nKCIxMjM0NSIsIDYsIDEp
JywgJycpOwordGVzdChkb2MsIGRvYywgJ3N1YnN0cmluZygiMTIzNDUiLCAxLCAwKScsICcnKTsK
K3Rlc3QoZG9jLCBkb2MsICdzdHJpbmctbGVuZ3RoKCIxMjM0NSIpJywgNSk7Cit0ZXN0KGRvYywg
ZG9jLCAnLy9wYXJhW3N0cmluZy1sZW5ndGgoKT01XScsIFtQQVJBM10pOwordGVzdChkb2MsIGRv
YywgJ25vcm1hbGl6ZS1zcGFjZSgiICAgb25lICAgdHdvICAgIiknLCAnb25lIHR3bycpOwordGVz
dChkb2MsIGRvYywgJy8vcGFyYVtub3JtYWxpemUtc3BhY2UoKSA9ICJGb3VyIl0nLCBbUEFSQTRd
KTsKK3Rlc3QoZG9jLCBkb2MsICd0cmFuc2xhdGUoImFiY2RlZiIsICJhYmNkZSIsICJ4eXoiKScs
ICd4eXpmJyk7CisKK2RvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoCisgICAg
Jzxkb2MgaWQ9IjAiPicgKworICAgICAgICAnPHBhcmEgaWQ9IjEiIC8+JyArCisgICAgICAgICc8
cGFyYSBpZD0iMiIgeG1sOmxhbmc9ImVuIj4nICsKKyAgICAgICAgICAgICc8aXRlbSBpZD0iMyIg
Lz4nICsKKyAgICAgICAgICAgICdFbmdsaXNoJyArCisgICAgICAgICAgICAnPHNlY3Rpb24gaWQ9
IjQiIHhtbDpsYW5nPSJqcCI+JyArCisgICAgICAgICAgICAgICAgJzxpdGVtIGlkPSI1IiAvPicg
KworICAgICAgICAgICAgICAgICdOaWhvbmdvJyArCisgICAgICAgICAgICAnPC9zZWN0aW9uPicg
KworICAgICAgICAnPC9wYXJhPicgKworICAgICAgICAnPHBhcmEgaWQ9IjYiIHhtbDpsYW5nPSJF
TiI+JyArCisgICAgICAgICAgICAnRU5HTElTSCcgKworICAgICAgICAnPC9wYXJhPicgKworICAg
ICAgICAnPHBhcmEgaWQ9IjciIHhtbDpsYW5nPSJlbi11cyI+JyArCisgICAgICAgICAgICAnVVMg
RW5nbGlzaCcgKworICAgICAgICAnPC9wYXJhPicgKworICAgICAgICAnPHBhcmEgaWQ9IjgiIHht
bDpsYW5nPSJFTi1VSyI+JyArCisgICAgICAgICAgICAnVUsgRW5nbGlzaCcgKworICAgICAgICAn
PC9wYXJhPicgKworICAgICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlvbi94bWwnKTsKKwordmFy
IFJPT1QgPSBkb2MuZG9jdW1lbnRFbGVtZW50OwordmFyIFBBUkExID0gUk9PVC5maXJzdENoaWxk
OwordmFyIFBBUkEyID0gUEFSQTEubmV4dFNpYmxpbmc7Cit2YXIgSVRFTTMgPSBQQVJBMi5maXJz
dENoaWxkOwordmFyIFNFQ1RJT040ID0gSVRFTTMubmV4dFNpYmxpbmcubmV4dFNpYmxpbmc7Cit2
YXIgSVRFTTUgPSBTRUNUSU9ONC5maXJzdENoaWxkOwordmFyIFBBUkE2ID0gUEFSQTIubmV4dFNp
Ymxpbmc7Cit2YXIgUEFSQTcgPSBQQVJBNi5uZXh0U2libGluZzsKK3ZhciBQQVJBOCA9IFBBUkE3
Lm5leHRTaWJsaW5nOworCit0ZXN0KGRvYywgZG9jLCAnYm9vbGVhbigxKScsIHRydWUpOwordGVz
dChkb2MsIGRvYywgJ2Jvb2xlYW4oMCknLCBmYWxzZSk7Cit0ZXN0KGRvYywgZG9jLCAnYm9vbGVh
bigwIGRpdiAwKScsIGZhbHNlKTsKK3Rlc3QoZG9jLCBkb2MsICdib29sZWFuKGNvZCknLCBmYWxz
ZSk7Cit0ZXN0KGRvYywgZG9jLCAnYm9vbGVhbihkb2MpJywgdHJ1ZSk7Cit0ZXN0KGRvYywgZG9j
LCAnYm9vbGVhbigiIiknLCBmYWxzZSk7Cit0ZXN0KGRvYywgZG9jLCAnYm9vbGVhbigiZm9vIikn
LCB0cnVlKTsKK3Rlc3QoZG9jLCBkb2MsICdub3QoMSA9IDEpJywgZmFsc2UpOwordGVzdChkb2Ms
IGRvYywgJ3RydWUoKScsIHRydWUpOwordGVzdChkb2MsIGRvYywgJ2ZhbHNlKCknLCBmYWxzZSk7
Cit0ZXN0KGRvYywgZG9jLCAnLy8qW2xhbmcoImVuIildJywgW1BBUkEyLCBJVEVNMywgUEFSQTYs
IFBBUkE3LCBQQVJBOF0pOwordGVzdChkb2MsIGRvYywgJy8vKltsYW5nKCJFTi1VUyIpXScsIFtQ
QVJBN10pOwordGVzdChkb2MsIGRvYywgJ25vcm1hbGl6ZS1zcGFjZSgoLy90ZXh0KClbbGFuZygi
anAiKV0pW25vcm1hbGl6ZS1zcGFjZSgpXSknLCAnTmlob25nbycpOworCitkb2MgPSAobmV3IERP
TVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKAorICAgICc8ZG9jPicgKworICAgICAgICAnPGl0ZW0+
MTwvaXRlbT4nICsKKyAgICAgICAgJzxpdGVtPjI8L2l0ZW0+JyArCisgICAgICAgICc8aXRlbT4z
PC9pdGVtPicgKworICAgICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlvbi94bWwnKTsKKwordGVz
dChkb2MsIGRvYywgJ3N0cmluZyhudW1iZXIoIi0xZTUiKSknLCAnTmFOJyk7IC8vIFRoaXMgdGVz
dCBvcmlnaW5hbGx5IGNoZWNrZWQgZm9yIHN1Y2Nlc3NmdWwgcGFyc2luZywgYnV0IC0xZTUgaXMg
bm90IGEgdmFsaWQgWFBhdGggbnVtYmVyLgordGVzdChkb2MsIGRvYywgJ251bWJlcih0cnVlKCkp
JywgMSk7Cit0ZXN0KGRvYywgZG9jLCAnbnVtYmVyKGZhbHNlKCkpJywgMCk7Cit0ZXN0KGRvYywg
ZG9jLCAnbnVtYmVyKC8vaXRlbSknLCAxKTsKK3Rlc3QoZG9jLCBkb2MsICdzdHJpbmcoLy9pdGVt
W251bWJlcigpPTQgZGl2IDJdKScsICcyJyk7Cit0ZXN0KGRvYywgZG9jLCAnc3VtKC8vaXRlbSkn
LCA2KTsKK3Rlc3QoZG9jLCBkb2MsICdmbG9vcigxLjk5KScsIDEpOwordGVzdChkb2MsIGRvYywg
J2Zsb29yKC0xLjk5KScsIC0yKTsKK3Rlc3QoZG9jLCBkb2MsICdjZWlsaW5nKDEuOTkpJywgMik7
Cit0ZXN0KGRvYywgZG9jLCAnY2VpbGluZygtMS45OSknLCAtMSk7Cit0ZXN0KGRvYywgZG9jLCAn
cm91bmQoMS41KScsIDIpOwordGVzdChkb2MsIGRvYywgJ3JvdW5kKC0xLjUpJywgLTEpOwordGVz
dChkb2MsIGRvYywgJ3N0cmluZyhyb3VuZCgwIGRpdiAwKSknLCAnTmFOJyk7Cit0ZXN0KGRvYywg
ZG9jLCAncm91bmQoMSBkaXYgMCknLCAxIC8gMCk7Cit0ZXN0KGRvYywgZG9jLCAncm91bmQoLTEg
ZGl2IDApJywgLTEgLyAwKTsKKworLy8gVGhlIGJlbG93IHRlc3RzIGFyZSBhZGRlZCBmb3IgV2Vi
S2l0IHRvIGNvbXBsZW1lbnQgdGhlIC0xZTUgdGVzdCBhYm92ZS4KK3Rlc3QoZG9jLCBkb2MsICdu
dW1iZXIoIi4xIiknLCAwLjEpOwordGVzdChkb2MsIGRvYywgJ251bWJlcigiMS4iKScsIDEpOwor
dGVzdChkb2MsIGRvYywgJ3N0cmluZyhudW1iZXIoIi4xLiIpKScsICdOYU4nKTsKK3Rlc3QoZG9j
LCBkb2MsICdzdHJpbmcobnVtYmVyKCIuLjEiKSknLCAnTmFOJyk7Cit0ZXN0KGRvYywgZG9jLCAn
c3RyaW5nKG51bWJlcigiMS4uIikpJywgJ05hTicpOwordGVzdChkb2MsIGRvYywgJ3N0cmluZyhu
dW1iZXIoIi4tMSIpKScsICdOYU4nKTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9mdW5jdGlvbnMuaHRtbApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9ub2RldGVzdHMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL25vZGV0ZXN0cy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRv
bS14cGF0aC9ub2RldGVzdHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5
IEBACitQQVNTIC9kZXNjZW5kYW50OjppdGVtCitQQVNTIC9kZXNjZW5kYW50OjphOml0ZW0KK1BB
U1MgL2Rlc2NlbmRhbnQ6OmI6KgorUEFTUyBkb2Nucy5ldmFsdWF0ZSgiLy94OioiLCBkb2Nucywg
bnNSZXNvbHZlciwgWFBhdGhSZXN1bHQuQU5ZX1RZUEUsIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogTkFNRVNQQUNFX0VSUjogRE9NIEV4Y2VwdGlvbiAxNC4KK1BBU1MgZG9jL2NoaWxkOjoq
CitQQVNTIGE6ZG9jL2NoaWxkOjoqCitQQVNTIC8vYXR0cmlidXRlOjpjb2xvcgorUEFTUyAvL2F0
dHJpYnV0ZTo6Y29sb3IKK1BBU1MgLy9hdHRyaWJ1dGU6OmI6KgorUEFTUyAvL2F0dHJpYnV0ZTo6
KgorUEFTUyBjb3VudCgvL2F0dHJpYnV0ZTo6KikKK1BBU1MgZG9jL2NoaWxkOjp0ZXh0KCkKK1BB
U1MgZG9jL2NoaWxkOjpjb21tZW50KCkKK1BBU1MgZG9jL2NoaWxkOjpwcm9jZXNzaW5nLWluc3Ry
dWN0aW9uKCkKK1BBU1MgZG9jL2NoaWxkOjpwcm9jZXNzaW5nLWluc3RydWN0aW9uKCJvbmUiKQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL25vZGV0
ZXN0cy1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4
dC9wbGFpbgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC94cGF0aC9weS1kb20teHBhdGgvbm9kZXRlc3RzLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC94cGF0aC9weS1kb20teHBhdGgvbm9kZXRlc3RzLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9ub2RldGVzdHMu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5OCBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3hwYXRoLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+Cit2YXIg
ZG9jID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZygKKyAgICAnPGRvYz4nICsKKyAg
ICAgICAgJzxpdGVtIGlkPSIxIiBjb2xvcj0icmVkIiAvPicgKworICAgICAgICAnPGNoYXB0ZXIg
aWQ9ImMxIj4nICsKKyAgICAgICAgICAgICc8aXRlbSBpZD0iMiIgY29sb3I9ImJsdWUiIC8+JyAr
CisgICAgICAgICc8L2NoYXB0ZXI+JyArCisgICAnPC9kb2M+JywKKyAgICAnYXBwbGljYXRpb24v
eG1sJyk7CisKK3ZhciBST09UID0gZG9jLmRvY3VtZW50RWxlbWVudDsKK3ZhciBESTEgPSBST09U
LmZpcnN0Q2hpbGQ7Cit2YXIgREMxID0gREkxLm5leHRTaWJsaW5nOwordmFyIERJMiA9IERDMS5m
aXJzdENoaWxkOworCit2YXIgZG9jbnMgPSAobmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5n
KAorICAgICc8ZG9jIHhtbG5zPSJodHRwOi8vYS5leGFtcGxlLmNvbSIgeG1sbnM6Yj0iaHR0cDov
L2IuZXhhbXBsZS5jb20iPicgKworICAgICAgICAnPGl0ZW0gaWQ9IjEiIGNvbG9yPSJyZWQiLz4n
ICsKKyAgICAgICAgJzxhOml0ZW0gaWQ9IjIiIHhtbG5zOmE9Imh0dHA6Ly9hLmV4YW1wbGUuY29t
IiBhOmNvbG9yPSJvcmFuZ2UiLz4nICsKKyAgICAgICAgJzxiOml0ZW0gaWQ9IjMiIGNvbG9yPSJ5
ZWxsb3ciIC8+JyArCisgICAgICAgICc8aXRlbSBpZD0iNCIgeG1sbnM9Imh0dHA6Ly9hLmV4YW1w
bGUuY29tIiBjb2xvcj0iZ3JlZW4iLz4nICsKKyAgICAgICAgJzxjaGFwdGVyIGlkPSJjMSIgeG1s
bnM9Imh0dHA6Ly9iLmV4YW1wbGUuY29tIj4nICsKKyAgICAgICAgICAgICc8aXRlbSBpZD0iNSIg
Y29sb3I9ImJsdWUiIC8+JyArCisgICAgICAgICAgICAnPGI6aXRlbSBpZD0iNiIgYjpjb2xvcj0i
aW5kaWdvIi8+JyArCisgICAgICAgICc8L2NoYXB0ZXI+JyArCisgICAgICAgICc8Y2hhcHRlciBp
ZD0iYzIiIHhtbG5zPSJodHRwOi8vYi5leGFtcGxlLmNvbSIgeG1sbnM6Yj0iaHR0cDovL2EuZXhh
bXBsZS5jb20iPicgKworICAgICAgICAgICAgJzxpdGVtIGlkPSI3IiBiOmNvbG9yPSJ2aW9sZXQi
Lz4nICsKKyAgICAgICAgICAgICc8YjppdGVtIGlkPSI4IiBhOmNvbG9yPSJicm93biIgeG1sbnM6
YT0iaHR0cDovL2IuZXhhbXBsZS5jb20iLz4nICsKKyAgICAgICAgJzwvY2hhcHRlcj4nICsKKyAg
ICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlvbi94bWwnKTsKKwordmFyIFhST09UID0gZG9jbnMu
Zmlyc3RDaGlsZDsKK3ZhciBYSTEgPSBYUk9PVC5maXJzdENoaWxkOwordmFyIFhJMiA9IFhJMS5u
ZXh0U2libGluZzsKK3ZhciBYSTMgPSBYSTIubmV4dFNpYmxpbmc7Cit2YXIgWEk0ID0gWEkzLm5l
eHRTaWJsaW5nOwordmFyIFhDMSA9IFhJNC5uZXh0U2libGluZzsKK3ZhciBYSTUgPSBYQzEuZmly
c3RDaGlsZDsKK3ZhciBYSTYgPSBYSTUubmV4dFNpYmxpbmc7Cit2YXIgWEMyID0gWEMxLm5leHRT
aWJsaW5nOwordmFyIFhJNyA9IFhDMi5maXJzdENoaWxkOwordmFyIFhJOCA9IFhJNy5uZXh0U2li
bGluZzsKKworZnVuY3Rpb24gbnNSZXNvbHZlcihwcmVmaXgpCit7CisgICAgaWYgKHByZWZpeCA9
PSAiYiIpCisgICAgICAgIHJldHVybiAiaHR0cDovL2IuZXhhbXBsZS5jb20iOworICAgIGlmIChw
cmVmaXggPT0gImEiKQorICAgICAgICByZXR1cm4gImh0dHA6Ly9hLmV4YW1wbGUuY29tIjsKKyAg
ICByZXR1cm4gbnVsbDsKK30KKworLy8gU29tZSBvZiB0aGVzZSB0ZXN0cyBvcmlnaW5hbGx5IHVz
ZWQgYSBkZWZhdWx0IG5hbWVzcGFjZSwgd2hpY2ggaXMgbm90IGF2YWlsYWJsZSBpbiBKYXZhU2Ny
aXB0IFhQYXRoRXZhbHVhdG9yLgordGVzdChkb2MsIGRvYywgJy9kZXNjZW5kYW50OjppdGVtJywg
W0RJMSwgREkyXSk7Cit0ZXN0KGRvY25zLCBkb2NucywgJy9kZXNjZW5kYW50OjphOml0ZW0nLCBb
WEkxLCBYSTIsIFhJNCwgWEk4XSwgbnNSZXNvbHZlcik7Cit0ZXN0KGRvY25zLCBkb2NucywgJy9k
ZXNjZW5kYW50OjpiOionLCBbWEkzLCBYQzEsIFhJNSwgWEk2LCBYQzIsIFhJN10sIG5zUmVzb2x2
ZXIpOworc2hvdWxkVGhyb3coJ2RvY25zLmV2YWx1YXRlKCIvL3g6KiIsIGRvY25zLCBuc1Jlc29s
dmVyLCBYUGF0aFJlc3VsdC5BTllfVFlQRSwgbnVsbCknKTsKK3Rlc3QoZG9jLCBkb2MsICdkb2Mv
Y2hpbGQ6OionLCBbREkxLCBEQzFdKTsKK3Rlc3QoZG9jbnMsIGRvY25zLCAnYTpkb2MvY2hpbGQ6
OionLCBbWEkxLCBYSTIsIFhJMywgWEk0LCBYQzEsIFhDMl0sIG5zUmVzb2x2ZXIpOwordGVzdChk
b2MsIGRvYywgJy8vYXR0cmlidXRlOjpjb2xvcicsIFtESTEuZ2V0QXR0cmlidXRlTm9kZSgiY29s
b3IiKSwgREkyLmdldEF0dHJpYnV0ZU5vZGUoImNvbG9yIildKTsKK3Rlc3QoZG9jbnMsIGRvY25z
LCAnLy9hdHRyaWJ1dGU6OmNvbG9yJywgW1hJMS5nZXRBdHRyaWJ1dGVOb2RlKCJjb2xvciIpLCBY
STMuZ2V0QXR0cmlidXRlTm9kZSgiY29sb3IiKSwgWEk0LmdldEF0dHJpYnV0ZU5vZGUoImNvbG9y
IiksIFhJNS5nZXRBdHRyaWJ1dGVOb2RlKCJjb2xvciIpXSwgbnNSZXNvbHZlcik7Cit0ZXN0KGRv
Y25zLCBkb2NucywgJy8vYXR0cmlidXRlOjpiOionLCBbWEk2LmdldEF0dHJpYnV0ZU5vZGVOUygi
aHR0cDovL2IuZXhhbXBsZS5jb20iLCAiY29sb3IiKSwgWEk4LmdldEF0dHJpYnV0ZU5vZGVOUygi
aHR0cDovL2IuZXhhbXBsZS5jb20iLCAiY29sb3IiKV0sIG5zUmVzb2x2ZXIpOwordGVzdChkb2Ms
IGRvYywgJy8vYXR0cmlidXRlOjoqJywgW0RJMS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpLCBESTEu
Z2V0QXR0cmlidXRlTm9kZSgiY29sb3IiKSwgREMxLmdldEF0dHJpYnV0ZU5vZGUoImlkIiksIERJ
Mi5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpLCBESTIuZ2V0QXR0cmlidXRlTm9kZSgiY29sb3IiKV0p
OwordGVzdChkb2NucywgZG9jbnMsICdjb3VudCgvL2F0dHJpYnV0ZTo6KiknLCAxOCwgbnNSZXNv
bHZlcik7CisKKwordmFyIGRvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoCisg
ICAgJzxkb2M+PGVsZW1lbnQgLz50ZXh0PD9vbmUgcGk/Pjw/dHdvIHBpPz48IS0tY29tbWVudC0t
PjwvZG9jPicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOworCit2YXIgUk9PVCA9IGRvYy5kb2N1
bWVudEVsZW1lbnQ7Cit2YXIgVEVYVCA9IFJPT1QuZmlyc3RDaGlsZC5uZXh0U2libGluZzsKK3Zh
ciBDT01NRU5UID0gUk9PVC5sYXN0Q2hpbGQ7Cit2YXIgUEkxID0gVEVYVC5uZXh0U2libGluZzsK
K3ZhciBQSTIgPSBQSTEubmV4dFNpYmxpbmc7CisKK3Rlc3QoZG9jLCBkb2MsICdkb2MvY2hpbGQ6
OnRleHQoKScsIFtURVhUXSk7Cit0ZXN0KGRvYywgZG9jLCAnZG9jL2NoaWxkOjpjb21tZW50KCkn
LCBbQ09NTUVOVF0pOwordGVzdChkb2MsIGRvYywgJ2RvYy9jaGlsZDo6cHJvY2Vzc2luZy1pbnN0
cnVjdGlvbigpJywgW1BJMSwgUEkyXSk7Cit0ZXN0KGRvYywgZG9jLCAnZG9jL2NoaWxkOjpwcm9j
ZXNzaW5nLWluc3RydWN0aW9uKCJvbmUiKScsIFtQSTFdKTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9ub2RldGVz
dHMuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9wYXRocy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9weS1kb20teHBhdGgvcGF0
aHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9w
eS1kb20teHBhdGgvcGF0aHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1
IEBACitQQVNTIGNoaWxkOjpwYXJhCitQQVNTIGNoaWxkOjoqCitQQVNTIGNoaWxkOjp0ZXh0KCkK
K1BBU1MgY2hpbGQ6Om5vZGUoKQorUEFTUyBhdHRyaWJ1dGU6Om5hbWUKK1BBU1MgYXR0cmlidXRl
OjoqCitQQVNTIGRlc2NlbmRhbnQ6OnBhcmEKK1BBU1MgYW5jZXN0b3I6OmRpdgorUEFTUyBhbmNl
c3Rvci1vci1zZWxmOjpkaXYKK1BBU1MgZGVzY2VuZGFudC1vci1zZWxmOjpwYXJhCitQQVNTIHNl
bGY6OnBhcmEKK1BBU1Mgc2VsZjo6cGFyYQorUEFTUyBjaGlsZDo6Y2hhcHRlci9kZXNjZW5kYW50
OjpwYXJhCitQQVNTIGNoaWxkOjoqL2NoaWxkOjpwYXJhCitQQVNTIC8KK1BBU1MgL2Rlc2NlbmRh
bnQ6OnBhcmEKK1BBU1MgL2Rlc2NlbmRhbnQ6Om9saXN0L2NoaWxkOjppdGVtCitQQVNTIGNoaWxk
OjpwYXJhW3Bvc2l0aW9uKCk9MV0KK1BBU1MgY2hpbGQ6OnBhcmFbcG9zaXRpb24oKT1sYXN0KCld
CitQQVNTIGNoaWxkOjpwYXJhW3Bvc2l0aW9uKCk9bGFzdCgpLTFdCitQQVNTIGNoaWxkOjpwYXJh
W3Bvc2l0aW9uKCk+MV0KK1BBU1MgZm9sbG93aW5nLXNpYmxpbmc6OmNoYXB0ZXJbcG9zaXRpb24o
KT0xXQorUEFTUyBwcmVjZWRpbmctc2libGluZzo6Y2hhcHRlcltwb3NpdGlvbigpPTFdCitQQVNT
IC9kZXNjZW5kYW50OjpmaWd1cmVbcG9zaXRpb24oKT00Ml0KK1BBU1MgL2NoaWxkOjpkb2MvY2hp
bGQ6OmNoYXB0ZXJbcG9zaXRpb24oKT01XS9jaGlsZDo6c2VjdGlvbltwb3NpdGlvbigpPTJdCitQ
QVNTIGNoaWxkOjpwYXJhW2F0dHJpYnV0ZTo6dHlwZT0id2FybmluZyJdW3Bvc2l0aW9uKCk9NV0K
K1BBU1MgY2hpbGQ6OnBhcmFbcG9zaXRpb24oKT01XVthdHRyaWJ1dGU6OnR5cGU9Indhcm5pbmci
XQorUEFTUyBjaGlsZDo6Y2hhcHRlcltjaGlsZDo6dGl0bGU9J0ludHJvZHVjdGlvbiddCitQQVNT
IGNoaWxkOjpjaGFwdGVyW2NoaWxkOjp0aXRsZV0KK1BBU1MgY2hpbGQ6Oipbc2VsZjo6Y2hhcHRl
ciBvciBzZWxmOjphcHBlbmRpeF0KK1BBU1MgY2hpbGQ6Oipbc2VsZjo6Y2hhcHRlciBvciBzZWxm
OjphcHBlbmRpeF1bcG9zaXRpb24oKT1sYXN0KCldCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvZmFzdC94cGF0aC9weS1kb20teHBhdGgvcGF0aHMtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQog
ICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL3Bh
dGhzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9weS1kb20teHBh
dGgvcGF0aHMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHkt
ZG9tLXhwYXRoL3BhdGhzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYxIEBACis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4veHBhdGgtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KworPHNjcmlwdD4KK3ZhciBkb2MgPSAobmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKAor
ICAgICc8ZG9jPicgKworICAgICAgICAnPHBhcmEgaWQ9IjEiIC8+JyArCisgICAgICAgICc8ZGl2
IGlkPSIyIiAvPicgKworICAgICAgICAnPHBhcmEgaWQ9IjMiIC8+JyArCisgICAnPC9kb2M+JywK
KyAgICAnYXBwbGljYXRpb24veG1sJyk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwg
J2NoaWxkOjpwYXJhJywgW2RvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyYSIpWzBdLCBkb2Mu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcmEiKVsxXV0pOwordGVzdChkb2MsIGRvYy5kb2N1bWVu
dEVsZW1lbnQsICdjaGlsZDo6KicsIFtkb2MuZG9jdW1lbnRFbGVtZW50LmZpcnN0Q2hpbGQsIGRv
Yy5kb2N1bWVudEVsZW1lbnQuZmlyc3RDaGlsZC5uZXh0U2libGluZywgZG9jLmRvY3VtZW50RWxl
bWVudC5sYXN0Q2hpbGRdKTsKKwordmFyIGRvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21T
dHJpbmcoCisgICAgJzxkb2M+VGhpcyBpcyA8aT5zb21lPC9pPiB0ZXh0LjwvZG9jPicsCisgICAg
J2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICdjaGls
ZDo6dGV4dCgpJywgW2RvYy5kb2N1bWVudEVsZW1lbnQuZmlyc3RDaGlsZCwgZG9jLmRvY3VtZW50
RWxlbWVudC5sYXN0Q2hpbGRdKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnY2hp
bGQ6Om5vZGUoKScsIFtkb2MuZG9jdW1lbnRFbGVtZW50LmZpcnN0Q2hpbGQsIGRvYy5kb2N1bWVu
dEVsZW1lbnQuZmlyc3RDaGlsZC5uZXh0U2libGluZywgZG9jLmRvY3VtZW50RWxlbWVudC5sYXN0
Q2hpbGRdKTsKKwordmFyIGRvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoCisg
ICAgJzxkb2MgbmFtZT0iZm9vIiB2YWx1ZT0iYmFyIiAvPicsCisgICAgJ2FwcGxpY2F0aW9uL3ht
bCcpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICdhdHRyaWJ1dGU6Om5hbWUnLCBb
ZG9jLmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGVOb2RlKCJuYW1lIildKTsKK3Rlc3QoZG9j
LCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnYXR0cmlidXRlOjoqJywgW2RvYy5kb2N1bWVudEVsZW1l
bnQuZ2V0QXR0cmlidXRlTm9kZSgibmFtZSIpLCBkb2MuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJp
YnV0ZU5vZGUoInZhbHVlIildKTsKKwordmFyIGRvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZy
b21TdHJpbmcoCisgICAgJzxkb2M+JyArCisgICAgICAgICc8cGFyYSBpZD0iMSI+JyArCisgICAg
ICAgICAgICAnPGRpdiBpZD0iMiIgLz4nICsKKyAgICAgICAgICAgICc8cGFyYSBpZD0iMyIgLz4n
ICsKKyAgICAgICAgJzwvcGFyYT4nICsKKyAgICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlvbi94
bWwnKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnZGVzY2VuZGFudDo6cGFyYScs
IFtkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcmEiKVswXSwgZG9jLmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJwYXJhIilbMV1dKTsKKwordmFyIGRvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZy
b21TdHJpbmcoCisgICAgJzxkb2M+JyArCisgICAgICAgICc8ZGl2IGlkPSIxIj4nICsKKyAgICAg
ICAgICAgICc8ZGl2IGlkPSIyIj4nICsKKyAgICAgICAgICAgICAgICAnPGNvbnRleHQgLz4nICsK
KyAgICAgICAgICAgICc8L2Rpdj4nICsKKyAgICAgICAgICAgICc8ZGl2IGlkPSIzIiAvPicgKwor
ICAgICAgICAnPC9kaXY+JyArCisgICAgICAgICc8ZGl2IGlkPSI0IiAvPicgKworICAgJzwvZG9j
PicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsICcvL2NvbnRleHQnLCAnYW5j
ZXN0b3I6OmRpdicsIFtkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpWzBdLCBkb2MuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpWzFdXSk7CisKK3ZhciBkb2MgPSAobmV3IERPTVBhcnNl
cikucGFyc2VGcm9tU3RyaW5nKAorICAgICc8ZG9jPicgKworICAgICAgICAnPGRpdiBpZD0iMSI+
JyArCisgICAgICAgICAgICAnPGRpdiBpZD0iMiIgLz4nICsKKyAgICAgICAgICAgICc8ZGl2IGlk
PSIzIiAvPicgKworICAgICAgICAnPC9kaXY+JyArCisgICAgICAgICc8ZGl2IGlkPSI0IiAvPicg
KworICAgJzwvZG9jPicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsICcvL2Rp
dltAaWQ9IjMiXScsICdhbmNlc3Rvci1vci1zZWxmOjpkaXYnLCBbZG9jLmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJkaXYiKVswXSwgZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkaXYiKVsyXV0pOwor
Cit2YXIgZG9jID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZygKKyAgICAnPHBhcmEg
aWQ9IjAiPicgKworICAgICAgICAnPGRpdiBpZD0iMSIgLz4nICsKKyAgICAgICAgJzxwYXJhIGlk
PSIyIj4nICsKKyAgICAgICAgICAgICc8cGFyYSBpZD0iMyIgLz4nICsKKyAgICAgICAgJzwvcGFy
YT4nICsKKyAgICc8L3BhcmE+JywKKyAgICAnYXBwbGljYXRpb24veG1sJyk7Cit0ZXN0KGRvYywg
ZG9jLmRvY3VtZW50RWxlbWVudCwgJ2Rlc2NlbmRhbnQtb3Itc2VsZjo6cGFyYScsIFtkb2MuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoInBhcmEiKVswXSwgZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJw
YXJhIilbMV0sIGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyYSIpWzJdXSk7CisKK3ZhciBk
b2MgPSAobmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKAorICAgICc8ZG9jPicgKworICAg
ICAgICAnPHBhcmEgLz4nICsKKyAgICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlvbi94bWwnKTsK
K3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnc2VsZjo6cGFyYScsIFtdKTsKK3Rlc3Qo
ZG9jLCAncGFyYScsICdzZWxmOjpwYXJhJywgW2RvYy5kb2N1bWVudEVsZW1lbnQuZmlyc3RDaGls
ZF0pOworCit2YXIgZG9jID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZygKKyAgICAn
PGRvYz4nICsKKyAgICAgICAgJzxjaGFwdGVyPjxwYXJhIGlkPSIxIiAvPjxwYXJhIGlkPSIyIiAv
PjwvY2hhcHRlcj4nICsKKyAgICAgICAgJzxjaGFwdGVyPjxzZWN0aW9uPjxwYXJhIGlkPSIzIiAv
Pjwvc2VjdGlvbj48L2NoYXB0ZXI+JyArCisgICAgICAgICc8cGFyYSBpZD0iNCIgLz4nICsKKyAg
ICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlvbi94bWwnKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1l
bnRFbGVtZW50LCAnY2hpbGQ6OmNoYXB0ZXIvZGVzY2VuZGFudDo6cGFyYScsIFtkb2MuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoInBhcmEiKVswXSwgZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJh
IilbMV0sIGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyYSIpWzJdXSk7CisKK3ZhciBkb2Mg
PSAobmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKAorICAgICc8ZG9jPicgKworICAgICAg
ICAnPGNoYXB0ZXI+PHBhcmEgaWQ9IjEiIC8+PHBhcmEgaWQ9IjIiIC8+PC9jaGFwdGVyPicgKwor
ICAgICAgICAnPHNlY3Rpb24+PHBhcmEgaWQ9IjMiIC8+PHN1Yj48cGFyYSBpZD0iNCIgLz48L3N1
Yj48L3NlY3Rpb24+JyArCisgICAgICAgICc8cGFyYSBpZD0iNCIgLz4nICsKKyAgICc8L2RvYz4n
LAorICAgICdhcHBsaWNhdGlvbi94bWwnKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50
LCAnY2hpbGQ6OiovY2hpbGQ6OnBhcmEnLCBbZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJh
IilbMF0sIGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyYSIpWzFdLCBkb2MuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoInBhcmEiKVsyXV0pOworCit2YXIgZG9jID0gKG5ldyBET01QYXJzZXIpLnBh
cnNlRnJvbVN0cmluZygKKyAgICAnPGRvYz48YT48Yj48Y29udGV4dCAvPjwvYj48L2E+PC9kb2M+
JywKKyAgICAnYXBwbGljYXRpb24veG1sJyk7Cit0ZXN0KGRvYywgJy8vY29udGV4dCcsICcvJywg
W2RvY10pOworCit2YXIgZG9jID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZygKKyAg
ICAnPGRvYz4nICsKKyAgICAgICAgJzxwYXJhIGlkPSIxIj48Y29udGV4dCAvPjwvcGFyYT4nICsK
KyAgICAgICAgJzxwYXJhIGlkPSIyIiAvPicgKworICAgJzwvZG9jPicsCisgICAgJ2FwcGxpY2F0
aW9uL3htbCcpOwordGVzdChkb2MsICcvL2NvbnRleHQnLCAnL2Rlc2NlbmRhbnQ6OnBhcmEnLCBb
ZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJhIilbMF0sIGRvYy5nZXRFbGVtZW50c0J5VGFn
TmFtZSgicGFyYSIpWzFdXSk7CisKK3ZhciBkb2MgPSAobmV3IERPTVBhcnNlcikucGFyc2VGcm9t
U3RyaW5nKAorICAgICc8ZG9jPicgKworICAgICAgICAnPGl0ZW0gaWQ9IjEiPicgKworICAgICAg
ICAgICAgJzxjb250ZXh0IC8+JyArCisgICAgICAgICAgICAnPG9saXN0PjxpdGVtIGlkPSIyIiAv
Pjwvb2xpc3Q+JyArCisgICAgICAgICc8L2l0ZW0+JyArCisgICAgICAgICc8b2xpc3Q+PGl0ZW0g
aWQ9IjMiIC8+PC9vbGlzdD4nICsKKyAgICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlvbi94bWwn
KTsKK3Rlc3QoZG9jLCAnLy9jb250ZXh0JywgJy9kZXNjZW5kYW50OjpvbGlzdC9jaGlsZDo6aXRl
bScsIFtkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIml0ZW0iKVsxXSwgZG9jLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpdGVtIilbMl1dKTsKKwordmFyIGRvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJz
ZUZyb21TdHJpbmcoCisgICAgJzxkb2M+JyArCisgICAgICAgICc8ZGl2IGlkPSIxIiAvPicgKwor
ICAgICAgICAnPHBhcmEgaWQ9IjIiIC8+JyArCisgICAgICAgICc8cGFyYSBpZD0iMyIgLz4nICsK
KyAgICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlvbi94bWwnKTsKK3Rlc3QoZG9jLCBkb2MuZG9j
dW1lbnRFbGVtZW50LCAnY2hpbGQ6OnBhcmFbcG9zaXRpb24oKT0xXScsIFtkb2MuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoInBhcmEiKVswXV0pOworCit2YXIgZG9jID0gKG5ldyBET01QYXJzZXIpLnBh
cnNlRnJvbVN0cmluZygKKyAgICAnPGRvYz4nICsKKyAgICAgICAgJzxwYXJhIGlkPSIxIiAvPicg
KworICAgICAgICAnPHBhcmEgaWQ9IjIiIC8+JyArCisgICAgICAgICc8ZGl2IGlkPSIzIiAvPicg
KworICAgJzwvZG9jPicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsIGRvYy5k
b2N1bWVudEVsZW1lbnQsICdjaGlsZDo6cGFyYVtwb3NpdGlvbigpPWxhc3QoKV0nLCBbZG9jLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJhIilbMV1dKTsKKwordmFyIGRvYyA9IChuZXcgRE9NUGFy
c2VyKS5wYXJzZUZyb21TdHJpbmcoCisgICAgJzxkb2M+JyArCisgICAgICAgICc8cGFyYSBpZD0i
MSIgLz4nICsKKyAgICAgICAgJzxwYXJhIGlkPSIyIiAvPicgKworICAgICAgICAnPHBhcmEgaWQ9
IjMiIC8+JyArCisgICAgICAgICc8ZGl2IGlkPSI0IiAvPicgKworICAgJzwvZG9jPicsCisgICAg
J2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICdjaGls
ZDo6cGFyYVtwb3NpdGlvbigpPWxhc3QoKS0xXScsIFtkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
InBhcmEiKVsxXV0pOworCit2YXIgZG9jID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmlu
ZygKKyAgICAnPGRvYz4nICsKKyAgICAgICAgJzxkaXYgaWQ9IjEiIC8+PHBhcmEgaWQ9IjIiIC8+
JyArCisgICAgICAgICc8ZGl2IGlkPSIzIiAvPjxwYXJhIGlkPSI0IiAvPicgKworICAgICAgICAn
PGRpdiBpZD0iNSIgLz48cGFyYSBpZD0iNiIgLz4nICsKKyAgICc8L2RvYz4nLAorICAgICdhcHBs
aWNhdGlvbi94bWwnKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnY2hpbGQ6OnBh
cmFbcG9zaXRpb24oKT4xXScsIFtkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcmEiKVsxXSwg
ZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJhIilbMl1dKTsKKwordmFyIGRvYyA9IChuZXcg
RE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoCisgICAgJzxkb2M+JyArCisgICAgICAgICc8Y2hh
cHRlciBpZD0iMSIgLz48Y2hhcHRlciBpZD0iMiIgLz4nICsKKyAgICAgICAgJzxjb250ZXh0IC8+
JyArCisgICAgICAgICc8Y2hhcHRlciBpZD0iMyIgLz48Y2hhcHRlciBpZD0iNCIgLz4nICsKKyAg
ICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlvbi94bWwnKTsKK3Rlc3QoZG9jLCAnLy9jb250ZXh0
JywgJ2ZvbGxvd2luZy1zaWJsaW5nOjpjaGFwdGVyW3Bvc2l0aW9uKCk9MV0nLCBbZG9jLmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJjaGFwdGVyIilbMl1dKTsKK3Rlc3QoZG9jLCAnLy9jb250ZXh0Jywg
J3ByZWNlZGluZy1zaWJsaW5nOjpjaGFwdGVyW3Bvc2l0aW9uKCk9MV0nLCBbZG9jLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJjaGFwdGVyIilbMV1dKTsKKwordmFyIHhtbCA9ICI8ZG9jPiIKK2ZvciAo
aSA9IDE7IGkgPD0gMTA7ICsraSkgeworICAgIGZvciAoaiA9IDE7IGogPD0gMTA7ICsraikKKyAg
ICAgICAgeG1sICs9ICc8ZmlndXJlIGlkPSInICsgKChpKjEwKStqKSArICclZCI+JzsKKyAgICBm
b3IgKGogPSAxOyBqIDw9IDEwOyArK2opCisgICAgICAgIHhtbCArPSAnPC9maWd1cmU+JzsKK30K
K3htbCArPSAiPC9kb2M+IgordmFyIGRvYyA9IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJp
bmcoeG1sLCAnYXBwbGljYXRpb24veG1sJyk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVu
dCwgJy9kZXNjZW5kYW50OjpmaWd1cmVbcG9zaXRpb24oKT00Ml0nLCBbZG9jLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJmaWd1cmUiKVs0MV1dKTsKKwordmFyIGRvYyA9IChuZXcgRE9NUGFyc2VyKS5w
YXJzZUZyb21TdHJpbmcoCisgICAgJzxkb2M+JyArCisgICAgICAgICc8Y2hhcHRlciBpZD0iMSIg
Lz48Y2hhcHRlciBpZD0iMiIgLz48Y2hhcHRlciBpZD0iMyIgLz4nICsKKyAgICAgICAgJzxjaGFw
dGVyIGlkPSI0Ij4nICsKKyAgICAgICAgICAnPHNlY3Rpb24gaWQ9IjQuMSIgLz48c2VjdGlvbiBp
ZD0iNC4yIiAvPjxzZWN0aW9uIGlkPSI0LjMiIC8+JyArCisgICAgICAgICc8L2NoYXB0ZXI+JyAr
CisgICAgICAgICc8Y2hhcHRlciBpZD0iNSI+JyArCisgICAgICAgICAgJzxzZWN0aW9uIGlkPSI1
LjEiIC8+PHNlY3Rpb24gaWQ9IjUuMiIgLz48c2VjdGlvbiBpZD0iNS4zIiAvPicgKworICAgICAg
ICAnPC9jaGFwdGVyPicgKworICAgJzwvZG9jPicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwor
dGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcvY2hpbGQ6OmRvYy9jaGlsZDo6Y2hhcHRl
cltwb3NpdGlvbigpPTVdL2NoaWxkOjpzZWN0aW9uW3Bvc2l0aW9uKCk9Ml0nLCBbZG9jLmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJzZWN0aW9uIilbNF1dKTsKKwordmFyIGRvYyA9IChuZXcgRE9NUGFy
c2VyKS5wYXJzZUZyb21TdHJpbmcoCisgICAgJzxkb2M+JyArCisgICAgICAgICc8cGFyYSBpZD0i
MSIgdHlwZT0iaW5mbyIgLz4nICsKKyAgICAgICAgJzxwYXJhIGlkPSIyIiB0eXBlPSJ3YXJuaW5n
IiAvPicgKworICAgICAgICAnPHBhcmEgaWQ9IjMiIHR5cGU9Indhcm5pbmciIC8+JyArCisgICAg
ICAgICc8cGFyYSBpZD0iNCIgdHlwZT0id2FybmluZyIgLz4nICsKKyAgICAgICAgJzxwYXJhIGlk
PSI1IiB0eXBlPSJlcnJvciIgLz4nICsKKyAgICAgICAgJzxwYXJhIGlkPSI2IiB0eXBlPSJ3YXJu
aW5nIiAvPicgKworICAgICAgICAnPHBhcmEgaWQ9IjciIHR5cGU9Indhcm5pbmciIC8+JyArCisg
ICAnPC9kb2M+JywKKyAgICAnYXBwbGljYXRpb24veG1sJyk7Cit0ZXN0KGRvYywgZG9jLmRvY3Vt
ZW50RWxlbWVudCwgJ2NoaWxkOjpwYXJhW2F0dHJpYnV0ZTo6dHlwZT0id2FybmluZyJdW3Bvc2l0
aW9uKCk9NV0nLCBbZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJhIilbNl1dKTsKK3Rlc3Qo
ZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnY2hpbGQ6OnBhcmFbcG9zaXRpb24oKT01XVthdHRy
aWJ1dGU6OnR5cGU9Indhcm5pbmciXScsIFtdKTsKKwordmFyIGRvYyA9IChuZXcgRE9NUGFyc2Vy
KS5wYXJzZUZyb21TdHJpbmcoCisgICAgJzxkb2M+JyArCisgICAgICAgICc8Y2hhcHRlciBpZD0i
MSIgLz4nICsKKyAgICAgICAgJzxjaGFwdGVyIGlkPSIyIj48dGl0bGU+SW50cm9kdWN0aW9uPC90
aXRsZT48L2NoYXB0ZXI+JyArCisgICAgICAgICc8Y2hhcHRlciBpZD0iMyI+PHRpdGxlPkJvZHk8
L3RpdGxlPjwvY2hhcHRlcj4nICsKKyAgICAgICAgJzxjaGFwdGVyIGlkPSI0Ij4nICsKKyAgICAg
ICAgICAgICc8dGl0bGU+QW5vdGhlcjwvdGl0bGU+JyArCisgICAgICAgICAgICAnPHRpdGxlPklu
dHJvZHVjdGlvbjwvdGl0bGU+JyArCisgICAgICAgICc8L2NoYXB0ZXI+JyArCisgICAgJzwvZG9j
PicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1l
bnQsICJjaGlsZDo6Y2hhcHRlcltjaGlsZDo6dGl0bGU9J0ludHJvZHVjdGlvbiddIiwgW2RvYy5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiY2hhcHRlciIpWzFdLCBkb2MuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImNoYXB0ZXIiKVszXV0pOworCit2YXIgZG9jID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJv
bVN0cmluZygKKyAgICAnPGRvYz4nICsKKyAgICAgICAgJzxjaGFwdGVyIGlkPSIxIiAvPicgKwor
ICAgICAgICAnPGNoYXB0ZXIgaWQ9IjIiPjx0aXRsZSAvPjwvY2hhcHRlcj4nICsKKyAgICAgICAg
JzxjaGFwdGVyIGlkPSIzIj48dGl0bGUgLz48dGl0bGUgLz48L2NoYXB0ZXI+JyArCisgICAgJzwv
ZG9jPicsCisgICAgJ2FwcGxpY2F0aW9uL3htbCcpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVs
ZW1lbnQsICJjaGlsZDo6Y2hhcHRlcltjaGlsZDo6dGl0bGVdIiwgW2RvYy5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiY2hhcHRlciIpWzFdLCBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImNoYXB0ZXIi
KVsyXV0pOworCit2YXIgZG9jID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZygKKyAg
ICAnPGRvYz4nICsKKyAgICAgICAgJzxjaGFwdGVyIGlkPSIxIiAvPicgKworICAgICAgICAnPGFw
cGVuZGl4IGlkPSIyIiAvPicgKworICAgICAgICAnPHBhcmEgaWQ9IjMiIC8+JyArCisgICAgICAg
ICc8Y2hhcHRlciBpZD0iNCIgLz4nICsKKyAgICAnPC9kb2M+JywKKyAgICAnYXBwbGljYXRpb24v
eG1sJyk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgImNoaWxkOjoqW3NlbGY6OmNo
YXB0ZXIgb3Igc2VsZjo6YXBwZW5kaXhdIiwgW2RvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiY2hh
cHRlciIpWzBdLCBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImFwcGVuZGl4IilbMF0sIGRvYy5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiY2hhcHRlciIpWzFdXSk7CisKK3ZhciBkb2MgPSAobmV3IERP
TVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKAorICAgICc8ZG9jPicgKworICAgICAgICAnPGNoYXB0
ZXIgaWQ9IjEiIC8+JyArCisgICAgICAgICc8YXBwZW5kaXggaWQ9IjIiIC8+JyArCisgICAgICAg
ICc8cGFyYSBpZD0iMyIgLz4nICsKKyAgICAgICAgJzxjaGFwdGVyIGlkPSI0IiAvPicgKworICAg
ICAgICAnPHBhcmEgaWQ9IjUiIC8+JyArCisgICAgJzwvZG9jPicsCisgICAgJ2FwcGxpY2F0aW9u
L3htbCcpOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICJjaGlsZDo6KltzZWxmOjpj
aGFwdGVyIG9yIHNlbGY6OmFwcGVuZGl4XVtwb3NpdGlvbigpPWxhc3QoKV0iLCBbZG9jLmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJjaGFwdGVyIilbMV1dKTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3B5LWRvbS14cGF0aC9wYXRocy5odG1s
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbAoKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL3ByZWRpY2F0ZXMtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL3ByZWRp
Y2F0ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC94cGF0
aC9weS1kb20teHBhdGgvcHJlZGljYXRlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTUgQEAKK1BBU1MgLy9pdGVtW0BpZCA+PSAyIGFuZCBAaWQgPD0gNF0KK1BBU1MgL2Rv
Yy9jaGlsZDo6aXRlbVsxXQorUEFTUyAvL2dyb3VwW0BpZD0iZzIiXS9hbmNlc3Rvcjo6KlsxXQor
UEFTUyAvL2l0ZW1bQGlkPSIyIl0vZm9sbG93aW5nLXNpYmxpbmc6Oml0ZW1bMV0KK1BBU1MgLy9p
dGVtW0BpZD0iNSJdL3ByZWNlZGluZy1zaWJsaW5nOjppdGVtWzFdCitQQVNTIC8vZ3JvdXBbQGlk
PSJnMiJdL2ZvbGxvd2luZzo6aXRlbVsxXQorUEFTUyAvL2dyb3VwW0BpZD0iZzIiXS9wcmVjZWRp
bmc6Oml0ZW1bMV0KK1BBU1MgLy9ncm91cFtAaWQ9ImcxIl0vZGVzY2VuZGFudC1vci1zZWxmOjpp
dGVtWzFdCitQQVNTIC8vZ3JvdXBbQGlkPSJnMiJdL2FuY2VzdG9yLW9yLXNlbGY6OipbMV0KK1BB
U1MgLy9ncm91cC9kZXNjZW5kYW50OjppdGVtW251bWJlcigvL2Nob2ljZS9AaW5kZXgpKjJdCitQ
QVNTICgvL2l0ZW1bQGlkPSI1Il0vcHJlY2VkaW5nLXNpYmxpbmc6Oml0ZW0pWzFdCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9weS1kb20teHBhdGgvcHJlZGljYXRlcy1l
eHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFp
bgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC94cGF0aC9weS1kb20teHBhdGgvcHJlZGljYXRlcy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL3ByZWRpY2F0ZXMuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QveHBhdGgvcHktZG9tLXhwYXRoL3ByZWRpY2F0ZXMuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3hwYXRoLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+Cit2YXIgZG9j
ID0gKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZygKKyAgICAnPGRvYyBpZD0iMCI+JyAr
CisgICAgICAgICc8aXRlbSBpZD0iMSIgLz4nICsKKyAgICAgICAgJzxncm91cCBpZD0iZzEiPicg
KworICAgICAgICAgICAgJzxpdGVtIGlkPSIyIiAvPicgKworICAgICAgICAgICAgJzxncm91cCBp
ZD0iZzIiPicgKworICAgICAgICAgICAgICAgICc8aXRlbSBpZD0iMyIgLz4nICsKKyAgICAgICAg
ICAgICc8L2dyb3VwPicgKworICAgICAgICAgICAgJzxpdGVtIGlkPSI0IiAvPicgKworICAgICAg
ICAgICAgJzxpdGVtIGlkPSI1IiAvPicgKworICAgICAgICAnPC9ncm91cD4nICsKKyAgICAgICAg
JzxpdGVtIGlkPSI2IiAvPicgKworICAgICAgICAnPGNob2ljZSBpbmRleD0iMiIgLz4nICsKKyAg
ICc8L2RvYz4nLAorICAgICdhcHBsaWNhdGlvbi94bWwnKTsKKwordmFyIFJPT1QgPSBkb2MuZG9j
dW1lbnRFbGVtZW50OwordmFyIEkxID0gUk9PVC5maXJzdENoaWxkOwordmFyIEcxID0gSTEubmV4
dFNpYmxpbmc7Cit2YXIgSTIgPSBHMS5maXJzdENoaWxkOwordmFyIEcyID0gSTIubmV4dFNpYmxp
bmc7Cit2YXIgSTMgPSBHMi5maXJzdENoaWxkOwordmFyIEk0ID0gRzIubmV4dFNpYmxpbmc7Cit2
YXIgSTUgPSBJNC5uZXh0U2libGluZzsKK3ZhciBJNiA9IEcxLm5leHRTaWJsaW5nOworCit0ZXN0
KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJy8vaXRlbVtAaWQgPj0gMiBhbmQgQGlkIDw9IDRd
JywgW0kyLCBJMywgSTRdKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnL2RvYy9j
aGlsZDo6aXRlbVsxXScsIFtJMV0pOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcv
L2dyb3VwW0BpZD0iZzIiXS9hbmNlc3Rvcjo6KlsxXScsIFtHMV0pOwordGVzdChkb2MsIGRvYy5k
b2N1bWVudEVsZW1lbnQsICcvL2l0ZW1bQGlkPSIyIl0vZm9sbG93aW5nLXNpYmxpbmc6Oml0ZW1b
MV0nLCBbSTRdKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50LCAnLy9pdGVtW0BpZD0i
NSJdL3ByZWNlZGluZy1zaWJsaW5nOjppdGVtWzFdJywgW0k0XSk7Cit0ZXN0KGRvYywgZG9jLmRv
Y3VtZW50RWxlbWVudCwgJy8vZ3JvdXBbQGlkPSJnMiJdL2ZvbGxvd2luZzo6aXRlbVsxXScsIFtJ
NF0pOwordGVzdChkb2MsIGRvYy5kb2N1bWVudEVsZW1lbnQsICcvL2dyb3VwW0BpZD0iZzIiXS9w
cmVjZWRpbmc6Oml0ZW1bMV0nLCBbSTJdKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50
LCAnLy9ncm91cFtAaWQ9ImcxIl0vZGVzY2VuZGFudC1vci1zZWxmOjppdGVtWzFdJywgW0kyXSk7
Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJy8vZ3JvdXBbQGlkPSJnMiJdL2FuY2Vz
dG9yLW9yLXNlbGY6OipbMV0nLCBbRzJdKTsKK3Rlc3QoZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50
LCAnLy9ncm91cC9kZXNjZW5kYW50OjppdGVtW251bWJlcigvL2Nob2ljZS9AaW5kZXgpKjJdJywg
W0k1XSk7Cit0ZXN0KGRvYywgZG9jLmRvY3VtZW50RWxlbWVudCwgJygvL2l0ZW1bQGlkPSI1Il0v
cHJlY2VkaW5nLXNpYmxpbmc6Oml0ZW0pWzFdJywgW0kyXSk7CisKKwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9weS1kb20teHBhdGgvcHJlZGlj
YXRlcy5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbAoK
</data>
<flag name="review"
          id="15674"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>