<?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>33364</bug_id>
          
          <creation_ts>2010-01-07 22:12:54 -0800</creation_ts>
          <short_desc>[Chromium] Should not select a word on right-click in editable text</short_desc>
          <delta_ts>2010-02-02 00:25:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://crbug.com/8841</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>evan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>178527</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-07 22:12:54 -0800</bug_when>
    <thetext>[Chromium] Should not select a word on right-click</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178529</commentid>
    <comment_count>1</comment_count>
      <attachid>46112</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-07 22:18:12 -0800</bug_when>
    <thetext>Created attachment 46112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178530</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-07 22:20:19 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 46112 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178753</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-08 12:40:32 -0800</bug_when>
    <thetext>I could have sworn we already had code around this?  I could have sworn several other bugs relating to this have already gone by.

A quick search I found bug 20363 and bug 23351 which look related, but are not the ones I was thinking of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179123</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-01-10 00:32:37 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I could have sworn we already had code around this?  I could have sworn several
&gt; other bugs relating to this have already gone by.
&gt; 
&gt; A quick search I found bug 20363 and bug 23351 which look related, but are not
&gt; the ones I was thinking of.

Eric is thinking of bug 15279.  This patch is for editable text areas.

Does this still allow you to correct misspelled words if they are not selected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179328</commentid>
    <comment_count>5</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-11 04:22:33 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; I could have sworn we already had code around this?  I could have sworn several
&gt; &gt; other bugs relating to this have already gone by.
&gt; &gt; 
&gt; &gt; A quick search I found bug 20363 and bug 23351 which look related, but are not
&gt; &gt; the ones I was thinking of.
&gt; 
&gt; Eric is thinking of bug 15279.  This patch is for editable text areas.

Yes, this patch is for editable.
Bug#20363 was a fix for a curious behavior for non-editable, Bug#23351 is a follow-up of Bug#15279, and Bug#15279 disabled right-click-selection for non-editable. Chromium still have right-click-selection for editable.

&gt; Does this still allow you to correct misspelled words if they are not selected?

No. With this patch, the context menu shows spell corrections only if there is already selected text.  I&apos;m not sure we can replace a non-selected word by the spell checker. I&apos;ll check it later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179629</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-01-11 17:16:01 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Does this still allow you to correct misspelled words if they are not selected?
&gt; 
&gt; No. With this patch, the context menu shows spell corrections only if there is
&gt; already selected text.  I&apos;m not sure we can replace a non-selected word by the
&gt; spell checker. I&apos;ll check it later.

That&apos;s what I was afraid of.  I think this will make it very hard to correct misspelled words.  Ideally, I think we want to not select the word but still provide spell corrections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179677</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-11 22:27:07 -0800</bug_when>
    <thetext>I confirmed the current spell correction code assumed a misspelled word was selected.

ExecuteItemCommand() in render_view_context_menu.cc:
    case IDC_SPELLCHECK_SUGGESTION_0:
    case IDC_SPELLCHECK_SUGGESTION_1:
    case IDC_SPELLCHECK_SUGGESTION_2:
    case IDC_SPELLCHECK_SUGGESTION_3:
    case IDC_SPELLCHECK_SUGGESTION_4:
      source_tab_contents_-&gt;render_view_host()-&gt;Replace(
          params_.dictionary_suggestions[id - IDC_SPELLCHECK_SUGGESTION_0]);
      break;

RenderView::OnReplace() is simply:
  webview()-&gt;focusedFrame()-&gt;replaceSelection(text);


However it seems not hard to change it so that replacing non-selected misspelled word.
1. selectMisspelledWord() in ContextMenuClientImpl.cpp returns a word without changing selection if there is no selection.
2. RenderView::OnReplace() replaces a word around the cursor with the specified string if there is no existing selection. (If ViewMsg_Replace() is used by other code, we should introduce new ViewMsg for this.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180631</commentid>
    <comment_count>8</comment_count>
      <attachid>46551</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-14 02:28:12 -0800</bug_when>
    <thetext>Created attachment 46551
Proposed patch (rev.2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180632</commentid>
    <comment_count>9</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-14 02:30:33 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=46551) [details]
&gt; Proposed patch (rev.2)

Note: If this patch is landed, spell-checking without selection won&apos;t work.  We&apos;ll need a simple change for Chromium and fortunately I&apos;m going to be a WebKit sheriff next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180633</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-14 02:30:42 -0800</bug_when>
    <thetext>Attachment 46551 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/src/WebFrameImpl.cpp:952:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180634</commentid>
    <comment_count>11</comment_count>
      <attachid>46552</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-14 02:32:23 -0800</bug_when>
    <thetext>Created attachment 46552
Proposed patch (rev.3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181098</commentid>
    <comment_count>12</comment_count>
      <attachid>46552</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-01-14 21:51:41 -0800</bug_when>
    <thetext>Comment on attachment 46552
Proposed patch (rev.3)


&gt; +++ b/WebKit/chromium/public/WebFrame.h
&gt; @@ -327,6 +327,9 @@ public:
&gt;  
&gt;      // Replaces the selection with the given text.
&gt;      virtual void replaceSelection(const WebString&amp; text) = 0;
&gt; +    // Replaces the selection with the given text or replaces a word around the

^^^ please insert a new line above the comment so that there is a new line
between functions.


&gt; +    virtual void replaceWord(const WebString&amp; text) = 0;

I think you should give this function a more descriptive name.  I&apos;m also
concerned that it has the side-effect of altering the selection.  Perhaps
for the WebKit API we should really break this up.  We already have a
hasSelection() method, so it seems like you could just add a method
that causes selection to be set at the word around the caret.  Like this:

  virtual void selectWordAroundCaret() = 0;


&gt; +++ b/WebKit/chromium/src/WebFrameImpl.cpp
...
&gt; +void WebFrameImpl::replaceWord(const WebString&amp; text)
&gt; +{
&gt; +    SelectionController* controller = frame()-&gt;selection();
&gt; +    // Should have a caret or a ranged selection because the corrected word was
&gt; +    // based on them. See selectMisspelledWord() in ContextMenuClientImpl.cpp.
&gt; +    ASSERT(!controller-&gt;isNone());

It seems like there could be a race here.  Do we allow events to be processed
between the time selectMisspelledWord is called and the time that replaceWord
is called?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181143</commentid>
    <comment_count>13</comment_count>
      <attachid>46650</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-15 00:55:58 -0800</bug_when>
    <thetext>Created attachment 46650
Proposed patch (rev.4)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181145</commentid>
    <comment_count>14</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-15 00:57:59 -0800</bug_when>
    <thetext>&gt; &gt; +    virtual void replaceWord(const WebString&amp; text) = 0;
&gt; 
&gt; I think you should give this function a more descriptive name.  I&apos;m also
&gt; concerned that it has the side-effect of altering the selection.  Perhaps
&gt; for the WebKit API we should really break this up.  We already have a
&gt; hasSelection() method, so it seems like you could just add a method
&gt; that causes selection to be set at the word around the caret.  Like this:
&gt; 
&gt;   virtual void selectWordAroundCaret() = 0;

ok, I renamed so.

&gt; &gt; +    // Should have a caret or a ranged selection because the corrected word was
&gt; &gt; +    // based on them. See selectMisspelledWord() in ContextMenuClientImpl.cpp.
&gt; &gt; +    ASSERT(!controller-&gt;isNone());
&gt; 
&gt; It seems like there could be a race here.  Do we allow events to be processed
&gt; between the time selectMisspelledWord is called and the time that replaceWord
&gt; is called?

I confirmed this assertion was invalid.  JavaScript code can change the selection during a context menu is opening.  Removed the assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186842</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-02-02 00:25:46 -0800</bug_when>
    <thetext>Committed r54212: &lt;http://trac.webkit.org/changeset/54212&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46112</attachid>
            <date>2010-01-07 22:18:12 -0800</date>
            <delta_ts>2010-01-14 02:28:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33364-20100108151810.patch</filename>
            <type>text/plain</type>
            <size>2307</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGRiNmU4NWIuLjE4NDUxZmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDEwLTAxLTA3ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1d
IFNob3VsZCBub3Qgc2VsZWN0IGEgd29yZCBvbiByaWdodC1jbGljaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzMzNjQKKworICAgICAgICBGb3Igbm9u
LU1hYyBwbGF0Zm9ybXMsIGRvIG5vdCBzZWxlY3QgYSB3b3JkIGFyb3VuZCB0aGUgY3Vyc29yIHdo
ZW4KKyAgICAgICAgYSBjb250ZXh0IG1lbnUgaXMgb3BlbmluZy4gVGhpcyBiZWhhdmlvciBpcyBu
b3QgY29tbW9uIGluIG5vbi1NYWMKKyAgICAgICAgcGxhdGZvcm1zLCBhbmQgdmVyeSBzdHJlc3Nm
dWwgZm9yIGEgdXNlciB3aG8gdHJpZXMgdG8gcGFzdGUgd2l0aCBhCisgICAgICAgIGNvbnRleHQg
bWVudS4KKworICAgICAgICAqIHNyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpzZWxlY3RNaXNzcGVsbGVkV29yZCk6CisKIDIwMTAtMDEtMDcgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBObyByZXZpZXcsIHJvbGxpbmcgb3V0
IHI1Mjg0Ny4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGll
bnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNw
cAppbmRleCBmMjM5MTllLi5jODY2ZjUwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250
ZXh0TWVudUNsaWVudEltcGwuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHN0YXRpYyBib29sIGlzQVNp
bmdsZVdvcmQoY29uc3QgU3RyaW5nJiB0ZXh0KQogLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGdldCBt
aXNzcGVsbGVkIHdvcmQgb24gd2hpY2ggY29udGV4dCBtZW51CiAvLyBpcyB0byBiZSBldm9sa2Vk
LiBUaGlzIGZ1bmN0aW9uIGFsc28gc2V0cyB0aGUgd29yZCBvbiB3aGljaCBjb250ZXh0IG1lbnUK
IC8vIGhhcyBiZWVuIGV2b2tlZCB0byBiZSB0aGUgc2VsZWN0ZWQgd29yZCwgYXMgcmVxdWlyZWQu
IFRoaXMgZnVuY3Rpb24gY2hhbmdlcwotLy8gdGhlIHNlbGVjdGlvbiBvbmx5IHdoZW4gdGhlcmUg
d2VyZSBubyBzZWxlY3RlZCBjaGFyYWN0ZXJzLgorLy8gdGhlIHNlbGVjdGlvbiBvbmx5IHdoZW4g
dGhlcmUgd2VyZSBubyBzZWxlY3RlZCBjaGFyYWN0ZXJzIG9uIE9TIFguCiBzdGF0aWMgU3RyaW5n
IHNlbGVjdE1pc3NwZWxsZWRXb3JkKGNvbnN0IENvbnRleHRNZW51KiBkZWZhdWx0TWVudSwgRnJh
bWUqIHNlbGVjdGVkRnJhbWUpCiB7CiAgICAgLy8gRmlyc3Qgc2VsZWN0IGZyb20gc2VsZWN0ZWRU
ZXh0IHRvIGNoZWNrIGZvciBtdWx0aXBsZSB3b3JkIHNlbGVjdGlvbi4KQEAgLTEwMiw3ICsxMDIs
NyBAQCBzdGF0aWMgU3RyaW5nIHNlbGVjdE1pc3NwZWxsZWRXb3JkKGNvbnN0IENvbnRleHRNZW51
KiBkZWZhdWx0TWVudSwgRnJhbWUqIHNlbGVjdAogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogICAgICAgICByZXR1cm4gbWlzc3BlbGxlZFdvcmQ7CiAgICAgfQotCisjaWYgT1MoREFSV0lO
KQogICAgIC8vIFNlbGVjdGlvbiBpcyBlbXB0eSwgc28gY2hhbmdlIHRoZSBzZWxlY3Rpb24gdG8g
dGhlIHdvcmQgdW5kZXIgdGhlIGN1cnNvci4KICAgICBIaXRUZXN0UmVzdWx0IGhpdFRlc3RSZXN1
bHQgPSBzZWxlY3RlZEZyYW1lLT5ldmVudEhhbmRsZXIoKS0+CiAgICAgICAgIGhpdFRlc3RSZXN1
bHRBdFBvaW50KGRlZmF1bHRNZW51LT5oaXRUZXN0UmVzdWx0KCkucG9pbnQoKSwgdHJ1ZSk7CkBA
IC0xMzAsNyArMTMwLDcgQEAgc3RhdGljIFN0cmluZyBzZWxlY3RNaXNzcGVsbGVkV29yZChjb25z
dCBDb250ZXh0TWVudSogZGVmYXVsdE1lbnUsIEZyYW1lKiBzZWxlY3QKICAgICAgICAgc2VsZWN0
aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MpOwogICAgICAgICBzZWxlY3RlZEZyYW1lLT5zZWxl
Y3Rpb24oKS0+c2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7CiAgICAgfQotCisjZW5kaWYKICAgICBy
ZXR1cm4gbWlzc3BlbGxlZFdvcmQ7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46551</attachid>
            <date>2010-01-14 02:28:12 -0800</date>
            <delta_ts>2010-01-14 02:32:17 -0800</delta_ts>
            <desc>Proposed patch (rev.2)</desc>
            <filename>bug-33364-20100114192810.patch</filename>
            <type>text/plain</type>
            <size>6520</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDU0ZDA3ZTAuLjYzYzA3OTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI4IEBACisyMDEwLTAxLTE0ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1d
IFNob3VsZCBub3Qgc2VsZWN0IGEgd29yZCBvbiByaWdodC1jbGljay4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMzY0CisKKyAgICAgICAgRm9yIG5v
bi1NYWMgcGxhdGZvcm1zLCBkbyBub3Qgc2VsZWN0IGEgd29yZCBhcm91bmQgdGhlIGN1cnNvciB3
aGVuCisgICAgICAgIGEgY29udGV4dCBtZW51IGlzIG9wZW5pbmcuIFRoaXMgYmVoYXZpb3IgaXMg
bm90IGNvbW1vbiBpbiBub24tTWFjCisgICAgICAgIHBsYXRmb3JtcywgYW5kIGl0IHByZXZlbnRz
IHBhc3Rpbmcgd2l0aCBhIGNvbnRleHQgbWVudS4KKworICAgICAgICBJbiBvcmRlciB0aGF0IHRo
ZSBzcGVsbCBjaGVja2VyIHdvcmtzIHdpdGhvdXQgdGhlIHNlbGVjdGlvbiwgd2UKKyAgICAgICAg
aW50cm9kdWNlIFdlYkZyYW1lOjpyZXBsYWNlV29yZCgpLiBJdCByZXBsYWNlcyBhIHdvcmQgYXJv
dW5kIHRoZQorICAgICAgICBjYXJldCBpZiB0aGVyZSBpcyBubyByYW5nZSBzZWxlY3Rpb24uCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDogQWRkIHB1cmUgcmVwbGFjZVdvcmQoKSBkZWNs
YXJhdGlvbi4KKyAgICAgICAgKiBzcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6c2VsZWN0TWlzc3BlbGxlZFdvcmQpOiBNb3ZlIHdvcmQtc2VsZWN0aW9uIGNv
ZGUgdG8KKyAgICAgICAgV2ViRnJhbWVJbXBsOjpzZWxlY3RXb3JkQXJvdW5kUG9zaXRpb24oKSwg
YW5kIGNsZWFyIHRoZSBzZWxlY3Rpb24KKyAgICAgICAgb24gbm9uLU1hYy4KKyAgICAgICAgKiBz
cmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpzZWxl
Y3RXb3JkQXJvdW5kUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnJl
cGxhY2VXb3JkKToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6IEFkZCByZXBsYWNlV29y
ZCgpIGRlY2xhcmF0aW9uLgorCiAyMDEwLTAxLTEzICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0
dEBhcHBsZS5jb20+CiAKICAgICAgICAgTVNBQTogc2VsZWN0ZWQsIHNlbGVjdGFibGUsIGV4dGVu
ZGVkIHNlbGVjdGFibGUsIGFuZCBtdWx0aXBsZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJGcmFtZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCmlu
ZGV4IDQxOTdjMjMuLjNlNTIxYzIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRnJhbWUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKQEAgLTMy
Nyw2ICszMjcsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBSZXBsYWNlcyB0aGUgc2VsZWN0aW9uIHdp
dGggdGhlIGdpdmVuIHRleHQuCiAgICAgdmlydHVhbCB2b2lkIHJlcGxhY2VTZWxlY3Rpb24oY29u
c3QgV2ViU3RyaW5nJiB0ZXh0KSA9IDA7CisgICAgLy8gUmVwbGFjZXMgdGhlIHNlbGVjdGlvbiB3
aXRoIHRoZSBnaXZlbiB0ZXh0IG9yIHJlcGxhY2VzIGEgd29yZCBhcm91bmQgdGhlCisgICAgLy8g
Y2FyZXQgaWYgdGhlcmUgaXMgbm8gc2VsZWN0aW9uLgorICAgIHZpcnR1YWwgdm9pZCByZXBsYWNl
V29yZChjb25zdCBXZWJTdHJpbmcmIHRleHQpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNl
cnRUZXh0KGNvbnN0IFdlYlN0cmluZyYgdGV4dCkgPSAwOwogCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAKaW5kZXggZjIzOTE5ZS4uNzBlZDQxYyAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcApAQCAtODks
NyArODksNyBAQCBzdGF0aWMgYm9vbCBpc0FTaW5nbGVXb3JkKGNvbnN0IFN0cmluZyYgdGV4dCkK
IC8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgbWlzc3BlbGxlZCB3b3JkIG9uIHdoaWNoIGNvbnRl
eHQgbWVudQogLy8gaXMgdG8gYmUgZXZvbGtlZC4gVGhpcyBmdW5jdGlvbiBhbHNvIHNldHMgdGhl
IHdvcmQgb24gd2hpY2ggY29udGV4dCBtZW51CiAvLyBoYXMgYmVlbiBldm9rZWQgdG8gYmUgdGhl
IHNlbGVjdGVkIHdvcmQsIGFzIHJlcXVpcmVkLiBUaGlzIGZ1bmN0aW9uIGNoYW5nZXMKLS8vIHRo
ZSBzZWxlY3Rpb24gb25seSB3aGVuIHRoZXJlIHdlcmUgbm8gc2VsZWN0ZWQgY2hhcmFjdGVycy4K
Ky8vIHRoZSBzZWxlY3Rpb24gb25seSB3aGVuIHRoZXJlIHdlcmUgbm8gc2VsZWN0ZWQgY2hhcmFj
dGVycyBvbiBPUyBYLgogc3RhdGljIFN0cmluZyBzZWxlY3RNaXNzcGVsbGVkV29yZChjb25zdCBD
b250ZXh0TWVudSogZGVmYXVsdE1lbnUsIEZyYW1lKiBzZWxlY3RlZEZyYW1lKQogewogICAgIC8v
IEZpcnN0IHNlbGVjdCBmcm9tIHNlbGVjdGVkVGV4dCB0byBjaGVjayBmb3IgbXVsdGlwbGUgd29y
ZCBzZWxlY3Rpb24uCkBAIC0xMTAsMjcgKzExMCwyMSBAQCBzdGF0aWMgU3RyaW5nIHNlbGVjdE1p
c3NwZWxsZWRXb3JkKGNvbnN0IENvbnRleHRNZW51KiBkZWZhdWx0TWVudSwgRnJhbWUqIHNlbGVj
dAogICAgIFZpc2libGVQb3NpdGlvbiBwb3MoaW5uZXJOb2RlLT5yZW5kZXJlcigpLT5wb3NpdGlv
bkZvclBvaW50KAogICAgICAgICBoaXRUZXN0UmVzdWx0LmxvY2FsUG9pbnQoKSkpOwogCi0gICAg
VmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb247Ci0gICAgaWYgKHBvcy5pc05vdE51bGwoKSkgewot
ICAgICAgICBzZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvcyk7Ci0gICAgICAgIHNlbGVj
dGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgfQotCi0g
ICAgaWYgKHNlbGVjdGlvbi5pc1JhbmdlKCkpCi0gICAgICAgIHNlbGVjdGVkRnJhbWUtPnNldFNl
bGVjdGlvbkdyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0KLSAgICBpZiAoc2VsZWN0ZWRG
cmFtZS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpCi0gICAgICAgIHNlbGVjdGVk
RnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24oc2VsZWN0aW9uKTsKKyAgICBpZiAocG9z
LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gbWlzc3BlbGxlZFdvcmQ7IC8vIEl0IGlzIGVtcHR5
LgogCisgICAgV2ViRnJhbWVJbXBsOjpzZWxlY3RXb3JkQXJvdW5kUG9zaXRpb24oc2VsZWN0ZWRG
cmFtZSwgcG9zKTsKICAgICBtaXNzcGVsbGVkV29yZCA9IHNlbGVjdGVkRnJhbWUtPnNlbGVjdGVk
VGV4dCgpLnN0cmlwV2hpdGVTcGFjZSgpOwogCisjaWYgT1MoREFSV0lOKQogICAgIC8vIElmIG1p
c3NwZWxsZWQgd29yZCBpcyBzdGlsbCBlbXB0eSwgdGhlbiB0aGF0IHBvcnRpb24gc2hvdWxkIG5v
dCBiZQogICAgIC8vIHNlbGVjdGVkLiBTZXQgdGhlIHNlbGVjdGlvbiB0byB0aGF0IHBvc2l0aW9u
IG9ubHksIGFuZCBkbyBub3QgZXhwYW5kLgotICAgIGlmIChtaXNzcGVsbGVkV29yZC5pc0VtcHR5
KCkpIHsKLSAgICAgICAgc2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MpOwotICAgICAg
ICBzZWxlY3RlZEZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7Ci0g
ICAgfQotCisgICAgaWYgKG1pc3NwZWxsZWRXb3JkLmlzRW1wdHkoKSkKKyAgICAgICAgc2VsZWN0
ZWRGcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcykp
OworI2Vsc2UKKyAgICAvLyBPbiBub24tTWFjLCByaWdodC1jbGljayBzaG91bGQgbm90IG1ha2Ug
YSByYW5nZSBzZWxlY3Rpb24gaW4gYW55IGNhc2UuCisgICAgc2VsZWN0ZWRGcmFtZS0+c2VsZWN0
aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcykpOworI2VuZGlmCiAgICAg
cmV0dXJuIG1pc3NwZWxsZWRXb3JkOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKaW5kZXggMjkzZDdlZS4uMGJiMTQyNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmNwcApAQCAtOTI3LDYgKzkyNywzMiBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6cmVwbGFjZVNlbGVj
dGlvbihjb25zdCBXZWJTdHJpbmcmIHRleHQpCiAgICAgICAgIGZyYW1lKCktPmRvY3VtZW50KCks
IGZyYWdtZW50LmdldCgpLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSkpOwogfQogCit2b2lkIFdlYkZyYW1l
SW1wbDo6c2VsZWN0V29yZEFyb3VuZFBvc2l0aW9uKEZyYW1lKiBmcmFtZSwgVmlzaWJsZVBvc2l0
aW9uIHBvcykKK3sKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbihwb3MpOworICAgIHNl
bGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7CisKKyAgICBp
ZiAoc2VsZWN0aW9uLmlzUmFuZ2UoKSkKKyAgICAgICAgZnJhbWUtPnNldFNlbGVjdGlvbkdyYW51
bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7CisKKyAgICBpZiAoZnJhbWUtPnNob3VsZENoYW5nZVNl
bGVjdGlvbihzZWxlY3Rpb24pKQorICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVj
dGlvbihzZWxlY3Rpb24pOworfQorCit2b2lkIFdlYkZyYW1lSW1wbDo6cmVwbGFjZVdvcmQoY29u
c3QgV2ViU3RyaW5nJiB0ZXh0KQoreworICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIgPSBmcmFtZSgpLT5zZWxlY3Rpb24oKTsKKyAgICAvLyBTaG91bGQgaGF2ZSBhIGNhcmV0IG9y
IGEgcmFuZ2VkIHNlbGVjdGlvbiBiZWNhdXNlIHRoZSBjb3JyZWN0ZWQgd29yZCB3YXMKKyAgICAv
LyBiYXNlZCBvbiB0aGVtLiBTZWUgc2VsZWN0TWlzc3BlbGxlZFdvcmQoKSBpbiBDb250ZXh0TWVu
dUNsaWVudEltcGwuY3BwLgorICAgIEFTU0VSVCghY29udHJvbGxlci0+aXNOb25lKCkpOworICAg
IGlmIChjb250cm9sbGVyLT5pc05vbmUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghY29u
dHJvbGxlci0+aXNSYW5nZSgpKSB7CisgICAgICAgIHNlbGVjdFdvcmRBcm91bmRQb3NpdGlvbihm
cmFtZSgpLCBjb250cm9sbGVyLT5zZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQoKSk7CisgICAgfQor
ICAgIHJlcGxhY2VTZWxlY3Rpb24odGV4dCk7Cit9CisKIHZvaWQgV2ViRnJhbWVJbXBsOjppbnNl
cnRUZXh0KGNvbnN0IFdlYlN0cmluZyYgdGV4dCkKIHsKICAgICBmcmFtZSgpLT5lZGl0b3IoKS0+
aW5zZXJ0VGV4dCh0ZXh0LCAwKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCmluZGV4IGJh
OGQyNzkuLmE3NWIwYjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaApAQCAtMTI3LDYg
KzEyNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9jZXNzaW5nVXNlckdlc3R1
cmUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFN1cHByZXNzT3BlbmVySW5OZXdGcmFt
ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCByZXBsYWNlU2VsZWN0aW9uKGNvbnN0IFdlYlN0
cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCByZXBsYWNlV29yZChjb25zdCBXZWJTdHJpbmcmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0VGV4dChjb25zdCBXZWJTdHJpbmcmKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TWFya2VkVGV4dChjb25zdCBXZWJTdHJpbmcmLCB1bnNpZ25lZCBsb2NhdGlv
biwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgdW5tYXJrVGV4dCgpOwpAQCAt
MjE5LDYgKzIyMCw4IEBAIHB1YmxpYzoKICAgICBXZWJGcmFtZUNsaWVudCogY2xpZW50KCkgY29u
c3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KICAgICB2b2lkIGRyb3BDbGllbnQoKSB7IG1fY2xpZW50
ID0gMDsgfQogCisgICAgc3RhdGljIHZvaWQgc2VsZWN0V29yZEFyb3VuZFBvc2l0aW9uKFdlYkNv
cmU6OkZyYW1lKiwgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKTsKKwogcHJpdmF0ZToKICAgICBj
bGFzcyBEZWZlcnJlZFNjb3BlU3RyaW5nTWF0Y2hlczsKICAgICBmcmllbmQgY2xhc3MgRGVmZXJy
ZWRTY29wZVN0cmluZ01hdGNoZXM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46552</attachid>
            <date>2010-01-14 02:32:23 -0800</date>
            <delta_ts>2010-01-15 00:55:51 -0800</delta_ts>
            <desc>Proposed patch (rev.3)</desc>
            <filename>bug-33364-20100114193222.patch</filename>
            <type>text/plain</type>
            <size>6511</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDU0ZDA3ZTAuLjYzYzA3OTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI4IEBACisyMDEwLTAxLTE0ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1d
IFNob3VsZCBub3Qgc2VsZWN0IGEgd29yZCBvbiByaWdodC1jbGljay4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMzY0CisKKyAgICAgICAgRm9yIG5v
bi1NYWMgcGxhdGZvcm1zLCBkbyBub3Qgc2VsZWN0IGEgd29yZCBhcm91bmQgdGhlIGN1cnNvciB3
aGVuCisgICAgICAgIGEgY29udGV4dCBtZW51IGlzIG9wZW5pbmcuIFRoaXMgYmVoYXZpb3IgaXMg
bm90IGNvbW1vbiBpbiBub24tTWFjCisgICAgICAgIHBsYXRmb3JtcywgYW5kIGl0IHByZXZlbnRz
IHBhc3Rpbmcgd2l0aCBhIGNvbnRleHQgbWVudS4KKworICAgICAgICBJbiBvcmRlciB0aGF0IHRo
ZSBzcGVsbCBjaGVja2VyIHdvcmtzIHdpdGhvdXQgdGhlIHNlbGVjdGlvbiwgd2UKKyAgICAgICAg
aW50cm9kdWNlIFdlYkZyYW1lOjpyZXBsYWNlV29yZCgpLiBJdCByZXBsYWNlcyBhIHdvcmQgYXJv
dW5kIHRoZQorICAgICAgICBjYXJldCBpZiB0aGVyZSBpcyBubyByYW5nZSBzZWxlY3Rpb24uCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDogQWRkIHB1cmUgcmVwbGFjZVdvcmQoKSBkZWNs
YXJhdGlvbi4KKyAgICAgICAgKiBzcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6c2VsZWN0TWlzc3BlbGxlZFdvcmQpOiBNb3ZlIHdvcmQtc2VsZWN0aW9uIGNv
ZGUgdG8KKyAgICAgICAgV2ViRnJhbWVJbXBsOjpzZWxlY3RXb3JkQXJvdW5kUG9zaXRpb24oKSwg
YW5kIGNsZWFyIHRoZSBzZWxlY3Rpb24KKyAgICAgICAgb24gbm9uLU1hYy4KKyAgICAgICAgKiBz
cmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpzZWxl
Y3RXb3JkQXJvdW5kUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnJl
cGxhY2VXb3JkKToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6IEFkZCByZXBsYWNlV29y
ZCgpIGRlY2xhcmF0aW9uLgorCiAyMDEwLTAxLTEzICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0
dEBhcHBsZS5jb20+CiAKICAgICAgICAgTVNBQTogc2VsZWN0ZWQsIHNlbGVjdGFibGUsIGV4dGVu
ZGVkIHNlbGVjdGFibGUsIGFuZCBtdWx0aXBsZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJGcmFtZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCmlu
ZGV4IDQxOTdjMjMuLjNlNTIxYzIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRnJhbWUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKQEAgLTMy
Nyw2ICszMjcsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBSZXBsYWNlcyB0aGUgc2VsZWN0aW9uIHdp
dGggdGhlIGdpdmVuIHRleHQuCiAgICAgdmlydHVhbCB2b2lkIHJlcGxhY2VTZWxlY3Rpb24oY29u
c3QgV2ViU3RyaW5nJiB0ZXh0KSA9IDA7CisgICAgLy8gUmVwbGFjZXMgdGhlIHNlbGVjdGlvbiB3
aXRoIHRoZSBnaXZlbiB0ZXh0IG9yIHJlcGxhY2VzIGEgd29yZCBhcm91bmQgdGhlCisgICAgLy8g
Y2FyZXQgaWYgdGhlcmUgaXMgbm8gc2VsZWN0aW9uLgorICAgIHZpcnR1YWwgdm9pZCByZXBsYWNl
V29yZChjb25zdCBXZWJTdHJpbmcmIHRleHQpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNl
cnRUZXh0KGNvbnN0IFdlYlN0cmluZyYgdGV4dCkgPSAwOwogCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAKaW5kZXggZjIzOTE5ZS4uNzBlZDQxYyAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcApAQCAtODks
NyArODksNyBAQCBzdGF0aWMgYm9vbCBpc0FTaW5nbGVXb3JkKGNvbnN0IFN0cmluZyYgdGV4dCkK
IC8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgbWlzc3BlbGxlZCB3b3JkIG9uIHdoaWNoIGNvbnRl
eHQgbWVudQogLy8gaXMgdG8gYmUgZXZvbGtlZC4gVGhpcyBmdW5jdGlvbiBhbHNvIHNldHMgdGhl
IHdvcmQgb24gd2hpY2ggY29udGV4dCBtZW51CiAvLyBoYXMgYmVlbiBldm9rZWQgdG8gYmUgdGhl
IHNlbGVjdGVkIHdvcmQsIGFzIHJlcXVpcmVkLiBUaGlzIGZ1bmN0aW9uIGNoYW5nZXMKLS8vIHRo
ZSBzZWxlY3Rpb24gb25seSB3aGVuIHRoZXJlIHdlcmUgbm8gc2VsZWN0ZWQgY2hhcmFjdGVycy4K
Ky8vIHRoZSBzZWxlY3Rpb24gb25seSB3aGVuIHRoZXJlIHdlcmUgbm8gc2VsZWN0ZWQgY2hhcmFj
dGVycyBvbiBPUyBYLgogc3RhdGljIFN0cmluZyBzZWxlY3RNaXNzcGVsbGVkV29yZChjb25zdCBD
b250ZXh0TWVudSogZGVmYXVsdE1lbnUsIEZyYW1lKiBzZWxlY3RlZEZyYW1lKQogewogICAgIC8v
IEZpcnN0IHNlbGVjdCBmcm9tIHNlbGVjdGVkVGV4dCB0byBjaGVjayBmb3IgbXVsdGlwbGUgd29y
ZCBzZWxlY3Rpb24uCkBAIC0xMTAsMjcgKzExMCwyMSBAQCBzdGF0aWMgU3RyaW5nIHNlbGVjdE1p
c3NwZWxsZWRXb3JkKGNvbnN0IENvbnRleHRNZW51KiBkZWZhdWx0TWVudSwgRnJhbWUqIHNlbGVj
dAogICAgIFZpc2libGVQb3NpdGlvbiBwb3MoaW5uZXJOb2RlLT5yZW5kZXJlcigpLT5wb3NpdGlv
bkZvclBvaW50KAogICAgICAgICBoaXRUZXN0UmVzdWx0LmxvY2FsUG9pbnQoKSkpOwogCi0gICAg
VmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb247Ci0gICAgaWYgKHBvcy5pc05vdE51bGwoKSkgewot
ICAgICAgICBzZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvcyk7Ci0gICAgICAgIHNlbGVj
dGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgfQotCi0g
ICAgaWYgKHNlbGVjdGlvbi5pc1JhbmdlKCkpCi0gICAgICAgIHNlbGVjdGVkRnJhbWUtPnNldFNl
bGVjdGlvbkdyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0KLSAgICBpZiAoc2VsZWN0ZWRG
cmFtZS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpCi0gICAgICAgIHNlbGVjdGVk
RnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24oc2VsZWN0aW9uKTsKKyAgICBpZiAocG9z
LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gbWlzc3BlbGxlZFdvcmQ7IC8vIEl0IGlzIGVtcHR5
LgogCisgICAgV2ViRnJhbWVJbXBsOjpzZWxlY3RXb3JkQXJvdW5kUG9zaXRpb24oc2VsZWN0ZWRG
cmFtZSwgcG9zKTsKICAgICBtaXNzcGVsbGVkV29yZCA9IHNlbGVjdGVkRnJhbWUtPnNlbGVjdGVk
VGV4dCgpLnN0cmlwV2hpdGVTcGFjZSgpOwogCisjaWYgT1MoREFSV0lOKQogICAgIC8vIElmIG1p
c3NwZWxsZWQgd29yZCBpcyBzdGlsbCBlbXB0eSwgdGhlbiB0aGF0IHBvcnRpb24gc2hvdWxkIG5v
dCBiZQogICAgIC8vIHNlbGVjdGVkLiBTZXQgdGhlIHNlbGVjdGlvbiB0byB0aGF0IHBvc2l0aW9u
IG9ubHksIGFuZCBkbyBub3QgZXhwYW5kLgotICAgIGlmIChtaXNzcGVsbGVkV29yZC5pc0VtcHR5
KCkpIHsKLSAgICAgICAgc2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MpOwotICAgICAg
ICBzZWxlY3RlZEZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7Ci0g
ICAgfQotCisgICAgaWYgKG1pc3NwZWxsZWRXb3JkLmlzRW1wdHkoKSkKKyAgICAgICAgc2VsZWN0
ZWRGcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcykp
OworI2Vsc2UKKyAgICAvLyBPbiBub24tTWFjLCByaWdodC1jbGljayBzaG91bGQgbm90IG1ha2Ug
YSByYW5nZSBzZWxlY3Rpb24gaW4gYW55IGNhc2UuCisgICAgc2VsZWN0ZWRGcmFtZS0+c2VsZWN0
aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcykpOworI2VuZGlmCiAgICAg
cmV0dXJuIG1pc3NwZWxsZWRXb3JkOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKaW5kZXggMjkzZDdlZS4uNzU5YjYyZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmNwcApAQCAtOTI3LDYgKzkyNywzMSBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6cmVwbGFjZVNlbGVj
dGlvbihjb25zdCBXZWJTdHJpbmcmIHRleHQpCiAgICAgICAgIGZyYW1lKCktPmRvY3VtZW50KCks
IGZyYWdtZW50LmdldCgpLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSkpOwogfQogCit2b2lkIFdlYkZyYW1l
SW1wbDo6c2VsZWN0V29yZEFyb3VuZFBvc2l0aW9uKEZyYW1lKiBmcmFtZSwgVmlzaWJsZVBvc2l0
aW9uIHBvcykKK3sKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbihwb3MpOworICAgIHNl
bGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7CisKKyAgICBp
ZiAoc2VsZWN0aW9uLmlzUmFuZ2UoKSkKKyAgICAgICAgZnJhbWUtPnNldFNlbGVjdGlvbkdyYW51
bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7CisKKyAgICBpZiAoZnJhbWUtPnNob3VsZENoYW5nZVNl
bGVjdGlvbihzZWxlY3Rpb24pKQorICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVj
dGlvbihzZWxlY3Rpb24pOworfQorCit2b2lkIFdlYkZyYW1lSW1wbDo6cmVwbGFjZVdvcmQoY29u
c3QgV2ViU3RyaW5nJiB0ZXh0KQoreworICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIgPSBmcmFtZSgpLT5zZWxlY3Rpb24oKTsKKyAgICAvLyBTaG91bGQgaGF2ZSBhIGNhcmV0IG9y
IGEgcmFuZ2VkIHNlbGVjdGlvbiBiZWNhdXNlIHRoZSBjb3JyZWN0ZWQgd29yZCB3YXMKKyAgICAv
LyBiYXNlZCBvbiB0aGVtLiBTZWUgc2VsZWN0TWlzc3BlbGxlZFdvcmQoKSBpbiBDb250ZXh0TWVu
dUNsaWVudEltcGwuY3BwLgorICAgIEFTU0VSVCghY29udHJvbGxlci0+aXNOb25lKCkpOworICAg
IGlmIChjb250cm9sbGVyLT5pc05vbmUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghY29u
dHJvbGxlci0+aXNSYW5nZSgpKQorICAgICAgICBzZWxlY3RXb3JkQXJvdW5kUG9zaXRpb24oZnJh
bWUoKSwgY29udHJvbGxlci0+c2VsZWN0aW9uKCkudmlzaWJsZVN0YXJ0KCkpOworICAgIHJlcGxh
Y2VTZWxlY3Rpb24odGV4dCk7Cit9CisKIHZvaWQgV2ViRnJhbWVJbXBsOjppbnNlcnRUZXh0KGNv
bnN0IFdlYlN0cmluZyYgdGV4dCkKIHsKICAgICBmcmFtZSgpLT5lZGl0b3IoKS0+aW5zZXJ0VGV4
dCh0ZXh0LCAwKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCmluZGV4IGJhOGQyNzkuLmE3
NWIwYjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaApAQCAtMTI3LDYgKzEyNyw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUoKSBjb25z
dDsKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFN1cHByZXNzT3BlbmVySW5OZXdGcmFtZSgpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCByZXBsYWNlU2VsZWN0aW9uKGNvbnN0IFdlYlN0cmluZyYpOwor
ICAgIHZpcnR1YWwgdm9pZCByZXBsYWNlV29yZChjb25zdCBXZWJTdHJpbmcmKTsKICAgICB2aXJ0
dWFsIHZvaWQgaW5zZXJ0VGV4dChjb25zdCBXZWJTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0TWFya2VkVGV4dChjb25zdCBXZWJTdHJpbmcmLCB1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWdu
ZWQgbGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgdW5tYXJrVGV4dCgpOwpAQCAtMjE5LDYgKzIy
MCw4IEBAIHB1YmxpYzoKICAgICBXZWJGcmFtZUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1
cm4gbV9jbGllbnQ7IH0KICAgICB2b2lkIGRyb3BDbGllbnQoKSB7IG1fY2xpZW50ID0gMDsgfQog
CisgICAgc3RhdGljIHZvaWQgc2VsZWN0V29yZEFyb3VuZFBvc2l0aW9uKFdlYkNvcmU6OkZyYW1l
KiwgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKTsKKwogcHJpdmF0ZToKICAgICBjbGFzcyBEZWZl
cnJlZFNjb3BlU3RyaW5nTWF0Y2hlczsKICAgICBmcmllbmQgY2xhc3MgRGVmZXJyZWRTY29wZVN0
cmluZ01hdGNoZXM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46650</attachid>
            <date>2010-01-15 00:55:58 -0800</date>
            <delta_ts>2010-02-01 22:56:45 -0800</delta_ts>
            <desc>Proposed patch (rev.4)</desc>
            <filename>bug-33364-20100115175556.patch</filename>
            <type>text/plain</type>
            <size>6384</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDU0ZDA3ZTAuLmZlZWUwNmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI4IEBACisyMDEwLTAxLTE0ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1d
IFNob3VsZCBub3Qgc2VsZWN0IGEgd29yZCBvbiByaWdodC1jbGljay4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMzY0CisKKyAgICAgICAgRm9yIG5v
bi1NYWMgcGxhdGZvcm1zLCBkbyBub3Qgc2VsZWN0IGEgd29yZCBhcm91bmQgdGhlIGNhcmV0IHdo
ZW4KKyAgICAgICAgYSBjb250ZXh0IG1lbnUgaXMgb3BlbmluZy4gVGhpcyBiZWhhdmlvciBpcyBu
b3QgY29tbW9uIGluIG5vbi1NYWMKKyAgICAgICAgcGxhdGZvcm1zLCBhbmQgaXQgcHJldmVudHMg
cGFzdGluZyB3aXRoIGEgY29udGV4dCBtZW51LgorCisgICAgICAgIEluIG9yZGVyIHRoYXQgdGhl
IHNwZWxsIGNoZWNrZXIgd29ya3Mgd2l0aG91dCB0aGUgc2VsZWN0aW9uLCB3ZQorICAgICAgICBp
bnRyb2R1Y2UgV2ViRnJhbWU6OnNlbGVjdFdvcmRBcm91bmRDYXJldCgpLiBXZSBjYW4gcmVwbGFj
ZSBhIHdvcmQKKyAgICAgICAgYXJvdW5kIHRoZSBjYXJldCB3aXRoIHNlbGVjdFdvcmRBcm91bmRD
YXJldCgpICsgcmVwbGFjZVNlbGVjdGlvbigpLgorCisgICAgICAgICogcHVibGljL1dlYkZyYW1l
Lmg6IEFkZCBwdXJlIHNlbGVjdFdvcmRBcm91bmRDYXJldCgpIGRlY2xhcmF0aW9uLgorICAgICAg
ICAqIHNyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpzZWxl
Y3RNaXNzcGVsbGVkV29yZCk6IE1vdmUgd29yZC1zZWxlY3Rpb24gY29kZSB0bworICAgICAgICBX
ZWJGcmFtZUltcGw6OnNlbGVjdFdvcmRBcm91bmRQb3NpdGlvbigpLCBhbmQgY2xlYXIgdGhlIHNl
bGVjdGlvbgorICAgICAgICBvbiBub24tTWFjLgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnNlbGVjdFdvcmRBcm91bmRQb3Np
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6c2VsZWN0V29yZEFyb3VuZENh
cmV0KToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6IEFkZCBzZWxlY3RXb3JkQXJvdW5k
Q2FyZXQoKSBkZWNsYXJhdGlvbi4KKwogMjAxMC0wMS0xMyAgSm9uIEhvbmV5Y3V0dCAgPGpob25l
eWN1dHRAYXBwbGUuY29tPgogCiAgICAgICAgIE1TQUE6IHNlbGVjdGVkLCBzZWxlY3RhYmxlLCBl
eHRlbmRlZCBzZWxlY3RhYmxlLCBhbmQgbXVsdGlwbGUKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRnJhbWUuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUu
aAppbmRleCA0MTk3YzIzLi41NzVkYWU2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkZyYW1lLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCkBA
IC0zNTcsNiArMzU3LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBzZWxlY3Rp
b25Bc1RleHQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgc2VsZWN0aW9uQXNN
YXJrdXAoKSBjb25zdCA9IDA7CiAKKyAgICAvLyBFeHBhbmRzIHRoZSBzZWxlY3Rpb24gdG8gYSB3
b3JkIGFyb3VuZCB0aGUgY2FyZXQgYW5kIHJldHVybnMKKyAgICAvLyB0cnVlLiBEb2VzIG5vdGhp
bmcgYW5kIHJldHVybnMgZmFsc2UgaWYgdGhlcmUgaXMgbm8gY2FyZXQgb3IKKyAgICAvLyB0aGVy
ZSBpcyByYW5nZWQgc2VsZWN0aW9uLgorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RXb3JkQXJvdW5k
Q2FyZXQoKSA9IDA7CisKIAogICAgIC8vIFByaW50aW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAKaW5kZXggZjIzOTE5ZS4uNzBlZDQxYyAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3Bw
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcApAQCAt
ODksNyArODksNyBAQCBzdGF0aWMgYm9vbCBpc0FTaW5nbGVXb3JkKGNvbnN0IFN0cmluZyYgdGV4
dCkKIC8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgbWlzc3BlbGxlZCB3b3JkIG9uIHdoaWNoIGNv
bnRleHQgbWVudQogLy8gaXMgdG8gYmUgZXZvbGtlZC4gVGhpcyBmdW5jdGlvbiBhbHNvIHNldHMg
dGhlIHdvcmQgb24gd2hpY2ggY29udGV4dCBtZW51CiAvLyBoYXMgYmVlbiBldm9rZWQgdG8gYmUg
dGhlIHNlbGVjdGVkIHdvcmQsIGFzIHJlcXVpcmVkLiBUaGlzIGZ1bmN0aW9uIGNoYW5nZXMKLS8v
IHRoZSBzZWxlY3Rpb24gb25seSB3aGVuIHRoZXJlIHdlcmUgbm8gc2VsZWN0ZWQgY2hhcmFjdGVy
cy4KKy8vIHRoZSBzZWxlY3Rpb24gb25seSB3aGVuIHRoZXJlIHdlcmUgbm8gc2VsZWN0ZWQgY2hh
cmFjdGVycyBvbiBPUyBYLgogc3RhdGljIFN0cmluZyBzZWxlY3RNaXNzcGVsbGVkV29yZChjb25z
dCBDb250ZXh0TWVudSogZGVmYXVsdE1lbnUsIEZyYW1lKiBzZWxlY3RlZEZyYW1lKQogewogICAg
IC8vIEZpcnN0IHNlbGVjdCBmcm9tIHNlbGVjdGVkVGV4dCB0byBjaGVjayBmb3IgbXVsdGlwbGUg
d29yZCBzZWxlY3Rpb24uCkBAIC0xMTAsMjcgKzExMCwyMSBAQCBzdGF0aWMgU3RyaW5nIHNlbGVj
dE1pc3NwZWxsZWRXb3JkKGNvbnN0IENvbnRleHRNZW51KiBkZWZhdWx0TWVudSwgRnJhbWUqIHNl
bGVjdAogICAgIFZpc2libGVQb3NpdGlvbiBwb3MoaW5uZXJOb2RlLT5yZW5kZXJlcigpLT5wb3Np
dGlvbkZvclBvaW50KAogICAgICAgICBoaXRUZXN0UmVzdWx0LmxvY2FsUG9pbnQoKSkpOwogCi0g
ICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb247Ci0gICAgaWYgKHBvcy5pc05vdE51bGwoKSkg
ewotICAgICAgICBzZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvcyk7Ci0gICAgICAgIHNl
bGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgfQot
Ci0gICAgaWYgKHNlbGVjdGlvbi5pc1JhbmdlKCkpCi0gICAgICAgIHNlbGVjdGVkRnJhbWUtPnNl
dFNlbGVjdGlvbkdyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0KLSAgICBpZiAoc2VsZWN0
ZWRGcmFtZS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpCi0gICAgICAgIHNlbGVj
dGVkRnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24oc2VsZWN0aW9uKTsKKyAgICBpZiAo
cG9zLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gbWlzc3BlbGxlZFdvcmQ7IC8vIEl0IGlzIGVt
cHR5LgogCisgICAgV2ViRnJhbWVJbXBsOjpzZWxlY3RXb3JkQXJvdW5kUG9zaXRpb24oc2VsZWN0
ZWRGcmFtZSwgcG9zKTsKICAgICBtaXNzcGVsbGVkV29yZCA9IHNlbGVjdGVkRnJhbWUtPnNlbGVj
dGVkVGV4dCgpLnN0cmlwV2hpdGVTcGFjZSgpOwogCisjaWYgT1MoREFSV0lOKQogICAgIC8vIElm
IG1pc3NwZWxsZWQgd29yZCBpcyBzdGlsbCBlbXB0eSwgdGhlbiB0aGF0IHBvcnRpb24gc2hvdWxk
IG5vdCBiZQogICAgIC8vIHNlbGVjdGVkLiBTZXQgdGhlIHNlbGVjdGlvbiB0byB0aGF0IHBvc2l0
aW9uIG9ubHksIGFuZCBkbyBub3QgZXhwYW5kLgotICAgIGlmIChtaXNzcGVsbGVkV29yZC5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgc2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MpOwotICAg
ICAgICBzZWxlY3RlZEZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7
Ci0gICAgfQotCisgICAgaWYgKG1pc3NwZWxsZWRXb3JkLmlzRW1wdHkoKSkKKyAgICAgICAgc2Vs
ZWN0ZWRGcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBv
cykpOworI2Vsc2UKKyAgICAvLyBPbiBub24tTWFjLCByaWdodC1jbGljayBzaG91bGQgbm90IG1h
a2UgYSByYW5nZSBzZWxlY3Rpb24gaW4gYW55IGNhc2UuCisgICAgc2VsZWN0ZWRGcmFtZS0+c2Vs
ZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcykpOworI2VuZGlmCiAg
ICAgcmV0dXJuIG1pc3NwZWxsZWRXb3JkOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5jcHAKaW5kZXggMjkzZDdlZS4uNDk2ZmUwNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcApAQCAtMTA3OCw2ICsxMDc4LDI4IEBAIFdlYlN0cmluZyBXZWJGcmFtZUltcGw6OnNl
bGVjdGlvbkFzTWFya3VwKCkgY29uc3QKICAgICByZXR1cm4gY3JlYXRlTWFya3VwKHJhbmdlLmdl
dCgpLCAwKTsKIH0KIAordm9pZCBXZWJGcmFtZUltcGw6OnNlbGVjdFdvcmRBcm91bmRQb3NpdGlv
bihGcmFtZSogZnJhbWUsIFZpc2libGVQb3NpdGlvbiBwb3MpCit7CisgICAgVmlzaWJsZVNlbGVj
dGlvbiBzZWxlY3Rpb24ocG9zKTsKKyAgICBzZWxlY3Rpb24uZXhwYW5kVXNpbmdHcmFudWxhcml0
eShXb3JkR3JhbnVsYXJpdHkpOworCisgICAgaWYgKHNlbGVjdGlvbi5pc1JhbmdlKCkpCisgICAg
ICAgIGZyYW1lLT5zZXRTZWxlY3Rpb25HcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOworCisg
ICAgaWYgKGZyYW1lLT5zaG91bGRDaGFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkKKyAgICAgICAg
ZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24oc2VsZWN0aW9uKTsKK30KKworYm9vbCBX
ZWJGcmFtZUltcGw6OnNlbGVjdFdvcmRBcm91bmRDYXJldCgpCit7CisgICAgU2VsZWN0aW9uQ29u
dHJvbGxlciogY29udHJvbGxlciA9IGZyYW1lKCktPnNlbGVjdGlvbigpOworICAgIEFTU0VSVCgh
Y29udHJvbGxlci0+aXNOb25lKCkpOworICAgIGlmIChjb250cm9sbGVyLT5pc05vbmUoKSB8fCBj
b250cm9sbGVyLT5pc1JhbmdlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBzZWxlY3RX
b3JkQXJvdW5kUG9zaXRpb24oZnJhbWUoKSwgY29udHJvbGxlci0+c2VsZWN0aW9uKCkudmlzaWJs
ZVN0YXJ0KCkpOworICAgIHJldHVybiB0cnVlOworfQorCiBpbnQgV2ViRnJhbWVJbXBsOjpwcmlu
dEJlZ2luKGNvbnN0IFdlYlNpemUmIHBhZ2VTaXplKQogewogICAgIEFTU0VSVCghZnJhbWUoKS0+
ZG9jdW1lbnQoKS0+aXNGcmFtZVNldCgpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCmlu
ZGV4IGJhOGQyNzkuLmJlMTJkYmYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaApAQCAt
MTQxLDYgKzE0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlJhbmdlIHNlbGVjdGlvblJh
bmdlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgc2VsZWN0aW9uQXNUZXh0KCkgY29u
c3Q7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgc2VsZWN0aW9uQXNNYXJrdXAoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0V29yZEFyb3VuZENhcmV0KCk7CiAgICAgdmlydHVhbCBpbnQg
cHJpbnRCZWdpbihjb25zdCBXZWJTaXplJiBwYWdlU2l6ZSk7CiAgICAgdmlydHVhbCBmbG9hdCBw
cmludFBhZ2UoaW50IHBhZ2VUb1ByaW50LCBXZWJDYW52YXMqKTsKICAgICB2aXJ0dWFsIGZsb2F0
IGdldFByaW50UGFnZVNocmluayhpbnQgcGFnZSk7CkBAIC0yMTksNiArMjIwLDggQEAgcHVibGlj
OgogICAgIFdlYkZyYW1lQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsg
fQogICAgIHZvaWQgZHJvcENsaWVudCgpIHsgbV9jbGllbnQgPSAwOyB9CiAKKyAgICBzdGF0aWMg
dm9pZCBzZWxlY3RXb3JkQXJvdW5kUG9zaXRpb24oV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpW
aXNpYmxlUG9zaXRpb24pOworCiBwcml2YXRlOgogICAgIGNsYXNzIERlZmVycmVkU2NvcGVTdHJp
bmdNYXRjaGVzOwogICAgIGZyaWVuZCBjbGFzcyBEZWZlcnJlZFNjb3BlU3RyaW5nTWF0Y2hlczsK
</data>
<flag name="review"
          id="28951"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="28958"
          type_id="3"
          status="-"
          setter="tkent"
    />
          </attachment>
      

    </bug>

</bugzilla>