<?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>51035</bug_id>
          
          <creation_ts>2010-12-14 07:14:14 -0800</creation_ts>
          <short_desc>UCS2 encoding aliases should be defaulted to Big Endian</short_desc>
          <delta_ts>2010-12-16 11:55:47 -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>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>51185</dependson>
    
    <dependson>51187</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yong Li">yong.li.webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alex</cc>
    
    <cc>ap</cc>
    
    <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>mrobinson</cc>
    
    <cc>staikos</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>321951</commentid>
    <comment_count>0</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-14 07:14:14 -0800</bug_when>
    <thetext>I think UCS2 encoding names like &quot;ISO-10646-UCS-2&quot; should be treated as Big Endian, because:

1) http://www.isi.edu/in-notes/iana/assignments/character-sets says about ISO-10646-UCS-2: &quot;this needs to specify network byte order: the standard does not specify&quot;

2) RFC 2152 says: &quot;ISO/IEC 10646-1:1993(E) specifies that when characters the UCS-2 form are serialized as octets, that the most significant octet appear first.&quot;

3) ICU code page description (http://publib.boulder.ibm.com/infocenter/tivihelp/v24r1/index.jsp?topic=/com.ibm.itcama.doc_6.2.3/itcam_oraclerac63200.htm) says:

UCS2 	UCS-2 (Really UTF-16 BE)

4) IE and FireFox treat &quot;ISO-10646-UCS-2&quot; as Big Endian.

However, it is hard to find a website in reality that uses UCS2, except test cases. So priority should be low.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321982</commentid>
    <comment_count>1</comment_count>
      <attachid>76540</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-14 08:31:34 -0800</bug_when>
    <thetext>Created attachment 76540
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322058</commentid>
    <comment_count>2</comment_count>
      <attachid>76540</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-14 11:19:14 -0800</bug_when>
    <thetext>Comment on attachment 76540
the patch

&gt; 4) IE and FireFox treat &quot;ISO-10646-UCS-2&quot; as Big Endian.

Did you test other encoding names modified here? Do all the added sub-tests pass in IE and Firefox?

It&apos;s surprising that we fail on every page that&apos;s labeled as &quot;UTF-16&quot; and doesn&apos;t have a BOM. In fact, I recall that the current behavior is intentional, and was chosen for compatibility with other browsers - but I don&apos;t remember details of testing.

+// UCS2 encoding aliases.
+testDecode(&apos;ISO-10646-UCS-2&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
+testDecode(&apos;UCS-2&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
+testDecode(&apos;UTF-16&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
+testDecode(&apos;Unicode&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
+testDecode(&apos;csUnicode&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
+testDecode(&apos;unicodeFFFE&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
+testDecode(&apos;unicodeFEFF&apos;, &apos;a%00&apos;, &apos;U+0061&apos;);

This patch has confused terminology. Why did you label UTF-16 as a &quot;UCS2 encoding alias&quot;? It&apos;s clearly not.

UCS-2 is a historic name for 16-bit encoding defined by Unicode 1.0, and obsoleted by Unicode 2.0. I suspect that most or all clients treat it as UTF-16 in practice. ICU certainly does.

+testDecode(&apos;ISO-10646-UCS-2&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);

Please add tests for something besides zero bytes. While at it, please consider adding tests for whether surrogate pairs are supported for each of these encoding names.

Extending test coverage would is very welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322101</commentid>
    <comment_count>3</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-14 12:16:58 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 76540 [details])
&gt; &gt; 4) IE and FireFox treat &quot;ISO-10646-UCS-2&quot; as Big Endian.
&gt; 
&gt; Did you test other encoding names modified here? Do all the added sub-tests pass in IE and Firefox?
&gt; 
&gt; It&apos;s surprising that we fail on every page that&apos;s labeled as &quot;UTF-16&quot; and doesn&apos;t have a BOM. In fact, I recall that the current behavior is intentional, and was chosen for compatibility with other browsers - but I don&apos;t remember details of testing.
&gt; 
&gt; +// UCS2 encoding aliases.
&gt; +testDecode(&apos;ISO-10646-UCS-2&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; +testDecode(&apos;UCS-2&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; +testDecode(&apos;UTF-16&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; +testDecode(&apos;Unicode&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; +testDecode(&apos;csUnicode&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; +testDecode(&apos;unicodeFFFE&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; +testDecode(&apos;unicodeFEFF&apos;, &apos;a%00&apos;, &apos;U+0061&apos;);
&gt; 
&gt; This patch has confused terminology. Why did you label UTF-16 as a &quot;UCS2 encoding alias&quot;? It&apos;s clearly not.
&gt; 
&gt; UCS-2 is a historic name for 16-bit encoding defined by Unicode 1.0, and obsoleted by Unicode 2.0. I suspect that most or all clients treat it as UTF-16 in practice. ICU certainly does.
&gt; 
&gt; +testDecode(&apos;ISO-10646-UCS-2&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; 
&gt; Please add tests for something besides zero bytes. While at it, please consider adding tests for whether surrogate pairs are supported for each of these encoding names.
&gt; 
&gt; Extending test coverage would is very welcome.

(In reply to comment #2)
&gt; (From update of attachment 76540 [details])
&gt; &gt; 4) IE and FireFox treat &quot;ISO-10646-UCS-2&quot; as Big Endian.
&gt; 
&gt; Did you test other encoding names modified here? Do all the added sub-tests pass in IE and Firefox?

FireFox seems treat &quot;Unicode&quot; as UTF-8. But for other names, it uses Big Endian. Except, when using 0 bytes, it also works with little endian for &quot;UTF-16&quot;.

&gt; 
&gt; It&apos;s surprising that we fail on every page that&apos;s labeled as &quot;UTF-16&quot; and doesn&apos;t have a BOM. In fact, I recall that the current behavior is intentional, and was chosen for compatibility with other browsers - but I don&apos;t remember details of testing.
&gt; 
&gt; +// UCS2 encoding aliases.
&gt; +testDecode(&apos;ISO-10646-UCS-2&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; +testDecode(&apos;UCS-2&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; +testDecode(&apos;UTF-16&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; +testDecode(&apos;Unicode&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; +testDecode(&apos;csUnicode&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; +testDecode(&apos;unicodeFFFE&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; +testDecode(&apos;unicodeFEFF&apos;, &apos;a%00&apos;, &apos;U+0061&apos;);
&gt; 
&gt; This patch has confused terminology. Why did you label UTF-16 as a &quot;UCS2 encoding alias&quot;? It&apos;s clearly not.
&gt; 
&gt; UCS-2 is a historic name for 16-bit encoding defined by Unicode 1.0, and obsoleted by Unicode 2.0. I suspect that most or all clients treat it as UTF-16 in practice. ICU certainly does.
&gt;

Can I say they are aliases of UTF-16 then?

&gt; +testDecode(&apos;ISO-10646-UCS-2&apos;, &apos;%00a&apos;, &apos;U+0061&apos;);
&gt; 
&gt; Please add tests for something besides zero bytes. While at it, please consider adding tests for whether surrogate pairs are supported for each of these encoding names.
&gt; 
Will use surrogate pairs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322123</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-14 12:41:48 -0800</bug_when>
    <thetext>Please be sure to test Internet Explorer behavior in detail.

&gt; Can I say they are aliases of UTF-16 then?

I&apos;d just say &quot;UTF-16 variants&quot; - unicodeFFFE and unicodeFEFF clearly aren&apos;t aliases of the same encoding.

&gt; Will use surrogate pairs.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322137</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-14 12:57:57 -0800</bug_when>
    <thetext>Have we found any existing test cases on websites? It seems that 16-bit encodings without BOMs are extremely rare.

Is there some context other than viewing a webpage where this comes up? Form submission or XMLHttpRequest?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322149</commentid>
    <comment_count>6</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-14 13:10:18 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Have we found any existing test cases on websites? It seems that 16-bit encodings without BOMs are extremely rare.

Yeah. I can hardly find a real website sending UTF-16 without BOM. But seems everyone is saying UTF-16 without BOM should be UTF-16BE.

&gt; 
&gt; Is there some context other than viewing a webpage where this comes up? Form submission or XMLHttpRequest?

I&apos;m using data URL like &quot;data:text/plain;charset=UTF-16,%D8%69%DE%D6&quot; to be iframe source or just type it in address bar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322181</commentid>
    <comment_count>7</comment_count>
      <attachid>76567</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-14 13:56:47 -0800</bug_when>
    <thetext>Created attachment 76567
update test and expected result</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322186</commentid>
    <comment_count>8</comment_count>
      <attachid>76567</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-14 14:03:25 -0800</bug_when>
    <thetext>Comment on attachment 76567
update test and expected result

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

I think that key to landing this would be testing IE and Firefox with regular HTML files served over HTTP. Data URLs are a great trick for regression tests, but comparing browser behavior based on them isn&apos;t very reliable.

&gt; LayoutTests/fast/encoding/char-decoding-expected.txt:160
&gt; +PASS decodeSurrogatePair(&apos;UTF-16BE&apos;, &apos;%D8%69%DE%D6&apos;) is &apos;U+D869/U+DED6&apos;

I&apos;m not sure why decodeSurrogatePair is needed - does decode() not work for those? If so, could it be better to fix decode()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322193</commentid>
    <comment_count>9</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-14 14:11:05 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 76567 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=76567&amp;action=review
&gt; 
&gt; I think that key to landing this would be testing IE and Firefox with regular HTML files served over HTTP. Data URLs are a great trick for regression tests, but comparing browser behavior based on them isn&apos;t very reliable.
&gt; 
&gt; &gt; LayoutTests/fast/encoding/char-decoding-expected.txt:160
&gt; &gt; +PASS decodeSurrogatePair(&apos;UTF-16BE&apos;, &apos;%D8%69%DE%D6&apos;) is &apos;U+D869/U+DED6&apos;
&gt; 
&gt; I&apos;m not sure why decodeSurrogatePair is needed - does decode() not work for those? If so, could it be better to fix decode()?

decode() only returns one UTF-16 character. Do you think it is good to make decode() dump all characters in responseText?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322226</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-14 14:40:03 -0800</bug_when>
    <thetext>&gt; Do you think it is good to make decode() dump all characters in responseText?

I think so, but I haven&apos;t been involved in the original design of this test. Perhaps Darin will have some comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322366</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-14 17:10:18 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; Do you think it is good to make decode() dump all characters in responseText?
&gt; 
&gt; I think so, but I haven&apos;t been involved in the original design of this test. Perhaps Darin will have some comments.

Yes, decode should dump all the characters. There’s no advantage to have it returning only one. In fact, that behavior could hide failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322597</commentid>
    <comment_count>12</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-15 07:30:22 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; &gt; Do you think it is good to make decode() dump all characters in responseText?
&gt; &gt; 
&gt; &gt; I think so, but I haven&apos;t been involved in the original design of this test. Perhaps Darin will have some comments.
&gt; 
&gt; Yes, decode should dump all the characters. There’s no advantage to have it returning only one. In fact, that behavior could hide failures.

will do it in that way</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322609</commentid>
    <comment_count>13</comment_count>
      <attachid>76649</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-15 08:26:02 -0800</bug_when>
    <thetext>Created attachment 76649
updated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322610</commentid>
    <comment_count>14</comment_count>
      <attachid>76650</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-15 08:29:52 -0800</bug_when>
    <thetext>Created attachment 76650
test case updated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322787</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-15 13:31:34 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 76650:

http/tests/navigation/document-location-click-timeout.html bug 51130 (author: mpcomplete@chromium.org)
fast/loader/location-port.html bug 51131 (author: gns@gnome.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322872</commentid>
    <comment_count>16</comment_count>
      <attachid>76650</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-15 15:31:58 -0800</bug_when>
    <thetext>Comment on attachment 76650
test case updated

Rejecting attachment 76650 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-3&apos;, &apos;build-and-test&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--test&apos;, &apos;--non-interactive&apos;]&quot; exit_code: 2
Last 500 characters of output:
....................................................................................................................................................................................................
inspector .................................................................
inspector/styles-source-lines-inline.html -&gt; crashed

Exiting early after 1 failures. 17876 tests run.
405.07s total testing time

17875 test cases (99%) succeeded
1 test case (&lt;1%) crashed
8 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/7140055</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322914</commentid>
    <comment_count>17</comment_count>
      <attachid>76650</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-15 16:07:11 -0800</bug_when>
    <thetext>Comment on attachment 76650
test case updated

The failure seems unlikely to be related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322939</commentid>
    <comment_count>18</comment_count>
      <attachid>76650</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-15 16:55:32 -0800</bug_when>
    <thetext>Comment on attachment 76650
test case updated

Clearing flags on attachment: 76650

Committed r74162: &lt;http://trac.webkit.org/changeset/74162&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322940</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-15 16:55:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323160</commentid>
    <comment_count>20</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-12-16 07:17:17 -0800</bug_when>
    <thetext>This broke the hell out of GTK+ (&gt; 100 tests failing), so I reverted it in r74186. In the future please play attention to massive breakage in the bots when landing patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323161</commentid>
    <comment_count>21</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-12-16 07:17:58 -0800</bug_when>
    <thetext>Reopening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323172</commentid>
    <comment_count>22</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-12-16 07:42:25 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; This broke the hell out of GTK+ (&gt; 100 tests failing), so I reverted it in r74186. In the future please play attention to massive breakage in the bots when landing patches.

It also broke Safari on Windows&apos;s location field, search field, and error pages. These features use the IWebFrame::load[Alternate]HTMLString APIs, which end up calling through WebFrame::loadHTMLString [1]. BSTRs appear to be encoded with UTF-16LE, but we pass just &quot;utf-16&quot; as the encoding name to the SubstituteData constructor.

It looks like WebKit2&apos;s WebPage has this same problem [2].

1. http://trac.webkit.org/browser/trunk/WebKit/win/WebFrame.cpp?rev=73430
2. http://trac.webkit.org/browser/trunk/WebKit2/WebProcess/WebPage/WebPage.cpp?rev=74164</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323180</commentid>
    <comment_count>23</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-12-16 08:10:20 -0800</bug_when>
    <thetext>See also http://build.webkit.org/results/Windows%207%20Release%20(Tests)/r74170%20(7487)/fast/loader/non-deferred-substitute-load-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323183</commentid>
    <comment_count>24</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-16 08:20:54 -0800</bug_when>
    <thetext>Am I responsible to fix all these UTF-16 to UTF-16LE in all test cases/error pages? /me cries...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323184</commentid>
    <comment_count>25</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-16 08:22:02 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; Am I responsible to fix all these UTF-16 to UTF-16LE in all test cases/error pages? /me cries...

You don’t have to do it yourself, but you will have to talk with the people affected and wait until they’ve resolved these issues if you want to change this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323196</commentid>
    <comment_count>26</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-16 08:44:00 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; Am I responsible to fix all these UTF-16 to UTF-16LE in all test cases/error pages? /me cries...
&gt; You don’t have to do it yourself, but you will have to talk with the people affected and wait until they’ve resolved these issues if you want to change this.

Thanks a lot. I&apos;ll try to fix some first</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323203</commentid>
    <comment_count>27</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-16 09:00:11 -0800</bug_when>
    <thetext>Despite earlier Darin&apos;s r+, I would still appreciate more direct testing of IE behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323239</commentid>
    <comment_count>28</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-12-16 10:04:57 -0800</bug_when>
    <thetext>CCing a couple of GTK+ guys for the fallout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323242</commentid>
    <comment_count>29</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-16 10:06:44 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; Despite earlier Darin&apos;s r+, I would still appreciate more direct testing of IE behavior.

I didn’t mean to override your concern, Alexey. This is enough of an edge case that I think we are unlikely to have significant problems no matter which way we go. But I agree that would be very good to know about IE behavior based on resources, not just data URLs.

Also, I think it would be good to land the new tests either with expected failures or with expectations that match our current behavior, even if we can&apos;t make the change in WebCore right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323248</commentid>
    <comment_count>30</comment_count>
      <attachid>76780</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-16 10:16:36 -0800</bug_when>
    <thetext>Created attachment 76780
utf-16 test case

In fact, I&apos;ve just tested, and it appears that IE treats &quot;utf-16&quot; as little endian. See the attached test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323249</commentid>
    <comment_count>31</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-16 10:17:36 -0800</bug_when>
    <thetext>And so does Firefox, so WebKit matches both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323253</commentid>
    <comment_count>32</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-16 10:26:25 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; And so does Firefox, so WebKit matches both.

I don&apos;t understand the test case. Can you try these 2 URL in FireFox?
 
data:text/plain;charset=UTF-16,%D8%69%DE%D6

and 

data:text/plain;charset=UTF-16,%69%D8%D6%DE

To me, it shows FireFox uses BigEndian</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323256</commentid>
    <comment_count>33</comment_count>
      <attachid>76782</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-16 10:30:32 -0800</bug_when>
    <thetext>Created attachment 76782
test case with &lt;p&gt; removed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323258</commentid>
    <comment_count>34</comment_count>
      <attachid>76783</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-16 10:33:50 -0800</bug_when>
    <thetext>Created attachment 76783
test case - BE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323259</commentid>
    <comment_count>35</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-16 10:34:51 -0800</bug_when>
    <thetext>Seems IE is using little endian and firefox uses big endian for &quot;utf-16&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323260</commentid>
    <comment_count>36</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-16 10:36:03 -0800</bug_when>
    <thetext>So it appears that Firefox performed content sniffing to change the encoding (I think it&apos;s on by default as of Firefox 3.6.16).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323261</commentid>
    <comment_count>37</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-16 10:36:36 -0800</bug_when>
    <thetext>I meant 3.6.13, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323264</commentid>
    <comment_count>38</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-16 10:41:15 -0800</bug_when>
    <thetext>The currently preferred way to resolve such differences is via standardization in HTML5. In fact, HTML5 already sides with IE/WebKit:

---------------------------
When a user agent is to use the UTF-16 encoding but no BOM has been found, user agents must default to UTF-16LE.

Note: The requirement to default UTF-16 to LE rather than BE is a willful violation of RFC 2781, motivated by a desire for compatibility with legacy content. [RFC2781]
---------------------------

The tests added here are very good, and I suggest landing those. But it doesn&apos;t seem like we should be changing behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323266</commentid>
    <comment_count>39</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-16 10:43:04 -0800</bug_when>
    <thetext>(In reply to comment #38)
&gt; The currently preferred way to resolve such differences is via standardization in HTML5. In fact, HTML5 already sides with IE/WebKit:
&gt; ---------------------------
&gt; When a user agent is to use the UTF-16 encoding but no BOM has been found, user agents must default to UTF-16LE.
&gt; Note: The requirement to default UTF-16 to LE rather than BE is a willful violation of RFC 2781, motivated by a desire for compatibility with legacy content. [RFC2781]
&gt; ---------------------------
&gt; The tests added here are very good, and I suggest landing those. But it doesn&apos;t seem like we should be changing behavior.

Tend to agree. But probably we still want to handle &apos;ISO-10646-UCS-2&apos; and &apos;UCS-2&apos; as BE?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323267</commentid>
    <comment_count>40</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-16 10:43:42 -0800</bug_when>
    <thetext>(In reply to comment #39)
&gt; (In reply to comment #38)
&gt; &gt; The currently preferred way to resolve such differences is via standardization in HTML5. In fact, HTML5 already sides with IE/WebKit:
&gt; &gt; ---------------------------
&gt; &gt; When a user agent is to use the UTF-16 encoding but no BOM has been found, user agents must default to UTF-16LE.
&gt; &gt; Note: The requirement to default UTF-16 to LE rather than BE is a willful violation of RFC 2781, motivated by a desire for compatibility with legacy content. [RFC2781]
&gt; &gt; ---------------------------
&gt; &gt; The tests added here are very good, and I suggest landing those. But it doesn&apos;t seem like we should be changing behavior.
&gt; Tend to agree. But probably we still want to handle &apos;ISO-10646-UCS-2&apos; and &apos;UCS-2&apos; as BE?

As IE also uses BE for &apos;ISO-10646-UCS-2&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323268</commentid>
    <comment_count>41</comment_count>
      <attachid>76784</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-16 10:44:49 -0800</bug_when>
    <thetext>Created attachment 76784
Test case - BE - ISO-10646-UCS-2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323272</commentid>
    <comment_count>42</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-16 10:46:14 -0800</bug_when>
    <thetext>(In reply to comment #41)
&gt; Created an attachment (id=76784) [details]
&gt; Test case - BE - ISO-10646-UCS-2

Oops. I&apos;m wrong... werid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323276</commentid>
    <comment_count>43</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-16 10:50:13 -0800</bug_when>
    <thetext>Sorry. I think it is a false alarm...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323281</commentid>
    <comment_count>44</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-16 10:53:56 -0800</bug_when>
    <thetext>It seems that IE doesn&apos;t recognize ISO-10646-UCS-2 at all - browser default encoding was used instead. It doesn&apos;t matter whether we interpret it as little or big endian, but I&apos;m fine with matching Firefox and changing it to big endian. I&apos;m also fine with treating it exactly like &quot;utf-16&quot; for internal consistency.

Would you be willing to file a bug and make a patch with tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323284</commentid>
    <comment_count>45</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-12-16 10:55:00 -0800</bug_when>
    <thetext>(In reply to comment #44)
&gt; It seems that IE doesn&apos;t recognize ISO-10646-UCS-2 at all - browser default encoding was used instead. It doesn&apos;t matter whether we interpret it as little or big endian, but I&apos;m fine with matching Firefox and changing it to big endian. I&apos;m also fine with treating it exactly like &quot;utf-16&quot; for internal consistency.
&gt; Would you be willing to file a bug and make a patch with tests?

Sure. I&apos;ll update the patch to only include the tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323323</commentid>
    <comment_count>46</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-16 11:55:47 -0800</bug_when>
    <thetext>Bug 51199.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76540</attachid>
            <date>2010-12-14 08:31:34 -0800</date>
            <delta_ts>2010-12-14 13:56:47 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>51035.patch</filename>
            <type>text/plain</type>
            <size>2807</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNmI5MzBmLi5mYzIxMjk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMTIt
MTQgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUxMDM1CisgICAgICAgIEFsc28gdGVzdCBVQ1MyIGFsaWFzZXMuCisKKyAgICAgICAgKiBm
YXN0L2VuY29kaW5nL2NoYXItZGVjb2RpbmcuaHRtbDogQ2hhbmdlZC4KKwogMjAxMC0xMi0xMyAg
Sm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvY2hhci1kZWNvZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWRl
Y29kaW5nLmh0bWwKaW5kZXggYjkxMzM4OS4uMDJmYTA4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9lbmNvZGluZy9jaGFyLWRlY29kaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9jaGFyLWRlY29kaW5nLmh0bWwKQEAgLTkzLDYgKzkzLDE1IEBAIGJhdGNoVGVz
dERlY29kZSh0aGFpKTsKIHRlc3REZWNvZGUoJ1VURi03JywgJytBRDQnLCAnVSswMDJCJyk7CiB0
ZXN0RGVjb2RlKCd1dGYtNycsICcrQUQ0JywgJ1UrMDAyQicpOwogCisvLyBVQ1MyIGVuY29kaW5n
IGFsaWFzZXMuCit0ZXN0RGVjb2RlKCdJU08tMTA2NDYtVUNTLTInLCAnJTAwYScsICdVKzAwNjEn
KTsKK3Rlc3REZWNvZGUoJ1VDUy0yJywgJyUwMGEnLCAnVSswMDYxJyk7Cit0ZXN0RGVjb2RlKCdV
VEYtMTYnLCAnJTAwYScsICdVKzAwNjEnKTsKK3Rlc3REZWNvZGUoJ1VuaWNvZGUnLCAnJTAwYScs
ICdVKzAwNjEnKTsKK3Rlc3REZWNvZGUoJ2NzVW5pY29kZScsICclMDBhJywgJ1UrMDA2MScpOwor
dGVzdERlY29kZSgndW5pY29kZUZGRkUnLCAnJTAwYScsICdVKzAwNjEnKTsKK3Rlc3REZWNvZGUo
J3VuaWNvZGVGRUZGJywgJ2ElMDAnLCAnVSswMDYxJyk7CisKIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBiMjI5M2YzLi41YjQwNzAzIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEw
LTEyLTE0ICBZb25nIExpICA8eW9saUByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVDUzIgYWxpYXNlcyBsaWtlICJJU08tMTA2NDYtVUNT
LTIiIHNob3VsZCBiZSB0cmVhdGVkCisgICAgICAgIGFzIEJpZyBFbmRpYW4gd2hlbiBFbmRpYW4g
aXMgbm90IHNwZWNpZmllZCBpbiB0aGUgbmFtZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMDM1CisKKyAgICAgICAgVGVzdDogZmFzdC9lbmNvZGlu
Zy9jaGFyLWRlY29kaW5nLmh0bWwgKGNoYW5nZWQpCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0
L1RleHRDb2RlY1VURjE2LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1VURjE2Ojpy
ZWdpc3RlckVuY29kaW5nTmFtZXMpOgorCiAyMDEwLTExLTExICBZb25nIExpICA8eW9saUByaW0u
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0Q29kZWNVVEYxNi5jcHAKaW5kZXggZTg4ZTgzYi4uNDMyNmU1YSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVVRGMTYuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAg
dm9pZCBUZXh0Q29kZWNVVEYxNjo6cmVnaXN0ZXJFbmNvZGluZ05hbWVzKEVuY29kaW5nTmFtZVJl
Z2lzdHJhciByZWdpc3RyYXIpCiAgICAgcmVnaXN0cmFyKCJVVEYtMTZMRSIsICJVVEYtMTZMRSIp
OwogICAgIHJlZ2lzdHJhcigiVVRGLTE2QkUiLCAiVVRGLTE2QkUiKTsKIAotICAgIHJlZ2lzdHJh
cigiSVNPLTEwNjQ2LVVDUy0yIiwgIlVURi0xNkxFIik7Ci0gICAgcmVnaXN0cmFyKCJVQ1MtMiIs
ICJVVEYtMTZMRSIpOwotICAgIHJlZ2lzdHJhcigiVVRGLTE2IiwgIlVURi0xNkxFIik7Ci0gICAg
cmVnaXN0cmFyKCJVbmljb2RlIiwgIlVURi0xNkxFIik7Ci0gICAgcmVnaXN0cmFyKCJjc1VuaWNv
ZGUiLCAiVVRGLTE2TEUiKTsKLSAgICByZWdpc3RyYXIoInVuaWNvZGVGRUZGIiwgIlVURi0xNkxF
Iik7CisgICAgcmVnaXN0cmFyKCJJU08tMTA2NDYtVUNTLTIiLCAiVVRGLTE2QkUiKTsKKyAgICBy
ZWdpc3RyYXIoIlVDUy0yIiwgIlVURi0xNkJFIik7CisgICAgcmVnaXN0cmFyKCJVVEYtMTYiLCAi
VVRGLTE2QkUiKTsKKyAgICByZWdpc3RyYXIoIlVuaWNvZGUiLCAiVVRGLTE2QkUiKTsKKyAgICBy
ZWdpc3RyYXIoImNzVW5pY29kZSIsICJVVEYtMTZCRSIpOwogCisgICAgcmVnaXN0cmFyKCJ1bmlj
b2RlRkVGRiIsICJVVEYtMTZMRSIpOwogICAgIHJlZ2lzdHJhcigidW5pY29kZUZGRkUiLCAiVVRG
LTE2QkUiKTsKIH0KIAo=
</data>
<flag name="review"
          id="67510"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76567</attachid>
            <date>2010-12-14 13:56:47 -0800</date>
            <delta_ts>2010-12-15 08:26:02 -0800</delta_ts>
            <desc>update test and expected result</desc>
            <filename>51035.patch</filename>
            <type>text/plain</type>
            <size>6071</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNmI5MzBmLi43MDdlN2JjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMTIt
MTQgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUxMDM1CisgICAgICAgIEFkZCB0ZXN0cyBmb3IgVVRGLTE2IEJFL0xFIGFuZCB0aGVpciB2
YXJpYW50cy4KKworICAgICAgICAqIGZhc3QvZW5jb2RpbmcvY2hhci1kZWNvZGluZy5odG1sOiBD
aGFuZ2VkLgorCiAyMDEwLTEyLTEzICBKb2huIEtub3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWRlY29kaW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY2hhci1kZWNvZGluZy1leHBlY3RlZC50eHQKaW5kZXgg
MjZhZmU0OC4uMDU1ZTQyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9j
aGFyLWRlY29kaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L2NoYXItZGVjb2RpbmctZXhwZWN0ZWQudHh0CkBAIC0xNTcsNiArMTU3LDE1IEBAIFBBU1MgZGVj
b2RlKCdkb3MtODc0JywgJyVBMScpIGlzICdVKzBFMDEnCiBQQVNTIGRlY29kZSgnZG9zLTg3NCcs
ICclREInKSBpcyAnVStGOEMxJwogUEFTUyBkZWNvZGUoJ1VURi03JywgJytBRDQnKSBpcyAnVSsw
MDJCJwogUEFTUyBkZWNvZGUoJ3V0Zi03JywgJytBRDQnKSBpcyAnVSswMDJCJworUEFTUyBkZWNv
ZGVTdXJyb2dhdGVQYWlyKCdVVEYtMTZCRScsICclRDglNjklREUlRDYnKSBpcyAnVStEODY5L1Ur
REVENicKK1BBU1MgZGVjb2RlU3Vycm9nYXRlUGFpcignVVRGLTE2JywgJyVEOCU2OSVERSVENicp
IGlzICdVK0Q4NjkvVStERUQ2JworUEFTUyBkZWNvZGVTdXJyb2dhdGVQYWlyKCdJU08tMTA2NDYt
VUNTLTInLCAnJUQ4JTY5JURFJUQ2JykgaXMgJ1UrRDg2OS9VK0RFRDYnCitQQVNTIGRlY29kZVN1
cnJvZ2F0ZVBhaXIoJ1VDUy0yJywgJyVEOCU2OSVERSVENicpIGlzICdVK0Q4NjkvVStERUQ2Jwor
UEFTUyBkZWNvZGVTdXJyb2dhdGVQYWlyKCdVbmljb2RlJywgJyVEOCU2OSVERSVENicpIGlzICdV
K0Q4NjkvVStERUQ2JworUEFTUyBkZWNvZGVTdXJyb2dhdGVQYWlyKCdjc1VuaWNvZGUnLCAnJUQ4
JTY5JURFJUQ2JykgaXMgJ1UrRDg2OS9VK0RFRDYnCitQQVNTIGRlY29kZVN1cnJvZ2F0ZVBhaXIo
J3VuaWNvZGVGRkZFJywgJyVEOCU2OSVERSVENicpIGlzICdVK0Q4NjkvVStERUQ2JworUEFTUyBk
ZWNvZGVTdXJyb2dhdGVQYWlyKCdVVEYtMTZMRScsICclNjklRDglRDYlREUnKSBpcyAnVStEODY5
L1UrREVENicKK1BBU1MgZGVjb2RlU3Vycm9nYXRlUGFpcigndW5pY29kZUZFRkYnLCAnJTY5JUQ4
JUQ2JURFJykgaXMgJ1UrRDg2OS9VK0RFRDYnCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvY2hhci1kZWNvZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWRl
Y29kaW5nLmh0bWwKaW5kZXggYjkxMzM4OS4uN2YxNjk2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9lbmNvZGluZy9jaGFyLWRlY29kaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9jaGFyLWRlY29kaW5nLmh0bWwKQEAgLTkzLDYgKzkzLDE3IEBAIGJhdGNoVGVz
dERlY29kZSh0aGFpKTsKIHRlc3REZWNvZGUoJ1VURi03JywgJytBRDQnLCAnVSswMDJCJyk7CiB0
ZXN0RGVjb2RlKCd1dGYtNycsICcrQUQ0JywgJ1UrMDAyQicpOwogCisvLyBVVEYtMTYgYW5kIHZh
cmlhbnRzLgordGVzdERlY29kZVN1cnJvZ2F0ZVBhaXIoJ1VURi0xNkJFJywgJyVEOCU2OSVERSVE
NicsICdVK0Q4NjkvVStERUQ2Jyk7Cit0ZXN0RGVjb2RlU3Vycm9nYXRlUGFpcignVVRGLTE2Jywg
JyVEOCU2OSVERSVENicsICdVK0Q4NjkvVStERUQ2Jyk7Cit0ZXN0RGVjb2RlU3Vycm9nYXRlUGFp
cignSVNPLTEwNjQ2LVVDUy0yJywgJyVEOCU2OSVERSVENicsICdVK0Q4NjkvVStERUQ2Jyk7Cit0
ZXN0RGVjb2RlU3Vycm9nYXRlUGFpcignVUNTLTInLCAnJUQ4JTY5JURFJUQ2JywgJ1UrRDg2OS9V
K0RFRDYnKTsKK3Rlc3REZWNvZGVTdXJyb2dhdGVQYWlyKCdVbmljb2RlJywgJyVEOCU2OSVERSVE
NicsICdVK0Q4NjkvVStERUQ2Jyk7Cit0ZXN0RGVjb2RlU3Vycm9nYXRlUGFpcignY3NVbmljb2Rl
JywgJyVEOCU2OSVERSVENicsICdVK0Q4NjkvVStERUQ2Jyk7Cit0ZXN0RGVjb2RlU3Vycm9nYXRl
UGFpcigndW5pY29kZUZGRkUnLCAnJUQ4JTY5JURFJUQ2JywgJ1UrRDg2OS9VK0RFRDYnKTsKK3Rl
c3REZWNvZGVTdXJyb2dhdGVQYWlyKCdVVEYtMTZMRScsICclNjklRDglRDYlREUnLCAnVStEODY5
L1UrREVENicpOwordGVzdERlY29kZVN1cnJvZ2F0ZVBhaXIoJ3VuaWNvZGVGRUZGJywgJyU2OSVE
OCVENiVERScsICdVK0Q4NjkvVStERUQ2Jyk7CisKIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNv
dXJjZXMvY2hhci1kZWNvZGluZy11dGlscy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
cmVzb3VyY2VzL2NoYXItZGVjb2RpbmctdXRpbHMuanMKaW5kZXggYTA5MWFkOC4uZDJhZWU0NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvY2hhci1kZWNv
ZGluZy11dGlscy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Jlc291cmNlcy9j
aGFyLWRlY29kaW5nLXV0aWxzLmpzCkBAIC05LDIxICs5LDQwIEBAIGZ1bmN0aW9uIGhleChudW1i
ZXIpCiAgICAgcmV0dXJuIGhleDsKIH0KIAotZnVuY3Rpb24gZGVjb2RlKGNoYXJzZXROYW1lLCBj
aGFyYWN0ZXJTZXF1ZW5jZSkKK2Z1bmN0aW9uIGRlY29kZVRleHQoY2hhcnNldE5hbWUsIGNoYXJh
Y3RlclNlcXVlbmNlKQogewogICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CiAgICAg
cmVxLm9wZW4oJ0dFVCcsICdkYXRhOnRleHQvcGxhaW4sJyArIGNoYXJhY3RlclNlcXVlbmNlLCBm
YWxzZSk7CiAgICAgcmVxLm92ZXJyaWRlTWltZVR5cGUoJ3RleHQvcGxhaW47IGNoYXJzZXQ9Iicg
KyBjaGFyc2V0TmFtZSArICciJyk7CiAgICAgcmVxLnNlbmQoJycpOwotICAgIHZhciBjb2RlID0g
aGV4KHJlcS5yZXNwb25zZVRleHQuY2hhckNvZGVBdCgwKSk7CisgICAgcmV0dXJuIHJlcS5yZXNw
b25zZVRleHQ7Cit9CisKK2Z1bmN0aW9uIGRlY29kZShjaGFyc2V0TmFtZSwgY2hhcmFjdGVyU2Vx
dWVuY2UpCit7CisgICAgdmFyIGRlY29kZWRUZXh0ID0gZGVjb2RlVGV4dChjaGFyc2V0TmFtZSwg
Y2hhcmFjdGVyU2VxdWVuY2UpOworICAgIHZhciBjb2RlID0gaGV4KGRlY29kZWRUZXh0LmNoYXJD
b2RlQXQoMCkpOwogICAgIHJldHVybiAiVSsiICsgKCIwMDAwIiArIGNvZGUpLnN1YnN0cihjb2Rl
Lmxlbmd0aCwgNCk7CiB9CiAKK2Z1bmN0aW9uIGRlY29kZVN1cnJvZ2F0ZVBhaXIoY2hhcnNldE5h
bWUsIGNoYXJhY3RlclNlcXVlbmNlKQoreworICAgIHZhciBkZWNvZGVkVGV4dCA9IGRlY29kZVRl
eHQoY2hhcnNldE5hbWUsIGNoYXJhY3RlclNlcXVlbmNlKTsKKyAgICB2YXIgY29kZTEgPSBoZXgo
ZGVjb2RlZFRleHQuY2hhckNvZGVBdCgwKSk7CisgICAgdmFyIGNvZGUyID0gaGV4KGRlY29kZWRU
ZXh0LmNoYXJDb2RlQXQoMSkpOworICAgIHJldHVybiAiVSsiICsgKCIwMDAwIiArIGNvZGUxKS5z
dWJzdHIoY29kZTEubGVuZ3RoLCA0KSArICIvVSsiICsgKCIwMDAwIiArIGNvZGUyKS5zdWJzdHIo
Y29kZTIubGVuZ3RoLCA0KTs7Cit9CisKIGZ1bmN0aW9uIHRlc3REZWNvZGUoY2hhcnNldE5hbWUs
IGNoYXJhY3RlclNlcXVlbmNlLCB1bmljb2RlKQogewogICAgIHNob3VsZEJlKCJkZWNvZGUoJyIg
KyBjaGFyc2V0TmFtZSArICInLCAnIiArIGNoYXJhY3RlclNlcXVlbmNlICsgIicpIiwgIiciICsg
dW5pY29kZSArICInIik7CiB9CiAKK2Z1bmN0aW9uIHRlc3REZWNvZGVTdXJyb2dhdGVQYWlyKGNo
YXJzZXROYW1lLCBjaGFyYWN0ZXJTZXF1ZW5jZSwgdW5pY29kZSkKK3sKKyAgICBzaG91bGRCZSgi
ZGVjb2RlU3Vycm9nYXRlUGFpcignIiArIGNoYXJzZXROYW1lICsgIicsICciICsgY2hhcmFjdGVy
U2VxdWVuY2UgKyAiJykiLCAiJyIgKyB1bmljb2RlICsgIiciKTsKK30KKwogZnVuY3Rpb24gYmF0
Y2hUZXN0RGVjb2RlKGlucHV0RGF0YSkKIHsKICAgICBmb3IgKHZhciBpIGluIGlucHV0RGF0YS5l
bmNvZGluZ3MpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYjIyOTNmMy4uMDcyY2ZjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMi0xNCAg
WW9uZyBMaSAgPHlvbGlAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVVEYtMTYgYW5kIGl0cyB2YXJpYW50cyBzaG91bGQgYmUgdHJlYXRl
ZCBhcyBCaWcgRW5kaWFuIHdoZW4gQk9NCisgICAgICAgIGlzIGFic2VudC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMDM1CisKKyAgICAgICAgVGVz
dDogZmFzdC9lbmNvZGluZy9jaGFyLWRlY29kaW5nLmh0bWwgKGNoYW5nZWQpCisKKyAgICAgICAg
KiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDb2RlY1VURjE2OjpyZWdpc3RlckVuY29kaW5nTmFtZXMpOgorCiAyMDEwLTExLTExICBZb25n
IExpICA8eW9saUByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEYxNi5jcHAKaW5kZXggZTg4ZTgzYi4u
NDMyNmU1YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVVRGMTYuY3BwCkBAIC00
MCwxMyArNDAsMTMgQEAgdm9pZCBUZXh0Q29kZWNVVEYxNjo6cmVnaXN0ZXJFbmNvZGluZ05hbWVz
KEVuY29kaW5nTmFtZVJlZ2lzdHJhciByZWdpc3RyYXIpCiAgICAgcmVnaXN0cmFyKCJVVEYtMTZM
RSIsICJVVEYtMTZMRSIpOwogICAgIHJlZ2lzdHJhcigiVVRGLTE2QkUiLCAiVVRGLTE2QkUiKTsK
IAotICAgIHJlZ2lzdHJhcigiSVNPLTEwNjQ2LVVDUy0yIiwgIlVURi0xNkxFIik7Ci0gICAgcmVn
aXN0cmFyKCJVQ1MtMiIsICJVVEYtMTZMRSIpOwotICAgIHJlZ2lzdHJhcigiVVRGLTE2IiwgIlVU
Ri0xNkxFIik7Ci0gICAgcmVnaXN0cmFyKCJVbmljb2RlIiwgIlVURi0xNkxFIik7Ci0gICAgcmVn
aXN0cmFyKCJjc1VuaWNvZGUiLCAiVVRGLTE2TEUiKTsKLSAgICByZWdpc3RyYXIoInVuaWNvZGVG
RUZGIiwgIlVURi0xNkxFIik7CisgICAgcmVnaXN0cmFyKCJJU08tMTA2NDYtVUNTLTIiLCAiVVRG
LTE2QkUiKTsKKyAgICByZWdpc3RyYXIoIlVDUy0yIiwgIlVURi0xNkJFIik7CisgICAgcmVnaXN0
cmFyKCJVVEYtMTYiLCAiVVRGLTE2QkUiKTsKKyAgICByZWdpc3RyYXIoIlVuaWNvZGUiLCAiVVRG
LTE2QkUiKTsKKyAgICByZWdpc3RyYXIoImNzVW5pY29kZSIsICJVVEYtMTZCRSIpOwogCisgICAg
cmVnaXN0cmFyKCJ1bmljb2RlRkVGRiIsICJVVEYtMTZMRSIpOwogICAgIHJlZ2lzdHJhcigidW5p
Y29kZUZGRkUiLCAiVVRGLTE2QkUiKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76649</attachid>
            <date>2010-12-15 08:26:02 -0800</date>
            <delta_ts>2010-12-15 08:26:29 -0800</delta_ts>
            <desc>updated</desc>
            <filename>51035.patch</filename>
            <type>text/plain</type>
            <size>11408</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNmI5MzBmLi43MDdlN2JjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMTIt
MTQgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUxMDM1CisgICAgICAgIEFkZCB0ZXN0cyBmb3IgVVRGLTE2IEJFL0xFIGFuZCB0aGVpciB2
YXJpYW50cy4KKworICAgICAgICAqIGZhc3QvZW5jb2RpbmcvY2hhci1kZWNvZGluZy5odG1sOiBD
aGFuZ2VkLgorCiAyMDEwLTEyLTEzICBKb2huIEtub3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWRlY29kaW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY2hhci1kZWNvZGluZy1leHBlY3RlZC50eHQKaW5kZXgg
MjZhZmU0OC4uMDU1ZTQyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9j
aGFyLWRlY29kaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L2NoYXItZGVjb2RpbmctZXhwZWN0ZWQudHh0CkBAIC0xNTcsNiArMTU3LDE1IEBAIFBBU1MgZGVj
b2RlKCdkb3MtODc0JywgJyVBMScpIGlzICdVKzBFMDEnCiBQQVNTIGRlY29kZSgnZG9zLTg3NCcs
ICclREInKSBpcyAnVStGOEMxJwogUEFTUyBkZWNvZGUoJ1VURi03JywgJytBRDQnKSBpcyAnVSsw
MDJCJwogUEFTUyBkZWNvZGUoJ3V0Zi03JywgJytBRDQnKSBpcyAnVSswMDJCJworUEFTUyBkZWNv
ZGVTdXJyb2dhdGVQYWlyKCdVVEYtMTZCRScsICclRDglNjklREUlRDYnKSBpcyAnVStEODY5L1Ur
REVENicKK1BBU1MgZGVjb2RlU3Vycm9nYXRlUGFpcignVVRGLTE2JywgJyVEOCU2OSVERSVENicp
IGlzICdVK0Q4NjkvVStERUQ2JworUEFTUyBkZWNvZGVTdXJyb2dhdGVQYWlyKCdJU08tMTA2NDYt
VUNTLTInLCAnJUQ4JTY5JURFJUQ2JykgaXMgJ1UrRDg2OS9VK0RFRDYnCitQQVNTIGRlY29kZVN1
cnJvZ2F0ZVBhaXIoJ1VDUy0yJywgJyVEOCU2OSVERSVENicpIGlzICdVK0Q4NjkvVStERUQ2Jwor
UEFTUyBkZWNvZGVTdXJyb2dhdGVQYWlyKCdVbmljb2RlJywgJyVEOCU2OSVERSVENicpIGlzICdV
K0Q4NjkvVStERUQ2JworUEFTUyBkZWNvZGVTdXJyb2dhdGVQYWlyKCdjc1VuaWNvZGUnLCAnJUQ4
JTY5JURFJUQ2JykgaXMgJ1UrRDg2OS9VK0RFRDYnCitQQVNTIGRlY29kZVN1cnJvZ2F0ZVBhaXIo
J3VuaWNvZGVGRkZFJywgJyVEOCU2OSVERSVENicpIGlzICdVK0Q4NjkvVStERUQ2JworUEFTUyBk
ZWNvZGVTdXJyb2dhdGVQYWlyKCdVVEYtMTZMRScsICclNjklRDglRDYlREUnKSBpcyAnVStEODY5
L1UrREVENicKK1BBU1MgZGVjb2RlU3Vycm9nYXRlUGFpcigndW5pY29kZUZFRkYnLCAnJTY5JUQ4
JUQ2JURFJykgaXMgJ1UrRDg2OS9VK0RFRDYnCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZW5jb2Rp
bmcvY2hhci1kZWNvZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWRl
Y29kaW5nLmh0bWwKaW5kZXggYjkxMzM4OS4uN2YxNjk2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9lbmNvZGluZy9jaGFyLWRlY29kaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9lbmNvZGluZy9jaGFyLWRlY29kaW5nLmh0bWwKQEAgLTkzLDYgKzkzLDE3IEBAIGJhdGNoVGVz
dERlY29kZSh0aGFpKTsKIHRlc3REZWNvZGUoJ1VURi03JywgJytBRDQnLCAnVSswMDJCJyk7CiB0
ZXN0RGVjb2RlKCd1dGYtNycsICcrQUQ0JywgJ1UrMDAyQicpOwogCisvLyBVVEYtMTYgYW5kIHZh
cmlhbnRzLgordGVzdERlY29kZVN1cnJvZ2F0ZVBhaXIoJ1VURi0xNkJFJywgJyVEOCU2OSVERSVE
NicsICdVK0Q4NjkvVStERUQ2Jyk7Cit0ZXN0RGVjb2RlU3Vycm9nYXRlUGFpcignVVRGLTE2Jywg
JyVEOCU2OSVERSVENicsICdVK0Q4NjkvVStERUQ2Jyk7Cit0ZXN0RGVjb2RlU3Vycm9nYXRlUGFp
cignSVNPLTEwNjQ2LVVDUy0yJywgJyVEOCU2OSVERSVENicsICdVK0Q4NjkvVStERUQ2Jyk7Cit0
ZXN0RGVjb2RlU3Vycm9nYXRlUGFpcignVUNTLTInLCAnJUQ4JTY5JURFJUQ2JywgJ1UrRDg2OS9V
K0RFRDYnKTsKK3Rlc3REZWNvZGVTdXJyb2dhdGVQYWlyKCdVbmljb2RlJywgJyVEOCU2OSVERSVE
NicsICdVK0Q4NjkvVStERUQ2Jyk7Cit0ZXN0RGVjb2RlU3Vycm9nYXRlUGFpcignY3NVbmljb2Rl
JywgJyVEOCU2OSVERSVENicsICdVK0Q4NjkvVStERUQ2Jyk7Cit0ZXN0RGVjb2RlU3Vycm9nYXRl
UGFpcigndW5pY29kZUZGRkUnLCAnJUQ4JTY5JURFJUQ2JywgJ1UrRDg2OS9VK0RFRDYnKTsKK3Rl
c3REZWNvZGVTdXJyb2dhdGVQYWlyKCdVVEYtMTZMRScsICclNjklRDglRDYlREUnLCAnVStEODY5
L1UrREVENicpOwordGVzdERlY29kZVN1cnJvZ2F0ZVBhaXIoJ3VuaWNvZGVGRUZGJywgJyU2OSVE
OCVENiVERScsICdVK0Q4NjkvVStERUQ2Jyk7CisKIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNv
dXJjZXMvY2hhci1kZWNvZGluZy11dGlscy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2Rpbmcv
cmVzb3VyY2VzL2NoYXItZGVjb2RpbmctdXRpbHMuanMKaW5kZXggYTA5MWFkOC4uZDJhZWU0NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvY2hhci1kZWNv
ZGluZy11dGlscy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Jlc291cmNlcy9j
aGFyLWRlY29kaW5nLXV0aWxzLmpzCkBAIC05LDIxICs5LDQwIEBAIGZ1bmN0aW9uIGhleChudW1i
ZXIpCiAgICAgcmV0dXJuIGhleDsKIH0KIAotZnVuY3Rpb24gZGVjb2RlKGNoYXJzZXROYW1lLCBj
aGFyYWN0ZXJTZXF1ZW5jZSkKK2Z1bmN0aW9uIGRlY29kZVRleHQoY2hhcnNldE5hbWUsIGNoYXJh
Y3RlclNlcXVlbmNlKQogewogICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CiAgICAg
cmVxLm9wZW4oJ0dFVCcsICdkYXRhOnRleHQvcGxhaW4sJyArIGNoYXJhY3RlclNlcXVlbmNlLCBm
YWxzZSk7CiAgICAgcmVxLm92ZXJyaWRlTWltZVR5cGUoJ3RleHQvcGxhaW47IGNoYXJzZXQ9Iicg
KyBjaGFyc2V0TmFtZSArICciJyk7CiAgICAgcmVxLnNlbmQoJycpOwotICAgIHZhciBjb2RlID0g
aGV4KHJlcS5yZXNwb25zZVRleHQuY2hhckNvZGVBdCgwKSk7CisgICAgcmV0dXJuIHJlcS5yZXNw
b25zZVRleHQ7Cit9CisKK2Z1bmN0aW9uIGRlY29kZShjaGFyc2V0TmFtZSwgY2hhcmFjdGVyU2Vx
dWVuY2UpCit7CisgICAgdmFyIGRlY29kZWRUZXh0ID0gZGVjb2RlVGV4dChjaGFyc2V0TmFtZSwg
Y2hhcmFjdGVyU2VxdWVuY2UpOworICAgIHZhciBjb2RlID0gaGV4KGRlY29kZWRUZXh0LmNoYXJD
b2RlQXQoMCkpOwogICAgIHJldHVybiAiVSsiICsgKCIwMDAwIiArIGNvZGUpLnN1YnN0cihjb2Rl
Lmxlbmd0aCwgNCk7CiB9CiAKK2Z1bmN0aW9uIGRlY29kZVN1cnJvZ2F0ZVBhaXIoY2hhcnNldE5h
bWUsIGNoYXJhY3RlclNlcXVlbmNlKQoreworICAgIHZhciBkZWNvZGVkVGV4dCA9IGRlY29kZVRl
eHQoY2hhcnNldE5hbWUsIGNoYXJhY3RlclNlcXVlbmNlKTsKKyAgICB2YXIgY29kZTEgPSBoZXgo
ZGVjb2RlZFRleHQuY2hhckNvZGVBdCgwKSk7CisgICAgdmFyIGNvZGUyID0gaGV4KGRlY29kZWRU
ZXh0LmNoYXJDb2RlQXQoMSkpOworICAgIHJldHVybiAiVSsiICsgKCIwMDAwIiArIGNvZGUxKS5z
dWJzdHIoY29kZTEubGVuZ3RoLCA0KSArICIvVSsiICsgKCIwMDAwIiArIGNvZGUyKS5zdWJzdHIo
Y29kZTIubGVuZ3RoLCA0KTs7Cit9CisKIGZ1bmN0aW9uIHRlc3REZWNvZGUoY2hhcnNldE5hbWUs
IGNoYXJhY3RlclNlcXVlbmNlLCB1bmljb2RlKQogewogICAgIHNob3VsZEJlKCJkZWNvZGUoJyIg
KyBjaGFyc2V0TmFtZSArICInLCAnIiArIGNoYXJhY3RlclNlcXVlbmNlICsgIicpIiwgIiciICsg
dW5pY29kZSArICInIik7CiB9CiAKK2Z1bmN0aW9uIHRlc3REZWNvZGVTdXJyb2dhdGVQYWlyKGNo
YXJzZXROYW1lLCBjaGFyYWN0ZXJTZXF1ZW5jZSwgdW5pY29kZSkKK3sKKyAgICBzaG91bGRCZSgi
ZGVjb2RlU3Vycm9nYXRlUGFpcignIiArIGNoYXJzZXROYW1lICsgIicsICciICsgY2hhcmFjdGVy
U2VxdWVuY2UgKyAiJykiLCAiJyIgKyB1bmljb2RlICsgIiciKTsKK30KKwogZnVuY3Rpb24gYmF0
Y2hUZXN0RGVjb2RlKGlucHV0RGF0YSkKIHsKICAgICBmb3IgKHZhciBpIGluIGlucHV0RGF0YS5l
bmNvZGluZ3MpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYjIyOTNmMy4uMDcyY2ZjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMi0xNCAg
WW9uZyBMaSAgPHlvbGlAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVVEYtMTYgYW5kIGl0cyB2YXJpYW50cyBzaG91bGQgYmUgdHJlYXRl
ZCBhcyBCaWcgRW5kaWFuIHdoZW4gQk9NCisgICAgICAgIGlzIGFic2VudC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMDM1CisKKyAgICAgICAgVGVz
dDogZmFzdC9lbmNvZGluZy9jaGFyLWRlY29kaW5nLmh0bWwgKGNoYW5nZWQpCisKKyAgICAgICAg
KiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDb2RlY1VURjE2OjpyZWdpc3RlckVuY29kaW5nTmFtZXMpOgorCiAyMDEwLTExLTExICBZb25n
IExpICA8eW9saUByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCmluZGV4IDA4NWMxMzMuLmU0MzE4NzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU5NSw5ICs1
OTUsNiBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKIAogICAgIGlmIChtX21lZGlhUXVlcnlNYXRj
aGVyKQogICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT5kb2N1bWVudERlc3Ryb3llZCgpOwot
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3BlbmRpbmdUYXNrcy5zaXplKCk7ICsraSkK
LSAgICAgICAgZGVsZXRlIG1fcGVuZGluZ1Rhc2tzW2ldOwogfQogCiBNZWRpYVF1ZXJ5TWF0Y2hl
ciogRG9jdW1lbnQ6Om1lZGlhUXVlcnlNYXRjaGVyKCkKQEAgLTQ2OTMsMTEgKzQ2OTAsMTEgQEAg
c3RydWN0IFBlcmZvcm1UYXNrQ29udGV4dCA6IE5vbmNvcHlhYmxlIHsKICAgICBPd25QdHI8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gdGFzazsKIH07CiAKLXZvaWQgRG9jdW1lbnQ6OmRp
ZFJlY2VpdmVUYXNrKHZvaWQqIGN0eCkKK3ZvaWQgRG9jdW1lbnQ6OmRpZFJlY2VpdmVUYXNrKHZv
aWQqIHJhd0NvbnRleHQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIE93
blB0cjxQZXJmb3JtVGFza0NvbnRleHQ+IGNvbnRleHQocmVpbnRlcnByZXRfY2FzdDxQZXJmb3Jt
VGFza0NvbnRleHQqPihjdHgpKTsKKyAgICBPd25QdHI8UGVyZm9ybVRhc2tDb250ZXh0PiBjb250
ZXh0ID0gYWRvcHRQdHIoc3RhdGljX2Nhc3Q8UGVyZm9ybVRhc2tDb250ZXh0Kj4ocmF3Q29udGV4
dCkpOwogICAgIEFTU0VSVChjb250ZXh0KTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNv
bnRleHQtPmRvY3VtZW50UmVmZXJlbmNlLT5kb2N1bWVudCgpOwpAQCAtNDcyNSwyMCArNDcyMiwy
MCBAQCB2b2lkIERvY3VtZW50Ojpwb3N0VGFzayhQYXNzT3duUHRyPFRhc2s+IHRhc2spCiB2b2lk
IERvY3VtZW50OjpwZW5kaW5nVGFza3NUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopCiB7CiAg
ICAgd2hpbGUgKCFtX3BlbmRpbmdUYXNrcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgT3duUHRyPFRh
c2s+IHRhc2sobV9wZW5kaW5nVGFza3NbMF0pOworICAgICAgICBPd25QdHI8VGFzaz4gdGFzayA9
IG1fcGVuZGluZ1Rhc2tzWzBdLnJlbGVhc2UoKTsKICAgICAgICAgbV9wZW5kaW5nVGFza3MucmVt
b3ZlKDApOwogICAgICAgICB0YXNrLT5wZXJmb3JtVGFzayh0aGlzKTsKICAgICB9CiB9CiAKLXZv
aWQgRG9jdW1lbnQ6OndpbGxEZWZlckxvYWRpbmcoKQordm9pZCBEb2N1bWVudDo6c3VzcGVuZFNj
aGVkdWxlZFRhc2tzKCkKIHsKICAgICBzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVET01P
YmplY3Q6OldpbGxTaG93RGlhbG9nKTsKICAgICBhc3luY1NjcmlwdFJ1bm5lcigpLT5zdXNwZW5k
KCk7CiAgICAgbV9wZW5kaW5nVGFza3NUaW1lci5zdG9wKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6
OmRpZFJlc3VtZUxvYWRpbmcoKQordm9pZCBEb2N1bWVudDo6cmVzdW1lU2NoZWR1bGVkVGFza3Mo
KQogewogICAgIGlmICghbV9wZW5kaW5nVGFza3MuaXNFbXB0eSgpKQogICAgICAgICBtX3BlbmRp
bmdUYXNrc1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDQ1YmViZjIuLmY2OGRjOTEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMTA2Myw4ICsxMDYzLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBtYXlDYXVz
ZUZsYXNoT2ZVbnN0eWxlZENvbnRlbnQoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCB3aWxs
RGVmZXJMb2FkaW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlc3VtZUxvYWRpbmcoKTsKKyAg
ICB2b2lkIHN1c3BlbmRTY2hlZHVsZWRUYXNrcygpOworICAgIHZvaWQgcmVzdW1lU2NoZWR1bGVk
VGFza3MoKTsKIAogcHJvdGVjdGVkOgogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYg
dXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MLCBjb25zdCBLVVJMJiBiYXNlVVJMID0gS1VS
TCgpKTsKQEAgLTEzOTMsNyArMTM5Myw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE1lZGlhUXVl
cnlNYXRjaGVyPiBtX21lZGlhUXVlcnlNYXRjaGVyOwogCiAgICAgVGltZXI8RG9jdW1lbnQ+IG1f
cGVuZGluZ1Rhc2tzVGltZXI7Ci0gICAgVmVjdG9yPFRhc2sqPiBtX3BlbmRpbmdUYXNrczsKKyAg
ICBWZWN0b3I8T3duUHRyPFRhc2s+ID4gbV9wZW5kaW5nVGFza3M7CiB9OwogCiBpbmxpbmUgYm9v
bCBEb2N1bWVudDo6RG9jdW1lbnRPcmRlcmVkTWFwOjpjb250YWlucyhBdG9taWNTdHJpbmdJbXBs
KiBpZCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA5ZDVlN2QwLi4zYzc5OGQyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yNTQsNiArMjU0LDE1IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiAgICAgICAgIG1fZnJhbWUtPm5hdmln
YXRpb25TY2hlZHVsZXIoKS0+c3RhcnRUaW1lcigpOwogICAgICAgICBzdGFydENoZWNrQ29tcGxl
dGVUaW1lcigpOwogICAgIH0KKworICAgIC8vIFRoaXMgY29kZSBpcyBub3QgbG9naWNhbGx5IHBh
cnQgb2YgbG9hZCBkZWZlcnJpbmcsIGJ1dCB3ZSBkbyBub3Qgd2FudCBKUyBjb2RlIGV4ZWN1dGVk
IGJlbmVhdGggbW9kYWwKKyAgICAvLyB3aW5kb3dzIG9yIHNoZWV0cywgd2hpY2ggaXMgZXhhY3Rs
eSB3aGVuIFBhZ2VHcm91cExvYWREZWZlcnJlciBpcyB1c2VkLgorICAgIC8vIE5PVEU6IGlmIFBh
Z2VHcm91cExvYWREZWZlcnJlciBpcyBldmVyIHVzZWQgZm9yIHRhc2tzIG90aGVyIHRoYW4gc2hv
d2luZyBhIG1vZGFsIHdpbmRvdyBvciBzaGVldCwKKyAgICAvLyB0aGUgY29uc3RydWN0b3Igd2ls
bCBuZWVkIHRvIHRha2UgYSBBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNpb24uCisg
ICAgaWYgKGRlZmVycykKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c3VzcGVuZFNjaGVk
dWxlZFRhc2tzKCk7CisgICAgZWxzZQorICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5yZXN1
bWVTY2hlZHVsZWRUYXNrcygpOwogfQogCiBib29sIEZyYW1lTG9hZGVyOjpjYW5IYW5kbGVSZXF1
ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIGIvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExv
YWREZWZlcnJlci5jcHAKaW5kZXggYTZmY2I4NS4uMzJmZDQxOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2VH
cm91cExvYWREZWZlcnJlci5jcHAKQEAgLTM5LDM0ICszOSwyMyBAQCBQYWdlR3JvdXBMb2FkRGVm
ZXJyZXI6OlBhZ2VHcm91cExvYWREZWZlcnJlcihQYWdlKiBwYWdlLCBib29sIGRlZmVyU2VsZikK
ICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHBhZ2VzLmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBQYWdlKiBvdGhlclBhZ2UgPSAqaXQ7CiAg
ICAgICAgIGlmICgoZGVmZXJTZWxmIHx8IG90aGVyUGFnZSAhPSBwYWdlKSkgewotICAgICAgICAg
ICAgaWYgKCFvdGhlclBhZ2UtPmRlZmVyc0xvYWRpbmcoKSkgeworICAgICAgICAgICAgaWYgKCFv
dGhlclBhZ2UtPmRlZmVyc0xvYWRpbmcoKSkKICAgICAgICAgICAgICAgICBtX2RlZmVycmVkRnJh
bWVzLmFwcGVuZChvdGhlclBhZ2UtPm1haW5GcmFtZSgpKTsKLQotICAgICAgICAgICAgICAgIC8v
IFRoaXMgY29kZSBpcyBub3QgbG9naWNhbGx5IHBhcnQgb2YgbG9hZCBkZWZlcnJpbmcsIGJ1dCB3
ZSBkbyBub3Qgd2FudCBKUyBjb2RlIGV4ZWN1dGVkIGJlbmVhdGggbW9kYWwKLSAgICAgICAgICAg
ICAgICAvLyB3aW5kb3dzIG9yIHNoZWV0cywgd2hpY2ggaXMgZXhhY3RseSB3aGVuIFBhZ2VHcm91
cExvYWREZWZlcnJlciBpcyB1c2VkLgotICAgICAgICAgICAgICAgIC8vIE5PVEU6IGlmIFBhZ2VH
cm91cExvYWREZWZlcnJlciBpcyBldmVyIHVzZWQgZm9yIHRhc2tzIG90aGVyIHRoYW4gc2hvd2lu
ZyBhIG1vZGFsIHdpbmRvdyBvciBzaGVldCwKLSAgICAgICAgICAgICAgICAvLyB0aGUgY29uc3Ry
dWN0b3Igd2lsbCBuZWVkIHRvIHRha2UgYSBBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3Bl
bnNpb24uCi0gICAgICAgICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBvdGhlclBhZ2UtPm1h
aW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkK
LSAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndpbGxEZWZlckxvYWRpbmco
KTsKLSAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAogICAgIHNpemVfdCBjb3VudCA9
IG1fZGVmZXJyZWRGcmFtZXMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291
bnQ7ICsraSkKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2RlZmVycmVkRnJhbWVzW2ldLT5wYWdlKCkpCiAgICAgICAg
ICAgICBwYWdlLT5zZXREZWZlcnNMb2FkaW5nKHRydWUpOworICAgIH0KIH0KIAogUGFnZUdyb3Vw
TG9hZERlZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVyKCkKIHsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fZGVmZXJyZWRGcmFtZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYg
KFBhZ2UqIHBhZ2UgPSBtX2RlZmVycmVkRnJhbWVzW2ldLT5wYWdlKCkpIHsKKyAgICAgICAgaWYg
KFBhZ2UqIHBhZ2UgPSBtX2RlZmVycmVkRnJhbWVzW2ldLT5wYWdlKCkpCiAgICAgICAgICAgICBw
YWdlLT5zZXREZWZlcnNMb2FkaW5nKGZhbHNlKTsKLQotICAgICAgICAgICAgZm9yIChGcmFtZSog
ZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+
dHJhdmVyc2VOZXh0KCkpCi0gICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPmRpZFJl
c3VtZUxvYWRpbmcoKTsKLSAgICAgICAgfQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWNVVEYxNi5jcHAKaW5kZXggZTg4ZTgzYi4uNDMyNmU1YSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENvZGVjVVRGMTYuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgdm9pZCBU
ZXh0Q29kZWNVVEYxNjo6cmVnaXN0ZXJFbmNvZGluZ05hbWVzKEVuY29kaW5nTmFtZVJlZ2lzdHJh
ciByZWdpc3RyYXIpCiAgICAgcmVnaXN0cmFyKCJVVEYtMTZMRSIsICJVVEYtMTZMRSIpOwogICAg
IHJlZ2lzdHJhcigiVVRGLTE2QkUiLCAiVVRGLTE2QkUiKTsKIAotICAgIHJlZ2lzdHJhcigiSVNP
LTEwNjQ2LVVDUy0yIiwgIlVURi0xNkxFIik7Ci0gICAgcmVnaXN0cmFyKCJVQ1MtMiIsICJVVEYt
MTZMRSIpOwotICAgIHJlZ2lzdHJhcigiVVRGLTE2IiwgIlVURi0xNkxFIik7Ci0gICAgcmVnaXN0
cmFyKCJVbmljb2RlIiwgIlVURi0xNkxFIik7Ci0gICAgcmVnaXN0cmFyKCJjc1VuaWNvZGUiLCAi
VVRGLTE2TEUiKTsKLSAgICByZWdpc3RyYXIoInVuaWNvZGVGRUZGIiwgIlVURi0xNkxFIik7Cisg
ICAgcmVnaXN0cmFyKCJJU08tMTA2NDYtVUNTLTIiLCAiVVRGLTE2QkUiKTsKKyAgICByZWdpc3Ry
YXIoIlVDUy0yIiwgIlVURi0xNkJFIik7CisgICAgcmVnaXN0cmFyKCJVVEYtMTYiLCAiVVRGLTE2
QkUiKTsKKyAgICByZWdpc3RyYXIoIlVuaWNvZGUiLCAiVVRGLTE2QkUiKTsKKyAgICByZWdpc3Ry
YXIoImNzVW5pY29kZSIsICJVVEYtMTZCRSIpOwogCisgICAgcmVnaXN0cmFyKCJ1bmljb2RlRkVG
RiIsICJVVEYtMTZMRSIpOwogICAgIHJlZ2lzdHJhcigidW5pY29kZUZGRkUiLCAiVVRGLTE2QkUi
KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76650</attachid>
            <date>2010-12-15 08:29:52 -0800</date>
            <delta_ts>2010-12-15 16:55:32 -0800</delta_ts>
            <desc>test case updated</desc>
            <filename>51035.patch</filename>
            <type>text/plain</type>
            <size>6005</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNmI5MzBmLi5iY2Y4Mzk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTIt
MTQgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUxMDM1CisgICAgICAgIEFkZCB0ZXN0cyBmb3IgVVRGLTE2IEJFL0xFIGFuZCB0aGVpciB2
YXJpYW50cy4KKyAgICAgICAgQWxzbywgY2hlY2sgdGhlIGZ1bGwgZGVjb2RlZCB0ZXh0IGJ1dCBu
b3Qgb25seSB0aGUgZmlyc3Qgb25lLgorCisgICAgICAgICogZmFzdC9lbmNvZGluZy9jaGFyLWRl
Y29kaW5nLmh0bWw6CisgICAgICAgICogZmFzdC9lbmNvZGluZy9jaGFyLWRlY29kaW5nLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3Jlc291cmNlcy9jaGFyLWRlY29kaW5n
LXV0aWxzLmpzOgorCiAyMDEwLTEyLTEzICBKb2huIEtub3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWRlY29kaW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvY2hhci1kZWNvZGluZy1leHBlY3RlZC50eHQKaW5k
ZXggMjZhZmU0OC4uMzcyYjE3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy9jaGFyLWRlY29kaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29k
aW5nL2NoYXItZGVjb2RpbmctZXhwZWN0ZWQudHh0CkBAIC0xNTUsOCArMTU1LDE3IEBAIFBBU1Mg
ZGVjb2RlKCdkb3MtODc0JywgJyU5NicpIGlzICdVKzIwMTMnCiBQQVNTIGRlY29kZSgnZG9zLTg3
NCcsICclQTAnKSBpcyAnVSswMEEwJwogUEFTUyBkZWNvZGUoJ2Rvcy04NzQnLCAnJUExJykgaXMg
J1UrMEUwMScKIFBBU1MgZGVjb2RlKCdkb3MtODc0JywgJyVEQicpIGlzICdVK0Y4QzEnCi1QQVNT
IGRlY29kZSgnVVRGLTcnLCAnK0FENCcpIGlzICdVKzAwMkInCi1QQVNTIGRlY29kZSgndXRmLTcn
LCAnK0FENCcpIGlzICdVKzAwMkInCitQQVNTIGRlY29kZSgnVVRGLTcnLCAnK0FENCcpIGlzICdV
KzAwMkIvVSswMDQxL1UrMDA0NC9VKzAwMzQnCitQQVNTIGRlY29kZSgndXRmLTcnLCAnK0FENCcp
IGlzICdVKzAwMkIvVSswMDQxL1UrMDA0NC9VKzAwMzQnCitQQVNTIGRlY29kZSgnVVRGLTE2QkUn
LCAnJUQ4JTY5JURFJUQ2JykgaXMgJ1UrRDg2OS9VK0RFRDYnCitQQVNTIGRlY29kZSgnVVRGLTE2
JywgJyVEOCU2OSVERSVENicpIGlzICdVK0Q4NjkvVStERUQ2JworUEFTUyBkZWNvZGUoJ0lTTy0x
MDY0Ni1VQ1MtMicsICclRDglNjklREUlRDYnKSBpcyAnVStEODY5L1UrREVENicKK1BBU1MgZGVj
b2RlKCdVQ1MtMicsICclRDglNjklREUlRDYnKSBpcyAnVStEODY5L1UrREVENicKK1BBU1MgZGVj
b2RlKCdVbmljb2RlJywgJyVEOCU2OSVERSVENicpIGlzICdVK0Q4NjkvVStERUQ2JworUEFTUyBk
ZWNvZGUoJ2NzVW5pY29kZScsICclRDglNjklREUlRDYnKSBpcyAnVStEODY5L1UrREVENicKK1BB
U1MgZGVjb2RlKCd1bmljb2RlRkZGRScsICclRDglNjklREUlRDYnKSBpcyAnVStEODY5L1UrREVE
NicKK1BBU1MgZGVjb2RlKCdVVEYtMTZMRScsICclNjklRDglRDYlREUnKSBpcyAnVStEODY5L1Ur
REVENicKK1BBU1MgZGVjb2RlKCd1bmljb2RlRkVGRicsICclNjklRDglRDYlREUnKSBpcyAnVStE
ODY5L1UrREVENicKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9jaGFyLWRlY29kaW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2NoYXItZGVjb2RpbmcuaHRtbAppbmRl
eCBiOTEzMzg5Li41YzcxZjhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L2NoYXItZGVjb2RpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL2NoYXIt
ZGVjb2RpbmcuaHRtbApAQCAtODksOSArODksMjAgQEAgYmF0Y2hUZXN0RGVjb2RlKHRoYWkpOwog
CiAvLyBVVEYtNyBpcyBleHByZXNzbHkgZm9yYmlkZGVuLCBzbyBkZWNvZGluZyBpdCBzaG91bGQg
bm90IHdvcmsgY29ycmVjdGx5LgogLy8gVGhpcyBhdHRlbXB0cyB0byBkZWNvZGUgJzwnIGFzIFVU
Ri03ICgrQUQ0KSBidXQgaXQgZW5kcyB1cCBiZWluZyBkZWNvZGVkCi0vLyBhcyBhICcrJy4KLXRl
c3REZWNvZGUoJ1VURi03JywgJytBRDQnLCAnVSswMDJCJyk7Ci10ZXN0RGVjb2RlKCd1dGYtNycs
ICcrQUQ0JywgJ1UrMDAyQicpOworLy8gYXMgYSAnK0FENCcuCit0ZXN0RGVjb2RlKCdVVEYtNycs
ICcrQUQ0JywgJ1UrMDAyQi9VKzAwNDEvVSswMDQ0L1UrMDAzNCcpOwordGVzdERlY29kZSgndXRm
LTcnLCAnK0FENCcsICdVKzAwMkIvVSswMDQxL1UrMDA0NC9VKzAwMzQnKTsKKworLy8gVVRGLTE2
IGFuZCB2YXJpYW50cy4KK3Rlc3REZWNvZGUoJ1VURi0xNkJFJywgJyVEOCU2OSVERSVENicsICdV
K0Q4NjkvVStERUQ2Jyk7Cit0ZXN0RGVjb2RlKCdVVEYtMTYnLCAnJUQ4JTY5JURFJUQ2JywgJ1Ur
RDg2OS9VK0RFRDYnKTsKK3Rlc3REZWNvZGUoJ0lTTy0xMDY0Ni1VQ1MtMicsICclRDglNjklREUl
RDYnLCAnVStEODY5L1UrREVENicpOwordGVzdERlY29kZSgnVUNTLTInLCAnJUQ4JTY5JURFJUQ2
JywgJ1UrRDg2OS9VK0RFRDYnKTsKK3Rlc3REZWNvZGUoJ1VuaWNvZGUnLCAnJUQ4JTY5JURFJUQ2
JywgJ1UrRDg2OS9VK0RFRDYnKTsKK3Rlc3REZWNvZGUoJ2NzVW5pY29kZScsICclRDglNjklREUl
RDYnLCAnVStEODY5L1UrREVENicpOwordGVzdERlY29kZSgndW5pY29kZUZGRkUnLCAnJUQ4JTY5
JURFJUQ2JywgJ1UrRDg2OS9VK0RFRDYnKTsKK3Rlc3REZWNvZGUoJ1VURi0xNkxFJywgJyU2OSVE
OCVENiVERScsICdVK0Q4NjkvVStERUQ2Jyk7Cit0ZXN0RGVjb2RlKCd1bmljb2RlRkVGRicsICcl
NjklRDglRDYlREUnLCAnVStEODY5L1UrREVENicpOwogCiBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Jlc291cmNlcy9j
aGFyLWRlY29kaW5nLXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNvdXJj
ZXMvY2hhci1kZWNvZGluZy11dGlscy5qcwppbmRleCBhMDkxYWQ4Li4wN2QyZTYwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3Jlc291cmNlcy9jaGFyLWRlY29kaW5nLXV0
aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3VyY2VzL2NoYXItZGVj
b2RpbmctdXRpbHMuanMKQEAgLTksMTQgKzksMjYgQEAgZnVuY3Rpb24gaGV4KG51bWJlcikKICAg
ICByZXR1cm4gaGV4OwogfQogCi1mdW5jdGlvbiBkZWNvZGUoY2hhcnNldE5hbWUsIGNoYXJhY3Rl
clNlcXVlbmNlKQorZnVuY3Rpb24gZGVjb2RlVGV4dChjaGFyc2V0TmFtZSwgY2hhcmFjdGVyU2Vx
dWVuY2UpCiB7CiAgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKICAgICByZXEub3Bl
bignR0VUJywgJ2RhdGE6dGV4dC9wbGFpbiwnICsgY2hhcmFjdGVyU2VxdWVuY2UsIGZhbHNlKTsK
ICAgICByZXEub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC9wbGFpbjsgY2hhcnNldD0iJyArIGNoYXJz
ZXROYW1lICsgJyInKTsKICAgICByZXEuc2VuZCgnJyk7Ci0gICAgdmFyIGNvZGUgPSBoZXgocmVx
LnJlc3BvbnNlVGV4dC5jaGFyQ29kZUF0KDApKTsKLSAgICByZXR1cm4gIlUrIiArICgiMDAwMCIg
KyBjb2RlKS5zdWJzdHIoY29kZS5sZW5ndGgsIDQpOworICAgIHJldHVybiByZXEucmVzcG9uc2VU
ZXh0OworfQorCitmdW5jdGlvbiBkZWNvZGUoY2hhcnNldE5hbWUsIGNoYXJhY3RlclNlcXVlbmNl
KQoreworICAgIHZhciBkZWNvZGVkVGV4dCA9IGRlY29kZVRleHQoY2hhcnNldE5hbWUsIGNoYXJh
Y3RlclNlcXVlbmNlKTsKKyAgICB2YXIgcmVzdWx0ID0gIiI7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBkZWNvZGVkVGV4dC5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgY29kZSA9IGhleChk
ZWNvZGVkVGV4dC5jaGFyQ29kZUF0KGkpKTsKKyAgICAgICAgaWYgKGkpCisgICAgICAgICAgICBy
ZXN1bHQgKz0gIi8iOworICAgICAgICByZXN1bHQgKz0gIlUrIiArICgiMDAwMCIgKyBjb2RlKS5z
dWJzdHIoY29kZS5sZW5ndGgsIDQpOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBm
dW5jdGlvbiB0ZXN0RGVjb2RlKGNoYXJzZXROYW1lLCBjaGFyYWN0ZXJTZXF1ZW5jZSwgdW5pY29k
ZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggYjIyOTNmMy4uMDcyY2ZjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMi0xNCAgWW9uZyBMaSAg
PHlvbGlAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVVEYtMTYgYW5kIGl0cyB2YXJpYW50cyBzaG91bGQgYmUgdHJlYXRlZCBhcyBCaWcg
RW5kaWFuIHdoZW4gQk9NCisgICAgICAgIGlzIGFic2VudC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMDM1CisKKyAgICAgICAgVGVzdDogZmFzdC9l
bmNvZGluZy9jaGFyLWRlY29kaW5nLmh0bWwgKGNoYW5nZWQpCisKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1VU
RjE2OjpyZWdpc3RlckVuY29kaW5nTmFtZXMpOgorCiAyMDEwLTExLTExICBZb25nIExpICA8eW9s
aUByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEYxNi5jcHAKaW5kZXggZTg4ZTgzYi4uNDMyNmU1YSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVVRGMTYuY3BwCkBAIC00MCwxMyArNDAs
MTMgQEAgdm9pZCBUZXh0Q29kZWNVVEYxNjo6cmVnaXN0ZXJFbmNvZGluZ05hbWVzKEVuY29kaW5n
TmFtZVJlZ2lzdHJhciByZWdpc3RyYXIpCiAgICAgcmVnaXN0cmFyKCJVVEYtMTZMRSIsICJVVEYt
MTZMRSIpOwogICAgIHJlZ2lzdHJhcigiVVRGLTE2QkUiLCAiVVRGLTE2QkUiKTsKIAotICAgIHJl
Z2lzdHJhcigiSVNPLTEwNjQ2LVVDUy0yIiwgIlVURi0xNkxFIik7Ci0gICAgcmVnaXN0cmFyKCJV
Q1MtMiIsICJVVEYtMTZMRSIpOwotICAgIHJlZ2lzdHJhcigiVVRGLTE2IiwgIlVURi0xNkxFIik7
Ci0gICAgcmVnaXN0cmFyKCJVbmljb2RlIiwgIlVURi0xNkxFIik7Ci0gICAgcmVnaXN0cmFyKCJj
c1VuaWNvZGUiLCAiVVRGLTE2TEUiKTsKLSAgICByZWdpc3RyYXIoInVuaWNvZGVGRUZGIiwgIlVU
Ri0xNkxFIik7CisgICAgcmVnaXN0cmFyKCJJU08tMTA2NDYtVUNTLTIiLCAiVVRGLTE2QkUiKTsK
KyAgICByZWdpc3RyYXIoIlVDUy0yIiwgIlVURi0xNkJFIik7CisgICAgcmVnaXN0cmFyKCJVVEYt
MTYiLCAiVVRGLTE2QkUiKTsKKyAgICByZWdpc3RyYXIoIlVuaWNvZGUiLCAiVVRGLTE2QkUiKTsK
KyAgICByZWdpc3RyYXIoImNzVW5pY29kZSIsICJVVEYtMTZCRSIpOwogCisgICAgcmVnaXN0cmFy
KCJ1bmljb2RlRkVGRiIsICJVVEYtMTZMRSIpOwogICAgIHJlZ2lzdHJhcigidW5pY29kZUZGRkUi
LCAiVVRGLTE2QkUiKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>76780</attachid>
            <date>2010-12-16 10:16:36 -0800</date>
            <delta_ts>2010-12-16 10:16:36 -0800</delta_ts>
            <desc>utf-16 test case</desc>
            <filename>test.html</filename>
            <type>text/html; charset=utf-16</type>
            <size>28</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PABwAD4AHwRABD4EMgQ1BEAEOgQwBDwAcAA+AA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>76782</attachid>
            <date>2010-12-16 10:30:32 -0800</date>
            <delta_ts>2010-12-16 10:30:32 -0800</delta_ts>
            <desc>test case with &lt;p&gt; removed</desc>
            <filename>test.txt</filename>
            <type>text/plain; charset=utf-16</type>
            <size>16</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">HwRABD4EMgQ1BEAEOgQwBA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>76783</attachid>
            <date>2010-12-16 10:33:50 -0800</date>
            <delta_ts>2010-12-16 10:33:50 -0800</delta_ts>
            <desc>test case - BE</desc>
            <filename>test-be.txt</filename>
            <type>text/plain;charset=utf-16</type>
            <size>16</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">BB8EQAQ+BDIENQRABDoEMA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>76784</attachid>
            <date>2010-12-16 10:44:49 -0800</date>
            <delta_ts>2010-12-16 10:46:48 -0800</delta_ts>
            <desc>Test case - BE - ISO-10646-UCS-2</desc>
            <filename>test-be.txt</filename>
            <type>text/plain;charset=&quot;ISO-10646-UCS-2&quot;</type>
            <size>16</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">BB8EQAQ+BDIENQRABDoEMA==
</data>

          </attachment>
      

    </bug>

</bugzilla>