<?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>97529</bug_id>
          
          <creation_ts>2012-09-24 23:24:44 -0700</creation_ts>
          <short_desc>REGRESSION (r129456): http/tests/security/xss-eval.html is failing on JSC platforms</short_desc>
          <delta_ts>2012-09-27 03:24:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>97670</dependson>
          <blocked>79666</blocked>
    
    <blocked>97519</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>abarth</cc>
    
    <cc>barraclough</cc>
    
    <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cevans</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ggaren</cc>
    
    <cc>inferno</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>schenney</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>727321</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-24 23:24:44 -0700</bug_when>
    <thetext>http/tests/security/xss-eval.html started failing on all JavaScriptCore platforms after r129456:
http://trac.webkit.org/changeset/129456

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&amp;tests=http%2Ftests%2Fsecurity%2Fxss-eval.html

Here&apos;s the diff:
--- /home/slave/webkitgtk/gtk-linux-64-release/build/layout-test-results/http/tests/security/xss-eval-expected.txt 
+++ /home/slave/webkitgtk/gtk-linux-64-release/build/layout-test-results/http/tests/security/xss-eval-actual.txt 
@@ -5,7 +5,7 @@
 If the test passes, you&apos;ll see a pass message below.
 
 PASS: eval.call(frames[0], &apos;document&apos;) should be EvalError and is.
-PASS: childEval.call(frames[0], &apos;document&apos;) should be EvalError and is.
+FAIL: childEval.call(frames[0], &apos;document&apos;) should be EvalError but instead is [object HTMLDocument].
 PASS: childEvalCaller(&apos;document&apos;) should be TypeError and is.
-PASS: childLocalEvalCaller(&apos;document&apos;) should be EvalError and is.
+FAIL: childLocalEvalCaller(&apos;document&apos;) should be EvalError but instead is [object HTMLDocument].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727330</commentid>
    <comment_count>1</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-09-24 23:35:30 -0700</bug_when>
    <thetext>Ooops, I&apos;ll look into this! - we may be changing this behaviour anyway, I don&apos;t think these EvalErrors match the spec, going to test against other browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727444</commentid>
    <comment_count>2</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-09-25 02:51:18 -0700</bug_when>
    <thetext>Skipped on Qt by https://trac.webkit.org/changeset/129481, on GTK by https://trac.webkit.org/changeset/129460</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727514</commentid>
    <comment_count>3</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-09-25 04:47:22 -0700</bug_when>
    <thetext>And on EFL in http://trac.webkit.org/changeset/129483 :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728085</commentid>
    <comment_count>4</comment_count>
      <attachid>165702</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-09-25 17:00:52 -0700</bug_when>
    <thetext>Created attachment 165702
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728096</commentid>
    <comment_count>5</comment_count>
      <attachid>165702</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-25 17:43:42 -0700</bug_when>
    <thetext>Comment on attachment 165702
Fix

Attachment 165702 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14033227

New failing tests:
http/tests/security/cross-frame-access-call.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728141</commentid>
    <comment_count>6</comment_count>
      <attachid>165702</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 19:01:29 -0700</bug_when>
    <thetext>Comment on attachment 165702
Fix

Attachment 165702 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14002958

New failing tests:
http/tests/security/xss-eval.html
fast/js/eval-cross-window.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728176</commentid>
    <comment_count>7</comment_count>
      <attachid>165722</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-09-25 21:02:46 -0700</bug_when>
    <thetext>Created attachment 165722
Fixed cross-frame-access-call</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728192</commentid>
    <comment_count>8</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-09-25 21:45:23 -0700</bug_when>
    <thetext>Fixed in r129592</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728251</commentid>
    <comment_count>9</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-26 00:00:40 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Fixed in r129592

Thanks, the changes seem to work well, albeit there have been some failures on the Chromium ports:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&amp;showAllRuns=true&amp;tests=fast%2Fjs%2Feval-cross-window.html%2Chttp%2Ftests%2Fsecurity%2Fcross-frame-access-call.html%2Chttp%2Ftests%2Fsecurity%2Fxss-eval.html

Two of these seem more like a progression though http/tests/security/xss-eval.html looks more of a failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728258</commentid>
    <comment_count>10</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-09-26 00:07:42 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Fixed in r129592
&gt; 
&gt; Thanks, the changes seem to work well, albeit there have been some failures on the Chromium ports:
&gt; http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&amp;showAllRuns=true&amp;tests=fast%2Fjs%2Feval-cross-window.html%2Chttp%2Ftests%2Fsecurity%2Fcross-frame-access-call.html%2Chttp%2Ftests%2Fsecurity%2Fxss-eval.html
&gt; 
&gt; Two of these seem more like a progression though http/tests/security/xss-eval.html looks more of a failure.

We don&apos;t thing the xss-eval change diminishes security.  This change does not allow the parent frame to inject new code that gets to run in the navigated frame&apos;s environment - the eval takes place in the context the eval function was extracted from, which has the same security origin (and if it did not, we would not have had access to eval in the first place).  The test does cover a case where the eval does try to access the new document global object, and this is correctly inhibited.

cheers, G.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728311</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-09-26 01:34:34 -0700</bug_when>
    <thetext>Unskipped on Qt - r129608.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728468</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-26 06:12:09 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 97670</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728474</commentid>
    <comment_count>13</comment_count>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-09-26 06:17:40 -0700</bug_when>
    <thetext>Adding Chromium security people to verify the security assertions. We also need to know why this is causing chromium tests to fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728630</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 09:03:25 -0700</bug_when>
    <thetext>&gt; Adding Chromium security people to verify the security assertions. We also need to know why this is causing chromium tests to fail.

I&apos;m sorry, I&apos;m not sure what you&apos;re asking.  Ignoring the |this| value passed to eval sounds safe.  If that&apos;s what other browsers do in this case, that seems like a good thing to do.  It&apos;s certainly more useful than throwing an error if |this| doesn&apos;t match what you expect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728633</commentid>
    <comment_count>15</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-09-26 09:05:49 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Re-opened since this is blocked by 97670

Skipped on Qt again after the rollout - https://trac.webkit.org/changeset/129639
Please unskip it with the proper fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728672</commentid>
    <comment_count>16</comment_count>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-09-26 09:38:42 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; Adding Chromium security people to verify the security assertions. We also need to know why this is causing chromium tests to fail.
&gt; 
&gt; I&apos;m sorry, I&apos;m not sure what you&apos;re asking.  Ignoring the |this| value passed to eval sounds safe.  If that&apos;s what other browsers do in this case, that seems like a good thing to do.  It&apos;s certainly more useful than throwing an error if |this| doesn&apos;t match what you expect.

Sorry, should not have used the word &quot;assertions&quot;. I simply wanted to be sure that you agree with the analysis in comment #10, before we put this patch back in and punt the errors to the v8 team (or whomever is the right group to fix the failures).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728700</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 10:12:59 -0700</bug_when>
    <thetext>&gt; I simply wanted to be sure that you agree with the analysis in comment #10.

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728938</commentid>
    <comment_count>18</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-09-26 13:50:09 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Fixed in r129592

This test still seems to be failing on the Mac bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728943</commentid>
    <comment_count>19</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-09-26 13:52:48 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #8)
&gt; &gt; Fixed in r129592
&gt; 
&gt; This test still seems to be failing on the Mac bots.

Oh, I see the patch was rolled out. Sorry for the noise!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729055</commentid>
    <comment_count>20</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-09-26 16:21:20 -0700</bug_when>
    <thetext>Hi, I didn&apos;t realize this was rolled out – relanding – please file bugs against V8 to match behaviour or skip tests as you see fit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729058</commentid>
    <comment_count>21</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-09-26 16:25:22 -0700</bug_when>
    <thetext>Relanded in r129712.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729367</commentid>
    <comment_count>22</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-09-27 03:07:15 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Relanded in r129712.

and unskipped on Qt again - r129747</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729386</commentid>
    <comment_count>23</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-09-27 03:24:35 -0700</bug_when>
    <thetext>I digged a little bit the history of this bug:
https://trac.webkit.org/changeset/129456 - original patch
https://trac.webkit.org/changeset/129460 - skip on GTK
https://trac.webkit.org/changeset/129481 - skip on Qt
https://trac.webkit.org/changeset/129483 - skip on EFL
https://trac.webkit.org/changeset/129592 - fix landed
https://trac.webkit.org/changeset/129599 - unskip on EFL
https://trac.webkit.org/changeset/129608 - unskip on Qt
https://trac.webkit.org/changeset/129615 - unskip on GTK
https://trac.webkit.org/changeset/129629 - fix rolled out
https://trac.webkit.org/changeset/129635 - skip on EFL
https://trac.webkit.org/changeset/129639 - skip on Qt
https://trac.webkit.org/changeset/129680 - skip on GTK
https://trac.webkit.org/changeset/129712 - fix relanded
https://trac.webkit.org/changeset/129740 - unskip on EFL
https://trac.webkit.org/changeset/129747 - unskip on Qt
... and it it still skipped on GTK

I think we should reduce the number of the commits in the future ...
In my opinion if you fix a bug, you should unskip the test on all
platform _with_ the proper fix. And if you rollout a patch, you should
rollout its dependency too. If we had followed this suggestion, we
would have spare many gardening patches.

- r129592 should have contained r129599, r129608, r129615
- r129629 should have contained r129635, r129639, r129680 
- r129712 should have contained r129740, r129747, r......</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165702</attachid>
            <date>2012-09-25 17:00:52 -0700</date>
            <delta_ts>2012-09-25 21:02:46 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>97529.patch</filename>
            <type>text/plain</type>
            <size>15399</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI5NTczKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEyLTA5LTI1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBSRUdSRVNTSU9OIChyMTI5NDU2KTogaHR0cC90ZXN0cy9zZWN1cml0eS94c3Mt
ZXZhbC5odG1sIGlzIGZhaWxpbmcgb24gSlNDIHBsYXRmb3JtcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc1MjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHJlY2VudCBwYXRjaCBjaGFuZ2VkIEpTQydz
IEV2YWxFcnJvciBiZWhhdmlvdXI7IGJyaW5nIHRoaXMgbW9yZSBpbnRvIGxpbmUgd2l0aCBvdGhl
ciBicm93c2Vycy4KKworICAgICAgICBKU0MgY3VycmVudGx5IHRocm93cyBhbiBFdmFsRXJyb3Ig
aWYgeW91IHRyeSB0byBjYWxsIGV2YWwgd2l0aCBhIHRoaXMgb2JqZWN0IHRoYXQgZG9lc24ndAor
ICAgICAgICBtYXRjaCB0aGUgZ2l2ZW4gZXZhbCBmdW5jdGlvbi4gVGhpcyBkb2VzIG5vdCBtYXRj
aCBvdGhlciBicm93c2Vycywgd2hpY2ggZ2VuZXJhbGx5IGp1c3QKKyAgICAgICAgaWdub3JlIHRo
ZSB0aGlzIHZhbHVlIHRoYXQgd2FzIHBhc3NlZCwgYW5kIGV2YWwgdGhlIHN0cmluZyBpbiB0aGUg
ZXZhbCBmdW5jdGlvbidzIGVudmlyb25tZW50LgorCisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNFdmFsKToKKyAg
ICAgICAgICAgIC0gUmVtb3ZlIEV2YWxFcnJvciwgaWdub3JlIHBhc3NlZCB0aGlzIHZhbHVlLgor
CiAyMDEyLTA5LTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAg
U3RydWN0dXJlIGNoZWNrIGhvaXN0aW5nIHBoYXNlIGRvZXNuJ3Qga25vdyBhYm91dCB0aGUgc2lk
ZS1lZmZlY3RpbmcgbmF0dXJlIG9mIEFycmF5aWZ5CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCShy
ZXZpc2lvbiAxMjk1MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5NywxMSArNDk3LDYgQEAg
c3RhdGljIGRvdWJsZSBwYXJzZUZsb2F0KGNvbnN0IFN0cmluZyYgcwogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFdmFsKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBK
U09iamVjdCogdGhpc09iamVjdCA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXNPYmplY3Qo
ZXhlYyk7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGNhbGxlZUdsb2JhbE9iamVjdCA9IGV4ZWMtPmNh
bGxlZSgpLT5nbG9iYWxPYmplY3QoKTsKLSAgICBpZiAodGhpc09iamVjdCAhPSBleGVjLT5jYWxs
ZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbFRoaXMoKSkKLSAgICAgICAgcmV0dXJuIHRocm93
Vk1FcnJvcihleGVjLCBjcmVhdGVFdmFsRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgXCJ0
aGlzXCIgdmFsdWUgcGFzc2VkIHRvIGV2YWwgbXVzdCBiZSB0aGUgZ2xvYmFsIG9iamVjdCBmcm9t
IHdoaWNoIGV2YWwgb3JpZ2luYXRlZCIpKSk7Ci0KICAgICBKU1ZhbHVlIHggPSBleGVjLT5hcmd1
bWVudCgwKTsKICAgICBpZiAoIXguaXNTdHJpbmcoKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZSh4KTsKQEAgLTUxOCwxMiArNTEzLDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2xvYmFsRnVuY0UKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocGFy
c2VkT2JqZWN0KTsgICAgICAgIAogICAgIH0KIAorICAgIEpTR2xvYmFsT2JqZWN0KiBjYWxsZWVH
bG9iYWxPYmplY3QgPSBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgRXZhbEV4
ZWN1dGFibGUqIGV2YWwgPSBFdmFsRXhlY3V0YWJsZTo6Y3JlYXRlKGV4ZWMsIG1ha2VTb3VyY2Uo
cyksIGZhbHNlKTsKICAgICBKU09iamVjdCogZXJyb3IgPSBldmFsLT5jb21waWxlKGV4ZWMsIGNh
bGxlZUdsb2JhbE9iamVjdCk7CiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gdGhyb3dW
TUVycm9yKGV4ZWMsIGVycm9yKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+
aW50ZXJwcmV0ZXIoKS0+ZXhlY3V0ZShldmFsLCBleGVjLCB0aGlzT2JqZWN0LCBjYWxsZWVHbG9i
YWxPYmplY3QpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPmludGVycHJldGVy
KCktPmV4ZWN1dGUoZXZhbCwgZXhlYywgY2FsbGVlR2xvYmFsT2JqZWN0LT5nbG9iYWxUaGlzKCks
IGNhbGxlZUdsb2JhbE9iamVjdCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNQYXJzZUludChFeGVjU3RhdGUqIGV4ZWMpCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
Mjk1NzMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyNiBAQAorMjAxMi0wOS0yNSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjEyOTQ1Nik6IGh0dHAvdGVzdHMvc2VjdXJp
dHkveHNzLWV2YWwuaHRtbCBpcyBmYWlsaW5nIG9uIEpTQyBwbGF0Zm9ybXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NTI5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSByZWNlbnQgcGF0Y2ggY2hhbmdl
ZCBKU0MncyBFdmFsRXJyb3IgYmVoYXZpb3VyOyBicmluZyB0aGlzIG1vcmUgaW50byBsaW5lIHdp
dGggb3RoZXIgYnJvd3NlcnMuCisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0
aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVu
Y3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2pzL2V2
YWwtY3Jvc3Mtd2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2V2YWwtY3Jv
c3Mtd2luZG93Lmh0bWw6CisgICAgICAgICAgICAtIENoYW5nZWQgbm90IHRvIGV4cGVjdCBFdmFs
RXJyb3JzICh0aGlzIG1hdGNoZXMgb3RoZXIgYnJvd3NlcnMpLCBhbmQgbW9kaWZpZWQgdGVzdFRo
aXMKKyAgICAgICAgICAgICAgdG8gY2hlY2sgdGhhdCB0aGUgdGhpcyBvYmplY3QgaXMgYWx3YXlz
IHNldCB0byB0aGUgZ2xvYmFsIG9iamVjdC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy94c3MtZXZhbDIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy94c3MtZXZhbDMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3hzcy1ldmFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hz
cy1ldmFsLmh0bWw6CisgICAgICAgICAgICAtIFVwZGF0ZWQuIEFjY2VzcyB2aWEgdGhlIGdsb2Jh
bCBlbnZpcm9ubWVudCBpcyBub3QgYSBzZWN1cml0eSByaXNrLCBzaW5jZSB0aGUgZXZhbCBpcwor
ICAgICAgICAgICAgICBhY2Nlc3NpbmcgaXQncyBvd24gZG9jdW1lbnQncyBpbmZvcm1hbnRpb24u
IEFjY2VzcyB2aWEgdGhlIHNoZWxsIGF0dGVtcHRzIHRvIGFjY2VzcworICAgICAgICAgICAgICB0
aGUgbmF2aWdhdGVkIHBhZ2VzIGRvY3VtZW50LCB0cmlwcGluZyBhbiBhY2Nlc3MgY2hlY2sgJiB0
aHJvd2luZyBhIFR5cGVFcnJvci4KKwogMjAxMi0wOS0yNSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIENTUCBsb2dnaW5nOiBCZSBtb3JlIGRldmVsb3Blci1mcmll
bmRseSB3aGVuICdkZWZhdWx0LXNyYycgaXMgdmlvbGF0ZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2pzL2V2YWwtY3Jvc3Mtd2luZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2pzL2V2YWwtY3Jvc3Mtd2luZG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTI5NTM4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9ldmFsLWNyb3NzLXdpbmRvdy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsMzQgKzcsMzQgQEAgSWYgdGhlIHRlc3QgcGFzc2Vz
LCB5b3UnbGwgc2VlIGEgc2VyaWVzIAogCiBQQVNTOiB3aW5kb3cuZXZhbCgieCIpIHNob3VsZCBi
ZSAwIGFuZCBpcy4KIFBBU1M6IGZyYW1lc1swXS5ldmFsKCJ4Iikgc2hvdWxkIGJlIDEgYW5kIGlz
LgotUEFTUzogd2luZG93LmV2YWwoIngiKSBzaG91bGQgYmUgRXZhbEVycm9yIGFuZCBpcy4KLVBB
U1M6IGZyYW1lc1swXS5ldmFsKCJ4Iikgc2hvdWxkIGJlIEV2YWxFcnJvciBhbmQgaXMuCitQQVNT
OiB3aW5kb3cuZXZhbCgieCIpIHNob3VsZCBiZSAxIGFuZCBpcy4KK1BBU1M6IGZyYW1lc1swXS5l
dmFsKCJ4Iikgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCiAKIC0tLS0tIFNjb3BlIENoYWlu
IGZvciBHZXR0ZXJzOiAtLS0tLQogCiBQQVNTOiB3aW5kb3cuZXZhbCgieHgiKSBzaG91bGQgYmUg
UmVmZXJlbmNlRXJyb3IgYW5kIGlzLgogUEFTUzogZnJhbWVzWzBdLmV2YWwoInh4Iikgc2hvdWxk
IGJlIFJlZmVyZW5jZUVycm9yIGFuZCBpcy4KLVBBU1M6IHdpbmRvdy5ldmFsKCJ4eCIpIHNob3Vs
ZCBiZSBFdmFsRXJyb3IgYW5kIGlzLgotUEFTUzogZnJhbWVzWzBdLmV2YWwoInh4Iikgc2hvdWxk
IGJlIEV2YWxFcnJvciBhbmQgaXMuCitQQVNTOiB3aW5kb3cuZXZhbCgieHgiKSBzaG91bGQgYmUg
UmVmZXJlbmNlRXJyb3IgYW5kIGlzLgorUEFTUzogZnJhbWVzWzBdLmV2YWwoInh4Iikgc2hvdWxk
IGJlIFJlZmVyZW5jZUVycm9yIGFuZCBpcy4KIAogLS0tLS0gVmFyaWFibGUgT2JqZWN0OiAtLS0t
LQogCiBQQVNTOiB3aW5kb3cuZXZhbCgidmFyIHk7ICJ5IiBpbiB0b3AiKSBzaG91bGQgYmUgdHJ1
ZSBhbmQgaXMuCiBQQVNTOiBmcmFtZXNbMF0uZXZhbCgidmFyIHk7ICJ5IiBpbiB0b3AuZnJhbWVz
WzBdIikgc2hvdWxkIGJlIHRydWUgYW5kIGlzLgotUEFTUzogd2luZG93LmV2YWwoInZhciB5OyAi
eSIgaW4gdG9wLmZyYW1lc1swXSIpIHNob3VsZCBiZSBFdmFsRXJyb3IgYW5kIGlzLgotUEFTUzog
ZnJhbWVzWzBdLmV2YWwoInZhciB5OyAieSIgaW4gdG9wIikgc2hvdWxkIGJlIEV2YWxFcnJvciBh
bmQgaXMuCitQQVNTOiB3aW5kb3cuZXZhbCgidmFyIHk7ICJ5IiBpbiB0b3AuZnJhbWVzWzBdIikg
c2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCitQQVNTOiBmcmFtZXNbMF0uZXZhbCgidmFyIHk7
ICJ5IiBpbiB0b3AiKSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KIAogLS0tLS0gU2NvcGUg
Q2hhaW4gZm9yIFNldHRlcnM6IC0tLS0tCiAKIFBBU1M6IHdpbmRvdy5ldmFsKCJ6ID0gMTsgdG9w
LnoiKSBzaG91bGQgYmUgMSBhbmQgaXMuCiBQQVNTOiBmcmFtZXNbMF0uZXZhbCgieiA9IDI7IHRv
cC5mcmFtZXNbMF0ueiIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLVBBU1M6IHdpbmRvdy5ldmFsKCJ6
ID0gMzsgdG9wLmZyYW1lc1swXS56Iikgc2hvdWxkIGJlIEV2YWxFcnJvciBhbmQgaXMuCi1QQVNT
OiBmcmFtZXNbMF0uZXZhbCgieiA9IDQ7IHRvcC56Iikgc2hvdWxkIGJlIEV2YWxFcnJvciBhbmQg
aXMuCitQQVNTOiB3aW5kb3cuZXZhbCgieiA9IDM7IHRvcC5mcmFtZXNbMF0ueiIpIHNob3VsZCBi
ZSB1bmRlZmluZWQgYW5kIGlzLgorUEFTUzogZnJhbWVzWzBdLmV2YWwoInogPSA0OyB0b3AueiIp
IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgogCiAtLS0tLSBUaGlzIE9iamVjdDogLS0tLS0K
IAogUEFTUzogd2luZG93LmV2YWwoInRoaXMiKSBzaG91bGQgYmUgW29iamVjdCBXaW5kb3ddIGFu
ZCBpcy4KIFBBU1M6IGZyYW1lc1swXS5ldmFsKCJ0aGlzIikgc2hvdWxkIGJlIFtvYmplY3QgV2lu
ZG93XSBhbmQgaXMuCi1QQVNTOiB3aW5kb3cuZXZhbCgidGhpcyIpIHNob3VsZCBiZSBFdmFsRXJy
b3IgYW5kIGlzLgotUEFTUzogZnJhbWVzWzBdLmV2YWwoInRoaXMiKSBzaG91bGQgYmUgRXZhbEVy
cm9yIGFuZCBpcy4KK1BBU1M6IHdpbmRvdy5ldmFsKCJ0aGlzIikgc2hvdWxkIGJlIHVuZGVmaW5l
ZCBhbmQgaXMuCitQQVNTOiBmcmFtZXNbMF0uZXZhbCgidGhpcyIpIHNob3VsZCBiZSB1bmRlZmlu
ZWQgYW5kIGlzLgogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2V2YWwtY3Jvc3Mtd2luZG93
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9ldmFsLWNyb3NzLXdpbmRv
dy5odG1sCShyZXZpc2lvbiAxMjk1MzgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2V2YWwtY3Jv
c3Mtd2luZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQyLDExICs0MiwxMSBAQCBmdW5jdGlv
biB0ZXN0R2V0WCgpCiAgICAgc2hvdWxkQmUoJ2ZyYW1lc1swXS5ldmFsKCJ4IiknLCBmcmFtZXNb
MF0uZXZhbCgieCIpLCAxKTsKIAogICAgIHdpbmRvdy5ldmFsID0gZnJhbWVFdmFsOwotICAgIHNo
b3VsZEJlKCd3aW5kb3cuZXZhbCgieCIpJywgKGZ1bmN0aW9uKCkgeyB0cnkgeyByZXR1cm4gd2lu
ZG93LmV2YWwoIngiKSB9IGNhdGNoKGUpIHsgcmV0dXJuIGUubmFtZTsgfSB9KSgpLCAiRXZhbEVy
cm9yIik7CisgICAgc2hvdWxkQmUoJ3dpbmRvdy5ldmFsKCJ4IiknLCAoZnVuY3Rpb24oKSB7IHRy
eSB7IHJldHVybiB3aW5kb3cuZXZhbCgieCIpIH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9
IH0pKCksIDEpOwogICAgIHdpbmRvdy5ldmFsID0gdG9wRXZhbDsKIAogICAgIGZyYW1lc1swXS5l
dmFsID0gdG9wRXZhbDsKLSAgICBzaG91bGRCZSgnZnJhbWVzWzBdLmV2YWwoIngiKScsIChmdW5j
dGlvbigpIHsgdHJ5IHsgZnJhbWVzWzBdLmV2YWwoIngiKSB9IGNhdGNoKGUpIHsgcmV0dXJuIGUu
bmFtZTsgfSB9KSgpLCAiRXZhbEVycm9yIik7CisgICAgc2hvdWxkQmUoJ2ZyYW1lc1swXS5ldmFs
KCJ4IiknLCAoZnVuY3Rpb24oKSB7IHRyeSB7IGZyYW1lc1swXS5ldmFsKCJ4IikgfSBjYXRjaChl
KSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgdW5kZWZpbmVkKTsKICAgICBmcmFtZXNbMF0uZXZh
bCA9IGZyYW1lRXZhbDsKIH0KIApAQCAtNTgsMTEgKzU4LDExIEBAIGZ1bmN0aW9uIHRlc3RHZXRY
WCgpCiAgICAgc2hvdWxkQmUoJ2ZyYW1lc1swXS5ldmFsKCJ4eCIpJywgKGZ1bmN0aW9uKCkgeyB0
cnkgeyByZXR1cm4gZnJhbWVzWzBdLmV2YWwoInh4IikgfSBjYXRjaChlKSB7IHJldHVybiBlLm5h
bWU7IH0gfSkoKSwgIlJlZmVyZW5jZUVycm9yIik7CiAKICAgICB3aW5kb3cuZXZhbCA9IGZyYW1l
RXZhbDsKLSAgICBzaG91bGRCZSgnd2luZG93LmV2YWwoInh4IiknLCAoZnVuY3Rpb24oKSB7IHRy
eSB7IHJldHVybiB3aW5kb3cuZXZhbCgieHgiKSB9IGNhdGNoKGUpIHsgcmV0dXJuIGUubmFtZTsg
fSB9KSgpLCAiRXZhbEVycm9yIik7CisgICAgc2hvdWxkQmUoJ3dpbmRvdy5ldmFsKCJ4eCIpJywg
KGZ1bmN0aW9uKCkgeyB0cnkgeyByZXR1cm4gd2luZG93LmV2YWwoInh4IikgfSBjYXRjaChlKSB7
IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgIlJlZmVyZW5jZUVycm9yIik7CiAgICAgd2luZG93LmV2
YWwgPSB0b3BFdmFsOwogCiAgICAgZnJhbWVzWzBdLmV2YWwgPSB0b3BFdmFsOwotICAgIHNob3Vs
ZEJlKCdmcmFtZXNbMF0uZXZhbCgieHgiKScsIChmdW5jdGlvbigpIHsgdHJ5IHsgcmV0dXJuIGZy
YW1lc1swXS5ldmFsKCJ4eCIpIH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksICJF
dmFsRXJyb3IiKTsKKyAgICBzaG91bGRCZSgnZnJhbWVzWzBdLmV2YWwoInh4IiknLCAoZnVuY3Rp
b24oKSB7IHRyeSB7IHJldHVybiBmcmFtZXNbMF0uZXZhbCgieHgiKSB9IGNhdGNoKGUpIHsgcmV0
dXJuIGUubmFtZTsgfSB9KSgpLCAiUmVmZXJlbmNlRXJyb3IiKTsKICAgICBmcmFtZXNbMF0uZXZh
bCA9IGZyYW1lRXZhbDsKIH0KIApAQCAtNzcsMTMgKzc3LDEzIEBAIGZ1bmN0aW9uIHRlc3RWYXJZ
KCkKICAgICBkZWxldGUgZnJhbWVzWzBdLnk7CiAKICAgICB3aW5kb3cuZXZhbCA9IGZyYW1lRXZh
bDsKLSAgICBzaG91bGRCZSgnd2luZG93LmV2YWwoInZhciB5OyBcInlcIiBpbiB0b3AuZnJhbWVz
WzBdIiknLCAoZnVuY3Rpb24oKSB7IHRyeSB7IHdpbmRvdy5ldmFsKCJ2YXIgeTsgXCJ5XCIgaW4g
dG9wLmZyYW1lc1swXSIpIH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksICJFdmFs
RXJyb3IiKTsKKyAgICBzaG91bGRCZSgnd2luZG93LmV2YWwoInZhciB5OyBcInlcIiBpbiB0b3Au
ZnJhbWVzWzBdIiknLCAoZnVuY3Rpb24oKSB7IHRyeSB7IHdpbmRvdy5ldmFsKCJ2YXIgeTsgXCJ5
XCIgaW4gdG9wLmZyYW1lc1swXSIpIH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCks
IHVuZGVmaW5lZCk7CiAgICAgZGVsZXRlIHdpbmRvdy55OwogICAgIGRlbGV0ZSBmcmFtZXNbMF0u
eTsKICAgICB3aW5kb3cuZXZhbCA9IHRvcEV2YWw7CiAKICAgICBmcmFtZXNbMF0uZXZhbCA9IHRv
cEV2YWw7Ci0gICAgc2hvdWxkQmUoJ2ZyYW1lc1swXS5ldmFsKCJ2YXIgeTsgXCJ5XCIgaW4gdG9w
IiknLCAoZnVuY3Rpb24oKSB7IHRyeSB7IGZyYW1lc1swXS5ldmFsKCJ2YXIgeTsgXCJ5XCIgaW4g
dG9wIikgfSBjYXRjaChlKSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgIkV2YWxFcnJvciIpOwor
ICAgIHNob3VsZEJlKCdmcmFtZXNbMF0uZXZhbCgidmFyIHk7IFwieVwiIGluIHRvcCIpJywgKGZ1
bmN0aW9uKCkgeyB0cnkgeyBmcmFtZXNbMF0uZXZhbCgidmFyIHk7IFwieVwiIGluIHRvcCIpIH0g
Y2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksIHVuZGVmaW5lZCk7CiAgICAgZGVsZXRl
IHdpbmRvdy55OwogICAgIGRlbGV0ZSBmcmFtZXNbMF0ueTsKICAgICBmcmFtZXNbMF0uZXZhbCA9
IGZyYW1lRXZhbDsKQEAgLTk5LDI1ICs5OSwyNSBAQCBmdW5jdGlvbiB0ZXN0U2V0WigpCiAgICAg
c2hvdWxkQmUoJ2ZyYW1lc1swXS5ldmFsKCJ6ID0gMjsgdG9wLmZyYW1lc1swXS56IiknLCBmcmFt
ZXNbMF0uZXZhbCgieiA9IDI7IHRvcC5mcmFtZXNbMF0ueiIpLCAyKTsKIAogICAgIHdpbmRvdy5l
dmFsID0gZnJhbWVFdmFsOwotICAgIHNob3VsZEJlKCd3aW5kb3cuZXZhbCgieiA9IDM7IHRvcC5m
cmFtZXNbMF0ueiIpJywgKGZ1bmN0aW9uKCkgeyB0cnkgeyB3aW5kb3cuZXZhbCgieiA9IDM7IHRv
cC5mcmFtZXNbMF0ueiIpIH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksICJFdmFs
RXJyb3IiKTsKKyAgICBzaG91bGRCZSgnd2luZG93LmV2YWwoInogPSAzOyB0b3AuZnJhbWVzWzBd
LnoiKScsIChmdW5jdGlvbigpIHsgdHJ5IHsgd2luZG93LmV2YWwoInogPSAzOyB0b3AuZnJhbWVz
WzBdLnoiKSB9IGNhdGNoKGUpIHsgcmV0dXJuIGUubmFtZTsgfSB9KSgpLCB1bmRlZmluZWQpOwog
ICAgIHdpbmRvdy5ldmFsID0gdG9wRXZhbDsKIAogICAgIGZyYW1lc1swXS5ldmFsID0gdG9wRXZh
bDsKLSAgICBzaG91bGRCZSgnZnJhbWVzWzBdLmV2YWwoInogPSA0OyB0b3AueiIpJywgKGZ1bmN0
aW9uKCkgeyB0cnkgeyBmcmFtZXNbMF0uZXZhbCgieiA9IDQ7IHRvcC56IikgfSBjYXRjaChlKSB7
IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgIkV2YWxFcnJvciIpOworICAgIHNob3VsZEJlKCdmcmFt
ZXNbMF0uZXZhbCgieiA9IDQ7IHRvcC56IiknLCAoZnVuY3Rpb24oKSB7IHRyeSB7IGZyYW1lc1sw
XS5ldmFsKCJ6ID0gNDsgdG9wLnoiKSB9IGNhdGNoKGUpIHsgcmV0dXJuIGUubmFtZTsgfSB9KSgp
LCB1bmRlZmluZWQpOwogICAgIGZyYW1lc1swXS5ldmFsID0gZnJhbWVFdmFsOwogfQogCiBmdW5j
dGlvbiB0ZXN0VGhpcygpCiB7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5ldmFsKCJ0aGlzIiknLCB3
aW5kb3cuZXZhbCgidGhpcyIpLCB3aW5kb3cpOwotICAgIHNob3VsZEJlKCdmcmFtZXNbMF0uZXZh
bCgidGhpcyIpJywgZnJhbWVzWzBdLmV2YWwoInRoaXMiKSwgZnJhbWVzWzBdKTsKKyAgICBzaG91
bGRCZSgnd2luZG93LmV2YWwoInRoaXMiKScsIHdpbmRvdy5ldmFsLmNhbGwoIndyb25nIiwgInRo
aXMiKSwgd2luZG93KTsKKyAgICBzaG91bGRCZSgnZnJhbWVzWzBdLmV2YWwoInRoaXMiKScsIGZy
YW1lc1swXS5ldmFsLmNhbGwoIndyb25nIiwgInRoaXMiKSwgZnJhbWVzWzBdKTsKIAogICAgIHdp
bmRvdy5ldmFsID0gZnJhbWVFdmFsOwotICAgIHNob3VsZEJlKCd3aW5kb3cuZXZhbCgidGhpcyIp
JywgKGZ1bmN0aW9uKCkgeyB0cnkgeyB3aW5kb3cuZXZhbCgidGhpcyIpLCBmcmFtZXNbMF0gfSBj
YXRjaChlKSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgIkV2YWxFcnJvciIpOworICAgIHNob3Vs
ZEJlKCd3aW5kb3cuZXZhbCgidGhpcyIpJywgKGZ1bmN0aW9uKCkgeyB0cnkgeyB3aW5kb3cuZXZh
bC5jYWxsKCJ3cm9uZyIsICJ0aGlzIiksIGZyYW1lc1swXSB9IGNhdGNoKGUpIHsgcmV0dXJuIGUu
bmFtZTsgfSB9KSgpLCB1bmRlZmluZWQpOwogICAgIHdpbmRvdy5ldmFsID0gdG9wRXZhbDsKIAog
ICAgIGZyYW1lc1swXS5ldmFsID0gdG9wRXZhbDsKLSAgICBzaG91bGRCZSgnZnJhbWVzWzBdLmV2
YWwoInRoaXMiKScsIChmdW5jdGlvbigpIHsgdHJ5IHsgZnJhbWVzWzBdLmV2YWwoInRoaXMiKSwg
d2luZG93IH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksICJFdmFsRXJyb3IiKTsK
KyAgICBzaG91bGRCZSgnZnJhbWVzWzBdLmV2YWwoInRoaXMiKScsIChmdW5jdGlvbigpIHsgdHJ5
IHsgZnJhbWVzWzBdLmV2YWwuY2FsbCgid3JvbmciLCAidGhpcyIpLCB3aW5kb3cgfSBjYXRjaChl
KSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgdW5kZWZpbmVkKTsKICAgICBmcmFtZXNbMF0uZXZh
bCA9IGZyYW1lRXZhbDsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS94c3MtZXZhbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3MtZXZhbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEyOTUzOCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLWV2YWwtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC00LDggKzQsOCBAQCBUaGlzIHBhZ2UgdmVyaWZpZXMgdGhhdCB5b3Ug
Y2FuJ3QgdXNlIGV2CiAKIElmIHRoZSB0ZXN0IHBhc3NlcywgeW91J2xsIHNlZSBhIHBhc3MgbWVz
c2FnZSBiZWxvdy4KIAotUEFTUzogZXZhbC5jYWxsKGZyYW1lc1swXSwgJ2RvY3VtZW50Jykgc2hv
dWxkIGJlIEV2YWxFcnJvciBhbmQgaXMuCi1QQVNTOiBjaGlsZEV2YWwuY2FsbChmcmFtZXNbMF0s
ICdkb2N1bWVudCcpIHNob3VsZCBiZSBFdmFsRXJyb3IgYW5kIGlzLgotUEFTUzogY2hpbGRFdmFs
Q2FsbGVyKCdkb2N1bWVudCcpIHNob3VsZCBiZSBUeXBlRXJyb3IgYW5kIGlzLgotUEFTUzogY2hp
bGRMb2NhbEV2YWxDYWxsZXIoJ2RvY3VtZW50Jykgc2hvdWxkIGJlIEV2YWxFcnJvciBhbmQgaXMu
CitQQVNTOiBldmFsLmNhbGwoZnJhbWVzWzBdLCAnZG9jdW1lbnQnKS50ZXN0RXhwYW5kbyBzaG91
bGQgYmUgSXQncyBtZSEgYW5kIGlzLgorUEFTUzogY2hpbGRFdmFsLmNhbGwoZnJhbWVzWzBdLCAn
ZG9jdW1lbnQnKS50ZXN0RXhwYW5kbyBzaG91bGQgYmUgSXQncyBtZSB0b28hIGFuZCBpcy4KK1BB
U1M6IGNoaWxkRXZhbENhbGxlcignZG9jdW1lbnQnKS50ZXN0RXhwYW5kbyBzaG91bGQgYmUgVHlw
ZUVycm9yIGFuZCBpcy4KK1BBU1M6IGNoaWxkTG9jYWxFdmFsQ2FsbGVyKCdkb2N1bWVudCcpLnRl
c3RFeHBhbmRvIHNob3VsZCBiZSBJdCdzIG1lIHRvbyEgYW5kIGlzLgogCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ldmFsLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtZXZhbC5odG1sCShyZXZpc2lvbiAxMjk1
MzgpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ldmFsLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDIyICsyOSwyMyBAQCBkb2N1bWVudC50ZXN0RXhwYW5kbyA9ICJJ
dCdzIG1lISI7CiAKIGFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbigpCiB7Ci0g
ICAgKGZ1bmN0aW9uKCkgewotICAgICAgICB0cnkgewotICAgICAgICAgICAgdmFyIGRvYyA9IGV2
YWwuY2FsbChmcmFtZXNbMF0sICdkb2N1bWVudCcpOwotICAgICAgICAgICAgLy8gVjggZXhlY3V0
ZSB0aGUgZXZhbCBvdXIgc2NvcGUsIHdoaWNoIGlzIHNhZmUuCi0gICAgICAgICAgICBzaG91bGRC
ZSgiZG9jdW1lbnRGcm9tRXZhbCIsIGRvYy50ZXN0RXhwYW5kbywgIkl0J3MgbWUhIikKLSAgICAg
ICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAgICAvLyBKU0MgdGhyb3dzIGFuIGV4Y2VwdGlvbiwg
d2hpY2ggaXMgYWxzbyBzYWZlLgotICAgICAgICAgICAgc2hvdWxkQmUoImV2YWwuY2FsbChmcmFt
ZXNbMF0sICdkb2N1bWVudCcpIiwgZS5uYW1lLCAiRXZhbEVycm9yIik7Ci0gICAgICAgIH0KLSAg
ICB9KSgpOworICAgIHNob3VsZEJlKCJldmFsLmNhbGwoZnJhbWVzWzBdLCAnZG9jdW1lbnQnKS50
ZXN0RXhwYW5kbyIsCisgICAgICAgIChmdW5jdGlvbigpIHsgdHJ5IHsKKyAgICAgICAgICAgIHJl
dHVybiBldmFsLmNhbGwoZnJhbWVzWzBdLCAnZG9jdW1lbnQnKS50ZXN0RXhwYW5kbzsKKyAgICAg
ICAgfSBjYXRjaChlKSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgIkl0J3MgbWUhIikKIAotICAg
IHNob3VsZEJlKCJjaGlsZEV2YWwuY2FsbChmcmFtZXNbMF0sICdkb2N1bWVudCcpIiwgKGZ1bmN0
aW9uKCkgeyB0cnkgeyByZXR1cm4gY2hpbGRFdmFsLmNhbGwoZnJhbWVzWzBdLCAnZG9jdW1lbnQn
KTsgfSBjYXRjaChlKSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgIkV2YWxFcnJvciIpOworICAg
IHNob3VsZEJlKCJjaGlsZEV2YWwuY2FsbChmcmFtZXNbMF0sICdkb2N1bWVudCcpLnRlc3RFeHBh
bmRvIiwKKyAgICAgICAgKGZ1bmN0aW9uKCkgeyB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGNo
aWxkRXZhbC5jYWxsKGZyYW1lc1swXSwgJ2RvY3VtZW50JykudGVzdEV4cGFuZG87CisgICAgICAg
IH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksICJJdCdzIG1lIHRvbyEiKTsKIAot
ICAgIHNob3VsZEJlKCJjaGlsZEV2YWxDYWxsZXIoJ2RvY3VtZW50JykiLCAoZnVuY3Rpb24oKSB7
IHRyeSB7IHJldHVybiBjaGlsZEV2YWxDYWxsZXIoJ2RvY3VtZW50Jyk7IH0gY2F0Y2goZSkgeyBy
ZXR1cm4gZS5uYW1lOyB9IH0pKCksICJUeXBlRXJyb3IiKTsKKyAgICBzaG91bGRCZSgiY2hpbGRF
dmFsQ2FsbGVyKCdkb2N1bWVudCcpLnRlc3RFeHBhbmRvIiwKKyAgICAgICAgKGZ1bmN0aW9uKCkg
eyB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGNoaWxkRXZhbENhbGxlcignZG9jdW1lbnQnKS50
ZXN0RXhwYW5kbzsKKyAgICAgICAgfSBjYXRjaChlKSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwg
IlR5cGVFcnJvciIpOwogCi0gICAgc2hvdWxkQmUoImNoaWxkTG9jYWxFdmFsQ2FsbGVyKCdkb2N1
bWVudCcpIiwgKGZ1bmN0aW9uKCkgeyB0cnkgeyByZXR1cm4gY2hpbGRMb2NhbEV2YWxDYWxsZXIo
J2RvY3VtZW50Jyk7IH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksICJFdmFsRXJy
b3IiKTsKKyAgICBzaG91bGRCZSgiY2hpbGRMb2NhbEV2YWxDYWxsZXIoJ2RvY3VtZW50JykudGVz
dEV4cGFuZG8iLAorICAgICAgICAoZnVuY3Rpb24oKSB7IHRyeSB7IHJldHVybiBjaGlsZExvY2Fs
RXZhbENhbGxlcignZG9jdW1lbnQnKS50ZXN0RXhwYW5kbzsgfSBjYXRjaChlKSB7IHJldHVybiBl
Lm5hbWU7IH0gfSkoKSwgIkl0J3MgbWUgdG9vISIpOwogCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ldmFsMi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ldmFsMi5o
dG1sCShyZXZpc2lvbiAxMjk1MzgpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy94c3MtZXZhbDIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDYgQEAK
IDxzY3JpcHQ+Citkb2N1bWVudC50ZXN0RXhwYW5kbyA9ICJJdCdzIG1lIHRvbyEiOworCiBwYXJl
bnQuY2hpbGRFdmFsID0gZXZhbDsKIAogcGFyZW50LmNoaWxkRXZhbENhbGxlciA9IGZ1bmN0aW9u
KHMpIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3hz
cy1ldmFsMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvcmVzb3VyY2VzL3hzcy1ldmFsMy5odG1sCShyZXZpc2lvbiAxMjk1MzgpCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy94c3MtZXZhbDMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDUgQEAKIDxzY3JpcHQ+Citkb2N1bWVudC50ZXN0RXhwYW5kbyA9
ICJJdCdzIG1lIHRocmVlISI7CisKIHBhcmVudC5wb3N0TWVzc2FnZSgiZG9uZSIsICIqIik7CiA8
L3NjcmlwdD4K
</data>
<flag name="commit-queue"
          id="177831"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165722</attachid>
            <date>2012-09-25 21:02:46 -0700</date>
            <delta_ts>2012-09-25 21:38:27 -0700</delta_ts>
            <desc>Fixed cross-frame-access-call</desc>
            <filename>97529.2.patch</filename>
            <type>text/plain</type>
            <size>17129</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI5NTczKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEyLTA5LTI1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBSRUdSRVNTSU9OIChyMTI5NDU2KTogaHR0cC90ZXN0cy9zZWN1cml0eS94c3Mt
ZXZhbC5odG1sIGlzIGZhaWxpbmcgb24gSlNDIHBsYXRmb3JtcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc1MjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHJlY2VudCBwYXRjaCBjaGFuZ2VkIEpTQydz
IEV2YWxFcnJvciBiZWhhdmlvdXI7IGJyaW5nIHRoaXMgbW9yZSBpbnRvIGxpbmUgd2l0aCBvdGhl
ciBicm93c2Vycy4KKworICAgICAgICBKU0MgY3VycmVudGx5IHRocm93cyBhbiBFdmFsRXJyb3Ig
aWYgeW91IHRyeSB0byBjYWxsIGV2YWwgd2l0aCBhIHRoaXMgb2JqZWN0IHRoYXQgZG9lc24ndAor
ICAgICAgICBtYXRjaCB0aGUgZ2l2ZW4gZXZhbCBmdW5jdGlvbi4gVGhpcyBkb2VzIG5vdCBtYXRj
aCBvdGhlciBicm93c2Vycywgd2hpY2ggZ2VuZXJhbGx5IGp1c3QKKyAgICAgICAgaWdub3JlIHRo
ZSB0aGlzIHZhbHVlIHRoYXQgd2FzIHBhc3NlZCwgYW5kIGV2YWwgdGhlIHN0cmluZyBpbiB0aGUg
ZXZhbCBmdW5jdGlvbidzIGVudmlyb25tZW50LgorCisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNFdmFsKToKKyAg
ICAgICAgICAgIC0gUmVtb3ZlIEV2YWxFcnJvciwgaWdub3JlIHBhc3NlZCB0aGlzIHZhbHVlLgor
CiAyMDEyLTA5LTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAg
U3RydWN0dXJlIGNoZWNrIGhvaXN0aW5nIHBoYXNlIGRvZXNuJ3Qga25vdyBhYm91dCB0aGUgc2lk
ZS1lZmZlY3RpbmcgbmF0dXJlIG9mIEFycmF5aWZ5CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCShy
ZXZpc2lvbiAxMjk1MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5NywxMSArNDk3LDYgQEAg
c3RhdGljIGRvdWJsZSBwYXJzZUZsb2F0KGNvbnN0IFN0cmluZyYgcwogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFdmFsKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBK
U09iamVjdCogdGhpc09iamVjdCA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXNPYmplY3Qo
ZXhlYyk7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGNhbGxlZUdsb2JhbE9iamVjdCA9IGV4ZWMtPmNh
bGxlZSgpLT5nbG9iYWxPYmplY3QoKTsKLSAgICBpZiAodGhpc09iamVjdCAhPSBleGVjLT5jYWxs
ZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbFRoaXMoKSkKLSAgICAgICAgcmV0dXJuIHRocm93
Vk1FcnJvcihleGVjLCBjcmVhdGVFdmFsRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgXCJ0
aGlzXCIgdmFsdWUgcGFzc2VkIHRvIGV2YWwgbXVzdCBiZSB0aGUgZ2xvYmFsIG9iamVjdCBmcm9t
IHdoaWNoIGV2YWwgb3JpZ2luYXRlZCIpKSk7Ci0KICAgICBKU1ZhbHVlIHggPSBleGVjLT5hcmd1
bWVudCgwKTsKICAgICBpZiAoIXguaXNTdHJpbmcoKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZSh4KTsKQEAgLTUxOCwxMiArNTEzLDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2xvYmFsRnVuY0UKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocGFy
c2VkT2JqZWN0KTsgICAgICAgIAogICAgIH0KIAorICAgIEpTR2xvYmFsT2JqZWN0KiBjYWxsZWVH
bG9iYWxPYmplY3QgPSBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgRXZhbEV4
ZWN1dGFibGUqIGV2YWwgPSBFdmFsRXhlY3V0YWJsZTo6Y3JlYXRlKGV4ZWMsIG1ha2VTb3VyY2Uo
cyksIGZhbHNlKTsKICAgICBKU09iamVjdCogZXJyb3IgPSBldmFsLT5jb21waWxlKGV4ZWMsIGNh
bGxlZUdsb2JhbE9iamVjdCk7CiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gdGhyb3dW
TUVycm9yKGV4ZWMsIGVycm9yKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+
aW50ZXJwcmV0ZXIoKS0+ZXhlY3V0ZShldmFsLCBleGVjLCB0aGlzT2JqZWN0LCBjYWxsZWVHbG9i
YWxPYmplY3QpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPmludGVycHJldGVy
KCktPmV4ZWN1dGUoZXZhbCwgZXhlYywgY2FsbGVlR2xvYmFsT2JqZWN0LT5nbG9iYWxUaGlzKCks
IGNhbGxlZUdsb2JhbE9iamVjdCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNQYXJzZUludChFeGVjU3RhdGUqIGV4ZWMpCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
Mjk1NzMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyNiBAQAorMjAxMi0wOS0yNSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjEyOTQ1Nik6IGh0dHAvdGVzdHMvc2VjdXJp
dHkveHNzLWV2YWwuaHRtbCBpcyBmYWlsaW5nIG9uIEpTQyBwbGF0Zm9ybXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NTI5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSByZWNlbnQgcGF0Y2ggY2hhbmdl
ZCBKU0MncyBFdmFsRXJyb3IgYmVoYXZpb3VyOyBicmluZyB0aGlzIG1vcmUgaW50byBsaW5lIHdp
dGggb3RoZXIgYnJvd3NlcnMuCisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0
aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVu
Y3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2pzL2V2
YWwtY3Jvc3Mtd2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2V2YWwtY3Jv
c3Mtd2luZG93Lmh0bWw6CisgICAgICAgICAgICAtIENoYW5nZWQgbm90IHRvIGV4cGVjdCBFdmFs
RXJyb3JzICh0aGlzIG1hdGNoZXMgb3RoZXIgYnJvd3NlcnMpLCBhbmQgbW9kaWZpZWQgdGVzdFRo
aXMKKyAgICAgICAgICAgICAgdG8gY2hlY2sgdGhhdCB0aGUgdGhpcyBvYmplY3QgaXMgYWx3YXlz
IHNldCB0byB0aGUgZ2xvYmFsIG9iamVjdC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy94c3MtZXZhbDIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy94c3MtZXZhbDMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3hzcy1ldmFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hz
cy1ldmFsLmh0bWw6CisgICAgICAgICAgICAtIFVwZGF0ZWQuIEFjY2VzcyB2aWEgdGhlIGdsb2Jh
bCBlbnZpcm9ubWVudCBpcyBub3QgYSBzZWN1cml0eSByaXNrLCBzaW5jZSB0aGUgZXZhbCBpcwor
ICAgICAgICAgICAgICBhY2Nlc3NpbmcgaXQncyBvd24gZG9jdW1lbnQncyBpbmZvcm1hbnRpb24u
IEFjY2VzcyB2aWEgdGhlIHNoZWxsIGF0dGVtcHRzIHRvIGFjY2VzcworICAgICAgICAgICAgICB0
aGUgbmF2aWdhdGVkIHBhZ2VzIGRvY3VtZW50LCB0cmlwcGluZyBhbiBhY2Nlc3MgY2hlY2sgJiB0
aHJvd2luZyBhIFR5cGVFcnJvci4KKwogMjAxMi0wOS0yNSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIENTUCBsb2dnaW5nOiBCZSBtb3JlIGRldmVsb3Blci1mcmll
bmRseSB3aGVuICdkZWZhdWx0LXNyYycgaXMgdmlvbGF0ZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2pzL2V2YWwtY3Jvc3Mtd2luZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2pzL2V2YWwtY3Jvc3Mtd2luZG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTI5NTM4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9ldmFsLWNyb3NzLXdpbmRvdy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsMzQgKzcsMzQgQEAgSWYgdGhlIHRlc3QgcGFzc2Vz
LCB5b3UnbGwgc2VlIGEgc2VyaWVzIAogCiBQQVNTOiB3aW5kb3cuZXZhbCgieCIpIHNob3VsZCBi
ZSAwIGFuZCBpcy4KIFBBU1M6IGZyYW1lc1swXS5ldmFsKCJ4Iikgc2hvdWxkIGJlIDEgYW5kIGlz
LgotUEFTUzogd2luZG93LmV2YWwoIngiKSBzaG91bGQgYmUgRXZhbEVycm9yIGFuZCBpcy4KLVBB
U1M6IGZyYW1lc1swXS5ldmFsKCJ4Iikgc2hvdWxkIGJlIEV2YWxFcnJvciBhbmQgaXMuCitQQVNT
OiB3aW5kb3cuZXZhbCgieCIpIHNob3VsZCBiZSAxIGFuZCBpcy4KK1BBU1M6IGZyYW1lc1swXS5l
dmFsKCJ4Iikgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCiAKIC0tLS0tIFNjb3BlIENoYWlu
IGZvciBHZXR0ZXJzOiAtLS0tLQogCiBQQVNTOiB3aW5kb3cuZXZhbCgieHgiKSBzaG91bGQgYmUg
UmVmZXJlbmNlRXJyb3IgYW5kIGlzLgogUEFTUzogZnJhbWVzWzBdLmV2YWwoInh4Iikgc2hvdWxk
IGJlIFJlZmVyZW5jZUVycm9yIGFuZCBpcy4KLVBBU1M6IHdpbmRvdy5ldmFsKCJ4eCIpIHNob3Vs
ZCBiZSBFdmFsRXJyb3IgYW5kIGlzLgotUEFTUzogZnJhbWVzWzBdLmV2YWwoInh4Iikgc2hvdWxk
IGJlIEV2YWxFcnJvciBhbmQgaXMuCitQQVNTOiB3aW5kb3cuZXZhbCgieHgiKSBzaG91bGQgYmUg
UmVmZXJlbmNlRXJyb3IgYW5kIGlzLgorUEFTUzogZnJhbWVzWzBdLmV2YWwoInh4Iikgc2hvdWxk
IGJlIFJlZmVyZW5jZUVycm9yIGFuZCBpcy4KIAogLS0tLS0gVmFyaWFibGUgT2JqZWN0OiAtLS0t
LQogCiBQQVNTOiB3aW5kb3cuZXZhbCgidmFyIHk7ICJ5IiBpbiB0b3AiKSBzaG91bGQgYmUgdHJ1
ZSBhbmQgaXMuCiBQQVNTOiBmcmFtZXNbMF0uZXZhbCgidmFyIHk7ICJ5IiBpbiB0b3AuZnJhbWVz
WzBdIikgc2hvdWxkIGJlIHRydWUgYW5kIGlzLgotUEFTUzogd2luZG93LmV2YWwoInZhciB5OyAi
eSIgaW4gdG9wLmZyYW1lc1swXSIpIHNob3VsZCBiZSBFdmFsRXJyb3IgYW5kIGlzLgotUEFTUzog
ZnJhbWVzWzBdLmV2YWwoInZhciB5OyAieSIgaW4gdG9wIikgc2hvdWxkIGJlIEV2YWxFcnJvciBh
bmQgaXMuCitQQVNTOiB3aW5kb3cuZXZhbCgidmFyIHk7ICJ5IiBpbiB0b3AuZnJhbWVzWzBdIikg
c2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCitQQVNTOiBmcmFtZXNbMF0uZXZhbCgidmFyIHk7
ICJ5IiBpbiB0b3AiKSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KIAogLS0tLS0gU2NvcGUg
Q2hhaW4gZm9yIFNldHRlcnM6IC0tLS0tCiAKIFBBU1M6IHdpbmRvdy5ldmFsKCJ6ID0gMTsgdG9w
LnoiKSBzaG91bGQgYmUgMSBhbmQgaXMuCiBQQVNTOiBmcmFtZXNbMF0uZXZhbCgieiA9IDI7IHRv
cC5mcmFtZXNbMF0ueiIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLVBBU1M6IHdpbmRvdy5ldmFsKCJ6
ID0gMzsgdG9wLmZyYW1lc1swXS56Iikgc2hvdWxkIGJlIEV2YWxFcnJvciBhbmQgaXMuCi1QQVNT
OiBmcmFtZXNbMF0uZXZhbCgieiA9IDQ7IHRvcC56Iikgc2hvdWxkIGJlIEV2YWxFcnJvciBhbmQg
aXMuCitQQVNTOiB3aW5kb3cuZXZhbCgieiA9IDM7IHRvcC5mcmFtZXNbMF0ueiIpIHNob3VsZCBi
ZSB1bmRlZmluZWQgYW5kIGlzLgorUEFTUzogZnJhbWVzWzBdLmV2YWwoInogPSA0OyB0b3AueiIp
IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgogCiAtLS0tLSBUaGlzIE9iamVjdDogLS0tLS0K
IAogUEFTUzogd2luZG93LmV2YWwoInRoaXMiKSBzaG91bGQgYmUgW29iamVjdCBXaW5kb3ddIGFu
ZCBpcy4KIFBBU1M6IGZyYW1lc1swXS5ldmFsKCJ0aGlzIikgc2hvdWxkIGJlIFtvYmplY3QgV2lu
ZG93XSBhbmQgaXMuCi1QQVNTOiB3aW5kb3cuZXZhbCgidGhpcyIpIHNob3VsZCBiZSBFdmFsRXJy
b3IgYW5kIGlzLgotUEFTUzogZnJhbWVzWzBdLmV2YWwoInRoaXMiKSBzaG91bGQgYmUgRXZhbEVy
cm9yIGFuZCBpcy4KK1BBU1M6IHdpbmRvdy5ldmFsKCJ0aGlzIikgc2hvdWxkIGJlIHVuZGVmaW5l
ZCBhbmQgaXMuCitQQVNTOiBmcmFtZXNbMF0uZXZhbCgidGhpcyIpIHNob3VsZCBiZSB1bmRlZmlu
ZWQgYW5kIGlzLgogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2V2YWwtY3Jvc3Mtd2luZG93
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9ldmFsLWNyb3NzLXdpbmRv
dy5odG1sCShyZXZpc2lvbiAxMjk1MzgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2V2YWwtY3Jv
c3Mtd2luZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQyLDExICs0MiwxMSBAQCBmdW5jdGlv
biB0ZXN0R2V0WCgpCiAgICAgc2hvdWxkQmUoJ2ZyYW1lc1swXS5ldmFsKCJ4IiknLCBmcmFtZXNb
MF0uZXZhbCgieCIpLCAxKTsKIAogICAgIHdpbmRvdy5ldmFsID0gZnJhbWVFdmFsOwotICAgIHNo
b3VsZEJlKCd3aW5kb3cuZXZhbCgieCIpJywgKGZ1bmN0aW9uKCkgeyB0cnkgeyByZXR1cm4gd2lu
ZG93LmV2YWwoIngiKSB9IGNhdGNoKGUpIHsgcmV0dXJuIGUubmFtZTsgfSB9KSgpLCAiRXZhbEVy
cm9yIik7CisgICAgc2hvdWxkQmUoJ3dpbmRvdy5ldmFsKCJ4IiknLCAoZnVuY3Rpb24oKSB7IHRy
eSB7IHJldHVybiB3aW5kb3cuZXZhbCgieCIpIH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9
IH0pKCksIDEpOwogICAgIHdpbmRvdy5ldmFsID0gdG9wRXZhbDsKIAogICAgIGZyYW1lc1swXS5l
dmFsID0gdG9wRXZhbDsKLSAgICBzaG91bGRCZSgnZnJhbWVzWzBdLmV2YWwoIngiKScsIChmdW5j
dGlvbigpIHsgdHJ5IHsgZnJhbWVzWzBdLmV2YWwoIngiKSB9IGNhdGNoKGUpIHsgcmV0dXJuIGUu
bmFtZTsgfSB9KSgpLCAiRXZhbEVycm9yIik7CisgICAgc2hvdWxkQmUoJ2ZyYW1lc1swXS5ldmFs
KCJ4IiknLCAoZnVuY3Rpb24oKSB7IHRyeSB7IGZyYW1lc1swXS5ldmFsKCJ4IikgfSBjYXRjaChl
KSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgdW5kZWZpbmVkKTsKICAgICBmcmFtZXNbMF0uZXZh
bCA9IGZyYW1lRXZhbDsKIH0KIApAQCAtNTgsMTEgKzU4LDExIEBAIGZ1bmN0aW9uIHRlc3RHZXRY
WCgpCiAgICAgc2hvdWxkQmUoJ2ZyYW1lc1swXS5ldmFsKCJ4eCIpJywgKGZ1bmN0aW9uKCkgeyB0
cnkgeyByZXR1cm4gZnJhbWVzWzBdLmV2YWwoInh4IikgfSBjYXRjaChlKSB7IHJldHVybiBlLm5h
bWU7IH0gfSkoKSwgIlJlZmVyZW5jZUVycm9yIik7CiAKICAgICB3aW5kb3cuZXZhbCA9IGZyYW1l
RXZhbDsKLSAgICBzaG91bGRCZSgnd2luZG93LmV2YWwoInh4IiknLCAoZnVuY3Rpb24oKSB7IHRy
eSB7IHJldHVybiB3aW5kb3cuZXZhbCgieHgiKSB9IGNhdGNoKGUpIHsgcmV0dXJuIGUubmFtZTsg
fSB9KSgpLCAiRXZhbEVycm9yIik7CisgICAgc2hvdWxkQmUoJ3dpbmRvdy5ldmFsKCJ4eCIpJywg
KGZ1bmN0aW9uKCkgeyB0cnkgeyByZXR1cm4gd2luZG93LmV2YWwoInh4IikgfSBjYXRjaChlKSB7
IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgIlJlZmVyZW5jZUVycm9yIik7CiAgICAgd2luZG93LmV2
YWwgPSB0b3BFdmFsOwogCiAgICAgZnJhbWVzWzBdLmV2YWwgPSB0b3BFdmFsOwotICAgIHNob3Vs
ZEJlKCdmcmFtZXNbMF0uZXZhbCgieHgiKScsIChmdW5jdGlvbigpIHsgdHJ5IHsgcmV0dXJuIGZy
YW1lc1swXS5ldmFsKCJ4eCIpIH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksICJF
dmFsRXJyb3IiKTsKKyAgICBzaG91bGRCZSgnZnJhbWVzWzBdLmV2YWwoInh4IiknLCAoZnVuY3Rp
b24oKSB7IHRyeSB7IHJldHVybiBmcmFtZXNbMF0uZXZhbCgieHgiKSB9IGNhdGNoKGUpIHsgcmV0
dXJuIGUubmFtZTsgfSB9KSgpLCAiUmVmZXJlbmNlRXJyb3IiKTsKICAgICBmcmFtZXNbMF0uZXZh
bCA9IGZyYW1lRXZhbDsKIH0KIApAQCAtNzcsMTMgKzc3LDEzIEBAIGZ1bmN0aW9uIHRlc3RWYXJZ
KCkKICAgICBkZWxldGUgZnJhbWVzWzBdLnk7CiAKICAgICB3aW5kb3cuZXZhbCA9IGZyYW1lRXZh
bDsKLSAgICBzaG91bGRCZSgnd2luZG93LmV2YWwoInZhciB5OyBcInlcIiBpbiB0b3AuZnJhbWVz
WzBdIiknLCAoZnVuY3Rpb24oKSB7IHRyeSB7IHdpbmRvdy5ldmFsKCJ2YXIgeTsgXCJ5XCIgaW4g
dG9wLmZyYW1lc1swXSIpIH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksICJFdmFs
RXJyb3IiKTsKKyAgICBzaG91bGRCZSgnd2luZG93LmV2YWwoInZhciB5OyBcInlcIiBpbiB0b3Au
ZnJhbWVzWzBdIiknLCAoZnVuY3Rpb24oKSB7IHRyeSB7IHdpbmRvdy5ldmFsKCJ2YXIgeTsgXCJ5
XCIgaW4gdG9wLmZyYW1lc1swXSIpIH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCks
IHVuZGVmaW5lZCk7CiAgICAgZGVsZXRlIHdpbmRvdy55OwogICAgIGRlbGV0ZSBmcmFtZXNbMF0u
eTsKICAgICB3aW5kb3cuZXZhbCA9IHRvcEV2YWw7CiAKICAgICBmcmFtZXNbMF0uZXZhbCA9IHRv
cEV2YWw7Ci0gICAgc2hvdWxkQmUoJ2ZyYW1lc1swXS5ldmFsKCJ2YXIgeTsgXCJ5XCIgaW4gdG9w
IiknLCAoZnVuY3Rpb24oKSB7IHRyeSB7IGZyYW1lc1swXS5ldmFsKCJ2YXIgeTsgXCJ5XCIgaW4g
dG9wIikgfSBjYXRjaChlKSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgIkV2YWxFcnJvciIpOwor
ICAgIHNob3VsZEJlKCdmcmFtZXNbMF0uZXZhbCgidmFyIHk7IFwieVwiIGluIHRvcCIpJywgKGZ1
bmN0aW9uKCkgeyB0cnkgeyBmcmFtZXNbMF0uZXZhbCgidmFyIHk7IFwieVwiIGluIHRvcCIpIH0g
Y2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksIHVuZGVmaW5lZCk7CiAgICAgZGVsZXRl
IHdpbmRvdy55OwogICAgIGRlbGV0ZSBmcmFtZXNbMF0ueTsKICAgICBmcmFtZXNbMF0uZXZhbCA9
IGZyYW1lRXZhbDsKQEAgLTk5LDI1ICs5OSwyNSBAQCBmdW5jdGlvbiB0ZXN0U2V0WigpCiAgICAg
c2hvdWxkQmUoJ2ZyYW1lc1swXS5ldmFsKCJ6ID0gMjsgdG9wLmZyYW1lc1swXS56IiknLCBmcmFt
ZXNbMF0uZXZhbCgieiA9IDI7IHRvcC5mcmFtZXNbMF0ueiIpLCAyKTsKIAogICAgIHdpbmRvdy5l
dmFsID0gZnJhbWVFdmFsOwotICAgIHNob3VsZEJlKCd3aW5kb3cuZXZhbCgieiA9IDM7IHRvcC5m
cmFtZXNbMF0ueiIpJywgKGZ1bmN0aW9uKCkgeyB0cnkgeyB3aW5kb3cuZXZhbCgieiA9IDM7IHRv
cC5mcmFtZXNbMF0ueiIpIH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksICJFdmFs
RXJyb3IiKTsKKyAgICBzaG91bGRCZSgnd2luZG93LmV2YWwoInogPSAzOyB0b3AuZnJhbWVzWzBd
LnoiKScsIChmdW5jdGlvbigpIHsgdHJ5IHsgd2luZG93LmV2YWwoInogPSAzOyB0b3AuZnJhbWVz
WzBdLnoiKSB9IGNhdGNoKGUpIHsgcmV0dXJuIGUubmFtZTsgfSB9KSgpLCB1bmRlZmluZWQpOwog
ICAgIHdpbmRvdy5ldmFsID0gdG9wRXZhbDsKIAogICAgIGZyYW1lc1swXS5ldmFsID0gdG9wRXZh
bDsKLSAgICBzaG91bGRCZSgnZnJhbWVzWzBdLmV2YWwoInogPSA0OyB0b3AueiIpJywgKGZ1bmN0
aW9uKCkgeyB0cnkgeyBmcmFtZXNbMF0uZXZhbCgieiA9IDQ7IHRvcC56IikgfSBjYXRjaChlKSB7
IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgIkV2YWxFcnJvciIpOworICAgIHNob3VsZEJlKCdmcmFt
ZXNbMF0uZXZhbCgieiA9IDQ7IHRvcC56IiknLCAoZnVuY3Rpb24oKSB7IHRyeSB7IGZyYW1lc1sw
XS5ldmFsKCJ6ID0gNDsgdG9wLnoiKSB9IGNhdGNoKGUpIHsgcmV0dXJuIGUubmFtZTsgfSB9KSgp
LCB1bmRlZmluZWQpOwogICAgIGZyYW1lc1swXS5ldmFsID0gZnJhbWVFdmFsOwogfQogCiBmdW5j
dGlvbiB0ZXN0VGhpcygpCiB7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5ldmFsKCJ0aGlzIiknLCB3
aW5kb3cuZXZhbCgidGhpcyIpLCB3aW5kb3cpOwotICAgIHNob3VsZEJlKCdmcmFtZXNbMF0uZXZh
bCgidGhpcyIpJywgZnJhbWVzWzBdLmV2YWwoInRoaXMiKSwgZnJhbWVzWzBdKTsKKyAgICBzaG91
bGRCZSgnd2luZG93LmV2YWwoInRoaXMiKScsIHdpbmRvdy5ldmFsLmNhbGwoIndyb25nIiwgInRo
aXMiKSwgd2luZG93KTsKKyAgICBzaG91bGRCZSgnZnJhbWVzWzBdLmV2YWwoInRoaXMiKScsIGZy
YW1lc1swXS5ldmFsLmNhbGwoIndyb25nIiwgInRoaXMiKSwgZnJhbWVzWzBdKTsKIAogICAgIHdp
bmRvdy5ldmFsID0gZnJhbWVFdmFsOwotICAgIHNob3VsZEJlKCd3aW5kb3cuZXZhbCgidGhpcyIp
JywgKGZ1bmN0aW9uKCkgeyB0cnkgeyB3aW5kb3cuZXZhbCgidGhpcyIpLCBmcmFtZXNbMF0gfSBj
YXRjaChlKSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgIkV2YWxFcnJvciIpOworICAgIHNob3Vs
ZEJlKCd3aW5kb3cuZXZhbCgidGhpcyIpJywgKGZ1bmN0aW9uKCkgeyB0cnkgeyB3aW5kb3cuZXZh
bC5jYWxsKCJ3cm9uZyIsICJ0aGlzIiksIGZyYW1lc1swXSB9IGNhdGNoKGUpIHsgcmV0dXJuIGUu
bmFtZTsgfSB9KSgpLCB1bmRlZmluZWQpOwogICAgIHdpbmRvdy5ldmFsID0gdG9wRXZhbDsKIAog
ICAgIGZyYW1lc1swXS5ldmFsID0gdG9wRXZhbDsKLSAgICBzaG91bGRCZSgnZnJhbWVzWzBdLmV2
YWwoInRoaXMiKScsIChmdW5jdGlvbigpIHsgdHJ5IHsgZnJhbWVzWzBdLmV2YWwoInRoaXMiKSwg
d2luZG93IH0gY2F0Y2goZSkgeyByZXR1cm4gZS5uYW1lOyB9IH0pKCksICJFdmFsRXJyb3IiKTsK
KyAgICBzaG91bGRCZSgnZnJhbWVzWzBdLmV2YWwoInRoaXMiKScsIChmdW5jdGlvbigpIHsgdHJ5
IHsgZnJhbWVzWzBdLmV2YWwuY2FsbCgid3JvbmciLCAidGhpcyIpLCB3aW5kb3cgfSBjYXRjaChl
KSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgdW5kZWZpbmVkKTsKICAgICBmcmFtZXNbMF0uZXZh
bCA9IGZyYW1lRXZhbDsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtY2FsbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtY2FsbC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDEyOTUzOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWNhbGwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC04NSw2ICs4NSw2IEBAIFBBU1M6IHdpbmRvdy5tb3ZlVG8uY2FsbCh0YXJnZXRXaW5kb3cs
IDAKIFBBU1M6IHdpbmRvdy5yZXNpemVCeS5jYWxsKHRhcmdldFdpbmRvdywgMCwgMCk7IHNob3Vs
ZCBiZSAndW5kZWZpbmVkJyBhbmQgaXMuCiBQQVNTOiB3aW5kb3cucmVzaXplVG8uY2FsbCh0YXJn
ZXRXaW5kb3csIDAsIDApOyBzaG91bGQgYmUgJ3VuZGVmaW5lZCcgYW5kIGlzLgogUEFTUzogd2lu
ZG93LnNob3dNb2RhbERpYWxvZy5jYWxsKHRhcmdldFdpbmRvdyk7IHNob3VsZCBiZSAndW5kZWZp
bmVkJyBhbmQgaXMuCi1QQVNTOiB3aW5kb3cuZXZhbC5jYWxsKHRhcmdldFdpbmRvdywgJzErMicp
OyBzaG91bGQgYmUgJ0V2YWxFcnJvcjogVGhlICJ0aGlzIiB2YWx1ZSBwYXNzZWQgdG8gZXZhbCBt
dXN0IGJlIHRoZSBnbG9iYWwgb2JqZWN0IGZyb20gd2hpY2ggZXZhbCBvcmlnaW5hdGVkJyBhbmQg
aXMuCitQQVNTOiB3aW5kb3cuZXZhbC5jYWxsKHRhcmdldFdpbmRvdywgJzErMicpOyBzaG91bGQg
YmUgJzMnIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5sb2NhdGlvbi50b1N0cmluZy5jYWxsKHRhcmdl
dFdpbmRvdy5sb2NhdGlvbikgc2hvdWxkIGJlICd1bmRlZmluZWQnIGFuZCBpcy4KIApJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtY2FsbC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLWNhbGwuaHRtbAkocmV2aXNpb24gMTI5NTM4KQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtY2FsbC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpCiAgICAg
c2hvdWxkQmUoIndpbmRvdy5zaG93TW9kYWxEaWFsb2cuY2FsbCh0YXJnZXRXaW5kb3cpOyIsICJ1
bmRlZmluZWQiKTsKIAogICAgIC8vIFRocm93cyBhbiBFdmFsRXJyb3IgYW5kIGxvZ3MgdG8gdGhl
IGVycm9yIGNvbnNvbGUKLSAgICBzaG91bGRCZSgid2luZG93LmV2YWwuY2FsbCh0YXJnZXRXaW5k
b3csICcxKzInKTsiLCAnIkV2YWxFcnJvcjogVGhlIFxcInRoaXNcXCIgdmFsdWUgcGFzc2VkIHRv
IGV2YWwgbXVzdCBiZSB0aGUgZ2xvYmFsIG9iamVjdCBmcm9tIHdoaWNoIGV2YWwgb3JpZ2luYXRl
ZCInKTsKKyAgICBzaG91bGRCZSgid2luZG93LmV2YWwuY2FsbCh0YXJnZXRXaW5kb3csICcxKzIn
KTsiLCAnMycpOwogCiAgICAgLy8gLSBUZXN0cyBmb3IgdGhlIExvY2F0aW9uIG9iamVjdCAtCiAg
ICAgLy8gdW5kZWZpbmVkIHZhbHVlIGluZGljYXRlcyBmYWlsdXJlCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ldmFsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ldmFsLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTI5NTM4KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3Mt
ZXZhbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw4IEBAIFRoaXMgcGFn
ZSB2ZXJpZmllcyB0aGF0IHlvdSBjYW4ndCB1c2UgZXYKIAogSWYgdGhlIHRlc3QgcGFzc2VzLCB5
b3UnbGwgc2VlIGEgcGFzcyBtZXNzYWdlIGJlbG93LgogCi1QQVNTOiBldmFsLmNhbGwoZnJhbWVz
WzBdLCAnZG9jdW1lbnQnKSBzaG91bGQgYmUgRXZhbEVycm9yIGFuZCBpcy4KLVBBU1M6IGNoaWxk
RXZhbC5jYWxsKGZyYW1lc1swXSwgJ2RvY3VtZW50Jykgc2hvdWxkIGJlIEV2YWxFcnJvciBhbmQg
aXMuCi1QQVNTOiBjaGlsZEV2YWxDYWxsZXIoJ2RvY3VtZW50Jykgc2hvdWxkIGJlIFR5cGVFcnJv
ciBhbmQgaXMuCi1QQVNTOiBjaGlsZExvY2FsRXZhbENhbGxlcignZG9jdW1lbnQnKSBzaG91bGQg
YmUgRXZhbEVycm9yIGFuZCBpcy4KK1BBU1M6IGV2YWwuY2FsbChmcmFtZXNbMF0sICdkb2N1bWVu
dCcpLnRlc3RFeHBhbmRvIHNob3VsZCBiZSBJdCdzIG1lISBhbmQgaXMuCitQQVNTOiBjaGlsZEV2
YWwuY2FsbChmcmFtZXNbMF0sICdkb2N1bWVudCcpLnRlc3RFeHBhbmRvIHNob3VsZCBiZSBJdCdz
IG1lIHRvbyEgYW5kIGlzLgorUEFTUzogY2hpbGRFdmFsQ2FsbGVyKCdkb2N1bWVudCcpLnRlc3RF
eHBhbmRvIHNob3VsZCBiZSBUeXBlRXJyb3IgYW5kIGlzLgorUEFTUzogY2hpbGRMb2NhbEV2YWxD
YWxsZXIoJ2RvY3VtZW50JykudGVzdEV4cGFuZG8gc2hvdWxkIGJlIEl0J3MgbWUgdG9vISBhbmQg
aXMuCiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLWV2YWwuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ldmFs
Lmh0bWwJKHJldmlzaW9uIDEyOTUzOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzLWV2YWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjksMjIgKzI5LDIzIEBAIGRvY3Vt
ZW50LnRlc3RFeHBhbmRvID0gIkl0J3MgbWUhIjsKIAogYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIGZ1bmN0aW9uKCkKIHsKLSAgICAoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAg
ICAgICAgICB2YXIgZG9jID0gZXZhbC5jYWxsKGZyYW1lc1swXSwgJ2RvY3VtZW50Jyk7Ci0gICAg
ICAgICAgICAvLyBWOCBleGVjdXRlIHRoZSBldmFsIG91ciBzY29wZSwgd2hpY2ggaXMgc2FmZS4K
LSAgICAgICAgICAgIHNob3VsZEJlKCJkb2N1bWVudEZyb21FdmFsIiwgZG9jLnRlc3RFeHBhbmRv
LCAiSXQncyBtZSEiKQotICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgICAgIC8vIEpTQyB0
aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGljaCBpcyBhbHNvIHNhZmUuCi0gICAgICAgICAgICBzaG91
bGRCZSgiZXZhbC5jYWxsKGZyYW1lc1swXSwgJ2RvY3VtZW50JykiLCBlLm5hbWUsICJFdmFsRXJy
b3IiKTsKLSAgICAgICAgfQotICAgIH0pKCk7CisgICAgc2hvdWxkQmUoImV2YWwuY2FsbChmcmFt
ZXNbMF0sICdkb2N1bWVudCcpLnRlc3RFeHBhbmRvIiwKKyAgICAgICAgKGZ1bmN0aW9uKCkgeyB0
cnkgeworICAgICAgICAgICAgcmV0dXJuIGV2YWwuY2FsbChmcmFtZXNbMF0sICdkb2N1bWVudCcp
LnRlc3RFeHBhbmRvOworICAgICAgICB9IGNhdGNoKGUpIHsgcmV0dXJuIGUubmFtZTsgfSB9KSgp
LCAiSXQncyBtZSEiKQogCi0gICAgc2hvdWxkQmUoImNoaWxkRXZhbC5jYWxsKGZyYW1lc1swXSwg
J2RvY3VtZW50JykiLCAoZnVuY3Rpb24oKSB7IHRyeSB7IHJldHVybiBjaGlsZEV2YWwuY2FsbChm
cmFtZXNbMF0sICdkb2N1bWVudCcpOyB9IGNhdGNoKGUpIHsgcmV0dXJuIGUubmFtZTsgfSB9KSgp
LCAiRXZhbEVycm9yIik7CisgICAgc2hvdWxkQmUoImNoaWxkRXZhbC5jYWxsKGZyYW1lc1swXSwg
J2RvY3VtZW50JykudGVzdEV4cGFuZG8iLAorICAgICAgICAoZnVuY3Rpb24oKSB7IHRyeSB7Cisg
ICAgICAgICAgICByZXR1cm4gY2hpbGRFdmFsLmNhbGwoZnJhbWVzWzBdLCAnZG9jdW1lbnQnKS50
ZXN0RXhwYW5kbzsKKyAgICAgICAgfSBjYXRjaChlKSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwg
Ikl0J3MgbWUgdG9vISIpOwogCi0gICAgc2hvdWxkQmUoImNoaWxkRXZhbENhbGxlcignZG9jdW1l
bnQnKSIsIChmdW5jdGlvbigpIHsgdHJ5IHsgcmV0dXJuIGNoaWxkRXZhbENhbGxlcignZG9jdW1l
bnQnKTsgfSBjYXRjaChlKSB7IHJldHVybiBlLm5hbWU7IH0gfSkoKSwgIlR5cGVFcnJvciIpOwor
ICAgIHNob3VsZEJlKCJjaGlsZEV2YWxDYWxsZXIoJ2RvY3VtZW50JykudGVzdEV4cGFuZG8iLAor
ICAgICAgICAoZnVuY3Rpb24oKSB7IHRyeSB7CisgICAgICAgICAgICByZXR1cm4gY2hpbGRFdmFs
Q2FsbGVyKCdkb2N1bWVudCcpLnRlc3RFeHBhbmRvOworICAgICAgICB9IGNhdGNoKGUpIHsgcmV0
dXJuIGUubmFtZTsgfSB9KSgpLCAiVHlwZUVycm9yIik7CiAKLSAgICBzaG91bGRCZSgiY2hpbGRM
b2NhbEV2YWxDYWxsZXIoJ2RvY3VtZW50JykiLCAoZnVuY3Rpb24oKSB7IHRyeSB7IHJldHVybiBj
aGlsZExvY2FsRXZhbENhbGxlcignZG9jdW1lbnQnKTsgfSBjYXRjaChlKSB7IHJldHVybiBlLm5h
bWU7IH0gfSkoKSwgIkV2YWxFcnJvciIpOworICAgIHNob3VsZEJlKCJjaGlsZExvY2FsRXZhbENh
bGxlcignZG9jdW1lbnQnKS50ZXN0RXhwYW5kbyIsCisgICAgICAgIChmdW5jdGlvbigpIHsgdHJ5
IHsgcmV0dXJuIGNoaWxkTG9jYWxFdmFsQ2FsbGVyKCdkb2N1bWVudCcpLnRlc3RFeHBhbmRvOyB9
IGNhdGNoKGUpIHsgcmV0dXJuIGUubmFtZTsgfSB9KSgpLCAiSXQncyBtZSB0b28hIik7CiAKICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMveHNzLWV2
YWwyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9y
ZXNvdXJjZXMveHNzLWV2YWwyLmh0bWwJKHJldmlzaW9uIDEyOTUzOCkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3hzcy1ldmFsMi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQgKzEsNiBAQAogPHNjcmlwdD4KK2RvY3VtZW50LnRlc3RFeHBhbmRvID0gIkl0
J3MgbWUgdG9vISI7CisKIHBhcmVudC5jaGlsZEV2YWwgPSBldmFsOwogCiBwYXJlbnQuY2hpbGRF
dmFsQ2FsbGVyID0gZnVuY3Rpb24ocykgewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZXNvdXJjZXMveHNzLWV2YWwzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMveHNzLWV2YWwzLmh0bWwJKHJldmlzaW9u
IDEyOTUzOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3hz
cy1ldmFsMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNSBAQAogPHNjcmlwdD4KK2Rv
Y3VtZW50LnRlc3RFeHBhbmRvID0gIkl0J3MgbWUgdGhyZWUhIjsKKwogcGFyZW50LnBvc3RNZXNz
YWdlKCJkb25lIiwgIioiKTsKIDwvc2NyaXB0Pgo=
</data>
<flag name="review"
          id="177854"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>