<?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>45071</bug_id>
          
          <creation_ts>2010-09-01 16:58:35 -0700</creation_ts>
          <short_desc>Only intercept ESC key press when autocorrection UI is visible.</short_desc>
          <delta_ts>2010-09-15 01:35:00 -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>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>44958</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jia Pu">jiapu.mail</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>jiapu.mail</cc>
    
    <cc>mitz</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>273110</commentid>
    <comment_count>0</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-09-01 16:58:35 -0700</bug_when>
    <thetext>This is related to autocorrection UI implemented in bug 44958, and &lt;rdar://problem/8378285&gt;.

Currently we dismiss autocorrection panel and return true whenever executeCancelOperation() is called. However, the regular functionality of ESC key is to stop loading. We should return false in executeCancelOperation() when correction panel isn&apos;t visible. By doing so, we allow the ESC key event to be handled by the upstream of responder chain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274208</commentid>
    <comment_count>1</comment_count>
      <attachid>66555</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-09-03 15:07:59 -0700</bug_when>
    <thetext>Created attachment 66555
Proposed patch (v1)

Provided supportedDismissCorrectionUI() as the isSupported() function for the executeCancelOperation() command. This function returns true only when the autocorrection UI is shown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274228</commentid>
    <comment_count>2</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-09-03 15:47:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/8378285&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276543</commentid>
    <comment_count>3</comment_count>
      <attachid>66555</attachid>
    <who name="">mitz</who>
    <bug_when>2010-09-09 10:09:09 -0700</bug_when>
    <thetext>Comment on attachment 66555
Proposed patch (v1)

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

&gt; WebCore/editing/Editor.cpp:2822
&gt; +bool Editor::isCorrectionUIShown()
Is there a reason for calling it “correction UI” here when everywhere else it’s “correction panel”? I would name this (and the client method) isShowingCorrectionPanel(), so that editor-&gt;isShowingCorrectionPanel() reads like a sentence with editor being the subject.

&gt; WebCore/editing/EditorCommand.cpp:1125
&gt; +static bool supportedDismissCorrectionUI(Frame* frame, EditorCommandSource)
&gt; +{
&gt; +    return frame-&gt;editor()-&gt;isCorrectionUIShown();
&gt; +}
Perhaps in addition to checking this we should still limit to menu and key binding? I don’t think we want to expose this through the execCommand DOM interface, for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276947</commentid>
    <comment_count>4</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-09-09 19:19:04 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 66555 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=66555&amp;action=prettypatch
&gt; 
&gt; &gt; WebCore/editing/Editor.cpp:2822
&gt; &gt; +bool Editor::isCorrectionUIShown()
&gt; Is there a reason for calling it “correction UI” here when everywhere else it’s “correction panel”? I would name this (and the client method) isShowingCorrectionPanel(), so that editor-&gt;isShowingCorrectionPanel() reads like a sentence with editor being the subject.
&gt; 

Actually I wonder if we should change all occurrence of &quot;correction panel&quot; to &quot;correction UI&quot;, since the term &quot;panel&quot; really originated from AppKit. It may not be considered appropriate on other platforms.

&gt; &gt; WebCore/editing/EditorCommand.cpp:1125
&gt; &gt; +static bool supportedDismissCorrectionUI(Frame* frame, EditorCommandSource)
&gt; &gt; +{
&gt; &gt; +    return frame-&gt;editor()-&gt;isCorrectionUIShown();
&gt; &gt; +}
&gt; Perhaps in addition to checking this we should still limit to menu and key binding? I don’t think we want to expose this through the execCommand DOM interface, for example.

Ok, I will change this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278339</commentid>
    <comment_count>5</comment_count>
      <attachid>67441</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-09-13 11:32:38 -0700</bug_when>
    <thetext>Created attachment 67441
proposed patch (v2)

updated according to comment #3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278345</commentid>
    <comment_count>6</comment_count>
      <attachid>67441</attachid>
    <who name="">mitz</who>
    <bug_when>2010-09-13 11:38:05 -0700</bug_when>
    <thetext>Comment on attachment 67441
proposed patch (v2)

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

&gt; WebCore/editing/EditorCommand.cpp:1130
&gt; +static bool supportedDismissCorrectionPanel(Frame* frame, EditorCommandSource source)
&gt; +{
&gt; +    if (supportedFromMenuOrKeyBinding(frame, source))
&gt; +        return frame-&gt;editor()-&gt;isShowingCorrectionPanel();
&gt; +    return false;
&gt; +}
Personally, I would write this as
    return supportedFromMenuOrKeyBinding(frame, source) &amp;&amp; frame-&gt;editor()-&gt;isShowingCorrectionPanel();

&gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:842
&gt; +bool WebEditorClient::isShowingCorrectionPanel() {
&gt; +    return m_correctionPanelTag != InvalidCorrectionPanelTag;
&gt; +}
The opening brace should go on its own line.

r- so you can fix that style issue and consider the other comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278357</commentid>
    <comment_count>7</comment_count>
      <attachid>67445</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-09-13 11:51:51 -0700</bug_when>
    <thetext>Created attachment 67445
Proposed patch (v3)

updated according to comment #6.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278757</commentid>
    <comment_count>8</comment_count>
      <attachid>67445</attachid>
    <who name="">mitz</who>
    <bug_when>2010-09-14 00:46:16 -0700</bug_when>
    <thetext>Comment on attachment 67445
Proposed patch (v3)

I didn’t notice the missing reviewer line. This means that the commit-queue script can’t process this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278760</commentid>
    <comment_count>9</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-09-14 00:56:02 -0700</bug_when>
    <thetext>Committed revision 67451.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278763</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 01:01:58 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67451 might have broken Qt Linux Release minimal
The following changes are on the blame list:
http://trac.webkit.org/changeset/67449
http://trac.webkit.org/changeset/67450
http://trac.webkit.org/changeset/67451</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278764</commentid>
    <comment_count>11</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-09-14 01:03:36 -0700</bug_when>
    <thetext>Build fix in r67452.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278804</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-14 04:02:06 -0700</bug_when>
    <thetext>This appears to ahve broken leopard tests :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278806</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-14 04:07:42 -0700</bug_when>
    <thetext>Committed r67458: &lt;http://trac.webkit.org/changeset/67458&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278807</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-14 04:08:21 -0700</bug_when>
    <thetext>Rolled out r67451 and r67451 as this change broke a whole bunch of builders and is blocking the commit-queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278809</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-14 04:16:05 -0700</bug_when>
    <thetext>As far as I can tell from the buildbots this was the right patch, but it&apos;s not immediately obvious from this change or the test why it was failing.  The failure was clearly consistant and across multiple platforms.  Hopefully it will be easy to spot for you two.

My sincerest apologies if my rollout was in error and I&apos;m happy to re-land.  But the buildbots seem pretty certain that this change was at fault.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278810</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-14 04:16:16 -0700</bug_when>
    <thetext>The diff:

--- /Volumes/Data/WebKit-BuildSlave/snowleopard-intel-release-tests/build/layout-test-results/fast/events/event-input-contentEditable-expected.txt	2010-09-14 03:07:36.000000000 -0700
+++ /Volumes/Data/WebKit-BuildSlave/snowleopard-intel-release-tests/build/layout-test-results/fast/events/event-input-contentEditable-actual.txt	2010-09-14 03:07:36.000000000 -0700
@@ -12,7 +12,7 @@
 PASS event.target.id is &apos;target4&apos;
 PASS event.target.innerHTML is &apos;&lt;a href=&quot;http://www.example.com/&quot;&gt;This text should be a link.&lt;/a&gt;&apos;
 PASS event.target.id is &apos;target6parent&apos;
-PASS event.target.innerHTML is &apos;&lt;span id=&quot;target6start&quot;&gt;&lt;a href=&quot;http://www.example.com/&quot;&gt;Start,&lt;/a&gt;&lt;/span&gt;&lt;span id=&quot;target6middle&quot;&gt;&lt;a href=&quot;http://www.example.com/&quot;&gt;Middle,&lt;/a&gt;&lt;/span&gt;&lt;span id=&quot;target6end&quot;&gt;&lt;a href=&quot;http://www.example.com/&quot;&gt;End.&lt;/a&gt;&lt;/span&gt;&apos;
+FAIL event.target.innerHTML should be &lt;span id=&quot;target6start&quot;&gt;&lt;a href=&quot;http://www.example.com/&quot;&gt;Start,&lt;/a&gt;&lt;/span&gt;&lt;span id=&quot;target6middle&quot;&gt;&lt;a href=&quot;http://www.example.com/&quot;&gt;Middle,&lt;/a&gt;&lt;/span&gt;&lt;span id=&quot;target6end&quot;&gt;&lt;a href=&quot;http://www.example.com/&quot;&gt;End.&lt;/a&gt;&lt;/span&gt;. Was &lt;span id=&quot;target6start&quot;&gt;&lt;a href=&quot;http://www.example.com/&quot;&gt;Start,&lt;/a&gt;&lt;/span&gt;&lt;a href=&quot;http://www.example.com/&quot;&gt;&lt;span id=&quot;target6middle&quot;&gt;Middle,&lt;/span&gt;&lt;span id=&quot;target6end&quot;&gt;End.&lt;/span&gt;&lt;/a&gt;.
 PASS event.target.id is &apos;target7&apos;
 PASS event.target.innerHTML is &apos;X&apos;
 PASS event.target.id is &apos;target8&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278831</commentid>
    <comment_count>17</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-09-14 05:09:57 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Rolled out r67451 and r67451 as this change broke a whole bunch of builders and is blocking the commit-queue.

s/r67451 and r67451/r67451 and r67452 ;)

Thx for rolling out, these changesets broke fast/events/event-input-contentEditable.html on Qt and on GTK:

http://build.webkit.org/results/Qt%20Linux%20Release/r67453%20%2819915%29/fast/events/event-input-contentEditable-pretty-diff.html

http://build.webkit.org/results/GTK%20Linux%2032-bit%20Release/r67453</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278858</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 06:35:19 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67458 might have broken GTK Linux 32-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279179</commentid>
    <comment_count>19</comment_count>
      <attachid>67607</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-09-14 14:39:14 -0700</bug_when>
    <thetext>Created attachment 67607
Proposed patch (v4)

Fixed build warning/error on non-mac platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279181</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-14 14:41:16 -0700</bug_when>
    <thetext>bug 45616 is also claiming responsibility for the test break.  It&apos;s possible I simply read the buildbot wrong last night at 4 am...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279261</commentid>
    <comment_count>21</comment_count>
      <attachid>67607</attachid>
    <who name="">mitz</who>
    <bug_when>2010-09-14 17:13:14 -0700</bug_when>
    <thetext>Comment on attachment 67607
Proposed patch (v4)

r- because this will fail the commit-queue again. Please leave in (or in this case, add back) the line that says Reviewed by NOBODY (OOPS!). Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279275</commentid>
    <comment_count>22</comment_count>
      <attachid>67623</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-09-14 17:39:18 -0700</bug_when>
    <thetext>Created attachment 67623
Proposed patch (v5)

Added back &quot;Reviewed by NOBODY (OOPS!).&quot; line, so that build doesn&apos;t fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279339</commentid>
    <comment_count>23</comment_count>
      <attachid>67623</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-09-14 19:39:14 -0700</bug_when>
    <thetext>Comment on attachment 67623
Proposed patch (v5)

I manually added &quot;Reviewed by NOBODY (OOPS).&quot; line without changing the line range. So the patch is malformed. I will submit another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279347</commentid>
    <comment_count>24</comment_count>
      <attachid>67637</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-09-14 19:59:15 -0700</bug_when>
    <thetext>Created attachment 67637
Proposed patch (v6)

Updated all three ChangeLog files with &quot;Reviewed by NOBODY (OOPS!).&quot; line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279372</commentid>
    <comment_count>25</comment_count>
      <attachid>67637</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-14 21:39:22 -0700</bug_when>
    <thetext>Comment on attachment 67637
Proposed patch (v6)

Clearing flags on attachment: 67637

Committed r67534: &lt;http://trac.webkit.org/changeset/67534&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279373</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-14 21:39:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279460</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-15 01:35:00 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67539 might have broken GTK Linux 32-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66555</attachid>
            <date>2010-09-03 15:07:59 -0700</date>
            <delta_ts>2010-09-13 11:32:38 -0700</delta_ts>
            <desc>Proposed patch (v1)</desc>
            <filename>webkit_bug45071.patch</filename>
            <type>text/plain</type>
            <size>10911</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Njc3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTAtMDktMDMgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSBpbnRlcmNl
cHQgRVNDIGtleSBwcmVzcyB3aGVuIGF1dG9jb3JyZWN0aW9uIFVJIGlzIHZpc2libGUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTA3MQorCisgICAg
ICAgIE9ubHkgaW50ZXJjZXB0IEVTQyBrZXkgd2hlbiBhdXRvY29ycmVjdGlvbiBVSSBpcyBzaG93
bi4gT3RoZXJ3aXNlIHByZXNzaW5nCisgICAgICAgIEVTQyB3aWxsIGNhbmNlbCBjdXJyZW50IGxv
YWRpbmcgbGlrZSB1c3VhbC4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6aXNDb3JyZWN0aW9uVUlTaG93bik6IFF1ZXJ5IGVkaXRvciBj
bGllbnQgd2hldGhlciBhdXRvY29ycmVjdGlvbgorICAgICAgICAgIFVJIGlzIHNob3duLgorCisg
ICAgICAgICogZWRpdGluZy9FZGl0b3IuaDogQWRkZWQgZGVjbGFyYXRpb24gb2YgaXNDb3JyZWN0
aW9uVUlTaG93bigpLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnN1cHBvcnRlZERpc21pc3NDb3JyZWN0aW9uVUkpOiBPbmx5IHN1cHBv
cnQgZXhlY3V0ZUNhbmNlbE9wZXJhdGlvbigpCisgICAgICAgICAgd2hlbiBhdXRvY29ycmVjdGlv
biBVSSBpcyBzaG93bi4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvbW1hbmRNYXApOiBSZXBs
YWNlZCBpc1N1cHBvcnRlZCBmdW5jdGlvbiBwb2ludGVyIGZvcgorICAgICAgICAgIGV4ZWN1dGVD
YW5jZWxPcGVyYXRpb24oKSBjb21tYW5kIHdpdGggc3VwcG9ydGVkRGlzbWlzc0NvcnJlY3Rpb25V
SSgpLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlFZGl0b3JDbGllbnQ6OmlzQ29ycmVjdGlvblBhbmVsU2hvd24pOiBEdW1teSBpbXBs
ZW1lbnRhdGlvbiBvZgorICAgICAgICAgIG5ldyBtZW1iZXIgbWV0aG9kIGRlY2xhcmVkIGluIGJh
c2UgY2xhc3MuCisKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOiBEZWNsYXJlZCBuZXcg
bWVtYmVyIG1ldGhvZCBpc0NvcnJlY3Rpb25QYW5lbFNob3duKCkuCisKIDIwMTAtMDktMDMgIERv
bWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBZGFtIEJhcnRoLgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDY2NzcxKQorKysgV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MTksNiArMjgxOSwx
NSBAQCB2b2lkIEVkaXRvcjo6aGFuZGxlQ2FuY2VsT3BlcmF0aW9uKCkKICNlbmRpZgogfQogCiti
b29sIEVkaXRvcjo6aXNDb3JyZWN0aW9uVUlTaG93bigpCit7CisjaWYgUExBVEZPUk0oTUFDKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorICAgIGlmIChjbGll
bnQoKSkKKyAgICAgICAgcmV0dXJuIGNsaWVudCgpLT5pc0NvcnJlY3Rpb25QYW5lbFNob3duKCk7
CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRv
cjo6cmFuZ2VGb3JQb2ludChjb25zdCBJbnRQb2ludCYgd2luZG93UG9pbnQpCiB7CiAgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnRBdFBvaW50KHdpbmRvd1BvaW50KTsK
SW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmgJKHJldmlzaW9uIDY2NzcxKQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMDgsNiArMzA4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
aGFuZGxlQ2FuY2VsT3BlcmF0aW9uKCk7CiAgICAgdm9pZCBzdGFydENvcnJlY3Rpb25QYW5lbFRp
bWVyKCk7CiAgICAgdm9pZCBoYW5kbGVSZWplY3RlZENvcnJlY3Rpb24oKTsKKyAgICBib29sIGlz
Q29ycmVjdGlvblVJU2hvd24oKTsKIAogICAgIHZvaWQgcGFzdGVBc0ZyYWdtZW50KFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4sIGJvb2wgc21hcnRSZXBsYWNlLCBib29sIG1hdGNoU3R5bGUp
OwogICAgIHZvaWQgcGFzdGVBc1BsYWluVGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNtYXJ0UmVw
bGFjZSk7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCShyZXZpc2lvbiA2Njc3MSkK
KysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTExOSw2ICsxMTE5LDEwIEBAIHN0YXRpYyBib29sIHN1cHBvcnRlZFBhc3RlKEZyYW1lKiBmcmFt
ZSwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBib29sIHN1cHBvcnRlZERpc21pc3ND
b3JyZWN0aW9uVUkoRnJhbWUqIGZyYW1lLCBFZGl0b3JDb21tYW5kU291cmNlKQoreworICAgIHJl
dHVybiBmcmFtZS0+ZWRpdG9yKCktPmlzQ29ycmVjdGlvblVJU2hvd24oKTsKK30KIC8vIEVuYWJs
ZWQgZnVuY3Rpb25zCiAKIHN0YXRpYyBib29sIGVuYWJsZWQoRnJhbWUqLCBFdmVudCosIEVkaXRv
ckNvbW1hbmRTb3VyY2UpCkBAIC0xNDY0LDcgKzE0NjgsNyBAQCBzdGF0aWMgY29uc3QgQ29tbWFu
ZE1hcCYgY3JlYXRlQ29tbWFuZE1hCiAgICAgICAgIHsgIllhbmsiLCB7IGV4ZWN1dGVZYW5rLCBz
dXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZEluRWRpdGFibGVUZXh0LCBzdGF0
ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldo
ZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIllhbmtBbmRTZWxlY3QiLCB7IGV4ZWN1dGVZYW5r
QW5kU2VsZWN0LCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZEluRWRpdGFi
bGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxv
d0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgICAgICB7ICJDYW5jZWxPcGVy
YXRpb24iLCB7IGV4ZWN1dGVDYW5jZWxPcGVyYXRpb24sIHN1cHBvcnRlZEZyb21NZW51T3JLZXlC
aW5kaW5nLCBlbmFibGVkSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RU
ZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKKyAgICAg
ICAgeyAiQ2FuY2VsT3BlcmF0aW9uIiwgeyBleGVjdXRlQ2FuY2VsT3BlcmF0aW9uLCBzdXBwb3J0
ZWREaXNtaXNzQ29ycmVjdGlvblVJLCBlbmFibGVkSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwg
dmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2Fi
bGVkIH0gfSwKICNlbmRpZgogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZp
c2lvbiA2Njc3MSkKKysrIFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00NjUsNiArNDY1LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQg
c2hvd0NvcnJlY3Rpb25QYW5lbChjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBFZGl0b3IqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rp
b25QYW5lbChib29sKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb3JyZWN0aW9uUGFuZWxTaG93
bigpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3Bl
bGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IEdyYW1tYXJEZXRh
aWwmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVk
V29yZChjb25zdCBTdHJpbmcmKSB7IH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDY2
NzcxKQorKysgV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODMsNiArMTgzLDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJl
Y3Rpb25QYW5lbChjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywg
Y29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNtZW50U3Ry
aW5nLCBFZGl0b3IqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFu
ZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDb3Jy
ZWN0aW9uUGFuZWxTaG93bigpID0gMDsKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFy
RGV0YWlsJiBkZXRhaWwpID0gMDsKSW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA2Njc3MSkKKysrIFdlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDktMDMgIEppYSBQdSAg
PGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgT25seSBpbnRlcmNlcHQgRVNDIGtleSBwcmVzcyB3aGVuIGF1dG9jb3JyZWN0aW9u
IFVJIGlzIHZpc2libGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NTA3MQorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OmlzQ29y
cmVjdGlvblBhbmVsU2hvd24pOiBEdW1teSBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6IEFkb3B0IG5ldyBtZXRo
b2QgZGVsY2FyZWQgaW4gYmFzZSBjbGFzcy4KKwogMjAxMC0wOS0wMyAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdoLgpJ
bmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAJKHJldmlzaW9uIDY2NzcxKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3OSw2
ICs0NzksMTIgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmRpc21pc3NDb3JyZWN0aW9uUAogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CisKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc0NvcnJl
Y3Rpb25QYW5lbFNob3duKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJl
dmlzaW9uIDY2NzcxKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsNiArMTM0LDcgQEAgcHJpdmF0ZToK
ICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1
YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91
bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJp
bmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9y
Kik7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0
aW9uQWNjZXB0ZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0NvcnJlY3Rpb25QYW5lbFNob3duKCk7
CiAjZW5kaWYKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiB9OwpJbmRleDogV2ViS2l0L21hYy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY2Nzcx
KQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBA
QAorMjAxMC0wOS0wMyAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmx5IGludGVyY2VwdCBFU0Mga2V5IHBy
ZXNzIHdoZW4gYXV0b2NvcnJlY3Rpb24gVUkgaXMgdmlzaWJsZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDcxCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDogQWRkZWQgZGVjbGFyYXRpb24gb2YgaXNDb3JyZWN0
aW9uUGFuZWxTaG93bigpLAorICAgICAgICAgIHdoaWNoIHByb3ZpZGVzIGFuIGludGVmYWNlIHRv
IHF1ZXJ5IHdoZXRoZXIgYXV0b2NvcnJlY3Rpb24gVUkgaXMgc2hvd24uCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGll
bnQ6OldlYkVkaXRvckNsaWVudCk6IERlZmluZWQgYSBjb25zdGFudCwgSW52YWxpZENvcnJlY3Rp
b25QYW5lbFRhZywKKyAgICAgICAgICBmb3IgaW52YWxpZCBjb3JyZWN0aW9uIHBhbmVsIHRhZy4g
UmVwbGFjZWQgLTEgd2l0aCB0aGlzIGNvbnN0YW50LgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50
OjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsKTogRGl0dG8KKyAgICAgICAgKFdlYkVkaXRvckNsaWVu
dDo6aXNDb3JyZWN0aW9uUGFuZWxTaG93bik6IFF1ZXJ5IHdoZXRoZXIgYXV0b2NvcnJlY3Rpb24g
VUkgaXMgc2hvd24uCisKIDIwMTAtMDktMDMgIEpvaG4gU3VsbGl2YW4gIDxzdWxsaXZhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkocmV2aXNpb24gNjY3NzEp
CisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzMsNiArMTMzLDcgQEAgcHVibGljOgogI2lmICFkZWZpbmVkKEJVSUxESU5H
X09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9u
UGFuZWwoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJp
bmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcm
IHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChib29sIGNvcnJlY3Rpb25BY2NlcHRlZCk7CisgICAgdmly
dHVhbCBib29sIGlzQ29ycmVjdGlvblBhbmVsU2hvd24oKTsKICNlbmRpZgogcHJpdmF0ZToKICAg
ICB2b2lkIHJlZ2lzdGVyQ29tbWFuZEZvclVuZG9PclJlZG8oUGFzc1JlZlB0cjxXZWJDb3JlOjpF
ZGl0Q29tbWFuZD4sIGJvb2wgaXNSZWRvKTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCShyZXZpc2lvbiA2Njc3MSkKKysrIFdlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2
ICs3OCw4IEBAIHN0YXRpYyBXZWJWaWV3SW5zZXJ0QWN0aW9uIGtpdChFZGl0b3JJbnMKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8V2ViVmlld0luc2VydEFjdGlvbj4oY29yZUFjdGlvbik7CiB9CiAK
K3N0YXRpYyBjb25zdCBpbnQgSW52YWxpZENvcnJlY3Rpb25QYW5lbFRhZyA9IDA7CisKICNpZmRl
ZiBCVUlMRElOR19PTl9USUdFUgogQGludGVyZmFjZSBOU1NwZWxsQ2hlY2tlciAoTm90WWV0UHVi
bGljTWV0aG9kcykKIC0gKHZvaWQpbGVhcm5Xb3JkOihOU1N0cmluZyAqKXdvcmQ7CkBAIC0xNzUs
NyArMTc3LDcgQEAgV2ViRWRpdG9yQ2xpZW50OjpXZWJFZGl0b3JDbGllbnQoV2ViVmlldwogICAg
ICwgbV91bmRvVGFyZ2V0KFtbW1dlYkVkaXRvclVuZG9UYXJnZXQgYWxsb2NdIGluaXRdIGF1dG9y
ZWxlYXNlXSkKICAgICAsIG1faGF2ZVVuZG9SZWRvT3BlcmF0aW9ucyhmYWxzZSkKICNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgICwgbV9jb3JyZWN0aW9u
UGFuZWxUYWcoLTEpCisgICAgLCBtX2NvcnJlY3Rpb25QYW5lbFRhZyhJbnZhbGlkQ29ycmVjdGlv
blBhbmVsVGFnKQogI2VuZGlmCiB7CiB9CkBAIC04MjksMTEgKzgzMSwxNSBAQCB2b2lkIFdlYkVk
aXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lCiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpk
aXNtaXNzQ29ycmVjdGlvblBhbmVsKGJvb2wgY29ycmVjdGlvbkFjY2VwdGVkKQogewotICAgIGlm
IChtX2NvcnJlY3Rpb25QYW5lbFRhZyA+PSAwKSB7CisgICAgaWYgKG1fY29ycmVjdGlvblBhbmVs
VGFnICE9IEludmFsaWRDb3JyZWN0aW9uUGFuZWxUYWcpIHsKICAgICAgICAgW1tOU1NwZWxsQ2hl
Y2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIGRpc21pc3NDb3JyZWN0aW9uOm1fY29ycmVjdGlvblBh
bmVsVGFnIGFjY2VwdENvcnJlY3Rpb246Y29ycmVjdGlvbkFjY2VwdGVkXTsKLSAgICAgICAgbV9j
b3JyZWN0aW9uUGFuZWxUYWcgPSAtMTsKKyAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxUYWcgPSBJ
bnZhbGlkQ29ycmVjdGlvblBhbmVsVGFnOwogICAgIH0KIH0KKworYm9vbCBXZWJFZGl0b3JDbGll
bnQ6OmlzQ29ycmVjdGlvblBhbmVsU2hvd24oKSB7CisgICAgcmV0dXJuIG1fY29ycmVjdGlvblBh
bmVsVGFnICE9IEludmFsaWRDb3JyZWN0aW9uUGFuZWxUYWc7Cit9CiAjZW5kaWYKIAogdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3Qg
U3RyaW5nJiBtaXNzcGVsbGVkV29yZCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67441</attachid>
            <date>2010-09-13 11:32:38 -0700</date>
            <delta_ts>2010-09-13 11:51:51 -0700</delta_ts>
            <desc>proposed patch (v2)</desc>
            <filename>webkit_bug45071.patch</filename>
            <type>text/plain</type>
            <size>11026</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzM5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDktMTMgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgT25seSBpbnRlcmNlcHQgRVNDIGtleSBwcmVzcyB3aGVuIGF1dG9jb3JyZWN0aW9uIFVJ
IGlzIHZpc2libGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NTA3MQorCisgICAgICAgIE9ubHkgaW50ZXJjZXB0IEVTQyBrZXkgd2hlbiBhdXRvY29y
cmVjdGlvbiBwYW5lbCBpcyBzaG93bi4gT3RoZXJ3aXNlIHByZXNzaW5nCisgICAgICAgIEVTQyB3
aWxsIGNhbmNlbCBjdXJyZW50IGxvYWRpbmcgbGlrZSB1c3VhbC4KKworICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aXNTaG93aW5nQ29ycmVj
dGlvblBhbmVsKTogUXVlcnkgZWRpdG9yIGNsaWVudCB3aGV0aGVyIGF1dG9jb3JyZWN0aW9uCisg
ICAgICAgICAgcGFuZWwgaXMgc2hvd24uCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOiBB
ZGRlZCBkZWNsYXJhdGlvbiBvZiBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKS4KKworICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdXBwb3J0
ZWREaXNtaXNzQ29ycmVjdGlvblBhbmVsKTogT25seSBzdXBwb3J0IGV4ZWN1dGVDYW5jZWxPcGVy
YXRpb24oKQorICAgICAgICAgIHdoZW4gYXV0b2NvcnJlY3Rpb24gcGFuZWwgaXMgc2hvd24uCisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVDb21tYW5kTWFwKTogUmVwbGFjZWQgaXNTdXBwb3J0ZWQg
ZnVuY3Rpb24gcG9pbnRlciBmb3IKKyAgICAgICAgICBleGVjdXRlQ2FuY2VsT3BlcmF0aW9uKCkg
Y29tbWFuZCB3aXRoIHN1cHBvcnRlZERpc21pc3NDb3JyZWN0aW9uUGFuZWwoKS4KKworICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9y
Q2xpZW50Ojppc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwpOiBEdW1teSBpbXBsZW1lbnRhdGlvbiBv
ZgorICAgICAgICAgIG5ldyBtZW1iZXIgbWV0aG9kIGRlY2xhcmVkIGluIGJhc2UgY2xhc3MuCisK
KyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOiBEZWNsYXJlZCBuZXcgbWVtYmVyIG1ldGhv
ZCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKS4KKwogMjAxMC0wOS0xMyAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJ
bmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NTQsNiArMjg1NCwxNSBAQCB2b2lkIEVkaXRv
cjo6aGFuZGxlQ2FuY2VsT3BlcmF0aW9uKCkKICNlbmRpZgogfQogCitib29sIEVkaXRvcjo6aXNT
aG93aW5nQ29ycmVjdGlvblBhbmVsKCkKK3sKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisgICAgaWYgKGNsaWVudCgpKQorICAg
ICAgICByZXR1cm4gY2xpZW50KCktPmlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOworI2VuZGlm
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFJhbmdlPiBFZGl0b3I6OnJhbmdl
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KQogewogICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50QXRQb2ludCh3aW5kb3dQb2ludCk7CkluZGV4OiBX
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCShyZXZpc2lvbiA2NzM5NikKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMzEzLDYgKzMxMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZUNh
bmNlbE9wZXJhdGlvbigpOwogICAgIHZvaWQgc3RhcnRDb3JyZWN0aW9uUGFuZWxUaW1lcigpOwog
ICAgIHZvaWQgaGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uKCk7CisgICAgYm9vbCBpc1Nob3dpbmdD
b3JyZWN0aW9uUGFuZWwoKTsKIAogICAgIHZvaWQgcGFzdGVBc0ZyYWdtZW50KFBhc3NSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4sIGJvb2wgc21hcnRSZXBsYWNlLCBib29sIG1hdGNoU3R5bGUpOwog
ICAgIHZvaWQgcGFzdGVBc1BsYWluVGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNtYXJ0UmVwbGFj
ZSk7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCShyZXZpc2lvbiA2NzM5NikKKysr
IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEy
Miw2ICsxMTIyLDEzIEBAIHN0YXRpYyBib29sIHN1cHBvcnRlZFBhc3RlKEZyYW1lKiBmcmFtZSwK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBib29sIHN1cHBvcnRlZERpc21pc3NDb3Jy
ZWN0aW9uUGFuZWwoRnJhbWUqIGZyYW1lLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSkKK3sK
KyAgICBpZiAoc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcoZnJhbWUsIHNvdXJjZSkpCisg
ICAgICAgIHJldHVybiBmcmFtZS0+ZWRpdG9yKCktPmlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKwogLy8gRW5hYmxlZCBmdW5jdGlvbnMKIAogc3RhdGlj
IGJvb2wgZW5hYmxlZChGcmFtZSosIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSkKQEAgLTE0
NjcsNyArMTQ3NCw3IEBAIHN0YXRpYyBjb25zdCBDb21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWEK
ICAgICAgICAgeyAiWWFuayIsIHsgZXhlY3V0ZVlhbmssIHN1cHBvcnRlZEZyb21NZW51T3JLZXlC
aW5kaW5nLCBlbmFibGVkSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RU
ZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAg
ICAgeyAiWWFua0FuZFNlbGVjdCIsIHsgZXhlY3V0ZVlhbmtBbmRTZWxlY3QsIHN1cHBvcnRlZEZy
b21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFs
dWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVk
IH0gfSwKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCi0gICAgICAgIHsgIkNhbmNlbE9wZXJhdGlvbiIsIHsgZXhlY3V0ZUNhbmNl
bE9wZXJhdGlvbiwgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJbkVkaXRh
YmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxs
b3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAorICAgICAgICB7ICJDYW5jZWxPcGVyYXRpb24i
LCB7IGV4ZWN1dGVDYW5jZWxPcGVyYXRpb24sIHN1cHBvcnRlZERpc21pc3NDb3JyZWN0aW9uUGFu
ZWwsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJ
bnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogI2VuZGlmCiAg
ICAgfTsKIApJbmRleDogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDY3Mzk2KQorKysgV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2Nyw2ICs0Njcs
NyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9U
SUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVs
KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEVkaXRvciop
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKGJvb2wpIHsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKSB7IHJldHVybiBmYWxz
ZTsgfQogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1h
clN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0YWlsJikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5n
JikgeyB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCShyZXZpc2lvbiA2NzM5NikKKysrIFdlYkNvcmUv
cGFnZS9FZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTgzLDYgKzE4Myw3IEBAIHB1
YmxpYzoKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3Qg
RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVw
bGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjbWVudFN0cmluZywgRWRpdG9yKikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKGJvb2wgY29ycmVjdGlv
bkFjY2VwdGVkKSA9IDA7CisgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5l
bCgpID0gMDsKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRo
R3JhbW1hclN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0YWlsJiBkZXRhaWwp
ID0gMDsKSW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hh
bmdlTG9nCShyZXZpc2lvbiA2NzM5NikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDktMTMgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+
CisKKyAgICAgICAgT25seSBpbnRlcmNlcHQgRVNDIGtleSBwcmVzcyB3aGVuIGF1dG9jb3JyZWN0
aW9uIFVJIGlzIHZpc2libGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NTA3MQorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6Omlz
U2hvd2luZ0NvcnJlY3Rpb25QYW5lbCk6IER1bW15IGltcGxlbWVudGF0aW9uLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDogQWRvcHQgbmV3
IG1ldGhvZCBkZWxjYXJlZCBpbiBiYXNlIGNsYXNzLgorCiAyMDEwLTA5LTExICBEYW5pZWwgQmF0
ZXMgIDxkYmF0ZXNAcmltLmNvbT4KIAogICAgICAgICBBdHRlbXB0IHRvIGZpeCB0aGUgUXQgTGlu
dXggUmVsZWFzZSBidWlsZCBhZnRlciBjaGFuZ2VzZXQgNjczMTIgPGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzY3MzEyPi4KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCShyZXZpc2lvbiA2NzM5NikK
KysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00OTAsNiArNDkwLDEyIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpkaXNtaXNzQ29ycmVjdGlvblAKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQorCitib29s
IFdlYkVkaXRvckNsaWVudDo6aXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KICNlbmRpZgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzQsNiArMTM0LDcgQEAgcHJpdmF0ZToKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdF
UikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25z
dCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNl
bWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3ND
b3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpOworICAgIHZpcnR1YWwgYm9v
bCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKTsKICNlbmRpZgogICAgIFdlYlBhZ2UqIG1fcGFn
ZTsKIH07CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
bWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNjczOTYpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTA5LTEzICBKaWEgUHUgIDxqcHVA
YXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgaW50ZXJjZXB0IEVTQyBrZXkgcHJlc3Mgd2hlbiBh
dXRvY29ycmVjdGlvbiBVSSBpcyB2aXNpYmxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwNzEKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oOiBBZGRlZCBkZWNsYXJhdGlvbiBvZiBpc1Nob3dpbmdDb3JyZWN0aW9u
UGFuZWwoKSwKKyAgICAgICAgICB3aGljaCBwcm92aWRlcyBhbiBpbnRlZmFjZSB0byBxdWVyeSB3
aGV0aGVyIGF1dG9jb3JyZWN0aW9uIHBhbmVsIGlzIHNob3duLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpX
ZWJFZGl0b3JDbGllbnQpOiBEZWZpbmVkIGEgY29uc3RhbnQsIEludmFsaWRDb3JyZWN0aW9uUGFu
ZWxUYWcsCisgICAgICAgICAgZm9yIGludmFsaWQgY29ycmVjdGlvbiBwYW5lbCB0YWcuIFJlcGxh
Y2VkIC0xIHdpdGggdGhpcyBjb25zdGFudC4KKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6ZGlz
bWlzc0NvcnJlY3Rpb25QYW5lbCk6IERpdHRvCisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6Omlz
U2hvd2luZ0NvcnJlY3Rpb25QYW5lbCk6IFF1ZXJ5IHdoZXRoZXIgYXV0b2NvcnJlY3Rpb24gcGFu
ZWwgaXMgc2hvd24uCisKIDIwMTAtMDktMTMgIEpvaG4gU3VsbGl2YW4gIDxzdWxsaXZhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KSW5kZXg6IFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkocmV2aXNpb24gNjczOTYpCisr
KyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzMsNiArMTMzLDcgQEAgcHVibGljOgogI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFu
ZWwoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcs
IGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJl
cGxhY2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlz
bWlzc0NvcnJlY3Rpb25QYW5lbChib29sIGNvcnJlY3Rpb25BY2NlcHRlZCk7CisgICAgdmlydHVh
bCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOwogI2VuZGlmCiBwcml2YXRlOgogICAg
IHZvaWQgcmVnaXN0ZXJDb21tYW5kRm9yVW5kb09yUmVkbyhQYXNzUmVmUHRyPFdlYkNvcmU6OkVk
aXRDb21tYW5kPiwgYm9vbCBpc1JlZG8pOwpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQubW0JKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTc4LDYg
Kzc4LDggQEAgc3RhdGljIFdlYlZpZXdJbnNlcnRBY3Rpb24ga2l0KEVkaXRvcklucwogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxXZWJWaWV3SW5zZXJ0QWN0aW9uPihjb3JlQWN0aW9uKTsKIH0KIAor
c3RhdGljIGNvbnN0IGludCBJbnZhbGlkQ29ycmVjdGlvblBhbmVsVGFnID0gMDsKKwogI2lmZGVm
IEJVSUxESU5HX09OX1RJR0VSCiBAaW50ZXJmYWNlIE5TU3BlbGxDaGVja2VyIChOb3RZZXRQdWJs
aWNNZXRob2RzKQogLSAodm9pZClsZWFybldvcmQ6KE5TU3RyaW5nICopd29yZDsKQEAgLTE3NSw3
ICsxNzcsNyBAQCBXZWJFZGl0b3JDbGllbnQ6OldlYkVkaXRvckNsaWVudChXZWJWaWV3CiAgICAg
LCBtX3VuZG9UYXJnZXQoW1tbV2ViRWRpdG9yVW5kb1RhcmdldCBhbGxvY10gaW5pdF0gYXV0b3Jl
bGVhc2VdKQogICAgICwgbV9oYXZlVW5kb1JlZG9PcGVyYXRpb25zKGZhbHNlKQogI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0gICAgLCBtX2NvcnJlY3Rpb25Q
YW5lbFRhZygtMSkKKyAgICAsIG1fY29ycmVjdGlvblBhbmVsVGFnKEludmFsaWRDb3JyZWN0aW9u
UGFuZWxUYWcpCiAjZW5kaWYKIHsKIH0KQEAgLTgyOSwxMSArODMxLDE1IEBAIHZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmUKIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmRp
c21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpCiB7Ci0gICAgaWYg
KG1fY29ycmVjdGlvblBhbmVsVGFnID49IDApIHsKKyAgICBpZiAobV9jb3JyZWN0aW9uUGFuZWxU
YWcgIT0gSW52YWxpZENvcnJlY3Rpb25QYW5lbFRhZykgewogICAgICAgICBbW05TU3BlbGxDaGVj
a2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gZGlzbWlzc0NvcnJlY3Rpb246bV9jb3JyZWN0aW9uUGFu
ZWxUYWcgYWNjZXB0Q29ycmVjdGlvbjpjb3JyZWN0aW9uQWNjZXB0ZWRdOwotICAgICAgICBtX2Nv
cnJlY3Rpb25QYW5lbFRhZyA9IC0xOworICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbFRhZyA9IElu
dmFsaWRDb3JyZWN0aW9uUGFuZWxUYWc7CiAgICAgfQogfQorCitib29sIFdlYkVkaXRvckNsaWVu
dDo6aXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCkgeworICAgIHJldHVybiBtX2NvcnJlY3Rpb25Q
YW5lbFRhZyAhPSBJbnZhbGlkQ29ycmVjdGlvblBhbmVsVGFnOworfQogI2VuZGlmCiAKIHZvaWQg
V2ViRWRpdG9yQ2xpZW50Ojp1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0
IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpCg==
</data>
<flag name="review"
          id="56740"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67445</attachid>
            <date>2010-09-13 11:51:51 -0700</date>
            <delta_ts>2010-09-14 14:48:29 -0700</delta_ts>
            <desc>Proposed patch (v3)</desc>
            <filename>webkit_bug45071.patch</filename>
            <type>text/plain</type>
            <size>10997</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzM5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDktMTMgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgT25seSBpbnRlcmNlcHQgRVNDIGtleSBwcmVzcyB3aGVuIGF1dG9jb3JyZWN0aW9uIFVJ
IGlzIHZpc2libGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NTA3MQorCisgICAgICAgIE9ubHkgaW50ZXJjZXB0IEVTQyBrZXkgd2hlbiBhdXRvY29y
cmVjdGlvbiBwYW5lbCBpcyBzaG93bi4gT3RoZXJ3aXNlIHByZXNzaW5nCisgICAgICAgIEVTQyB3
aWxsIGNhbmNlbCBjdXJyZW50IGxvYWRpbmcgbGlrZSB1c3VhbC4KKworICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aXNTaG93aW5nQ29ycmVj
dGlvblBhbmVsKTogUXVlcnkgZWRpdG9yIGNsaWVudCB3aGV0aGVyIGF1dG9jb3JyZWN0aW9uCisg
ICAgICAgICAgcGFuZWwgaXMgc2hvd24uCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOiBB
ZGRlZCBkZWNsYXJhdGlvbiBvZiBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKS4KKworICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdXBwb3J0
ZWREaXNtaXNzQ29ycmVjdGlvblBhbmVsKTogT25seSBzdXBwb3J0IGV4ZWN1dGVDYW5jZWxPcGVy
YXRpb24oKQorICAgICAgICAgIHdoZW4gYXV0b2NvcnJlY3Rpb24gcGFuZWwgaXMgc2hvd24uCisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVDb21tYW5kTWFwKTogUmVwbGFjZWQgaXNTdXBwb3J0ZWQg
ZnVuY3Rpb24gcG9pbnRlciBmb3IKKyAgICAgICAgICBleGVjdXRlQ2FuY2VsT3BlcmF0aW9uKCkg
Y29tbWFuZCB3aXRoIHN1cHBvcnRlZERpc21pc3NDb3JyZWN0aW9uUGFuZWwoKS4KKworICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9y
Q2xpZW50Ojppc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwpOiBEdW1teSBpbXBsZW1lbnRhdGlvbiBv
ZgorICAgICAgICAgIG5ldyBtZW1iZXIgbWV0aG9kIGRlY2xhcmVkIGluIGJhc2UgY2xhc3MuCisK
KyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOiBEZWNsYXJlZCBuZXcgbWVtYmVyIG1ldGhv
ZCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKS4KKwogMjAxMC0wOS0xMyAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJ
bmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NTQsNiArMjg1NCwxNSBAQCB2b2lkIEVkaXRv
cjo6aGFuZGxlQ2FuY2VsT3BlcmF0aW9uKCkKICNlbmRpZgogfQogCitib29sIEVkaXRvcjo6aXNT
aG93aW5nQ29ycmVjdGlvblBhbmVsKCkKK3sKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisgICAgaWYgKGNsaWVudCgpKQorICAg
ICAgICByZXR1cm4gY2xpZW50KCktPmlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOworI2VuZGlm
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFJhbmdlPiBFZGl0b3I6OnJhbmdl
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KQogewogICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50QXRQb2ludCh3aW5kb3dQb2ludCk7CkluZGV4OiBX
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCShyZXZpc2lvbiA2NzM5NikKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMzEzLDYgKzMxMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZUNh
bmNlbE9wZXJhdGlvbigpOwogICAgIHZvaWQgc3RhcnRDb3JyZWN0aW9uUGFuZWxUaW1lcigpOwog
ICAgIHZvaWQgaGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uKCk7CisgICAgYm9vbCBpc1Nob3dpbmdD
b3JyZWN0aW9uUGFuZWwoKTsKIAogICAgIHZvaWQgcGFzdGVBc0ZyYWdtZW50KFBhc3NSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4sIGJvb2wgc21hcnRSZXBsYWNlLCBib29sIG1hdGNoU3R5bGUpOwog
ICAgIHZvaWQgcGFzdGVBc1BsYWluVGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNtYXJ0UmVwbGFj
ZSk7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCShyZXZpc2lvbiA2NzM5NikKKysr
IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEy
Miw2ICsxMTIyLDExIEBAIHN0YXRpYyBib29sIHN1cHBvcnRlZFBhc3RlKEZyYW1lKiBmcmFtZSwK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBib29sIHN1cHBvcnRlZERpc21pc3NDb3Jy
ZWN0aW9uUGFuZWwoRnJhbWUqIGZyYW1lLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSkKK3sK
KyAgICByZXR1cm4gc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcoZnJhbWUsIHNvdXJjZSkg
JiYgZnJhbWUtPmVkaXRvcigpLT5pc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKTsKK30KKwogLy8g
RW5hYmxlZCBmdW5jdGlvbnMKIAogc3RhdGljIGJvb2wgZW5hYmxlZChGcmFtZSosIEV2ZW50Kiwg
RWRpdG9yQ29tbWFuZFNvdXJjZSkKQEAgLTE0NjcsNyArMTQ3Miw3IEBAIHN0YXRpYyBjb25zdCBD
b21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWEKICAgICAgICAgeyAiWWFuayIsIHsgZXhlY3V0ZVlh
bmssIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkSW5FZGl0YWJsZVRleHQs
IHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0
aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAiWWFua0FuZFNlbGVjdCIsIHsgZXhlY3V0
ZVlhbmtBbmRTZWxlY3QsIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkSW5F
ZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05v
dEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICNpZiBQTEFURk9STShNQUMpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0gICAgICAgIHsgIkNhbmNl
bE9wZXJhdGlvbiIsIHsgZXhlY3V0ZUNhbmNlbE9wZXJhdGlvbiwgc3VwcG9ydGVkRnJvbU1lbnVP
cktleUJpbmRpbmcsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGws
IG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAor
ICAgICAgICB7ICJDYW5jZWxPcGVyYXRpb24iLCB7IGV4ZWN1dGVDYW5jZWxPcGVyYXRpb24sIHN1
cHBvcnRlZERpc21pc3NDb3JyZWN0aW9uUGFuZWwsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3Rh
dGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25X
aGVuRGlzYWJsZWQgfSB9LAogI2VuZGlmCiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ2Nyw2ICs0NjcsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFD
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1
YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIEVkaXRvciopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNz
Q29ycmVjdGlvblBhbmVsKGJvb2wpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdDb3Jy
ZWN0aW9uUGFuZWwoKSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBH
cmFtbWFyRGV0YWlsJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRo
TWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJikgeyB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvRWRp
dG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCShy
ZXZpc2lvbiA2NzM5NikKKysrIFdlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTgzLDYgKzE4Myw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lk
IHNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFj
ZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVw
bGFjbWVudFN0cmluZywgRWRpdG9yKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29y
cmVjdGlvblBhbmVsKGJvb2wgY29ycmVjdGlvbkFjY2VwdGVkKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpID0gMDsKICNlbmRpZgogCiAgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBTdHJpbmcmLCBj
b25zdCBHcmFtbWFyRGV0YWlsJiBkZXRhaWwpID0gMDsKSW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NzM5NikKKysrIFdl
YktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDkt
MTMgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgT25seSBpbnRlcmNlcHQgRVND
IGtleSBwcmVzcyB3aGVuIGF1dG9jb3JyZWN0aW9uIFVJIGlzIHZpc2libGUuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTA3MQorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OmlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCk6IER1bW15
IGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaDogQWRvcHQgbmV3IG1ldGhvZCBkZWxjYXJlZCBpbiBiYXNlIGNsYXNz
LgorCiAyMDEwLTA5LTExICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KIAogICAgICAg
ICBBdHRlbXB0IHRvIGZpeCB0aGUgUXQgTGludXggUmVsZWFzZSBidWlsZCBhZnRlciBjaGFuZ2Vz
ZXQgNjczMTIgPGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzY3MzEyPi4KSW5kZXg6
IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwCShyZXZpc2lvbiA2NzM5NikKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTAsNiArNDkw
LDEyIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaXNtaXNzQ29ycmVjdGlvblAKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQorCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNTaG93aW5nQ29y
cmVjdGlvblBhbmVsKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlz
aW9uIDY3Mzk2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsNiArMTM0LDcgQEAgcHJpdmF0ZToKICNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwg
dm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRp
bmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcs
IGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7
CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9u
QWNjZXB0ZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKTsK
ICNlbmRpZgogICAgIFdlYlBhZ2UqIG1fcGFnZTsKIH07CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNjczOTYp
CisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDEwLTA5LTEzICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgaW50
ZXJjZXB0IEVTQyBrZXkgcHJlc3Mgd2hlbiBhdXRvY29ycmVjdGlvbiBVSSBpcyB2aXNpYmxlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwNzEKKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOiBBZGRlZCBkZWNsYXJh
dGlvbiBvZiBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKSwKKyAgICAgICAgICB3aGljaCBwcm92
aWRlcyBhbiBpbnRlZmFjZSB0byBxdWVyeSB3aGV0aGVyIGF1dG9jb3JyZWN0aW9uIHBhbmVsIGlz
IHNob3duLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgor
ICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpXZWJFZGl0b3JDbGllbnQpOiBEZWZpbmVkIGEgY29u
c3RhbnQsIEludmFsaWRDb3JyZWN0aW9uUGFuZWxUYWcsCisgICAgICAgICAgZm9yIGludmFsaWQg
Y29ycmVjdGlvbiBwYW5lbCB0YWcuIFJlcGxhY2VkIC0xIHdpdGggdGhpcyBjb25zdGFudC4KKyAg
ICAgICAgKFdlYkVkaXRvckNsaWVudDo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbCk6IERpdHRvCisg
ICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCk6IFF1ZXJ5
IHdoZXRoZXIgYXV0b2NvcnJlY3Rpb24gcGFuZWwgaXMgc2hvd24uCisKIDIwMTAtMDktMTMgIEpv
aG4gU3VsbGl2YW4gIDxzdWxsaXZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBSb2Jlbi4KSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaAkocmV2aXNpb24gNjczOTYpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsNiArMTMzLDcgQEAgcHVibGlj
OgogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmly
dHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBi
b3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0
cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0
b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChib29sIGNvcnJl
Y3Rpb25BY2NlcHRlZCk7CisgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5l
bCgpOwogI2VuZGlmCiBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJDb21tYW5kRm9yVW5kb09y
UmVkbyhQYXNzUmVmUHRyPFdlYkNvcmU6OkVkaXRDb21tYW5kPiwgYm9vbCBpc1JlZG8pOwpJbmRl
eDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0JKHJldmlz
aW9uIDY3Mzk2KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDggQEAgc3RhdGljIFdlYlZpZXdJbnNlcnRB
Y3Rpb24ga2l0KEVkaXRvcklucwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJWaWV3SW5zZXJ0
QWN0aW9uPihjb3JlQWN0aW9uKTsKIH0KIAorc3RhdGljIGNvbnN0IGludCBJbnZhbGlkQ29ycmVj
dGlvblBhbmVsVGFnID0gMDsKKwogI2lmZGVmIEJVSUxESU5HX09OX1RJR0VSCiBAaW50ZXJmYWNl
IE5TU3BlbGxDaGVja2VyIChOb3RZZXRQdWJsaWNNZXRob2RzKQogLSAodm9pZClsZWFybldvcmQ6
KE5TU3RyaW5nICopd29yZDsKQEAgLTE3NSw3ICsxNzcsNyBAQCBXZWJFZGl0b3JDbGllbnQ6Oldl
YkVkaXRvckNsaWVudChXZWJWaWV3CiAgICAgLCBtX3VuZG9UYXJnZXQoW1tbV2ViRWRpdG9yVW5k
b1RhcmdldCBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdKQogICAgICwgbV9oYXZlVW5kb1JlZG9P
cGVyYXRpb25zKGZhbHNlKQogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCi0gICAgLCBtX2NvcnJlY3Rpb25QYW5lbFRhZygtMSkKKyAgICAsIG1fY29ycmVjdGlv
blBhbmVsVGFnKEludmFsaWRDb3JyZWN0aW9uUGFuZWxUYWcpCiAjZW5kaWYKIHsKIH0KQEAgLTgy
OSwxMSArODMxLDE2IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmUK
IAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3Jy
ZWN0aW9uQWNjZXB0ZWQpCiB7Ci0gICAgaWYgKG1fY29ycmVjdGlvblBhbmVsVGFnID49IDApIHsK
KyAgICBpZiAobV9jb3JyZWN0aW9uUGFuZWxUYWcgIT0gSW52YWxpZENvcnJlY3Rpb25QYW5lbFRh
ZykgewogICAgICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gZGlzbWlz
c0NvcnJlY3Rpb246bV9jb3JyZWN0aW9uUGFuZWxUYWcgYWNjZXB0Q29ycmVjdGlvbjpjb3JyZWN0
aW9uQWNjZXB0ZWRdOwotICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbFRhZyA9IC0xOworICAgICAg
ICBtX2NvcnJlY3Rpb25QYW5lbFRhZyA9IEludmFsaWRDb3JyZWN0aW9uUGFuZWxUYWc7CiAgICAg
fQogfQorCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCkK
K3sKKyAgICByZXR1cm4gbV9jb3JyZWN0aW9uUGFuZWxUYWcgIT0gSW52YWxpZENvcnJlY3Rpb25Q
YW5lbFRhZzsKK30KICNlbmRpZgogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6dXBkYXRlU3BlbGxp
bmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKQo=
</data>
<flag name="review"
          id="56744"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67607</attachid>
            <date>2010-09-14 14:39:14 -0700</date>
            <delta_ts>2010-09-14 17:39:18 -0700</delta_ts>
            <desc>Proposed patch (v4)</desc>
            <filename>webkit_bug45071.patch</filename>
            <type>text/plain</type>
            <size>11962</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzM5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDktMTQgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgT25seSBpbnRlcmNlcHQgRVNDIGtleSBwcmVzcyB3aGVuIGF1dG9jb3JyZWN0aW9uIFVJ
IGlzIHZpc2libGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NTA3MQorCisgICAgICAgIE9ubHkgaW50ZXJjZXB0IEVTQyBrZXkgd2hlbiBhdXRvY29y
cmVjdGlvbiBwYW5lbCBpcyBzaG93bi4gT3RoZXJ3aXNlIHByZXNzaW5nCisgICAgICAgIEVTQyB3
aWxsIGNhbmNlbCBjdXJyZW50IGxvYWRpbmcgbGlrZSB1c3VhbC4KKworICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aXNTaG93aW5nQ29ycmVj
dGlvblBhbmVsKTogUXVlcnkgZWRpdG9yIGNsaWVudCB3aGV0aGVyIGF1dG9jb3JyZWN0aW9uCisg
ICAgICAgICAgcGFuZWwgaXMgc2hvd24uCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOiBB
ZGRlZCBkZWNsYXJhdGlvbiBvZiBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKS4KKworICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdXBwb3J0
ZWREaXNtaXNzQ29ycmVjdGlvblBhbmVsKTogT25seSBzdXBwb3J0IGV4ZWN1dGVDYW5jZWxPcGVy
YXRpb24oKQorICAgICAgICAgIHdoZW4gYXV0b2NvcnJlY3Rpb24gcGFuZWwgaXMgc2hvd24uCisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVDb21tYW5kTWFwKTogUmVwbGFjZWQgaXNTdXBwb3J0ZWQg
ZnVuY3Rpb24gcG9pbnRlciBmb3IKKyAgICAgICAgICBleGVjdXRlQ2FuY2VsT3BlcmF0aW9uKCkg
Y29tbWFuZCB3aXRoIHN1cHBvcnRlZERpc21pc3NDb3JyZWN0aW9uUGFuZWwoKS4KKworICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9y
Q2xpZW50Ojppc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwpOiBEdW1teSBpbXBsZW1lbnRhdGlvbiBv
ZgorICAgICAgICAgIG5ldyBtZW1iZXIgbWV0aG9kIGRlY2xhcmVkIGluIGJhc2UgY2xhc3MuCisK
KyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOiBEZWNsYXJlZCBuZXcgbWVtYmVyIG1ldGhv
ZCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKS4KKwogMjAxMC0wOS0xMyAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJ
bmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NTQsNiArMjg1NCwxNSBAQCB2b2lkIEVkaXRv
cjo6aGFuZGxlQ2FuY2VsT3BlcmF0aW9uKCkKICNlbmRpZgogfQogCitib29sIEVkaXRvcjo6aXNT
aG93aW5nQ29ycmVjdGlvblBhbmVsKCkKK3sKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisgICAgaWYgKGNsaWVudCgpKQorICAg
ICAgICByZXR1cm4gY2xpZW50KCktPmlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOworI2VuZGlm
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFJhbmdlPiBFZGl0b3I6OnJhbmdl
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KQogewogICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50QXRQb2ludCh3aW5kb3dQb2ludCk7CkluZGV4OiBX
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCShyZXZpc2lvbiA2NzM5NikKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMzEzLDYgKzMxMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZUNh
bmNlbE9wZXJhdGlvbigpOwogICAgIHZvaWQgc3RhcnRDb3JyZWN0aW9uUGFuZWxUaW1lcigpOwog
ICAgIHZvaWQgaGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uKCk7CisgICAgYm9vbCBpc1Nob3dpbmdD
b3JyZWN0aW9uUGFuZWwoKTsKIAogICAgIHZvaWQgcGFzdGVBc0ZyYWdtZW50KFBhc3NSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4sIGJvb2wgc21hcnRSZXBsYWNlLCBib29sIG1hdGNoU3R5bGUpOwog
ICAgIHZvaWQgcGFzdGVBc1BsYWluVGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNtYXJ0UmVwbGFj
ZSk7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCShyZXZpc2lvbiA2NzM5NikKKysr
IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEy
Miw2ICsxMTIyLDEzIEBAIHN0YXRpYyBib29sIHN1cHBvcnRlZFBhc3RlKEZyYW1lKiBmcmFtZSwK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCitzdGF0aWMgYm9vbCBzdXBwb3J0ZWREaXNt
aXNzQ29ycmVjdGlvblBhbmVsKEZyYW1lKiBmcmFtZSwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3Vy
Y2UpCit7CisgICAgcmV0dXJuIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nKGZyYW1lLCBz
b3VyY2UpICYmIGZyYW1lLT5lZGl0b3IoKS0+aXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCk7Cit9
CisjZW5kaWYKKwogLy8gRW5hYmxlZCBmdW5jdGlvbnMKIAogc3RhdGljIGJvb2wgZW5hYmxlZChG
cmFtZSosIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSkKQEAgLTE0NjcsNyArMTQ3NCw3IEBA
IHN0YXRpYyBjb25zdCBDb21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWEKICAgICAgICAgeyAiWWFu
ayIsIHsgZXhlY3V0ZVlhbmssIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVk
SW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBk
b05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAiWWFua0FuZFNl
bGVjdCIsIHsgZXhlY3V0ZVlhbmtBbmRTZWxlY3QsIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5k
aW5nLCBlbmFibGVkSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0
SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICNpZiBQTEFU
Rk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0g
ICAgICAgIHsgIkNhbmNlbE9wZXJhdGlvbiIsIHsgZXhlY3V0ZUNhbmNlbE9wZXJhdGlvbiwgc3Vw
cG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3RhdGVO
b25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVu
RGlzYWJsZWQgfSB9LAorICAgICAgICB7ICJDYW5jZWxPcGVyYXRpb24iLCB7IGV4ZWN1dGVDYW5j
ZWxPcGVyYXRpb24sIHN1cHBvcnRlZERpc21pc3NDb3JyZWN0aW9uUGFuZWwsIGVuYWJsZWRJbkVk
aXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90
QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogI2VuZGlmCiAgICAgfTsKIApJbmRleDog
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2Nyw2ICs0NjcsNyBAQCBwdWJsaWM6CiAj
aWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEVkaXRvciopIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKGJvb2wpIHsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBT
dHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0YWlsJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJikgeyB9CkluZGV4OiBX
ZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0Vk
aXRvckNsaWVudC5oCShyZXZpc2lvbiA2NzM5NikKKysrIFdlYkNvcmUvcGFnZS9FZGl0b3JDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTgzLDYgKzE4Myw3IEBAIHB1YmxpYzoKICNpZiBQTEFU
Rk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAg
ICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3QgRmxvYXRSZWN0JiBib3Vu
ZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcmVwbGFjbWVudFN0cmluZywgRWRpdG9yKikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKGJvb2wgY29ycmVjdGlvbkFjY2VwdGVkKSA9IDA7
CisgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpID0gMDsKICNlbmRp
ZgogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhj
b25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0YWlsJiBkZXRhaWwpID0gMDsKSW5kZXg6IFdl
YktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lv
biA2NzM5NikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTAtMDktMTQgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgT25s
eSBpbnRlcmNlcHQgRVNDIGtleSBwcmVzcyB3aGVuIGF1dG9jb3JyZWN0aW9uIFVJIGlzIHZpc2li
bGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTA3
MQorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OmlzU2hvd2luZ0NvcnJlY3Rp
b25QYW5lbCk6IER1bW15IGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDogQWRvcHQgbmV3IG1ldGhvZCBkZWxjYXJl
ZCBpbiBiYXNlIGNsYXNzLgorCiAyMDEwLTA5LTExICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmlt
LmNvbT4KIAogICAgICAgICBBdHRlbXB0IHRvIGZpeCB0aGUgUXQgTGludXggUmVsZWFzZSBidWls
ZCBhZnRlciBjaGFuZ2VzZXQgNjczMTIgPGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0
LzY3MzEyPi4KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCShyZXZpc2lvbiA2NzM5NikKKysrIFdlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00ODAsNyArNDgwLDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9k
U3RhdAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93
Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJl
cGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdU
Rjo6U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKikKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwpAQCAtNDkwLDYgKzQ5MCwxMiBAQCB2b2lkIFdlYkVkaXRvckNsaWVu
dDo6ZGlzbWlzc0NvcnJlY3Rpb25QCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KKworYm9v
bCBXZWJFZGl0b3JDbGllbnQ6OmlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAjZW5kaWYKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCShyZXZpc2lvbiA2NzM5NikKKysrIFdlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMTMxLDkgKzEzMSwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMp
OwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7Ci0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lk
IHNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0Jv
eE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29u
c3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3IqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChib29sIGNvcnJlY3Rpb25BY2Nl
cHRlZCk7CisgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOwogI2Vu
ZGlmCiAgICAgV2ViUGFnZSogbV9wYWdlOwogfTsKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NzM5NikKKysr
IFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTAtMDktMTQgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgT25seSBpbnRlcmNl
cHQgRVNDIGtleSBwcmVzcyB3aGVuIGF1dG9jb3JyZWN0aW9uIFVJIGlzIHZpc2libGUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTA3MQorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6IEFkZGVkIGRlY2xhcmF0aW9u
IG9mIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpLAorICAgICAgICAgIHdoaWNoIHByb3ZpZGVz
IGFuIGludGVmYWNlIHRvIHF1ZXJ5IHdoZXRoZXIgYXV0b2NvcnJlY3Rpb24gcGFuZWwgaXMgc2hv
d24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAg
ICAgIChXZWJFZGl0b3JDbGllbnQ6OldlYkVkaXRvckNsaWVudCk6IERlZmluZWQgYSBjb25zdGFu
dCwgSW52YWxpZENvcnJlY3Rpb25QYW5lbFRhZywKKyAgICAgICAgICBmb3IgaW52YWxpZCBjb3Jy
ZWN0aW9uIHBhbmVsIHRhZy4gUmVwbGFjZWQgLTEgd2l0aCB0aGlzIGNvbnN0YW50LgorICAgICAg
ICAoV2ViRWRpdG9yQ2xpZW50OjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsKTogRGl0dG8KKyAgICAg
ICAgKFdlYkVkaXRvckNsaWVudDo6aXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKTogUXVlcnkgd2hl
dGhlciBhdXRvY29ycmVjdGlvbiBwYW5lbCBpcyBzaG93bi4KKwogMjAxMC0wOS0xMyAgSm9obiBT
dWxsaXZhbiAgPHN1bGxpdmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IFJvYmVuLgpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oCShyZXZpc2lvbiA2NzM5NikKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMyw2ICsxMzMsNyBAQCBwdWJsaWM6CiAj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFs
IHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5k
aW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5n
LCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRvciop
OwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKGJvb2wgY29ycmVjdGlv
bkFjY2VwdGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCk7
CiAjZW5kaWYKIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckNvbW1hbmRGb3JVbmRvT3JSZWRv
KFBhc3NSZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1hbmQ+LCBib29sIGlzUmVkbyk7CkluZGV4OiBX
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkocmV2aXNpb24g
NjczOTYpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQko
d29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsOCBAQCBzdGF0aWMgV2ViVmlld0luc2VydEFjdGlv
biBraXQoRWRpdG9ySW5zCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYlZpZXdJbnNlcnRBY3Rp
b24+KGNvcmVBY3Rpb24pOwogfQogCitzdGF0aWMgY29uc3QgaW50IEludmFsaWRDb3JyZWN0aW9u
UGFuZWxUYWcgPSAwOworCiAjaWZkZWYgQlVJTERJTkdfT05fVElHRVIKIEBpbnRlcmZhY2UgTlNT
cGVsbENoZWNrZXIgKE5vdFlldFB1YmxpY01ldGhvZHMpCiAtICh2b2lkKWxlYXJuV29yZDooTlNT
dHJpbmcgKil3b3JkOwpAQCAtMTc1LDcgKzE3Nyw3IEBAIFdlYkVkaXRvckNsaWVudDo6V2ViRWRp
dG9yQ2xpZW50KFdlYlZpZXcKICAgICAsIG1fdW5kb1RhcmdldChbW1tXZWJFZGl0b3JVbmRvVGFy
Z2V0IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV0pCiAgICAgLCBtX2hhdmVVbmRvUmVkb09wZXJh
dGlvbnMoZmFsc2UpCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKLSAgICAsIG1fY29ycmVjdGlvblBhbmVsVGFnKC0xKQorICAgICwgbV9jb3JyZWN0aW9uUGFu
ZWxUYWcoSW52YWxpZENvcnJlY3Rpb25QYW5lbFRhZykKICNlbmRpZgogewogfQpAQCAtODI5LDEx
ICs4MzEsMTYgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNob3dDb3JyZWN0aW9uUGFuZQogCiB2
b2lkIFdlYkVkaXRvckNsaWVudDo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChib29sIGNvcnJlY3Rp
b25BY2NlcHRlZCkKIHsKLSAgICBpZiAobV9jb3JyZWN0aW9uUGFuZWxUYWcgPj0gMCkgeworICAg
IGlmIChtX2NvcnJlY3Rpb25QYW5lbFRhZyAhPSBJbnZhbGlkQ29ycmVjdGlvblBhbmVsVGFnKSB7
CiAgICAgICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBkaXNtaXNzQ29y
cmVjdGlvbjptX2NvcnJlY3Rpb25QYW5lbFRhZyBhY2NlcHRDb3JyZWN0aW9uOmNvcnJlY3Rpb25B
Y2NlcHRlZF07Ci0gICAgICAgIG1fY29ycmVjdGlvblBhbmVsVGFnID0gLTE7CisgICAgICAgIG1f
Y29ycmVjdGlvblBhbmVsVGFnID0gSW52YWxpZENvcnJlY3Rpb25QYW5lbFRhZzsKICAgICB9CiB9
CisKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKQorewor
ICAgIHJldHVybiBtX2NvcnJlY3Rpb25QYW5lbFRhZyAhPSBJbnZhbGlkQ29ycmVjdGlvblBhbmVs
VGFnOworfQogI2VuZGlmCiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp1cGRhdGVTcGVsbGluZ1VJ
V2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpCg==
</data>
<flag name="review"
          id="56955"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67623</attachid>
            <date>2010-09-14 17:39:18 -0700</date>
            <delta_ts>2010-09-14 19:39:14 -0700</delta_ts>
            <desc>Proposed patch (v5)</desc>
            <filename>webkit_bug45071.patch</filename>
            <type>text/plain</type>
            <size>12000</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzM5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDktMTQgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTKS4KKworICAgICAgICBPbmx5IGludGVyY2Vw
dCBFU0Mga2V5IHByZXNzIHdoZW4gYXV0b2NvcnJlY3Rpb24gVUkgaXMgdmlzaWJsZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDcxCisKKyAgICAg
ICAgT25seSBpbnRlcmNlcHQgRVNDIGtleSB3aGVuIGF1dG9jb3JyZWN0aW9uIHBhbmVsIGlzIHNo
b3duLiBPdGhlcndpc2UgcHJlc3NpbmcKKyAgICAgICAgRVNDIHdpbGwgY2FuY2VsIGN1cnJlbnQg
bG9hZGluZyBsaWtlIHVzdWFsLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjppc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwpOiBRdWVyeSBl
ZGl0b3IgY2xpZW50IHdoZXRoZXIgYXV0b2NvcnJlY3Rpb24KKyAgICAgICAgICBwYW5lbCBpcyBz
aG93bi4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6IEFkZGVkIGRlY2xhcmF0aW9uIG9m
IGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN1cHBvcnRlZERpc21pc3NDb3JyZWN0aW9u
UGFuZWwpOiBPbmx5IHN1cHBvcnQgZXhlY3V0ZUNhbmNlbE9wZXJhdGlvbigpCisgICAgICAgICAg
d2hlbiBhdXRvY29ycmVjdGlvbiBwYW5lbCBpcyBzaG93bi4KKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZUNvbW1hbmRNYXApOiBSZXBsYWNlZCBpc1N1cHBvcnRlZCBmdW5jdGlvbiBwb2ludGVyIGZv
cgorICAgICAgICAgIGV4ZWN1dGVDYW5jZWxPcGVyYXRpb24oKSBjb21tYW5kIHdpdGggc3VwcG9y
dGVkRGlzbWlzc0NvcnJlY3Rpb25QYW5lbCgpLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OmlzU2hvd2luZ0Nv
cnJlY3Rpb25QYW5lbCk6IER1bW15IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgICAgbmV3IG1l
bWJlciBtZXRob2QgZGVjbGFyZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAgICAqIHBhZ2UvRWRp
dG9yQ2xpZW50Lmg6IERlY2xhcmVkIG5ldyBtZW1iZXIgbWV0aG9kIGlzU2hvd2luZ0NvcnJlY3Rp
b25QYW5lbCgpLgorCiAyMDEwLTA5LTEzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAko
cmV2aXNpb24gNjczOTYpCisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjg1NCw2ICsyODU0LDE1IEBAIHZvaWQgRWRpdG9yOjpoYW5kbGVDYW5jZWxPcGVy
YXRpb24oKQogI2VuZGlmCiB9CiAKK2Jvb2wgRWRpdG9yOjppc1Nob3dpbmdDb3JyZWN0aW9uUGFu
ZWwoKQoreworI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyAgICBpZiAoY2xpZW50KCkpCisgICAgICAgIHJldHVybiBjbGllbnQo
KS0+aXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCk7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VGb3JQb2ludChjb25zdCBJbnRQ
b2ludCYgd2luZG93UG9pbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+
ZG9jdW1lbnRBdFBvaW50KHdpbmRvd1BvaW50KTsKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHJldmlzaW9uIDY3
Mzk2KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMTMs
NiArMzEzLDcgQEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxlQ2FuY2VsT3BlcmF0aW9uKCk7CiAg
ICAgdm9pZCBzdGFydENvcnJlY3Rpb25QYW5lbFRpbWVyKCk7CiAgICAgdm9pZCBoYW5kbGVSZWpl
Y3RlZENvcnJlY3Rpb24oKTsKKyAgICBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOwog
CiAgICAgdm9pZCBwYXN0ZUFzRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50Piwg
Ym9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSk7CiAgICAgdm9pZCBwYXN0ZUFzUGxh
aW5UZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgc21hcnRSZXBsYWNlKTsKSW5kZXg6IFdlYkNvcmUv
ZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvckNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIyLDYgKzExMjIsMTMgQEAgc3Rh
dGljIGJvb2wgc3VwcG9ydGVkUGFzdGUoRnJhbWUqIGZyYW1lLAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKK3N0YXRpYyBib29sIHN1cHBvcnRlZERpc21pc3NDb3JyZWN0aW9uUGFuZWwo
RnJhbWUqIGZyYW1lLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSkKK3sKKyAgICByZXR1cm4g
c3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcoZnJhbWUsIHNvdXJjZSkgJiYgZnJhbWUtPmVk
aXRvcigpLT5pc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKTsKK30KKyNlbmRpZgorCiAvLyBFbmFi
bGVkIGZ1bmN0aW9ucwogCiBzdGF0aWMgYm9vbCBlbmFibGVkKEZyYW1lKiwgRXZlbnQqLCBFZGl0
b3JDb21tYW5kU291cmNlKQpAQCAtMTQ2Nyw3ICsxNDc0LDcgQEAgc3RhdGljIGNvbnN0IENvbW1h
bmRNYXAmIGNyZWF0ZUNvbW1hbmRNYQogICAgICAgICB7ICJZYW5rIiwgeyBleGVjdXRlWWFuaywg
c3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3Rh
dGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25X
aGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJZYW5rQW5kU2VsZWN0IiwgeyBleGVjdXRlWWFu
a0FuZFNlbGVjdCwgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJbkVkaXRh
YmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxs
b3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSAgICAgICAgeyAiQ2FuY2VsT3Bl
cmF0aW9uIiwgeyBleGVjdXRlQ2FuY2VsT3BlcmF0aW9uLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5
QmluZGluZywgZW5hYmxlZEluRWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90
VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCisgICAg
ICAgIHsgIkNhbmNlbE9wZXJhdGlvbiIsIHsgZXhlY3V0ZUNhbmNlbE9wZXJhdGlvbiwgc3VwcG9y
dGVkRGlzbWlzc0NvcnJlY3Rpb25QYW5lbCwgZW5hYmxlZEluRWRpdGFibGVUZXh0LCBzdGF0ZU5v
bmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5E
aXNhYmxlZCB9IH0sCiAjZW5kaWYKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAko
cmV2aXNpb24gNjczOTYpCisrKyBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDY3LDYgKzQ2Nyw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9Q
QVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2
b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiwgRWRpdG9yKikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3Jy
ZWN0aW9uUGFuZWwoYm9vbCkgeyB9CisgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rp
b25QYW5lbCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IEdyYW1t
YXJEZXRhaWwmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNz
cGVsbGVkV29yZChjb25zdCBTdHJpbmcmKSB7IH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9FZGl0b3JD
bGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgJKHJldmlz
aW9uIDY3Mzk2KQorKysgV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xODMsNiArMTgzLDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hv
d0NvcnJlY3Rpb25QYW5lbChjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0
cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNt
ZW50U3RyaW5nLCBFZGl0b3IqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0
aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCkgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0
IEdyYW1tYXJEZXRhaWwmIGRldGFpbCkgPSAwOwpJbmRleDogV2ViS2l0Mi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViS2l0
Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wOS0xNCAg
SmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBPbmx5IGludGVyY2VwdCBFU0Mga2V5
IHByZXNzIHdoZW4gYXV0b2NvcnJlY3Rpb24gVUkgaXMgdmlzaWJsZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDcxCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkVkaXRvckNsaWVudDo6aXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKTogRHVtbXkgaW1w
bGVtZW50YXRpb24uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oOiBBZG9wdCBuZXcgbWV0aG9kIGRlbGNhcmVkIGluIGJhc2UgY2xhc3MuCisK
IDIwMTAtMDktMTEgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgogCiAgICAgICAgIEF0
dGVtcHQgdG8gZml4IHRoZSBRdCBMaW51eCBSZWxlYXNlIGJ1aWxkIGFmdGVyIGNoYW5nZXNldCA2
NzMxMiA8aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjczMTI+LgpJbmRleDogV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4MCw3ICs0ODAsNyBA
QCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCisjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0
IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2Vt
ZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3IqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBA
IC00OTAsNiArNDkwLDEyIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaXNtaXNzQ29ycmVjdGlv
blAKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQorCitib29sIFdlYkVkaXRvckNsaWVudDo6
aXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmgJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsOSArMTMxLDEwIEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6
U3RyaW5nJiwgVmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lk
IHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0
aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
VElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5l
bChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywg
Y29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVw
bGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRvciopOwogICAgIHZpcnR1YWwgdm9pZCBkaXNt
aXNzQ29ycmVjdGlvblBhbmVsKGJvb2wgY29ycmVjdGlvbkFjY2VwdGVkKTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCk7CiAjZW5kaWYKICAgICBXZWJQYWdlKiBt
X3BhZ2U7CiB9OwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViS2l0L21hYy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOS0xNCAgSmlhIFB1ICA8
anB1QGFwcGxlLmNvbT4KKworICAgICAgICBPbmx5IGludGVyY2VwdCBFU0Mga2V5IHByZXNzIHdo
ZW4gYXV0b2NvcnJlY3Rpb24gVUkgaXMgdmlzaWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDcxCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaDogQWRkZWQgZGVjbGFyYXRpb24gb2YgaXNTaG93aW5nQ29ycmVj
dGlvblBhbmVsKCksCisgICAgICAgICAgd2hpY2ggcHJvdmlkZXMgYW4gaW50ZWZhY2UgdG8gcXVl
cnkgd2hldGhlciBhdXRvY29ycmVjdGlvbiBwYW5lbCBpcyBzaG93bi4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVu
dDo6V2ViRWRpdG9yQ2xpZW50KTogRGVmaW5lZCBhIGNvbnN0YW50LCBJbnZhbGlkQ29ycmVjdGlv
blBhbmVsVGFnLAorICAgICAgICAgIGZvciBpbnZhbGlkIGNvcnJlY3Rpb24gcGFuZWwgdGFnLiBS
ZXBsYWNlZCAtMSB3aXRoIHRoaXMgY29uc3RhbnQuCisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6
OmRpc21pc3NDb3JyZWN0aW9uUGFuZWwpOiBEaXR0bworICAgICAgICAoV2ViRWRpdG9yQ2xpZW50
Ojppc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwpOiBRdWVyeSB3aGV0aGVyIGF1dG9jb3JyZWN0aW9u
IHBhbmVsIGlzIHNob3duLgorCiAyMDEwLTA5LTEzICBKb2huIFN1bGxpdmFuICA8c3VsbGl2YW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCkluZGV4OiBXZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDY3Mzk2
KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMzLDYgKzEzMyw3IEBAIHB1YmxpYzoKICNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlv
blBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3Ry
aW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5n
JiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVhbCB2b2lk
IGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpOworICAgIHZp
cnR1YWwgYm9vbCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKTsKICNlbmRpZgogcHJpdmF0ZToK
ICAgICB2b2lkIHJlZ2lzdGVyQ29tbWFuZEZvclVuZG9PclJlZG8oUGFzc1JlZlB0cjxXZWJDb3Jl
OjpFZGl0Q29tbWFuZD4sIGJvb2wgaXNSZWRvKTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCShyZXZpc2lvbiA2NzM5NikKKysrIFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03
OCw2ICs3OCw4IEBAIHN0YXRpYyBXZWJWaWV3SW5zZXJ0QWN0aW9uIGtpdChFZGl0b3JJbnMKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViVmlld0luc2VydEFjdGlvbj4oY29yZUFjdGlvbik7CiB9
CiAKK3N0YXRpYyBjb25zdCBpbnQgSW52YWxpZENvcnJlY3Rpb25QYW5lbFRhZyA9IDA7CisKICNp
ZmRlZiBCVUlMRElOR19PTl9USUdFUgogQGludGVyZmFjZSBOU1NwZWxsQ2hlY2tlciAoTm90WWV0
UHVibGljTWV0aG9kcykKIC0gKHZvaWQpbGVhcm5Xb3JkOihOU1N0cmluZyAqKXdvcmQ7CkBAIC0x
NzUsNyArMTc3LDcgQEAgV2ViRWRpdG9yQ2xpZW50OjpXZWJFZGl0b3JDbGllbnQoV2ViVmlldwog
ICAgICwgbV91bmRvVGFyZ2V0KFtbW1dlYkVkaXRvclVuZG9UYXJnZXQgYWxsb2NdIGluaXRdIGF1
dG9yZWxlYXNlXSkKICAgICAsIG1faGF2ZVVuZG9SZWRvT3BlcmF0aW9ucyhmYWxzZSkKICNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgICwgbV9jb3JyZWN0
aW9uUGFuZWxUYWcoLTEpCisgICAgLCBtX2NvcnJlY3Rpb25QYW5lbFRhZyhJbnZhbGlkQ29ycmVj
dGlvblBhbmVsVGFnKQogI2VuZGlmCiB7CiB9CkBAIC04MjksMTEgKzgzMSwxNiBAQCB2b2lkIFdl
YkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lCiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsKGJvb2wgY29ycmVjdGlvbkFjY2VwdGVkKQogewotICAg
IGlmIChtX2NvcnJlY3Rpb25QYW5lbFRhZyA+PSAwKSB7CisgICAgaWYgKG1fY29ycmVjdGlvblBh
bmVsVGFnICE9IEludmFsaWRDb3JyZWN0aW9uUGFuZWxUYWcpIHsKICAgICAgICAgW1tOU1NwZWxs
Q2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIGRpc21pc3NDb3JyZWN0aW9uOm1fY29ycmVjdGlv
blBhbmVsVGFnIGFjY2VwdENvcnJlY3Rpb246Y29ycmVjdGlvbkFjY2VwdGVkXTsKLSAgICAgICAg
bV9jb3JyZWN0aW9uUGFuZWxUYWcgPSAtMTsKKyAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxUYWcg
PSBJbnZhbGlkQ29ycmVjdGlvblBhbmVsVGFnOwogICAgIH0KIH0KKworYm9vbCBXZWJFZGl0b3JD
bGllbnQ6OmlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpCit7CisgICAgcmV0dXJuIG1fY29ycmVj
dGlvblBhbmVsVGFnICE9IEludmFsaWRDb3JyZWN0aW9uUGFuZWxUYWc7Cit9CiAjZW5kaWYKIAog
dm9pZCBXZWJFZGl0b3JDbGllbnQ6OnVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQo
Y29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCkK
</data>
<flag name="review"
          id="56973"
          type_id="1"
          status="+"
          setter="mitz"
    />
    <flag name="commit-queue"
          id="56974"
          type_id="3"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67637</attachid>
            <date>2010-09-14 19:59:15 -0700</date>
            <delta_ts>2010-09-14 21:39:22 -0700</delta_ts>
            <desc>Proposed patch (v6)</desc>
            <filename>webkit_bug45071.patch</filename>
            <type>text/plain</type>
            <size>12087</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzM5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTAtMDktMTQgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisgICAg
ICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmx5
IGludGVyY2VwdCBFU0Mga2V5IHByZXNzIHdoZW4gYXV0b2NvcnJlY3Rpb24gVUkgaXMgdmlzaWJs
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDcx
CisKKyAgICAgICAgT25seSBpbnRlcmNlcHQgRVNDIGtleSB3aGVuIGF1dG9jb3JyZWN0aW9uIHBh
bmVsIGlzIHNob3duLiBPdGhlcndpc2UgcHJlc3NpbmcKKyAgICAgICAgRVNDIHdpbGwgY2FuY2Vs
IGN1cnJlbnQgbG9hZGluZyBsaWtlIHVzdWFsLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjppc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwp
OiBRdWVyeSBlZGl0b3IgY2xpZW50IHdoZXRoZXIgYXV0b2NvcnJlY3Rpb24KKyAgICAgICAgICBw
YW5lbCBpcyBzaG93bi4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6IEFkZGVkIGRlY2xh
cmF0aW9uIG9mIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpLgorCisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN1cHBvcnRlZERpc21pc3ND
b3JyZWN0aW9uUGFuZWwpOiBPbmx5IHN1cHBvcnQgZXhlY3V0ZUNhbmNlbE9wZXJhdGlvbigpCisg
ICAgICAgICAgd2hlbiBhdXRvY29ycmVjdGlvbiBwYW5lbCBpcyBzaG93bi4KKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUNvbW1hbmRNYXApOiBSZXBsYWNlZCBpc1N1cHBvcnRlZCBmdW5jdGlvbiBw
b2ludGVyIGZvcgorICAgICAgICAgIGV4ZWN1dGVDYW5jZWxPcGVyYXRpb24oKSBjb21tYW5kIHdp
dGggc3VwcG9ydGVkRGlzbWlzc0NvcnJlY3Rpb25QYW5lbCgpLgorCisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6Omlz
U2hvd2luZ0NvcnJlY3Rpb25QYW5lbCk6IER1bW15IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAg
ICAgbmV3IG1lbWJlciBtZXRob2QgZGVjbGFyZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAgICAq
IHBhZ2UvRWRpdG9yQ2xpZW50Lmg6IERlY2xhcmVkIG5ldyBtZW1iZXIgbWV0aG9kIGlzU2hvd2lu
Z0NvcnJlY3Rpb25QYW5lbCgpLgorCiAyMDEwLTA5LTEzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAkocmV2aXNpb24gNjczOTYpCisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjg1NCw2ICsyODU0LDE1IEBAIHZvaWQgRWRpdG9yOjpoYW5kbGVD
YW5jZWxPcGVyYXRpb24oKQogI2VuZGlmCiB9CiAKK2Jvb2wgRWRpdG9yOjppc1Nob3dpbmdDb3Jy
ZWN0aW9uUGFuZWwoKQoreworI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBpZiAoY2xpZW50KCkpCisgICAgICAgIHJldHVy
biBjbGllbnQoKS0+aXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCk7CisjZW5kaWYKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VGb3JQb2ludChj
b25zdCBJbnRQb2ludCYgd2luZG93UG9pbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
bV9mcmFtZS0+ZG9jdW1lbnRBdFBvaW50KHdpbmRvd1BvaW50KTsKSW5kZXg6IFdlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHJl
dmlzaW9uIDY3Mzk2KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMTMsNiArMzEzLDcgQEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxlQ2FuY2VsT3BlcmF0
aW9uKCk7CiAgICAgdm9pZCBzdGFydENvcnJlY3Rpb25QYW5lbFRpbWVyKCk7CiAgICAgdm9pZCBo
YW5kbGVSZWplY3RlZENvcnJlY3Rpb24oKTsKKyAgICBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25Q
YW5lbCgpOwogCiAgICAgdm9pZCBwYXN0ZUFzRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSk7CiAgICAgdm9pZCBw
YXN0ZUFzUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgc21hcnRSZXBsYWNlKTsKSW5kZXg6
IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIyLDYgKzExMjIs
MTMgQEAgc3RhdGljIGJvb2wgc3VwcG9ydGVkUGFzdGUoRnJhbWUqIGZyYW1lLAogICAgIHJldHVy
biBmYWxzZTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
VElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKK3N0YXRpYyBib29sIHN1cHBvcnRlZERpc21pc3NDb3JyZWN0
aW9uUGFuZWwoRnJhbWUqIGZyYW1lLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSkKK3sKKyAg
ICByZXR1cm4gc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcoZnJhbWUsIHNvdXJjZSkgJiYg
ZnJhbWUtPmVkaXRvcigpLT5pc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKTsKK30KKyNlbmRpZgor
CiAvLyBFbmFibGVkIGZ1bmN0aW9ucwogCiBzdGF0aWMgYm9vbCBlbmFibGVkKEZyYW1lKiwgRXZl
bnQqLCBFZGl0b3JDb21tYW5kU291cmNlKQpAQCAtMTQ2Nyw3ICsxNDc0LDcgQEAgc3RhdGljIGNv
bnN0IENvbW1hbmRNYXAmIGNyZWF0ZUNvbW1hbmRNYQogICAgICAgICB7ICJZYW5rIiwgeyBleGVj
dXRlWWFuaywgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJbkVkaXRhYmxl
VGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dF
eGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJZYW5rQW5kU2VsZWN0IiwgeyBl
eGVjdXRlWWFua0FuZFNlbGVjdCwgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJs
ZWRJbkVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24s
IGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogI2lmIFBMQVRGT1JNKE1BQykg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSAgICAgICAgeyAi
Q2FuY2VsT3BlcmF0aW9uIiwgeyBleGVjdXRlQ2FuY2VsT3BlcmF0aW9uLCBzdXBwb3J0ZWRGcm9t
TWVudU9yS2V5QmluZGluZywgZW5hYmxlZEluRWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVl
TnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9
IH0sCisgICAgICAgIHsgIkNhbmNlbE9wZXJhdGlvbiIsIHsgZXhlY3V0ZUNhbmNlbE9wZXJhdGlv
biwgc3VwcG9ydGVkRGlzbWlzc0NvcnJlY3Rpb25QYW5lbCwgZW5hYmxlZEluRWRpdGFibGVUZXh0
LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1
dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAjZW5kaWYKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAkocmV2aXNpb24gNjczOTYpCisrKyBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAkod29ya2luZyBjb3B5KQpAQCAtNDY3LDYgKzQ2Nyw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9S
TShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAg
dmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgRWRpdG9yKikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRp
c21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCkgeyB9CisgICAgdmlydHVhbCBib29sIGlzU2hvd2lu
Z0NvcnJlY3Rpb25QYW5lbCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNv
bnN0IEdyYW1tYXJEZXRhaWwmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdV
SVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKSB7IH0KSW5kZXg6IFdlYkNvcmUvcGFn
ZS9FZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50
LmgJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODMsNiArMTgzLDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKE1BQykg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFs
IHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZS
ZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNtZW50U3RyaW5nLCBFZGl0b3IqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc21p
c3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpID0gMDsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCkgPSAwOwogI2VuZGlmCiAKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IEdyYW1tYXJEZXRhaWwmIGRldGFpbCkgPSAwOwpJbmRleDogV2ViS2l0Mi9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3Mzk2KQor
KysgV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAx
MC0wOS0xNCAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmx5IGludGVyY2VwdCBFU0Mga2V5IHByZXNzIHdo
ZW4gYXV0b2NvcnJlY3Rpb24gVUkgaXMgdmlzaWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDcxCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVk
aXRvckNsaWVudDo6aXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKTogRHVtbXkgaW1wbGVtZW50YXRp
b24uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oOiBBZG9wdCBuZXcgbWV0aG9kIGRlbGNhcmVkIGluIGJhc2UgY2xhc3MuCisKIDIwMTAtMDkt
MTEgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgogCiAgICAgICAgIEF0dGVtcHQgdG8g
Zml4IHRoZSBRdCBMaW51eCBSZWxlYXNlIGJ1aWxkIGFmdGVyIGNoYW5nZXNldCA2NzMxMiA8aHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjczMTI+LgpJbmRleDogV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAJKHJl
dmlzaW9uIDY3Mzk2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4MCw3ICs0ODAsNyBAQCB2b2lkIFdl
YkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYg
UExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3Ry
aW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5n
LCBXZWJDb3JlOjpFZGl0b3IqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC00OTAsNiAr
NDkwLDEyIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaXNtaXNzQ29ycmVjdGlvblAKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQorCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNTaG93aW5n
Q29ycmVjdGlvblBhbmVsKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJl
dmlzaW9uIDY3Mzk2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsOSArMTMxLDEwIEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwg
VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJ
bnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUo
Ym9vbCBlbmFibGVkKTsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RG
OjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRT
dHJpbmcsIFdlYkNvcmU6OkVkaXRvciopOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVj
dGlvblBhbmVsKGJvb2wgY29ycmVjdGlvbkFjY2VwdGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNT
aG93aW5nQ29ycmVjdGlvblBhbmVsKCk7CiAjZW5kaWYKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiB9
OwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wOS0xNCAgSmlhIFB1ICA8anB1QGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBP
bmx5IGludGVyY2VwdCBFU0Mga2V5IHByZXNzIHdoZW4gYXV0b2NvcnJlY3Rpb24gVUkgaXMgdmlz
aWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
MDcxCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDogQWRkZWQg
ZGVjbGFyYXRpb24gb2YgaXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCksCisgICAgICAgICAgd2hp
Y2ggcHJvdmlkZXMgYW4gaW50ZWZhY2UgdG8gcXVlcnkgd2hldGhlciBhdXRvY29ycmVjdGlvbiBw
YW5lbCBpcyBzaG93bi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6V2ViRWRpdG9yQ2xpZW50KTogRGVmaW5l
ZCBhIGNvbnN0YW50LCBJbnZhbGlkQ29ycmVjdGlvblBhbmVsVGFnLAorICAgICAgICAgIGZvciBp
bnZhbGlkIGNvcnJlY3Rpb24gcGFuZWwgdGFnLiBSZXBsYWNlZCAtMSB3aXRoIHRoaXMgY29uc3Rh
bnQuCisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWwpOiBE
aXR0bworICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwp
OiBRdWVyeSB3aGV0aGVyIGF1dG9jb3JyZWN0aW9uIHBhbmVsIGlzIHNob3duLgorCiAyMDEwLTA5
LTEzICBKb2huIFN1bGxpdmFuICA8c3VsbGl2YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gUm9iZW4uCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMzLDYgKzEzMyw3IEBA
IHB1YmxpYzoKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQog
ICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVw
bGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29y
ZTo6RWRpdG9yKik7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoYm9v
bCBjb3JyZWN0aW9uQWNjZXB0ZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdDb3JyZWN0
aW9uUGFuZWwoKTsKICNlbmRpZgogcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyQ29tbWFuZEZv
clVuZG9PclJlZG8oUGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4sIGJvb2wgaXNSZWRv
KTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1t
CShyZXZpc2lvbiA2NzM5NikKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2ICs3OCw4IEBAIHN0YXRpYyBXZWJWaWV3
SW5zZXJ0QWN0aW9uIGtpdChFZGl0b3JJbnMKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViVmll
d0luc2VydEFjdGlvbj4oY29yZUFjdGlvbik7CiB9CiAKK3N0YXRpYyBjb25zdCBpbnQgSW52YWxp
ZENvcnJlY3Rpb25QYW5lbFRhZyA9IDA7CisKICNpZmRlZiBCVUlMRElOR19PTl9USUdFUgogQGlu
dGVyZmFjZSBOU1NwZWxsQ2hlY2tlciAoTm90WWV0UHVibGljTWV0aG9kcykKIC0gKHZvaWQpbGVh
cm5Xb3JkOihOU1N0cmluZyAqKXdvcmQ7CkBAIC0xNzUsNyArMTc3LDcgQEAgV2ViRWRpdG9yQ2xp
ZW50OjpXZWJFZGl0b3JDbGllbnQoV2ViVmlldwogICAgICwgbV91bmRvVGFyZ2V0KFtbW1dlYkVk
aXRvclVuZG9UYXJnZXQgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXSkKICAgICAsIG1faGF2ZVVu
ZG9SZWRvT3BlcmF0aW9ucyhmYWxzZSkKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQotICAgICwgbV9jb3JyZWN0aW9uUGFuZWxUYWcoLTEpCisgICAgLCBtX2Nv
cnJlY3Rpb25QYW5lbFRhZyhJbnZhbGlkQ29ycmVjdGlvblBhbmVsVGFnKQogI2VuZGlmCiB7CiB9
CkBAIC04MjksMTEgKzgzMSwxNiBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rp
b25QYW5lCiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsKGJv
b2wgY29ycmVjdGlvbkFjY2VwdGVkKQogewotICAgIGlmIChtX2NvcnJlY3Rpb25QYW5lbFRhZyA+
PSAwKSB7CisgICAgaWYgKG1fY29ycmVjdGlvblBhbmVsVGFnICE9IEludmFsaWRDb3JyZWN0aW9u
UGFuZWxUYWcpIHsKICAgICAgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJd
IGRpc21pc3NDb3JyZWN0aW9uOm1fY29ycmVjdGlvblBhbmVsVGFnIGFjY2VwdENvcnJlY3Rpb246
Y29ycmVjdGlvbkFjY2VwdGVkXTsKLSAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxUYWcgPSAtMTsK
KyAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxUYWcgPSBJbnZhbGlkQ29ycmVjdGlvblBhbmVsVGFn
OwogICAgIH0KIH0KKworYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzU2hvd2luZ0NvcnJlY3Rpb25Q
YW5lbCgpCit7CisgICAgcmV0dXJuIG1fY29ycmVjdGlvblBhbmVsVGFnICE9IEludmFsaWRDb3Jy
ZWN0aW9uUGFuZWxUYWc7Cit9CiAjZW5kaWYKIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnVwZGF0
ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29y
ZCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>