<?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>29305</bug_id>
          
          <creation_ts>2009-09-16 10:44:12 -0700</creation_ts>
          <short_desc>Canvas drawn with data URL image raises SECURITY_ERR when toDataUrl() called.</short_desc>
          <delta_ts>2009-12-29 14:51:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>evan</cc>
    
    <cc>ian</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>147561</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-16 10:44:12 -0700</bug_when>
    <thetext>Importing issue http://code.google.com/p/chromium/issues/detail?id=21847

Reported by btlee@google.com, Yesterday (36 hours ago)
Chrome Version       : 4.0.206.1 (Official Build 25376)
URLs (if applicable) : http://members.shaw.ca/briantclee/canvas.html
Other browsers tested:
Add OK or FAIL after other browsers where you have tested this issue:
     Safari 4: FAIL. 
  Firefox 3.x: OK
     Opera 10: OK
         IE 7: FAIL. Canvas not supported.
         IE 8: FAIL. Canvas not supported.


What steps will reproduce the problem?
1. Have a webpage:
   1. Create an Image from a data URL.
   2. Create a canvas.
   3. Draw the image to the canvas.
   4. Call canvas.toDataURL().
2. Launch the webpage.


What is the expected result?
toDataURL() returns a data URL for the image drawn to the canvas.

What happens instead?
Error in the console: &quot;Uncaught Error: SECURITY_ERR: DOM Exception 18&quot;. 

Drawing from an image with source being a data URL seems to set the
origin-clean flag false. I don&apos;t think this should be although it doesn&apos;t
explicitly mention this in
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147593</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-09-16 13:08:46 -0700</bug_when>
    <thetext>We should make sure to test svg data urls to make sure they don&apos;t get through.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147700</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-16 18:35:52 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; We should make sure to test svg data urls to make sure they don&apos;t get through.

You mean something like data:text/svg,&lt;svg&gt;...
?

Why shouldn&apos;t that get through?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147733</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-16 21:35:26 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; We should make sure to test svg data urls to make sure they don&apos;t get through.
&gt; 
&gt; You mean something like data:text/svg,&lt;svg&gt;...
&gt; ?
&gt; 
&gt; Why shouldn&apos;t that get through?

The specific issue i think is that you can do

data:application/xml+svg,&lt;svg&gt;&lt;image src=&quot;evil.com&quot;/&gt;&lt;/svg&gt;

or whatever.  However i *think* we would catch that as being a multi-origin source.  I think Sam&apos;s point was that we need to have a test that ensures the correct restrictions are in place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148494</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-19 08:57:52 -0700</bug_when>
    <thetext>This is fallout from our treatment of data URLs being different than required by the HTML5 spec:

===
If a Document or image was generated from a data: URL found in another Document or in a script
The origin is the origin of the Document or script in which the data: URL was found.
===

We&apos;ll want to think carefully before adopting this requirement, but I think we can fix the canvas behavior independently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148500</commentid>
    <comment_count>5</comment_count>
      <attachid>39820</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-19 09:46:13 -0700</bug_when>
    <thetext>Created attachment 39820
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148501</commentid>
    <comment_count>6</comment_count>
      <attachid>39820</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-19 09:49:47 -0700</bug_when>
    <thetext>Comment on attachment 39820
Patch v1

r=me, we should fix tracking of data url origin as well i guess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148502</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-19 09:56:34 -0700</bug_when>
    <thetext>Thanks for the review.  I think Maciej has strong opinions about the data URL / noAccess thing.  We&apos;d definitely want to talk with him before changing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148503</commentid>
    <comment_count>8</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-09-19 09:59:11 -0700</bug_when>
    <thetext>+        Test that drawing a data URL image onto a canvas behaves as expected.
+        Note the tricky case involving an data URL SVG image with an embedded
+        remote image.

Typo: &quot;an data URL&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148504</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-19 10:06:15 -0700</bug_when>
    <thetext>&gt; Typo: &quot;an data URL&quot;.

Thanks.  I&apos;ll fix it on landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148505</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-19 10:17:32 -0700</bug_when>
    <thetext>Committed r48556: &lt;http://trac.webkit.org/changeset/48556&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148507</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-19 10:19:38 -0700</bug_when>
    <thetext>*** Bug 17150 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175697</commentid>
    <comment_count>12</comment_count>
    <who name="Peter van der Zee">webkit</who>
    <bug_when>2009-12-29 13:27:39 -0800</bug_when>
    <thetext>Hi. It seems this problem is back. Tested in nightly WebKit-r52593 on Windows. Given testcase does not show data url. Problem seems to be fixed in nightly Chrome build (r30453) though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175702</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-29 14:00:39 -0800</bug_when>
    <thetext>Can you file a new bug and CC the relevant folks?  Odd that the test didn&apos;t catch the regression...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175716</commentid>
    <comment_count>14</comment_count>
    <who name="Peter van der Zee">webkit</who>
    <bug_when>2009-12-29 14:51:38 -0800</bug_when>
    <thetext>See Bug 33029</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39820</attachid>
            <date>2009-09-19 09:46:13 -0700</date>
            <delta_ts>2009-09-19 09:49:47 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-29305-20090919094611.patch</filename>
            <type>text/plain</type>
            <size>14879</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYjA1ODM0Li5mYjI1OGVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDktMDkt
MTkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW52YXMgZHJhd24gd2l0aCBkYXRhIFVSTCBp
bWFnZSByYWlzZXMgU0VDVVJJVFlfRVJSIHdoZW4gdG9EYXRhVXJsKCkgY2FsbGVkLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkzMDUKKworICAgICAg
ICBUZXN0IHRoYXQgZHJhd2luZyBhIGRhdGEgVVJMIGltYWdlIG9udG8gYSBjYW52YXMgYmVoYXZl
cyBhcyBleHBlY3RlZC4KKyAgICAgICAgTm90ZSB0aGUgdHJpY2t5IGNhc2UgaW52b2x2aW5nIGFu
IGRhdGEgVVJMIFNWRyBpbWFnZSB3aXRoIGFuIGVtYmVkZGVkCisgICAgICAgIHJlbW90ZSBpbWFn
ZS4KKyAgICAgICAgCisgICAgICAgIEFsc28sIHRlc3QgdGhhdCBkb2N1bWVudC5kb21haW4gc3Rh
dGUgZG9lc24ndCBhZmZlY3QgY2FudmFzIHRhaW50CisgICAgICAgIHN0YXRlLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtZGF0YS11cmwtaW1hZ2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NhbnZh
cy1yZW1vdGUtcmVhZC1kYXRhLXVybC1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NhbnZhcy1yZW1vdGUtcmVhZC1kYXRhLXVybC1zdmctaW1hZ2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NhbnZhcy1y
ZW1vdGUtcmVhZC1kYXRhLXVybC1zdmctaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtcmVtb3RlLWltYWdlLWRvY3VtZW50
LWRvbWFpbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY2FudmFzLXJlbW90ZS1yZWFkLXJlbW90ZS1pbWFnZS1kb2N1bWVudC1kb21haW4uaHRtbDog
QWRkZWQuCisKIDIwMDktMDktMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLWRhdGEtdXJs
LWltYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2Fu
dmFzLXJlbW90ZS1yZWFkLWRhdGEtdXJsLWltYWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWEzMDZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtZGF0YS11cmwtaW1h
Z2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUzogQ2FsbGluZyBnZXRJbWFnZURh
dGEoKSBmcm9tIGEgY2FudmFzIHRhaW50ZWQgYnkgYSBkYXRhIFVSTCBpbWFnZSB3YXMgYWxsb3dl
ZC4KK1BBU1M6IENhbGxpbmcgdG9EYXRhVVJMKCkgb24gYSBjYW52YXMgdGFpbnRlZCBieSBhIGRh
dGEgVVJMIGltYWdlIHdhcyBhbGxvd2VkLgorUEFTUzogQ2FsbGluZyBnZXRJbWFnZURhdGEoKSBm
cm9tIGEgY2FudmFzIHRhaW50ZWQgYnkgYSBkYXRhIFVSTCBpbWFnZSBwYXR0ZXJuIHdhcyBhbGxv
d2VkLgorUEFTUzogQ2FsbGluZyB0b0RhdGFVUkwoKSBvbiBhIGNhbnZhcyB0YWludGVkIGJ5IGEg
ZGF0YSBVUkwgaW1hZ2UgcGF0dGVybiB3YXMgYWxsb3dlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtZGF0YS11cmwtaW1h
Z2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1y
ZWFkLWRhdGEtdXJsLWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYTZkZjkzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLWRhdGEtdXJsLWltYWdlLmh0bWwKQEAgLTAsMCArMSw3
MCBAQAorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2xvZyA9
IGZ1bmN0aW9uKG1zZykKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScp
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1zZyArICJcbiIpKTsKK30KKwor
dGVzdEdldEltYWdlRGF0YSA9IGZ1bmN0aW9uKGNvbnRleHQsIGRlc2NyaXB0aW9uKQoreworICAg
IGRlc2NyaXB0aW9uID0gIkNhbGxpbmcgZ2V0SW1hZ2VEYXRhKCkgZnJvbSBhIGNhbnZhcyB0YWlu
dGVkIGJ5IGEgIiArIGRlc2NyaXB0aW9uOworICAgIHRyeSB7CisgICAgICAgIHZhciBpbWFnZURh
dGEgPSBjb250ZXh0LmdldEltYWdlRGF0YSgwLDAsMTAwLDEwMCk7CisgICAgICAgIGxvZygiUEFT
UzogIiArIGRlc2NyaXB0aW9uICsgIiB3YXMgYWxsb3dlZC4iKTsKKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgIGxvZygiRkFJTDogIiArIGRlc2NyaXB0aW9uICsgIiB3YXMgbm90IGFsbG93ZWQg
LSBUaHJldyBlcnJvcjogIiArIGUgKyAiLiIpOworICAgIH0KK30KKwordGVzdFRvRGF0YVVSTCA9
IGZ1bmN0aW9uKGNhbnZhcywgZGVzY3JpcHRpb24pCit7CisgICAgZGVzY3JpcHRpb24gPSAiQ2Fs
bGluZyB0b0RhdGFVUkwoKSBvbiBhIGNhbnZhcyB0YWludGVkIGJ5IGEgIiArIGRlc2NyaXB0aW9u
OworICAgIHRyeSB7CisgICAgICAgIHZhciBkYXRhVVJMID0gY2FudmFzLnRvRGF0YVVSTCgpOwor
ICAgICAgICBsb2coIlBBU1M6ICIgKyBkZXNjcmlwdGlvbiArICIgd2FzIGFsbG93ZWQuIik7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICBsb2coIkZBSUw6ICIgKyBkZXNjcmlwdGlvbiArICIg
d2FzIG5vdCBhbGxvd2VkIC0gVGhyZXcgZXJyb3I6ICIgKyBlICsgIi4iKTsKKyAgICB9Cit9CisK
K3Rlc3QgPSBmdW5jdGlvbihjYW52YXMsIGRlc2NyaXB0aW9uKQoreworICAgIHRlc3RHZXRJbWFn
ZURhdGEoY2FudmFzLmdldENvbnRleHQoIjJkIiksIGRlc2NyaXB0aW9uKTsKKyAgICB0ZXN0VG9E
YXRhVVJMKGNhbnZhcywgZGVzY3JpcHRpb24pOworfQorCit2YXIgaW1hZ2UgPSBuZXcgSW1hZ2Uo
KTsKK2ltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHZhciBjYW52YXMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgICBjYW52YXMud2lkdGggPSAxMDA7CisgICAg
Y2FudmFzLmhlaWdodCA9IDEwMDsKKyAgICB2YXIgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0
KCIyZCIpOworCisgICAgLy8gVGVzdCByZWFkaW5nIGZyb20gYSBjYW52YXMgYWZ0ZXIgZHJhd2lu
ZyBhIGRhdGEgVVJMIGltYWdlIG9udG8gaXQKKyAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwg
MCwgMCwgMTAwLCAxMDApOworCisgICAgdGVzdChjYW52YXMsICJkYXRhIFVSTCBpbWFnZSIpOwor
CisgICAgLy8gVGVzdCByZWFkaW5nIGFmdGVyIHVzaW5nIGEgZGF0YSBVUkwgcGF0dGVybgorICAg
IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworICAgIGNhbnZhcy53
aWR0aCA9IDEwMDsKKyAgICBjYW52YXMuaGVpZ2h0ID0gMTAwOworICAgIHZhciBjb250ZXh0ID0g
Y2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgdmFyIHJlbW90ZUltYWdlUGF0dGVybiA9IGNv
bnRleHQuY3JlYXRlUGF0dGVybihpbWFnZSwgInJlcGVhdCIpOworICAgIGNvbnRleHQuZmlsbFN0
eWxlID0gcmVtb3RlSW1hZ2VQYXR0ZXJuOworICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgMCwgMTAw
LCAxMDApOworCisgICAgdGVzdChjYW52YXMsICJkYXRhIFVSTCBpbWFnZSBwYXR0ZXJuIik7CisK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKKy8vIEEgc21hbGwgcmVkIGRvdC4KK2ltYWdl
LnNyYyA9ICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFv
QUFBQUtDQVlBQUFDTk1zKzlBQUFBQkdkQlRVRUFBTEdQQy94aEJRQUFBQWx3U0ZsekFBQUxFd0FB
Q3hNQkFKcWNHQUFBQUFkMFNVMUZCOVlHQVJjNUtCMFhWK0lBQUFBZGRFVllkRU52YlcxbGJuUUFR
M0psWVhSbFpDQjNhWFJvSUZSb1pTQkhTVTFRNzJRbGJnQUFBRjFKUkVGVUdOTzl6TDBOZ2xBQXhQ
RWZkTFRzNEJaTTRESU80QzdPd1FnMkpvUTlMRTFleGRsWXZCQmVaN2pxY2g5Ly9xMXVINFRMenc0
ZDYrRXJYTU1jWHVIV3hJZDNLT0VUbm5YWFY2TUpwY3EyTUxhSTk3Q0VSM04wdnI0TWtob1hlMHJa
aWdBQUFBQkpSVTVFcmtKZ2dnPT0iOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NhbnZhcy1yZW1vdGUtcmVhZC1kYXRhLXVybC1zdmctaW1h
Z2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMt
cmVtb3RlLXJlYWQtZGF0YS11cmwtc3ZnLWltYWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTc3N2E5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtZGF0YS11cmwtc3Zn
LWltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdHMgdGhhdCBkcmF3
aW5nIGEgcmVtb3RlIFNWRyBpbWFnZSBvbnRvIGEgY2FudmFzIGZyb20gYSBkYXRhIFVSTCB0YWlu
dHMgdGhlIGNhbnZhcworCitQQVNTOiBnZXRJbWFnZURhdGEgZmFpbGVkLiBDYW52YXMgdGFpbnRl
ZC4KKyAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NhbnZh
cy1yZW1vdGUtcmVhZC1kYXRhLXVybC1zdmctaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLWRhdGEtdXJsLXN2Zy1pbWFnZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkYzZjMTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NhbnZhcy1yZW1vdGUtcmVh
ZC1kYXRhLXVybC1zdmctaW1hZ2UuaHRtbApAQCAtMCwwICsxLDQwIEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobXNnKQoreworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUobXNnICsgIlxuIikpOworfQorCitmdW5jdGlvbiBkcmF3KCkKK3sKKyAg
ICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgIHZh
ciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjdHguZHJhd0ltYWdlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJpbWciKSwgMCwgMCk7CisKKyAgICB0cnkgeworICAgICAgICB2
YXIgZGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoMjAsIDIwLCAyOTAsIDc1KTsKKyAgICAgICAgbG9n
KCJGQUlMOiBnZXRJbWFnZURhdGEgc3VjY2VlZGVkLiBDYW52YXMgbm90IHRhaW50ZWQuIik7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICBsb2coIlBBU1M6IGdldEltYWdlRGF0YSBmYWlsZWQu
IENhbnZhcyB0YWludGVkLiIpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CisgICAgPHA+VGhpcyB0ZXN0cyB0aGF0IGRyYXdpbmcgYSByZW1vdGUgU1ZHIGltYWdlIG9udG8g
YSBjYW52YXMgZnJvbSBhIGRhdGEgVVJMCisgICAgdGFpbnRzIHRoZSBjYW52YXM8L3A+CisgICAg
PHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisgICAgPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0i
MzMwIiBoZWlnaHQ9IjExNSI+PC9jYW52YXM+CisgICAgPGltZyBpZD0iaW1nIiBvbmxvYWQ9ImRy
YXcoKSIgc3JjPSdkYXRhOmltYWdlL3N2Zyt4bWwsCis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIKKyAgICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGxpbmsiCisgICAgIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj4KKyAgICA8aW1hZ2UgeGxpbms6
aHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9hYmUucG5nIgor
ICAgICAgICAgICB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPgorPC9zdmc+Jz4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2Fu
dmFzLXJlbW90ZS1yZWFkLXJlbW90ZS1pbWFnZS1kb2N1bWVudC1kb21haW4tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtcmVt
b3RlLWltYWdlLWRvY3VtZW50LWRvbWFpbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uOGM4YmNkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLXJlbW90ZS1pbWFnZS1kb2N1
bWVudC1kb21haW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUzogQ2FsbGluZyBn
ZXRJbWFnZURhdGEoKSBmcm9tIGEgY2FudmFzIHRhaW50ZWQgYnkgYSBkb2N1bWVudC5kb21haW4g
aW1hZ2Ugd2FzIGFsbG93ZWQuCitQQVNTOiBDYWxsaW5nIHRvRGF0YVVSTCgpIG9uIGEgY2FudmFz
IHRhaW50ZWQgYnkgYSBkb2N1bWVudC5kb21haW4gaW1hZ2Ugd2FzIGFsbG93ZWQuCitQQVNTOiBD
YWxsaW5nIGdldEltYWdlRGF0YSgpIGZyb20gYSBjYW52YXMgdGFpbnRlZCBieSBhIGRvY3VtZW50
LmRvbWFpbiBpbWFnZSBwYXR0ZXJuIHdhcyBhbGxvd2VkLgorUEFTUzogQ2FsbGluZyB0b0RhdGFV
UkwoKSBvbiBhIGNhbnZhcyB0YWludGVkIGJ5IGEgZG9jdW1lbnQuZG9tYWluIGltYWdlIHBhdHRl
cm4gd2FzIGFsbG93ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLXJlbW90ZS1pbWFnZS1kb2N1bWVudC1kb21haW4uaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLXJl
bW90ZS1pbWFnZS1kb2N1bWVudC1kb21haW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi41MjE0ODYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtcmVtb3RlLWltYWdlLWRvY3VtZW50LWRv
bWFpbi5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNj
cmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworfQorCisvLyBTZXQgdGhlICJoYXZlIHNldCBkb2N1bWVudC5kb21haW4iIGZs
YWcuCitkb2N1bWVudC5kb21haW4gPSBkb2N1bWVudC5kb21haW47CisKK2xvZyA9IGZ1bmN0aW9u
KG1zZykKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1zZyArICJcbiIpKTsKK30KKwordGVzdEdldElt
YWdlRGF0YSA9IGZ1bmN0aW9uKGNvbnRleHQsIGRlc2NyaXB0aW9uKQoreworICAgIGRlc2NyaXB0
aW9uID0gIkNhbGxpbmcgZ2V0SW1hZ2VEYXRhKCkgZnJvbSBhIGNhbnZhcyB0YWludGVkIGJ5IGEg
IiArIGRlc2NyaXB0aW9uOworICAgIHRyeSB7CisgICAgICAgIHZhciBpbWFnZURhdGEgPSBjb250
ZXh0LmdldEltYWdlRGF0YSgwLDAsMTAwLDEwMCk7CisgICAgICAgIGxvZygiUEFTUzogIiArIGRl
c2NyaXB0aW9uICsgIiB3YXMgYWxsb3dlZC4iKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
IGxvZygiRkFJTDogIiArIGRlc2NyaXB0aW9uICsgIiB3YXMgbm90IGFsbG93ZWQgLSBUaHJldyBl
cnJvcjogIiArIGUgKyAiLiIpOworICAgIH0KK30KKwordGVzdFRvRGF0YVVSTCA9IGZ1bmN0aW9u
KGNhbnZhcywgZGVzY3JpcHRpb24pCit7CisgICAgZGVzY3JpcHRpb24gPSAiQ2FsbGluZyB0b0Rh
dGFVUkwoKSBvbiBhIGNhbnZhcyB0YWludGVkIGJ5IGEgIiArIGRlc2NyaXB0aW9uOworICAgIHRy
eSB7CisgICAgICAgIHZhciBkYXRhVVJMID0gY2FudmFzLnRvRGF0YVVSTCgpOworICAgICAgICBs
b2coIlBBU1M6ICIgKyBkZXNjcmlwdGlvbiArICIgd2FzIGFsbG93ZWQuIik7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICBsb2coIkZBSUw6ICIgKyBkZXNjcmlwdGlvbiArICIgd2FzIG5vdCBh
bGxvd2VkIC0gVGhyZXcgZXJyb3I6ICIgKyBlICsgIi4iKTsKKyAgICB9Cit9CisKK3Rlc3QgPSBm
dW5jdGlvbihjYW52YXMsIGRlc2NyaXB0aW9uKQoreworICAgIHRlc3RHZXRJbWFnZURhdGEoY2Fu
dmFzLmdldENvbnRleHQoIjJkIiksIGRlc2NyaXB0aW9uKTsKKyAgICB0ZXN0VG9EYXRhVVJMKGNh
bnZhcywgZGVzY3JpcHRpb24pOworfQorCit2YXIgaW1hZ2UgPSBuZXcgSW1hZ2UoKTsKK2ltYWdl
Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJjYW52YXMiKTsKKyAgICBjYW52YXMud2lkdGggPSAxMDA7CisgICAgY2FudmFzLmhl
aWdodCA9IDEwMDsKKyAgICB2YXIgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwor
CisgICAgLy8gVGVzdCByZWFkaW5nIGZyb20gYSBjYW52YXMgYWZ0ZXIgZHJhd2luZyBhbiBpbWFn
ZSBvbnRvIGl0CisgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIDEwMCwgMTAwKTsK
KworICAgIHRlc3QoY2FudmFzLCAiZG9jdW1lbnQuZG9tYWluIGltYWdlIik7CisKKyAgICAvLyBU
ZXN0IHJlYWRpbmcgYWZ0ZXIgdXNpbmcgYSBwYXR0ZXJuCisgICAgY2FudmFzID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgICAgY2FudmFzLndpZHRoID0gMTAwOworICAgIGNh
bnZhcy5oZWlnaHQgPSAxMDA7CisgICAgdmFyIGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgi
MmQiKTsKKyAgICB2YXIgcmVtb3RlSW1hZ2VQYXR0ZXJuID0gY29udGV4dC5jcmVhdGVQYXR0ZXJu
KGltYWdlLCAicmVwZWF0Iik7CisgICAgY29udGV4dC5maWxsU3R5bGUgPSByZW1vdGVJbWFnZVBh
dHRlcm47CisgICAgY29udGV4dC5maWxsUmVjdCgwLCAwLCAxMDAsIDEwMCk7CisKKyAgICB0ZXN0
KGNhbnZhcywgImRvY3VtZW50LmRvbWFpbiBpbWFnZSBwYXR0ZXJuIik7CisKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Cit9CitpbWFnZS5zcmMgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3Vy
aXR5L3Jlc291cmNlcy9hYmUucG5nIjsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ZjJjNGEyLi4wNGQ5ZGI4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI5IEBACisyMDA5LTA5LTE5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FudmFzIGRy
YXduIHdpdGggZGF0YSBVUkwgaW1hZ2UgcmFpc2VzIFNFQ1VSSVRZX0VSUiB3aGVuIHRvRGF0YVVy
bCgpIGNhbGxlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI5MzA1CisKKyAgICAgICAgV2UgbmVlZCB0byBzcGVjaWFsLWNhc2UgZGF0YSBVUkxzIHdo
ZW4gdGFpbnRpbmcgYSBjYW52YXMgYmVjYXVzZSB3ZQorICAgICAgICB0cmVhdCBkYXRhIFVSTHMg
aGFzIGhhdmluZyBubyBzZWN1cml0eSBvcmlnaW4sIHVubGlrZSBvdGhlcgorICAgICAgICBicm93
c2Vycy4gIFRoZSByZWFzb24gd2UgZG8gdGhpcyBpcyB0byBoZWxwIHNpdGVzIGF2b2lkIFhTUyB2
aWEgZGF0YQorICAgICAgICBVUkxzLCBidXQgdGhhdCBjb25zaWRlcmF0aW9uIGRvZXNuJ3QgYXBw
bHkgdG8gY2FudmFzIHRhaW50LgorCisgICAgICAgIEFsc28sIHdlIHdlcmUgcHJldmlvdXNseSBp
bmNvcnJlY3RseSB0YWtpbmcgZG9jdW1lbnQuZG9tYWluIHN0YXRlCisgICAgICAgIGludG8gYWNj
b3VudCB3aGVuIHRhaW50aW5nIGNhbnZhcy4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9z
ZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtZGF0YS11cmwtaW1hZ2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtZGF0YS11cmwtc3Zn
LWltYWdlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJl
bW90ZS1yZWFkLXJlbW90ZS1pbWFnZS1kb2N1bWVudC1kb21haW4uaHRtbAorCisgICAgICAgICog
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2hlY2tPcmlnaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVQYXR0ZXJuKToKKyAgICAgICAg
KiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjp0YWludHNDYW52YXMpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaDoKKwog
MjAwOS0wOS0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGaXggc3R5bGlzdGljIGlzc3VlIHJhaXNlZCBpbiBjb2RlIHJldmlldyBmb3IgcHJldmlv
dXMgY29tbWl0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwCmluZGV4IDFlM2ZhYTMuLmVkNDYyZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTkzNSwxNiArOTM1LDEzIEBA
IHN0YXRpYyBpbmxpbmUgRmxvYXRSZWN0IG5vcm1hbGl6ZVJlY3QoY29uc3QgRmxvYXRSZWN0JiBy
ZWN0KQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2hlY2tPcmlnaW4oY29uc3Qg
S1VSTCYgdXJsKQogewotICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZSh1cmwpOwotICAgIGlmICghbV9jYW52YXMtPmRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCktPmNhbkFjY2VzcyhvcmlnaW4uZ2V0KCkpKQorICAgIGlmIChtX2NhbnZh
cy0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dGFpbnRzQ2FudmFzKHVybCkpCiAgICAg
ICAgIG1fY2FudmFzLT5zZXRPcmlnaW5UYWludGVkKCk7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjaGVja09yaWdpbihjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3Ry
aW5nKHVybCk7Ci0gICAgaWYgKCFtX2NhbnZhcy0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KS0+Y2FuQWNjZXNzKG9yaWdpbi5nZXQoKSkpCi0gICAgICAgIG1fY2FudmFzLT5zZXRPcmlnaW5U
YWludGVkKCk7CisgICAgY2hlY2tPcmlnaW4oS1VSTChLVVJMKCksIHVybCkpOwogfQogCiB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlKEhUTUxJbWFnZUVsZW1lbnQqIGlt
YWdlLCBmbG9hdCB4LCBmbG9hdCB5KQpAQCAtMTIwOCw4ICsxMjA1LDcgQEAgUGFzc1JlZlB0cjxD
YW52YXNQYXR0ZXJuPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZVBhdHRlcm4oSFRN
TEltYWdlRWxlbWUKICAgICBpZiAoIWNhY2hlZEltYWdlIHx8ICFpbWFnZS0+Y2FjaGVkSW1hZ2Uo
KS0+aW1hZ2UoKSkKICAgICAgICAgcmV0dXJuIENhbnZhc1BhdHRlcm46OmNyZWF0ZShJbWFnZTo6
bnVsbEltYWdlKCksIHJlcGVhdFgsIHJlcGVhdFksIHRydWUpOwogCi0gICAgUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhjYWNo
ZWRJbWFnZS0+dXJsKCkpOwotICAgIGJvb2wgb3JpZ2luQ2xlYW4gPSBtX2NhbnZhcy0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNjZXNzKG9yaWdpbi5nZXQoKSk7CisgICAgYm9v
bCBvcmlnaW5DbGVhbiA9ICFtX2NhbnZhcy0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+
dGFpbnRzQ2FudmFzKEtVUkwoS1VSTCgpLCBjYWNoZWRJbWFnZS0+dXJsKCkpKTsKICAgICByZXR1
cm4gQ2FudmFzUGF0dGVybjo6Y3JlYXRlKGNhY2hlZEltYWdlLT5pbWFnZSgpLCByZXBlYXRYLCBy
ZXBlYXRZLCBvcmlnaW5DbGVhbik7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5jcHAgYi9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDUw
NzZhZGYuLmI5MWMxZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcApAQCAtMjIxLDYgKzIyMSwy
MiBAQCBib29sIFNlY3VyaXR5T3JpZ2luOjpjYW5SZXF1ZXN0KGNvbnN0IEtVUkwmIHVybCkgY29u
c3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgU2VjdXJpdHlPcmlnaW46OnRhaW50c0Nh
bnZhcyhjb25zdCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgaWYgKGNhblJlcXVlc3QodXJsKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gVGhpcyBtZXRob2QgZXhpc3RzIGJlY2F1
c2Ugd2UgdHJlYXQgZGF0YSBVUkxzIGFzIG5vQWNjZXNzLCBjb250cmFyeQorICAgIC8vIHRvIHRo
ZSBjdXJyZW50ICg5LzE5LzIwMDkpIGRyYWZ0IG9mIHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9uLiAg
V2Ugc3RpbGwKKyAgICAvLyB3YW50IHRvIGxldCBmb2xrcyBwYWludCBkYXRhIFVSTHMgb250byB1
bnRhaW50ZWQgY2FudmFzZXMsIHNvIHdlIHNwZWNpYWwKKyAgICAvLyBjYXNlIGRhdGEgVVJMcyBi
ZWxvdy4gIElmIHdlIGNoYW5nZSB0byBtYXRjaCBIVE1MNSB3LnIudC4gZGF0YSBVUkwKKyAgICAv
LyBzZWN1cml0eSwgdGhlbiB3ZSBjYW4gcmVtb3ZlIHRoaXMgbWV0aG9kIGluIGZhdm9yIG9mICFj
YW5SZXF1ZXN0LgorICAgIGlmICh1cmwucHJvdG9jb2xJcygiZGF0YSIpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBTZWN1cml0eU9yaWdpbjo6
Z3JhbnRMb2FkTG9jYWxSZXNvdXJjZXMoKQogewogICAgIC8vIFRoaXMgbWV0aG9kIGV4aXN0cyBv
bmx5IHRvIHN1cHBvcnQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlcgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmggYi9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlPcmlnaW4uaAppbmRleCBjODA4NmFjLi43MzJhZmE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bh
Z2UvU2VjdXJpdHlPcmlnaW4uaAorKysgYi9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaApA
QCAtNzYsNiArNzYsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBYTUxIdHRw
UmVxdWVzdHMuCiAgICAgICAgIGJvb2wgY2FuUmVxdWVzdChjb25zdCBLVVJMJikgY29uc3Q7CiAK
KyAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGRyYXdpbmcgYW4gaW1hZ2UgZnJvbSB0aGlzIFVS
TCB0YWludHMgYSBjYW52YXMgZnJvbQorICAgICAgICAvLyB0aGlzIHNlY3VyaXR5IG9yaWdpbi4g
IEZvciBleGFtcGxlLCBjYWxsIHRoaXMgZnVuY3Rpb24gYmVmb3JlCisgICAgICAgIC8vIGRyYXdp
bmcgYW4gaW1hZ2Ugb250byBhbiBIVE1MIGNhbnZhcyBlbGVtZW50IHdpdGggdGhlIGRyYXdJbWFn
ZSBBUEkuCisgICAgICAgIGJvb2wgdGFpbnRzQ2FudmFzKGNvbnN0IEtVUkwmKSBjb25zdDsKKwog
ICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBTZWN1cml0eU9yaWdpbiBjYW4gbG9hZCBs
b2NhbCByZXNvdXJjZXMsIHN1Y2gKICAgICAgICAgLy8gYXMgaW1hZ2VzLCBpZnJhbWVzLCBhbmQg
c3R5bGUgc2hlZXRzLCBhbmQgY2FuIGxpbmsgdG8gbG9jYWwgVVJMcy4KICAgICAgICAgLy8gRm9y
IGV4YW1wbGUsIGNhbGwgdGhpcyBmdW5jdGlvbiBiZWZvcmUgY3JlYXRpbmcgYW4gaWZyYW1lIHRv
IGE=
</data>
<flag name="review"
          id="20956"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>