<?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>3812</bug_id>
          
          <creation_ts>2005-07-02 05:15:32 -0700</creation_ts>
          <short_desc>XMLHttpRequest: PUT, DELETE, HEAD and all other methods but POST actually do a GET</short_desc>
          <delta_ts>2019-05-02 16:25:43 -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>DOM</component>
          <version>312.x</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.3</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>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>7390</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Henri Sivonen">hsivonen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adam</cc>
    
    <cc>adam</cc>
    
    <cc>ap</cc>
    
    <cc>bugs-webkit</cc>
    
    <cc>cdumez</cc>
    
    <cc>gabor.farkas</cc>
    
    <cc>imarkroger</cc>
    
    <cc>jacmesj</cc>
    
    <cc>jeff</cc>
    
    <cc>michaelhill789</cc>
    
    <cc>pswag994</cc>
    
    <cc>raokrishnavasudeva</cc>
    
    <cc>rsneha027</cc>
    
    <cc>sen</cc>
    
    <cc>stuartmorgan</cc>
    
    <cc>svillar</cc>
    
    <cc>yagmurcanayakin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>13675</commentid>
    <comment_count>0</comment_count>
    <who name="Henri Sivonen">hsivonen</who>
    <bug_when>2005-07-02 05:15:32 -0700</bug_when>
    <thetext>Steps to reproduce:
1) Try to do a PUT or a DELETE using XMLHttpRequest.

Actual results:
A GET request is issued.

Expected results:
Expected the full suite of HTTP verbs to be supported or at least the API to
fail detectably when a verb is not supported.

Additional information:
In order to implement a client for a clean RESTful Web service supporting full
CRUD capabilities, PUT and DELETE are needed, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15168</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Trachtenberg">adam</who>
    <bug_when>2005-07-25 09:11:57 -0700</bug_when>
    <thetext>This also applies to other verbs not explicitly defined in the HTTP spec, such
as SEARCH used in HTTP-DAV.

In my case, this prevents me from writing a client to access Microsoft Exchange
servers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18667</commentid>
    <comment_count>2</comment_count>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2005-09-04 10:22:08 -0700</bug_when>
    <thetext>Comfirmed in ToT by source inspection; anything unknown is treated as a GET.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26816</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-27 14:23:24 -0800</bug_when>
    <thetext>Would be nice to have a test case.  Although w/o server side support, that might be hard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27782</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-01-05 06:55:35 -0800</bug_when>
    <thetext>Writing a synthetic test shouldn&apos;t be too hard (one could take one from bug 3810 as a model), but it would 
be very helpful to have an example of a &quot;real life&quot; application that uses this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33522</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-20 12:05:34 -0800</bug_when>
    <thetext>*** Bug 7390 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34436</commentid>
    <comment_count>6</comment_count>
      <attachid>6776</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-28 11:05:45 -0800</bug_when>
    <thetext>Created attachment 6776
proposed patch

There are some differences between this implementaion and Firefox:
1) For null data, &quot;Content-Length: 0&quot; header is sent (isn&apos;t sent in Firefox). Looks like better behavior to me; besides, I don&apos;t think we have a choice, because this header is added by NSURLConnection.
2) HEAD is not implemented - there seems to be a crashing bug in NSURLConnection, &lt;rdar://4460899&gt;.
3) After #2 is fixed, we won&apos;t be sending a body in HEAD requests, just like we don&apos;t send it in GET ones. Firefox ignores the body in GET requests, but sends it in HEAD ones, which looks like a bug to me.

Also fixed a bug: send(null) was actually sending characters &quot;null&quot; instead of an empty body.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34550</commentid>
    <comment_count>7</comment_count>
      <attachid>6776</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-28 22:17:38 -0800</bug_when>
    <thetext>Comment on attachment 6776
proposed patch

Should use String instead of QString in new code, like the new parameter to TransferJob. String converts itself into NSString without even calling getNSString().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34551</commentid>
    <comment_count>8</comment_count>
      <attachid>6786</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-28 22:29:03 -0800</bug_when>
    <thetext>Created attachment 6786
proposed patch

Addressed the comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34645</commentid>
    <comment_count>9</comment_count>
      <attachid>6786</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-03-01 08:42:11 -0800</bug_when>
    <thetext>Comment on attachment 6786
proposed patch

Change looks fine as is, but I have three comments:

    1) Is there a test for the change in JSXMLHttpRequest.cpp? That change looks fine, but I&apos;d like to see a test that was broken before and fixed now.

    2) Since method is now a String you can use equalIgnoringCase rather than calling lower when comparing the method with head.

    3) I would like the client pointer to be the first parameter to TransferJob and the method the second parameter, because the client pointer sort of a &quot;back pointer to the claler&quot; while the rest of the parameters are the specification of what the job is to do.

The most important of these three is (1), but I think none are a big enough deal to prevent landing the patch. I&apos;ll say r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34651</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-03-01 09:51:45 -0800</bug_when>
    <thetext>(In reply to comment #9)
1) Yes, the tests call send(null) for all methods, and there were a lot of failures before I fixed this.
2) Actually, method in XMLHTTPRequest class is still a QString, I haven&apos;t changed it.
3) Done.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348144</commentid>
    <comment_count>11</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-02-09 04:04:43 -0800</bug_when>
    <thetext>Committed r78043: &lt;http://trac.webkit.org/changeset/78043&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348145</commentid>
    <comment_count>12</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-02-09 04:08:00 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Committed r78043: &lt;http://trac.webkit.org/changeset/78043&gt;

Sorry for the noise. I just mentioned this bug in a ChangeLog, it seems that webkit-patch was too smart this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348258</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-09 08:45:23 -0800</bug_when>
    <thetext>This still remains fixed :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502900</commentid>
    <comment_count>21</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:03:05 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6776</attachid>
            <date>2006-02-28 11:05:45 -0800</date>
            <delta_ts>2006-02-28 22:29:03 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>3812r1_patch.txt</filename>
            <type>text/plain</type>
            <size>36815</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9kcy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9tZXRob2RzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9kcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjEgQEAKK1Rlc3RzIGZvciBidWcgMzgxMiAtIEdFVCBhbmQgUE9TVCBzaG91
bGQgbm90IGJlIHRoZSBvbmx5IEhUVFAgbWV0aG9kcyBpbXBsZW1lbnRlZCBpbiBYTUxIdHRwUmVx
dWVzdC4KKworR0VUKCIiKTogR0VUKHVuZGVmaW5lZCBieXRlcyksIENvbnRlbnQtVHlwZTogdW5k
ZWZpbmVkCitHRVQobnVsbCk6IEdFVCh1bmRlZmluZWQgYnl0ZXMpLCBDb250ZW50LVR5cGU6IHVu
ZGVmaW5lZAorR0VUKCIxMjMiKTogR0VUKHVuZGVmaW5lZCBieXRlcyksIENvbnRlbnQtVHlwZTog
dW5kZWZpbmVkCitQT1NUKCIiKTogUE9TVCgwIGJ5dGVzKSwgQ29udGVudC1UeXBlOiBhcHBsaWNh
dGlvbi94bWwKK1BPU1QobnVsbCk6IFBPU1QoMCBieXRlcyksIENvbnRlbnQtVHlwZTogdW5kZWZp
bmVkCitQT1NUKCIxMjMiKTogUE9TVCgzIGJ5dGVzKSwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlv
bi94bWwKK1BVVCgiIik6IFBVVCgwIGJ5dGVzKSwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94
bWwKK1BVVChudWxsKTogUFVUKDAgYnl0ZXMpLCBDb250ZW50LVR5cGU6IHVuZGVmaW5lZAorUFVU
KCIxMjMiKTogUFVUKDMgYnl0ZXMpLCBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3htbAorREVM
RVRFKCIiKTogREVMRVRFKDAgYnl0ZXMpLCBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3htbAor
REVMRVRFKG51bGwpOiBERUxFVEUoMCBieXRlcyksIENvbnRlbnQtVHlwZTogdW5kZWZpbmVkCitE
RUxFVEUoIjEyMyIpOiBERUxFVEUoMyBieXRlcyksIENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24v
eG1sCitXS0ZPT0JBUigiIik6IFdLRk9PQkFSKDAgYnl0ZXMpLCBDb250ZW50LVR5cGU6IGFwcGxp
Y2F0aW9uL3htbAorV0tGT09CQVIobnVsbCk6IFdLRk9PQkFSKDAgYnl0ZXMpLCBDb250ZW50LVR5
cGU6IHVuZGVmaW5lZAorV0tGT09CQVIoIjEyMyIpOiBXS0ZPT0JBUigzIGJ5dGVzKSwgQ29udGVu
dC1UeXBlOiBhcHBsaWNhdGlvbi94bWwKK1NFQVJDSCgiIik6IFNFQVJDSCgwIGJ5dGVzKSwgQ29u
dGVudC1UeXBlOiBhcHBsaWNhdGlvbi94bWwKK1NFQVJDSChudWxsKTogU0VBUkNIKDAgYnl0ZXMp
LCBDb250ZW50LVR5cGU6IHVuZGVmaW5lZAorU0VBUkNIKCIxMjMiKTogU0VBUkNIKDMgYnl0ZXMp
LCBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3htbAorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMtYXN5bmMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMtYXN5bmMuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0
aG9kcy1hc3luYy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0OCBAQAorPGh0bWw+Cis8
Ym9keT4KKzxwPlRlc3RzIGZvciA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5v
cmcvc2hvd19idWcuY2dpP2lkPTM4MTIiPiBidWcgMzgxMjwvYT4gLSAKK0dFVCBhbmQgUE9TVCBz
aG91bGQgbm90IGJlIHRoZSBvbmx5IEhUVFAgbWV0aG9kcyBpbXBsZW1lbnRlZCBpbiBYTUxIdHRw
UmVxdWVzdC48L3A+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIAorICAg
IHZhciBjb25zb2xlX21lc3NhZ2VzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsKKyAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnNvbGVfbWVzc2FnZXMpOworICAgIAorICAg
IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQorICAgIHsKKyAgICAgICAgdmFyIGl0ZW0gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgICAgICBpdGVtLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICAgICAgY29uc29sZV9tZXNzYWdlcy5hcHBl
bmRDaGlsZChpdGVtKTsKKyAgICB9CisKKyAgICAvLyBhc3luYworICAgIAorICAgIHZhciBhc3lu
Y1N0ZXAgPSAxOworCisgICAgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0OworICAgIHJlcS5vbnJl
YWR5c3RhdGVjaGFuZ2UgPSBwcm9jZXNzU3RhdGVDaGFuZ2U7CisgICAgcmVxLm9wZW4oIkdFVCIs
ICJtZXRob2RzLmNnaSIsIHRydWUpOworICAgIHJlcS5zZW5kKCIiKTsKKworICAgIGZ1bmN0aW9u
IHByb2Nlc3NTdGF0ZUNoYW5nZSgpIHsKKyAgICAKKyAgICAgIGlmIChyZXEucmVhZHlTdGF0ZSA9
PSA0KXsKKyAgICAgICAgaWYgKHJlcS5zdGF0dXMgPT0gMjAwKXsKKyAgICAgICAgICAgaWYgKGFz
eW5jU3RlcCA9PSAxKSB7CisgICAgICAgICAgICAgYXN5bmNTdGVwID0gMjsKKyAgICAgICAgICAg
ICBsb2coJ0dFVCgiIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsg
IigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250
ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAg
ICAgICAgcmVxLm9wZW4oIkdFVCIsICJtZXRob2RzLmNnaSIsIHRydWUpOworICAgICAgICAgICAg
IHJlcS5zZW5kKG51bGwpOworICAgICAgICAgICB9IGVsc2UgaWYgKGFzeW5jU3RlcCA9PSAyKSB7
CisgICAgICAgICAgICAgYXN5bmNTdGVwID0gMzsKKyAgICAgICAgICAgICBsb2coJ0dFVChudWxs
KTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0
UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiAr
IHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKyAgICAgICAgICAgICByZXEub3Bl
bigiR0VUIiwgIm1ldGhvZHMuY2dpIiwgdHJ1ZSk7CisgICAgICAgICAgICAgcmVxLnNlbmQoIjEy
MyIpOworICAgICAgICAgICB9IGVsc2UgaWYgKGFzeW5jU3RlcCA9PSAzKSB7CisgICAgICAgICAg
ICAgYXN5bmNTdGVwID0gNDsKKyAgICAgICAgICAgICBsb2coJ0dFVCgiMTIzIik6ICcgKyByZXEu
Z2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVh
ZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVz
cG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIlBPU1QiLCAi
bWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2VuZCgiIik7CisgICAgICAg
ICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDQpIHsKKyAgICAgICAgICAgICBhc3luY1N0ZXAg
PSA1OworICAgICAgICAgICAgIGxvZygnUE9TVCgiIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFk
ZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgi
KSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJF
UVRZUEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIlBPU1QiLCAibWV0aG9kcy5jZ2kiLCB0
cnVlKTsKKyAgICAgICAgICAgICByZXEuc2VuZChudWxsKTsKKyAgICAgICAgICAgfSBlbHNlIGlm
IChhc3luY1N0ZXAgPT0gNSkgeworICAgICAgICAgICAgIGFzeW5jU3RlcCA9IDY7CisgICAgICAg
ICAgICAgbG9nKCdQT1NUKG51bGwpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRI
T0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVz
KSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOwor
ICAgICAgICAgICAgIHJlcS5vcGVuKCJQT1NUIiwgIm1ldGhvZHMuY2dpIiwgdHJ1ZSk7CisgICAg
ICAgICAgICAgcmVxLnNlbmQoIjEyMyIpOworICAgICAgICAgICB9IGVsc2UgaWYgKGFzeW5jU3Rl
cCA9PSA2KSB7CisgICAgICAgICAgICAgYXN5bmNTdGVwID0gNzsKKyAgICAgICAgICAgICBsb2co
J1BPU1QoIjEyMyIpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIo
IiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVu
dC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworICAgICAgICAg
ICAgIHJlcS5vcGVuKCJQVVQiLCAibWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICBy
ZXEuc2VuZCgiIik7CisgICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDcpIHsKKyAg
ICAgICAgICAgICBhc3luY1N0ZXAgPSA4OworICAgICAgICAgICAgIGxvZygnUFVUKCIiKTogJyAr
IHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0UmVzcG9u
c2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiArIHJlcS5n
ZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKyAgICAgICAgICAgICByZXEub3BlbigiUFVU
IiwgIm1ldGhvZHMuY2dpIiwgdHJ1ZSk7CisgICAgICAgICAgICAgcmVxLnNlbmQobnVsbCk7Cisg
ICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDgpIHsKKyAgICAgICAgICAgICBhc3lu
Y1N0ZXAgPSA5OworICAgICAgICAgICAgIGxvZygnUFVUKG51bGwpOiAnICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVR
TEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVh
ZGVyKCJSRVFUWVBFIikpOworICAgICAgICAgICAgIHJlcS5vcGVuKCJQVVQiLCAibWV0aG9kcy5j
Z2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2VuZCgiMTIzIik7CisgICAgICAgICAgIH0g
ZWxzZSBpZiAoYXN5bmNTdGVwID09IDkpIHsKKyAgICAgICAgICAgICBhc3luY1N0ZXAgPSAxMDsK
KyAgICAgICAgICAgICBsb2coJ1BVVCgiMTIzIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIo
IlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSAr
ICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZ
UEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIkRFTEVURSIsICJtZXRob2RzLmNnaSIsIHRy
dWUpOworICAgICAgICAgICAgIHJlcS5zZW5kKCIiKTsKKyAgICAgICAgICAgfSBlbHNlIGlmIChh
c3luY1N0ZXAgPT0gMTApIHsKKyAgICAgICAgICAgICBhc3luY1N0ZXAgPSAxMTsKKyAgICAgICAg
ICAgICBsb2coJ0RFTEVURSgiIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhP
RCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMp
LCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7Cisg
ICAgICAgICAgICAgcmVxLm9wZW4oIkRFTEVURSIsICJtZXRob2RzLmNnaSIsIHRydWUpOworICAg
ICAgICAgICAgIHJlcS5zZW5kKG51bGwpOworICAgICAgICAgICB9IGVsc2UgaWYgKGFzeW5jU3Rl
cCA9PSAxMSkgeworICAgICAgICAgICAgIGFzeW5jU3RlcCA9IDE1Oy8vIDEyOworICAgICAgICAg
ICAgIGxvZygnREVMRVRFKG51bGwpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRI
T0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVz
KSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOwor
ICAgICAgICAgICAgIHJlcS5vcGVuKCJERUxFVEUiLCAibWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAg
ICAgICAgICAgICByZXEuc2VuZCgiMTIzIik7CisgICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNT
dGVwID09IDEyKSB7CisgICAgICAgICAgICAgYXN5bmNTdGVwID0gMTM7CisgICAgICAgICAgICAg
bG9nKCdERUxFVEUoIjEyMyIpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0Qi
KSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwg
Q29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworICAg
ICAgICAgICAgIHJlcS5vcGVuKCJIRUFEIiwgIm1ldGhvZHMuY2dpIiwgdHJ1ZSk7CisgICAgICAg
ICAgICAgcmVxLnNlbmQoIiIpOworICAgICAgICAgICB9IGVsc2UgaWYgKGFzeW5jU3RlcCA9PSAx
MykgeworICAgICAgICAgICAgIGFzeW5jU3RlcCA9IDE0OworICAgICAgICAgICAgIGxvZygnSEVB
RCgiIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVx
LmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6
ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICAgcmVx
Lm9wZW4oIkhFQUQiLCAibWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2Vu
ZChudWxsKTsKKyAgICAgICAgICAgfSBlbHNlIGlmIChhc3luY1N0ZXAgPT0gMTQpIHsKKyAgICAg
ICAgICAgICBhc3luY1N0ZXAgPSAxNTsKKyAgICAgICAgICAgICBsb2coJ0hFQUQobnVsbCk6ICcg
KyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEu
Z2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIkhF
QUQiLCAibWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2VuZCgiMTIzIik7
CisgICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDE1KSB7CisgICAgICAgICAgICAg
YXN5bmNTdGVwID0gMTY7CisgICAgICAgICAgICAgbG9nKCdERUxFVEUoIjEyMyIpOiAnICsgcmVx
LmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhl
YWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJl
c3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworICAgICAgICAgICAgIC8vbG9nKCdIRUFEKCIxMjMi
KTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0
UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiAr
IHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKyAgICAgICAgICAgICByZXEub3Bl
bigiV0tGT09CQVIiLCAibWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2Vu
ZCgiIik7CisgICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDE2KSB7CisgICAgICAg
ICAgICAgYXN5bmNTdGVwID0gMTc7CisgICAgICAgICAgICAgbG9nKCdXS0ZPT0JBUigiIik6ICcg
KyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEu
Z2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIldL
Rk9PQkFSIiwgIm1ldGhvZHMuY2dpIiwgdHJ1ZSk7CisgICAgICAgICAgICAgcmVxLnNlbmQobnVs
bCk7CisgICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDE3KSB7CisgICAgICAgICAg
ICAgYXN5bmNTdGVwID0gMTg7CisgICAgICAgICAgICAgbG9nKCdXS0ZPT0JBUihudWxsKTogJyAr
IHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0UmVzcG9u
c2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiArIHJlcS5n
ZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKyAgICAgICAgICAgICByZXEub3BlbigiV0tG
T09CQVIiLCAibWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2VuZCgiMTIz
Iik7CisgICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDE4KSB7CisgICAgICAgICAg
ICAgYXN5bmNTdGVwID0gMTk7CisgICAgICAgICAgICAgbG9nKCdXS0ZPT0JBUigiMTIzIik6ICcg
KyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEu
Z2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIlNF
QVJDSCIsICJtZXRob2RzLmNnaSIsIHRydWUpOworICAgICAgICAgICAgIHJlcS5zZW5kKCIiKTsK
KyAgICAgICAgICAgfSBlbHNlIGlmIChhc3luY1N0ZXAgPT0gMTkpIHsKKyAgICAgICAgICAgICBh
c3luY1N0ZXAgPSAyMDsKKyAgICAgICAgICAgICBsb2coJ1NFQVJDSCgiIik6ICcgKyByZXEuZ2V0
UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVy
KCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9u
c2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIlNFQVJDSCIsICJt
ZXRob2RzLmNnaSIsIHRydWUpOworICAgICAgICAgICAgIHJlcS5zZW5kKG51bGwpOworICAgICAg
ICAgICB9IGVsc2UgaWYgKGFzeW5jU3RlcCA9PSAyMCkgeworICAgICAgICAgICAgIGFzeW5jU3Rl
cCA9IDIxOworICAgICAgICAgICAgIGxvZygnU0VBUkNIKG51bGwpOiAnICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVR
TEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVh
ZGVyKCJSRVFUWVBFIikpOworICAgICAgICAgICAgIHJlcS5vcGVuKCJTRUFSQ0giLCAibWV0aG9k
cy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2VuZCgiMTIzIik7CisgICAgICAgICAg
IH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDIxKSB7CisgICAgICAgICAgICAgbG9nKCdTRUFSQ0go
IjEyMyIpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJl
cS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBl
OiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworICAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgbG9nKCJFcnJvciBsb2FkaW5nIFVSTDogc3RhdHVzICIgKyByZXEuc3RhdHVz
KTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMt
YXN5bmMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvbWV0aG9kcy1hc3luYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMtYXN5bmMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIxIEBACitUZXN0cyBmb3IgYnVnIDM4
MTIgLSBHRVQgYW5kIFBPU1Qgc2hvdWxkIG5vdCBiZSB0aGUgb25seSBIVFRQIG1ldGhvZHMgaW1w
bGVtZW50ZWQgaW4gWE1MSHR0cFJlcXVlc3QuCisKK0dFVCgiIik6IEdFVCh1bmRlZmluZWQgYnl0
ZXMpLCBDb250ZW50LVR5cGU6IHVuZGVmaW5lZAorR0VUKG51bGwpOiBHRVQodW5kZWZpbmVkIGJ5
dGVzKSwgQ29udGVudC1UeXBlOiB1bmRlZmluZWQKK0dFVCgiMTIzIik6IEdFVCh1bmRlZmluZWQg
Ynl0ZXMpLCBDb250ZW50LVR5cGU6IHVuZGVmaW5lZAorUE9TVCgiIik6IFBPU1QoMCBieXRlcyks
IENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veG1sCitQT1NUKG51bGwpOiBQT1NUKDAgYnl0ZXMp
LCBDb250ZW50LVR5cGU6IHVuZGVmaW5lZAorUE9TVCgiMTIzIik6IFBPU1QoMyBieXRlcyksIENv
bnRlbnQtVHlwZTogYXBwbGljYXRpb24veG1sCitQVVQoIiIpOiBQVVQoMCBieXRlcyksIENvbnRl
bnQtVHlwZTogYXBwbGljYXRpb24veG1sCitQVVQobnVsbCk6IFBVVCgwIGJ5dGVzKSwgQ29udGVu
dC1UeXBlOiB1bmRlZmluZWQKK1BVVCgiMTIzIik6IFBVVCgzIGJ5dGVzKSwgQ29udGVudC1UeXBl
OiBhcHBsaWNhdGlvbi94bWwKK0RFTEVURSgiIik6IERFTEVURSgwIGJ5dGVzKSwgQ29udGVudC1U
eXBlOiBhcHBsaWNhdGlvbi94bWwKK0RFTEVURShudWxsKTogREVMRVRFKDAgYnl0ZXMpLCBDb250
ZW50LVR5cGU6IHVuZGVmaW5lZAorREVMRVRFKCIxMjMiKTogREVMRVRFKDMgYnl0ZXMpLCBDb250
ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3htbAorV0tGT09CQVIoIiIpOiBXS0ZPT0JBUigwIGJ5dGVz
KSwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94bWwKK1dLRk9PQkFSKG51bGwpOiBXS0ZPT0JB
UigwIGJ5dGVzKSwgQ29udGVudC1UeXBlOiB1bmRlZmluZWQKK1dLRk9PQkFSKCIxMjMiKTogV0tG
T09CQVIoMyBieXRlcyksIENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veG1sCitTRUFSQ0goIiIp
OiBTRUFSQ0goMCBieXRlcyksIENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veG1sCitTRUFSQ0go
bnVsbCk6IFNFQVJDSCgwIGJ5dGVzKSwgQ29udGVudC1UeXBlOiB1bmRlZmluZWQKK1NFQVJDSCgi
MTIzIik6IFNFQVJDSCgzIGJ5dGVzKSwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94bWwKKwpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9tZXRob2RzLmNnaQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhv
ZHMuY2dpCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9tZXRob2RzLmNnaQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNiBAQAorIyEvdXNyL2Jp
bi9wZXJsIC13CisKK3ByaW50ICJDb250ZW50LXR5cGU6IHRleHQvcGxhaW5cbiI7IAorcHJpbnQg
IkNvbnRlbnQtTGVuZ3RoOiAwXG4iOworbXkgJGNsID0gJEVOVnsnQ09OVEVOVF9MRU5HVEgnfTsK
K215ICRjdCA9ICRFTlZ7J0NPTlRFTlRfVFlQRSd9OworbXkgJG1ldGhvZCA9ICRFTlZ7J1JFUVVF
U1RfTUVUSE9EJ307CitpZiAoZGVmaW5lZCAkY2wpIHsKKyAgICBwcmludCAiUkVRTEVOR1RIOiAk
Y2xcbiI7Cit9CitpZiAoZGVmaW5lZCAkY3QpIHsKKyAgICBwcmludCAiUkVRVFlQRTogJGN0XG4i
OworfQorcHJpbnQgIlJFUU1FVEhPRDogJG1ldGhvZFxuIjsKKworcHJpbnQgIlxuIjsKClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0
aG9kcy5jZ2kKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
bWV0aG9kcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwNyBAQAorPGh0bWw+Cis8Ym9k
eT4KKzxwPlRlc3RzIGZvciA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcv
c2hvd19idWcuY2dpP2lkPTM4MTIiPiBidWcgMzgxMjwvYT4gLSAKK0dFVCBhbmQgUE9TVCBzaG91
bGQgbm90IGJlIHRoZSBvbmx5IEhUVFAgbWV0aG9kcyBpbXBsZW1lbnRlZCBpbiBYTUxIdHRwUmVx
dWVzdC48L3A+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAKKyAgICB2
YXIgY29uc29sZV9tZXNzYWdlcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb25zb2xlX21lc3NhZ2VzKTsKKyAgICAKKyAgICBm
dW5jdGlvbiBsb2cobWVzc2FnZSkKKyAgICB7CisgICAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgICAgIGNvbnNvbGVfbWVzc2FnZXMuYXBwZW5k
Q2hpbGQoaXRlbSk7CisgICAgfQorCisgICAgLy8gc3luYworICAgIHJlcSA9IG5ldyBYTUxIdHRw
UmVxdWVzdDsKKyAgICByZXEub3BlbigiR0VUIiwgIm1ldGhvZHMuY2dpIiwgZmFsc2UpOworICAg
IHJlcS5zZW5kKCIiKTsKKyAgICBsb2coJ0dFVCgiIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFk
ZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgi
KSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJF
UVRZUEUiKSk7CisKKyAgICByZXEub3BlbigiR0VUIiwgIm1ldGhvZHMuY2dpIiwgZmFsc2UpOwor
ICAgIHJlcS5zZW5kKG51bGwpOworICAgIGxvZygnR0VUKG51bGwpOiAnICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVR
TEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVh
ZGVyKCJSRVFUWVBFIikpOworCisgICAgcmVxLm9wZW4oIkdFVCIsICJtZXRob2RzLmNnaSIsIGZh
bHNlKTsKKyAgICByZXEuc2VuZCgiMTIzIik7CisgICAgbG9nKCdHRVQoIjEyMyIpOiAnICsgcmVx
LmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhl
YWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJl
c3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworCisgICAgcmVxLm9wZW4oIlBPU1QiLCAibWV0aG9k
cy5jZ2kiLCBmYWxzZSk7CisgICAgcmVxLnNlbmQoIiIpOworICAgIGxvZygnUE9TVCgiIik6ICcg
KyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEu
Z2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisKKyAgICByZXEub3BlbigiUE9TVCIsICJt
ZXRob2RzLmNnaSIsIGZhbHNlKTsKKyAgICByZXEuc2VuZChudWxsKTsKKyAgICBsb2coJ1BPU1Qo
bnVsbCk6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVx
LmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6
ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisKKyAgICByZXEub3Blbigi
UE9TVCIsICJtZXRob2RzLmNnaSIsIGZhbHNlKTsKKyAgICByZXEuc2VuZCgiMTIzIik7CisgICAg
bG9nKCdQT1NUKCIxMjMiKTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikg
KyAiKCIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENv
bnRlbnQtVHlwZTogIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKworICAg
IHJlcS5vcGVuKCJQVVQiLCAibWV0aG9kcy5jZ2kiLCBmYWxzZSk7CisgICAgcmVxLnNlbmQoIiIp
OworICAgIGxvZygnUFVUKCIiKTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9E
IikgKyAiKCIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyks
IENvbnRlbnQtVHlwZTogIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKwor
ICAgIHJlcS5vcGVuKCJQVVQiLCAibWV0aG9kcy5jZ2kiLCBmYWxzZSk7CisgICAgcmVxLnNlbmQo
bnVsbCk7CisgICAgbG9nKCdQVVQobnVsbCk6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJF
UU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIg
Ynl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUi
KSk7CisKKyAgICByZXEub3BlbigiUFVUIiwgIm1ldGhvZHMuY2dpIiwgZmFsc2UpOworICAgIHJl
cS5zZW5kKCIxMjMiKTsKKyAgICBsb2coJ1BVVCgiMTIzIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VI
ZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5H
VEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIo
IlJFUVRZUEUiKSk7CisKKyAgICByZXEub3BlbigiREVMRVRFIiwgIm1ldGhvZHMuY2dpIiwgZmFs
c2UpOworICAgIHJlcS5zZW5kKCIiKTsKKyAgICBsb2coJ0RFTEVURSgiIik6ICcgKyByZXEuZ2V0
UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVy
KCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9u
c2VIZWFkZXIoIlJFUVRZUEUiKSk7CisKKyAgICByZXEub3BlbigiREVMRVRFIiwgIm1ldGhvZHMu
Y2dpIiwgZmFsc2UpOworICAgIHJlcS5zZW5kKG51bGwpOworICAgIGxvZygnREVMRVRFKG51bGwp
OiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRS
ZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsg
cmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworCisgICAgcmVxLm9wZW4oIkRFTEVU
RSIsICJtZXRob2RzLmNnaSIsIGZhbHNlKTsKKyAgICByZXEuc2VuZCgiMTIzIik7CisgICAgbG9n
KCdERUxFVEUoIjEyMyIpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSAr
ICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29u
dGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworLyoKKyAg
ICByZXEub3BlbigiSEVBRCIsICJtZXRob2RzLmNnaSIsIGZhbHNlKTsKKyAgICByZXEuc2VuZCgi
Iik7CisgICAgbG9nKCdIRUFEKCIiKTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVU
SE9EIikgKyAiKCIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRl
cyksIENvbnRlbnQtVHlwZTogIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsK
KworICAgIHJlcS5vcGVuKCJIRUFEIiwgIm1ldGhvZHMuY2dpIiwgZmFsc2UpOworICAgIHJlcS5z
ZW5kKG51bGwpOworICAgIGxvZygnSEVBRChudWxsKTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRl
cigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIp
ICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVR
VFlQRSIpKTsKKworICAgIHJlcS5vcGVuKCJIRUFEIiwgIm1ldGhvZHMuY2dpIiwgZmFsc2UpOwor
ICAgIHJlcS5zZW5kKCIxMjMiKTsKKyAgICBsb2coJ0hFQUQoIjEyMyIpOiAnICsgcmVxLmdldFJl
c3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigi
UkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNl
SGVhZGVyKCJSRVFUWVBFIikpOworKi8KKyAgICByZXEub3BlbigiV0tGT09CQVIiLCAibWV0aG9k
cy5jZ2kiLCBmYWxzZSk7CisgICAgcmVxLnNlbmQoIiIpOworICAgIGxvZygnV0tGT09CQVIoIiIp
OiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRS
ZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsg
cmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworCisgICAgcmVxLm9wZW4oIldLRk9P
QkFSIiwgIm1ldGhvZHMuY2dpIiwgZmFsc2UpOworICAgIHJlcS5zZW5kKG51bGwpOworICAgIGxv
ZygnV0tGT09CQVIobnVsbCk6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIp
ICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBD
b250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisKKyAg
ICByZXEub3BlbigiV0tGT09CQVIiLCAibWV0aG9kcy5jZ2kiLCBmYWxzZSk7CisgICAgcmVxLnNl
bmQoIjEyMyIpOworICAgIGxvZygnV0tGT09CQVIoIjEyMyIpOiAnICsgcmVxLmdldFJlc3BvbnNl
SGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVO
R1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVy
KCJSRVFUWVBFIikpOworCisgICAgcmVxLm9wZW4oIlNFQVJDSCIsICJtZXRob2RzLmNnaSIsIGZh
bHNlKTsKKyAgICByZXEuc2VuZCgiIik7CisgICAgbG9nKCdTRUFSQ0goIiIpOiAnICsgcmVxLmdl
dFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRl
cigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFUWVBFIikpOworCisgICAgcmVxLm9wZW4oIlNFQVJDSCIsICJtZXRob2Rz
LmNnaSIsIGZhbHNlKTsKKyAgICByZXEuc2VuZChudWxsKTsKKyAgICBsb2coJ1NFQVJDSChudWxs
KTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0
UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiAr
IHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKworICAgIHJlcS5vcGVuKCJTRUFS
Q0giLCAibWV0aG9kcy5jZ2kiLCBmYWxzZSk7CisgICAgcmVxLnNlbmQoIjEyMyIpOworICAgIGxv
ZygnU0VBUkNIKCIxMjMiKTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikg
KyAiKCIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENv
bnRlbnQtVHlwZTogIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2Vi
U3VicmVzb3VyY2VMb2FkZXIubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViQ29yZVN1cHBvcnQv
V2ViU3VicmVzb3VyY2VMb2FkZXIubQkocmV2aXNpb24gMTMwNTQpCisrKyBXZWJLaXQvV2ViQ29y
ZVN1cHBvcnQvV2ViU3VicmVzb3VyY2VMb2FkZXIubQkod29ya2luZyBjb3B5KQpAQCAtOTksMTIg
Kzk5LDE1IEBACiB9CiAKICsgKFdlYlN1YnJlc291cmNlTG9hZGVyICopc3RhcnRMb2FkaW5nUmVz
b3VyY2U6KGlkIDxXZWJDb3JlUmVzb3VyY2VMb2FkZXI+KXJMb2FkZXIKLQkJCQkgICAgICAgd2l0
aFVSTDooTlNVUkwgKilVUkwKLQkJCQkgY3VzdG9tSGVhZGVyczooTlNEaWN0aW9uYXJ5ICopY3Vz
dG9tSGVhZGVycwotCQkJCSAgICAgIHJlZmVycmVyOihOU1N0cmluZyAqKXJlZmVycmVyCi0JCQkJ
IGZvckRhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilzb3VyY2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpdGhNZXRob2Q6KE5TU3RyaW5nICopbWV0aG9kIAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTDooTlNVUkwgKilVUkwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUhlYWRlcnM6KE5TRGljdGlvbmFy
eSAqKWN1c3RvbUhlYWRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVmZXJyZXI6KE5TU3RyaW5nICopcmVmZXJyZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvckRhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilzb3VyY2UKIHsKICAgICBOU011
dGFibGVVUkxSZXF1ZXN0ICpuZXdSZXF1ZXN0ID0gW1tOU011dGFibGVVUkxSZXF1ZXN0IGFsbG9j
XSBpbml0V2l0aFVSTDpVUkxdOworICAgIFtuZXdSZXF1ZXN0IHNldEhUVFBNZXRob2Q6bWV0aG9k
XTsKKwogICAgIFdlYlN1YnJlc291cmNlTG9hZGVyICpsb2FkZXIgPSBbc2VsZiBzdGFydExvYWRp
bmdSZXNvdXJjZTpyTG9hZGVyIHdpdGhSZXF1ZXN0Om5ld1JlcXVlc3QgY3VzdG9tSGVhZGVyczpj
dXN0b21IZWFkZXJzIHJlZmVycmVyOnJlZmVycmVyIGZvckRhdGFTb3VyY2U6c291cmNlXTsKICAg
ICBbbmV3UmVxdWVzdCByZWxlYXNlXTsKIApAQCAtMTEyLDE1ICsxMTUsMTYgQEAKIH0KIAogKyAo
V2ViU3VicmVzb3VyY2VMb2FkZXIgKilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQgPFdlYkNvcmVS
ZXNvdXJjZUxvYWRlcj4pckxvYWRlcgotCQkJCSAgICAgICB3aXRoVVJMOihOU1VSTCAqKVVSTAot
CQkJCSBjdXN0b21IZWFkZXJzOihOU0RpY3Rpb25hcnkgKiljdXN0b21IZWFkZXJzCi0JCQkJICAg
ICAgcG9zdERhdGE6KE5TQXJyYXkgKilwb3N0RGF0YQotCQkJCSAgICAgIHJlZmVycmVyOihOU1N0
cmluZyAqKXJlZmVycmVyCi0JCQkJIGZvckRhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilzb3Vy
Y2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhNZXRob2Q6KE5TU3Ry
aW5nICopbWV0aG9kIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVSTDooTlNVUkwgKilVUkwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3Rv
bUhlYWRlcnM6KE5TRGljdGlvbmFyeSAqKWN1c3RvbUhlYWRlcnMKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9zdERhdGE6KE5TQXJyYXkgKilwb3N0RGF0YQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlcjooTlNTdHJpbmcgKilyZWZl
cnJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yRGF0YVNvdXJjZTooV2Vi
RGF0YVNvdXJjZSAqKXNvdXJjZQogewogICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKm5ld1JlcXVl
c3QgPSBbW05TTXV0YWJsZVVSTFJlcXVlc3QgYWxsb2NdIGluaXRXaXRoVVJMOlVSTF07CiAKLSAg
ICBbbmV3UmVxdWVzdCBzZXRIVFRQTWV0aG9kOkAiUE9TVCJdOworICAgIFtuZXdSZXF1ZXN0IHNl
dEhUVFBNZXRob2Q6bWV0aG9kXTsKICAgICB3ZWJTZXRIVFRQQm9keShuZXdSZXF1ZXN0LCBwb3N0
RGF0YSk7CiAKICAgICBXZWJTdWJyZXNvdXJjZUxvYWRlciAqbG9hZGVyID0gW3NlbGYgc3RhcnRM
b2FkaW5nUmVzb3VyY2U6ckxvYWRlciB3aXRoUmVxdWVzdDpuZXdSZXF1ZXN0IGN1c3RvbUhlYWRl
cnM6Y3VzdG9tSGVhZGVycyByZWZlcnJlcjpyZWZlcnJlciBmb3JEYXRhU291cmNlOnNvdXJjZV07
CkluZGV4OiBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVCcmlkZ2UubQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVCcmlkZ2UubQkocmV2aXNpb24gMTMw
NTQpCisrKyBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVCcmlkZ2UubQkod29ya2luZyBj
b3B5KQpAQCAtNDc4LDcgKzQ3OCw3IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250YWluZXJLZXkg
PSAgIEAiV2UKICAgICBbc2VsZiBhZGREYXRhOmRhdGFdOwogfQogCi0tIChpZCA8V2ViQ29yZVJl
c291cmNlSGFuZGxlPilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQgPFdlYkNvcmVSZXNvdXJjZUxv
YWRlcj4pcmVzb3VyY2VMb2FkZXIgd2l0aFVSTDooTlNVUkwgKilVUkwgY3VzdG9tSGVhZGVyczoo
TlNEaWN0aW9uYXJ5ICopY3VzdG9tSGVhZGVycworLSAoaWQgPFdlYkNvcmVSZXNvdXJjZUhhbmRs
ZT4pc3RhcnRMb2FkaW5nUmVzb3VyY2U6KGlkIDxXZWJDb3JlUmVzb3VyY2VMb2FkZXI+KXJlc291
cmNlTG9hZGVyIHdpdGhNZXRob2Q6KE5TU3RyaW5nICopbWV0aG9kIFVSTDooTlNVUkwgKilVUkwg
Y3VzdG9tSGVhZGVyczooTlNEaWN0aW9uYXJ5ICopY3VzdG9tSGVhZGVycwogewogICAgIC8vIElm
IHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBXZWJWaWV3LCB0aGlzIG11c3QgYmUgYW4g
YXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgogICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdz
IGp1c3QgYmxvY2sgaXQuCkBAIC00OTEsMTMgKzQ5MSwxNCBAQCBOU1N0cmluZyAqV2ViUGx1Z2lu
Q29udGFpbmVyS2V5ID0gICBAIldlCiAgICAgW3NlbGYgY2FuTG9hZFVSTDpVUkwgZnJvbVJlZmVy
cmVyOltzZWxmIHJlZmVycmVyXSBoaWRlUmVmZXJyZXI6JmhpZGVSZWZlcnJlcl07CiAKICAgICBy
ZXR1cm4gW1dlYlN1YnJlc291cmNlTG9hZGVyIHN0YXJ0TG9hZGluZ1Jlc291cmNlOnJlc291cmNl
TG9hZGVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0
aFVSTDpVUkwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRo
TWV0aG9kOihOU1N0cmluZyAqKW1ldGhvZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBVUkw6VVJMCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3VzdG9tSGVhZGVyczpjdXN0b21IZWFkZXJzCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlcjooaGlkZVJlZmVycmVyID8gbmls
IDogW3NlbGYgcmVmZXJyZXJdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvckRhdGFTb3VyY2U6W3NlbGYgZGF0YVNvdXJjZV1dOwogfQogCi0tIChpZCA8V2ViQ29y
ZVJlc291cmNlSGFuZGxlPilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQgPFdlYkNvcmVSZXNvdXJj
ZUxvYWRlcj4pcmVzb3VyY2VMb2FkZXIgd2l0aFVSTDooTlNVUkwgKilVUkwgY3VzdG9tSGVhZGVy
czooTlNEaWN0aW9uYXJ5ICopY3VzdG9tSGVhZGVycyBwb3N0RGF0YTooTlNBcnJheSAqKXBvc3RE
YXRhCistIChpZCA8V2ViQ29yZVJlc291cmNlSGFuZGxlPilzdGFydExvYWRpbmdSZXNvdXJjZToo
aWQgPFdlYkNvcmVSZXNvdXJjZUxvYWRlcj4pcmVzb3VyY2VMb2FkZXIgd2l0aE1ldGhvZDooTlNT
dHJpbmcgKiltZXRob2QgVVJMOihOU1VSTCAqKVVSTCBjdXN0b21IZWFkZXJzOihOU0RpY3Rpb25h
cnkgKiljdXN0b21IZWFkZXJzIHBvc3REYXRhOihOU0FycmF5ICopcG9zdERhdGEKIHsKICAgICAv
LyBJZiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgV2ViVmlldywgdGhpcyBtdXN0IGJl
IGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4KICAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBs
ZXQncyBqdXN0IGJsb2NrIGl0LgpAQCAtNTEwLDggKzUxMSw5IEBAIE5TU3RyaW5nICpXZWJQbHVn
aW5Db250YWluZXJLZXkgPSAgIEAiV2UKICAgICBbc2VsZiBjYW5Mb2FkVVJMOlVSTCBmcm9tUmVm
ZXJyZXI6W3NlbGYgcmVmZXJyZXJdIGhpZGVSZWZlcnJlcjomaGlkZVJlZmVycmVyXTsKIAogICAg
IHJldHVybiBbV2ViU3VicmVzb3VyY2VMb2FkZXIgc3RhcnRMb2FkaW5nUmVzb3VyY2U6cmVzb3Vy
Y2VMb2FkZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aXRoVVJMOlVSTAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0
b21IZWFkZXJzOmN1c3RvbUhlYWRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aXRoTWV0aG9kOihOU1N0cmluZyAqKW1ldGhvZCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMOlVSTAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUhlYWRlcnM6Y3VzdG9tSGVhZGVycwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdERhdGE6cG9z
dERhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVy
cmVyOihoaWRlUmVmZXJyZXIgPyBuaWwgOiBbc2VsZiByZWZlcnJlcl0pCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yRGF0YVNvdXJjZTpbc2VsZiBkYXRhU291cmNl
XV07CkBAIC01MjgsNyArNTMwLDcgQEAgTlNTdHJpbmcgKldlYlBsdWdpbkNvbnRhaW5lcktleSA9
ICAgQCJXZQogICAgIFtyZXF1ZXN0IHJlbGVhc2VdOwogfQogCi0tIChOU0RhdGEgKilzeW5jTG9h
ZFJlc291cmNlV2l0aFVSTDooTlNVUkwgKilVUkwgY3VzdG9tSGVhZGVyczooTlNEaWN0aW9uYXJ5
ICopcmVxdWVzdEhlYWRlcnMgcG9zdERhdGE6KE5TQXJyYXkgKilwb3N0RGF0YSBmaW5hbFVSTDoo
TlNVUkwgKiopZmluYWxVUkwgcmVzcG9uc2VIZWFkZXJzOihOU0RpY3Rpb25hcnkgKiopcmVzcG9u
c2VIZWFkZXJEaWN0IHN0YXR1c0NvZGU6KGludCAqKXN0YXR1c0NvZGUKKy0gKE5TRGF0YSAqKXN5
bmNMb2FkUmVzb3VyY2VXaXRoTWV0aG9kOihOU1N0cmluZyAqKW1ldGhvZCBVUkw6KE5TVVJMICop
VVJMIGN1c3RvbUhlYWRlcnM6KE5TRGljdGlvbmFyeSAqKXJlcXVlc3RIZWFkZXJzIHBvc3REYXRh
OihOU0FycmF5ICopcG9zdERhdGEgZmluYWxVUkw6KE5TVVJMICoqKWZpbmFsVVJMIHJlc3BvbnNl
SGVhZGVyczooTlNEaWN0aW9uYXJ5ICoqKXJlc3BvbnNlSGVhZGVyRGljdCBzdGF0dXNDb2RlOihp
bnQgKilzdGF0dXNDb2RlCiB7CiAgICAgLy8gU2luY2UgdGhpcyBpcyBhIHN1YnJlc291cmNlLCB3
ZSBjYW4gbG9hZCBhbnkgVVJMICh3ZSBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSkuCiAgICAgLy8g
QnV0IHdlIHN0aWxsIHdhbnQgdG8ga25vdyB3aGV0aGVyIHdlIHNob3VsZCBoaWRlIHRoZSByZWZl
cnJlciBvciBub3QsIHNvIHdlIGNhbGwgdGhlIGNhbkxvYWRVUkwgbWV0aG9kLgpAQCAtNTM4LDEw
ICs1NDAsOSBAQCBOU1N0cmluZyAqV2ViUGx1Z2luQ29udGFpbmVyS2V5ID0gICBAIldlCiAgICAg
TlNNdXRhYmxlVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtbTlNNdXRhYmxlVVJMUmVxdWVzdCBhbGxv
Y10gaW5pdFdpdGhVUkw6VVJMXTsKICAgICBbcmVxdWVzdCBzZXRUaW1lb3V0SW50ZXJ2YWw6MTBd
OwogCi0gICAgaWYgKHBvc3REYXRhKSB7Ci0gICAgICAgIFtyZXF1ZXN0IHNldEhUVFBNZXRob2Q6
QCJQT1NUIl07CisgICAgW3JlcXVlc3Qgc2V0SFRUUE1ldGhvZDptZXRob2RdOworICAgIGlmIChw
b3N0RGF0YSkgICAgICAgIAogICAgICAgICB3ZWJTZXRIVFRQQm9keShyZXF1ZXN0LCBwb3N0RGF0
YSk7Ci0gICAgfQogCiAgICAgTlNFbnVtZXJhdG9yICplID0gW3JlcXVlc3RIZWFkZXJzIGtleUVu
dW1lcmF0b3JdOwogICAgIE5TU3RyaW5nICprZXk7CkluZGV4OiBXZWJLaXQvV2ViQ29yZVN1cHBv
cnQvV2ViU3VicmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViQ29yZVN1
cHBvcnQvV2ViU3VicmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTMwNTQpCisrKyBXZWJLaXQv
V2ViQ29yZVN1cHBvcnQvV2ViU3VicmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
NDMsMTMgKzQzLDE1IEBACiAtICh2b2lkKXNpZ25hbEZpbmlzaDsKIAogKyAoV2ViU3VicmVzb3Vy
Y2VMb2FkZXIgKilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQgPFdlYkNvcmVSZXNvdXJjZUxvYWRl
cj4pckxvYWRlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFVS
TDooTlNVUkwgKilVUkwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRo
TWV0aG9kOihOU1N0cmluZyAqKW1ldGhvZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVSTDooTlNVUkwgKilVUkwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjdXN0b21IZWFkZXJzOihOU0RpY3Rpb25hcnkgKiljdXN0b21IZWFkZXJzCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVycmVyOihOU1N0cmluZyAqKXJl
ZmVycmVyIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yRGF0YVNvdXJjZToo
V2ViRGF0YVNvdXJjZSAqKXNvdXJjZTsKIAogKyAoV2ViU3VicmVzb3VyY2VMb2FkZXIgKilzdGFy
dExvYWRpbmdSZXNvdXJjZTooaWQgPFdlYkNvcmVSZXNvdXJjZUxvYWRlcj4pckxvYWRlcgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFVSTDooTlNVUkwgKilVUkwg
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoTWV0aG9kOihOU1N0cmlu
ZyAqKW1ldGhvZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVS
TDooTlNVUkwgKilVUkwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21I
ZWFkZXJzOihOU0RpY3Rpb25hcnkgKiljdXN0b21IZWFkZXJzCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBvc3REYXRhOihOU0FycmF5ICopcG9zdERhdGEgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVycmVyOihOU1N0cmluZyAqKXJlZmVy
cmVyIApJbmRleDogV2ViQ29yZS9raHRtbC9lY21hL0pTWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUva2h0bWwvZWNtYS9KU1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNp
b24gMTMwNTQpCisrKyBXZWJDb3JlL2todG1sL2VjbWEvSlNYTUxIdHRwUmVxdWVzdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIyMiw4ICsyMjIsMTAgQEAgSlNWYWx1ZSogSlNYTUxIdHRwUmVxdWVz
dFByb3RvRnVuYzo6Y2FsbAogICAgICAgICAgIGJvZHkgPSBkb2MtPnRvU3RyaW5nKCkucXN0cmlu
ZygpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgIC8vIGNvbnZlcnRpbmcgY2VydGFpbiB2
YWx1ZXMgKGxpa2UgbnVsbCkgdG8gb2JqZWN0IGNhbiBzZXQgYW4gZXhjZXB0aW9uCi0gICAgICAg
ICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKLSAgICAgICAgICBib2R5ID0gYXJnc1swXS0+dG9T
dHJpbmcoZXhlYykuZG9tU3RyaW5nKCk7CisgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKQorICAgICAgICAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgICBlbHNl
CisgICAgICAgICAgICBib2R5ID0gYXJnc1swXS0+dG9TdHJpbmcoZXhlYykuZG9tU3RyaW5nKCk7
CiAgICAgICAgIH0KICAgICAgIH0KIApJbmRleDogV2ViQ29yZS9raHRtbC94c2wveHNsdF9wcm9j
ZXNzb3JpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2todG1sL3hzbC94c2x0X3Byb2Nl
c3NvcmltcGwuY3BwCShyZXZpc2lvbiAxMzA1NCkKKysrIFdlYkNvcmUva2h0bWwveHNsL3hzbHRf
cHJvY2Vzc29yaW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDcgKzg4LDcgQEAgc3RhdGlj
IHhtbERvY1B0ciBkb2NMb2FkZXJGdW5jKGNvbnN0IHhtbAogICAgICAgICAgICAgS1VSTCB1cmwo
KGNvbnN0IGNoYXIqKWJhc2UsIChjb25zdCBjaGFyKil1cmkpOwogICAgICAgICAgICAgeG1sRnJl
ZShiYXNlKTsKICAgICAgICAgICAgIEtVUkwgZmluYWxVUkw7Ci0gICAgICAgICAgICBUcmFuc2Zl
ckpvYiogam9iID0gbmV3IFRyYW5zZmVySm9iKDAsIHVybCk7CisgICAgICAgICAgICBUcmFuc2Zl
ckpvYiogam9iID0gbmV3IFRyYW5zZmVySm9iKCJHRVQiLCAwLCB1cmwpOwogICAgICAgICAgICAg
UVN0cmluZyBoZWFkZXJzOwogICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yRnVuYyBvbGRFcnJv
ckZ1bmMgPSB4bWxHZW5lcmljRXJyb3I7CiAgICAgICAgICAgICB2b2lkICpvbGRFcnJvckNvbnRl
eHQgPSB4bWxHZW5lcmljRXJyb3JDb250ZXh0OwpJbmRleDogV2ViQ29yZS9kb20veG1sX3Rva2Vu
aXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20veG1sX3Rva2VuaXplci5jcHAJKHJl
dmlzaW9uIDEzMDU0KQorKysgV2ViQ29yZS9kb20veG1sX3Rva2VuaXplci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE4MSw3ICsxODEsNyBAQCBzdGF0aWMgdm9pZCogb3BlbkZ1bmMoY29uc3QgY2hh
ciogdXJpKQogICAgICAgICByZXR1cm4gJmdsb2JhbERlc2NyaXB0b3I7CiAKICAgICBLVVJMIGZp
bmFsVVJMOwotICAgIFRyYW5zZmVySm9iKiBqb2IgPSBuZXcgVHJhbnNmZXJKb2IoMCwgdXJpKTsK
KyAgICBUcmFuc2ZlckpvYiogam9iID0gbmV3IFRyYW5zZmVySm9iKCJHRVQiLCAwLCB1cmkpOwog
ICAgIFFTdHJpbmcgaGVhZGVyczsKICAgICBCeXRlQXJyYXkgZGF0YSA9IEtXUVNlcnZlU3luY2hy
b25vdXNSZXF1ZXN0KENhY2hlOjpsb2FkZXIoKSwgZ2xvYmFsRG9jTG9hZGVyLCBqb2IsIGZpbmFs
VVJMLCBoZWFkZXJzKTsKICAgICAKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3JlRnJh
bWVCcmlkZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9tYWMvV2ViQ29yZUZyYW1l
QnJpZGdlLmgJKHJldmlzaW9uIDEzMDU0KQorKysgV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVG
cmFtZUJyaWRnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NDUsMTEgKzU0NSwxMSBAQCB0eXBlZGVm
IGVudW0gewogLSAoQk9PTClydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZToo
TlNTdHJpbmcgKiltZXNzYWdlOwogLSAodm9pZClhZGRNZXNzYWdlVG9Db25zb2xlOihOU0RpY3Rp
b25hcnkgKiltZXNzYWdlOwogCi0tIChpZCA8V2ViQ29yZVJlc291cmNlSGFuZGxlPilzdGFydExv
YWRpbmdSZXNvdXJjZTooaWQgPFdlYkNvcmVSZXNvdXJjZUxvYWRlcj4pbG9hZGVyIHdpdGhVUkw6
KE5TVVJMICopVVJMIGN1c3RvbUhlYWRlcnM6KE5TRGljdGlvbmFyeSAqKWN1c3RvbUhlYWRlcnM7
Ci0tIChpZCA8V2ViQ29yZVJlc291cmNlSGFuZGxlPilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQg
PFdlYkNvcmVSZXNvdXJjZUxvYWRlcj4pbG9hZGVyIHdpdGhVUkw6KE5TVVJMICopVVJMIGN1c3Rv
bUhlYWRlcnM6KE5TRGljdGlvbmFyeSAqKWN1c3RvbUhlYWRlcnMgcG9zdERhdGE6KE5TQXJyYXkg
KilkYXRhOworLSAoaWQgPFdlYkNvcmVSZXNvdXJjZUhhbmRsZT4pc3RhcnRMb2FkaW5nUmVzb3Vy
Y2U6KGlkIDxXZWJDb3JlUmVzb3VyY2VMb2FkZXI+KWxvYWRlciB3aXRoTWV0aG9kOihOU1N0cmlu
ZyAqKW1ldGhvZCBVUkw6KE5TVVJMICopVVJMIGN1c3RvbUhlYWRlcnM6KE5TRGljdGlvbmFyeSAq
KWN1c3RvbUhlYWRlcnM7CistIChpZCA8V2ViQ29yZVJlc291cmNlSGFuZGxlPilzdGFydExvYWRp
bmdSZXNvdXJjZTooaWQgPFdlYkNvcmVSZXNvdXJjZUxvYWRlcj4pbG9hZGVyIHdpdGhNZXRob2Q6
KE5TU3RyaW5nICopbWV0aG9kIFVSTDooTlNVUkwgKilVUkwgY3VzdG9tSGVhZGVyczooTlNEaWN0
aW9uYXJ5ICopY3VzdG9tSGVhZGVycyBwb3N0RGF0YTooTlNBcnJheSAqKWRhdGE7CiAtICh2b2lk
KW9iamVjdExvYWRlZEZyb21DYWNoZVdpdGhVUkw6KE5TVVJMICopVVJMIHJlc3BvbnNlOihOU1VS
TFJlc3BvbnNlICopcmVzcG9uc2UgZGF0YTooTlNEYXRhICopZGF0YTsKIAotLSAoTlNEYXRhICop
c3luY0xvYWRSZXNvdXJjZVdpdGhVUkw6KE5TVVJMICopVVJMIGN1c3RvbUhlYWRlcnM6KE5TRGlj
dGlvbmFyeSAqKXJlcXVlc3RIZWFkZXJzIHBvc3REYXRhOihOU0FycmF5ICopcG9zdERhdGEgZmlu
YWxVUkw6KE5TVVJMICoqKWZpbmFsTlNVUkwgcmVzcG9uc2VIZWFkZXJzOihOU0RpY3Rpb25hcnkg
KiopcmVzcG9uc2VIZWFkZXJEaWN0IHN0YXR1c0NvZGU6KGludCAqKXN0YXR1c0NvZGU7CistIChO
U0RhdGEgKilzeW5jTG9hZFJlc291cmNlV2l0aE1ldGhvZDooTlNTdHJpbmcgKiltZXRob2QgVVJM
OihOU1VSTCAqKVVSTCBjdXN0b21IZWFkZXJzOihOU0RpY3Rpb25hcnkgKilyZXF1ZXN0SGVhZGVy
cyBwb3N0RGF0YTooTlNBcnJheSAqKXBvc3REYXRhIGZpbmFsVVJMOihOU1VSTCAqKilmaW5hbE5T
VVJMIHJlc3BvbnNlSGVhZGVyczooTlNEaWN0aW9uYXJ5ICoqKXJlc3BvbnNlSGVhZGVyRGljdCBz
dGF0dXNDb2RlOihpbnQgKilzdGF0dXNDb2RlOwogCiAtIChCT09MKWlzUmVsb2FkaW5nOwogLSAo
dGltZV90KWV4cGlyZXNUaW1lRm9yUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZTsK
SW5kZXg6IFdlYkNvcmUveG1sL3htbGh0dHByZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3htbC94bWxodHRwcmVxdWVzdC5jcHAJKHJldmlzaW9uIDEzMDU0KQorKysgV2ViQ29yZS94
bWwveG1saHR0cHJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDAsNyArMjQwLDcgQEAg
dm9pZCBYTUxIdHRwUmVxdWVzdDo6c2VuZChjb25zdCBET01TdHJpbgogCiAgIGFib3J0ZWQgPSBm
YWxzZTsKIAotICBpZiAobWV0aG9kLmxvd2VyKCkgPT0gInBvc3QiICYmICh1cmwucHJvdG9jb2wo
KS5sb3dlcigpID09ICJodHRwIiB8fCB1cmwucHJvdG9jb2woKS5sb3dlcigpID09ICJodHRwcyIp
ICkgeworICBpZiAoIV9ib2R5LmlzTnVsbCgpICYmIG1ldGhvZC5sb3dlcigpICE9ICJnZXQiICYm
IG1ldGhvZC5sb3dlcigpICE9ICJoZWFkIiAmJiAodXJsLnByb3RvY29sKCkubG93ZXIoKSA9PSAi
aHR0cCIgfHwgdXJsLnByb3RvY29sKCkubG93ZXIoKSA9PSAiaHR0cHMiKSkgewogICAgICAgUVN0
cmluZyBjb250ZW50VHlwZSA9IGdldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIpOwogICAg
ICAgUVN0cmluZyBjaGFyc2V0OwogICAgICAgaWYgKGNvbnRlbnRUeXBlLmlzRW1wdHkoKSkKQEAg
LTI1NSwxMCArMjU1LDE1IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNlbmQoY29uc3QgRE9NU3Ry
aW4KICAgICAgIGlmICghZW5jb2RpbmcuaXNWYWxpZCgpKSAgIC8vIEZJWE1FOiByZXBvcnQgYW4g
ZXJyb3I/CiAgICAgICAgIGVuY29kaW5nID0gVGV4dEVuY29kaW5nKFVURjhFbmNvZGluZyk7CiAK
LSAgICAgIGpvYiA9IG5ldyBUcmFuc2ZlckpvYihhc3luYyA/IHRoaXMgOiAwLCB1cmwsIGVuY29k
aW5nLmZyb21Vbmljb2RlKF9ib2R5LnFzdHJpbmcoKSkpOworICAgICAgam9iID0gbmV3IFRyYW5z
ZmVySm9iKG1ldGhvZCwgYXN5bmMgPyB0aGlzIDogMCwgdXJsLCBlbmNvZGluZy5mcm9tVW5pY29k
ZShfYm9keS5xc3RyaW5nKCkpKTsKKyAgfSBlbHNlIHsKKyAgICAgLy8gSEVBRCByZXF1ZXN0cyBq
dXN0IGNyYXNoOyBzZWUgPHJkYXI6Ly80NDYwODk5PiBhbmQgdGhlIGNvbW1lbnRlZCBvdXQgdGVz
dHMgaW4gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9tZXRob2RzLmh0bWwuCisgICAgIGlmICht
ZXRob2QubG93ZXIoKSA9PSAiaGVhZCIpCisgICAgICAgbWV0aG9kID0gIkdFVCI7CisKKyAgICAg
am9iID0gbmV3IFRyYW5zZmVySm9iKG1ldGhvZCwgYXN5bmMgPyB0aGlzIDogMCwgdXJsKTsKICAg
fQotICBlbHNlCi0gICAgIGpvYiA9IG5ldyBUcmFuc2ZlckpvYihhc3luYyA/IHRoaXMgOiAwLCB1
cmwpOworCiAgIGlmIChyZXF1ZXN0SGVhZGVycy5sZW5ndGgoKSA+IDApCiAgICAgam9iLT5hZGRN
ZXRhRGF0YSgiY3VzdG9tSFRUUEhlYWRlciIsIHJlcXVlc3RIZWFkZXJzKTsKIApJbmRleDogV2Vi
Q29yZS9rd3EvS1dRTG9hZGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3dxL0tXUUxvYWRl
ci5tbQkocmV2aXNpb24gMTMwNTQpCisrKyBXZWJDb3JlL2t3cS9LV1FMb2FkZXIubW0JKHdvcmtp
bmcgY29weSkKQEAgLTEzMSwxMSArMTMxLDExIEBAIGJvb2wgS1dRU2VydmVSZXF1ZXN0KExvYWRl
ciAqbG9hZGVyLCBEb2MKICAgICAgICAgaGVhZGVyRGljdCA9IFtOU0RpY3Rpb25hcnkgX3dlYmNv
cmVfZGljdGlvbmFyeVdpdGhIZWFkZXJTdHJpbmc6aGVhZGVyU3RyaW5nLmdldE5TU3RyaW5nKCld
OwogICAgIH0KIAotICAgIGlmIChqb2ItPm1ldGhvZCgpID09ICJQT1NUIikgewotICAgICAgICBo
YW5kbGUgPSBbYnJpZGdlIHN0YXJ0TG9hZGluZ1Jlc291cmNlOnJlc291cmNlTG9hZGVyIHdpdGhV
Ukw6am9iLT51cmwoKS5nZXROU1VSTCgpIGN1c3RvbUhlYWRlcnM6aGVhZGVyRGljdAorICAgIGlm
IChqb2ItPnBvc3REYXRhKCkuY291bnQoKSA+IDApIHsKKyAgICAgICAgaGFuZGxlID0gW2JyaWRn
ZSBzdGFydExvYWRpbmdSZXNvdXJjZTpyZXNvdXJjZUxvYWRlciB3aXRoTWV0aG9kOmpvYi0+bWV0
aG9kKCkuZ2V0TlNTdHJpbmcoKSBVUkw6am9iLT51cmwoKS5nZXROU1VSTCgpIGN1c3RvbUhlYWRl
cnM6aGVhZGVyRGljdAogICAgICAgICAgICAgcG9zdERhdGE6YXJyYXlGcm9tRm9ybURhdGEoam9i
LT5wb3N0RGF0YSgpKV07CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaGFuZGxlID0gW2JyaWRnZSBz
dGFydExvYWRpbmdSZXNvdXJjZTpyZXNvdXJjZUxvYWRlciB3aXRoVVJMOmpvYi0+dXJsKCkuZ2V0
TlNVUkwoKSBjdXN0b21IZWFkZXJzOmhlYWRlckRpY3RdOworICAgICAgICBoYW5kbGUgPSBbYnJp
ZGdlIHN0YXJ0TG9hZGluZ1Jlc291cmNlOnJlc291cmNlTG9hZGVyIHdpdGhNZXRob2Q6am9iLT5t
ZXRob2QoKS5nZXROU1N0cmluZygpIFVSTDpqb2ItPnVybCgpLmdldE5TVVJMKCkgY3VzdG9tSGVh
ZGVyczpoZWFkZXJEaWN0XTsKICAgICB9CiAgICAgW3Jlc291cmNlTG9hZGVyIHNldEhhbmRsZTpo
YW5kbGVdOwogICAgIFtyZXNvdXJjZUxvYWRlciByZWxlYXNlXTsKQEAgLTE5MCwxNCArMTkwLDEz
IEBAIEJ5dGVBcnJheSBLV1FTZXJ2ZVN5bmNocm9ub3VzUmVxdWVzdChMb2EKICAgICB9CiAKICAg
ICBOU0FycmF5ICpwb3N0RGF0YSA9IG5pbDsKLSAgICBpZiAoam9iLT5tZXRob2QoKSA9PSAiUE9T
VCIpIHsKKyAgICBpZiAoam9iLT5wb3N0RGF0YSgpLmNvdW50KCkgPiAwKQogICAgICAgICBwb3N0
RGF0YSA9IGFycmF5RnJvbUZvcm1EYXRhKGpvYi0+cG9zdERhdGEoKSk7Ci0gICAgfQogCiAgICAg
TlNVUkwgKmZpbmFsTlNVUkwgPSBuaWw7CiAgICAgTlNEaWN0aW9uYXJ5ICpyZXNwb25zZUhlYWRl
ckRpY3QgPSBuaWw7CiAgICAgaW50IHN0YXR1c0NvZGUgPSAwOwotICAgIE5TRGF0YSAqcmVzdWx0
RGF0YSA9IFticmlkZ2Ugc3luY0xvYWRSZXNvdXJjZVdpdGhVUkw6am9iLT51cmwoKS5nZXROU1VS
TCgpIGN1c3RvbUhlYWRlcnM6aGVhZGVyRGljdCBwb3N0RGF0YTpwb3N0RGF0YSBmaW5hbFVSTDom
ZmluYWxOU1VSTCByZXNwb25zZUhlYWRlcnM6JnJlc3BvbnNlSGVhZGVyRGljdCBzdGF0dXNDb2Rl
OiZzdGF0dXNDb2RlXTsKKyAgICBOU0RhdGEgKnJlc3VsdERhdGEgPSBbYnJpZGdlIHN5bmNMb2Fk
UmVzb3VyY2VXaXRoTWV0aG9kOmpvYi0+bWV0aG9kKCkuZ2V0TlNTdHJpbmcoKSBVUkw6am9iLT51
cmwoKS5nZXROU1VSTCgpIGN1c3RvbUhlYWRlcnM6aGVhZGVyRGljdCBwb3N0RGF0YTpwb3N0RGF0
YSBmaW5hbFVSTDomZmluYWxOU1VSTCByZXNwb25zZUhlYWRlcnM6JnJlc3BvbnNlSGVhZGVyRGlj
dCBzdGF0dXNDb2RlOiZzdGF0dXNDb2RlXTsKICAgICBbaGVhZGVyRGljdCByZWxlYXNlXTsKICAg
ICAKICAgICBqb2ItPmtpbGwoKTsKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLm1tCShyZXZpc2lvbiAx
MzA1NCkKKysrIFdlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC00NCwyNiArNDQsMjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVHJhbnNmZXJKb2JQ
cml2YXRlCiB7CiBwdWJsaWM6Ci0gICAgVHJhbnNmZXJKb2JQcml2YXRlKFRyYW5zZmVySm9iQ2xp
ZW50KiBjLCBjb25zdCBLVVJMJiB1KQorICAgIFRyYW5zZmVySm9iUHJpdmF0ZShjb25zdCBRU3Ry
aW5nJiBtZXRob2QsIFRyYW5zZmVySm9iQ2xpZW50KiBjLCBjb25zdCBLVVJMJiB1KQogICAgICAg
ICA6IGNsaWVudChjKQogICAgICAgICAsIHN0YXR1cygwKQogICAgICAgICAsIG1ldGFEYXRhKEtX
UVJldGFpbk5TUmVsZWFzZShbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2Fw
YWNpdHk6MTddKSkKIAksIFVSTCh1KQogCSwgbG9hZGVyKG5pbCkKLQksIG1ldGhvZCgiR0VUIikK
KwksIG1ldGhvZChtZXRob2QpCiAJLCByZXNwb25zZShuaWwpCiAgICAgICAgICwgYXNzZW1ibGVk
UmVzcG9uc2VIZWFkZXJzKHRydWUpCiAgICAgICAgICwgcmV0cmlldmVkQ2hhcnNldCh0cnVlKQog
ICAgIHsKICAgICB9CiAKLSAgICBUcmFuc2ZlckpvYlByaXZhdGUoVHJhbnNmZXJKb2JDbGllbnQq
IGMsIGNvbnN0IEtVUkwmIHUsIGNvbnN0IEZvcm1EYXRhJiBwKQorICAgIFRyYW5zZmVySm9iUHJp
dmF0ZShjb25zdCBRU3RyaW5nJiBtZXRob2QsIFRyYW5zZmVySm9iQ2xpZW50KiBjLCBjb25zdCBL
VVJMJiB1LCBjb25zdCBGb3JtRGF0YSYgcCkKICAgICAgICAgOiBjbGllbnQoYykKICAgICAgICAg
LCBzdGF0dXMoMCkKICAgICAgICAgLCBtZXRhRGF0YShLV1FSZXRhaW5OU1JlbGVhc2UoW1tOU011
dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjE3XSkpCiAJLCBVUkwodSkK
IAksIGxvYWRlcihuaWwpCi0JLCBtZXRob2QoIlBPU1QiKQorCSwgbWV0aG9kKG1ldGhvZCkKIAks
IHBvc3REYXRhKHApCiAJLCByZXNwb25zZShuaWwpCiAJLCBhc3NlbWJsZWRSZXNwb25zZUhlYWRl
cnModHJ1ZSkKQEAgLTkzLDEzICs5MywxMyBAQCBwdWJsaWM6CiAgICAgUVN0cmluZyByZXNwb25z
ZUhlYWRlcnM7CiB9OwogCi1UcmFuc2ZlckpvYjo6VHJhbnNmZXJKb2IoVHJhbnNmZXJKb2JDbGll
bnQqIGNsaWVudCwgY29uc3QgS1VSTCYgdXJsKQotICAgIDogZChuZXcgVHJhbnNmZXJKb2JQcml2
YXRlKGNsaWVudCwgdXJsKSkKK1RyYW5zZmVySm9iOjpUcmFuc2ZlckpvYihjb25zdCBRU3RyaW5n
JiBtZXRob2QsIFRyYW5zZmVySm9iQ2xpZW50KiBjbGllbnQsIGNvbnN0IEtVUkwmIHVybCkKKyAg
ICA6IGQobmV3IFRyYW5zZmVySm9iUHJpdmF0ZShtZXRob2QsIGNsaWVudCwgdXJsKSkKIHsKIH0K
IAotVHJhbnNmZXJKb2I6OlRyYW5zZmVySm9iKFRyYW5zZmVySm9iQ2xpZW50KiBjbGllbnQsIGNv
bnN0IEtVUkwmIHVybCwgY29uc3QgRm9ybURhdGEmIHBvc3REYXRhKQotICAgIDogZChuZXcgVHJh
bnNmZXJKb2JQcml2YXRlKGNsaWVudCwgdXJsLCBwb3N0RGF0YSkpCitUcmFuc2ZlckpvYjo6VHJh
bnNmZXJKb2IoY29uc3QgUVN0cmluZyYgbWV0aG9kLCBUcmFuc2ZlckpvYkNsaWVudCogY2xpZW50
LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEZvcm1EYXRhJiBwb3N0RGF0YSkKKyAgICA6IGQobmV3
IFRyYW5zZmVySm9iUHJpdmF0ZShtZXRob2QsIGNsaWVudCwgdXJsLCBwb3N0RGF0YSkpCiB7CiB9
CiAKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9rd3EvS1dRS0pvYkNsYXNzZXMuaAkocmV2aXNpb24gMTMwNTQpCisrKyBXZWJDb3JlL2t3
cS9LV1FLSm9iQ2xhc3Nlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw4ICs0Nyw4IEBAIGNsYXNz
IFRyYW5zZmVySm9iUHJpdmF0ZTsKIAogY2xhc3MgVHJhbnNmZXJKb2IgewogcHVibGljOgotICAg
IFRyYW5zZmVySm9iKFRyYW5zZmVySm9iQ2xpZW50KiwgY29uc3QgS1VSTCYpOwotICAgIFRyYW5z
ZmVySm9iKFRyYW5zZmVySm9iQ2xpZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IEZvcm1EYXRhJiBw
b3N0RGF0YSk7CisgICAgVHJhbnNmZXJKb2IoY29uc3QgUVN0cmluZyYgbWV0aG9kLCBUcmFuc2Zl
ckpvYkNsaWVudCosIGNvbnN0IEtVUkwmKTsKKyAgICBUcmFuc2ZlckpvYihjb25zdCBRU3RyaW5n
JiBtZXRob2QsIFRyYW5zZmVySm9iQ2xpZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IEZvcm1EYXRh
JiBwb3N0RGF0YSk7CiAgICAgflRyYW5zZmVySm9iKCk7CiAKICAgICBpbnQgZXJyb3IoKSBjb25z
dDsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL2xvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9sb2FkZXIvbG9hZGVyLmNwcAkocmV2aXNpb24gMTMwNTQpCisrKyBXZWJDb3JlL2xvYWRlci9s
b2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgTG9hZGVyOjpz
ZXJ2ZVBlbmRpbmdSZXF1ZXN0cygpCiAgIFJlcXVlc3QgKnJlcSA9IG1fcmVxdWVzdHNQZW5kaW5n
LnRha2UoMCk7CiAKICAgS1VSTCB1KHJlcS0+b2JqZWN0LT51cmwoKS5xc3RyaW5nKCkpOwotICBU
cmFuc2ZlckpvYiogam9iID0gbmV3IFRyYW5zZmVySm9iKHRoaXMsIHUpOworICBUcmFuc2Zlckpv
Yiogam9iID0gbmV3IFRyYW5zZmVySm9iKCJHRVQiLCB0aGlzLCB1KTsKICAgCiAgIGlmICghcmVx
LT5vYmplY3QtPmFjY2VwdCgpLmlzRW1wdHkoKSkKICAgICAgIGpvYi0+YWRkTWV0YURhdGEoImFj
Y2VwdCIsIHJlcS0+b2JqZWN0LT5hY2NlcHQoKSk7CkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDEzMDU0
KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI0LDEwICsy
MjQsMTAgQEAgYm9vbCBGcmFtZTo6ZGlkT3BlblVSTChjb25zdCBLVVJMICZ1cmwpCiAgICAgIGQt
Pm1fY2FjaGVQb2xpY3kgPSBLSU86OkNDX1ZlcmlmeTsKIAogICBpZiAoYXJncy5kb1Bvc3QoKSAm
JiB1cmwucHJvdG9jb2woKS5zdGFydHNXaXRoKCJodHRwIikpIHsKLSAgICAgIGQtPm1fam9iID0g
bmV3IFRyYW5zZmVySm9iKHRoaXMsIHVybCwgYXJncy5wb3N0RGF0YSk7CisgICAgICBkLT5tX2pv
YiA9IG5ldyBUcmFuc2ZlckpvYigiUE9TVCIsIHRoaXMsIHVybCwgYXJncy5wb3N0RGF0YSk7CiAg
ICAgICBkLT5tX2pvYi0+YWRkTWV0YURhdGEoImNvbnRlbnQtdHlwZSIsIGFyZ3MuY29udGVudFR5
cGUoKSApOwogICB9IGVsc2UKLSAgICAgIGQtPm1fam9iID0gbmV3IFRyYW5zZmVySm9iKHRoaXMs
IHVybCk7CisgICAgICBkLT5tX2pvYiA9IG5ldyBUcmFuc2ZlckpvYigiR0VUIiwgdGhpcywgdXJs
KTsKIAogICBkLT5tX2pvYi0+YWRkTWV0YURhdGEoYXJncy5tZXRhRGF0YSgpKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6786</attachid>
            <date>2006-02-28 22:29:03 -0800</date>
            <delta_ts>2006-03-01 08:42:11 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>3812r2_patch.txt</filename>
            <type>text/plain</type>
            <size>37315</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9kcy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9tZXRob2RzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9kcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjEgQEAKK1Rlc3RzIGZvciBidWcgMzgxMiAtIEdFVCBhbmQgUE9TVCBzaG91
bGQgbm90IGJlIHRoZSBvbmx5IEhUVFAgbWV0aG9kcyBpbXBsZW1lbnRlZCBpbiBYTUxIdHRwUmVx
dWVzdC4KKworR0VUKCIiKTogR0VUKHVuZGVmaW5lZCBieXRlcyksIENvbnRlbnQtVHlwZTogdW5k
ZWZpbmVkCitHRVQobnVsbCk6IEdFVCh1bmRlZmluZWQgYnl0ZXMpLCBDb250ZW50LVR5cGU6IHVu
ZGVmaW5lZAorR0VUKCIxMjMiKTogR0VUKHVuZGVmaW5lZCBieXRlcyksIENvbnRlbnQtVHlwZTog
dW5kZWZpbmVkCitQT1NUKCIiKTogUE9TVCgwIGJ5dGVzKSwgQ29udGVudC1UeXBlOiBhcHBsaWNh
dGlvbi94bWwKK1BPU1QobnVsbCk6IFBPU1QoMCBieXRlcyksIENvbnRlbnQtVHlwZTogdW5kZWZp
bmVkCitQT1NUKCIxMjMiKTogUE9TVCgzIGJ5dGVzKSwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlv
bi94bWwKK1BVVCgiIik6IFBVVCgwIGJ5dGVzKSwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94
bWwKK1BVVChudWxsKTogUFVUKDAgYnl0ZXMpLCBDb250ZW50LVR5cGU6IHVuZGVmaW5lZAorUFVU
KCIxMjMiKTogUFVUKDMgYnl0ZXMpLCBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3htbAorREVM
RVRFKCIiKTogREVMRVRFKDAgYnl0ZXMpLCBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3htbAor
REVMRVRFKG51bGwpOiBERUxFVEUoMCBieXRlcyksIENvbnRlbnQtVHlwZTogdW5kZWZpbmVkCitE
RUxFVEUoIjEyMyIpOiBERUxFVEUoMyBieXRlcyksIENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24v
eG1sCitXS0ZPT0JBUigiIik6IFdLRk9PQkFSKDAgYnl0ZXMpLCBDb250ZW50LVR5cGU6IGFwcGxp
Y2F0aW9uL3htbAorV0tGT09CQVIobnVsbCk6IFdLRk9PQkFSKDAgYnl0ZXMpLCBDb250ZW50LVR5
cGU6IHVuZGVmaW5lZAorV0tGT09CQVIoIjEyMyIpOiBXS0ZPT0JBUigzIGJ5dGVzKSwgQ29udGVu
dC1UeXBlOiBhcHBsaWNhdGlvbi94bWwKK1NFQVJDSCgiIik6IFNFQVJDSCgwIGJ5dGVzKSwgQ29u
dGVudC1UeXBlOiBhcHBsaWNhdGlvbi94bWwKK1NFQVJDSChudWxsKTogU0VBUkNIKDAgYnl0ZXMp
LCBDb250ZW50LVR5cGU6IHVuZGVmaW5lZAorU0VBUkNIKCIxMjMiKTogU0VBUkNIKDMgYnl0ZXMp
LCBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3htbAorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMtYXN5bmMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMtYXN5bmMuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0
aG9kcy1hc3luYy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0OCBAQAorPGh0bWw+Cis8
Ym9keT4KKzxwPlRlc3RzIGZvciA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5v
cmcvc2hvd19idWcuY2dpP2lkPTM4MTIiPiBidWcgMzgxMjwvYT4gLSAKK0dFVCBhbmQgUE9TVCBz
aG91bGQgbm90IGJlIHRoZSBvbmx5IEhUVFAgbWV0aG9kcyBpbXBsZW1lbnRlZCBpbiBYTUxIdHRw
UmVxdWVzdC48L3A+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIAorICAg
IHZhciBjb25zb2xlX21lc3NhZ2VzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsKKyAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnNvbGVfbWVzc2FnZXMpOworICAgIAorICAg
IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQorICAgIHsKKyAgICAgICAgdmFyIGl0ZW0gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgICAgICBpdGVtLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICAgICAgY29uc29sZV9tZXNzYWdlcy5hcHBl
bmRDaGlsZChpdGVtKTsKKyAgICB9CisKKyAgICAvLyBhc3luYworICAgIAorICAgIHZhciBhc3lu
Y1N0ZXAgPSAxOworCisgICAgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0OworICAgIHJlcS5vbnJl
YWR5c3RhdGVjaGFuZ2UgPSBwcm9jZXNzU3RhdGVDaGFuZ2U7CisgICAgcmVxLm9wZW4oIkdFVCIs
ICJtZXRob2RzLmNnaSIsIHRydWUpOworICAgIHJlcS5zZW5kKCIiKTsKKworICAgIGZ1bmN0aW9u
IHByb2Nlc3NTdGF0ZUNoYW5nZSgpIHsKKyAgICAKKyAgICAgIGlmIChyZXEucmVhZHlTdGF0ZSA9
PSA0KXsKKyAgICAgICAgaWYgKHJlcS5zdGF0dXMgPT0gMjAwKXsKKyAgICAgICAgICAgaWYgKGFz
eW5jU3RlcCA9PSAxKSB7CisgICAgICAgICAgICAgYXN5bmNTdGVwID0gMjsKKyAgICAgICAgICAg
ICBsb2coJ0dFVCgiIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsg
IigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250
ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAg
ICAgICAgcmVxLm9wZW4oIkdFVCIsICJtZXRob2RzLmNnaSIsIHRydWUpOworICAgICAgICAgICAg
IHJlcS5zZW5kKG51bGwpOworICAgICAgICAgICB9IGVsc2UgaWYgKGFzeW5jU3RlcCA9PSAyKSB7
CisgICAgICAgICAgICAgYXN5bmNTdGVwID0gMzsKKyAgICAgICAgICAgICBsb2coJ0dFVChudWxs
KTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0
UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiAr
IHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKyAgICAgICAgICAgICByZXEub3Bl
bigiR0VUIiwgIm1ldGhvZHMuY2dpIiwgdHJ1ZSk7CisgICAgICAgICAgICAgcmVxLnNlbmQoIjEy
MyIpOworICAgICAgICAgICB9IGVsc2UgaWYgKGFzeW5jU3RlcCA9PSAzKSB7CisgICAgICAgICAg
ICAgYXN5bmNTdGVwID0gNDsKKyAgICAgICAgICAgICBsb2coJ0dFVCgiMTIzIik6ICcgKyByZXEu
Z2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVh
ZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVz
cG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIlBPU1QiLCAi
bWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2VuZCgiIik7CisgICAgICAg
ICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDQpIHsKKyAgICAgICAgICAgICBhc3luY1N0ZXAg
PSA1OworICAgICAgICAgICAgIGxvZygnUE9TVCgiIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFk
ZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgi
KSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJF
UVRZUEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIlBPU1QiLCAibWV0aG9kcy5jZ2kiLCB0
cnVlKTsKKyAgICAgICAgICAgICByZXEuc2VuZChudWxsKTsKKyAgICAgICAgICAgfSBlbHNlIGlm
IChhc3luY1N0ZXAgPT0gNSkgeworICAgICAgICAgICAgIGFzeW5jU3RlcCA9IDY7CisgICAgICAg
ICAgICAgbG9nKCdQT1NUKG51bGwpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRI
T0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVz
KSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOwor
ICAgICAgICAgICAgIHJlcS5vcGVuKCJQT1NUIiwgIm1ldGhvZHMuY2dpIiwgdHJ1ZSk7CisgICAg
ICAgICAgICAgcmVxLnNlbmQoIjEyMyIpOworICAgICAgICAgICB9IGVsc2UgaWYgKGFzeW5jU3Rl
cCA9PSA2KSB7CisgICAgICAgICAgICAgYXN5bmNTdGVwID0gNzsKKyAgICAgICAgICAgICBsb2co
J1BPU1QoIjEyMyIpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIo
IiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVu
dC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworICAgICAgICAg
ICAgIHJlcS5vcGVuKCJQVVQiLCAibWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICBy
ZXEuc2VuZCgiIik7CisgICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDcpIHsKKyAg
ICAgICAgICAgICBhc3luY1N0ZXAgPSA4OworICAgICAgICAgICAgIGxvZygnUFVUKCIiKTogJyAr
IHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0UmVzcG9u
c2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiArIHJlcS5n
ZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKyAgICAgICAgICAgICByZXEub3BlbigiUFVU
IiwgIm1ldGhvZHMuY2dpIiwgdHJ1ZSk7CisgICAgICAgICAgICAgcmVxLnNlbmQobnVsbCk7Cisg
ICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDgpIHsKKyAgICAgICAgICAgICBhc3lu
Y1N0ZXAgPSA5OworICAgICAgICAgICAgIGxvZygnUFVUKG51bGwpOiAnICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVR
TEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVh
ZGVyKCJSRVFUWVBFIikpOworICAgICAgICAgICAgIHJlcS5vcGVuKCJQVVQiLCAibWV0aG9kcy5j
Z2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2VuZCgiMTIzIik7CisgICAgICAgICAgIH0g
ZWxzZSBpZiAoYXN5bmNTdGVwID09IDkpIHsKKyAgICAgICAgICAgICBhc3luY1N0ZXAgPSAxMDsK
KyAgICAgICAgICAgICBsb2coJ1BVVCgiMTIzIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIo
IlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSAr
ICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZ
UEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIkRFTEVURSIsICJtZXRob2RzLmNnaSIsIHRy
dWUpOworICAgICAgICAgICAgIHJlcS5zZW5kKCIiKTsKKyAgICAgICAgICAgfSBlbHNlIGlmIChh
c3luY1N0ZXAgPT0gMTApIHsKKyAgICAgICAgICAgICBhc3luY1N0ZXAgPSAxMTsKKyAgICAgICAg
ICAgICBsb2coJ0RFTEVURSgiIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhP
RCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMp
LCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7Cisg
ICAgICAgICAgICAgcmVxLm9wZW4oIkRFTEVURSIsICJtZXRob2RzLmNnaSIsIHRydWUpOworICAg
ICAgICAgICAgIHJlcS5zZW5kKG51bGwpOworICAgICAgICAgICB9IGVsc2UgaWYgKGFzeW5jU3Rl
cCA9PSAxMSkgeworICAgICAgICAgICAgIGFzeW5jU3RlcCA9IDE1Oy8vIDEyOworICAgICAgICAg
ICAgIGxvZygnREVMRVRFKG51bGwpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRI
T0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVz
KSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOwor
ICAgICAgICAgICAgIHJlcS5vcGVuKCJERUxFVEUiLCAibWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAg
ICAgICAgICAgICByZXEuc2VuZCgiMTIzIik7CisgICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNT
dGVwID09IDEyKSB7CisgICAgICAgICAgICAgYXN5bmNTdGVwID0gMTM7CisgICAgICAgICAgICAg
bG9nKCdERUxFVEUoIjEyMyIpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0Qi
KSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwg
Q29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworICAg
ICAgICAgICAgIHJlcS5vcGVuKCJIRUFEIiwgIm1ldGhvZHMuY2dpIiwgdHJ1ZSk7CisgICAgICAg
ICAgICAgcmVxLnNlbmQoIiIpOworICAgICAgICAgICB9IGVsc2UgaWYgKGFzeW5jU3RlcCA9PSAx
MykgeworICAgICAgICAgICAgIGFzeW5jU3RlcCA9IDE0OworICAgICAgICAgICAgIGxvZygnSEVB
RCgiIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVx
LmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6
ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICAgcmVx
Lm9wZW4oIkhFQUQiLCAibWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2Vu
ZChudWxsKTsKKyAgICAgICAgICAgfSBlbHNlIGlmIChhc3luY1N0ZXAgPT0gMTQpIHsKKyAgICAg
ICAgICAgICBhc3luY1N0ZXAgPSAxNTsKKyAgICAgICAgICAgICBsb2coJ0hFQUQobnVsbCk6ICcg
KyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEu
Z2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIkhF
QUQiLCAibWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2VuZCgiMTIzIik7
CisgICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDE1KSB7CisgICAgICAgICAgICAg
YXN5bmNTdGVwID0gMTY7CisgICAgICAgICAgICAgbG9nKCdERUxFVEUoIjEyMyIpOiAnICsgcmVx
LmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhl
YWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJl
c3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworICAgICAgICAgICAgIC8vbG9nKCdIRUFEKCIxMjMi
KTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0
UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiAr
IHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKyAgICAgICAgICAgICByZXEub3Bl
bigiV0tGT09CQVIiLCAibWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2Vu
ZCgiIik7CisgICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDE2KSB7CisgICAgICAg
ICAgICAgYXN5bmNTdGVwID0gMTc7CisgICAgICAgICAgICAgbG9nKCdXS0ZPT0JBUigiIik6ICcg
KyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEu
Z2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIldL
Rk9PQkFSIiwgIm1ldGhvZHMuY2dpIiwgdHJ1ZSk7CisgICAgICAgICAgICAgcmVxLnNlbmQobnVs
bCk7CisgICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDE3KSB7CisgICAgICAgICAg
ICAgYXN5bmNTdGVwID0gMTg7CisgICAgICAgICAgICAgbG9nKCdXS0ZPT0JBUihudWxsKTogJyAr
IHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0UmVzcG9u
c2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiArIHJlcS5n
ZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKyAgICAgICAgICAgICByZXEub3BlbigiV0tG
T09CQVIiLCAibWV0aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2VuZCgiMTIz
Iik7CisgICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDE4KSB7CisgICAgICAgICAg
ICAgYXN5bmNTdGVwID0gMTk7CisgICAgICAgICAgICAgbG9nKCdXS0ZPT0JBUigiMTIzIik6ICcg
KyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEu
Z2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIlNF
QVJDSCIsICJtZXRob2RzLmNnaSIsIHRydWUpOworICAgICAgICAgICAgIHJlcS5zZW5kKCIiKTsK
KyAgICAgICAgICAgfSBlbHNlIGlmIChhc3luY1N0ZXAgPT0gMTkpIHsKKyAgICAgICAgICAgICBh
c3luY1N0ZXAgPSAyMDsKKyAgICAgICAgICAgICBsb2coJ1NFQVJDSCgiIik6ICcgKyByZXEuZ2V0
UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVy
KCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9u
c2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICAgcmVxLm9wZW4oIlNFQVJDSCIsICJt
ZXRob2RzLmNnaSIsIHRydWUpOworICAgICAgICAgICAgIHJlcS5zZW5kKG51bGwpOworICAgICAg
ICAgICB9IGVsc2UgaWYgKGFzeW5jU3RlcCA9PSAyMCkgeworICAgICAgICAgICAgIGFzeW5jU3Rl
cCA9IDIxOworICAgICAgICAgICAgIGxvZygnU0VBUkNIKG51bGwpOiAnICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVR
TEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVh
ZGVyKCJSRVFUWVBFIikpOworICAgICAgICAgICAgIHJlcS5vcGVuKCJTRUFSQ0giLCAibWV0aG9k
cy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgICByZXEuc2VuZCgiMTIzIik7CisgICAgICAgICAg
IH0gZWxzZSBpZiAoYXN5bmNTdGVwID09IDIxKSB7CisgICAgICAgICAgICAgbG9nKCdTRUFSQ0go
IjEyMyIpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJl
cS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBl
OiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworICAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgbG9nKCJFcnJvciBsb2FkaW5nIFVSTDogc3RhdHVzICIgKyByZXEuc3RhdHVz
KTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMt
YXN5bmMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvbWV0aG9kcy1hc3luYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMtYXN5bmMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIxIEBACitUZXN0cyBmb3IgYnVnIDM4
MTIgLSBHRVQgYW5kIFBPU1Qgc2hvdWxkIG5vdCBiZSB0aGUgb25seSBIVFRQIG1ldGhvZHMgaW1w
bGVtZW50ZWQgaW4gWE1MSHR0cFJlcXVlc3QuCisKK0dFVCgiIik6IEdFVCh1bmRlZmluZWQgYnl0
ZXMpLCBDb250ZW50LVR5cGU6IHVuZGVmaW5lZAorR0VUKG51bGwpOiBHRVQodW5kZWZpbmVkIGJ5
dGVzKSwgQ29udGVudC1UeXBlOiB1bmRlZmluZWQKK0dFVCgiMTIzIik6IEdFVCh1bmRlZmluZWQg
Ynl0ZXMpLCBDb250ZW50LVR5cGU6IHVuZGVmaW5lZAorUE9TVCgiIik6IFBPU1QoMCBieXRlcyks
IENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veG1sCitQT1NUKG51bGwpOiBQT1NUKDAgYnl0ZXMp
LCBDb250ZW50LVR5cGU6IHVuZGVmaW5lZAorUE9TVCgiMTIzIik6IFBPU1QoMyBieXRlcyksIENv
bnRlbnQtVHlwZTogYXBwbGljYXRpb24veG1sCitQVVQoIiIpOiBQVVQoMCBieXRlcyksIENvbnRl
bnQtVHlwZTogYXBwbGljYXRpb24veG1sCitQVVQobnVsbCk6IFBVVCgwIGJ5dGVzKSwgQ29udGVu
dC1UeXBlOiB1bmRlZmluZWQKK1BVVCgiMTIzIik6IFBVVCgzIGJ5dGVzKSwgQ29udGVudC1UeXBl
OiBhcHBsaWNhdGlvbi94bWwKK0RFTEVURSgiIik6IERFTEVURSgwIGJ5dGVzKSwgQ29udGVudC1U
eXBlOiBhcHBsaWNhdGlvbi94bWwKK0RFTEVURShudWxsKTogREVMRVRFKDAgYnl0ZXMpLCBDb250
ZW50LVR5cGU6IHVuZGVmaW5lZAorREVMRVRFKCIxMjMiKTogREVMRVRFKDMgYnl0ZXMpLCBDb250
ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3htbAorV0tGT09CQVIoIiIpOiBXS0ZPT0JBUigwIGJ5dGVz
KSwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94bWwKK1dLRk9PQkFSKG51bGwpOiBXS0ZPT0JB
UigwIGJ5dGVzKSwgQ29udGVudC1UeXBlOiB1bmRlZmluZWQKK1dLRk9PQkFSKCIxMjMiKTogV0tG
T09CQVIoMyBieXRlcyksIENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veG1sCitTRUFSQ0goIiIp
OiBTRUFSQ0goMCBieXRlcyksIENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veG1sCitTRUFSQ0go
bnVsbCk6IFNFQVJDSCgwIGJ5dGVzKSwgQ29udGVudC1UeXBlOiB1bmRlZmluZWQKK1NFQVJDSCgi
MTIzIik6IFNFQVJDSCgzIGJ5dGVzKSwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94bWwKKwpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9tZXRob2RzLmNnaQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhv
ZHMuY2dpCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9tZXRob2RzLmNnaQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNiBAQAorIyEvdXNyL2Jp
bi9wZXJsIC13CisKK3ByaW50ICJDb250ZW50LXR5cGU6IHRleHQvcGxhaW5cbiI7IAorcHJpbnQg
IkNvbnRlbnQtTGVuZ3RoOiAwXG4iOworbXkgJGNsID0gJEVOVnsnQ09OVEVOVF9MRU5HVEgnfTsK
K215ICRjdCA9ICRFTlZ7J0NPTlRFTlRfVFlQRSd9OworbXkgJG1ldGhvZCA9ICRFTlZ7J1JFUVVF
U1RfTUVUSE9EJ307CitpZiAoZGVmaW5lZCAkY2wpIHsKKyAgICBwcmludCAiUkVRTEVOR1RIOiAk
Y2xcbiI7Cit9CitpZiAoZGVmaW5lZCAkY3QpIHsKKyAgICBwcmludCAiUkVRVFlQRTogJGN0XG4i
OworfQorcHJpbnQgIlJFUU1FVEhPRDogJG1ldGhvZFxuIjsKKworcHJpbnQgIlxuIjsKClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0
aG9kcy5jZ2kKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
bWV0aG9kcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwNyBAQAorPGh0bWw+Cis8Ym9k
eT4KKzxwPlRlc3RzIGZvciA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcv
c2hvd19idWcuY2dpP2lkPTM4MTIiPiBidWcgMzgxMjwvYT4gLSAKK0dFVCBhbmQgUE9TVCBzaG91
bGQgbm90IGJlIHRoZSBvbmx5IEhUVFAgbWV0aG9kcyBpbXBsZW1lbnRlZCBpbiBYTUxIdHRwUmVx
dWVzdC48L3A+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAKKyAgICB2
YXIgY29uc29sZV9tZXNzYWdlcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb25zb2xlX21lc3NhZ2VzKTsKKyAgICAKKyAgICBm
dW5jdGlvbiBsb2cobWVzc2FnZSkKKyAgICB7CisgICAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgICAgIGNvbnNvbGVfbWVzc2FnZXMuYXBwZW5k
Q2hpbGQoaXRlbSk7CisgICAgfQorCisgICAgLy8gc3luYworICAgIHJlcSA9IG5ldyBYTUxIdHRw
UmVxdWVzdDsKKyAgICByZXEub3BlbigiR0VUIiwgIm1ldGhvZHMuY2dpIiwgZmFsc2UpOworICAg
IHJlcS5zZW5kKCIiKTsKKyAgICBsb2coJ0dFVCgiIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFk
ZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgi
KSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJF
UVRZUEUiKSk7CisKKyAgICByZXEub3BlbigiR0VUIiwgIm1ldGhvZHMuY2dpIiwgZmFsc2UpOwor
ICAgIHJlcS5zZW5kKG51bGwpOworICAgIGxvZygnR0VUKG51bGwpOiAnICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVR
TEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVh
ZGVyKCJSRVFUWVBFIikpOworCisgICAgcmVxLm9wZW4oIkdFVCIsICJtZXRob2RzLmNnaSIsIGZh
bHNlKTsKKyAgICByZXEuc2VuZCgiMTIzIik7CisgICAgbG9nKCdHRVQoIjEyMyIpOiAnICsgcmVx
LmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhl
YWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJl
c3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworCisgICAgcmVxLm9wZW4oIlBPU1QiLCAibWV0aG9k
cy5jZ2kiLCBmYWxzZSk7CisgICAgcmVxLnNlbmQoIiIpOworICAgIGxvZygnUE9TVCgiIik6ICcg
KyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEu
Z2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisKKyAgICByZXEub3BlbigiUE9TVCIsICJt
ZXRob2RzLmNnaSIsIGZhbHNlKTsKKyAgICByZXEuc2VuZChudWxsKTsKKyAgICBsb2coJ1BPU1Qo
bnVsbCk6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVx
LmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6
ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisKKyAgICByZXEub3Blbigi
UE9TVCIsICJtZXRob2RzLmNnaSIsIGZhbHNlKTsKKyAgICByZXEuc2VuZCgiMTIzIik7CisgICAg
bG9nKCdQT1NUKCIxMjMiKTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikg
KyAiKCIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENv
bnRlbnQtVHlwZTogIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKworICAg
IHJlcS5vcGVuKCJQVVQiLCAibWV0aG9kcy5jZ2kiLCBmYWxzZSk7CisgICAgcmVxLnNlbmQoIiIp
OworICAgIGxvZygnUFVUKCIiKTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9E
IikgKyAiKCIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyks
IENvbnRlbnQtVHlwZTogIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKwor
ICAgIHJlcS5vcGVuKCJQVVQiLCAibWV0aG9kcy5jZ2kiLCBmYWxzZSk7CisgICAgcmVxLnNlbmQo
bnVsbCk7CisgICAgbG9nKCdQVVQobnVsbCk6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJF
UU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIg
Ynl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUi
KSk7CisKKyAgICByZXEub3BlbigiUFVUIiwgIm1ldGhvZHMuY2dpIiwgZmFsc2UpOworICAgIHJl
cS5zZW5kKCIxMjMiKTsKKyAgICBsb2coJ1BVVCgiMTIzIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VI
ZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5H
VEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIo
IlJFUVRZUEUiKSk7CisKKyAgICByZXEub3BlbigiREVMRVRFIiwgIm1ldGhvZHMuY2dpIiwgZmFs
c2UpOworICAgIHJlcS5zZW5kKCIiKTsKKyAgICBsb2coJ0RFTEVURSgiIik6ICcgKyByZXEuZ2V0
UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVy
KCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9u
c2VIZWFkZXIoIlJFUVRZUEUiKSk7CisKKyAgICByZXEub3BlbigiREVMRVRFIiwgIm1ldGhvZHMu
Y2dpIiwgZmFsc2UpOworICAgIHJlcS5zZW5kKG51bGwpOworICAgIGxvZygnREVMRVRFKG51bGwp
OiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRS
ZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsg
cmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworCisgICAgcmVxLm9wZW4oIkRFTEVU
RSIsICJtZXRob2RzLmNnaSIsIGZhbHNlKTsKKyAgICByZXEuc2VuZCgiMTIzIik7CisgICAgbG9n
KCdERUxFVEUoIjEyMyIpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSAr
ICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29u
dGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworLyoKKyAg
ICByZXEub3BlbigiSEVBRCIsICJtZXRob2RzLmNnaSIsIGZhbHNlKTsKKyAgICByZXEuc2VuZCgi
Iik7CisgICAgbG9nKCdIRUFEKCIiKTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVU
SE9EIikgKyAiKCIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRl
cyksIENvbnRlbnQtVHlwZTogIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsK
KworICAgIHJlcS5vcGVuKCJIRUFEIiwgIm1ldGhvZHMuY2dpIiwgZmFsc2UpOworICAgIHJlcS5z
ZW5kKG51bGwpOworICAgIGxvZygnSEVBRChudWxsKTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRl
cigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIp
ICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVR
VFlQRSIpKTsKKworICAgIHJlcS5vcGVuKCJIRUFEIiwgIm1ldGhvZHMuY2dpIiwgZmFsc2UpOwor
ICAgIHJlcS5zZW5kKCIxMjMiKTsKKyAgICBsb2coJ0hFQUQoIjEyMyIpOiAnICsgcmVxLmdldFJl
c3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigi
UkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNl
SGVhZGVyKCJSRVFUWVBFIikpOworKi8KKyAgICByZXEub3BlbigiV0tGT09CQVIiLCAibWV0aG9k
cy5jZ2kiLCBmYWxzZSk7CisgICAgcmVxLnNlbmQoIiIpOworICAgIGxvZygnV0tGT09CQVIoIiIp
OiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRS
ZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsg
cmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworCisgICAgcmVxLm9wZW4oIldLRk9P
QkFSIiwgIm1ldGhvZHMuY2dpIiwgZmFsc2UpOworICAgIHJlcS5zZW5kKG51bGwpOworICAgIGxv
ZygnV0tGT09CQVIobnVsbCk6ICcgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIp
ICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBD
b250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUVRZUEUiKSk7CisKKyAg
ICByZXEub3BlbigiV0tGT09CQVIiLCAibWV0aG9kcy5jZ2kiLCBmYWxzZSk7CisgICAgcmVxLnNl
bmQoIjEyMyIpOworICAgIGxvZygnV0tGT09CQVIoIjEyMyIpOiAnICsgcmVxLmdldFJlc3BvbnNl
SGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTEVO
R1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVy
KCJSRVFUWVBFIikpOworCisgICAgcmVxLm9wZW4oIlNFQVJDSCIsICJtZXRob2RzLmNnaSIsIGZh
bHNlKTsKKyAgICByZXEuc2VuZCgiIik7CisgICAgbG9nKCdTRUFSQ0goIiIpOiAnICsgcmVxLmdl
dFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhlYWRl
cigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCJSRVFUWVBFIikpOworCisgICAgcmVxLm9wZW4oIlNFQVJDSCIsICJtZXRob2Rz
LmNnaSIsIGZhbHNlKTsKKyAgICByZXEuc2VuZChudWxsKTsKKyAgICBsb2coJ1NFQVJDSChudWxs
KTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0
UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiAr
IHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKworICAgIHJlcS5vcGVuKCJTRUFS
Q0giLCAibWV0aG9kcy5jZ2kiLCBmYWxzZSk7CisgICAgcmVxLnNlbmQoIjEyMyIpOworICAgIGxv
ZygnU0VBUkNIKCIxMjMiKTogJyArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikg
KyAiKCIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENv
bnRlbnQtVHlwZTogIiArIHJlcS5nZXRSZXNwb25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2Vi
U3VicmVzb3VyY2VMb2FkZXIubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViQ29yZVN1cHBvcnQv
V2ViU3VicmVzb3VyY2VMb2FkZXIubQkocmV2aXNpb24gMTMwNTQpCisrKyBXZWJLaXQvV2ViQ29y
ZVN1cHBvcnQvV2ViU3VicmVzb3VyY2VMb2FkZXIubQkod29ya2luZyBjb3B5KQpAQCAtOTksMTIg
Kzk5LDE1IEBACiB9CiAKICsgKFdlYlN1YnJlc291cmNlTG9hZGVyICopc3RhcnRMb2FkaW5nUmVz
b3VyY2U6KGlkIDxXZWJDb3JlUmVzb3VyY2VMb2FkZXI+KXJMb2FkZXIKLQkJCQkgICAgICAgd2l0
aFVSTDooTlNVUkwgKilVUkwKLQkJCQkgY3VzdG9tSGVhZGVyczooTlNEaWN0aW9uYXJ5ICopY3Vz
dG9tSGVhZGVycwotCQkJCSAgICAgIHJlZmVycmVyOihOU1N0cmluZyAqKXJlZmVycmVyCi0JCQkJ
IGZvckRhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilzb3VyY2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpdGhNZXRob2Q6KE5TU3RyaW5nICopbWV0aG9kIAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTDooTlNVUkwgKilVUkwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUhlYWRlcnM6KE5TRGljdGlvbmFy
eSAqKWN1c3RvbUhlYWRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVmZXJyZXI6KE5TU3RyaW5nICopcmVmZXJyZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvckRhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilzb3VyY2UKIHsKICAgICBOU011
dGFibGVVUkxSZXF1ZXN0ICpuZXdSZXF1ZXN0ID0gW1tOU011dGFibGVVUkxSZXF1ZXN0IGFsbG9j
XSBpbml0V2l0aFVSTDpVUkxdOworICAgIFtuZXdSZXF1ZXN0IHNldEhUVFBNZXRob2Q6bWV0aG9k
XTsKKwogICAgIFdlYlN1YnJlc291cmNlTG9hZGVyICpsb2FkZXIgPSBbc2VsZiBzdGFydExvYWRp
bmdSZXNvdXJjZTpyTG9hZGVyIHdpdGhSZXF1ZXN0Om5ld1JlcXVlc3QgY3VzdG9tSGVhZGVyczpj
dXN0b21IZWFkZXJzIHJlZmVycmVyOnJlZmVycmVyIGZvckRhdGFTb3VyY2U6c291cmNlXTsKICAg
ICBbbmV3UmVxdWVzdCByZWxlYXNlXTsKIApAQCAtMTEyLDE1ICsxMTUsMTYgQEAKIH0KIAogKyAo
V2ViU3VicmVzb3VyY2VMb2FkZXIgKilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQgPFdlYkNvcmVS
ZXNvdXJjZUxvYWRlcj4pckxvYWRlcgotCQkJCSAgICAgICB3aXRoVVJMOihOU1VSTCAqKVVSTAot
CQkJCSBjdXN0b21IZWFkZXJzOihOU0RpY3Rpb25hcnkgKiljdXN0b21IZWFkZXJzCi0JCQkJICAg
ICAgcG9zdERhdGE6KE5TQXJyYXkgKilwb3N0RGF0YQotCQkJCSAgICAgIHJlZmVycmVyOihOU1N0
cmluZyAqKXJlZmVycmVyCi0JCQkJIGZvckRhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilzb3Vy
Y2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhNZXRob2Q6KE5TU3Ry
aW5nICopbWV0aG9kIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVSTDooTlNVUkwgKilVUkwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3Rv
bUhlYWRlcnM6KE5TRGljdGlvbmFyeSAqKWN1c3RvbUhlYWRlcnMKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9zdERhdGE6KE5TQXJyYXkgKilwb3N0RGF0YQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlcjooTlNTdHJpbmcgKilyZWZl
cnJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yRGF0YVNvdXJjZTooV2Vi
RGF0YVNvdXJjZSAqKXNvdXJjZQogewogICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKm5ld1JlcXVl
c3QgPSBbW05TTXV0YWJsZVVSTFJlcXVlc3QgYWxsb2NdIGluaXRXaXRoVVJMOlVSTF07CiAKLSAg
ICBbbmV3UmVxdWVzdCBzZXRIVFRQTWV0aG9kOkAiUE9TVCJdOworICAgIFtuZXdSZXF1ZXN0IHNl
dEhUVFBNZXRob2Q6bWV0aG9kXTsKICAgICB3ZWJTZXRIVFRQQm9keShuZXdSZXF1ZXN0LCBwb3N0
RGF0YSk7CiAKICAgICBXZWJTdWJyZXNvdXJjZUxvYWRlciAqbG9hZGVyID0gW3NlbGYgc3RhcnRM
b2FkaW5nUmVzb3VyY2U6ckxvYWRlciB3aXRoUmVxdWVzdDpuZXdSZXF1ZXN0IGN1c3RvbUhlYWRl
cnM6Y3VzdG9tSGVhZGVycyByZWZlcnJlcjpyZWZlcnJlciBmb3JEYXRhU291cmNlOnNvdXJjZV07
CkluZGV4OiBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVCcmlkZ2UubQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVCcmlkZ2UubQkocmV2aXNpb24gMTMw
NTQpCisrKyBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVCcmlkZ2UubQkod29ya2luZyBj
b3B5KQpAQCAtNDc4LDcgKzQ3OCw3IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250YWluZXJLZXkg
PSAgIEAiV2UKICAgICBbc2VsZiBhZGREYXRhOmRhdGFdOwogfQogCi0tIChpZCA8V2ViQ29yZVJl
c291cmNlSGFuZGxlPilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQgPFdlYkNvcmVSZXNvdXJjZUxv
YWRlcj4pcmVzb3VyY2VMb2FkZXIgd2l0aFVSTDooTlNVUkwgKilVUkwgY3VzdG9tSGVhZGVyczoo
TlNEaWN0aW9uYXJ5ICopY3VzdG9tSGVhZGVycworLSAoaWQgPFdlYkNvcmVSZXNvdXJjZUhhbmRs
ZT4pc3RhcnRMb2FkaW5nUmVzb3VyY2U6KGlkIDxXZWJDb3JlUmVzb3VyY2VMb2FkZXI+KXJlc291
cmNlTG9hZGVyIHdpdGhNZXRob2Q6KE5TU3RyaW5nICopbWV0aG9kIFVSTDooTlNVUkwgKilVUkwg
Y3VzdG9tSGVhZGVyczooTlNEaWN0aW9uYXJ5ICopY3VzdG9tSGVhZGVycwogewogICAgIC8vIElm
IHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBXZWJWaWV3LCB0aGlzIG11c3QgYmUgYW4g
YXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgogICAgIC8vIG9uVW5sb2FkIGhhbmRsZXIsIHNvIGxldCdz
IGp1c3QgYmxvY2sgaXQuCkBAIC00OTEsMTMgKzQ5MSwxNCBAQCBOU1N0cmluZyAqV2ViUGx1Z2lu
Q29udGFpbmVyS2V5ID0gICBAIldlCiAgICAgW3NlbGYgY2FuTG9hZFVSTDpVUkwgZnJvbVJlZmVy
cmVyOltzZWxmIHJlZmVycmVyXSBoaWRlUmVmZXJyZXI6JmhpZGVSZWZlcnJlcl07CiAKICAgICBy
ZXR1cm4gW1dlYlN1YnJlc291cmNlTG9hZGVyIHN0YXJ0TG9hZGluZ1Jlc291cmNlOnJlc291cmNl
TG9hZGVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0
aFVSTDpVUkwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRo
TWV0aG9kOm1ldGhvZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBVUkw6VVJMCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3VzdG9tSGVhZGVyczpjdXN0b21IZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWZlcnJlcjooaGlkZVJlZmVycmVyID8gbmlsIDogW3NlbGYgcmVm
ZXJyZXJdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvckRhdGFT
b3VyY2U6W3NlbGYgZGF0YVNvdXJjZV1dOwogfQogCi0tIChpZCA8V2ViQ29yZVJlc291cmNlSGFu
ZGxlPilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQgPFdlYkNvcmVSZXNvdXJjZUxvYWRlcj4pcmVz
b3VyY2VMb2FkZXIgd2l0aFVSTDooTlNVUkwgKilVUkwgY3VzdG9tSGVhZGVyczooTlNEaWN0aW9u
YXJ5ICopY3VzdG9tSGVhZGVycyBwb3N0RGF0YTooTlNBcnJheSAqKXBvc3REYXRhCistIChpZCA8
V2ViQ29yZVJlc291cmNlSGFuZGxlPilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQgPFdlYkNvcmVS
ZXNvdXJjZUxvYWRlcj4pcmVzb3VyY2VMb2FkZXIgd2l0aE1ldGhvZDooTlNTdHJpbmcgKiltZXRo
b2QgVVJMOihOU1VSTCAqKVVSTCBjdXN0b21IZWFkZXJzOihOU0RpY3Rpb25hcnkgKiljdXN0b21I
ZWFkZXJzIHBvc3REYXRhOihOU0FycmF5ICopcG9zdERhdGEKIHsKICAgICAvLyBJZiB3ZSBhcmUg
bm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgV2ViVmlldywgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRl
ZCBsb2FkIGZyb20gYW4KICAgICAvLyBvblVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJs
b2NrIGl0LgpAQCAtNTEwLDggKzUxMSw5IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250YWluZXJL
ZXkgPSAgIEAiV2UKICAgICBbc2VsZiBjYW5Mb2FkVVJMOlVSTCBmcm9tUmVmZXJyZXI6W3NlbGYg
cmVmZXJyZXJdIGhpZGVSZWZlcnJlcjomaGlkZVJlZmVycmVyXTsKIAogICAgIHJldHVybiBbV2Vi
U3VicmVzb3VyY2VMb2FkZXIgc3RhcnRMb2FkaW5nUmVzb3VyY2U6cmVzb3VyY2VMb2FkZXIKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoVVJMOlVSTAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21IZWFkZXJzOmN1
c3RvbUhlYWRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aXRoTWV0aG9kOm1ldGhvZCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVVJMOlVSTAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGN1c3RvbUhlYWRlcnM6Y3VzdG9tSGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9zdERhdGE6cG9zdERhdGEKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVycmVyOihoaWRlUmVmZXJyZXIgPyBuaWwg
OiBbc2VsZiByZWZlcnJlcl0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZm9yRGF0YVNvdXJjZTpbc2VsZiBkYXRhU291cmNlXV07CkBAIC01MjgsNyArNTMwLDcgQEAg
TlNTdHJpbmcgKldlYlBsdWdpbkNvbnRhaW5lcktleSA9ICAgQCJXZQogICAgIFtyZXF1ZXN0IHJl
bGVhc2VdOwogfQogCi0tIChOU0RhdGEgKilzeW5jTG9hZFJlc291cmNlV2l0aFVSTDooTlNVUkwg
KilVUkwgY3VzdG9tSGVhZGVyczooTlNEaWN0aW9uYXJ5ICopcmVxdWVzdEhlYWRlcnMgcG9zdERh
dGE6KE5TQXJyYXkgKilwb3N0RGF0YSBmaW5hbFVSTDooTlNVUkwgKiopZmluYWxVUkwgcmVzcG9u
c2VIZWFkZXJzOihOU0RpY3Rpb25hcnkgKiopcmVzcG9uc2VIZWFkZXJEaWN0IHN0YXR1c0NvZGU6
KGludCAqKXN0YXR1c0NvZGUKKy0gKE5TRGF0YSAqKXN5bmNMb2FkUmVzb3VyY2VXaXRoTWV0aG9k
OihOU1N0cmluZyAqKW1ldGhvZCBVUkw6KE5TVVJMICopVVJMIGN1c3RvbUhlYWRlcnM6KE5TRGlj
dGlvbmFyeSAqKXJlcXVlc3RIZWFkZXJzIHBvc3REYXRhOihOU0FycmF5ICopcG9zdERhdGEgZmlu
YWxVUkw6KE5TVVJMICoqKWZpbmFsVVJMIHJlc3BvbnNlSGVhZGVyczooTlNEaWN0aW9uYXJ5ICoq
KXJlc3BvbnNlSGVhZGVyRGljdCBzdGF0dXNDb2RlOihpbnQgKilzdGF0dXNDb2RlCiB7CiAgICAg
Ly8gU2luY2UgdGhpcyBpcyBhIHN1YnJlc291cmNlLCB3ZSBjYW4gbG9hZCBhbnkgVVJMICh3ZSBp
Z25vcmUgdGhlIHJldHVybiB2YWx1ZSkuCiAgICAgLy8gQnV0IHdlIHN0aWxsIHdhbnQgdG8ga25v
dyB3aGV0aGVyIHdlIHNob3VsZCBoaWRlIHRoZSByZWZlcnJlciBvciBub3QsIHNvIHdlIGNhbGwg
dGhlIGNhbkxvYWRVUkwgbWV0aG9kLgpAQCAtNTM4LDEwICs1NDAsOSBAQCBOU1N0cmluZyAqV2Vi
UGx1Z2luQ29udGFpbmVyS2V5ID0gICBAIldlCiAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqcmVx
dWVzdCA9IFtbTlNNdXRhYmxlVVJMUmVxdWVzdCBhbGxvY10gaW5pdFdpdGhVUkw6VVJMXTsKICAg
ICBbcmVxdWVzdCBzZXRUaW1lb3V0SW50ZXJ2YWw6MTBdOwogCi0gICAgaWYgKHBvc3REYXRhKSB7
Ci0gICAgICAgIFtyZXF1ZXN0IHNldEhUVFBNZXRob2Q6QCJQT1NUIl07CisgICAgW3JlcXVlc3Qg
c2V0SFRUUE1ldGhvZDptZXRob2RdOworICAgIGlmIChwb3N0RGF0YSkgICAgICAgIAogICAgICAg
ICB3ZWJTZXRIVFRQQm9keShyZXF1ZXN0LCBwb3N0RGF0YSk7Ci0gICAgfQogCiAgICAgTlNFbnVt
ZXJhdG9yICplID0gW3JlcXVlc3RIZWFkZXJzIGtleUVudW1lcmF0b3JdOwogICAgIE5TU3RyaW5n
ICprZXk7CkluZGV4OiBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViU3VicmVzb3VyY2VMb2FkZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViU3VicmVzb3VyY2VMb2Fk
ZXIuaAkocmV2aXNpb24gMTMwNTQpCisrKyBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViU3VicmVz
b3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTMgKzQzLDE1IEBACiAtICh2b2lk
KXNpZ25hbEZpbmlzaDsKIAogKyAoV2ViU3VicmVzb3VyY2VMb2FkZXIgKilzdGFydExvYWRpbmdS
ZXNvdXJjZTooaWQgPFdlYkNvcmVSZXNvdXJjZUxvYWRlcj4pckxvYWRlcgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFVSTDooTlNVUkwgKilVUkwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoTWV0aG9kOihOU1N0cmluZyAqKW1ldGhv
ZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTDooTlNVUkwg
KilVUkwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21IZWFkZXJzOihO
U0RpY3Rpb25hcnkgKiljdXN0b21IZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlZmVycmVyOihOU1N0cmluZyAqKXJlZmVycmVyIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yRGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKXNvdXJjZTsK
IAogKyAoV2ViU3VicmVzb3VyY2VMb2FkZXIgKilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQgPFdl
YkNvcmVSZXNvdXJjZUxvYWRlcj4pckxvYWRlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2l0aFVSTDooTlNVUkwgKilVUkwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aXRoTWV0aG9kOihOU1N0cmluZyAqKW1ldGhvZAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTDooTlNVUkwgKilVUkwgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21IZWFkZXJzOihOU0RpY3Rpb25hcnkgKilj
dXN0b21IZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RE
YXRhOihOU0FycmF5ICopcG9zdERhdGEgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlZmVycmVyOihOU1N0cmluZyAqKXJlZmVycmVyIApJbmRleDogV2ViQ29yZS9raHRt
bC9lY21hL0pTWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva2h0bWwv
ZWNtYS9KU1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gMTMwNTQpCisrKyBXZWJDb3JlL2to
dG1sL2VjbWEvSlNYTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMiw4ICsy
MjIsMTAgQEAgSlNWYWx1ZSogSlNYTUxIdHRwUmVxdWVzdFByb3RvRnVuYzo6Y2FsbAogICAgICAg
ICAgIGJvZHkgPSBkb2MtPnRvU3RyaW5nKCkucXN0cmluZygpOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgIC8vIGNvbnZlcnRpbmcgY2VydGFpbiB2YWx1ZXMgKGxpa2UgbnVsbCkgdG8gb2Jq
ZWN0IGNhbiBzZXQgYW4gZXhjZXB0aW9uCi0gICAgICAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24o
KTsKLSAgICAgICAgICBib2R5ID0gYXJnc1swXS0+dG9TdHJpbmcoZXhlYykuZG9tU3RyaW5nKCk7
CisgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgZXhlYy0+
Y2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBib2R5ID0gYXJn
c1swXS0+dG9TdHJpbmcoZXhlYykuZG9tU3RyaW5nKCk7CiAgICAgICAgIH0KICAgICAgIH0KIApJ
bmRleDogV2ViQ29yZS9raHRtbC94c2wveHNsdF9wcm9jZXNzb3JpbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2todG1sL3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuY3BwCShyZXZpc2lvbiAx
MzA1NCkKKysrIFdlYkNvcmUva2h0bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1wbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTg4LDcgKzg4LDcgQEAgc3RhdGljIHhtbERvY1B0ciBkb2NMb2FkZXJGdW5j
KGNvbnN0IHhtbAogICAgICAgICAgICAgS1VSTCB1cmwoKGNvbnN0IGNoYXIqKWJhc2UsIChjb25z
dCBjaGFyKil1cmkpOwogICAgICAgICAgICAgeG1sRnJlZShiYXNlKTsKICAgICAgICAgICAgIEtV
UkwgZmluYWxVUkw7Ci0gICAgICAgICAgICBUcmFuc2ZlckpvYiogam9iID0gbmV3IFRyYW5zZmVy
Sm9iKDAsIHVybCk7CisgICAgICAgICAgICBUcmFuc2ZlckpvYiogam9iID0gbmV3IFRyYW5zZmVy
Sm9iKCJHRVQiLCAwLCB1cmwpOwogICAgICAgICAgICAgUVN0cmluZyBoZWFkZXJzOwogICAgICAg
ICAgICAgeG1sR2VuZXJpY0Vycm9yRnVuYyBvbGRFcnJvckZ1bmMgPSB4bWxHZW5lcmljRXJyb3I7
CiAgICAgICAgICAgICB2b2lkICpvbGRFcnJvckNvbnRleHQgPSB4bWxHZW5lcmljRXJyb3JDb250
ZXh0OwpJbmRleDogV2ViQ29yZS9kb20veG1sX3Rva2VuaXplci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9kb20veG1sX3Rva2VuaXplci5jcHAJKHJldmlzaW9uIDEzMDU0KQorKysgV2ViQ29y
ZS9kb20veG1sX3Rva2VuaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MSw3ICsxODEsNyBA
QCBzdGF0aWMgdm9pZCogb3BlbkZ1bmMoY29uc3QgY2hhciogdXJpKQogICAgICAgICByZXR1cm4g
Jmdsb2JhbERlc2NyaXB0b3I7CiAKICAgICBLVVJMIGZpbmFsVVJMOwotICAgIFRyYW5zZmVySm9i
KiBqb2IgPSBuZXcgVHJhbnNmZXJKb2IoMCwgdXJpKTsKKyAgICBUcmFuc2ZlckpvYiogam9iID0g
bmV3IFRyYW5zZmVySm9iKCJHRVQiLCAwLCB1cmkpOwogICAgIFFTdHJpbmcgaGVhZGVyczsKICAg
ICBCeXRlQXJyYXkgZGF0YSA9IEtXUVNlcnZlU3luY2hyb25vdXNSZXF1ZXN0KENhY2hlOjpsb2Fk
ZXIoKSwgZ2xvYmFsRG9jTG9hZGVyLCBqb2IsIGZpbmFsVVJMLCBoZWFkZXJzKTsKICAgICAKSW5k
ZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3JlRnJhbWVCcmlkZ2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JyaWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLmgJKHJldmlzaW9uIDEzMDU0
KQorKysgV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVGcmFtZUJyaWRnZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01NDUsMTEgKzU0NSwxMSBAQCB0eXBlZGVmIGVudW0gewogLSAoQk9PTClydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlOwogLSAo
dm9pZClhZGRNZXNzYWdlVG9Db25zb2xlOihOU0RpY3Rpb25hcnkgKiltZXNzYWdlOwogCi0tIChp
ZCA8V2ViQ29yZVJlc291cmNlSGFuZGxlPilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQgPFdlYkNv
cmVSZXNvdXJjZUxvYWRlcj4pbG9hZGVyIHdpdGhVUkw6KE5TVVJMICopVVJMIGN1c3RvbUhlYWRl
cnM6KE5TRGljdGlvbmFyeSAqKWN1c3RvbUhlYWRlcnM7Ci0tIChpZCA8V2ViQ29yZVJlc291cmNl
SGFuZGxlPilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQgPFdlYkNvcmVSZXNvdXJjZUxvYWRlcj4p
bG9hZGVyIHdpdGhVUkw6KE5TVVJMICopVVJMIGN1c3RvbUhlYWRlcnM6KE5TRGljdGlvbmFyeSAq
KWN1c3RvbUhlYWRlcnMgcG9zdERhdGE6KE5TQXJyYXkgKilkYXRhOworLSAoaWQgPFdlYkNvcmVS
ZXNvdXJjZUhhbmRsZT4pc3RhcnRMb2FkaW5nUmVzb3VyY2U6KGlkIDxXZWJDb3JlUmVzb3VyY2VM
b2FkZXI+KWxvYWRlciB3aXRoTWV0aG9kOihOU1N0cmluZyAqKW1ldGhvZCBVUkw6KE5TVVJMICop
VVJMIGN1c3RvbUhlYWRlcnM6KE5TRGljdGlvbmFyeSAqKWN1c3RvbUhlYWRlcnM7CistIChpZCA8
V2ViQ29yZVJlc291cmNlSGFuZGxlPilzdGFydExvYWRpbmdSZXNvdXJjZTooaWQgPFdlYkNvcmVS
ZXNvdXJjZUxvYWRlcj4pbG9hZGVyIHdpdGhNZXRob2Q6KE5TU3RyaW5nICopbWV0aG9kIFVSTDoo
TlNVUkwgKilVUkwgY3VzdG9tSGVhZGVyczooTlNEaWN0aW9uYXJ5ICopY3VzdG9tSGVhZGVycyBw
b3N0RGF0YTooTlNBcnJheSAqKWRhdGE7CiAtICh2b2lkKW9iamVjdExvYWRlZEZyb21DYWNoZVdp
dGhVUkw6KE5TVVJMICopVVJMIHJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVzcG9uc2UgZGF0
YTooTlNEYXRhICopZGF0YTsKIAotLSAoTlNEYXRhICopc3luY0xvYWRSZXNvdXJjZVdpdGhVUkw6
KE5TVVJMICopVVJMIGN1c3RvbUhlYWRlcnM6KE5TRGljdGlvbmFyeSAqKXJlcXVlc3RIZWFkZXJz
IHBvc3REYXRhOihOU0FycmF5ICopcG9zdERhdGEgZmluYWxVUkw6KE5TVVJMICoqKWZpbmFsTlNV
UkwgcmVzcG9uc2VIZWFkZXJzOihOU0RpY3Rpb25hcnkgKiopcmVzcG9uc2VIZWFkZXJEaWN0IHN0
YXR1c0NvZGU6KGludCAqKXN0YXR1c0NvZGU7CistIChOU0RhdGEgKilzeW5jTG9hZFJlc291cmNl
V2l0aE1ldGhvZDooTlNTdHJpbmcgKiltZXRob2QgVVJMOihOU1VSTCAqKVVSTCBjdXN0b21IZWFk
ZXJzOihOU0RpY3Rpb25hcnkgKilyZXF1ZXN0SGVhZGVycyBwb3N0RGF0YTooTlNBcnJheSAqKXBv
c3REYXRhIGZpbmFsVVJMOihOU1VSTCAqKilmaW5hbE5TVVJMIHJlc3BvbnNlSGVhZGVyczooTlNE
aWN0aW9uYXJ5ICoqKXJlc3BvbnNlSGVhZGVyRGljdCBzdGF0dXNDb2RlOihpbnQgKilzdGF0dXND
b2RlOwogCiAtIChCT09MKWlzUmVsb2FkaW5nOwogLSAodGltZV90KWV4cGlyZXNUaW1lRm9yUmVz
cG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZTsKSW5kZXg6IFdlYkNvcmUveG1sL3htbGh0
dHByZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC94bWxodHRwcmVxdWVzdC5j
cHAJKHJldmlzaW9uIDEzMDU0KQorKysgV2ViQ29yZS94bWwveG1saHR0cHJlcXVlc3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2Vu
ZChjb25zdCBET01TdHJpbgogCiAgIGFib3J0ZWQgPSBmYWxzZTsKIAotICBpZiAobWV0aG9kLmxv
d2VyKCkgPT0gInBvc3QiICYmICh1cmwucHJvdG9jb2woKS5sb3dlcigpID09ICJodHRwIiB8fCB1
cmwucHJvdG9jb2woKS5sb3dlcigpID09ICJodHRwcyIpICkgeworICBpZiAoIV9ib2R5LmlzTnVs
bCgpICYmIG1ldGhvZC5sb3dlcigpICE9ICJnZXQiICYmIG1ldGhvZC5sb3dlcigpICE9ICJoZWFk
IiAmJiAodXJsLnByb3RvY29sKCkubG93ZXIoKSA9PSAiaHR0cCIgfHwgdXJsLnByb3RvY29sKCku
bG93ZXIoKSA9PSAiaHR0cHMiKSkgewogICAgICAgUVN0cmluZyBjb250ZW50VHlwZSA9IGdldFJl
cXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIpOwogICAgICAgUVN0cmluZyBjaGFyc2V0OwogICAg
ICAgaWYgKGNvbnRlbnRUeXBlLmlzRW1wdHkoKSkKQEAgLTI1NSwxMCArMjU1LDE1IEBAIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OnNlbmQoY29uc3QgRE9NU3RyaW4KICAgICAgIGlmICghZW5jb2Rpbmcu
aXNWYWxpZCgpKSAgIC8vIEZJWE1FOiByZXBvcnQgYW4gZXJyb3I/CiAgICAgICAgIGVuY29kaW5n
ID0gVGV4dEVuY29kaW5nKFVURjhFbmNvZGluZyk7CiAKLSAgICAgIGpvYiA9IG5ldyBUcmFuc2Zl
ckpvYihhc3luYyA/IHRoaXMgOiAwLCB1cmwsIGVuY29kaW5nLmZyb21Vbmljb2RlKF9ib2R5LnFz
dHJpbmcoKSkpOworICAgICAgam9iID0gbmV3IFRyYW5zZmVySm9iKG1ldGhvZCwgYXN5bmMgPyB0
aGlzIDogMCwgdXJsLCBlbmNvZGluZy5mcm9tVW5pY29kZShfYm9keS5xc3RyaW5nKCkpKTsKKyAg
fSBlbHNlIHsKKyAgICAgLy8gSEVBRCByZXF1ZXN0cyBqdXN0IGNyYXNoOyBzZWUgPHJkYXI6Ly80
NDYwODk5PiBhbmQgdGhlIGNvbW1lbnRlZCBvdXQgdGVzdHMgaW4gaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9tZXRob2RzLmh0bWwuCisgICAgIGlmIChtZXRob2QubG93ZXIoKSA9PSAiaGVhZCIp
CisgICAgICAgbWV0aG9kID0gIkdFVCI7CisKKyAgICAgam9iID0gbmV3IFRyYW5zZmVySm9iKG1l
dGhvZCwgYXN5bmMgPyB0aGlzIDogMCwgdXJsKTsKICAgfQotICBlbHNlCi0gICAgIGpvYiA9IG5l
dyBUcmFuc2ZlckpvYihhc3luYyA/IHRoaXMgOiAwLCB1cmwpOworCiAgIGlmIChyZXF1ZXN0SGVh
ZGVycy5sZW5ndGgoKSA+IDApCiAgICAgam9iLT5hZGRNZXRhRGF0YSgiY3VzdG9tSFRUUEhlYWRl
ciIsIHJlcXVlc3RIZWFkZXJzKTsKIApJbmRleDogV2ViQ29yZS9rd3EvS1dRTG9hZGVyLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUva3dxL0tXUUxvYWRlci5tbQkocmV2aXNpb24gMTMwNTQpCisr
KyBXZWJDb3JlL2t3cS9LV1FMb2FkZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTEzMSwxMSArMTMx
LDExIEBAIGJvb2wgS1dRU2VydmVSZXF1ZXN0KExvYWRlciAqbG9hZGVyLCBEb2MKICAgICAgICAg
aGVhZGVyRGljdCA9IFtOU0RpY3Rpb25hcnkgX3dlYmNvcmVfZGljdGlvbmFyeVdpdGhIZWFkZXJT
dHJpbmc6aGVhZGVyU3RyaW5nLmdldE5TU3RyaW5nKCldOwogICAgIH0KIAotICAgIGlmIChqb2It
Pm1ldGhvZCgpID09ICJQT1NUIikgewotICAgICAgICBoYW5kbGUgPSBbYnJpZGdlIHN0YXJ0TG9h
ZGluZ1Jlc291cmNlOnJlc291cmNlTG9hZGVyIHdpdGhVUkw6am9iLT51cmwoKS5nZXROU1VSTCgp
IGN1c3RvbUhlYWRlcnM6aGVhZGVyRGljdAorICAgIGlmIChqb2ItPnBvc3REYXRhKCkuY291bnQo
KSA+IDApIHsKKyAgICAgICAgaGFuZGxlID0gW2JyaWRnZSBzdGFydExvYWRpbmdSZXNvdXJjZTpy
ZXNvdXJjZUxvYWRlciB3aXRoTWV0aG9kOmpvYi0+bWV0aG9kKCkgVVJMOmpvYi0+dXJsKCkuZ2V0
TlNVUkwoKSBjdXN0b21IZWFkZXJzOmhlYWRlckRpY3QKICAgICAgICAgICAgIHBvc3REYXRhOmFy
cmF5RnJvbUZvcm1EYXRhKGpvYi0+cG9zdERhdGEoKSldOwogICAgIH0gZWxzZSB7Ci0gICAgICAg
IGhhbmRsZSA9IFticmlkZ2Ugc3RhcnRMb2FkaW5nUmVzb3VyY2U6cmVzb3VyY2VMb2FkZXIgd2l0
aFVSTDpqb2ItPnVybCgpLmdldE5TVVJMKCkgY3VzdG9tSGVhZGVyczpoZWFkZXJEaWN0XTsKKyAg
ICAgICAgaGFuZGxlID0gW2JyaWRnZSBzdGFydExvYWRpbmdSZXNvdXJjZTpyZXNvdXJjZUxvYWRl
ciB3aXRoTWV0aG9kOmpvYi0+bWV0aG9kKCkgVVJMOmpvYi0+dXJsKCkuZ2V0TlNVUkwoKSBjdXN0
b21IZWFkZXJzOmhlYWRlckRpY3RdOwogICAgIH0KICAgICBbcmVzb3VyY2VMb2FkZXIgc2V0SGFu
ZGxlOmhhbmRsZV07CiAgICAgW3Jlc291cmNlTG9hZGVyIHJlbGVhc2VdOwpAQCAtMTkwLDE0ICsx
OTAsMTMgQEAgQnl0ZUFycmF5IEtXUVNlcnZlU3luY2hyb25vdXNSZXF1ZXN0KExvYQogICAgIH0K
IAogICAgIE5TQXJyYXkgKnBvc3REYXRhID0gbmlsOwotICAgIGlmIChqb2ItPm1ldGhvZCgpID09
ICJQT1NUIikgeworICAgIGlmIChqb2ItPnBvc3REYXRhKCkuY291bnQoKSA+IDApCiAgICAgICAg
IHBvc3REYXRhID0gYXJyYXlGcm9tRm9ybURhdGEoam9iLT5wb3N0RGF0YSgpKTsKLSAgICB9CiAK
ICAgICBOU1VSTCAqZmluYWxOU1VSTCA9IG5pbDsKICAgICBOU0RpY3Rpb25hcnkgKnJlc3BvbnNl
SGVhZGVyRGljdCA9IG5pbDsKICAgICBpbnQgc3RhdHVzQ29kZSA9IDA7Ci0gICAgTlNEYXRhICpy
ZXN1bHREYXRhID0gW2JyaWRnZSBzeW5jTG9hZFJlc291cmNlV2l0aFVSTDpqb2ItPnVybCgpLmdl
dE5TVVJMKCkgY3VzdG9tSGVhZGVyczpoZWFkZXJEaWN0IHBvc3REYXRhOnBvc3REYXRhIGZpbmFs
VVJMOiZmaW5hbE5TVVJMIHJlc3BvbnNlSGVhZGVyczomcmVzcG9uc2VIZWFkZXJEaWN0IHN0YXR1
c0NvZGU6JnN0YXR1c0NvZGVdOworICAgIE5TRGF0YSAqcmVzdWx0RGF0YSA9IFticmlkZ2Ugc3lu
Y0xvYWRSZXNvdXJjZVdpdGhNZXRob2Q6am9iLT5tZXRob2QoKSBVUkw6am9iLT51cmwoKS5nZXRO
U1VSTCgpIGN1c3RvbUhlYWRlcnM6aGVhZGVyRGljdCBwb3N0RGF0YTpwb3N0RGF0YSBmaW5hbFVS
TDomZmluYWxOU1VSTCByZXNwb25zZUhlYWRlcnM6JnJlc3BvbnNlSGVhZGVyRGljdCBzdGF0dXND
b2RlOiZzdGF0dXNDb2RlXTsKICAgICBbaGVhZGVyRGljdCByZWxlYXNlXTsKICAgICAKICAgICBq
b2ItPmtpbGwoKTsKSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLm1tCShyZXZpc2lvbiAxMzA1NCkKKysr
IFdlYkNvcmUva3dxL0tXUUtKb2JDbGFzc2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NCwyNiAr
NDQsMjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVHJhbnNmZXJKb2JQcml2YXRlCiB7
CiBwdWJsaWM6Ci0gICAgVHJhbnNmZXJKb2JQcml2YXRlKFRyYW5zZmVySm9iQ2xpZW50KiBjLCBj
b25zdCBLVVJMJiB1KQorICAgIFRyYW5zZmVySm9iUHJpdmF0ZShjb25zdCBTdHJpbmcmIG1ldGhv
ZCwgVHJhbnNmZXJKb2JDbGllbnQqIGMsIGNvbnN0IEtVUkwmIHUpCiAgICAgICAgIDogY2xpZW50
KGMpCiAgICAgICAgICwgc3RhdHVzKDApCiAgICAgICAgICwgbWV0YURhdGEoS1dRUmV0YWluTlNS
ZWxlYXNlKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToxN10p
KQogCSwgVVJMKHUpCiAJLCBsb2FkZXIobmlsKQotCSwgbWV0aG9kKCJHRVQiKQorCSwgbWV0aG9k
KG1ldGhvZCkKIAksIHJlc3BvbnNlKG5pbCkKICAgICAgICAgLCBhc3NlbWJsZWRSZXNwb25zZUhl
YWRlcnModHJ1ZSkKICAgICAgICAgLCByZXRyaWV2ZWRDaGFyc2V0KHRydWUpCiAgICAgewogICAg
IH0KIAotICAgIFRyYW5zZmVySm9iUHJpdmF0ZShUcmFuc2ZlckpvYkNsaWVudCogYywgY29uc3Qg
S1VSTCYgdSwgY29uc3QgRm9ybURhdGEmIHApCisgICAgVHJhbnNmZXJKb2JQcml2YXRlKGNvbnN0
IFN0cmluZyYgbWV0aG9kLCBUcmFuc2ZlckpvYkNsaWVudCogYywgY29uc3QgS1VSTCYgdSwgY29u
c3QgRm9ybURhdGEmIHApCiAgICAgICAgIDogY2xpZW50KGMpCiAgICAgICAgICwgc3RhdHVzKDAp
CiAgICAgICAgICwgbWV0YURhdGEoS1dRUmV0YWluTlNSZWxlYXNlKFtbTlNNdXRhYmxlRGljdGlv
bmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToxN10pKQogCSwgVVJMKHUpCiAJLCBsb2FkZXIo
bmlsKQotCSwgbWV0aG9kKCJQT1NUIikKKwksIG1ldGhvZChtZXRob2QpCiAJLCBwb3N0RGF0YShw
KQogCSwgcmVzcG9uc2UobmlsKQogCSwgYXNzZW1ibGVkUmVzcG9uc2VIZWFkZXJzKHRydWUpCkBA
IC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBtZXRhRGF0
YTsKICAgICBLVVJMIFVSTDsKICAgICBLV1FSZXNvdXJjZUxvYWRlciogbG9hZGVyOwotICAgIFFT
dHJpbmcgbWV0aG9kOworICAgIFN0cmluZyBtZXRob2Q7CiAgICAgRm9ybURhdGEgcG9zdERhdGE7
CiAKICAgICBOU1VSTFJlc3BvbnNlKiByZXNwb25zZTsKQEAgLTkzLDEzICs5MywxMyBAQCBwdWJs
aWM6CiAgICAgUVN0cmluZyByZXNwb25zZUhlYWRlcnM7CiB9OwogCi1UcmFuc2ZlckpvYjo6VHJh
bnNmZXJKb2IoVHJhbnNmZXJKb2JDbGllbnQqIGNsaWVudCwgY29uc3QgS1VSTCYgdXJsKQotICAg
IDogZChuZXcgVHJhbnNmZXJKb2JQcml2YXRlKGNsaWVudCwgdXJsKSkKK1RyYW5zZmVySm9iOjpU
cmFuc2ZlckpvYihjb25zdCBTdHJpbmcmIG1ldGhvZCwgVHJhbnNmZXJKb2JDbGllbnQqIGNsaWVu
dCwgY29uc3QgS1VSTCYgdXJsKQorICAgIDogZChuZXcgVHJhbnNmZXJKb2JQcml2YXRlKG1ldGhv
ZCwgY2xpZW50LCB1cmwpKQogewogfQogCi1UcmFuc2ZlckpvYjo6VHJhbnNmZXJKb2IoVHJhbnNm
ZXJKb2JDbGllbnQqIGNsaWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBGb3JtRGF0YSYgcG9z
dERhdGEpCi0gICAgOiBkKG5ldyBUcmFuc2ZlckpvYlByaXZhdGUoY2xpZW50LCB1cmwsIHBvc3RE
YXRhKSkKK1RyYW5zZmVySm9iOjpUcmFuc2ZlckpvYihjb25zdCBTdHJpbmcmIG1ldGhvZCwgVHJh
bnNmZXJKb2JDbGllbnQqIGNsaWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBGb3JtRGF0YSYg
cG9zdERhdGEpCisgICAgOiBkKG5ldyBUcmFuc2ZlckpvYlByaXZhdGUobWV0aG9kLCBjbGllbnQs
IHVybCwgcG9zdERhdGEpKQogewogfQogCkBAIC0yMTEsNyArMjExLDcgQEAgRm9ybURhdGEgVHJh
bnNmZXJKb2I6OnBvc3REYXRhKCkgY29uc3QKICAgICByZXR1cm4gZC0+cG9zdERhdGE7CiB9CiAK
LVFTdHJpbmcgVHJhbnNmZXJKb2I6Om1ldGhvZCgpIGNvbnN0CitTdHJpbmcgVHJhbnNmZXJKb2I6
Om1ldGhvZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGQtPm1ldGhvZDsKIH0KSW5kZXg6IFdlYkNv
cmUva3dxL0tXUUtKb2JDbGFzc2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rd3EvS1dRS0pv
YkNsYXNzZXMuaAkocmV2aXNpb24gMTMwNTQpCisrKyBXZWJDb3JlL2t3cS9LV1FLSm9iQ2xhc3Nl
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw4ICs0Nyw4IEBAIGNsYXNzIFRyYW5zZmVySm9iUHJp
dmF0ZTsKIAogY2xhc3MgVHJhbnNmZXJKb2IgewogcHVibGljOgotICAgIFRyYW5zZmVySm9iKFRy
YW5zZmVySm9iQ2xpZW50KiwgY29uc3QgS1VSTCYpOwotICAgIFRyYW5zZmVySm9iKFRyYW5zZmVy
Sm9iQ2xpZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IEZvcm1EYXRhJiBwb3N0RGF0YSk7CisgICAg
VHJhbnNmZXJKb2IoY29uc3QgU3RyaW5nJiBtZXRob2QsIFRyYW5zZmVySm9iQ2xpZW50KiwgY29u
c3QgS1VSTCYpOworICAgIFRyYW5zZmVySm9iKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBUcmFuc2Zl
ckpvYkNsaWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBGb3JtRGF0YSYgcG9zdERhdGEpOwogICAg
IH5UcmFuc2ZlckpvYigpOwogCiAgICAgaW50IGVycm9yKCkgY29uc3Q7CkBAIC02MSw3ICs2MSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGtpbGwoKTsKIAogICAgIEtVUkwgdXJsKCkgY29uc3Q7Ci0g
ICAgUVN0cmluZyBtZXRob2QoKSBjb25zdDsKKyAgICBTdHJpbmcgbWV0aG9kKCkgY29uc3Q7CiAg
ICAgRm9ybURhdGEgcG9zdERhdGEoKSBjb25zdDsKIAogI2lmIF9fQVBQTEVfXwpJbmRleDogV2Vi
Q29yZS9sb2FkZXIvbG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9sb2Fk
ZXIuY3BwCShyZXZpc2lvbiAxMzA1NCkKKysrIFdlYkNvcmUvbG9hZGVyL2xvYWRlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBMb2FkZXI6OnNlcnZlUGVuZGluZ1Jl
cXVlc3RzKCkKICAgUmVxdWVzdCAqcmVxID0gbV9yZXF1ZXN0c1BlbmRpbmcudGFrZSgwKTsKIAog
ICBLVVJMIHUocmVxLT5vYmplY3QtPnVybCgpLnFzdHJpbmcoKSk7Ci0gIFRyYW5zZmVySm9iKiBq
b2IgPSBuZXcgVHJhbnNmZXJKb2IodGhpcywgdSk7CisgIFRyYW5zZmVySm9iKiBqb2IgPSBuZXcg
VHJhbnNmZXJKb2IoIkdFVCIsIHRoaXMsIHUpOwogICAKICAgaWYgKCFyZXEtPm9iamVjdC0+YWNj
ZXB0KCkuaXNFbXB0eSgpKQogICAgICAgam9iLT5hZGRNZXRhRGF0YSgiYWNjZXB0IiwgcmVxLT5v
YmplY3QtPmFjY2VwdCgpKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMTMwNTQpCisrKyBXZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjQsMTAgKzIyNCwxMCBAQCBib29s
IEZyYW1lOjpkaWRPcGVuVVJMKGNvbnN0IEtVUkwgJnVybCkKICAgICAgZC0+bV9jYWNoZVBvbGlj
eSA9IEtJTzo6Q0NfVmVyaWZ5OwogCiAgIGlmIChhcmdzLmRvUG9zdCgpICYmIHVybC5wcm90b2Nv
bCgpLnN0YXJ0c1dpdGgoImh0dHAiKSkgewotICAgICAgZC0+bV9qb2IgPSBuZXcgVHJhbnNmZXJK
b2IodGhpcywgdXJsLCBhcmdzLnBvc3REYXRhKTsKKyAgICAgIGQtPm1fam9iID0gbmV3IFRyYW5z
ZmVySm9iKCJQT1NUIiwgdGhpcywgdXJsLCBhcmdzLnBvc3REYXRhKTsKICAgICAgIGQtPm1fam9i
LT5hZGRNZXRhRGF0YSgiY29udGVudC10eXBlIiwgYXJncy5jb250ZW50VHlwZSgpICk7CiAgIH0g
ZWxzZQotICAgICAgZC0+bV9qb2IgPSBuZXcgVHJhbnNmZXJKb2IodGhpcywgdXJsKTsKKyAgICAg
IGQtPm1fam9iID0gbmV3IFRyYW5zZmVySm9iKCJHRVQiLCB0aGlzLCB1cmwpOwogCiAgIGQtPm1f
am9iLT5hZGRNZXRhRGF0YShhcmdzLm1ldGFEYXRhKCkpOwogCg==
</data>
<flag name="review"
          id="1737"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>