<?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>67584</bug_id>
          
          <creation_ts>2011-09-04 21:43:33 -0700</creation_ts>
          <short_desc>[Chromium] Add WebSandboxSupport and WebThemeEngine for Android.</short_desc>
          <delta_ts>2011-09-09 09:57:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Android</rep_platform>
          <op_sys>Android</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>
          
          <blocked>66689</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Hao Zheng">zhenghao</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>andreip</cc>
    
    <cc>fishd</cc>
    
    <cc>peter</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>462020</commentid>
    <comment_count>0</comment_count>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-09-04 21:43:33 -0700</bug_when>
    <thetext>This will make src/PlatformSupport.cpp and src/WebFrameImpl.cpp compile on Chromium port for Android.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462024</commentid>
    <comment_count>1</comment_count>
      <attachid>106303</attachid>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-09-04 21:48:36 -0700</bug_when>
    <thetext>Created attachment 106303
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462029</commentid>
    <comment_count>2</comment_count>
      <attachid>106303</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-04 22:15:35 -0700</bug_when>
    <thetext>Comment on attachment 106303
Proposed patch.

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

&gt; Source/WebKit/chromium/public/android/WebThemeEngine.h:36
&gt; +#include &quot;../WebCanvas.h&quot;
&gt; +#include &quot;../WebColor.h&quot;
&gt; +#include &quot;../WebSize.h&quot;

I think these includes shouldn&apos;t have the &quot;../&quot; part, but I&apos;m not 100% sure.

&gt; Source/WebKit/chromium/src/PlatformSupport.cpp:467
&gt; +    // TODO(zhenghao): use simple logic for now.

TODO(zhenghao) =&gt; FIXME

&gt; Source/WebKit/chromium/src/PlatformSupport.cpp:468
&gt; +    return WebString(&quot;Arial&quot;);

This seems really lame.  Should we file a bug and include a link here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462044</commentid>
    <comment_count>3</comment_count>
      <attachid>106309</attachid>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-09-04 23:29:48 -0700</bug_when>
    <thetext>Created attachment 106309
Proposed patch 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462051</commentid>
    <comment_count>4</comment_count>
      <attachid>106310</attachid>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-09-04 23:49:25 -0700</bug_when>
    <thetext>Created attachment 106310
Proposed patch 3.

I tried to remove &apos;../&apos; from #include path, but it caused compile errors on chromium/linux:
In file included from out/Release/obj/gen/webkit/third_party/WebKit/Source/WebKit/chromium/public/linux/WebThemeEngine.h:2,
                 from Source/WebKit/chromium/webkit/glue/webthemeengine_impl_linux.h:8,
                 from Source/WebKit/chromium/webkit/glue/webkitclient_impl.h:16,
                 from Source/WebKit/chromium/webkit/glue/webkitclient_impl.cc:5:
So for future implementation of webthemeengine_impl_android, we need keep &apos;../&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462080</commentid>
    <comment_count>5</comment_count>
      <attachid>106310</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-09-05 02:24:48 -0700</bug_when>
    <thetext>Comment on attachment 106310
Proposed patch 3.

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

&gt; Source/WebKit/chromium/WebKit.gyp:92
&gt; +                &apos;public/android/WebSandboxSupport.h&apos;,

This new file doesn&apos;t seem to be used by any of the other code you&apos;re adding here, so is it best to add it in a separate change with the code that uses it? That way the addition will have more context and you can perhaps add some of the methods too, rather than just an empty class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462081</commentid>
    <comment_count>6</comment_count>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-09-05 02:28:55 -0700</bug_when>
    <thetext>&quot;WebSandboxSupport.h&quot; is used by PlatformSupport.cpp. I need it to compile successfully.

(In reply to comment #5)
&gt; (From update of attachment 106310 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=106310&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/WebKit.gyp:92
&gt; &gt; +                &apos;public/android/WebSandboxSupport.h&apos;,
&gt; 
&gt; This new file doesn&apos;t seem to be used by any of the other code you&apos;re adding here, so is it best to add it in a separate change with the code that uses it? That way the addition will have more context and you can perhaps add some of the methods too, rather than just an empty class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462082</commentid>
    <comment_count>7</comment_count>
      <attachid>106310</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-09-05 02:34:17 -0700</bug_when>
    <thetext>Comment on attachment 106310
Proposed patch 3.

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

&gt;&gt;&gt; Source/WebKit/chromium/WebKit.gyp:92

&gt;&gt; 
&gt;&gt; This new file doesn&apos;t seem to be used by any of the other code you&apos;re adding here, so is it best to add it in a separate change with the code that uses it? That way the addition will have more context and you can perhaps add some of the methods too, rather than just an empty class.
&gt; 
&gt; 

But WebSandboxSupport isn&apos;t used in PlatformSupport.cpp on Android, right? So I still think it&apos;s best to hold off on WebSandboxSupport until there&apos;s more context. Adding an empty class is a little odd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462204</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-05 11:40:22 -0700</bug_when>
    <thetext>&gt; I tried to remove &apos;../&apos; from #include path, but it caused compile errors on chromium/linux:

Ok.  I&apos;m probably wrong about that then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462205</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-05 11:42:09 -0700</bug_when>
    <thetext>When you&apos;re ready, please add fishd@chromium.org to the CC list.  Because this patch touches code in Source/WebKit/chromium/public, he&apos;ll need to do the final review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462242</commentid>
    <comment_count>10</comment_count>
      <attachid>106310</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-09-05 13:20:56 -0700</bug_when>
    <thetext>Comment on attachment 106310
Proposed patch 3.

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

&gt; Source/WebKit/chromium/public/android/WebSandboxSupport.h:38
&gt; +class WebSandboxSupport {

As discussed, I&apos;m very hesitant about adding an empty class. You should either provide an explanation of why it&apos;s empty, a bug for when it will be filled out, or ideally avoid the need for it altogether.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462353</commentid>
    <comment_count>11</comment_count>
      <attachid>106385</attachid>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-09-05 21:23:25 -0700</bug_when>
    <thetext>Created attachment 106385
Proposed patch 4.

WebKit::WebSandboxSupport is needed for many files to compile in chromium (&apos;grep WebSandboxSupport&apos; in WebKit&amp;chromium dir), so use an empty class for now. Add a FIXME there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462437</commentid>
    <comment_count>12</comment_count>
      <attachid>106385</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-09-06 02:40:20 -0700</bug_when>
    <thetext>Comment on attachment 106385
Proposed patch 4.

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

LGTM

&gt; Source/WebKit/chromium/public/android/WebSandboxSupport.h:2
&gt; + * Copyright (C) 2010 Google Inc. All rights reserved.

s/2010/2011

&gt; Source/WebKit/chromium/public/android/WebSandboxSupport.h:36
&gt; +// FIXME: Empty class for now, as we need it to compile.

Please link to a bug so this ugliness doesn&apos;t get forgotten about.

&gt; Source/WebKit/chromium/public/android/WebSandboxSupport.h:37
&gt; +// Put methods here that are required due to sandbox restrictions.

I don&apos;t think this comment is needed

&gt; Source/WebKit/chromium/public/android/WebThemeEngine.h:2
&gt; + * Copyright (C) 2010 Google Inc. All rights reserved.

s/2010/2011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462445</commentid>
    <comment_count>13</comment_count>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-09-06 03:02:03 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 106385 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=106385&amp;action=review
&gt; 
&gt; LGTM

Thanks!

&gt; 
&gt; &gt; Source/WebKit/chromium/public/android/WebSandboxSupport.h:2
&gt; &gt; + * Copyright (C) 2010 Google Inc. All rights reserved.
&gt; 
&gt; s/2010/2011

Ok.

&gt; 
&gt; &gt; Source/WebKit/chromium/public/android/WebSandboxSupport.h:36
&gt; &gt; +// FIXME: Empty class for now, as we need it to compile.
&gt; 
&gt; Please link to a bug so this ugliness doesn&apos;t get forgotten about.
&gt; 

Actually, I don&apos;t think it&apos;s ugly at all. All we need is a null class to conform to the APIs. And we don&apos;t have any methods in our own code (not yet upstreamed code) also, until now at least. It&apos;s same as extracting an interface, and providing some substantial implementation on some ports, and providing a null implementation on other ports. If we don&apos;t expect to add any methods there, shall I file a bug?

&gt; &gt; Source/WebKit/chromium/public/android/WebSandboxSupport.h:37
&gt; &gt; +// Put methods here that are required due to sandbox restrictions.
&gt; 
&gt; I don&apos;t think this comment is needed
&gt; 
&gt; &gt; Source/WebKit/chromium/public/android/WebThemeEngine.h:2
&gt; &gt; + * Copyright (C) 2010 Google Inc. All rights reserved.
&gt; 
&gt; s/2010/2011

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462456</commentid>
    <comment_count>14</comment_count>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2011-09-06 04:23:41 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/public/android/WebSandboxSupport.h:36
&gt; &gt; &gt; +// FIXME: Empty class for now, as we need it to compile.
&gt; &gt; 
&gt; &gt; Please link to a bug so this ugliness doesn&apos;t get forgotten about.
&gt; &gt; 
&gt; 
&gt; Actually, I don&apos;t think it&apos;s ugly at all. All we need is a null class to conform to the APIs. And we don&apos;t have any methods in our own code (not yet upstreamed code) also, until now at least. It&apos;s same as extracting an interface, and providing some substantial implementation on some ports, and providing a null implementation on other ports. If we don&apos;t expect to add any methods there, shall I file a bug?

I think the ideal solution would be to leave out the WebSandboxSupport.h file for Android altogether as we don&apos;t need it (see the comment at WebKitPlatformSupport::sandboxSupport() [1]).
This will indeed cause errors at Chromium&apos;s side[2], for which we either have to define WebKit::WebSandboxSupport as an empty class there, or change RendererWebKitPlatformSupportImpl::SandboxSupport to not inherit from it. Either way, RendererWebKitPlatformSupportImpl::sandboxSupport should probably return NULL.

fishd, do you have a view on this? The comment states that sandboxSupport() can return NULL in case the platform doesn&apos;t need it, which is the case for Android, but current code requires the class WebKit::WebSandboxSupport to be defined.

[1] http://codesearch.google.com/#OAMlx_jo-ck/src/third_party/WebKit/Source/WebKit/chromium/public/WebKitPlatformSupport.h&amp;l=85
[2] See renderer_webkitplatformsupport_impl.cc and ppapi_webkitplatformsupport_impl.cc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462458</commentid>
    <comment_count>15</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-09-06 04:31:11 -0700</bug_when>
    <thetext>&gt; This will indeed cause errors at Chromium&apos;s side[2], for which we either have to define WebKit::WebSandboxSupport as an empty class there, or change RendererWebKitPlatformSupportImpl::SandboxSupport to not inherit from it. Either way, RendererWebKitPlatformSupportImpl::sandboxSupport should probably return NULL.
Agreed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462545</commentid>
    <comment_count>16</comment_count>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-09-06 08:34:47 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/chromium/public/android/WebSandboxSupport.h:36
&gt; &gt; &gt; &gt; +// FIXME: Empty class for now, as we need it to compile.
&gt; &gt; &gt; 
&gt; &gt; &gt; Please link to a bug so this ugliness doesn&apos;t get forgotten about.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; Actually, I don&apos;t think it&apos;s ugly at all. All we need is a null class to conform to the APIs. And we don&apos;t have any methods in our own code (not yet upstreamed code) also, until now at least. It&apos;s same as extracting an interface, and providing some substantial implementation on some ports, and providing a null implementation on other ports. If we don&apos;t expect to add any methods there, shall I file a bug?
&gt; 
&gt; I think the ideal solution would be to leave out the WebSandboxSupport.h file for Android altogether as we don&apos;t need it (see the comment at WebKitPlatformSupport::sandboxSupport() [1]).

Even we return NULL at WebKitPlatformSupport::sandboxSupport() and other similar points, we still need an empty class in WebSandboxSupport.h, because the return type is WebSandboxSupport. If we don&apos;t provide an empty class, there will be link error. It&apos;s an API, so I think we cannot say we don&apos;t need it.

&gt; This will indeed cause errors at Chromium&apos;s side[2], for which we either have to define WebKit::WebSandboxSupport as an empty class there, or change RendererWebKitPlatformSupportImpl::SandboxSupport to not inherit from it. Either way, RendererWebKitPlatformSupportImpl::sandboxSupport should probably return NULL.
&gt; 
&gt; fishd, do you have a view on this? The comment states that sandboxSupport() can return NULL in case the platform doesn&apos;t need it, which is the case for Android, but current code requires the class WebKit::WebSandboxSupport to be defined.
&gt; 
&gt; [1] http://codesearch.google.com/#OAMlx_jo-ck/src/third_party/WebKit/Source/WebKit/chromium/public/WebKitPlatformSupport.h&amp;l=85
&gt; [2] See renderer_webkitplatformsupport_impl.cc and ppapi_webkitplatformsupport_impl.cc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463938</commentid>
    <comment_count>17</comment_count>
      <attachid>106385</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-09-08 00:16:53 -0700</bug_when>
    <thetext>Comment on attachment 106385
Proposed patch 4.

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

&gt; Source/WebKit/chromium/public/android/WebSandboxSupport.h:38
&gt; +class WebSandboxSupport {

I&apos;m confused about why you need this.  Ordinarily, this is only required if someone actually tries to use the pointer returned via WebKitPlatformSupport::sandboxSupport().  Otherwise the &quot;class WebSandboxSupport;&quot; forward decl should be sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463951</commentid>
    <comment_count>18</comment_count>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-09-08 01:31:06 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 106385 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=106385&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/android/WebSandboxSupport.h:38
&gt; &gt; +class WebSandboxSupport {
&gt; 
&gt; I&apos;m confused about why you need this.  Ordinarily, this is only required if someone actually tries to use the pointer returned via WebKitPlatformSupport::sandboxSupport().  Otherwise the &quot;class WebSandboxSupport;&quot; forward decl should be sufficient.

Hi Darin,
Code won&apos;t compile if we don&apos;t supply WebSandboxSupport.h.

third_party/WebKit/Source/WebKit/chromium/src/PlatformSupport.cpp:55:31: error: WebSandboxSupport.h: No such file or directory
make: *** [out/Release/obj.target/webkit/third_party/WebKit/Source/WebKit/chromium/src/PlatformBridge.o] Error 1

Shall I use some OS guard to exclude it on Android?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463954</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-08 01:43:27 -0700</bug_when>
    <thetext>&gt; Shall I use some OS guard to exclude it on Android?

Does that file exist in any configuration?  Perhaps we should just remove that include line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463960</commentid>
    <comment_count>20</comment_count>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-09-08 02:17:08 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; &gt; Shall I use some OS guard to exclude it on Android?
&gt; 
&gt; Does that file exist in any configuration?  Perhaps we should just remove that include line.

The file is provided by each platform:
./third_party/WebKit/Source/WebKit/chromium/public/linux/WebSandboxSupport.h
./third_party/WebKit/Source/WebKit/chromium/public/mac/WebSandboxSupport.h
./third_party/WebKit/Source/WebKit/chromium/public/win/WebSandboxSupport.h

We cannot remove that line, or other platforms won&apos;t compile.

And I tried more. Even for Android, while PlatformSupport can compile if I removed the line, other compile errors occur if we don&apos;t provide android/WebSandboxSupport.h:

content/ppapi_plugin/ppapi_webkitclient_impl.cc:29: error: invalid use of incomplete type &apos;struct WebKit::WebSandboxSupport&apos;
./third_party/WebKit/Source/WebKit/chromium/public/WebKitClient.h:68: error: forward declaration of &apos;struct WebKit::WebSandboxSupport&apos;
content/ppapi_plugin/ppapi_webkitclient_impl.cc: In member function &apos;virtual WebKit::WebSandboxSupport* PpapiWebKitClientImpl::sandboxSupport()&apos;:
content/ppapi_plugin/ppapi_webkitclient_impl.cc:132: error: cannot convert &apos;PpapiWebKitClientImpl::SandboxSupport*&apos; to &apos;WebKit::WebSandboxSupport*&apos; in return
make: *** [out/Release/obj.target/content_ppapi_plugin/content/ppapi_plugin/ppapi_webkitclient_impl.o] Error 1

./content/renderer/renderer_webkitclient_impl.cc:118 has the same problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464185</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-09-08 11:14:42 -0700</bug_when>
    <thetext>OK, thanks for the explanation.  I agree that adding an empty WebSandboxSupport is the right answer.  I was remembering a time when we only had that defined for Windows, and I thought that was still the case, but given that every other platform has it, Android should too.  That way we can avoid #ifdefs!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464625</commentid>
    <comment_count>22</comment_count>
      <attachid>106835</attachid>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-09-08 21:03:55 -0700</bug_when>
    <thetext>Created attachment 106835
Proposed patch 5.

I&apos;d glad to clarify it.

Fixed s/2010/2011/. Could someone do a final review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464689</commentid>
    <comment_count>23</comment_count>
      <attachid>106835</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-09-09 01:59:40 -0700</bug_when>
    <thetext>Comment on attachment 106835
Proposed patch 5.

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

&gt; Source/WebKit/chromium/public/android/WebSandboxSupport.h:36
&gt; +// Empty class for now, as we need it to compile.

I still think &apos;for now&apos; is confusing unless you have plans to add methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464762</commentid>
    <comment_count>24</comment_count>
      <attachid>106864</attachid>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-09-09 06:24:25 -0700</bug_when>
    <thetext>Created attachment 106864
Proposed patch 6.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464772</commentid>
    <comment_count>25</comment_count>
      <attachid>106864</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-09-09 07:04:04 -0700</bug_when>
    <thetext>Comment on attachment 106864
Proposed patch 6.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464853</commentid>
    <comment_count>26</comment_count>
      <attachid>106864</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-09 09:57:17 -0700</bug_when>
    <thetext>Comment on attachment 106864
Proposed patch 6.

Clearing flags on attachment: 106864

Committed r94859: &lt;http://trac.webkit.org/changeset/94859&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464854</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-09 09:57:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106303</attachid>
            <date>2011-09-04 21:48:36 -0700</date>
            <delta_ts>2011-09-04 23:29:48 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>WebKit.patch</filename>
            <type>text/plain</type>
            <size>11911</size>
            <attacher name="Hao Zheng">zhenghao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NDUwOSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDktMDQgIEhhbyBaaGVuZyAgPHpoZW5naGFvQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbQ2hyb21pdW1dIEFkZCBXZWJTYW5kYm94U3VwcG9ydCBhbmQgV2ViVGhlbWVFbmdpbmUg
Zm9yIEFuZHJvaWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NzU4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1ha2Ugc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAgYW5kIHNyYy9XZWJGcmFtZUltcGwuY3Bw
IGNvbXBpbGUgb24KKyAgICAgICAgQ2hyb21pdW0gcG9ydCBmb3IgQW5kcm9pZC4KKworICAgICAg
ICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL2FuZHJvaWQ6IEFkZGVkLgorICAgICAg
ICAqIHB1YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0Lmg6IEFkZGVkLgorICAgICAgICAq
IHB1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJUaGVtZUVuZ2luZTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRoZW1lRW5n
aW5lOjpwYWludCk6CisgICAgICAgICogc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OmdldEZvbnRGYW1pbHlGb3JDaGFyYWN0ZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6Z2V0UmVuZGVyU3R5bGVGb3JTdHJp
a2UpOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorCiAyMDExLTA5LTA0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgbXV0
bGlwbGUgdG8gV2ViUG9wdXBNZW51SW5mbyBmb3IgQW5kcm9pZApJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cAkocmV2aXNpb24gOTQzODMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDggQEAKICAgICAgICAgICAg
ICAgICAnV0VCS0lUX0lNUExFTUVOVEFUSU9OPTEnLAogICAgICAgICAgICAgXSwKICAgICAgICAg
ICAgICdzb3VyY2VzJzogWworICAgICAgICAgICAgICAgICdwdWJsaWMvYW5kcm9pZC9XZWJTYW5k
Ym94U3VwcG9ydC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL2FuZHJvaWQvV2ViVGhlbWVF
bmdpbmUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9ndGsvV2ViSW5wdXRFdmVudEZhY3Rv
cnkuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyaW5nLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvbGludXgvV2ViRm9udFJlbmRlclN0eWxlLmgnLApA
QCAtNzAzLDYgKzcwNSwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgWydleGNsdWRlJywg
Jy9saW51eC8nXSwKICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICB9XSwK
KyAgICAgICAgICAgICAgICBbJ09TPT0iYW5kcm9pZCInLCB7CisgICAgICAgICAgICAgICAgICAg
ICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAncHVibGljL2FuZHJv
aWQnLAorICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIH1dLAogICAgICAg
ICAgICAgICAgIFsnT1M9PSJtYWMiJywgewogICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZV9k
aXJzJzogWwogICAgICAgICAgICAgICAgICAgICAgICAgJ3B1YmxpYy9tYWMnLApJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJTYW5kYm94U3VwcG9ydC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViU2Fu
ZGJveFN1cHBvcnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL2FuZHJvaWQvV2ViU2FuZGJveFN1cHBvcnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViU2FuZGJveFN1cHBvcnRfaAorI2RlZmluZSBXZWJTYW5kYm94U3VwcG9y
dF9oCisKKy8vIEVtcHR5IGNsYXNzIGZvciBub3cKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBQ
dXQgbWV0aG9kcyBoZXJlIHRoYXQgYXJlIHJlcXVpcmVkIGR1ZSB0byBzYW5kYm94IHJlc3RyaWN0
aW9ucy4KK2NsYXNzIFdlYlNhbmRib3hTdXBwb3J0IHsKK3B1YmxpYzoKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViU2FuZGJveFN1cHBvcnQuaApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJUaGVtZUVuZ2luZS5oCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJUaGVtZUVu
Z2luZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViVGhlbWVFbmdp
bmVfaAorI2RlZmluZSBXZWJUaGVtZUVuZ2luZV9oCisKKyNpbmNsdWRlICIuLi9XZWJDYW52YXMu
aCIKKyNpbmNsdWRlICIuLi9XZWJDb2xvci5oIgorI2luY2x1ZGUgIi4uL1dlYlNpemUuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBXZWJSZWN0OworCitjbGFzcyBXZWJUaGVtZUVu
Z2luZSB7CitwdWJsaWM6CisgICAgLy8gVGhlIFVJIHBhcnQgd2hpY2ggaXMgYmVpbmcgYWNjZXNz
ZWQuCisgICAgZW51bSBQYXJ0IHsKKyAgICAgICAgLy8gU2Nyb2xsYmFyVGhlbWUgcGFydHMKKyAg
ICAgICAgUGFydFNjcm9sbGJhckRvd25BcnJvdywKKyAgICAgICAgUGFydFNjcm9sbGJhckxlZnRB
cnJvdywKKyAgICAgICAgUGFydFNjcm9sbGJhclJpZ2h0QXJyb3csCisgICAgICAgIFBhcnRTY3Jv
bGxiYXJVcEFycm93LAorICAgICAgICBQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRodW1iLAorICAg
ICAgICBQYXJ0U2Nyb2xsYmFyVmVydGljYWxUaHVtYiwKKyAgICAgICAgUGFydFNjcm9sbGJhckhv
cml6b250YWxUcmFjaywKKyAgICAgICAgUGFydFNjcm9sbGJhclZlcnRpY2FsVHJhY2ssCisKKyAg
ICAgICAgLy8gUmVuZGVyVGhlbWUgcGFydHMKKyAgICAgICAgUGFydENoZWNrYm94LAorICAgICAg
ICBQYXJ0UmFkaW8sCisgICAgICAgIFBhcnRCdXR0b24sCisgICAgICAgIFBhcnRUZXh0RmllbGQs
CisgICAgICAgIFBhcnRNZW51TGlzdCwKKyAgICAgICAgUGFydFNsaWRlclRyYWNrLAorICAgICAg
ICBQYXJ0U2xpZGVyVGh1bWIsCisgICAgICAgIFBhcnRJbm5lclNwaW5CdXR0b24sCisgICAgICAg
IFBhcnRQcm9ncmVzc0JhcgorICAgIH07CisKKyAgICAvLyBUaGUgY3VycmVudCBzdGF0ZSBvZiB0
aGUgYXNzb2NpYXRlZCBQYXJ0LgorICAgIGVudW0gU3RhdGUgeworICAgICAgICBTdGF0ZURpc2Fi
bGVkLAorICAgICAgICBTdGF0ZUhvdmVyLAorICAgICAgICBTdGF0ZU5vcm1hbCwKKyAgICAgICAg
U3RhdGVQcmVzc2VkLAorICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBkcmF3
aW5nIHRoZSBQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRyYWNrIGFuZAorICAgIC8vIFBhcnRTY3Jv
bGxiYXJWZXJ0aWNhbFRyYWNrLgorICAgIHN0cnVjdCBTY3JvbGxiYXJUcmFja0V4dHJhUGFyYW1z
IHsKKyAgICAgICAgLy8gVGhlIGJvdW5kcyBvZiB0aGUgZW50aXJlIHRyYWNrLCBhcyBvcHBvc2Vk
IHRvIHRoZSBwYXJ0IGJlaW5nIHBhaW50ZWQuCisgICAgICAgIGludCB0cmFja1g7CisgICAgICAg
IGludCB0cmFja1k7CisgICAgICAgIGludCB0cmFja1dpZHRoOworICAgICAgICBpbnQgdHJhY2tI
ZWlnaHQ7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRDaGVja2Jv
eCwgUGFydFB1c2hCdXR0b24gYW5kIFBhcnRSYWRpby4KKyAgICBzdHJ1Y3QgQnV0dG9uRXh0cmFQ
YXJhbXMgeworICAgICAgICBib29sIGNoZWNrZWQ7CisgICAgICAgIGJvb2wgaW5kZXRlcm1pbmF0
ZTsgLy8gV2hldGhlciB0aGUgYnV0dG9uIHN0YXRlIGlzIGluZGV0ZXJtaW5hdGUuCisgICAgICAg
IGJvb2wgaXNEZWZhdWx0OyAvLyBXaGV0aGVyIHRoZSBidXR0b24gaXMgZGVmYXVsdCBidXR0b24u
CisgICAgICAgIGJvb2wgaGFzQm9yZGVyOworICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29s
b3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRUZXh0RmllbGQK
KyAgICBzdHJ1Y3QgVGV4dEZpZWxkRXh0cmFQYXJhbXMgeworICAgICAgICBib29sIGlzVGV4dEFy
ZWE7CisgICAgICAgIGJvb2wgaXNMaXN0Ym94OworICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5k
Q29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRNZW51TGlz
dAorICAgIHN0cnVjdCBNZW51TGlzdEV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBoYXNCb3Jk
ZXI7CisgICAgICAgIGJvb2wgaGFzQm9yZGVyUmFkaXVzOworICAgICAgICBpbnQgYXJyb3dYOwor
ICAgICAgICBpbnQgYXJyb3dZOworICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7Cisg
ICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRTbGlkZXJUcmFjayBhbmQg
UGFydFNsaWRlclRodW1iCisgICAgc3RydWN0IFNsaWRlckV4dHJhUGFyYW1zIHsKKyAgICAgICAg
Ym9vbCB2ZXJ0aWNhbDsKKyAgICAgICAgYm9vbCBpbkRyYWc7CisgICAgfTsKKworICAgIC8vIEV4
dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRJbm5lclNwaW5CdXR0b24KKyAgICBzdHJ1Y3QgSW5uZXJT
cGluQnV0dG9uRXh0cmFQYXJhbXMgeworICAgICAgICBib29sIHNwaW5VcDsKKyAgICAgICAgYm9v
bCByZWFkT25seTsKKyAgICB9OworCisgICAgLy8gRXh0cmEgcGFyYW1ldGVycyBmb3IgUGFydFBy
b2dyZXNzQmFyCisgICAgc3RydWN0IFByb2dyZXNzQmFyRXh0cmFQYXJhbXMgeworICAgICAgICBi
b29sIGRldGVybWluYXRlOworICAgICAgICBpbnQgdmFsdWVSZWN0WDsKKyAgICAgICAgaW50IHZh
bHVlUmVjdFk7CisgICAgICAgIGludCB2YWx1ZVJlY3RXaWR0aDsKKyAgICAgICAgaW50IHZhbHVl
UmVjdEhlaWdodDsKKyAgICB9OworCisgICAgdW5pb24gRXh0cmFQYXJhbXMgeworICAgICAgICBT
Y3JvbGxiYXJUcmFja0V4dHJhUGFyYW1zIHNjcm9sbGJhclRyYWNrOworICAgICAgICBCdXR0b25F
eHRyYVBhcmFtcyBidXR0b247CisgICAgICAgIFRleHRGaWVsZEV4dHJhUGFyYW1zIHRleHRGaWVs
ZDsKKyAgICAgICAgTWVudUxpc3RFeHRyYVBhcmFtcyBtZW51TGlzdDsKKyAgICAgICAgU2xpZGVy
RXh0cmFQYXJhbXMgc2xpZGVyOworICAgICAgICBJbm5lclNwaW5CdXR0b25FeHRyYVBhcmFtcyBp
bm5lclNwaW47CisgICAgICAgIFByb2dyZXNzQmFyRXh0cmFQYXJhbXMgcHJvZ3Jlc3NCYXI7Cisg
ICAgfTsKKworICAgIC8vIEdldHMgdGhlIHNpemUgb2YgdGhlIGdpdmVuIHRoZW1lIHBhcnQuIEZv
ciB2YXJpYWJsZSBzaXplZCBpdGVtcworICAgIC8vIGxpa2UgdmVydGljYWwgc2Nyb2xsYmFyIHRo
dW1icywgdGhlIHdpZHRoIHdpbGwgYmUgdGhlIHJlcXVpcmVkIHdpZHRoIG9mCisgICAgLy8gdGhl
IHRyYWNrIHdoaWxlIHRoZSBoZWlnaHQgd2lsbCBiZSB0aGUgbWluaW11bSBoZWlnaHQuCisgICAg
dmlydHVhbCBXZWJTaXplIGdldFNpemUoUGFydCkgeyByZXR1cm4gV2ViU2l6ZSgpOyB9CisgICAg
Ly8gUGFpbnQgdGhlIGdpdmVuIHRoZSBnaXZlbiB0aGVtZSBwYXJ0LgorICAgIHZpcnR1YWwgdm9p
ZCBwYWludChXZWJDYW52YXMqLCBQYXJ0LCBTdGF0ZSwgY29uc3QgV2ViUmVjdCYsIGNvbnN0IEV4
dHJhUGFyYW1zKikgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9hbmRyb2lk
L1dlYlRoZW1lRW5naW5lLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExG
CgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQu
Y3BwCShyZXZpc2lvbiA5NDM4MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRm
b3JtU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDEwICs3MywxMiBAQAogCiAjaWYg
T1MoREFSV0lOKQogI2luY2x1ZGUgIm1hYy9XZWJUaGVtZUVuZ2luZS5oIgotI2VsaWYgT1MoVU5J
WCkKKyNlbGlmIE9TKFVOSVgpICYmICFPUyhBTkRST0lEKQogI2luY2x1ZGUgImxpbnV4L1dlYlRo
ZW1lRW5naW5lLmgiCiAjaW5jbHVkZSAiV2ViRm9udEluZm8uaCIKICNpbmNsdWRlICJXZWJGb250
UmVuZGVyU3R5bGUuaCIKKyNlbGlmIE9TKEFORFJPSUQpCisjaW5jbHVkZSAiYW5kcm9pZC9XZWJU
aGVtZUVuZ2luZS5oIgogI2VuZGlmCiAKICNpZiBXRUJLSVRfVVNJTkdfU0tJQQpAQCAtNDYxLDYg
KzQ2MywxMCBAQCBib29sIFBsYXRmb3JtU3VwcG9ydDo6bG9hZEZvbnQoTlNGb250KiBzCiAjZWxp
ZiBPUyhVTklYKQogU3RyaW5nIFBsYXRmb3JtU3VwcG9ydDo6Z2V0Rm9udEZhbWlseUZvckNoYXJh
Y3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNpemVfdCBudW1DaGFyYWN0ZXJzLCBjb25z
dCBjaGFyKiBwcmVmZXJyZWRMb2NhbGUpCiB7CisjaWYgT1MoQU5EUk9JRCkKKyAgICAvLyBUT0RP
KHpoZW5naGFvKTogdXNlIHNpbXBsZSBsb2dpYyBmb3Igbm93LgorICAgIHJldHVybiBXZWJTdHJp
bmcoIkFyaWFsIik7CisjZWxzZQogICAgIGlmICh3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+c2Fu
ZGJveFN1cHBvcnQoKSkKICAgICAgICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5z
YW5kYm94U3VwcG9ydCgpLT5nZXRGb250RmFtaWx5Rm9yQ2hhcmFjdGVycyhjaGFyYWN0ZXJzLCBu
dW1DaGFyYWN0ZXJzLCBwcmVmZXJyZWRMb2NhbGUpOwogCkBAIC00NjksMTAgKzQ3NSwxMiBAQCBT
dHJpbmcgUGxhdGZvcm1TdXBwb3J0OjpnZXRGb250RmFtaWx5Rm9yCiAgICAgICAgIHJldHVybiBX
ZWJTdHJpbmc6OmZyb21VVEY4KGZhbWlseS5kYXRhKCkpOwogCiAgICAgcmV0dXJuIFdlYlN0cmlu
ZygpOworI2VuZGlmCiB9CiAKIHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpnZXRSZW5kZXJTdHlsZUZv
clN0cmlrZShjb25zdCBjaGFyKiBmb250LCBpbnQgc2l6ZUFuZFN0eWxlLCBGb250UmVuZGVyU3R5
bGUqIHJlc3VsdCkKIHsKKyNpZiAhT1MoQU5EUk9JRCkKICAgICBXZWJGb250UmVuZGVyU3R5bGUg
c3R5bGU7CiAKICAgICBpZiAod2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPnNhbmRib3hTdXBwb3J0
KCkpCkBAIC00ODEsNiArNDg5LDcgQEAgdm9pZCBQbGF0Zm9ybVN1cHBvcnQ6OmdldFJlbmRlclN0
eWxlRm9yUwogICAgICAgICBXZWJGb250SW5mbzo6cmVuZGVyU3R5bGVGb3JTdHJpa2UoZm9udCwg
c2l6ZUFuZFN0eWxlLCAmc3R5bGUpOwogCiAgICAgc3R5bGUudG9Gb250UmVuZGVyU3R5bGUocmVz
dWx0KTsKKyNlbmRpZgogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkocmV2aXNpb24gOTQzODMpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNyAr
MTYzLDcgQEAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CiAKLSNpZiBPUyhVTklYKSAmJiAhT1MoREFSV0lOKQorI2lmIE9TKFVOSVgpICYmICFPUyhE
QVJXSU4pICYmICFPUyhBTkRST0lEKQogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106309</attachid>
            <date>2011-09-04 23:29:48 -0700</date>
            <delta_ts>2011-09-04 23:49:25 -0700</delta_ts>
            <desc>Proposed patch 2.</desc>
            <filename>WebKit.patch</filename>
            <type>text/plain</type>
            <size>19216</size>
            <attacher name="Hao Zheng">zhenghao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NDUxMikKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTEtMDktMDQgIEhhbyBaaGVuZyAgPHpoZW5naGFvQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbQ2hyb21pdW1dIEFkZCBXZWJTYW5kYm94U3VwcG9ydCBhbmQgV2ViVGhlbWVFbmdpbmUg
Zm9yIEFuZHJvaWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NzU4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1ha2Ugc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAgYW5kIHNyYy9XZWJGcmFtZUltcGwuY3Bw
IGNvbXBpbGUgb24KKyAgICAgICAgQ2hyb21pdW0gcG9ydCBmb3IgQW5kcm9pZC4KKyAgICAgICAg
QW5kIGZpeCBzb21lICNpbmNsdWRlIHBhdGggc3RyaW5ncy4KKworICAgICAgICAqIFdlYktpdC5n
eXA6CisgICAgICAgICogcHVibGljL2FuZHJvaWQ6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9h
bmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0Lmg6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9hbmRy
b2lkL1dlYlRoZW1lRW5naW5lLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUaGVtZUVu
Z2luZTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpwYWludCk6
CisgICAgICAgICogcHVibGljL2d0ay9XZWJGb250SW5mby5oOgorICAgICAgICAqIHB1YmxpYy9n
dGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuaDoKKyAgICAgICAgKiBwdWJsaWMvbGludXgvV2ViRm9u
dFJlbmRlclN0eWxlLmg6CisgICAgICAgICogcHVibGljL2xpbnV4L1dlYkZvbnRSZW5kZXJpbmcu
aDoKKyAgICAgICAgKiBwdWJsaWMvbGludXgvV2ViUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiBw
dWJsaWMvbGludXgvV2ViU2FuZGJveFN1cHBvcnQuaDoKKyAgICAgICAgKiBwdWJsaWMvbGludXgv
V2ViVGhlbWVFbmdpbmUuaDoKKyAgICAgICAgKiBwdWJsaWMvbWFjL1dlYklucHV0RXZlbnRGYWN0
b3J5Lmg6CisgICAgICAgICogcHVibGljL21hYy9XZWJTY3JlZW5JbmZvRmFjdG9yeS5oOgorICAg
ICAgICAqIHB1YmxpYy9tYWMvV2ViVGhlbWVFbmdpbmUuaDoKKyAgICAgICAgKiBwdWJsaWMvd2lu
L1dlYklucHV0RXZlbnRGYWN0b3J5Lmg6CisgICAgICAgICogcHVibGljL3dpbi9XZWJTY3JlZW5J
bmZvRmFjdG9yeS5oOgorICAgICAgICAqIHB1YmxpYy93aW4vV2ViVGhlbWVFbmdpbmUuaDoKKyAg
ICAgICAgKiBwdWJsaWMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5Lmg6CisgICAgICAgICogc3Jj
L1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6
OmdldEZvbnRGYW1pbHlGb3JDaGFyYWN0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
U3VwcG9ydDo6Z2V0UmVuZGVyU3R5bGVGb3JTdHJpa2UpOgorICAgICAgICAqIHNyYy9XZWJGcmFt
ZUltcGwuY3BwOgorCiAyMDExLTA5LTA0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgbXV0bGlwbGUgdG8gV2ViUG9wdXBNZW51SW5mbyBm
b3IgQW5kcm9pZApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2aXNpb24gOTQz
ODMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkK
QEAgLTg5LDYgKzg5LDggQEAKICAgICAgICAgICAgICAgICAnV0VCS0lUX0lNUExFTUVOVEFUSU9O
PTEnLAogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICdzb3VyY2VzJzogWworICAgICAgICAg
ICAgICAgICdwdWJsaWMvYW5kcm9pZC9XZWJTYW5kYm94U3VwcG9ydC5oJywKKyAgICAgICAgICAg
ICAgICAncHVibGljL2FuZHJvaWQvV2ViVGhlbWVFbmdpbmUuaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuaCcsCiAgICAgICAgICAgICAgICAgJ3B1
YmxpYy9saW51eC9XZWJGb250UmVuZGVyaW5nLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
bGludXgvV2ViRm9udFJlbmRlclN0eWxlLmgnLApAQCAtNzAzLDYgKzcwNSwxMSBAQAogICAgICAg
ICAgICAgICAgICAgICAgICAgWydleGNsdWRlJywgJy9saW51eC8nXSwKICAgICAgICAgICAgICAg
ICAgICAgXSwKICAgICAgICAgICAgICAgICB9XSwKKyAgICAgICAgICAgICAgICBbJ09TPT0iYW5k
cm9pZCInLCB7CisgICAgICAgICAgICAgICAgICAgICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAg
ICAgICAgICAgICAgICAgICAncHVibGljL2FuZHJvaWQnLAorICAgICAgICAgICAgICAgICAgICBd
LAorICAgICAgICAgICAgICAgIH1dLAogICAgICAgICAgICAgICAgIFsnT1M9PSJtYWMiJywgewog
ICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZV9kaXJzJzogWwogICAgICAgICAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9tYWMnLApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
YW5kcm9pZC9XZWJTYW5kYm94U3VwcG9ydC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViU2FuZGJveFN1cHBvcnQuaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViU2FuZGJveFN1cHBv
cnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViU2FuZGJveFN1cHBv
cnRfaAorI2RlZmluZSBXZWJTYW5kYm94U3VwcG9ydF9oCisKKy8vIEVtcHR5IGNsYXNzIGZvciBu
b3cKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBQdXQgbWV0aG9kcyBoZXJlIHRoYXQgYXJlIHJl
cXVpcmVkIGR1ZSB0byBzYW5kYm94IHJlc3RyaWN0aW9ucy4KK2NsYXNzIFdlYlNhbmRib3hTdXBw
b3J0IHsKK3B1YmxpYzoKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKClBy
b3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2FuZHJvaWQv
V2ViU2FuZGJveFN1cHBvcnQuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsg
TEYKCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dlYlRoZW1l
RW5naW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5k
cm9pZC9XZWJUaGVtZUVuZ2luZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJUaGVtZUVuZ2luZS5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgV2ViVGhlbWVFbmdpbmVfaAorI2RlZmluZSBXZWJUaGVtZUVuZ2lu
ZV9oCisKKyNpbmNsdWRlICJXZWJDYW52YXMuaCIKKyNpbmNsdWRlICJXZWJDb2xvci5oIgorI2lu
Y2x1ZGUgIldlYlNpemUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBXZWJSZWN0
OworCitjbGFzcyBXZWJUaGVtZUVuZ2luZSB7CitwdWJsaWM6CisgICAgLy8gVGhlIFVJIHBhcnQg
d2hpY2ggaXMgYmVpbmcgYWNjZXNzZWQuCisgICAgZW51bSBQYXJ0IHsKKyAgICAgICAgLy8gU2Ny
b2xsYmFyVGhlbWUgcGFydHMKKyAgICAgICAgUGFydFNjcm9sbGJhckRvd25BcnJvdywKKyAgICAg
ICAgUGFydFNjcm9sbGJhckxlZnRBcnJvdywKKyAgICAgICAgUGFydFNjcm9sbGJhclJpZ2h0QXJy
b3csCisgICAgICAgIFBhcnRTY3JvbGxiYXJVcEFycm93LAorICAgICAgICBQYXJ0U2Nyb2xsYmFy
SG9yaXpvbnRhbFRodW1iLAorICAgICAgICBQYXJ0U2Nyb2xsYmFyVmVydGljYWxUaHVtYiwKKyAg
ICAgICAgUGFydFNjcm9sbGJhckhvcml6b250YWxUcmFjaywKKyAgICAgICAgUGFydFNjcm9sbGJh
clZlcnRpY2FsVHJhY2ssCisKKyAgICAgICAgLy8gUmVuZGVyVGhlbWUgcGFydHMKKyAgICAgICAg
UGFydENoZWNrYm94LAorICAgICAgICBQYXJ0UmFkaW8sCisgICAgICAgIFBhcnRCdXR0b24sCisg
ICAgICAgIFBhcnRUZXh0RmllbGQsCisgICAgICAgIFBhcnRNZW51TGlzdCwKKyAgICAgICAgUGFy
dFNsaWRlclRyYWNrLAorICAgICAgICBQYXJ0U2xpZGVyVGh1bWIsCisgICAgICAgIFBhcnRJbm5l
clNwaW5CdXR0b24sCisgICAgICAgIFBhcnRQcm9ncmVzc0JhcgorICAgIH07CisKKyAgICAvLyBU
aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXNzb2NpYXRlZCBQYXJ0LgorICAgIGVudW0gU3RhdGUg
eworICAgICAgICBTdGF0ZURpc2FibGVkLAorICAgICAgICBTdGF0ZUhvdmVyLAorICAgICAgICBT
dGF0ZU5vcm1hbCwKKyAgICAgICAgU3RhdGVQcmVzc2VkLAorICAgIH07CisKKyAgICAvLyBFeHRy
YSBwYXJhbWV0ZXJzIGZvciBkcmF3aW5nIHRoZSBQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRyYWNr
IGFuZAorICAgIC8vIFBhcnRTY3JvbGxiYXJWZXJ0aWNhbFRyYWNrLgorICAgIHN0cnVjdCBTY3Jv
bGxiYXJUcmFja0V4dHJhUGFyYW1zIHsKKyAgICAgICAgLy8gVGhlIGJvdW5kcyBvZiB0aGUgZW50
aXJlIHRyYWNrLCBhcyBvcHBvc2VkIHRvIHRoZSBwYXJ0IGJlaW5nIHBhaW50ZWQuCisgICAgICAg
IGludCB0cmFja1g7CisgICAgICAgIGludCB0cmFja1k7CisgICAgICAgIGludCB0cmFja1dpZHRo
OworICAgICAgICBpbnQgdHJhY2tIZWlnaHQ7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFt
ZXRlcnMgZm9yIFBhcnRDaGVja2JveCwgUGFydFB1c2hCdXR0b24gYW5kIFBhcnRSYWRpby4KKyAg
ICBzdHJ1Y3QgQnV0dG9uRXh0cmFQYXJhbXMgeworICAgICAgICBib29sIGNoZWNrZWQ7CisgICAg
ICAgIGJvb2wgaW5kZXRlcm1pbmF0ZTsgLy8gV2hldGhlciB0aGUgYnV0dG9uIHN0YXRlIGlzIGlu
ZGV0ZXJtaW5hdGUuCisgICAgICAgIGJvb2wgaXNEZWZhdWx0OyAvLyBXaGV0aGVyIHRoZSBidXR0
b24gaXMgZGVmYXVsdCBidXR0b24uCisgICAgICAgIGJvb2wgaGFzQm9yZGVyOworICAgICAgICBX
ZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRl
cnMgZm9yIFBhcnRUZXh0RmllbGQKKyAgICBzdHJ1Y3QgVGV4dEZpZWxkRXh0cmFQYXJhbXMgewor
ICAgICAgICBib29sIGlzVGV4dEFyZWE7CisgICAgICAgIGJvb2wgaXNMaXN0Ym94OworICAgICAg
ICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFt
ZXRlcnMgZm9yIFBhcnRNZW51TGlzdAorICAgIHN0cnVjdCBNZW51TGlzdEV4dHJhUGFyYW1zIHsK
KyAgICAgICAgYm9vbCBoYXNCb3JkZXI7CisgICAgICAgIGJvb2wgaGFzQm9yZGVyUmFkaXVzOwor
ICAgICAgICBpbnQgYXJyb3dYOworICAgICAgICBpbnQgYXJyb3dZOworICAgICAgICBXZWJDb2xv
ciBiYWNrZ3JvdW5kQ29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9y
IFBhcnRTbGlkZXJUcmFjayBhbmQgUGFydFNsaWRlclRodW1iCisgICAgc3RydWN0IFNsaWRlckV4
dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCB2ZXJ0aWNhbDsKKyAgICAgICAgYm9vbCBpbkRyYWc7
CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRJbm5lclNwaW5CdXR0
b24KKyAgICBzdHJ1Y3QgSW5uZXJTcGluQnV0dG9uRXh0cmFQYXJhbXMgeworICAgICAgICBib29s
IHNwaW5VcDsKKyAgICAgICAgYm9vbCByZWFkT25seTsKKyAgICB9OworCisgICAgLy8gRXh0cmEg
cGFyYW1ldGVycyBmb3IgUGFydFByb2dyZXNzQmFyCisgICAgc3RydWN0IFByb2dyZXNzQmFyRXh0
cmFQYXJhbXMgeworICAgICAgICBib29sIGRldGVybWluYXRlOworICAgICAgICBpbnQgdmFsdWVS
ZWN0WDsKKyAgICAgICAgaW50IHZhbHVlUmVjdFk7CisgICAgICAgIGludCB2YWx1ZVJlY3RXaWR0
aDsKKyAgICAgICAgaW50IHZhbHVlUmVjdEhlaWdodDsKKyAgICB9OworCisgICAgdW5pb24gRXh0
cmFQYXJhbXMgeworICAgICAgICBTY3JvbGxiYXJUcmFja0V4dHJhUGFyYW1zIHNjcm9sbGJhclRy
YWNrOworICAgICAgICBCdXR0b25FeHRyYVBhcmFtcyBidXR0b247CisgICAgICAgIFRleHRGaWVs
ZEV4dHJhUGFyYW1zIHRleHRGaWVsZDsKKyAgICAgICAgTWVudUxpc3RFeHRyYVBhcmFtcyBtZW51
TGlzdDsKKyAgICAgICAgU2xpZGVyRXh0cmFQYXJhbXMgc2xpZGVyOworICAgICAgICBJbm5lclNw
aW5CdXR0b25FeHRyYVBhcmFtcyBpbm5lclNwaW47CisgICAgICAgIFByb2dyZXNzQmFyRXh0cmFQ
YXJhbXMgcHJvZ3Jlc3NCYXI7CisgICAgfTsKKworICAgIC8vIEdldHMgdGhlIHNpemUgb2YgdGhl
IGdpdmVuIHRoZW1lIHBhcnQuIEZvciB2YXJpYWJsZSBzaXplZCBpdGVtcworICAgIC8vIGxpa2Ug
dmVydGljYWwgc2Nyb2xsYmFyIHRodW1icywgdGhlIHdpZHRoIHdpbGwgYmUgdGhlIHJlcXVpcmVk
IHdpZHRoIG9mCisgICAgLy8gdGhlIHRyYWNrIHdoaWxlIHRoZSBoZWlnaHQgd2lsbCBiZSB0aGUg
bWluaW11bSBoZWlnaHQuCisgICAgdmlydHVhbCBXZWJTaXplIGdldFNpemUoUGFydCkgeyByZXR1
cm4gV2ViU2l6ZSgpOyB9CisgICAgLy8gUGFpbnQgdGhlIGdpdmVuIHRoZSBnaXZlbiB0aGVtZSBw
YXJ0LgorICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMqLCBQYXJ0LCBTdGF0ZSwgY29u
c3QgV2ViUmVjdCYsIGNvbnN0IEV4dHJhUGFyYW1zKikgeyB9Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmgKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDog
c3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvZ3RrL1dlYkZvbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvZ3RrL1dlYkZvbnRJbmZvLmgJKHJldmlzaW9uIDk0MzgzKQorKysgU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvZ3RrL1dlYkZvbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDggKzMxLDggQEAKICNpZm5kZWYgV2ViRm9udEluZm9faAogI2RlZmluZSBXZWJGb250SW5m
b19oCiAKLSNpbmNsdWRlICIuLi9XZWJDU3RyaW5nLmgiCi0jaW5jbHVkZSAiLi4vbGludXgvV2Vi
Rm9udFJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiV2ViQ1N0cmluZy5oIgorI2luY2x1ZGUgImxp
bnV4L1dlYkZvbnRSZW5kZXJTdHlsZS5oIgogCiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVk
ZSA8dW5pc3RkLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9ndGsvV2Vi
SW5wdXRFdmVudEZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuaAkocmV2aXNpb24gOTQzODMpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuaAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2lmbmRlZiBXZWJJbnB1dEV2ZW50RmFj
dG9yeV9oCiAjZGVmaW5lIFdlYklucHV0RXZlbnRGYWN0b3J5X2gKIAotI2luY2x1ZGUgIi4uL1dl
YkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYkNvbW1vbi5oIgogCiB0eXBlZGVmIHN0cnVjdCBfR2Rr
RXZlbnRCdXR0b24gR2RrRXZlbnRCdXR0b247CiB0eXBlZGVmIHN0cnVjdCBfR2RrRXZlbnRNb3Rp
b24gR2RrRXZlbnRNb3Rpb247CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9s
aW51eC9XZWJGb250UmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyU3R5bGUuaAkocmV2aXNpb24gOTQzODMp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyU3R5
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2lmbmRlZiBXZWJGb250UmVu
ZGVyU3R5bGVfaAogI2RlZmluZSBXZWJGb250UmVuZGVyU3R5bGVfaAogCi0jaW5jbHVkZSAiLi4v
V2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsgc3RydWN0IEZvbnRSZW5kZXJTdHlsZTsgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViRm9udFJlbmRlcmluZy5oCShyZXZpc2lv
biA5NDM4MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYkZvbnRS
ZW5kZXJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2lmbmRlZiBXZWJG
b250UmVuZGVyaW5nX2gKICNkZWZpbmUgV2ViRm9udFJlbmRlcmluZ19oCiAKLSNpbmNsdWRlICIu
Li9XZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKICNpbmNsdWRlIDxTa0ZvbnRI
b3N0Lmg+CiAjaW5jbHVkZSA8U2tQYWludC5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9saW51eC9XZWJSZW5kZXJUaGVtZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYlJlbmRlclRoZW1lLmgJKHJldmlzaW9uIDk0
MzgzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViUmVuZGVyVGhl
bWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2lmbmRlZiBXZWJSZW5kZXJU
aGVtZV9oCiAjZGVmaW5lIFdlYlJlbmRlclRoZW1lX2gKIAotI2luY2x1ZGUgIi4uL1dlYkNvbW1v
bi5oIgorI2luY2x1ZGUgIldlYkNvbW1vbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViU2FuZGJveFN1cHBvcnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJT
YW5kYm94U3VwcG9ydC5oCShyZXZpc2lvbiA5NDM4MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL2xpbnV4L1dlYlNhbmRib3hTdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDggKzMxLDggQEAKICNpZm5kZWYgV2ViU2FuZGJveFN1cHBvcnRfaAogI2RlZmluZSBXZWJTYW5k
Ym94U3VwcG9ydF9oCiAKLSNpbmNsdWRlICIuLi9XZWJDb21tb24uaCIKLSNpbmNsdWRlICIuLi9X
ZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcu
aCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL2xpbnV4L1dlYlRoZW1lRW5naW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViVGhlbWVFbmdpbmUuaAkocmV2aXNpb24gOTQzODMp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJUaGVtZUVuZ2luZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSw5IEBACiAjaWZuZGVmIFdlYlRoZW1lRW5naW5l
X2gKICNkZWZpbmUgV2ViVGhlbWVFbmdpbmVfaAogCi0jaW5jbHVkZSAiLi4vV2ViQ2FudmFzLmgi
Ci0jaW5jbHVkZSAiLi4vV2ViQ29sb3IuaCIKLSNpbmNsdWRlICIuLi9XZWJTaXplLmgiCisjaW5j
bHVkZSAiV2ViQ2FudmFzLmgiCisjaW5jbHVkZSAiV2ViQ29sb3IuaCIKKyNpbmNsdWRlICJXZWJT
aXplLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkuaAkocmV2
aXNpb24gOTQzODMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9tYWMvV2ViSW5w
dXRFdmVudEZhY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2lmbmRl
ZiBXZWJJbnB1dEV2ZW50RmFjdG9yeV9oCiAjZGVmaW5lIFdlYklucHV0RXZlbnRGYWN0b3J5X2gK
IAotI2luY2x1ZGUgIi4uL1dlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYkNvbW1vbi5oIgogCiAj
aWZkZWYgX19PQkpDX18KIEBjbGFzcyBOU0V2ZW50OwpJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5LmgJKHJl
dmlzaW9uIDk0MzgzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbWFjL1dlYlNj
cmVlbkluZm9GYWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpZm5k
ZWYgV2ViU2NyZWVuSW5mb0ZhY3RvcnlfaAogI2RlZmluZSBXZWJTY3JlZW5JbmZvRmFjdG9yeV9o
CiAKLSNpbmNsdWRlICIuLi9XZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKIAog
I2lmZGVmIF9fT0JKQ19fCiBAY2xhc3MgTlNWaWV3OwpJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvbWFjL1dlYlRoZW1lRW5naW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvbWFjL1dlYlRoZW1lRW5naW5lLmgJKHJldmlzaW9uIDk0Mzgz
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbWFjL1dlYlRoZW1lRW5naW5lLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpZm5kZWYgV2ViVGhlbWVFbmdpbmVf
aAogI2RlZmluZSBXZWJUaGVtZUVuZ2luZV9oCiAKLSNpbmNsdWRlICIuLi9XZWJDYW52YXMuaCIK
KyNpbmNsdWRlICJXZWJDYW52YXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3dpbi9XZWJJbnB1dEV2
ZW50RmFjdG9yeS5oCShyZXZpc2lvbiA5NDM4MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3
ICszMSw3IEBACiAjaWZuZGVmIFdlYklucHV0RXZlbnRGYWN0b3J5X2gKICNkZWZpbmUgV2ViSW5w
dXRFdmVudEZhY3RvcnlfaAogCi0jaW5jbHVkZSAiLi4vV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAi
V2ViQ29tbW9uLmgiCiAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL3dpbi9XZWJTY3JlZW5JbmZvRmFjdG9yeS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3dpbi9XZWJTY3JlZW5JbmZvRmFjdG9y
eS5oCShyZXZpc2lvbiA5NDM4MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3dp
bi9XZWJTY3JlZW5JbmZvRmFjdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBA
CiAjaWZuZGVmIFdlYlNjcmVlbkluZm9GYWN0b3J5X2gKICNkZWZpbmUgV2ViU2NyZWVuSW5mb0Zh
Y3RvcnlfaAogCi0jaW5jbHVkZSAiLi4vV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViQ29tbW9u
LmgiCiAKIHR5cGVkZWYgc3RydWN0IEhXTkRfXyogSFdORDsKIApJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvd2luL1dlYlRoZW1lRW5naW5lLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvd2luL1dlYlRoZW1lRW5naW5lLmgJKHJldmlzaW9u
IDk0MzgzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvd2luL1dlYlRoZW1lRW5n
aW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDkgQEAKICNpZm5kZWYgV2ViVGhlbWVF
bmdpbmVfaAogI2RlZmluZSBXZWJUaGVtZUVuZ2luZV9oCiAKLSNpbmNsdWRlICIuLi9XZWJDYW52
YXMuaCIKLSNpbmNsdWRlICIuLi9XZWJDb2xvci5oIgotI2luY2x1ZGUgIi4uL1dlYlNpemUuaCIK
KyNpbmNsdWRlICJXZWJDYW52YXMuaCIKKyNpbmNsdWRlICJXZWJDb2xvci5oIgorI2luY2x1ZGUg
IldlYlNpemUuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3gxMS9XZWJTY3JlZW5JbmZvRmFjdG9yeS5o
CShyZXZpc2lvbiA5NDM4MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3gxMS9X
ZWJTY3JlZW5JbmZvRmFjdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAj
aWZuZGVmIFdlYlNjcmVlbkluZm9GYWN0b3J5X2gKICNkZWZpbmUgV2ViU2NyZWVuSW5mb0ZhY3Rv
cnlfaAogCi0jaW5jbHVkZSAiLi4vV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgi
CiAKIHR5cGVkZWYgc3RydWN0IF9YRGlzcGxheSBEaXNwbGF5OwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAJKHJldmlzaW9uIDk0Mzgz
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzMsMTAgKzczLDEyIEBACiAKICNpZiBPUyhEQVJXSU4pCiAjaW5jbHVk
ZSAibWFjL1dlYlRoZW1lRW5naW5lLmgiCi0jZWxpZiBPUyhVTklYKQorI2VsaWYgT1MoVU5JWCkg
JiYgIU9TKEFORFJPSUQpCiAjaW5jbHVkZSAibGludXgvV2ViVGhlbWVFbmdpbmUuaCIKICNpbmNs
dWRlICJXZWJGb250SW5mby5oIgogI2luY2x1ZGUgIldlYkZvbnRSZW5kZXJTdHlsZS5oIgorI2Vs
aWYgT1MoQU5EUk9JRCkKKyNpbmNsdWRlICJhbmRyb2lkL1dlYlRoZW1lRW5naW5lLmgiCiAjZW5k
aWYKIAogI2lmIFdFQktJVF9VU0lOR19TS0lBCkBAIC00NjEsNiArNDYzLDExIEBAIGJvb2wgUGxh
dGZvcm1TdXBwb3J0Ojpsb2FkRm9udChOU0ZvbnQqIHMKICNlbGlmIE9TKFVOSVgpCiBTdHJpbmcg
UGxhdGZvcm1TdXBwb3J0OjpnZXRGb250RmFtaWx5Rm9yQ2hhcmFjdGVycyhjb25zdCBVQ2hhciog
Y2hhcmFjdGVycywgc2l6ZV90IG51bUNoYXJhY3RlcnMsIGNvbnN0IGNoYXIqIHByZWZlcnJlZExv
Y2FsZSkKIHsKKyNpZiBPUyhBTkRST0lEKQorICAgIC8vIEZJWE1FOiBXZSBkbyBub3QgdXNlIGZv
bnRjb25maWcgb24gQW5kcm9pZCwgc28gdXNlIHNpbXBsZSBsb2dpYyBmb3Igbm93LgorICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4NworICAgIHJldHVy
biBXZWJTdHJpbmcoIkFyaWFsIik7CisjZWxzZQogICAgIGlmICh3ZWJLaXRQbGF0Zm9ybVN1cHBv
cnQoKS0+c2FuZGJveFN1cHBvcnQoKSkKICAgICAgICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3Vw
cG9ydCgpLT5zYW5kYm94U3VwcG9ydCgpLT5nZXRGb250RmFtaWx5Rm9yQ2hhcmFjdGVycyhjaGFy
YWN0ZXJzLCBudW1DaGFyYWN0ZXJzLCBwcmVmZXJyZWRMb2NhbGUpOwogCkBAIC00NjksMTAgKzQ3
NiwxMiBAQCBTdHJpbmcgUGxhdGZvcm1TdXBwb3J0OjpnZXRGb250RmFtaWx5Rm9yCiAgICAgICAg
IHJldHVybiBXZWJTdHJpbmc6OmZyb21VVEY4KGZhbWlseS5kYXRhKCkpOwogCiAgICAgcmV0dXJu
IFdlYlN0cmluZygpOworI2VuZGlmCiB9CiAKIHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpnZXRSZW5k
ZXJTdHlsZUZvclN0cmlrZShjb25zdCBjaGFyKiBmb250LCBpbnQgc2l6ZUFuZFN0eWxlLCBGb250
UmVuZGVyU3R5bGUqIHJlc3VsdCkKIHsKKyNpZiAhT1MoQU5EUk9JRCkKICAgICBXZWJGb250UmVu
ZGVyU3R5bGUgc3R5bGU7CiAKICAgICBpZiAod2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPnNhbmRi
b3hTdXBwb3J0KCkpCkBAIC00ODEsNiArNDkwLDcgQEAgdm9pZCBQbGF0Zm9ybVN1cHBvcnQ6Omdl
dFJlbmRlclN0eWxlRm9yUwogICAgICAgICBXZWJGb250SW5mbzo6cmVuZGVyU3R5bGVGb3JTdHJp
a2UoZm9udCwgc2l6ZUFuZFN0eWxlLCAmc3R5bGUpOwogCiAgICAgc3R5bGUudG9Gb250UmVuZGVy
U3R5bGUocmVzdWx0KTsKKyNlbmRpZgogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkocmV2aXNpb24gOTQzODMpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjMsNyArMTYzLDcgQEAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAKLSNpZiBPUyhVTklYKSAmJiAhT1MoREFSV0lOKQorI2lmIE9TKFVOSVgp
ICYmICFPUyhEQVJXSU4pICYmICFPUyhBTkRST0lEKQogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNl
bmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106310</attachid>
            <date>2011-09-04 23:49:25 -0700</date>
            <delta_ts>2011-09-05 21:23:25 -0700</delta_ts>
            <desc>Proposed patch 3.</desc>
            <filename>WebKit.patch</filename>
            <type>text/plain</type>
            <size>11996</size>
            <attacher name="Hao Zheng">zhenghao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NDUxMykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDktMDQgIEhhbyBaaGVuZyAgPHpoZW5naGFvQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbQ2hyb21pdW1dIEFkZCBXZWJTYW5kYm94U3VwcG9ydCBhbmQgV2ViVGhlbWVFbmdpbmUg
Zm9yIEFuZHJvaWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NzU4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1ha2Ugc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAgYW5kIHNyYy9XZWJGcmFtZUltcGwuY3Bw
IGNvbXBpbGUgb24KKyAgICAgICAgQ2hyb21pdW0gcG9ydCBmb3IgQW5kcm9pZC4KKworICAgICAg
ICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL2FuZHJvaWQ6IEFkZGVkLgorICAgICAg
ICAqIHB1YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0Lmg6IEFkZGVkLgorICAgICAgICAq
IHB1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJUaGVtZUVuZ2luZTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRoZW1lRW5n
aW5lOjpwYWludCk6CisgICAgICAgICogc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OmdldEZvbnRGYW1pbHlGb3JDaGFyYWN0ZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6Z2V0UmVuZGVyU3R5bGVGb3JTdHJp
a2UpOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorCiAyMDExLTA5LTA0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgbXV0
bGlwbGUgdG8gV2ViUG9wdXBNZW51SW5mbyBmb3IgQW5kcm9pZApJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cAkocmV2aXNpb24gOTQzODMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDggQEAKICAgICAgICAgICAg
ICAgICAnV0VCS0lUX0lNUExFTUVOVEFUSU9OPTEnLAogICAgICAgICAgICAgXSwKICAgICAgICAg
ICAgICdzb3VyY2VzJzogWworICAgICAgICAgICAgICAgICdwdWJsaWMvYW5kcm9pZC9XZWJTYW5k
Ym94U3VwcG9ydC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL2FuZHJvaWQvV2ViVGhlbWVF
bmdpbmUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9ndGsvV2ViSW5wdXRFdmVudEZhY3Rv
cnkuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyaW5nLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvbGludXgvV2ViRm9udFJlbmRlclN0eWxlLmgnLApA
QCAtNzAzLDYgKzcwNSwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgWydleGNsdWRlJywg
Jy9saW51eC8nXSwKICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICB9XSwK
KyAgICAgICAgICAgICAgICBbJ09TPT0iYW5kcm9pZCInLCB7CisgICAgICAgICAgICAgICAgICAg
ICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAncHVibGljL2FuZHJv
aWQnLAorICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIH1dLAogICAgICAg
ICAgICAgICAgIFsnT1M9PSJtYWMiJywgewogICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZV9k
aXJzJzogWwogICAgICAgICAgICAgICAgICAgICAgICAgJ3B1YmxpYy9tYWMnLApJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJTYW5kYm94U3VwcG9ydC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViU2Fu
ZGJveFN1cHBvcnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL2FuZHJvaWQvV2ViU2FuZGJveFN1cHBvcnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViU2FuZGJveFN1cHBvcnRfaAorI2RlZmluZSBXZWJTYW5kYm94U3VwcG9y
dF9oCisKKy8vIEVtcHR5IGNsYXNzIGZvciBub3cKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBQ
dXQgbWV0aG9kcyBoZXJlIHRoYXQgYXJlIHJlcXVpcmVkIGR1ZSB0byBzYW5kYm94IHJlc3RyaWN0
aW9ucy4KK2NsYXNzIFdlYlNhbmRib3hTdXBwb3J0IHsKK3B1YmxpYzoKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViU2FuZGJveFN1cHBvcnQuaApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJUaGVtZUVuZ2luZS5oCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJUaGVtZUVu
Z2luZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViVGhlbWVFbmdp
bmVfaAorI2RlZmluZSBXZWJUaGVtZUVuZ2luZV9oCisKKyNpbmNsdWRlICIuLi9XZWJDYW52YXMu
aCIKKyNpbmNsdWRlICIuLi9XZWJDb2xvci5oIgorI2luY2x1ZGUgIi4uL1dlYlNpemUuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBXZWJSZWN0OworCitjbGFzcyBXZWJUaGVtZUVu
Z2luZSB7CitwdWJsaWM6CisgICAgLy8gVGhlIFVJIHBhcnQgd2hpY2ggaXMgYmVpbmcgYWNjZXNz
ZWQuCisgICAgZW51bSBQYXJ0IHsKKyAgICAgICAgLy8gU2Nyb2xsYmFyVGhlbWUgcGFydHMKKyAg
ICAgICAgUGFydFNjcm9sbGJhckRvd25BcnJvdywKKyAgICAgICAgUGFydFNjcm9sbGJhckxlZnRB
cnJvdywKKyAgICAgICAgUGFydFNjcm9sbGJhclJpZ2h0QXJyb3csCisgICAgICAgIFBhcnRTY3Jv
bGxiYXJVcEFycm93LAorICAgICAgICBQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRodW1iLAorICAg
ICAgICBQYXJ0U2Nyb2xsYmFyVmVydGljYWxUaHVtYiwKKyAgICAgICAgUGFydFNjcm9sbGJhckhv
cml6b250YWxUcmFjaywKKyAgICAgICAgUGFydFNjcm9sbGJhclZlcnRpY2FsVHJhY2ssCisKKyAg
ICAgICAgLy8gUmVuZGVyVGhlbWUgcGFydHMKKyAgICAgICAgUGFydENoZWNrYm94LAorICAgICAg
ICBQYXJ0UmFkaW8sCisgICAgICAgIFBhcnRCdXR0b24sCisgICAgICAgIFBhcnRUZXh0RmllbGQs
CisgICAgICAgIFBhcnRNZW51TGlzdCwKKyAgICAgICAgUGFydFNsaWRlclRyYWNrLAorICAgICAg
ICBQYXJ0U2xpZGVyVGh1bWIsCisgICAgICAgIFBhcnRJbm5lclNwaW5CdXR0b24sCisgICAgICAg
IFBhcnRQcm9ncmVzc0JhcgorICAgIH07CisKKyAgICAvLyBUaGUgY3VycmVudCBzdGF0ZSBvZiB0
aGUgYXNzb2NpYXRlZCBQYXJ0LgorICAgIGVudW0gU3RhdGUgeworICAgICAgICBTdGF0ZURpc2Fi
bGVkLAorICAgICAgICBTdGF0ZUhvdmVyLAorICAgICAgICBTdGF0ZU5vcm1hbCwKKyAgICAgICAg
U3RhdGVQcmVzc2VkLAorICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBkcmF3
aW5nIHRoZSBQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRyYWNrIGFuZAorICAgIC8vIFBhcnRTY3Jv
bGxiYXJWZXJ0aWNhbFRyYWNrLgorICAgIHN0cnVjdCBTY3JvbGxiYXJUcmFja0V4dHJhUGFyYW1z
IHsKKyAgICAgICAgLy8gVGhlIGJvdW5kcyBvZiB0aGUgZW50aXJlIHRyYWNrLCBhcyBvcHBvc2Vk
IHRvIHRoZSBwYXJ0IGJlaW5nIHBhaW50ZWQuCisgICAgICAgIGludCB0cmFja1g7CisgICAgICAg
IGludCB0cmFja1k7CisgICAgICAgIGludCB0cmFja1dpZHRoOworICAgICAgICBpbnQgdHJhY2tI
ZWlnaHQ7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRDaGVja2Jv
eCwgUGFydFB1c2hCdXR0b24gYW5kIFBhcnRSYWRpby4KKyAgICBzdHJ1Y3QgQnV0dG9uRXh0cmFQ
YXJhbXMgeworICAgICAgICBib29sIGNoZWNrZWQ7CisgICAgICAgIGJvb2wgaW5kZXRlcm1pbmF0
ZTsgLy8gV2hldGhlciB0aGUgYnV0dG9uIHN0YXRlIGlzIGluZGV0ZXJtaW5hdGUuCisgICAgICAg
IGJvb2wgaXNEZWZhdWx0OyAvLyBXaGV0aGVyIHRoZSBidXR0b24gaXMgZGVmYXVsdCBidXR0b24u
CisgICAgICAgIGJvb2wgaGFzQm9yZGVyOworICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29s
b3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRUZXh0RmllbGQK
KyAgICBzdHJ1Y3QgVGV4dEZpZWxkRXh0cmFQYXJhbXMgeworICAgICAgICBib29sIGlzVGV4dEFy
ZWE7CisgICAgICAgIGJvb2wgaXNMaXN0Ym94OworICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5k
Q29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRNZW51TGlz
dAorICAgIHN0cnVjdCBNZW51TGlzdEV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBoYXNCb3Jk
ZXI7CisgICAgICAgIGJvb2wgaGFzQm9yZGVyUmFkaXVzOworICAgICAgICBpbnQgYXJyb3dYOwor
ICAgICAgICBpbnQgYXJyb3dZOworICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7Cisg
ICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRTbGlkZXJUcmFjayBhbmQg
UGFydFNsaWRlclRodW1iCisgICAgc3RydWN0IFNsaWRlckV4dHJhUGFyYW1zIHsKKyAgICAgICAg
Ym9vbCB2ZXJ0aWNhbDsKKyAgICAgICAgYm9vbCBpbkRyYWc7CisgICAgfTsKKworICAgIC8vIEV4
dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRJbm5lclNwaW5CdXR0b24KKyAgICBzdHJ1Y3QgSW5uZXJT
cGluQnV0dG9uRXh0cmFQYXJhbXMgeworICAgICAgICBib29sIHNwaW5VcDsKKyAgICAgICAgYm9v
bCByZWFkT25seTsKKyAgICB9OworCisgICAgLy8gRXh0cmEgcGFyYW1ldGVycyBmb3IgUGFydFBy
b2dyZXNzQmFyCisgICAgc3RydWN0IFByb2dyZXNzQmFyRXh0cmFQYXJhbXMgeworICAgICAgICBi
b29sIGRldGVybWluYXRlOworICAgICAgICBpbnQgdmFsdWVSZWN0WDsKKyAgICAgICAgaW50IHZh
bHVlUmVjdFk7CisgICAgICAgIGludCB2YWx1ZVJlY3RXaWR0aDsKKyAgICAgICAgaW50IHZhbHVl
UmVjdEhlaWdodDsKKyAgICB9OworCisgICAgdW5pb24gRXh0cmFQYXJhbXMgeworICAgICAgICBT
Y3JvbGxiYXJUcmFja0V4dHJhUGFyYW1zIHNjcm9sbGJhclRyYWNrOworICAgICAgICBCdXR0b25F
eHRyYVBhcmFtcyBidXR0b247CisgICAgICAgIFRleHRGaWVsZEV4dHJhUGFyYW1zIHRleHRGaWVs
ZDsKKyAgICAgICAgTWVudUxpc3RFeHRyYVBhcmFtcyBtZW51TGlzdDsKKyAgICAgICAgU2xpZGVy
RXh0cmFQYXJhbXMgc2xpZGVyOworICAgICAgICBJbm5lclNwaW5CdXR0b25FeHRyYVBhcmFtcyBp
bm5lclNwaW47CisgICAgICAgIFByb2dyZXNzQmFyRXh0cmFQYXJhbXMgcHJvZ3Jlc3NCYXI7Cisg
ICAgfTsKKworICAgIC8vIEdldHMgdGhlIHNpemUgb2YgdGhlIGdpdmVuIHRoZW1lIHBhcnQuIEZv
ciB2YXJpYWJsZSBzaXplZCBpdGVtcworICAgIC8vIGxpa2UgdmVydGljYWwgc2Nyb2xsYmFyIHRo
dW1icywgdGhlIHdpZHRoIHdpbGwgYmUgdGhlIHJlcXVpcmVkIHdpZHRoIG9mCisgICAgLy8gdGhl
IHRyYWNrIHdoaWxlIHRoZSBoZWlnaHQgd2lsbCBiZSB0aGUgbWluaW11bSBoZWlnaHQuCisgICAg
dmlydHVhbCBXZWJTaXplIGdldFNpemUoUGFydCkgeyByZXR1cm4gV2ViU2l6ZSgpOyB9CisgICAg
Ly8gUGFpbnQgdGhlIGdpdmVuIHRoZSBnaXZlbiB0aGVtZSBwYXJ0LgorICAgIHZpcnR1YWwgdm9p
ZCBwYWludChXZWJDYW52YXMqLCBQYXJ0LCBTdGF0ZSwgY29uc3QgV2ViUmVjdCYsIGNvbnN0IEV4
dHJhUGFyYW1zKikgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9hbmRyb2lk
L1dlYlRoZW1lRW5naW5lLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExG
CgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQu
Y3BwCShyZXZpc2lvbiA5NDM4MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRm
b3JtU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDEwICs3MywxMiBAQAogCiAjaWYg
T1MoREFSV0lOKQogI2luY2x1ZGUgIm1hYy9XZWJUaGVtZUVuZ2luZS5oIgotI2VsaWYgT1MoVU5J
WCkKKyNlbGlmIE9TKFVOSVgpICYmICFPUyhBTkRST0lEKQogI2luY2x1ZGUgImxpbnV4L1dlYlRo
ZW1lRW5naW5lLmgiCiAjaW5jbHVkZSAiV2ViRm9udEluZm8uaCIKICNpbmNsdWRlICJXZWJGb250
UmVuZGVyU3R5bGUuaCIKKyNlbGlmIE9TKEFORFJPSUQpCisjaW5jbHVkZSAiYW5kcm9pZC9XZWJU
aGVtZUVuZ2luZS5oIgogI2VuZGlmCiAKICNpZiBXRUJLSVRfVVNJTkdfU0tJQQpAQCAtNDYxLDYg
KzQ2MywxMSBAQCBib29sIFBsYXRmb3JtU3VwcG9ydDo6bG9hZEZvbnQoTlNGb250KiBzCiAjZWxp
ZiBPUyhVTklYKQogU3RyaW5nIFBsYXRmb3JtU3VwcG9ydDo6Z2V0Rm9udEZhbWlseUZvckNoYXJh
Y3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNpemVfdCBudW1DaGFyYWN0ZXJzLCBjb25z
dCBjaGFyKiBwcmVmZXJyZWRMb2NhbGUpCiB7CisjaWYgT1MoQU5EUk9JRCkKKyAgICAvLyBGSVhN
RTogV2UgZG8gbm90IHVzZSBmb250Y29uZmlnIG9uIEFuZHJvaWQsIHNvIHVzZSBzaW1wbGUgbG9n
aWMgZm9yIG5vdy4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njc1ODcKKyAgICByZXR1cm4gV2ViU3RyaW5nKCJBcmlhbCIpOworI2Vsc2UKICAgICBpZiAo
d2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPnNhbmRib3hTdXBwb3J0KCkpCiAgICAgICAgIHJldHVy
biB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+c2FuZGJveFN1cHBvcnQoKS0+Z2V0Rm9udEZhbWls
eUZvckNoYXJhY3RlcnMoY2hhcmFjdGVycywgbnVtQ2hhcmFjdGVycywgcHJlZmVycmVkTG9jYWxl
KTsKIApAQCAtNDY5LDEwICs0NzYsMTIgQEAgU3RyaW5nIFBsYXRmb3JtU3VwcG9ydDo6Z2V0Rm9u
dEZhbWlseUZvcgogICAgICAgICByZXR1cm4gV2ViU3RyaW5nOjpmcm9tVVRGOChmYW1pbHkuZGF0
YSgpKTsKIAogICAgIHJldHVybiBXZWJTdHJpbmcoKTsKKyNlbmRpZgogfQogCiB2b2lkIFBsYXRm
b3JtU3VwcG9ydDo6Z2V0UmVuZGVyU3R5bGVGb3JTdHJpa2UoY29uc3QgY2hhciogZm9udCwgaW50
IHNpemVBbmRTdHlsZSwgRm9udFJlbmRlclN0eWxlKiByZXN1bHQpCiB7CisjaWYgIU9TKEFORFJP
SUQpCiAgICAgV2ViRm9udFJlbmRlclN0eWxlIHN0eWxlOwogCiAgICAgaWYgKHdlYktpdFBsYXRm
b3JtU3VwcG9ydCgpLT5zYW5kYm94U3VwcG9ydCgpKQpAQCAtNDgxLDYgKzQ5MCw3IEBAIHZvaWQg
UGxhdGZvcm1TdXBwb3J0OjpnZXRSZW5kZXJTdHlsZUZvclMKICAgICAgICAgV2ViRm9udEluZm86
OnJlbmRlclN0eWxlRm9yU3RyaWtlKGZvbnQsIHNpemVBbmRTdHlsZSwgJnN0eWxlKTsKIAogICAg
IHN0eWxlLnRvRm9udFJlbmRlclN0eWxlKHJlc3VsdCk7CisjZW5kaWYKIH0KICNlbmRpZgogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlz
aW9uIDk0MzgzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDcgKzE2Myw3IEBACiAjaW5jbHVkZSA8YWxnb3JpdGht
PgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCi0jaWYgT1MoVU5JWCkgJiYgIU9TKERB
UldJTikKKyNpZiBPUyhVTklYKSAmJiAhT1MoREFSV0lOKSAmJiAhT1MoQU5EUk9JRCkKICNpbmNs
dWRlIDxnZGsvZ2RrLmg+CiAjZW5kaWYKIAo=
</data>
<flag name="review"
          id="102761"
          type_id="1"
          status="-"
          setter="steveblock"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106385</attachid>
            <date>2011-09-05 21:23:25 -0700</date>
            <delta_ts>2011-09-08 21:03:55 -0700</delta_ts>
            <desc>Proposed patch 4.</desc>
            <filename>WebKit.patch</filename>
            <type>text/plain</type>
            <size>12030</size>
            <attacher name="Hao Zheng">zhenghao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NDU0OSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDktMDUgIEhhbyBaaGVuZyAgPHpoZW5naGFvQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbQ2hyb21pdW1dIEFkZCBXZWJTYW5kYm94U3VwcG9ydCBhbmQgV2ViVGhlbWVFbmdpbmUg
Zm9yIEFuZHJvaWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NzU4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1ha2Ugc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAgYW5kIHNyYy9XZWJGcmFtZUltcGwuY3Bw
IGNvbXBpbGUgb24KKyAgICAgICAgQ2hyb21pdW0gcG9ydCBmb3IgQW5kcm9pZC4KKworICAgICAg
ICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL2FuZHJvaWQ6IEFkZGVkLgorICAgICAg
ICAqIHB1YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0Lmg6IEFkZGVkLgorICAgICAgICAq
IHB1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJUaGVtZUVuZ2luZTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRoZW1lRW5n
aW5lOjpwYWludCk6CisgICAgICAgICogc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OmdldEZvbnRGYW1pbHlGb3JDaGFyYWN0ZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6Z2V0UmVuZGVyU3R5bGVGb3JTdHJp
a2UpOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorCiAyMDExLTA5LTA0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgbXV0
bGlwbGUgdG8gV2ViUG9wdXBNZW51SW5mbyBmb3IgQW5kcm9pZApJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cAkocmV2aXNpb24gOTQzODMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDggQEAKICAgICAgICAgICAg
ICAgICAnV0VCS0lUX0lNUExFTUVOVEFUSU9OPTEnLAogICAgICAgICAgICAgXSwKICAgICAgICAg
ICAgICdzb3VyY2VzJzogWworICAgICAgICAgICAgICAgICdwdWJsaWMvYW5kcm9pZC9XZWJTYW5k
Ym94U3VwcG9ydC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL2FuZHJvaWQvV2ViVGhlbWVF
bmdpbmUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9ndGsvV2ViSW5wdXRFdmVudEZhY3Rv
cnkuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyaW5nLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvbGludXgvV2ViRm9udFJlbmRlclN0eWxlLmgnLApA
QCAtNzAzLDYgKzcwNSwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgWydleGNsdWRlJywg
Jy9saW51eC8nXSwKICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICB9XSwK
KyAgICAgICAgICAgICAgICBbJ09TPT0iYW5kcm9pZCInLCB7CisgICAgICAgICAgICAgICAgICAg
ICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAncHVibGljL2FuZHJv
aWQnLAorICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIH1dLAogICAgICAg
ICAgICAgICAgIFsnT1M9PSJtYWMiJywgewogICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZV9k
aXJzJzogWwogICAgICAgICAgICAgICAgICAgICAgICAgJ3B1YmxpYy9tYWMnLApJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJTYW5kYm94U3VwcG9ydC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViU2Fu
ZGJveFN1cHBvcnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL2FuZHJvaWQvV2ViU2FuZGJveFN1cHBvcnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViU2FuZGJveFN1cHBvcnRfaAorI2RlZmluZSBXZWJTYW5kYm94U3VwcG9y
dF9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBGSVhNRTogRW1wdHkgY2xhc3MgZm9yIG5v
dywgYXMgd2UgbmVlZCBpdCB0byBjb21waWxlLgorLy8gUHV0IG1ldGhvZHMgaGVyZSB0aGF0IGFy
ZSByZXF1aXJlZCBkdWUgdG8gc2FuZGJveCByZXN0cmljdGlvbnMuCitjbGFzcyBXZWJTYW5kYm94
U3VwcG9ydCB7CitwdWJsaWM6Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9hbmRy
b2lkL1dlYlNhbmRib3hTdXBwb3J0LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQog
ICArIExGCgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJU
aGVtZUVuZ2luZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L2FuZHJvaWQvV2ViVGhlbWVFbmdpbmUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViVGhlbWVFbmdpbmUuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlRoZW1lRW5naW5lX2gKKyNkZWZpbmUgV2ViVGhlbWVF
bmdpbmVfaAorCisjaW5jbHVkZSAiLi4vV2ViQ2FudmFzLmgiCisjaW5jbHVkZSAiLi4vV2ViQ29s
b3IuaCIKKyNpbmNsdWRlICIuLi9XZWJTaXplLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitz
dHJ1Y3QgV2ViUmVjdDsKKworY2xhc3MgV2ViVGhlbWVFbmdpbmUgeworcHVibGljOgorICAgIC8v
IFRoZSBVSSBwYXJ0IHdoaWNoIGlzIGJlaW5nIGFjY2Vzc2VkLgorICAgIGVudW0gUGFydCB7Cisg
ICAgICAgIC8vIFNjcm9sbGJhclRoZW1lIHBhcnRzCisgICAgICAgIFBhcnRTY3JvbGxiYXJEb3du
QXJyb3csCisgICAgICAgIFBhcnRTY3JvbGxiYXJMZWZ0QXJyb3csCisgICAgICAgIFBhcnRTY3Jv
bGxiYXJSaWdodEFycm93LAorICAgICAgICBQYXJ0U2Nyb2xsYmFyVXBBcnJvdywKKyAgICAgICAg
UGFydFNjcm9sbGJhckhvcml6b250YWxUaHVtYiwKKyAgICAgICAgUGFydFNjcm9sbGJhclZlcnRp
Y2FsVGh1bWIsCisgICAgICAgIFBhcnRTY3JvbGxiYXJIb3Jpem9udGFsVHJhY2ssCisgICAgICAg
IFBhcnRTY3JvbGxiYXJWZXJ0aWNhbFRyYWNrLAorCisgICAgICAgIC8vIFJlbmRlclRoZW1lIHBh
cnRzCisgICAgICAgIFBhcnRDaGVja2JveCwKKyAgICAgICAgUGFydFJhZGlvLAorICAgICAgICBQ
YXJ0QnV0dG9uLAorICAgICAgICBQYXJ0VGV4dEZpZWxkLAorICAgICAgICBQYXJ0TWVudUxpc3Qs
CisgICAgICAgIFBhcnRTbGlkZXJUcmFjaywKKyAgICAgICAgUGFydFNsaWRlclRodW1iLAorICAg
ICAgICBQYXJ0SW5uZXJTcGluQnV0dG9uLAorICAgICAgICBQYXJ0UHJvZ3Jlc3NCYXIKKyAgICB9
OworCisgICAgLy8gVGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFzc29jaWF0ZWQgUGFydC4KKyAg
ICBlbnVtIFN0YXRlIHsKKyAgICAgICAgU3RhdGVEaXNhYmxlZCwKKyAgICAgICAgU3RhdGVIb3Zl
ciwKKyAgICAgICAgU3RhdGVOb3JtYWwsCisgICAgICAgIFN0YXRlUHJlc3NlZCwKKyAgICB9Owor
CisgICAgLy8gRXh0cmEgcGFyYW1ldGVycyBmb3IgZHJhd2luZyB0aGUgUGFydFNjcm9sbGJhckhv
cml6b250YWxUcmFjayBhbmQKKyAgICAvLyBQYXJ0U2Nyb2xsYmFyVmVydGljYWxUcmFjay4KKyAg
ICBzdHJ1Y3QgU2Nyb2xsYmFyVHJhY2tFeHRyYVBhcmFtcyB7CisgICAgICAgIC8vIFRoZSBib3Vu
ZHMgb2YgdGhlIGVudGlyZSB0cmFjaywgYXMgb3Bwb3NlZCB0byB0aGUgcGFydCBiZWluZyBwYWlu
dGVkLgorICAgICAgICBpbnQgdHJhY2tYOworICAgICAgICBpbnQgdHJhY2tZOworICAgICAgICBp
bnQgdHJhY2tXaWR0aDsKKyAgICAgICAgaW50IHRyYWNrSGVpZ2h0OworICAgIH07CisKKyAgICAv
LyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQYXJ0Q2hlY2tib3gsIFBhcnRQdXNoQnV0dG9uIGFuZCBQ
YXJ0UmFkaW8uCisgICAgc3RydWN0IEJ1dHRvbkV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBj
aGVja2VkOworICAgICAgICBib29sIGluZGV0ZXJtaW5hdGU7IC8vIFdoZXRoZXIgdGhlIGJ1dHRv
biBzdGF0ZSBpcyBpbmRldGVybWluYXRlLgorICAgICAgICBib29sIGlzRGVmYXVsdDsgLy8gV2hl
dGhlciB0aGUgYnV0dG9uIGlzIGRlZmF1bHQgYnV0dG9uLgorICAgICAgICBib29sIGhhc0JvcmRl
cjsKKyAgICAgICAgV2ViQ29sb3IgYmFja2dyb3VuZENvbG9yOworICAgIH07CisKKyAgICAvLyBF
eHRyYSBwYXJhbWV0ZXJzIGZvciBQYXJ0VGV4dEZpZWxkCisgICAgc3RydWN0IFRleHRGaWVsZEV4
dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBpc1RleHRBcmVhOworICAgICAgICBib29sIGlzTGlz
dGJveDsKKyAgICAgICAgV2ViQ29sb3IgYmFja2dyb3VuZENvbG9yOworICAgIH07CisKKyAgICAv
LyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQYXJ0TWVudUxpc3QKKyAgICBzdHJ1Y3QgTWVudUxpc3RF
eHRyYVBhcmFtcyB7CisgICAgICAgIGJvb2wgaGFzQm9yZGVyOworICAgICAgICBib29sIGhhc0Jv
cmRlclJhZGl1czsKKyAgICAgICAgaW50IGFycm93WDsKKyAgICAgICAgaW50IGFycm93WTsKKyAg
ICAgICAgV2ViQ29sb3IgYmFja2dyb3VuZENvbG9yOworICAgIH07CisKKyAgICAvLyBFeHRyYSBw
YXJhbWV0ZXJzIGZvciBQYXJ0U2xpZGVyVHJhY2sgYW5kIFBhcnRTbGlkZXJUaHVtYgorICAgIHN0
cnVjdCBTbGlkZXJFeHRyYVBhcmFtcyB7CisgICAgICAgIGJvb2wgdmVydGljYWw7CisgICAgICAg
IGJvb2wgaW5EcmFnOworICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQYXJ0
SW5uZXJTcGluQnV0dG9uCisgICAgc3RydWN0IElubmVyU3BpbkJ1dHRvbkV4dHJhUGFyYW1zIHsK
KyAgICAgICAgYm9vbCBzcGluVXA7CisgICAgICAgIGJvb2wgcmVhZE9ubHk7CisgICAgfTsKKwor
ICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRQcm9ncmVzc0JhcgorICAgIHN0cnVjdCBQ
cm9ncmVzc0JhckV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBkZXRlcm1pbmF0ZTsKKyAgICAg
ICAgaW50IHZhbHVlUmVjdFg7CisgICAgICAgIGludCB2YWx1ZVJlY3RZOworICAgICAgICBpbnQg
dmFsdWVSZWN0V2lkdGg7CisgICAgICAgIGludCB2YWx1ZVJlY3RIZWlnaHQ7CisgICAgfTsKKwor
ICAgIHVuaW9uIEV4dHJhUGFyYW1zIHsKKyAgICAgICAgU2Nyb2xsYmFyVHJhY2tFeHRyYVBhcmFt
cyBzY3JvbGxiYXJUcmFjazsKKyAgICAgICAgQnV0dG9uRXh0cmFQYXJhbXMgYnV0dG9uOworICAg
ICAgICBUZXh0RmllbGRFeHRyYVBhcmFtcyB0ZXh0RmllbGQ7CisgICAgICAgIE1lbnVMaXN0RXh0
cmFQYXJhbXMgbWVudUxpc3Q7CisgICAgICAgIFNsaWRlckV4dHJhUGFyYW1zIHNsaWRlcjsKKyAg
ICAgICAgSW5uZXJTcGluQnV0dG9uRXh0cmFQYXJhbXMgaW5uZXJTcGluOworICAgICAgICBQcm9n
cmVzc0JhckV4dHJhUGFyYW1zIHByb2dyZXNzQmFyOworICAgIH07CisKKyAgICAvLyBHZXRzIHRo
ZSBzaXplIG9mIHRoZSBnaXZlbiB0aGVtZSBwYXJ0LiBGb3IgdmFyaWFibGUgc2l6ZWQgaXRlbXMK
KyAgICAvLyBsaWtlIHZlcnRpY2FsIHNjcm9sbGJhciB0aHVtYnMsIHRoZSB3aWR0aCB3aWxsIGJl
IHRoZSByZXF1aXJlZCB3aWR0aCBvZgorICAgIC8vIHRoZSB0cmFjayB3aGlsZSB0aGUgaGVpZ2h0
IHdpbGwgYmUgdGhlIG1pbmltdW0gaGVpZ2h0LgorICAgIHZpcnR1YWwgV2ViU2l6ZSBnZXRTaXpl
KFBhcnQpIHsgcmV0dXJuIFdlYlNpemUoKTsgfQorICAgIC8vIFBhaW50IHRoZSBnaXZlbiB0aGUg
Z2l2ZW4gdGhlbWUgcGFydC4KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiwgUGFy
dCwgU3RhdGUsIGNvbnN0IFdlYlJlY3QmLCBjb25zdCBFeHRyYVBhcmFtcyopIHsgfQorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJUaGVtZUVuZ2luZS5oCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAkocmV2aXNpb24gOTQzODMpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03MywxMCArNzMsMTIgQEAKIAogI2lmIE9TKERBUldJTikKICNpbmNsdWRlICJt
YWMvV2ViVGhlbWVFbmdpbmUuaCIKLSNlbGlmIE9TKFVOSVgpCisjZWxpZiBPUyhVTklYKSAmJiAh
T1MoQU5EUk9JRCkKICNpbmNsdWRlICJsaW51eC9XZWJUaGVtZUVuZ2luZS5oIgogI2luY2x1ZGUg
IldlYkZvbnRJbmZvLmgiCiAjaW5jbHVkZSAiV2ViRm9udFJlbmRlclN0eWxlLmgiCisjZWxpZiBP
UyhBTkRST0lEKQorI2luY2x1ZGUgImFuZHJvaWQvV2ViVGhlbWVFbmdpbmUuaCIKICNlbmRpZgog
CiAjaWYgV0VCS0lUX1VTSU5HX1NLSUEKQEAgLTQ2MSw2ICs0NjMsMTEgQEAgYm9vbCBQbGF0Zm9y
bVN1cHBvcnQ6OmxvYWRGb250KE5TRm9udCogcwogI2VsaWYgT1MoVU5JWCkKIFN0cmluZyBQbGF0
Zm9ybVN1cHBvcnQ6OmdldEZvbnRGYW1pbHlGb3JDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzLCBzaXplX3QgbnVtQ2hhcmFjdGVycywgY29uc3QgY2hhciogcHJlZmVycmVkTG9jYWxl
KQogeworI2lmIE9TKEFORFJPSUQpCisgICAgLy8gRklYTUU6IFdlIGRvIG5vdCB1c2UgZm9udGNv
bmZpZyBvbiBBbmRyb2lkLCBzbyB1c2Ugc2ltcGxlIGxvZ2ljIGZvciBub3cuCisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTg3CisgICAgcmV0dXJuIFdl
YlN0cmluZygiQXJpYWwiKTsKKyNlbHNlCiAgICAgaWYgKHdlYktpdFBsYXRmb3JtU3VwcG9ydCgp
LT5zYW5kYm94U3VwcG9ydCgpKQogICAgICAgICByZXR1cm4gd2ViS2l0UGxhdGZvcm1TdXBwb3J0
KCktPnNhbmRib3hTdXBwb3J0KCktPmdldEZvbnRGYW1pbHlGb3JDaGFyYWN0ZXJzKGNoYXJhY3Rl
cnMsIG51bUNoYXJhY3RlcnMsIHByZWZlcnJlZExvY2FsZSk7CiAKQEAgLTQ2OSwxMCArNDc2LDEy
IEBAIFN0cmluZyBQbGF0Zm9ybVN1cHBvcnQ6OmdldEZvbnRGYW1pbHlGb3IKICAgICAgICAgcmV0
dXJuIFdlYlN0cmluZzo6ZnJvbVVURjgoZmFtaWx5LmRhdGEoKSk7CiAKICAgICByZXR1cm4gV2Vi
U3RyaW5nKCk7CisjZW5kaWYKIH0KIAogdm9pZCBQbGF0Zm9ybVN1cHBvcnQ6OmdldFJlbmRlclN0
eWxlRm9yU3RyaWtlKGNvbnN0IGNoYXIqIGZvbnQsIGludCBzaXplQW5kU3R5bGUsIEZvbnRSZW5k
ZXJTdHlsZSogcmVzdWx0KQogeworI2lmICFPUyhBTkRST0lEKQogICAgIFdlYkZvbnRSZW5kZXJT
dHlsZSBzdHlsZTsKIAogICAgIGlmICh3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+c2FuZGJveFN1
cHBvcnQoKSkKQEAgLTQ4MSw2ICs0OTAsNyBAQCB2b2lkIFBsYXRmb3JtU3VwcG9ydDo6Z2V0UmVu
ZGVyU3R5bGVGb3JTCiAgICAgICAgIFdlYkZvbnRJbmZvOjpyZW5kZXJTdHlsZUZvclN0cmlrZShm
b250LCBzaXplQW5kU3R5bGUsICZzdHlsZSk7CiAKICAgICBzdHlsZS50b0ZvbnRSZW5kZXJTdHls
ZShyZXN1bHQpOworI2VuZGlmCiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCShyZXZpc2lvbiA5NDM4MykKKysrIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2
Myw3ICsxNjMsNyBAQAogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KIAotI2lmIE9TKFVOSVgpICYmICFPUyhEQVJXSU4pCisjaWYgT1MoVU5JWCkgJiYg
IU9TKERBUldJTikgJiYgIU9TKEFORFJPSUQpCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogI2VuZGlm
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106835</attachid>
            <date>2011-09-08 21:03:55 -0700</date>
            <delta_ts>2011-09-09 06:24:25 -0700</delta_ts>
            <desc>Proposed patch 5.</desc>
            <filename>WebKit.patch</filename>
            <type>text/plain</type>
            <size>11957</size>
            <attacher name="Hao Zheng">zhenghao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NDgzMSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDktMDggIEhhbyBaaGVuZyAgPHpoZW5naGFvQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbQ2hyb21pdW1dIEFkZCBXZWJTYW5kYm94U3VwcG9ydCBhbmQgV2ViVGhlbWVFbmdpbmUg
Zm9yIEFuZHJvaWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NzU4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1ha2Ugc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAgYW5kIHNyYy9XZWJGcmFtZUltcGwuY3Bw
IGNvbXBpbGUgb24KKyAgICAgICAgQ2hyb21pdW0gcG9ydCBmb3IgQW5kcm9pZC4KKworICAgICAg
ICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL2FuZHJvaWQ6IEFkZGVkLgorICAgICAg
ICAqIHB1YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0Lmg6IEFkZGVkLgorICAgICAgICAq
IHB1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJUaGVtZUVuZ2luZTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRoZW1lRW5n
aW5lOjpwYWludCk6CisgICAgICAgICogc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OmdldEZvbnRGYW1pbHlGb3JDaGFyYWN0ZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6Z2V0UmVuZGVyU3R5bGVGb3JTdHJp
a2UpOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorCiAyMDExLTA5LTA4ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQW5vdGhlciBhdHRlbXB0IHRv
IGZpeCB0aGUgQ2hyb21pdW0gYnVpbGQuICAoTWlzc2VkIG9uZS4pCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCShyZXZpc2lvbiA5NDY2MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cAkod29ya2luZyBjb3B5KQpAQCAtODksNiArODksOCBAQAogICAgICAgICAg
ICAgICAgICdXRUJLSVRfSU1QTEVNRU5UQVRJT049MScsCiAgICAgICAgICAgICBdLAogICAgICAg
ICAgICAgJ3NvdXJjZXMnOiBbCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9hbmRyb2lkL1dlYlNh
bmRib3hTdXBwb3J0LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvYW5kcm9pZC9XZWJUaGVt
ZUVuZ2luZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL2d0ay9XZWJJbnB1dEV2ZW50RmFj
dG9yeS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL2xpbnV4L1dlYkZvbnRSZW5kZXJpbmcu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyU3R5bGUuaCcs
CkBAIC03MDQsNiArNzA2LDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBbJ2V4Y2x1ZGUn
LCAnL2xpbnV4LyddLAogICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgIH1d
LAorICAgICAgICAgICAgICAgIFsnT1M9PSJhbmRyb2lkIicsIHsKKyAgICAgICAgICAgICAgICAg
ICAgJ2luY2x1ZGVfZGlycyc6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwdWJsaWMvYW5k
cm9pZCcsCisgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgfV0sCiAgICAg
ICAgICAgICAgICAgWydPUz09Im1hYyInLCB7CiAgICAgICAgICAgICAgICAgICAgICdpbmNsdWRl
X2RpcnMnOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAncHVibGljL21hYycsCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJT
YW5kYm94U3VwcG9ydC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvYW5kcm9pZC9XZWJTYW5kYm94U3VwcG9ydC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXZWJTYW5kYm94U3VwcG9ydF9oCisjZGVmaW5lIFdlYlNhbmRib3hTdXBw
b3J0X2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIEVtcHR5IGNsYXNzIGZvciBub3csIGFz
IHdlIG5lZWQgaXQgdG8gY29tcGlsZS4KK2NsYXNzIFdlYlNhbmRib3hTdXBwb3J0IHsKK3B1Ymxp
YzoKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKClByb3BlcnR5IGNoYW5n
ZXMgb246IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViU2FuZGJveFN1
cHBvcnQuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJUaGVt
ZUVuZ2luZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
YW5kcm9pZC9XZWJUaGVtZUVuZ2luZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViVGhlbWVFbmdpbmVfaAorI2RlZmluZSBXZWJUaGVtZUVuZ2luZV9oCisKKyNpbmNs
dWRlICIuLi9XZWJDYW52YXMuaCIKKyNpbmNsdWRlICIuLi9XZWJDb2xvci5oIgorI2luY2x1ZGUg
Ii4uL1dlYlNpemUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBXZWJSZWN0Owor
CitjbGFzcyBXZWJUaGVtZUVuZ2luZSB7CitwdWJsaWM6CisgICAgLy8gVGhlIFVJIHBhcnQgd2hp
Y2ggaXMgYmVpbmcgYWNjZXNzZWQuCisgICAgZW51bSBQYXJ0IHsKKyAgICAgICAgLy8gU2Nyb2xs
YmFyVGhlbWUgcGFydHMKKyAgICAgICAgUGFydFNjcm9sbGJhckRvd25BcnJvdywKKyAgICAgICAg
UGFydFNjcm9sbGJhckxlZnRBcnJvdywKKyAgICAgICAgUGFydFNjcm9sbGJhclJpZ2h0QXJyb3cs
CisgICAgICAgIFBhcnRTY3JvbGxiYXJVcEFycm93LAorICAgICAgICBQYXJ0U2Nyb2xsYmFySG9y
aXpvbnRhbFRodW1iLAorICAgICAgICBQYXJ0U2Nyb2xsYmFyVmVydGljYWxUaHVtYiwKKyAgICAg
ICAgUGFydFNjcm9sbGJhckhvcml6b250YWxUcmFjaywKKyAgICAgICAgUGFydFNjcm9sbGJhclZl
cnRpY2FsVHJhY2ssCisKKyAgICAgICAgLy8gUmVuZGVyVGhlbWUgcGFydHMKKyAgICAgICAgUGFy
dENoZWNrYm94LAorICAgICAgICBQYXJ0UmFkaW8sCisgICAgICAgIFBhcnRCdXR0b24sCisgICAg
ICAgIFBhcnRUZXh0RmllbGQsCisgICAgICAgIFBhcnRNZW51TGlzdCwKKyAgICAgICAgUGFydFNs
aWRlclRyYWNrLAorICAgICAgICBQYXJ0U2xpZGVyVGh1bWIsCisgICAgICAgIFBhcnRJbm5lclNw
aW5CdXR0b24sCisgICAgICAgIFBhcnRQcm9ncmVzc0JhcgorICAgIH07CisKKyAgICAvLyBUaGUg
Y3VycmVudCBzdGF0ZSBvZiB0aGUgYXNzb2NpYXRlZCBQYXJ0LgorICAgIGVudW0gU3RhdGUgewor
ICAgICAgICBTdGF0ZURpc2FibGVkLAorICAgICAgICBTdGF0ZUhvdmVyLAorICAgICAgICBTdGF0
ZU5vcm1hbCwKKyAgICAgICAgU3RhdGVQcmVzc2VkLAorICAgIH07CisKKyAgICAvLyBFeHRyYSBw
YXJhbWV0ZXJzIGZvciBkcmF3aW5nIHRoZSBQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRyYWNrIGFu
ZAorICAgIC8vIFBhcnRTY3JvbGxiYXJWZXJ0aWNhbFRyYWNrLgorICAgIHN0cnVjdCBTY3JvbGxi
YXJUcmFja0V4dHJhUGFyYW1zIHsKKyAgICAgICAgLy8gVGhlIGJvdW5kcyBvZiB0aGUgZW50aXJl
IHRyYWNrLCBhcyBvcHBvc2VkIHRvIHRoZSBwYXJ0IGJlaW5nIHBhaW50ZWQuCisgICAgICAgIGlu
dCB0cmFja1g7CisgICAgICAgIGludCB0cmFja1k7CisgICAgICAgIGludCB0cmFja1dpZHRoOwor
ICAgICAgICBpbnQgdHJhY2tIZWlnaHQ7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRl
cnMgZm9yIFBhcnRDaGVja2JveCwgUGFydFB1c2hCdXR0b24gYW5kIFBhcnRSYWRpby4KKyAgICBz
dHJ1Y3QgQnV0dG9uRXh0cmFQYXJhbXMgeworICAgICAgICBib29sIGNoZWNrZWQ7CisgICAgICAg
IGJvb2wgaW5kZXRlcm1pbmF0ZTsgLy8gV2hldGhlciB0aGUgYnV0dG9uIHN0YXRlIGlzIGluZGV0
ZXJtaW5hdGUuCisgICAgICAgIGJvb2wgaXNEZWZhdWx0OyAvLyBXaGV0aGVyIHRoZSBidXR0b24g
aXMgZGVmYXVsdCBidXR0b24uCisgICAgICAgIGJvb2wgaGFzQm9yZGVyOworICAgICAgICBXZWJD
b2xvciBiYWNrZ3JvdW5kQ29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMg
Zm9yIFBhcnRUZXh0RmllbGQKKyAgICBzdHJ1Y3QgVGV4dEZpZWxkRXh0cmFQYXJhbXMgeworICAg
ICAgICBib29sIGlzVGV4dEFyZWE7CisgICAgICAgIGJvb2wgaXNMaXN0Ym94OworICAgICAgICBX
ZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRl
cnMgZm9yIFBhcnRNZW51TGlzdAorICAgIHN0cnVjdCBNZW51TGlzdEV4dHJhUGFyYW1zIHsKKyAg
ICAgICAgYm9vbCBoYXNCb3JkZXI7CisgICAgICAgIGJvb2wgaGFzQm9yZGVyUmFkaXVzOworICAg
ICAgICBpbnQgYXJyb3dYOworICAgICAgICBpbnQgYXJyb3dZOworICAgICAgICBXZWJDb2xvciBi
YWNrZ3JvdW5kQ29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBh
cnRTbGlkZXJUcmFjayBhbmQgUGFydFNsaWRlclRodW1iCisgICAgc3RydWN0IFNsaWRlckV4dHJh
UGFyYW1zIHsKKyAgICAgICAgYm9vbCB2ZXJ0aWNhbDsKKyAgICAgICAgYm9vbCBpbkRyYWc7Cisg
ICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRJbm5lclNwaW5CdXR0b24K
KyAgICBzdHJ1Y3QgSW5uZXJTcGluQnV0dG9uRXh0cmFQYXJhbXMgeworICAgICAgICBib29sIHNw
aW5VcDsKKyAgICAgICAgYm9vbCByZWFkT25seTsKKyAgICB9OworCisgICAgLy8gRXh0cmEgcGFy
YW1ldGVycyBmb3IgUGFydFByb2dyZXNzQmFyCisgICAgc3RydWN0IFByb2dyZXNzQmFyRXh0cmFQ
YXJhbXMgeworICAgICAgICBib29sIGRldGVybWluYXRlOworICAgICAgICBpbnQgdmFsdWVSZWN0
WDsKKyAgICAgICAgaW50IHZhbHVlUmVjdFk7CisgICAgICAgIGludCB2YWx1ZVJlY3RXaWR0aDsK
KyAgICAgICAgaW50IHZhbHVlUmVjdEhlaWdodDsKKyAgICB9OworCisgICAgdW5pb24gRXh0cmFQ
YXJhbXMgeworICAgICAgICBTY3JvbGxiYXJUcmFja0V4dHJhUGFyYW1zIHNjcm9sbGJhclRyYWNr
OworICAgICAgICBCdXR0b25FeHRyYVBhcmFtcyBidXR0b247CisgICAgICAgIFRleHRGaWVsZEV4
dHJhUGFyYW1zIHRleHRGaWVsZDsKKyAgICAgICAgTWVudUxpc3RFeHRyYVBhcmFtcyBtZW51TGlz
dDsKKyAgICAgICAgU2xpZGVyRXh0cmFQYXJhbXMgc2xpZGVyOworICAgICAgICBJbm5lclNwaW5C
dXR0b25FeHRyYVBhcmFtcyBpbm5lclNwaW47CisgICAgICAgIFByb2dyZXNzQmFyRXh0cmFQYXJh
bXMgcHJvZ3Jlc3NCYXI7CisgICAgfTsKKworICAgIC8vIEdldHMgdGhlIHNpemUgb2YgdGhlIGdp
dmVuIHRoZW1lIHBhcnQuIEZvciB2YXJpYWJsZSBzaXplZCBpdGVtcworICAgIC8vIGxpa2UgdmVy
dGljYWwgc2Nyb2xsYmFyIHRodW1icywgdGhlIHdpZHRoIHdpbGwgYmUgdGhlIHJlcXVpcmVkIHdp
ZHRoIG9mCisgICAgLy8gdGhlIHRyYWNrIHdoaWxlIHRoZSBoZWlnaHQgd2lsbCBiZSB0aGUgbWlu
aW11bSBoZWlnaHQuCisgICAgdmlydHVhbCBXZWJTaXplIGdldFNpemUoUGFydCkgeyByZXR1cm4g
V2ViU2l6ZSgpOyB9CisgICAgLy8gUGFpbnQgdGhlIGdpdmVuIHRoZSBnaXZlbiB0aGVtZSBwYXJ0
LgorICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMqLCBQYXJ0LCBTdGF0ZSwgY29uc3Qg
V2ViUmVjdCYsIGNvbnN0IEV4dHJhUGFyYW1zKikgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmgKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3Zu
OmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxh
dGZvcm1TdXBwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9QbGF0Zm9ybVN1cHBvcnQuY3BwCShyZXZpc2lvbiA5NDY2MSkKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDEw
ICs3MywxMiBAQAogCiAjaWYgT1MoREFSV0lOKQogI2luY2x1ZGUgIm1hYy9XZWJUaGVtZUVuZ2lu
ZS5oIgotI2VsaWYgT1MoVU5JWCkKKyNlbGlmIE9TKFVOSVgpICYmICFPUyhBTkRST0lEKQogI2lu
Y2x1ZGUgImxpbnV4L1dlYlRoZW1lRW5naW5lLmgiCiAjaW5jbHVkZSAiV2ViRm9udEluZm8uaCIK
ICNpbmNsdWRlICJXZWJGb250UmVuZGVyU3R5bGUuaCIKKyNlbGlmIE9TKEFORFJPSUQpCisjaW5j
bHVkZSAiYW5kcm9pZC9XZWJUaGVtZUVuZ2luZS5oIgogI2VuZGlmCiAKICNpZiBXRUJLSVRfVVNJ
TkdfU0tJQQpAQCAtNDYxLDYgKzQ2MywxMSBAQCBib29sIFBsYXRmb3JtU3VwcG9ydDo6bG9hZEZv
bnQoTlNGb250KiBzCiAjZWxpZiBPUyhVTklYKQogU3RyaW5nIFBsYXRmb3JtU3VwcG9ydDo6Z2V0
Rm9udEZhbWlseUZvckNoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNpemVfdCBu
dW1DaGFyYWN0ZXJzLCBjb25zdCBjaGFyKiBwcmVmZXJyZWRMb2NhbGUpCiB7CisjaWYgT1MoQU5E
Uk9JRCkKKyAgICAvLyBGSVhNRTogV2UgZG8gbm90IHVzZSBmb250Y29uZmlnIG9uIEFuZHJvaWQs
IHNvIHVzZSBzaW1wbGUgbG9naWMgZm9yIG5vdy4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1ODcKKyAgICByZXR1cm4gV2ViU3RyaW5nKCJBcmlhbCIp
OworI2Vsc2UKICAgICBpZiAod2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPnNhbmRib3hTdXBwb3J0
KCkpCiAgICAgICAgIHJldHVybiB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+c2FuZGJveFN1cHBv
cnQoKS0+Z2V0Rm9udEZhbWlseUZvckNoYXJhY3RlcnMoY2hhcmFjdGVycywgbnVtQ2hhcmFjdGVy
cywgcHJlZmVycmVkTG9jYWxlKTsKIApAQCAtNDY5LDEwICs0NzYsMTIgQEAgU3RyaW5nIFBsYXRm
b3JtU3VwcG9ydDo6Z2V0Rm9udEZhbWlseUZvcgogICAgICAgICByZXR1cm4gV2ViU3RyaW5nOjpm
cm9tVVRGOChmYW1pbHkuZGF0YSgpKTsKIAogICAgIHJldHVybiBXZWJTdHJpbmcoKTsKKyNlbmRp
ZgogfQogCiB2b2lkIFBsYXRmb3JtU3VwcG9ydDo6Z2V0UmVuZGVyU3R5bGVGb3JTdHJpa2UoY29u
c3QgY2hhciogZm9udCwgaW50IHNpemVBbmRTdHlsZSwgRm9udFJlbmRlclN0eWxlKiByZXN1bHQp
CiB7CisjaWYgIU9TKEFORFJPSUQpCiAgICAgV2ViRm9udFJlbmRlclN0eWxlIHN0eWxlOwogCiAg
ICAgaWYgKHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5zYW5kYm94U3VwcG9ydCgpKQpAQCAtNDgx
LDYgKzQ5MCw3IEBAIHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpnZXRSZW5kZXJTdHlsZUZvclMKICAg
ICAgICAgV2ViRm9udEluZm86OnJlbmRlclN0eWxlRm9yU3RyaWtlKGZvbnQsIHNpemVBbmRTdHls
ZSwgJnN0eWxlKTsKIAogICAgIHN0eWxlLnRvRm9udFJlbmRlclN0eWxlKHJlc3VsdCk7CisjZW5k
aWYKIH0KICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5jcHAJKHJldmlzaW9uIDk0NjYxKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDcgKzE2Myw3IEBACiAj
aW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCi0jaWYg
T1MoVU5JWCkgJiYgIU9TKERBUldJTikKKyNpZiBPUyhVTklYKSAmJiAhT1MoREFSV0lOKSAmJiAh
T1MoQU5EUk9JRCkKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAjZW5kaWYKIAo=
</data>
<flag name="review"
          id="103358"
          type_id="1"
          status="+"
          setter="steveblock"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106864</attachid>
            <date>2011-09-09 06:24:25 -0700</date>
            <delta_ts>2011-09-09 09:57:17 -0700</delta_ts>
            <desc>Proposed patch 6.</desc>
            <filename>attachment.cgi.txt</filename>
            <type>text/plain</type>
            <size>11949</size>
            <attacher name="Hao Zheng">zhenghao</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NDgzMSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDktMDggIEhhbyBaaGVuZyAgPHpoZW5naGFvQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbQ2hyb21pdW1dIEFkZCBXZWJTYW5kYm94U3VwcG9ydCBhbmQgV2ViVGhlbWVFbmdpbmUg
Zm9yIEFuZHJvaWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NzU4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1ha2Ugc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAgYW5kIHNyYy9XZWJGcmFtZUltcGwuY3Bw
IGNvbXBpbGUgb24KKyAgICAgICAgQ2hyb21pdW0gcG9ydCBmb3IgQW5kcm9pZC4KKworICAgICAg
ICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL2FuZHJvaWQ6IEFkZGVkLgorICAgICAg
ICAqIHB1YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0Lmg6IEFkZGVkLgorICAgICAgICAq
IHB1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJUaGVtZUVuZ2luZTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRoZW1lRW5n
aW5lOjpwYWludCk6CisgICAgICAgICogc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OmdldEZvbnRGYW1pbHlGb3JDaGFyYWN0ZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6Z2V0UmVuZGVyU3R5bGVGb3JTdHJp
a2UpOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorCiAyMDExLTA5LTA4ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQW5vdGhlciBhdHRlbXB0IHRv
IGZpeCB0aGUgQ2hyb21pdW0gYnVpbGQuICAoTWlzc2VkIG9uZS4pCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCShyZXZpc2lvbiA5NDY2MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cAkod29ya2luZyBjb3B5KQpAQCAtODksNiArODksOCBAQAogICAgICAgICAg
ICAgICAgICdXRUJLSVRfSU1QTEVNRU5UQVRJT049MScsCiAgICAgICAgICAgICBdLAogICAgICAg
ICAgICAgJ3NvdXJjZXMnOiBbCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9hbmRyb2lkL1dlYlNh
bmRib3hTdXBwb3J0LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvYW5kcm9pZC9XZWJUaGVt
ZUVuZ2luZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL2d0ay9XZWJJbnB1dEV2ZW50RmFj
dG9yeS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL2xpbnV4L1dlYkZvbnRSZW5kZXJpbmcu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyU3R5bGUuaCcs
CkBAIC03MDQsNiArNzA2LDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBbJ2V4Y2x1ZGUn
LCAnL2xpbnV4LyddLAogICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgIH1d
LAorICAgICAgICAgICAgICAgIFsnT1M9PSJhbmRyb2lkIicsIHsKKyAgICAgICAgICAgICAgICAg
ICAgJ2luY2x1ZGVfZGlycyc6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwdWJsaWMvYW5k
cm9pZCcsCisgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgfV0sCiAgICAg
ICAgICAgICAgICAgWydPUz09Im1hYyInLCB7CiAgICAgICAgICAgICAgICAgICAgICdpbmNsdWRl
X2RpcnMnOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAncHVibGljL21hYycsCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJT
YW5kYm94U3VwcG9ydC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvYW5kcm9pZC9XZWJTYW5kYm94U3VwcG9ydC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXZWJTYW5kYm94U3VwcG9ydF9oCisjZGVmaW5lIFdlYlNhbmRib3hTdXBw
b3J0X2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIEVtcHR5IGNsYXNzLCBhcyB3ZSBuZWVk
IGl0IHRvIGNvbXBpbGUuCitjbGFzcyBXZWJTYW5kYm94U3VwcG9ydCB7CitwdWJsaWM6Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0LmgK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJUaGVtZUVuZ2luZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViVGhlbWVFbmdpbmUu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2FuZHJvaWQv
V2ViVGhlbWVFbmdpbmUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNTIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
YlRoZW1lRW5naW5lX2gKKyNkZWZpbmUgV2ViVGhlbWVFbmdpbmVfaAorCisjaW5jbHVkZSAiLi4v
V2ViQ2FudmFzLmgiCisjaW5jbHVkZSAiLi4vV2ViQ29sb3IuaCIKKyNpbmNsdWRlICIuLi9XZWJT
aXplLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgV2ViUmVjdDsKKworY2xhc3Mg
V2ViVGhlbWVFbmdpbmUgeworcHVibGljOgorICAgIC8vIFRoZSBVSSBwYXJ0IHdoaWNoIGlzIGJl
aW5nIGFjY2Vzc2VkLgorICAgIGVudW0gUGFydCB7CisgICAgICAgIC8vIFNjcm9sbGJhclRoZW1l
IHBhcnRzCisgICAgICAgIFBhcnRTY3JvbGxiYXJEb3duQXJyb3csCisgICAgICAgIFBhcnRTY3Jv
bGxiYXJMZWZ0QXJyb3csCisgICAgICAgIFBhcnRTY3JvbGxiYXJSaWdodEFycm93LAorICAgICAg
ICBQYXJ0U2Nyb2xsYmFyVXBBcnJvdywKKyAgICAgICAgUGFydFNjcm9sbGJhckhvcml6b250YWxU
aHVtYiwKKyAgICAgICAgUGFydFNjcm9sbGJhclZlcnRpY2FsVGh1bWIsCisgICAgICAgIFBhcnRT
Y3JvbGxiYXJIb3Jpem9udGFsVHJhY2ssCisgICAgICAgIFBhcnRTY3JvbGxiYXJWZXJ0aWNhbFRy
YWNrLAorCisgICAgICAgIC8vIFJlbmRlclRoZW1lIHBhcnRzCisgICAgICAgIFBhcnRDaGVja2Jv
eCwKKyAgICAgICAgUGFydFJhZGlvLAorICAgICAgICBQYXJ0QnV0dG9uLAorICAgICAgICBQYXJ0
VGV4dEZpZWxkLAorICAgICAgICBQYXJ0TWVudUxpc3QsCisgICAgICAgIFBhcnRTbGlkZXJUcmFj
aywKKyAgICAgICAgUGFydFNsaWRlclRodW1iLAorICAgICAgICBQYXJ0SW5uZXJTcGluQnV0dG9u
LAorICAgICAgICBQYXJ0UHJvZ3Jlc3NCYXIKKyAgICB9OworCisgICAgLy8gVGhlIGN1cnJlbnQg
c3RhdGUgb2YgdGhlIGFzc29jaWF0ZWQgUGFydC4KKyAgICBlbnVtIFN0YXRlIHsKKyAgICAgICAg
U3RhdGVEaXNhYmxlZCwKKyAgICAgICAgU3RhdGVIb3ZlciwKKyAgICAgICAgU3RhdGVOb3JtYWws
CisgICAgICAgIFN0YXRlUHJlc3NlZCwKKyAgICB9OworCisgICAgLy8gRXh0cmEgcGFyYW1ldGVy
cyBmb3IgZHJhd2luZyB0aGUgUGFydFNjcm9sbGJhckhvcml6b250YWxUcmFjayBhbmQKKyAgICAv
LyBQYXJ0U2Nyb2xsYmFyVmVydGljYWxUcmFjay4KKyAgICBzdHJ1Y3QgU2Nyb2xsYmFyVHJhY2tF
eHRyYVBhcmFtcyB7CisgICAgICAgIC8vIFRoZSBib3VuZHMgb2YgdGhlIGVudGlyZSB0cmFjaywg
YXMgb3Bwb3NlZCB0byB0aGUgcGFydCBiZWluZyBwYWludGVkLgorICAgICAgICBpbnQgdHJhY2tY
OworICAgICAgICBpbnQgdHJhY2tZOworICAgICAgICBpbnQgdHJhY2tXaWR0aDsKKyAgICAgICAg
aW50IHRyYWNrSGVpZ2h0OworICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQ
YXJ0Q2hlY2tib3gsIFBhcnRQdXNoQnV0dG9uIGFuZCBQYXJ0UmFkaW8uCisgICAgc3RydWN0IEJ1
dHRvbkV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBjaGVja2VkOworICAgICAgICBib29sIGlu
ZGV0ZXJtaW5hdGU7IC8vIFdoZXRoZXIgdGhlIGJ1dHRvbiBzdGF0ZSBpcyBpbmRldGVybWluYXRl
LgorICAgICAgICBib29sIGlzRGVmYXVsdDsgLy8gV2hldGhlciB0aGUgYnV0dG9uIGlzIGRlZmF1
bHQgYnV0dG9uLgorICAgICAgICBib29sIGhhc0JvcmRlcjsKKyAgICAgICAgV2ViQ29sb3IgYmFj
a2dyb3VuZENvbG9yOworICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQYXJ0
VGV4dEZpZWxkCisgICAgc3RydWN0IFRleHRGaWVsZEV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9v
bCBpc1RleHRBcmVhOworICAgICAgICBib29sIGlzTGlzdGJveDsKKyAgICAgICAgV2ViQ29sb3Ig
YmFja2dyb3VuZENvbG9yOworICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQ
YXJ0TWVudUxpc3QKKyAgICBzdHJ1Y3QgTWVudUxpc3RFeHRyYVBhcmFtcyB7CisgICAgICAgIGJv
b2wgaGFzQm9yZGVyOworICAgICAgICBib29sIGhhc0JvcmRlclJhZGl1czsKKyAgICAgICAgaW50
IGFycm93WDsKKyAgICAgICAgaW50IGFycm93WTsKKyAgICAgICAgV2ViQ29sb3IgYmFja2dyb3Vu
ZENvbG9yOworICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQYXJ0U2xpZGVy
VHJhY2sgYW5kIFBhcnRTbGlkZXJUaHVtYgorICAgIHN0cnVjdCBTbGlkZXJFeHRyYVBhcmFtcyB7
CisgICAgICAgIGJvb2wgdmVydGljYWw7CisgICAgICAgIGJvb2wgaW5EcmFnOworICAgIH07CisK
KyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQYXJ0SW5uZXJTcGluQnV0dG9uCisgICAgc3Ry
dWN0IElubmVyU3BpbkJ1dHRvbkV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBzcGluVXA7Cisg
ICAgICAgIGJvb2wgcmVhZE9ubHk7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMg
Zm9yIFBhcnRQcm9ncmVzc0JhcgorICAgIHN0cnVjdCBQcm9ncmVzc0JhckV4dHJhUGFyYW1zIHsK
KyAgICAgICAgYm9vbCBkZXRlcm1pbmF0ZTsKKyAgICAgICAgaW50IHZhbHVlUmVjdFg7CisgICAg
ICAgIGludCB2YWx1ZVJlY3RZOworICAgICAgICBpbnQgdmFsdWVSZWN0V2lkdGg7CisgICAgICAg
IGludCB2YWx1ZVJlY3RIZWlnaHQ7CisgICAgfTsKKworICAgIHVuaW9uIEV4dHJhUGFyYW1zIHsK
KyAgICAgICAgU2Nyb2xsYmFyVHJhY2tFeHRyYVBhcmFtcyBzY3JvbGxiYXJUcmFjazsKKyAgICAg
ICAgQnV0dG9uRXh0cmFQYXJhbXMgYnV0dG9uOworICAgICAgICBUZXh0RmllbGRFeHRyYVBhcmFt
cyB0ZXh0RmllbGQ7CisgICAgICAgIE1lbnVMaXN0RXh0cmFQYXJhbXMgbWVudUxpc3Q7CisgICAg
ICAgIFNsaWRlckV4dHJhUGFyYW1zIHNsaWRlcjsKKyAgICAgICAgSW5uZXJTcGluQnV0dG9uRXh0
cmFQYXJhbXMgaW5uZXJTcGluOworICAgICAgICBQcm9ncmVzc0JhckV4dHJhUGFyYW1zIHByb2dy
ZXNzQmFyOworICAgIH07CisKKyAgICAvLyBHZXRzIHRoZSBzaXplIG9mIHRoZSBnaXZlbiB0aGVt
ZSBwYXJ0LiBGb3IgdmFyaWFibGUgc2l6ZWQgaXRlbXMKKyAgICAvLyBsaWtlIHZlcnRpY2FsIHNj
cm9sbGJhciB0aHVtYnMsIHRoZSB3aWR0aCB3aWxsIGJlIHRoZSByZXF1aXJlZCB3aWR0aCBvZgor
ICAgIC8vIHRoZSB0cmFjayB3aGlsZSB0aGUgaGVpZ2h0IHdpbGwgYmUgdGhlIG1pbmltdW0gaGVp
Z2h0LgorICAgIHZpcnR1YWwgV2ViU2l6ZSBnZXRTaXplKFBhcnQpIHsgcmV0dXJuIFdlYlNpemUo
KTsgfQorICAgIC8vIFBhaW50IHRoZSBnaXZlbiB0aGUgZ2l2ZW4gdGhlbWUgcGFydC4KKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiwgUGFydCwgU3RhdGUsIGNvbnN0IFdlYlJlY3Qm
LCBjb25zdCBFeHRyYVBhcmFtcyopIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvYW5kcm9pZC9XZWJUaGVtZUVuZ2luZS5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5
bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3Vw
cG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZv
cm1TdXBwb3J0LmNwcAkocmV2aXNpb24gOTQ2NjEpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MywxMCArNzMsMTIg
QEAKIAogI2lmIE9TKERBUldJTikKICNpbmNsdWRlICJtYWMvV2ViVGhlbWVFbmdpbmUuaCIKLSNl
bGlmIE9TKFVOSVgpCisjZWxpZiBPUyhVTklYKSAmJiAhT1MoQU5EUk9JRCkKICNpbmNsdWRlICJs
aW51eC9XZWJUaGVtZUVuZ2luZS5oIgogI2luY2x1ZGUgIldlYkZvbnRJbmZvLmgiCiAjaW5jbHVk
ZSAiV2ViRm9udFJlbmRlclN0eWxlLmgiCisjZWxpZiBPUyhBTkRST0lEKQorI2luY2x1ZGUgImFu
ZHJvaWQvV2ViVGhlbWVFbmdpbmUuaCIKICNlbmRpZgogCiAjaWYgV0VCS0lUX1VTSU5HX1NLSUEK
QEAgLTQ2MSw2ICs0NjMsMTEgQEAgYm9vbCBQbGF0Zm9ybVN1cHBvcnQ6OmxvYWRGb250KE5TRm9u
dCogcwogI2VsaWYgT1MoVU5JWCkKIFN0cmluZyBQbGF0Zm9ybVN1cHBvcnQ6OmdldEZvbnRGYW1p
bHlGb3JDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbnVtQ2hhcmFj
dGVycywgY29uc3QgY2hhciogcHJlZmVycmVkTG9jYWxlKQogeworI2lmIE9TKEFORFJPSUQpCisg
ICAgLy8gRklYTUU6IFdlIGRvIG5vdCB1c2UgZm9udGNvbmZpZyBvbiBBbmRyb2lkLCBzbyB1c2Ug
c2ltcGxlIGxvZ2ljIGZvciBub3cuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY3NTg3CisgICAgcmV0dXJuIFdlYlN0cmluZygiQXJpYWwiKTsKKyNlbHNl
CiAgICAgaWYgKHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5zYW5kYm94U3VwcG9ydCgpKQogICAg
ICAgICByZXR1cm4gd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPnNhbmRib3hTdXBwb3J0KCktPmdl
dEZvbnRGYW1pbHlGb3JDaGFyYWN0ZXJzKGNoYXJhY3RlcnMsIG51bUNoYXJhY3RlcnMsIHByZWZl
cnJlZExvY2FsZSk7CiAKQEAgLTQ2OSwxMCArNDc2LDEyIEBAIFN0cmluZyBQbGF0Zm9ybVN1cHBv
cnQ6OmdldEZvbnRGYW1pbHlGb3IKICAgICAgICAgcmV0dXJuIFdlYlN0cmluZzo6ZnJvbVVURjgo
ZmFtaWx5LmRhdGEoKSk7CiAKICAgICByZXR1cm4gV2ViU3RyaW5nKCk7CisjZW5kaWYKIH0KIAog
dm9pZCBQbGF0Zm9ybVN1cHBvcnQ6OmdldFJlbmRlclN0eWxlRm9yU3RyaWtlKGNvbnN0IGNoYXIq
IGZvbnQsIGludCBzaXplQW5kU3R5bGUsIEZvbnRSZW5kZXJTdHlsZSogcmVzdWx0KQogeworI2lm
ICFPUyhBTkRST0lEKQogICAgIFdlYkZvbnRSZW5kZXJTdHlsZSBzdHlsZTsKIAogICAgIGlmICh3
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+c2FuZGJveFN1cHBvcnQoKSkKQEAgLTQ4MSw2ICs0OTAs
NyBAQCB2b2lkIFBsYXRmb3JtU3VwcG9ydDo6Z2V0UmVuZGVyU3R5bGVGb3JTCiAgICAgICAgIFdl
YkZvbnRJbmZvOjpyZW5kZXJTdHlsZUZvclN0cmlrZShmb250LCBzaXplQW5kU3R5bGUsICZzdHls
ZSk7CiAKICAgICBzdHlsZS50b0ZvbnRSZW5kZXJTdHlsZShyZXN1bHQpOworI2VuZGlmCiB9CiAj
ZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
Y3BwCShyZXZpc2lvbiA5NDY2MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw3ICsxNjMsNyBAQAogI2luY2x1ZGUg
PGFsZ29yaXRobT4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAotI2lmIE9TKFVOSVgp
ICYmICFPUyhEQVJXSU4pCisjaWYgT1MoVU5JWCkgJiYgIU9TKERBUldJTikgJiYgIU9TKEFORFJP
SUQpCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogI2VuZGlmCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>