<?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>63929</bug_id>
          
          <creation_ts>2011-07-05 03:24:44 -0700</creation_ts>
          <short_desc>A &apos;change&apos; event is not triggered on a multiple file form when selected files are changed</short_desc>
          <delta_ts>2011-09-07 22:33:46 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>haraken</cc>
    
    <cc>Mike.Fellows</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>432190</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-05 03:24:44 -0700</bug_when>
    <thetext>Assume the following form:

&lt;input type=&quot;file&quot; name=&quot;file&quot; id=&quot;file&quot; multile=&quot;multiple&quot; onchange=&quot;alert(100)&quot; /&gt;

(1) Click &quot;Choose Files&quot;, select 1.jpg and 2.jpg, and click &quot;OK&quot;.
(2) The &apos;onchange&apos; event is triggered.
(3) Again, click &quot;Choose Files&quot;, select 1.jpg and 3.jpg, and click &quot;OK&quot;.

Expected behavior: The &apos;onchange&apos; event is triggered.
Actual behavior: Nothing happens.

Accurately, the &apos;onchage&apos; event seems to be triggered only if the first item of newly selected files is same as the first item of previously selected files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432191</commentid>
    <comment_count>1</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-05 03:31:48 -0700</bug_when>
    <thetext>http://code.google.com/p/chromium/issues/detail?id=86909</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432194</commentid>
    <comment_count>2</comment_count>
      <attachid>99694</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-05 03:59:35 -0700</bug_when>
    <thetext>Created attachment 99694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432219</commentid>
    <comment_count>3</comment_count>
      <attachid>99694</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-05 05:02:10 -0700</bug_when>
    <thetext>Comment on attachment 99694
Patch

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

&gt; LayoutTests/fast/forms/file-input-change-event.html:19
&gt; +    var single_file_input = document.getElementById(&quot;single_file&quot;);
&gt; +    var multiple_files_input = document.getElementById(&quot;multiple_files&quot;);

We don&apos;t have a formal JavaScript style guide, but we usually use rules similar to C++. So variable names and function names should be like singleFileInput.

&gt; Source/WebCore/ChangeLog:19
&gt; +        * html/HTMLFormControlElement.cpp:
&gt; +        (WebCore::HTMLTextFormControlElement::dispatchFileInputFormControlChangeEvent): Compares the previously selected files and the newly selected files
&gt; +        * html/HTMLFormControlElement.h:
&gt; +        (WebCore::HTMLTextFormControlElement::setPathsAsOfLastFormControlChangeEvent): Records the newly selected files

This approach is not acceptable.  We don&apos;t want to add type-specific data members to HTMLInputElement.
FileInputType::filesChosen() knows both of the previously-selected files (m_fileList) and newly-selected files. We can check the need to dispatch &apos;change&apos; in filesChosen().

&gt; Source/WebCore/html/HTMLFormControlElement.cpp:690
&gt; +    if (pathsChanged) {
&gt; +        HTMLElement::dispatchChangeEvent();
&gt; +        setPathsAsOfLastFormControlChangeEvent(paths);
&gt; +    }
&gt; +    setChangedSinceLastFormControlChangeEvent(false);

dispatchChangeEvent() invokes a JavaScript code, and it can delete &apos;this&apos; object.  So you can&apos;t access &apos;this&apos; after dispatchChangeEvent().
You can avoid such problem by the protector idiom.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432540</commentid>
    <comment_count>4</comment_count>
      <attachid>99774</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-05 18:45:13 -0700</bug_when>
    <thetext>Created attachment 99774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432541</commentid>
    <comment_count>5</comment_count>
      <attachid>99694</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-05 18:45:39 -0700</bug_when>
    <thetext>Comment on attachment 99694
Patch

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

&gt;&gt; LayoutTests/fast/forms/file-input-change-event.html:19
&gt;&gt; +    var multiple_files_input = document.getElementById(&quot;multiple_files&quot;);
&gt; 
&gt; We don&apos;t have a formal JavaScript style guide, but we usually use rules similar to C++. So variable names and function names should be like singleFileInput.

Done.

&gt;&gt; Source/WebCore/ChangeLog:19
&gt;&gt; +        (WebCore::HTMLTextFormControlElement::setPathsAsOfLastFormControlChangeEvent): Records the newly selected files
&gt; 
&gt; This approach is not acceptable.  We don&apos;t want to add type-specific data members to HTMLInputElement.
&gt; FileInputType::filesChosen() knows both of the previously-selected files (m_fileList) and newly-selected files. We can check the need to dispatch &apos;change&apos; in filesChosen().

Done.

&gt;&gt; Source/WebCore/html/HTMLFormControlElement.cpp:690
&gt;&gt; +    setChangedSinceLastFormControlChangeEvent(false);
&gt; 
&gt; dispatchChangeEvent() invokes a JavaScript code, and it can delete &apos;this&apos; object.  So you can&apos;t access &apos;this&apos; after dispatchChangeEvent().
&gt; You can avoid such problem by the protector idiom.

I see. Anyway, I removed this method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432554</commentid>
    <comment_count>6</comment_count>
      <attachid>99774</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-05 19:01:03 -0700</bug_when>
    <thetext>Comment on attachment 99774
Patch

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

&gt; LayoutTests/fast/forms/file-input-change-event.html:93
&gt; +function SingleFileSelected() {
&gt; +    onChangeCalled = true;
&gt; +}
&gt; +
&gt; +function MultipleFilesSelected() {
&gt; +    onChangeCalled = true;
&gt; +}
&gt; +
&gt; +function moveMouseToCenterOfElement(element) {

Inconsistent names.
SingleFileSelected -&gt; singleFileSelected
MultipleFileSelected -&gt; multipleFileSelected

&gt; Source/WebCore/html/FileInputType.cpp:310
&gt; +        // This call may cause destruction of this instance and thus must always be last in the function.
&gt; +        input-&gt;HTMLElement::dispatchChangeEvent();
&gt; +    }
&gt; +    input-&gt;setChangedSinceLastFormControlChangeEvent(false);
&gt;  }

The comment is lame. &quot;This call&quot; isn&apos;t on the last of the function.
In this case, you don&apos;t use &apos;this&apos; after the dispatchChangeEvent() call.  So it&apos;s safe about &apos;this&apos;.

However &apos;input&apos; might be deleted by dispatchChangeEvent().  You need to protect &apos;input&apos; by replacing:
 HTMLInputElement* input = element();
at the beginning of the function with
 RefPtr&lt;HTMLInputElement&gt; input = element();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432558</commentid>
    <comment_count>7</comment_count>
      <attachid>99779</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-05 19:12:53 -0700</bug_when>
    <thetext>Created attachment 99779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432560</commentid>
    <comment_count>8</comment_count>
      <attachid>99779</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-05 19:14:55 -0700</bug_when>
    <thetext>Comment on attachment 99779
Patch

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

&gt; Source/WebCore/html/FileInputType.cpp:307
&gt; +        // This call may cause destruction of |this| instance.
&gt; +        // |input| instance is safe since it is ref-counted.

We don&apos;t use the || notation in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432562</commentid>
    <comment_count>9</comment_count>
      <attachid>99781</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-05 19:17:57 -0700</bug_when>
    <thetext>Created attachment 99781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432564</commentid>
    <comment_count>10</comment_count>
      <attachid>99781</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-05 19:25:06 -0700</bug_when>
    <thetext>Comment on attachment 99781
Patch

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

&gt; LayoutTests/ChangeLog:8
&gt; +        the newly selected files, we trigger the &apos;onchange&apos; event.

nit: &apos;onchange&apos; is an attribute name. The event name is &apos;change&apos;.

&gt; LayoutTests/ChangeLog:11
&gt; +
&gt; +        Reviewed by Kent Tamura.
&gt; +

The recent ChangeLog format is:

&lt;summary&gt;
&lt;bug URL&gt;

&lt;Reviewd by&gt;

&lt;details&gt;

Also, don&apos;t fill this field while you&apos;re asking to review.

&gt; LayoutTests/fast/forms/file-input-change-event.html:15
&gt; +var onChangeCalled;

nit: onChange is an attribute name.
It should be handlerCalled, changeHandlerCalled, changeDispatched, etc.

&gt; Source/WebCore/ChangeLog:12
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=63929
&gt; +
&gt; +        Record previously selected files and then compare them with newly selected files.
&gt; +        If the previously selected files and their order are not equal to those of
&gt; +        the newly selected files, we trigger the &apos;change&apos; event.
&gt; +
&gt; +        Reviewed by Kent Tamura.
&gt; +
&gt; +        Test: fast/forms/file-input-change-event.html

Should be bug-URL - Reviewd by - Detail - Test: order.

&gt; Source/WebCore/html/FileInputType.cpp:286
&gt; +        for (unsigned i = 0; i &lt; paths.size(); i++) {

We prefer ++i for &apos;for&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432609</commentid>
    <comment_count>11</comment_count>
      <attachid>99787</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-05 21:12:56 -0700</bug_when>
    <thetext>Created attachment 99787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432616</commentid>
    <comment_count>12</comment_count>
      <attachid>99787</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-05 21:39:57 -0700</bug_when>
    <thetext>Comment on attachment 99787
Patch

ok
Thank you for fixing this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432642</commentid>
    <comment_count>13</comment_count>
      <attachid>99787</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-05 23:37:12 -0700</bug_when>
    <thetext>Comment on attachment 99787
Patch

Clearing flags on attachment: 99787

Committed r90438: &lt;http://trac.webkit.org/changeset/90438&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432643</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-05 23:37:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463892</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-09-07 22:33:46 -0700</bug_when>
    <thetext>*** Bug 66907 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99694</attachid>
            <date>2011-07-05 03:59:35 -0700</date>
            <delta_ts>2011-07-05 19:12:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63929-20110705195933.patch</filename>
            <type>text/plain</type>
            <size>12503</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAzNDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3NWVjMjY0OWRiZGQzYTM4ZDk0OWYy
Yjg1ZWEyZTczZTZhNjFlYTUwLi4wZjJmOTUyOWRmMTRmMzY1ZTg2OWE1ZjlmODQ0OTU5ODA2N2Qw
OWJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDctMDUgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBUcmlnZ2VyIGEgJ2NoYW5nZScgZXZlbnQgd2hl
bmV2ZXIgc2VsZWN0ZWQgZmlsZXMgYXJlIGNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTI5CisKKyAgICAgICAgUmVjb3JkIHByZXZpb3Vz
bHkgc2VsZWN0ZWQgZmlsZXMgYW5kIHRoZW4gY29tcGFyZSB0aGVtIHdpdGggbmV3bHkgc2VsZWN0
ZWQgZmlsZXMuCisgICAgICAgIElmIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZpbGVzIGFuZCB0
aGVpciBvcmRlciBhcmUgbm90IGVxdWFsIHRvIHRob3NlIG9mCisgICAgICAgIHRoZSBuZXdseSBz
ZWxlY3RlZCBmaWxlcywgd2UgdHJpZ2dlciB0aGUgJ29uY2hhbmdlJyBldmVudC4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZm9ybXMvZmls
ZS1pbnB1dC1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Zvcm1zL2ZpbGUtaW5wdXQtY2hhbmdlLWV2ZW50Lmh0bWw6IEFkZGVkLgorCiAyMDExLTA3LTAx
ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9maWxlLWlucHV0LWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2ZpbGUtaW5wdXQtY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ZDFjODA0MDYxYjliNTFhNThlOGY5YTZiOGQ1MDgzOGM5NDJmYzcwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlLWlucHV0LWNoYW5nZS1ldmVudC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0MCBAQAorIAorVGhpcyB0ZXN0cyB0aGUgY29uZGl0aW9uIHRoYXQg
dHJpZ2dlcnMgYSAnY2hhbmdlJyBldmVudCBvbiBmaWxlIGlucHV0IGZvcm1zLgorCitUZXN0IHRo
YXQgdGhlICdjaGFuZ2UnIGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIHNpbmdsZSBmaWxlIGZvcm0g
d2hlbiBhIHNlbGVjdGVkIGZpbGUgaXMgY2hhbmdlZDoKK1BBU1Mgc2luZ2xlX2ZpbGVfaW5wdXQu
dmFsdWUgaXMgIkM6XFxmYWtlcGF0aFxcZm9vLnR4dCIKK1BBU1Mgb25DaGFuZ2VDYWxsZWQgaXMg
dHJ1ZQorUEFTUyBzaW5nbGVfZmlsZV9pbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxiYXIu
dHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitQQVNTIHNpbmdsZV9maWxlX2lucHV0
LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGJhci50eHQiCitQQVNTIG9uQ2hhbmdlQ2FsbGVkIGlz
IGZhbHNlCitQQVNTIHNpbmdsZV9maWxlX2lucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGZv
by50eHQiCitQQVNTIG9uQ2hhbmdlQ2FsbGVkIGlzIHRydWUKK1Rlc3QgdGhhdCB0aGUgJ2NoYW5n
ZScgZXZlbnQgaXMgdHJpZ2dlcmVkIG9uIGEgbXVsdGlwbGUgZmlsZSBmb3JtIHdoZW4gYSBzZWxl
Y3RlZCBmaWxlIGlzIGNoYW5nZWQ6CitQQVNTIG11bHRpcGxlX2ZpbGVzX2lucHV0LnZhbHVlIGlz
ICJDOlxcZmFrZXBhdGhcXGZvby50eHQiCitQQVNTIG9uQ2hhbmdlQ2FsbGVkIGlzIHRydWUKK1BB
U1MgbXVsdGlwbGVfZmlsZXNfaW5wdXQudmFsdWUgaXMgIkM6XFxmYWtlcGF0aFxcYmFyLnR4dCIK
K1BBU1Mgb25DaGFuZ2VDYWxsZWQgaXMgdHJ1ZQorUEFTUyBtdWx0aXBsZV9maWxlc19pbnB1dC52
YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxiYXIudHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyBm
YWxzZQorUEFTUyBtdWx0aXBsZV9maWxlc19pbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxm
b28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitUZXN0IHRoYXQgdGhlICdjaGFu
Z2UnIGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIG11bHRpcGxlIGZpbGUgZm9ybSB3aGVuIHNlbGVj
dGVkIGZpbGVzIGFyZSBjaGFuZ2VkOgorUEFTUyBtdWx0aXBsZV9maWxlc19pbnB1dC52YWx1ZSBp
cyAiQzpcXGZha2VwYXRoXFxmb28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitQ
QVNTIG11bHRpcGxlX2ZpbGVzX2lucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGZvby50eHQi
CitQQVNTIG9uQ2hhbmdlQ2FsbGVkIGlzIHRydWUKK1BBU1MgbXVsdGlwbGVfZmlsZXNfaW5wdXQu
dmFsdWUgaXMgIkM6XFxmYWtlcGF0aFxcZm9vLnR4dCIKK1BBU1Mgb25DaGFuZ2VDYWxsZWQgaXMg
dHJ1ZQorUEFTUyBtdWx0aXBsZV9maWxlc19pbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxm
b28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlX2ZpbGVz
X2lucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGZvby50eHQiCitQQVNTIG9uQ2hhbmdlQ2Fs
bGVkIGlzIHRydWUKK1BBU1MgbXVsdGlwbGVfZmlsZXNfaW5wdXQudmFsdWUgaXMgIkM6XFxmYWtl
cGF0aFxcYmFyLnR4dCIKK1BBU1Mgb25DaGFuZ2VDYWxsZWQgaXMgdHJ1ZQorUEFTUyBtdWx0aXBs
ZV9maWxlc19pbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxiYXIudHh0IgorUEFTUyBvbkNo
YW5nZUNhbGxlZCBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS1p
bnB1dC1jaGFuZ2UtZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS1pbnB1
dC1jaGFuZ2UtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGI0MzNhYjEyMGY0OGNjNmYwOTM1MGRh
NjY5YzMxNmM1ZWMyOTZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9maWxlLWlucHV0LWNoYW5nZS1ldmVudC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlucHV0IHR5cGU9ImZp
bGUiIGlkPSJzaW5nbGVfZmlsZSIgbmFtZT0idXBmaWxlIiBvbmNoYW5nZT0iU2luZ2xlRmlsZVNl
bGVjdGVkKCkiIC8+Cis8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9Im11bHRpcGxlX2ZpbGVzIiBuYW1l
PSJ1cGZpbGVbXSIgbXVsdGlwbGU9Im11bHRpcGxlIiBvbmNoYW5nZT0iTXVsdGlwbGVGaWxlc1Nl
bGVjdGVkKCkiIC8+Cis8ZGl2IGlkPSJjb25zb2xlIj4KKzxwPgorVGhpcyB0ZXN0cyB0aGUgY29u
ZGl0aW9uIHRoYXQgdHJpZ2dlcnMgYSAnY2hhbmdlJyBldmVudCBvbiBmaWxlIGlucHV0IGZvcm1z
LgorPC9wPgorPC9kaXY+Cis8c2NyaXB0PgordmFyIG9uQ2hhbmdlQ2FsbGVkOworCitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgdmFyIHNpbmdsZV9maWxlX2lucHV0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpbmdsZV9maWxlIik7CisgICAgdmFyIG11bHRpcGxl
X2ZpbGVzX2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm11bHRpcGxlX2ZpbGVzIik7
CisKKyAgICBkZWJ1ZygiVGVzdCB0aGF0IHRoZSAnY2hhbmdlJyBldmVudCBpcyB0cmlnZ2VyZWQg
b24gYSBzaW5nbGUgZmlsZSBmb3JtIHdoZW4gYSBzZWxlY3RlZCBmaWxlIGlzIGNoYW5nZWQ6Iik7
CisgICAgZHJhZ0ZpbGVzT250b0lucHV0KHNpbmdsZV9maWxlX2lucHV0LCBbImZvby50eHQiXSk7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaW5nbGVfZmlsZV9pbnB1dC52YWx1ZSIsICJD
OlxcZmFrZXBhdGhcXGZvby50eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFuZ2VDYWxsZWQiLCAi
dHJ1ZSIpOworCisgICAgZHJhZ0ZpbGVzT250b0lucHV0KHNpbmdsZV9maWxlX2lucHV0LCBbImJh
ci50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaW5nbGVfZmlsZV9pbnB1dC52
YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGJhci50eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFuZ2VD
YWxsZWQiLCAidHJ1ZSIpOworCisgICAgZHJhZ0ZpbGVzT250b0lucHV0KHNpbmdsZV9maWxlX2lu
cHV0LCBbImJhci50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaW5nbGVfZmls
ZV9pbnB1dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGJhci50eHQiKTsKKyAgICBzaG91bGRCZSgi
b25DaGFuZ2VDYWxsZWQiLCAiZmFsc2UiKTsKKworICAgIGRyYWdGaWxlc09udG9JbnB1dChzaW5n
bGVfZmlsZV9pbnB1dCwgWyJmb28udHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
c2luZ2xlX2ZpbGVfaW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxmb28udHh0Iik7CisgICAg
c2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAgIGRlYnVnKCJUZXN0IHRo
YXQgdGhlICdjaGFuZ2UnIGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIG11bHRpcGxlIGZpbGUgZm9y
bSB3aGVuIGEgc2VsZWN0ZWQgZmlsZSBpcyBjaGFuZ2VkOiIpOworICAgIGRyYWdGaWxlc09udG9J
bnB1dChtdWx0aXBsZV9maWxlc19pbnB1dCwgWyJmb28udHh0Il0pOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygibXVsdGlwbGVfZmlsZXNfaW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxm
b28udHh0Iik7CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAg
IGRyYWdGaWxlc09udG9JbnB1dChtdWx0aXBsZV9maWxlc19pbnB1dCwgWyJiYXIudHh0Il0pOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVfZmlsZXNfaW5wdXQudmFsdWUiLCAi
QzpcXGZha2VwYXRoXFxiYXIudHh0Iik7CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwg
InRydWUiKTsKKworICAgIGRyYWdGaWxlc09udG9JbnB1dChtdWx0aXBsZV9maWxlc19pbnB1dCwg
WyJiYXIudHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVfZmlsZXNf
aW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxiYXIudHh0Iik7CisgICAgc2hvdWxkQmUoIm9u
Q2hhbmdlQ2FsbGVkIiwgImZhbHNlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlw
bGVfZmlsZXNfaW5wdXQsIFsiZm9vLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
Im11bHRpcGxlX2ZpbGVzX2lucHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcZm9vLnR4dCIpOwor
ICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7CisKKyAgICBkZWJ1ZygiVGVz
dCB0aGF0IHRoZSAnY2hhbmdlJyBldmVudCBpcyB0cmlnZ2VyZWQgb24gYSBtdWx0aXBsZSBmaWxl
IGZvcm0gd2hlbiBzZWxlY3RlZCBmaWxlcyBhcmUgY2hhbmdlZDoiKTsKKyAgICBkcmFnRmlsZXNP
bnRvSW5wdXQobXVsdGlwbGVfZmlsZXNfaW5wdXQsIFsiZm9vLnR4dCIsICJiYXIudHh0Il0pOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVfZmlsZXNfaW5wdXQudmFsdWUiLCAi
QzpcXGZha2VwYXRoXFxmb28udHh0Iik7CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwg
InRydWUiKTsKKworICAgIGRyYWdGaWxlc09udG9JbnB1dChtdWx0aXBsZV9maWxlc19pbnB1dCwg
WyJmb28udHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVfZmlsZXNf
aW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxmb28udHh0Iik7CisgICAgc2hvdWxkQmUoIm9u
Q2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAgIGRyYWdGaWxlc09udG9JbnB1dChtdWx0aXBs
ZV9maWxlc19pbnB1dCwgWyJmb28udHh0IiwgImJhci50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJtdWx0aXBsZV9maWxlc19pbnB1dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGZv
by50eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFuZ2VDYWxsZWQiLCAidHJ1ZSIpOworCisgICAg
ZHJhZ0ZpbGVzT250b0lucHV0KG11bHRpcGxlX2ZpbGVzX2lucHV0LCBbImZvby50eHQiLCAiYmFy
LnR4dCIsICJiYXoudHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVf
ZmlsZXNfaW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxmb28udHh0Iik7CisgICAgc2hvdWxk
QmUoIm9uQ2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAgIGRyYWdGaWxlc09udG9JbnB1dCht
dWx0aXBsZV9maWxlc19pbnB1dCwgWyJmb28udHh0IiwgImJhci50eHQiXSk7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJtdWx0aXBsZV9maWxlc19pbnB1dC52YWx1ZSIsICJDOlxcZmFrZXBh
dGhcXGZvby50eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFuZ2VDYWxsZWQiLCAidHJ1ZSIpOwor
CisgICAgZHJhZ0ZpbGVzT250b0lucHV0KG11bHRpcGxlX2ZpbGVzX2lucHV0LCBbImJhci50eHQi
LCAiZm9vLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm11bHRpcGxlX2ZpbGVz
X2lucHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcYmFyLnR4dCIpOworICAgIHNob3VsZEJlKCJv
bkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlw
bGVfZmlsZXNfaW5wdXQsIFsiYmFyLnR4dCIsICJmb28udHh0Il0pOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygibXVsdGlwbGVfZmlsZXNfaW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxi
YXIudHh0Iik7CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwgImZhbHNlIik7Cit9CisK
K2Z1bmN0aW9uIFNpbmdsZUZpbGVTZWxlY3RlZCgpIHsKKyAgICBvbkNoYW5nZUNhbGxlZCA9IHRy
dWU7Cit9CisKK2Z1bmN0aW9uIE11bHRpcGxlRmlsZXNTZWxlY3RlZCgpIHsKKyAgICBvbkNoYW5n
ZUNhbGxlZCA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIG1vdmVNb3VzZVRvQ2VudGVyT2ZFbGVtZW50
KGVsZW1lbnQpIHsKKyAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1l
bnQub2Zmc2V0V2lkdGggLyAyOworICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3Ag
KyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
Y2VudGVyWCwgY2VudGVyWSk7Cit9CisKK2Z1bmN0aW9uIGRyYWdGaWxlc09udG9JbnB1dChpbnB1
dCwgZmlsZXMpIHsKKyAgICBvbkNoYW5nZUNhbGxlZCA9IGZhbHNlOworICAgIGlucHV0LnZhbHVl
ID0gIiI7CisgICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzKGZpbGVzKTsKKyAgICBt
b3ZlTW91c2VUb0NlbnRlck9mRWxlbWVudChpbnB1dCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VV
cCgpOworfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ3NmE0ODI4ZjhmMmE3ZmJkYjI4MDZjNWQxODUw
NmY1NjZhZTZjOTUuLjZiYzk1YzMwZjYxYTUwYWI1N2VjMWM1NzEzYmZkMzk3MWU1OWI4NmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMS0wNy0wNSAgS2VudGFybyBIYXJhICA8aGFy
YWtlbkBnb29nbGUuY29tPgorCisgICAgICAgIFRyaWdnZXIgYSAnY2hhbmdlJyBldmVudCB3aGVu
ZXZlciBzZWxlY3RlZCBmaWxlcyBhcmUgY2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5MjkKKworICAgICAgICBSZWNvcmQgcHJldmlvdXNs
eSBzZWxlY3RlZCBmaWxlcyBhbmQgdGhlbiBjb21wYXJlIHRoZW0gd2l0aCBuZXdseSBzZWxlY3Rl
ZCBmaWxlcy4KKyAgICAgICAgSWYgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgZmlsZXMgYW5kIHRo
ZWlyIG9yZGVyIGFyZSBub3QgZXF1YWwgdG8gdGhvc2Ugb2YKKyAgICAgICAgdGhlIG5ld2x5IHNl
bGVjdGVkIGZpbGVzLCB3ZSB0cmlnZ2VyIHRoZSAnY2hhbmdlJyBldmVudC4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL2Zp
bGUtaW5wdXQtY2hhbmdlLWV2ZW50Lmh0bWwKKworICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpmaWxlc0Nob3Nlbik6IENh
bGxzIGRpc3BhdGNoRmlsZUlucHV0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpIGluc3RlYWQgb2Yg
ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCkKKyAgICAgICAgKiBodG1sL0hUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OmRpc3BhdGNoRmlsZUlucHV0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCk6IENvbXBh
cmVzIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZpbGVzIGFuZCB0aGUgbmV3bHkgc2VsZWN0ZWQg
ZmlsZXMKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRQYXRoc0FzT2ZMYXN0Rm9y
bUNvbnRyb2xDaGFuZ2VFdmVudCk6IFJlY29yZHMgdGhlIG5ld2x5IHNlbGVjdGVkIGZpbGVzCisK
IDIwMTEtMDctMDMgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJlc3RvcmUgc2Nyb2xsIHBvc2l0aW9uIG9uIHBhZ2UgcmVsb2FkcyBzY2hlZHVsZWQgYnkgPG1l
dGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iWFgiLz4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCmluZGV4IGJhMTMwNWFhOThmMDY5MDliZDJjYzg5NWZjNDE3MzZjZGM5
YTY0OTAuLmU0MTA3NmFkM2YzMTg0OTM1NTE4MGM3Y2IxYTQ1NGE4YWQ0OTExZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjg5LDcgKzI4OSw3IEBAIHZvaWQgRmls
ZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogICAg
IGlmIChpbnB1dC0+cmVuZGVyZXIoKSkKICAgICAgICAgaW5wdXQtPnJlbmRlcmVyKCktPnJlcGFp
bnQoKTsKICAgICAvLyBUaGlzIGNhbGwgbWF5IGNhdXNlIGRlc3RydWN0aW9uIG9mIHRoaXMgaW5z
dGFuY2UgYW5kIHRodXMgbXVzdCBhbHdheXMgYmUgbGFzdCBpbiB0aGUgZnVuY3Rpb24uCi0gICAg
aW5wdXQtPmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOworICAgIGlucHV0LT5kaXNw
YXRjaEZpbGVJbnB1dEZvcm1Db250cm9sQ2hhbmdlRXZlbnQocGF0aHMpOwogfQogCiAjaWYgRU5B
QkxFKERJUkVDVE9SWV9VUExPQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmNwcAppbmRleCA5YzUzMTc0ZDY5OTNhNGY1MjNlNmY2NGVhYzhjYzU4ZDc5
ZDJiNmViLi4yODVmM2I3ODcwOTRiYTAxMTMxODZiOGVkOTYwNmIzZjU4NzRjZWU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTY2OSw2
ICs2NjksMjcgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb3Jt
Q29udHJvbENoYW5nZUV2ZW50KCkKICAgICBzZXRDaGFuZ2VkU2luY2VMYXN0Rm9ybUNvbnRyb2xD
aGFuZ2VFdmVudChmYWxzZSk7CiB9CiAKK3ZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OmRpc3BhdGNoRmlsZUlucHV0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGF0aHMpCit7CisgICAgYm9vbCBwYXRoc0NoYW5nZWQgPSBmYWxzZTsKKyAgICBpZiAo
cGF0aHMuc2l6ZSgpICE9IG1fcGF0aHNBc09mTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQuc2l6
ZSgpKQorICAgICAgICBwYXRoc0NoYW5nZWQgPSB0cnVlOworICAgIGVsc2UgeworICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGF0aHMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAg
IGlmIChwYXRoc1tpXSAhPSBtX3BhdGhzQXNPZkxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50W2ld
KSB7CisgICAgICAgICAgICAgICAgcGF0aHNDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChwYXRo
c0NoYW5nZWQpIHsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsK
KyAgICAgICAgc2V0UGF0aHNBc09mTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQocGF0aHMpOwor
ICAgIH0KKyAgICBzZXRDaGFuZ2VkU2luY2VMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChmYWxz
ZSk7Cit9CisKIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldFNlbGVjdGlvblJh
bmdlKGludCBzdGFydCwgaW50IGVuZCkKIHsKICAgICBXZWJDb3JlOjpzZXRTZWxlY3Rpb25SYW5n
ZSh0aGlzLCBzdGFydCwgZW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmgKaW5kZXggYzVmY2U2NjQyMDgwNTVkZjYwNTMzZjAxOWIxOTE2NmYzOTZmYjZh
YS4uYTUxYjlmNTI5ZGI3MjJmMjA3OGEwNDc5ODVmNGI1ZDczNGE5NTYxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTIwOSw2ICsyMDksNyBA
QCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gc2VsZWN0aW9uKCkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CisgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRmlsZUlucHV0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcGF0aHMpOwogCiAgICAgdmlydHVhbCBpbnQgbWF4TGVuZ3RoKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3QgPSAwOwpAQCAtMjIyLDYg
KzIyMyw4IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgc2V0VGV4dEFzT2ZMYXN0Rm9ybUNvbnRy
b2xDaGFuZ2VFdmVudChjb25zdCBTdHJpbmcmIHRleHQpIHsgbV90ZXh0QXNPZkxhc3RGb3JtQ29u
dHJvbENoYW5nZUV2ZW50ID0gdGV4dDsgfQogCisgICAgdm9pZCBzZXRQYXRoc0FzT2ZMYXN0Rm9y
bUNvbnRyb2xDaGFuZ2VFdmVudChjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpIHsgbV9wYXRo
c0FzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCA9IHBhdGhzOyB9CisKIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaEJsdXJFdmVudCgpOwpAQCAtMjQzLDYgKzI0Niw4IEBAIHByaXZhdGU6CiAgICAgUmVu
ZGVyVGV4dENvbnRyb2wqIHRleHRSZW5kZXJlckFmdGVyVXBkYXRlTGF5b3V0KCk7CiAKICAgICBT
dHJpbmcgbV90ZXh0QXNPZkxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50OworCisgICAgVmVjdG9y
PFN0cmluZz4gbV9wYXRoc0FzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudDsKIH07CiAKIC8v
IFRoaXMgZnVuY3Rpb24gcmV0dXJucyAwIHdoZW4gbm9kZSBpcyBhbiBpbnB1dCBlbGVtZW50IGFu
ZCBub3QgYSB0ZXh0IGZpZWxkLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99774</attachid>
            <date>2011-07-05 18:45:13 -0700</date>
            <delta_ts>2011-07-05 19:12:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63929-20110706104511.patch</filename>
            <type>text/plain</type>
            <size>10328</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAzNDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3NWVjMjY0OWRiZGQzYTM4ZDk0OWYy
Yjg1ZWEyZTczZTZhNjFlYTUwLi5lYTYyMDYwMjk1Yzk3MzJkMWE4ZDVmMjQ5YzQ5NzVhMGZmYTI2
OGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDctMDUgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBUcmlnZ2VyIGEgJ2NoYW5nZScgZXZlbnQgd2hl
bmV2ZXIgc2VsZWN0ZWQgZmlsZXMgYXJlIGNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTI5CisKKyAgICAgICAgUmVjb3JkIHByZXZpb3Vz
bHkgc2VsZWN0ZWQgZmlsZXMgYW5kIHRoZW4gY29tcGFyZSB0aGVtIHdpdGggbmV3bHkgc2VsZWN0
ZWQgZmlsZXMuCisgICAgICAgIElmIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZpbGVzIGFuZCB0
aGVpciBvcmRlciBhcmUgbm90IGVxdWFsIHRvIHRob3NlIG9mCisgICAgICAgIHRoZSBuZXdseSBz
ZWxlY3RlZCBmaWxlcywgd2UgdHJpZ2dlciB0aGUgJ29uY2hhbmdlJyBldmVudC4KKworICAgICAg
ICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKworICAgICAgICAqIGZhc3QvZm9ybXMvZmlsZS1p
bnB1dC1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL2ZpbGUtaW5wdXQtY2hhbmdlLWV2ZW50Lmh0bWw6IEFkZGVkLgorCiAyMDExLTA3LTAxICBH
YXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
aWxlLWlucHV0LWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2ZpbGUtaW5wdXQtY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTli
MTY3MzBmMjY3MTIzZGNkYjI3OWMxZTJlNDUwMDE5NDUwZWQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlLWlucHV0LWNoYW5nZS1ldmVudC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0MCBAQAorIAorVGhpcyB0ZXN0cyB0aGUgY29uZGl0aW9uIHRoYXQgdHJp
Z2dlcnMgYSAnY2hhbmdlJyBldmVudCBvbiBmaWxlIGlucHV0IGZvcm1zLgorCitUZXN0IHRoYXQg
dGhlICdjaGFuZ2UnIGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIHNpbmdsZSBmaWxlIGZvcm0gd2hl
biBhIHNlbGVjdGVkIGZpbGUgaXMgY2hhbmdlZDoKK1BBU1Mgc2luZ2xlRmlsZUlucHV0LnZhbHVl
IGlzICJDOlxcZmFrZXBhdGhcXGZvby50eHQiCitQQVNTIG9uQ2hhbmdlQ2FsbGVkIGlzIHRydWUK
K1BBU1Mgc2luZ2xlRmlsZUlucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGJhci50eHQiCitQ
QVNTIG9uQ2hhbmdlQ2FsbGVkIGlzIHRydWUKK1BBU1Mgc2luZ2xlRmlsZUlucHV0LnZhbHVlIGlz
ICJDOlxcZmFrZXBhdGhcXGJhci50eHQiCitQQVNTIG9uQ2hhbmdlQ2FsbGVkIGlzIGZhbHNlCitQ
QVNTIHNpbmdsZUZpbGVJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28udHh0IgorUEFT
UyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitUZXN0IHRoYXQgdGhlICdjaGFuZ2UnIGV2ZW50IGlz
IHRyaWdnZXJlZCBvbiBhIG11bHRpcGxlIGZpbGUgZm9ybSB3aGVuIGEgc2VsZWN0ZWQgZmlsZSBp
cyBjaGFuZ2VkOgorUEFTUyBtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUgaXMgIkM6XFxmYWtlcGF0
aFxcZm9vLnR4dCIKK1BBU1Mgb25DaGFuZ2VDYWxsZWQgaXMgdHJ1ZQorUEFTUyBtdWx0aXBsZUZp
bGVzSW5wdXQudmFsdWUgaXMgIkM6XFxmYWtlcGF0aFxcYmFyLnR4dCIKK1BBU1Mgb25DaGFuZ2VD
YWxsZWQgaXMgdHJ1ZQorUEFTUyBtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUgaXMgIkM6XFxmYWtl
cGF0aFxcYmFyLnR4dCIKK1BBU1Mgb25DaGFuZ2VDYWxsZWQgaXMgZmFsc2UKK1BBU1MgbXVsdGlw
bGVGaWxlc0lucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGZvby50eHQiCitQQVNTIG9uQ2hh
bmdlQ2FsbGVkIGlzIHRydWUKK1Rlc3QgdGhhdCB0aGUgJ2NoYW5nZScgZXZlbnQgaXMgdHJpZ2dl
cmVkIG9uIGEgbXVsdGlwbGUgZmlsZSBmb3JtIHdoZW4gc2VsZWN0ZWQgZmlsZXMgYXJlIGNoYW5n
ZWQ6CitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28u
dHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1
dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBp
cyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxm
b28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJ
bnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxl
ZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRo
XFxmb28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmls
ZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxiYXIudHh0IgorUEFTUyBvbkNoYW5nZUNh
bGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2Vw
YXRoXFxiYXIudHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyBmYWxzZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS1pbnB1dC1jaGFuZ2UtZXZlbnQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZmlsZS1pbnB1dC1jaGFuZ2UtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NGYxOTQ0ZWQyMjZhZGNmZWZjNDkzNTFjYjJlNjVkYWI0MjE0M2U0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlLWlucHV0LWNoYW5nZS1ldmVudC5odG1sCkBA
IC0wLDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJzaW5nbGVGaWxlIiBuYW1lPSJ1cGZpbGUi
IG9uY2hhbmdlPSJTaW5nbGVGaWxlU2VsZWN0ZWQoKSIgLz4KKzxpbnB1dCB0eXBlPSJmaWxlIiBp
ZD0ibXVsdGlwbGVGaWxlcyIgbmFtZT0idXBmaWxlW10iIG11bHRpcGxlPSJtdWx0aXBsZSIgb25j
aGFuZ2U9Ik11bHRpcGxlRmlsZXNTZWxlY3RlZCgpIiAvPgorPGRpdiBpZD0iY29uc29sZSI+Cis8
cD4KK1RoaXMgdGVzdHMgdGhlIGNvbmRpdGlvbiB0aGF0IHRyaWdnZXJzIGEgJ2NoYW5nZScgZXZl
bnQgb24gZmlsZSBpbnB1dCBmb3Jtcy4KKzwvcD4KKzwvZGl2PgorPHNjcmlwdD4KK3ZhciBvbkNo
YW5nZUNhbGxlZDsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIHZh
ciBzaW5nbGVGaWxlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2luZ2xlRmlsZSIp
OworICAgIHZhciBtdWx0aXBsZUZpbGVzSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bXVsdGlwbGVGaWxlcyIpOworCisgICAgZGVidWcoIlRlc3QgdGhhdCB0aGUgJ2NoYW5nZScgZXZl
bnQgaXMgdHJpZ2dlcmVkIG9uIGEgc2luZ2xlIGZpbGUgZm9ybSB3aGVuIGEgc2VsZWN0ZWQgZmls
ZSBpcyBjaGFuZ2VkOiIpOworICAgIGRyYWdGaWxlc09udG9JbnB1dChzaW5nbGVGaWxlSW5wdXQs
IFsiZm9vLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNpbmdsZUZpbGVJbnB1
dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGZvby50eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFu
Z2VDYWxsZWQiLCAidHJ1ZSIpOworCisgICAgZHJhZ0ZpbGVzT250b0lucHV0KHNpbmdsZUZpbGVJ
bnB1dCwgWyJiYXIudHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic2luZ2xlRmls
ZUlucHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcYmFyLnR4dCIpOworICAgIHNob3VsZEJlKCJv
bkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQoc2luZ2xl
RmlsZUlucHV0LCBbImJhci50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaW5n
bGVGaWxlSW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxiYXIudHh0Iik7CisgICAgc2hvdWxk
QmUoIm9uQ2hhbmdlQ2FsbGVkIiwgImZhbHNlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQo
c2luZ2xlRmlsZUlucHV0LCBbImZvby50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJzaW5nbGVGaWxlSW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxmb28udHh0Iik7CisgICAg
c2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAgIGRlYnVnKCJUZXN0IHRo
YXQgdGhlICdjaGFuZ2UnIGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIG11bHRpcGxlIGZpbGUgZm9y
bSB3aGVuIGEgc2VsZWN0ZWQgZmlsZSBpcyBjaGFuZ2VkOiIpOworICAgIGRyYWdGaWxlc09udG9J
bnB1dChtdWx0aXBsZUZpbGVzSW5wdXQsIFsiZm9vLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIm11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGZvby50
eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFuZ2VDYWxsZWQiLCAidHJ1ZSIpOworCisgICAgZHJh
Z0ZpbGVzT250b0lucHV0KG11bHRpcGxlRmlsZXNJbnB1dCwgWyJiYXIudHh0Il0pOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6XFxmYWtl
cGF0aFxcYmFyLnR4dCIpOworICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7
CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImJhci50eHQi
XSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUi
LCAiQzpcXGZha2VwYXRoXFxiYXIudHh0Iik7CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVk
IiwgImZhbHNlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0
LCBbImZvby50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtdWx0aXBsZUZpbGVz
SW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxmb28udHh0Iik7CisgICAgc2hvdWxkQmUoIm9u
Q2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAgIGRlYnVnKCJUZXN0IHRoYXQgdGhlICdjaGFu
Z2UnIGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIG11bHRpcGxlIGZpbGUgZm9ybSB3aGVuIHNlbGVj
dGVkIGZpbGVzIGFyZSBjaGFuZ2VkOiIpOworICAgIGRyYWdGaWxlc09udG9JbnB1dChtdWx0aXBs
ZUZpbGVzSW5wdXQsIFsiZm9vLnR4dCIsICJiYXIudHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygibXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcZm9vLnR4
dCIpOworICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7CisKKyAgICBkcmFn
RmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImZvby50eHQiXSk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUiLCAiQzpcXGZha2Vw
YXRoXFxmb28udHh0Iik7CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwgInRydWUiKTsK
KworICAgIGRyYWdGaWxlc09udG9JbnB1dChtdWx0aXBsZUZpbGVzSW5wdXQsIFsiZm9vLnR4dCIs
ICJiYXIudHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVGaWxlc0lu
cHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcZm9vLnR4dCIpOworICAgIHNob3VsZEJlKCJvbkNo
YW5nZUNhbGxlZCIsICJ0cnVlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVG
aWxlc0lucHV0LCBbImZvby50eHQiLCAiYmFyLnR4dCIsICJiYXoudHh0Il0pOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0
aFxcZm9vLnR4dCIpOworICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7CisK
KyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImZvby50eHQiLCAi
YmFyLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm11bHRpcGxlRmlsZXNJbnB1
dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGZvby50eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFu
Z2VDYWxsZWQiLCAidHJ1ZSIpOworCisgICAgZHJhZ0ZpbGVzT250b0lucHV0KG11bHRpcGxlRmls
ZXNJbnB1dCwgWyJiYXIudHh0IiwgImZvby50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxiYXIudHh0Iik7
CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAgIGRyYWdGaWxl
c09udG9JbnB1dChtdWx0aXBsZUZpbGVzSW5wdXQsIFsiYmFyLnR4dCIsICJmb28udHh0Il0pOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6
XFxmYWtlcGF0aFxcYmFyLnR4dCIpOworICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJm
YWxzZSIpOworfQorCitmdW5jdGlvbiBTaW5nbGVGaWxlU2VsZWN0ZWQoKSB7CisgICAgb25DaGFu
Z2VDYWxsZWQgPSB0cnVlOworfQorCitmdW5jdGlvbiBNdWx0aXBsZUZpbGVzU2VsZWN0ZWQoKSB7
CisgICAgb25DaGFuZ2VDYWxsZWQgPSB0cnVlOworfQorCitmdW5jdGlvbiBtb3ZlTW91c2VUb0Nl
bnRlck9mRWxlbWVudChlbGVtZW50KSB7CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNl
dExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVsZW1l
bnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKGNlbnRlclgsIGNlbnRlclkpOworfQorCitmdW5jdGlvbiBkcmFnRmlsZXNP
bnRvSW5wdXQoaW5wdXQsIGZpbGVzKSB7CisgICAgb25DaGFuZ2VDYWxsZWQgPSBmYWxzZTsKKyAg
ICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoZmlsZXMpOworICAgIG1vdmVNb3VzZVRv
Q2VudGVyT2ZFbGVtZW50KGlucHV0KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZDc2YTQ4MjhmOGYyYTdmYmRiMjgwNmM1ZDE4NTA2ZjU2NmFlNmM5
NS4uZTEyODJkNGM5NmJmZTczYjk1ZDQ0MmE5ZTk5MjEwNzdkNGU5NDdiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDExLTA3LTA1ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgVHJpZ2dlciBhICdjaGFuZ2UnIGV2ZW50IHdoZW5ldmVyIHNlbGVj
dGVkIGZpbGVzIGFyZSBjaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MzkyOQorCisgICAgICAgIFJlY29yZCBwcmV2aW91c2x5IHNlbGVjdGVk
IGZpbGVzIGFuZCB0aGVuIGNvbXBhcmUgdGhlbSB3aXRoIG5ld2x5IHNlbGVjdGVkIGZpbGVzLgor
ICAgICAgICBJZiB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCBmaWxlcyBhbmQgdGhlaXIgb3JkZXIg
YXJlIG5vdCBlcXVhbCB0byB0aG9zZSBvZgorICAgICAgICB0aGUgbmV3bHkgc2VsZWN0ZWQgZmls
ZXMsIHdlIHRyaWdnZXIgdGhlICdjaGFuZ2UnIGV2ZW50LgorCisgICAgICAgIFJldmlld2VkIGJ5
IEtlbnQgVGFtdXJhLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvZmlsZS1pbnB1dC1jaGFu
Z2UtZXZlbnQuaHRtbAorCisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKTogQ2FsbHMgZGlzcGF0aENo
YW5nZUV2ZW50KCkgb25seSB3aGVuIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZpbGVzIGFyZSBk
aWZmZXJlbnQgZnJvbSB0aGUgbmV3bHkgc2VsZWN0ZWQgZmlsZXMKKwogMjAxMS0wNy0wMyAgUm9i
ZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVzdG9yZSBzY3JvbGwg
cG9zaXRpb24gb24gcGFnZSByZWxvYWRzIHNjaGVkdWxlZCBieSA8bWV0YSBodHRwLWVxdWl2PSJy
ZWZyZXNoIiBjb250ZW50PSJYWCIvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAK
aW5kZXggYmExMzA1YWE5OGYwNjkwOWJkMmNjODk1ZmM0MTczNmNkYzlhNjQ5MC4uMjgxMDZmOTRj
YzZmYTViZmZmZmUyNTYxY2FiNDYzNmM0MTA3ODEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuY3BwCkBAIC0yNzgsNiArMjc4LDE5IEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6cmVx
dWVzdEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogdm9pZCBGaWxlSW5wdXRUeXBl
OjpmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiB7CiAgICAgSFRNTElu
cHV0RWxlbWVudCogaW5wdXQgPSBlbGVtZW50KCk7CisKKyAgICBib29sIHBhdGhzQ2hhbmdlZCA9
IGZhbHNlOworICAgIGlmIChwYXRocy5zaXplKCkgIT0gbV9maWxlTGlzdC0+bGVuZ3RoKCkpCisg
ICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBwYXRocy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKHBh
dGhzW2ldICE9IG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSkgeworICAgICAgICAgICAgICAg
IHBhdGhzQ2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisKICAgICBzZXRGaWxlTGlzdChwYXRocyk7CiAKICAgICBp
bnB1dC0+c2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKQEAgLTI4OCw4
ICszMDEsMTIgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8
U3RyaW5nPiYgcGF0aHMpCiAKICAgICBpZiAoaW5wdXQtPnJlbmRlcmVyKCkpCiAgICAgICAgIGlu
cHV0LT5yZW5kZXJlcigpLT5yZXBhaW50KCk7Ci0gICAgLy8gVGhpcyBjYWxsIG1heSBjYXVzZSBk
ZXN0cnVjdGlvbiBvZiB0aGlzIGluc3RhbmNlIGFuZCB0aHVzIG11c3QgYWx3YXlzIGJlIGxhc3Qg
aW4gdGhlIGZ1bmN0aW9uLgotICAgIGlucHV0LT5kaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZl
bnQoKTsKKworICAgIGlmIChwYXRoc0NoYW5nZWQpIHsKKyAgICAgICAgLy8gVGhpcyBjYWxsIG1h
eSBjYXVzZSBkZXN0cnVjdGlvbiBvZiB0aGlzIGluc3RhbmNlIGFuZCB0aHVzIG11c3QgYWx3YXlz
IGJlIGxhc3QgaW4gdGhlIGZ1bmN0aW9uLgorICAgICAgICBpbnB1dC0+SFRNTEVsZW1lbnQ6OmRp
c3BhdGNoQ2hhbmdlRXZlbnQoKTsKKyAgICB9CisgICAgaW5wdXQtPnNldENoYW5nZWRTaW5jZUxh
c3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KGZhbHNlKTsKIH0KIAogI2lmIEVOQUJMRShESVJFQ1RP
UllfVVBMT0FEKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99779</attachid>
            <date>2011-07-05 19:12:53 -0700</date>
            <delta_ts>2011-07-05 19:17:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63929-20110706111252.patch</filename>
            <type>text/plain</type>
            <size>10398</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAzNDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3NWVjMjY0OWRiZGQzYTM4ZDk0OWYy
Yjg1ZWEyZTczZTZhNjFlYTUwLi5lYTYyMDYwMjk1Yzk3MzJkMWE4ZDVmMjQ5YzQ5NzVhMGZmYTI2
OGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDctMDUgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBUcmlnZ2VyIGEgJ2NoYW5nZScgZXZlbnQgd2hl
bmV2ZXIgc2VsZWN0ZWQgZmlsZXMgYXJlIGNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTI5CisKKyAgICAgICAgUmVjb3JkIHByZXZpb3Vz
bHkgc2VsZWN0ZWQgZmlsZXMgYW5kIHRoZW4gY29tcGFyZSB0aGVtIHdpdGggbmV3bHkgc2VsZWN0
ZWQgZmlsZXMuCisgICAgICAgIElmIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZpbGVzIGFuZCB0
aGVpciBvcmRlciBhcmUgbm90IGVxdWFsIHRvIHRob3NlIG9mCisgICAgICAgIHRoZSBuZXdseSBz
ZWxlY3RlZCBmaWxlcywgd2UgdHJpZ2dlciB0aGUgJ29uY2hhbmdlJyBldmVudC4KKworICAgICAg
ICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKworICAgICAgICAqIGZhc3QvZm9ybXMvZmlsZS1p
bnB1dC1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL2ZpbGUtaW5wdXQtY2hhbmdlLWV2ZW50Lmh0bWw6IEFkZGVkLgorCiAyMDExLTA3LTAxICBH
YXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
aWxlLWlucHV0LWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2ZpbGUtaW5wdXQtY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTli
MTY3MzBmMjY3MTIzZGNkYjI3OWMxZTJlNDUwMDE5NDUwZWQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlLWlucHV0LWNoYW5nZS1ldmVudC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0MCBAQAorIAorVGhpcyB0ZXN0cyB0aGUgY29uZGl0aW9uIHRoYXQgdHJp
Z2dlcnMgYSAnY2hhbmdlJyBldmVudCBvbiBmaWxlIGlucHV0IGZvcm1zLgorCitUZXN0IHRoYXQg
dGhlICdjaGFuZ2UnIGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIHNpbmdsZSBmaWxlIGZvcm0gd2hl
biBhIHNlbGVjdGVkIGZpbGUgaXMgY2hhbmdlZDoKK1BBU1Mgc2luZ2xlRmlsZUlucHV0LnZhbHVl
IGlzICJDOlxcZmFrZXBhdGhcXGZvby50eHQiCitQQVNTIG9uQ2hhbmdlQ2FsbGVkIGlzIHRydWUK
K1BBU1Mgc2luZ2xlRmlsZUlucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGJhci50eHQiCitQ
QVNTIG9uQ2hhbmdlQ2FsbGVkIGlzIHRydWUKK1BBU1Mgc2luZ2xlRmlsZUlucHV0LnZhbHVlIGlz
ICJDOlxcZmFrZXBhdGhcXGJhci50eHQiCitQQVNTIG9uQ2hhbmdlQ2FsbGVkIGlzIGZhbHNlCitQ
QVNTIHNpbmdsZUZpbGVJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28udHh0IgorUEFT
UyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitUZXN0IHRoYXQgdGhlICdjaGFuZ2UnIGV2ZW50IGlz
IHRyaWdnZXJlZCBvbiBhIG11bHRpcGxlIGZpbGUgZm9ybSB3aGVuIGEgc2VsZWN0ZWQgZmlsZSBp
cyBjaGFuZ2VkOgorUEFTUyBtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUgaXMgIkM6XFxmYWtlcGF0
aFxcZm9vLnR4dCIKK1BBU1Mgb25DaGFuZ2VDYWxsZWQgaXMgdHJ1ZQorUEFTUyBtdWx0aXBsZUZp
bGVzSW5wdXQudmFsdWUgaXMgIkM6XFxmYWtlcGF0aFxcYmFyLnR4dCIKK1BBU1Mgb25DaGFuZ2VD
YWxsZWQgaXMgdHJ1ZQorUEFTUyBtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUgaXMgIkM6XFxmYWtl
cGF0aFxcYmFyLnR4dCIKK1BBU1Mgb25DaGFuZ2VDYWxsZWQgaXMgZmFsc2UKK1BBU1MgbXVsdGlw
bGVGaWxlc0lucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGZvby50eHQiCitQQVNTIG9uQ2hh
bmdlQ2FsbGVkIGlzIHRydWUKK1Rlc3QgdGhhdCB0aGUgJ2NoYW5nZScgZXZlbnQgaXMgdHJpZ2dl
cmVkIG9uIGEgbXVsdGlwbGUgZmlsZSBmb3JtIHdoZW4gc2VsZWN0ZWQgZmlsZXMgYXJlIGNoYW5n
ZWQ6CitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28u
dHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1
dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBp
cyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxm
b28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJ
bnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxl
ZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRo
XFxmb28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmls
ZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxiYXIudHh0IgorUEFTUyBvbkNoYW5nZUNh
bGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2Vw
YXRoXFxiYXIudHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyBmYWxzZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS1pbnB1dC1jaGFuZ2UtZXZlbnQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZmlsZS1pbnB1dC1jaGFuZ2UtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
NTZmNjg2ZjM2NmZlNTFkNWUyZjg1Y2ZiZTk0ZmRmZDAzMjQzMGM1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlLWlucHV0LWNoYW5nZS1ldmVudC5odG1sCkBA
IC0wLDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJzaW5nbGVGaWxlIiBuYW1lPSJ1cGZpbGUi
IG9uY2hhbmdlPSJzaW5nbGVGaWxlU2VsZWN0ZWQoKSIgLz4KKzxpbnB1dCB0eXBlPSJmaWxlIiBp
ZD0ibXVsdGlwbGVGaWxlcyIgbmFtZT0idXBmaWxlW10iIG11bHRpcGxlPSJtdWx0aXBsZSIgb25j
aGFuZ2U9Im11bHRpcGxlRmlsZXNTZWxlY3RlZCgpIiAvPgorPGRpdiBpZD0iY29uc29sZSI+Cis8
cD4KK1RoaXMgdGVzdHMgdGhlIGNvbmRpdGlvbiB0aGF0IHRyaWdnZXJzIGEgJ2NoYW5nZScgZXZl
bnQgb24gZmlsZSBpbnB1dCBmb3Jtcy4KKzwvcD4KKzwvZGl2PgorPHNjcmlwdD4KK3ZhciBvbkNo
YW5nZUNhbGxlZDsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIHZh
ciBzaW5nbGVGaWxlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2luZ2xlRmlsZSIp
OworICAgIHZhciBtdWx0aXBsZUZpbGVzSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bXVsdGlwbGVGaWxlcyIpOworCisgICAgZGVidWcoIlRlc3QgdGhhdCB0aGUgJ2NoYW5nZScgZXZl
bnQgaXMgdHJpZ2dlcmVkIG9uIGEgc2luZ2xlIGZpbGUgZm9ybSB3aGVuIGEgc2VsZWN0ZWQgZmls
ZSBpcyBjaGFuZ2VkOiIpOworICAgIGRyYWdGaWxlc09udG9JbnB1dChzaW5nbGVGaWxlSW5wdXQs
IFsiZm9vLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNpbmdsZUZpbGVJbnB1
dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGZvby50eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFu
Z2VDYWxsZWQiLCAidHJ1ZSIpOworCisgICAgZHJhZ0ZpbGVzT250b0lucHV0KHNpbmdsZUZpbGVJ
bnB1dCwgWyJiYXIudHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic2luZ2xlRmls
ZUlucHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcYmFyLnR4dCIpOworICAgIHNob3VsZEJlKCJv
bkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQoc2luZ2xl
RmlsZUlucHV0LCBbImJhci50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaW5n
bGVGaWxlSW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxiYXIudHh0Iik7CisgICAgc2hvdWxk
QmUoIm9uQ2hhbmdlQ2FsbGVkIiwgImZhbHNlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQo
c2luZ2xlRmlsZUlucHV0LCBbImZvby50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJzaW5nbGVGaWxlSW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxmb28udHh0Iik7CisgICAg
c2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAgIGRlYnVnKCJUZXN0IHRo
YXQgdGhlICdjaGFuZ2UnIGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIG11bHRpcGxlIGZpbGUgZm9y
bSB3aGVuIGEgc2VsZWN0ZWQgZmlsZSBpcyBjaGFuZ2VkOiIpOworICAgIGRyYWdGaWxlc09udG9J
bnB1dChtdWx0aXBsZUZpbGVzSW5wdXQsIFsiZm9vLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIm11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGZvby50
eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFuZ2VDYWxsZWQiLCAidHJ1ZSIpOworCisgICAgZHJh
Z0ZpbGVzT250b0lucHV0KG11bHRpcGxlRmlsZXNJbnB1dCwgWyJiYXIudHh0Il0pOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6XFxmYWtl
cGF0aFxcYmFyLnR4dCIpOworICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7
CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImJhci50eHQi
XSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUi
LCAiQzpcXGZha2VwYXRoXFxiYXIudHh0Iik7CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVk
IiwgImZhbHNlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0
LCBbImZvby50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtdWx0aXBsZUZpbGVz
SW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxmb28udHh0Iik7CisgICAgc2hvdWxkQmUoIm9u
Q2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAgIGRlYnVnKCJUZXN0IHRoYXQgdGhlICdjaGFu
Z2UnIGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIG11bHRpcGxlIGZpbGUgZm9ybSB3aGVuIHNlbGVj
dGVkIGZpbGVzIGFyZSBjaGFuZ2VkOiIpOworICAgIGRyYWdGaWxlc09udG9JbnB1dChtdWx0aXBs
ZUZpbGVzSW5wdXQsIFsiZm9vLnR4dCIsICJiYXIudHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygibXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcZm9vLnR4
dCIpOworICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7CisKKyAgICBkcmFn
RmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImZvby50eHQiXSk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUiLCAiQzpcXGZha2Vw
YXRoXFxmb28udHh0Iik7CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwgInRydWUiKTsK
KworICAgIGRyYWdGaWxlc09udG9JbnB1dChtdWx0aXBsZUZpbGVzSW5wdXQsIFsiZm9vLnR4dCIs
ICJiYXIudHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVGaWxlc0lu
cHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcZm9vLnR4dCIpOworICAgIHNob3VsZEJlKCJvbkNo
YW5nZUNhbGxlZCIsICJ0cnVlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVG
aWxlc0lucHV0LCBbImZvby50eHQiLCAiYmFyLnR4dCIsICJiYXoudHh0Il0pOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0
aFxcZm9vLnR4dCIpOworICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7CisK
KyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImZvby50eHQiLCAi
YmFyLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm11bHRpcGxlRmlsZXNJbnB1
dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGZvby50eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFu
Z2VDYWxsZWQiLCAidHJ1ZSIpOworCisgICAgZHJhZ0ZpbGVzT250b0lucHV0KG11bHRpcGxlRmls
ZXNJbnB1dCwgWyJiYXIudHh0IiwgImZvby50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxiYXIudHh0Iik7
CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAgIGRyYWdGaWxl
c09udG9JbnB1dChtdWx0aXBsZUZpbGVzSW5wdXQsIFsiYmFyLnR4dCIsICJmb28udHh0Il0pOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6
XFxmYWtlcGF0aFxcYmFyLnR4dCIpOworICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJm
YWxzZSIpOworfQorCitmdW5jdGlvbiBzaW5nbGVGaWxlU2VsZWN0ZWQoKSB7CisgICAgb25DaGFu
Z2VDYWxsZWQgPSB0cnVlOworfQorCitmdW5jdGlvbiBtdWx0aXBsZUZpbGVzU2VsZWN0ZWQoKSB7
CisgICAgb25DaGFuZ2VDYWxsZWQgPSB0cnVlOworfQorCitmdW5jdGlvbiBtb3ZlTW91c2VUb0Nl
bnRlck9mRWxlbWVudChlbGVtZW50KSB7CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNl
dExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVsZW1l
bnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKGNlbnRlclgsIGNlbnRlclkpOworfQorCitmdW5jdGlvbiBkcmFnRmlsZXNP
bnRvSW5wdXQoaW5wdXQsIGZpbGVzKSB7CisgICAgb25DaGFuZ2VDYWxsZWQgPSBmYWxzZTsKKyAg
ICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoZmlsZXMpOworICAgIG1vdmVNb3VzZVRv
Q2VudGVyT2ZFbGVtZW50KGlucHV0KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZDc2YTQ4MjhmOGYyYTdmYmRiMjgwNmM1ZDE4NTA2ZjU2NmFlNmM5
NS4uZTEyODJkNGM5NmJmZTczYjk1ZDQ0MmE5ZTk5MjEwNzdkNGU5NDdiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDExLTA3LTA1ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgVHJpZ2dlciBhICdjaGFuZ2UnIGV2ZW50IHdoZW5ldmVyIHNlbGVj
dGVkIGZpbGVzIGFyZSBjaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MzkyOQorCisgICAgICAgIFJlY29yZCBwcmV2aW91c2x5IHNlbGVjdGVk
IGZpbGVzIGFuZCB0aGVuIGNvbXBhcmUgdGhlbSB3aXRoIG5ld2x5IHNlbGVjdGVkIGZpbGVzLgor
ICAgICAgICBJZiB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCBmaWxlcyBhbmQgdGhlaXIgb3JkZXIg
YXJlIG5vdCBlcXVhbCB0byB0aG9zZSBvZgorICAgICAgICB0aGUgbmV3bHkgc2VsZWN0ZWQgZmls
ZXMsIHdlIHRyaWdnZXIgdGhlICdjaGFuZ2UnIGV2ZW50LgorCisgICAgICAgIFJldmlld2VkIGJ5
IEtlbnQgVGFtdXJhLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvZmlsZS1pbnB1dC1jaGFu
Z2UtZXZlbnQuaHRtbAorCisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKTogQ2FsbHMgZGlzcGF0aENo
YW5nZUV2ZW50KCkgb25seSB3aGVuIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZpbGVzIGFyZSBk
aWZmZXJlbnQgZnJvbSB0aGUgbmV3bHkgc2VsZWN0ZWQgZmlsZXMKKwogMjAxMS0wNy0wMyAgUm9i
ZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVzdG9yZSBzY3JvbGwg
cG9zaXRpb24gb24gcGFnZSByZWxvYWRzIHNjaGVkdWxlZCBieSA8bWV0YSBodHRwLWVxdWl2PSJy
ZWZyZXNoIiBjb250ZW50PSJYWCIvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAK
aW5kZXggYmExMzA1YWE5OGYwNjkwOWJkMmNjODk1ZmM0MTczNmNkYzlhNjQ5MC4uOGVkOGZhNjZk
NDk4MmM2NDQ1M2QxZTUxN2M4Yzg1N2Y1YWQ1YmM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuY3BwCkBAIC0yNzcsNyArMjc3LDIwIEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6cmVx
dWVzdEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogCiB2b2lkIEZpbGVJbnB1dFR5
cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocykKIHsKLSAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IGVsZW1lbnQoKTsKKyAgICBSZWZQdHI8SFRNTElucHV0RWxl
bWVudD4gaW5wdXQgPSBlbGVtZW50KCk7CisKKyAgICBib29sIHBhdGhzQ2hhbmdlZCA9IGZhbHNl
OworICAgIGlmIChwYXRocy5zaXplKCkgIT0gbV9maWxlTGlzdC0+bGVuZ3RoKCkpCisgICAgICAg
IHBhdGhzQ2hhbmdlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBwYXRocy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKHBhdGhzW2ld
ICE9IG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSkgeworICAgICAgICAgICAgICAgIHBhdGhz
Q2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9CisKICAgICBzZXRGaWxlTGlzdChwYXRocyk7CiAKICAgICBpbnB1dC0+
c2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKQEAgLTI4OCw4ICszMDEs
MTMgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8U3RyaW5n
PiYgcGF0aHMpCiAKICAgICBpZiAoaW5wdXQtPnJlbmRlcmVyKCkpCiAgICAgICAgIGlucHV0LT5y
ZW5kZXJlcigpLT5yZXBhaW50KCk7Ci0gICAgLy8gVGhpcyBjYWxsIG1heSBjYXVzZSBkZXN0cnVj
dGlvbiBvZiB0aGlzIGluc3RhbmNlIGFuZCB0aHVzIG11c3QgYWx3YXlzIGJlIGxhc3QgaW4gdGhl
IGZ1bmN0aW9uLgotICAgIGlucHV0LT5kaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsK
KworICAgIGlmIChwYXRoc0NoYW5nZWQpIHsKKyAgICAgICAgLy8gVGhpcyBjYWxsIG1heSBjYXVz
ZSBkZXN0cnVjdGlvbiBvZiB8dGhpc3wgaW5zdGFuY2UuCisgICAgICAgIC8vIHxpbnB1dHwgaW5z
dGFuY2UgaXMgc2FmZSBzaW5jZSBpdCBpcyByZWYtY291bnRlZC4KKyAgICAgICAgaW5wdXQtPkhU
TUxFbGVtZW50OjpkaXNwYXRjaENoYW5nZUV2ZW50KCk7CisgICAgfQorICAgIGlucHV0LT5zZXRD
aGFuZ2VkU2luY2VMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChmYWxzZSk7CiB9CiAKICNpZiBF
TkFCTEUoRElSRUNUT1JZX1VQTE9BRCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99781</attachid>
            <date>2011-07-05 19:17:57 -0700</date>
            <delta_ts>2011-07-05 21:12:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63929-20110706111756.patch</filename>
            <type>text/plain</type>
            <size>10394</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAzNDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3NWVjMjY0OWRiZGQzYTM4ZDk0OWYy
Yjg1ZWEyZTczZTZhNjFlYTUwLi5lYTYyMDYwMjk1Yzk3MzJkMWE4ZDVmMjQ5YzQ5NzVhMGZmYTI2
OGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDctMDUgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBUcmlnZ2VyIGEgJ2NoYW5nZScgZXZlbnQgd2hl
bmV2ZXIgc2VsZWN0ZWQgZmlsZXMgYXJlIGNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTI5CisKKyAgICAgICAgUmVjb3JkIHByZXZpb3Vz
bHkgc2VsZWN0ZWQgZmlsZXMgYW5kIHRoZW4gY29tcGFyZSB0aGVtIHdpdGggbmV3bHkgc2VsZWN0
ZWQgZmlsZXMuCisgICAgICAgIElmIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZpbGVzIGFuZCB0
aGVpciBvcmRlciBhcmUgbm90IGVxdWFsIHRvIHRob3NlIG9mCisgICAgICAgIHRoZSBuZXdseSBz
ZWxlY3RlZCBmaWxlcywgd2UgdHJpZ2dlciB0aGUgJ29uY2hhbmdlJyBldmVudC4KKworICAgICAg
ICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKworICAgICAgICAqIGZhc3QvZm9ybXMvZmlsZS1p
bnB1dC1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL2ZpbGUtaW5wdXQtY2hhbmdlLWV2ZW50Lmh0bWw6IEFkZGVkLgorCiAyMDExLTA3LTAxICBH
YXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
aWxlLWlucHV0LWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2ZpbGUtaW5wdXQtY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTli
MTY3MzBmMjY3MTIzZGNkYjI3OWMxZTJlNDUwMDE5NDUwZWQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlLWlucHV0LWNoYW5nZS1ldmVudC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0MCBAQAorIAorVGhpcyB0ZXN0cyB0aGUgY29uZGl0aW9uIHRoYXQgdHJp
Z2dlcnMgYSAnY2hhbmdlJyBldmVudCBvbiBmaWxlIGlucHV0IGZvcm1zLgorCitUZXN0IHRoYXQg
dGhlICdjaGFuZ2UnIGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIHNpbmdsZSBmaWxlIGZvcm0gd2hl
biBhIHNlbGVjdGVkIGZpbGUgaXMgY2hhbmdlZDoKK1BBU1Mgc2luZ2xlRmlsZUlucHV0LnZhbHVl
IGlzICJDOlxcZmFrZXBhdGhcXGZvby50eHQiCitQQVNTIG9uQ2hhbmdlQ2FsbGVkIGlzIHRydWUK
K1BBU1Mgc2luZ2xlRmlsZUlucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGJhci50eHQiCitQ
QVNTIG9uQ2hhbmdlQ2FsbGVkIGlzIHRydWUKK1BBU1Mgc2luZ2xlRmlsZUlucHV0LnZhbHVlIGlz
ICJDOlxcZmFrZXBhdGhcXGJhci50eHQiCitQQVNTIG9uQ2hhbmdlQ2FsbGVkIGlzIGZhbHNlCitQ
QVNTIHNpbmdsZUZpbGVJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28udHh0IgorUEFT
UyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitUZXN0IHRoYXQgdGhlICdjaGFuZ2UnIGV2ZW50IGlz
IHRyaWdnZXJlZCBvbiBhIG11bHRpcGxlIGZpbGUgZm9ybSB3aGVuIGEgc2VsZWN0ZWQgZmlsZSBp
cyBjaGFuZ2VkOgorUEFTUyBtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUgaXMgIkM6XFxmYWtlcGF0
aFxcZm9vLnR4dCIKK1BBU1Mgb25DaGFuZ2VDYWxsZWQgaXMgdHJ1ZQorUEFTUyBtdWx0aXBsZUZp
bGVzSW5wdXQudmFsdWUgaXMgIkM6XFxmYWtlcGF0aFxcYmFyLnR4dCIKK1BBU1Mgb25DaGFuZ2VD
YWxsZWQgaXMgdHJ1ZQorUEFTUyBtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUgaXMgIkM6XFxmYWtl
cGF0aFxcYmFyLnR4dCIKK1BBU1Mgb25DaGFuZ2VDYWxsZWQgaXMgZmFsc2UKK1BBU1MgbXVsdGlw
bGVGaWxlc0lucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGZvby50eHQiCitQQVNTIG9uQ2hh
bmdlQ2FsbGVkIGlzIHRydWUKK1Rlc3QgdGhhdCB0aGUgJ2NoYW5nZScgZXZlbnQgaXMgdHJpZ2dl
cmVkIG9uIGEgbXVsdGlwbGUgZmlsZSBmb3JtIHdoZW4gc2VsZWN0ZWQgZmlsZXMgYXJlIGNoYW5n
ZWQ6CitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28u
dHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1
dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBp
cyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxm
b28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJ
bnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxl
ZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRo
XFxmb28udHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmls
ZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxiYXIudHh0IgorUEFTUyBvbkNoYW5nZUNh
bGxlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2Vw
YXRoXFxiYXIudHh0IgorUEFTUyBvbkNoYW5nZUNhbGxlZCBpcyBmYWxzZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS1pbnB1dC1jaGFuZ2UtZXZlbnQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZmlsZS1pbnB1dC1jaGFuZ2UtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
NTZmNjg2ZjM2NmZlNTFkNWUyZjg1Y2ZiZTk0ZmRmZDAzMjQzMGM1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlLWlucHV0LWNoYW5nZS1ldmVudC5odG1sCkBA
IC0wLDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJzaW5nbGVGaWxlIiBuYW1lPSJ1cGZpbGUi
IG9uY2hhbmdlPSJzaW5nbGVGaWxlU2VsZWN0ZWQoKSIgLz4KKzxpbnB1dCB0eXBlPSJmaWxlIiBp
ZD0ibXVsdGlwbGVGaWxlcyIgbmFtZT0idXBmaWxlW10iIG11bHRpcGxlPSJtdWx0aXBsZSIgb25j
aGFuZ2U9Im11bHRpcGxlRmlsZXNTZWxlY3RlZCgpIiAvPgorPGRpdiBpZD0iY29uc29sZSI+Cis8
cD4KK1RoaXMgdGVzdHMgdGhlIGNvbmRpdGlvbiB0aGF0IHRyaWdnZXJzIGEgJ2NoYW5nZScgZXZl
bnQgb24gZmlsZSBpbnB1dCBmb3Jtcy4KKzwvcD4KKzwvZGl2PgorPHNjcmlwdD4KK3ZhciBvbkNo
YW5nZUNhbGxlZDsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIHZh
ciBzaW5nbGVGaWxlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2luZ2xlRmlsZSIp
OworICAgIHZhciBtdWx0aXBsZUZpbGVzSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bXVsdGlwbGVGaWxlcyIpOworCisgICAgZGVidWcoIlRlc3QgdGhhdCB0aGUgJ2NoYW5nZScgZXZl
bnQgaXMgdHJpZ2dlcmVkIG9uIGEgc2luZ2xlIGZpbGUgZm9ybSB3aGVuIGEgc2VsZWN0ZWQgZmls
ZSBpcyBjaGFuZ2VkOiIpOworICAgIGRyYWdGaWxlc09udG9JbnB1dChzaW5nbGVGaWxlSW5wdXQs
IFsiZm9vLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNpbmdsZUZpbGVJbnB1
dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGZvby50eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFu
Z2VDYWxsZWQiLCAidHJ1ZSIpOworCisgICAgZHJhZ0ZpbGVzT250b0lucHV0KHNpbmdsZUZpbGVJ
bnB1dCwgWyJiYXIudHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic2luZ2xlRmls
ZUlucHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcYmFyLnR4dCIpOworICAgIHNob3VsZEJlKCJv
bkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQoc2luZ2xl
RmlsZUlucHV0LCBbImJhci50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaW5n
bGVGaWxlSW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxiYXIudHh0Iik7CisgICAgc2hvdWxk
QmUoIm9uQ2hhbmdlQ2FsbGVkIiwgImZhbHNlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQo
c2luZ2xlRmlsZUlucHV0LCBbImZvby50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJzaW5nbGVGaWxlSW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxmb28udHh0Iik7CisgICAg
c2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAgIGRlYnVnKCJUZXN0IHRo
YXQgdGhlICdjaGFuZ2UnIGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIG11bHRpcGxlIGZpbGUgZm9y
bSB3aGVuIGEgc2VsZWN0ZWQgZmlsZSBpcyBjaGFuZ2VkOiIpOworICAgIGRyYWdGaWxlc09udG9J
bnB1dChtdWx0aXBsZUZpbGVzSW5wdXQsIFsiZm9vLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIm11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGZvby50
eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFuZ2VDYWxsZWQiLCAidHJ1ZSIpOworCisgICAgZHJh
Z0ZpbGVzT250b0lucHV0KG11bHRpcGxlRmlsZXNJbnB1dCwgWyJiYXIudHh0Il0pOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6XFxmYWtl
cGF0aFxcYmFyLnR4dCIpOworICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7
CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImJhci50eHQi
XSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUi
LCAiQzpcXGZha2VwYXRoXFxiYXIudHh0Iik7CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVk
IiwgImZhbHNlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0
LCBbImZvby50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtdWx0aXBsZUZpbGVz
SW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxmb28udHh0Iik7CisgICAgc2hvdWxkQmUoIm9u
Q2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAgIGRlYnVnKCJUZXN0IHRoYXQgdGhlICdjaGFu
Z2UnIGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIG11bHRpcGxlIGZpbGUgZm9ybSB3aGVuIHNlbGVj
dGVkIGZpbGVzIGFyZSBjaGFuZ2VkOiIpOworICAgIGRyYWdGaWxlc09udG9JbnB1dChtdWx0aXBs
ZUZpbGVzSW5wdXQsIFsiZm9vLnR4dCIsICJiYXIudHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygibXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcZm9vLnR4
dCIpOworICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7CisKKyAgICBkcmFn
RmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImZvby50eHQiXSk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUiLCAiQzpcXGZha2Vw
YXRoXFxmb28udHh0Iik7CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwgInRydWUiKTsK
KworICAgIGRyYWdGaWxlc09udG9JbnB1dChtdWx0aXBsZUZpbGVzSW5wdXQsIFsiZm9vLnR4dCIs
ICJiYXIudHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVGaWxlc0lu
cHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcZm9vLnR4dCIpOworICAgIHNob3VsZEJlKCJvbkNo
YW5nZUNhbGxlZCIsICJ0cnVlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVG
aWxlc0lucHV0LCBbImZvby50eHQiLCAiYmFyLnR4dCIsICJiYXoudHh0Il0pOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0
aFxcZm9vLnR4dCIpOworICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJ0cnVlIik7CisK
KyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImZvby50eHQiLCAi
YmFyLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm11bHRpcGxlRmlsZXNJbnB1
dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGZvby50eHQiKTsKKyAgICBzaG91bGRCZSgib25DaGFu
Z2VDYWxsZWQiLCAidHJ1ZSIpOworCisgICAgZHJhZ0ZpbGVzT250b0lucHV0KG11bHRpcGxlRmls
ZXNJbnB1dCwgWyJiYXIudHh0IiwgImZvby50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxiYXIudHh0Iik7
CisgICAgc2hvdWxkQmUoIm9uQ2hhbmdlQ2FsbGVkIiwgInRydWUiKTsKKworICAgIGRyYWdGaWxl
c09udG9JbnB1dChtdWx0aXBsZUZpbGVzSW5wdXQsIFsiYmFyLnR4dCIsICJmb28udHh0Il0pOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6
XFxmYWtlcGF0aFxcYmFyLnR4dCIpOworICAgIHNob3VsZEJlKCJvbkNoYW5nZUNhbGxlZCIsICJm
YWxzZSIpOworfQorCitmdW5jdGlvbiBzaW5nbGVGaWxlU2VsZWN0ZWQoKSB7CisgICAgb25DaGFu
Z2VDYWxsZWQgPSB0cnVlOworfQorCitmdW5jdGlvbiBtdWx0aXBsZUZpbGVzU2VsZWN0ZWQoKSB7
CisgICAgb25DaGFuZ2VDYWxsZWQgPSB0cnVlOworfQorCitmdW5jdGlvbiBtb3ZlTW91c2VUb0Nl
bnRlck9mRWxlbWVudChlbGVtZW50KSB7CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNl
dExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVsZW1l
bnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKGNlbnRlclgsIGNlbnRlclkpOworfQorCitmdW5jdGlvbiBkcmFnRmlsZXNP
bnRvSW5wdXQoaW5wdXQsIGZpbGVzKSB7CisgICAgb25DaGFuZ2VDYWxsZWQgPSBmYWxzZTsKKyAg
ICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoZmlsZXMpOworICAgIG1vdmVNb3VzZVRv
Q2VudGVyT2ZFbGVtZW50KGlucHV0KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZDc2YTQ4MjhmOGYyYTdmYmRiMjgwNmM1ZDE4NTA2ZjU2NmFlNmM5
NS4uZTEyODJkNGM5NmJmZTczYjk1ZDQ0MmE5ZTk5MjEwNzdkNGU5NDdiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDExLTA3LTA1ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgVHJpZ2dlciBhICdjaGFuZ2UnIGV2ZW50IHdoZW5ldmVyIHNlbGVj
dGVkIGZpbGVzIGFyZSBjaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MzkyOQorCisgICAgICAgIFJlY29yZCBwcmV2aW91c2x5IHNlbGVjdGVk
IGZpbGVzIGFuZCB0aGVuIGNvbXBhcmUgdGhlbSB3aXRoIG5ld2x5IHNlbGVjdGVkIGZpbGVzLgor
ICAgICAgICBJZiB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCBmaWxlcyBhbmQgdGhlaXIgb3JkZXIg
YXJlIG5vdCBlcXVhbCB0byB0aG9zZSBvZgorICAgICAgICB0aGUgbmV3bHkgc2VsZWN0ZWQgZmls
ZXMsIHdlIHRyaWdnZXIgdGhlICdjaGFuZ2UnIGV2ZW50LgorCisgICAgICAgIFJldmlld2VkIGJ5
IEtlbnQgVGFtdXJhLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvZmlsZS1pbnB1dC1jaGFu
Z2UtZXZlbnQuaHRtbAorCisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKTogQ2FsbHMgZGlzcGF0aENo
YW5nZUV2ZW50KCkgb25seSB3aGVuIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZpbGVzIGFyZSBk
aWZmZXJlbnQgZnJvbSB0aGUgbmV3bHkgc2VsZWN0ZWQgZmlsZXMKKwogMjAxMS0wNy0wMyAgUm9i
ZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVzdG9yZSBzY3JvbGwg
cG9zaXRpb24gb24gcGFnZSByZWxvYWRzIHNjaGVkdWxlZCBieSA8bWV0YSBodHRwLWVxdWl2PSJy
ZWZyZXNoIiBjb250ZW50PSJYWCIvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAK
aW5kZXggYmExMzA1YWE5OGYwNjkwOWJkMmNjODk1ZmM0MTczNmNkYzlhNjQ5MC4uZTY3MDY4Y2E3
NDVkMjliYTA5Y2EwYzQ4MTZhMGRiNjVlN2E5NmJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuY3BwCkBAIC0yNzcsNyArMjc3LDIwIEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6cmVx
dWVzdEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogCiB2b2lkIEZpbGVJbnB1dFR5
cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocykKIHsKLSAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IGVsZW1lbnQoKTsKKyAgICBSZWZQdHI8SFRNTElucHV0RWxl
bWVudD4gaW5wdXQgPSBlbGVtZW50KCk7CisKKyAgICBib29sIHBhdGhzQ2hhbmdlZCA9IGZhbHNl
OworICAgIGlmIChwYXRocy5zaXplKCkgIT0gbV9maWxlTGlzdC0+bGVuZ3RoKCkpCisgICAgICAg
IHBhdGhzQ2hhbmdlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBwYXRocy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKHBhdGhzW2ld
ICE9IG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSkgeworICAgICAgICAgICAgICAgIHBhdGhz
Q2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9CisKICAgICBzZXRGaWxlTGlzdChwYXRocyk7CiAKICAgICBpbnB1dC0+
c2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKQEAgLTI4OCw4ICszMDEs
MTMgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8U3RyaW5n
PiYgcGF0aHMpCiAKICAgICBpZiAoaW5wdXQtPnJlbmRlcmVyKCkpCiAgICAgICAgIGlucHV0LT5y
ZW5kZXJlcigpLT5yZXBhaW50KCk7Ci0gICAgLy8gVGhpcyBjYWxsIG1heSBjYXVzZSBkZXN0cnVj
dGlvbiBvZiB0aGlzIGluc3RhbmNlIGFuZCB0aHVzIG11c3QgYWx3YXlzIGJlIGxhc3QgaW4gdGhl
IGZ1bmN0aW9uLgotICAgIGlucHV0LT5kaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsK
KworICAgIGlmIChwYXRoc0NoYW5nZWQpIHsKKyAgICAgICAgLy8gVGhpcyBjYWxsIG1heSBjYXVz
ZSBkZXN0cnVjdGlvbiBvZiB0aGlzIGluc3RhbmNlLgorICAgICAgICAvLyBpbnB1dCBpbnN0YW5j
ZSBpcyBzYWZlIHNpbmNlIGl0IGlzIHJlZi1jb3VudGVkLgorICAgICAgICBpbnB1dC0+SFRNTEVs
ZW1lbnQ6OmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKKyAgICB9CisgICAgaW5wdXQtPnNldENoYW5n
ZWRTaW5jZUxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KGZhbHNlKTsKIH0KIAogI2lmIEVOQUJM
RShESVJFQ1RPUllfVVBMT0FEKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99787</attachid>
            <date>2011-07-05 21:12:56 -0700</date>
            <delta_ts>2011-07-05 23:37:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63929-20110706131255.patch</filename>
            <type>text/plain</type>
            <size>10466</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAzNDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3NWVjMjY0OWRiZGQzYTM4ZDk0OWYy
Yjg1ZWEyZTczZTZhNjFlYTUwLi41ZjllMzFjMzFiZDFlNWNhNmQ3ZDI3ODNlYzJkNTIxMDg4Mzhj
ZGQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDctMDUgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBUcmlnZ2VyIGEgJ2NoYW5nZScgZXZlbnQgd2hl
bmV2ZXIgc2VsZWN0ZWQgZmlsZXMgYXJlIGNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVjb3JkIHByZXZpb3VzbHkgc2VsZWN0ZWQgZmlsZXMg
YW5kIHRoZW4gY29tcGFyZSB0aGVtIHdpdGggbmV3bHkgc2VsZWN0ZWQgZmlsZXMuCisgICAgICAg
IElmIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZpbGVzIGFuZCB0aGVpciBvcmRlciBhcmUgbm90
IGVxdWFsIHRvIHRob3NlIG9mCisgICAgICAgIHRoZSBuZXdseSBzZWxlY3RlZCBmaWxlcywgd2Ug
dHJpZ2dlciB0aGUgJ2NoYW5nZScgZXZlbnQuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2ZpbGUt
aW5wdXQtY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9maWxlLWlucHV0LWNoYW5nZS1ldmVudC5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0wMSAg
R2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
ZmlsZS1pbnB1dC1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9maWxlLWlucHV0LWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjYz
OTYwMjVkMDU0ZWM3NWIwNmE3OWQzNWZkNDZhZWIzNWJmYWZhNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS1pbnB1dC1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNDAgQEAKKyAKK1RoaXMgdGVzdHMgdGhlIGNvbmRpdGlvbiB0aGF0IHRy
aWdnZXJzIGEgJ2NoYW5nZScgZXZlbnQgb24gZmlsZSBpbnB1dCBmb3Jtcy4KKworVGVzdCB0aGF0
IHRoZSAnY2hhbmdlJyBldmVudCBpcyB0cmlnZ2VyZWQgb24gYSBzaW5nbGUgZmlsZSBmb3JtIHdo
ZW4gYSBzZWxlY3RlZCBmaWxlIGlzIGNoYW5nZWQ6CitQQVNTIHNpbmdsZUZpbGVJbnB1dC52YWx1
ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28udHh0IgorUEFTUyBjaGFuZ2VEaXNwYXRjaGVkIGlzIHRy
dWUKK1BBU1Mgc2luZ2xlRmlsZUlucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGJhci50eHQi
CitQQVNTIGNoYW5nZURpc3BhdGNoZWQgaXMgdHJ1ZQorUEFTUyBzaW5nbGVGaWxlSW5wdXQudmFs
dWUgaXMgIkM6XFxmYWtlcGF0aFxcYmFyLnR4dCIKK1BBU1MgY2hhbmdlRGlzcGF0Y2hlZCBpcyBm
YWxzZQorUEFTUyBzaW5nbGVGaWxlSW5wdXQudmFsdWUgaXMgIkM6XFxmYWtlcGF0aFxcZm9vLnR4
dCIKK1BBU1MgY2hhbmdlRGlzcGF0Y2hlZCBpcyB0cnVlCitUZXN0IHRoYXQgdGhlICdjaGFuZ2Un
IGV2ZW50IGlzIHRyaWdnZXJlZCBvbiBhIG11bHRpcGxlIGZpbGUgZm9ybSB3aGVuIGEgc2VsZWN0
ZWQgZmlsZSBpcyBjaGFuZ2VkOgorUEFTUyBtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUgaXMgIkM6
XFxmYWtlcGF0aFxcZm9vLnR4dCIKK1BBU1MgY2hhbmdlRGlzcGF0Y2hlZCBpcyB0cnVlCitQQVNT
IG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRoXFxiYXIudHh0IgorUEFT
UyBjaGFuZ2VEaXNwYXRjaGVkIGlzIHRydWUKK1BBU1MgbXVsdGlwbGVGaWxlc0lucHV0LnZhbHVl
IGlzICJDOlxcZmFrZXBhdGhcXGJhci50eHQiCitQQVNTIGNoYW5nZURpc3BhdGNoZWQgaXMgZmFs
c2UKK1BBU1MgbXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGZvby50
eHQiCitQQVNTIGNoYW5nZURpc3BhdGNoZWQgaXMgdHJ1ZQorVGVzdCB0aGF0IHRoZSAnY2hhbmdl
JyBldmVudCBpcyB0cmlnZ2VyZWQgb24gYSBtdWx0aXBsZSBmaWxlIGZvcm0gd2hlbiBzZWxlY3Rl
ZCBmaWxlcyBhcmUgY2hhbmdlZDoKK1BBU1MgbXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIGlzICJD
OlxcZmFrZXBhdGhcXGZvby50eHQiCitQQVNTIGNoYW5nZURpc3BhdGNoZWQgaXMgdHJ1ZQorUEFT
UyBtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUgaXMgIkM6XFxmYWtlcGF0aFxcZm9vLnR4dCIKK1BB
U1MgY2hhbmdlRGlzcGF0Y2hlZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1
ZSBpcyAiQzpcXGZha2VwYXRoXFxmb28udHh0IgorUEFTUyBjaGFuZ2VEaXNwYXRjaGVkIGlzIHRy
dWUKK1BBU1MgbXVsdGlwbGVGaWxlc0lucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGZvby50
eHQiCitQQVNTIGNoYW5nZURpc3BhdGNoZWQgaXMgdHJ1ZQorUEFTUyBtdWx0aXBsZUZpbGVzSW5w
dXQudmFsdWUgaXMgIkM6XFxmYWtlcGF0aFxcZm9vLnR4dCIKK1BBU1MgY2hhbmdlRGlzcGF0Y2hl
ZCBpcyB0cnVlCitQQVNTIG11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSBpcyAiQzpcXGZha2VwYXRo
XFxiYXIudHh0IgorUEFTUyBjaGFuZ2VEaXNwYXRjaGVkIGlzIHRydWUKK1BBU1MgbXVsdGlwbGVG
aWxlc0lucHV0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGJhci50eHQiCitQQVNTIGNoYW5nZURp
c3BhdGNoZWQgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUtaW5w
dXQtY2hhbmdlLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUtaW5wdXQt
Y2hhbmdlLWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIwZTFiOTA0ZjIwNWI0ZGIwNWQxZWQwOTc5
MTQwNDhkNWQ0YWY1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
ZmlsZS1pbnB1dC1jaGFuZ2UtZXZlbnQuaHRtbApAQCAtMCwwICsxLDExMCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbnB1dCB0eXBlPSJmaWxl
IiBpZD0ic2luZ2xlRmlsZSIgbmFtZT0idXBmaWxlIiBvbmNoYW5nZT0ic2luZ2xlRmlsZVNlbGVj
dGVkKCkiIC8+Cis8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9Im11bHRpcGxlRmlsZXMiIG5hbWU9InVw
ZmlsZVtdIiBtdWx0aXBsZT0ibXVsdGlwbGUiIG9uY2hhbmdlPSJtdWx0aXBsZUZpbGVzU2VsZWN0
ZWQoKSIgLz4KKzxkaXYgaWQ9ImNvbnNvbGUiPgorPHA+CitUaGlzIHRlc3RzIHRoZSBjb25kaXRp
b24gdGhhdCB0cmlnZ2VycyBhICdjaGFuZ2UnIGV2ZW50IG9uIGZpbGUgaW5wdXQgZm9ybXMuCis8
L3A+Cis8L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgY2hhbmdlRGlzcGF0Y2hlZDsKKworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIHZhciBzaW5nbGVGaWxlSW5wdXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic2luZ2xlRmlsZSIpOworICAgIHZhciBtdWx0aXBsZUZpbGVz
SW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXVsdGlwbGVGaWxlcyIpOworCisgICAg
ZGVidWcoIlRlc3QgdGhhdCB0aGUgJ2NoYW5nZScgZXZlbnQgaXMgdHJpZ2dlcmVkIG9uIGEgc2lu
Z2xlIGZpbGUgZm9ybSB3aGVuIGEgc2VsZWN0ZWQgZmlsZSBpcyBjaGFuZ2VkOiIpOworICAgIGRy
YWdGaWxlc09udG9JbnB1dChzaW5nbGVGaWxlSW5wdXQsIFsiZm9vLnR4dCJdKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInNpbmdsZUZpbGVJbnB1dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhc
XGZvby50eHQiKTsKKyAgICBzaG91bGRCZSgiY2hhbmdlRGlzcGF0Y2hlZCIsICJ0cnVlIik7CisK
KyAgICBkcmFnRmlsZXNPbnRvSW5wdXQoc2luZ2xlRmlsZUlucHV0LCBbImJhci50eHQiXSk7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaW5nbGVGaWxlSW5wdXQudmFsdWUiLCAiQzpcXGZh
a2VwYXRoXFxiYXIudHh0Iik7CisgICAgc2hvdWxkQmUoImNoYW5nZURpc3BhdGNoZWQiLCAidHJ1
ZSIpOworCisgICAgZHJhZ0ZpbGVzT250b0lucHV0KHNpbmdsZUZpbGVJbnB1dCwgWyJiYXIudHh0
Il0pOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic2luZ2xlRmlsZUlucHV0LnZhbHVlIiwg
IkM6XFxmYWtlcGF0aFxcYmFyLnR4dCIpOworICAgIHNob3VsZEJlKCJjaGFuZ2VEaXNwYXRjaGVk
IiwgImZhbHNlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQoc2luZ2xlRmlsZUlucHV0LCBb
ImZvby50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaW5nbGVGaWxlSW5wdXQu
dmFsdWUiLCAiQzpcXGZha2VwYXRoXFxmb28udHh0Iik7CisgICAgc2hvdWxkQmUoImNoYW5nZURp
c3BhdGNoZWQiLCAidHJ1ZSIpOworCisgICAgZGVidWcoIlRlc3QgdGhhdCB0aGUgJ2NoYW5nZScg
ZXZlbnQgaXMgdHJpZ2dlcmVkIG9uIGEgbXVsdGlwbGUgZmlsZSBmb3JtIHdoZW4gYSBzZWxlY3Rl
ZCBmaWxlIGlzIGNoYW5nZWQ6Iik7CisgICAgZHJhZ0ZpbGVzT250b0lucHV0KG11bHRpcGxlRmls
ZXNJbnB1dCwgWyJmb28udHh0Il0pOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXVsdGlw
bGVGaWxlc0lucHV0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcZm9vLnR4dCIpOworICAgIHNob3Vs
ZEJlKCJjaGFuZ2VEaXNwYXRjaGVkIiwgInRydWUiKTsKKworICAgIGRyYWdGaWxlc09udG9JbnB1
dChtdWx0aXBsZUZpbGVzSW5wdXQsIFsiYmFyLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIm11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGJhci50eHQi
KTsKKyAgICBzaG91bGRCZSgiY2hhbmdlRGlzcGF0Y2hlZCIsICJ0cnVlIik7CisKKyAgICBkcmFn
RmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImJhci50eHQiXSk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUiLCAiQzpcXGZha2Vw
YXRoXFxiYXIudHh0Iik7CisgICAgc2hvdWxkQmUoImNoYW5nZURpc3BhdGNoZWQiLCAiZmFsc2Ui
KTsKKworICAgIGRyYWdGaWxlc09udG9JbnB1dChtdWx0aXBsZUZpbGVzSW5wdXQsIFsiZm9vLnR4
dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm11bHRpcGxlRmlsZXNJbnB1dC52YWx1
ZSIsICJDOlxcZmFrZXBhdGhcXGZvby50eHQiKTsKKyAgICBzaG91bGRCZSgiY2hhbmdlRGlzcGF0
Y2hlZCIsICJ0cnVlIik7CisKKyAgICBkZWJ1ZygiVGVzdCB0aGF0IHRoZSAnY2hhbmdlJyBldmVu
dCBpcyB0cmlnZ2VyZWQgb24gYSBtdWx0aXBsZSBmaWxlIGZvcm0gd2hlbiBzZWxlY3RlZCBmaWxl
cyBhcmUgY2hhbmdlZDoiKTsKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lu
cHV0LCBbImZvby50eHQiLCAiYmFyLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
Im11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGZvby50eHQiKTsKKyAg
ICBzaG91bGRCZSgiY2hhbmdlRGlzcGF0Y2hlZCIsICJ0cnVlIik7CisKKyAgICBkcmFnRmlsZXNP
bnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImZvby50eHQiXSk7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJtdWx0aXBsZUZpbGVzSW5wdXQudmFsdWUiLCAiQzpcXGZha2VwYXRoXFxm
b28udHh0Iik7CisgICAgc2hvdWxkQmUoImNoYW5nZURpc3BhdGNoZWQiLCAidHJ1ZSIpOworCisg
ICAgZHJhZ0ZpbGVzT250b0lucHV0KG11bHRpcGxlRmlsZXNJbnB1dCwgWyJmb28udHh0IiwgImJh
ci50eHQiXSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtdWx0aXBsZUZpbGVzSW5wdXQu
dmFsdWUiLCAiQzpcXGZha2VwYXRoXFxmb28udHh0Iik7CisgICAgc2hvdWxkQmUoImNoYW5nZURp
c3BhdGNoZWQiLCAidHJ1ZSIpOworCisgICAgZHJhZ0ZpbGVzT250b0lucHV0KG11bHRpcGxlRmls
ZXNJbnB1dCwgWyJmb28udHh0IiwgImJhci50eHQiLCAiYmF6LnR4dCJdKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoIm11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhc
XGZvby50eHQiKTsKKyAgICBzaG91bGRCZSgiY2hhbmdlRGlzcGF0Y2hlZCIsICJ0cnVlIik7CisK
KyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImZvby50eHQiLCAi
YmFyLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm11bHRpcGxlRmlsZXNJbnB1
dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGZvby50eHQiKTsKKyAgICBzaG91bGRCZSgiY2hhbmdl
RGlzcGF0Y2hlZCIsICJ0cnVlIik7CisKKyAgICBkcmFnRmlsZXNPbnRvSW5wdXQobXVsdGlwbGVG
aWxlc0lucHV0LCBbImJhci50eHQiLCAiZm9vLnR4dCJdKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIm11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSIsICJDOlxcZmFrZXBhdGhcXGJhci50eHQi
KTsKKyAgICBzaG91bGRCZSgiY2hhbmdlRGlzcGF0Y2hlZCIsICJ0cnVlIik7CisKKyAgICBkcmFn
RmlsZXNPbnRvSW5wdXQobXVsdGlwbGVGaWxlc0lucHV0LCBbImJhci50eHQiLCAiZm9vLnR4dCJd
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm11bHRpcGxlRmlsZXNJbnB1dC52YWx1ZSIs
ICJDOlxcZmFrZXBhdGhcXGJhci50eHQiKTsKKyAgICBzaG91bGRCZSgiY2hhbmdlRGlzcGF0Y2hl
ZCIsICJmYWxzZSIpOworfQorCitmdW5jdGlvbiBzaW5nbGVGaWxlU2VsZWN0ZWQoKSB7CisgICAg
Y2hhbmdlRGlzcGF0Y2hlZCA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIG11bHRpcGxlRmlsZXNTZWxl
Y3RlZCgpIHsKKyAgICBjaGFuZ2VEaXNwYXRjaGVkID0gdHJ1ZTsKK30KKworZnVuY3Rpb24gbW92
ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZWxlbWVudCkgeworICAgIHZhciBjZW50ZXJYID0gZWxl
bWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgdmFyIGNlbnRl
clkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhjZW50ZXJYLCBjZW50ZXJZKTsKK30KKworZnVuY3Rpb24g
ZHJhZ0ZpbGVzT250b0lucHV0KGlucHV0LCBmaWxlcykgeworICAgIGNoYW5nZURpc3BhdGNoZWQg
PSBmYWxzZTsKKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoZmlsZXMpOworICAg
IG1vdmVNb3VzZVRvQ2VudGVyT2ZFbGVtZW50KGlucHV0KTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDc2YTQ4MjhmOGYyYTdmYmRiMjgwNmM1ZDE4
NTA2ZjU2NmFlNmM5NS4uZDE1OTVkMTE2MjIyMWU1ZGU0YTZhYWUxMThjMzg1YzJjZTU2NjZlNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTA3LTA1ICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGdvb2dsZS5jb20+CisKKyAgICAgICAgVHJpZ2dlciBhICdjaGFuZ2UnIGV2ZW50IHdo
ZW5ldmVyIHNlbGVjdGVkIGZpbGVzIGFyZSBjaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzkyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlY29yZCBwcmV2aW91c2x5IHNlbGVjdGVkIGZpbGVz
IGFuZCB0aGVuIGNvbXBhcmUgdGhlbSB3aXRoIG5ld2x5IHNlbGVjdGVkIGZpbGVzLgorICAgICAg
ICBJZiB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCBmaWxlcyBhbmQgdGhlaXIgb3JkZXIgYXJlIG5v
dCBlcXVhbCB0byB0aG9zZSBvZgorICAgICAgICB0aGUgbmV3bHkgc2VsZWN0ZWQgZmlsZXMsIHdl
IHRyaWdnZXIgdGhlICdjaGFuZ2UnIGV2ZW50LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMv
ZmlsZS1pbnB1dC1jaGFuZ2UtZXZlbnQuaHRtbAorCisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKTog
Q2FsbHMgZGlzcGF0aENoYW5nZUV2ZW50KCkgb25seSB3aGVuIHRoZSBwcmV2aW91c2x5IHNlbGVj
dGVkIGZpbGVzIGFyZSBkaWZmZXJlbnQgZnJvbSB0aGUgbmV3bHkgc2VsZWN0ZWQgZmlsZXMKKwog
MjAxMS0wNy0wMyAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmVzdG9yZSBzY3JvbGwgcG9zaXRpb24gb24gcGFnZSByZWxvYWRzIHNjaGVkdWxlZCBieSA8bWV0
YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSJYWCIvPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmls
ZUlucHV0VHlwZS5jcHAKaW5kZXggYmExMzA1YWE5OGYwNjkwOWJkMmNjODk1ZmM0MTczNmNkYzlh
NjQ5MC4uNWYyMjRlNzM1YTM0NjllMjk3YmRkYmI4NGQxMWQzZTIzYjcyYTZmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0yNzcsNyArMjc3LDIwIEBAIHZvaWQgRmls
ZUlucHV0VHlwZTo6cmVxdWVzdEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogCiB2
b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRo
cykKIHsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IGVsZW1lbnQoKTsKKyAgICBSZWZQ
dHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQgPSBlbGVtZW50KCk7CisKKyAgICBib29sIHBhdGhz
Q2hhbmdlZCA9IGZhbHNlOworICAgIGlmIChwYXRocy5zaXplKCkgIT0gbV9maWxlTGlzdC0+bGVu
Z3RoKCkpCisgICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXRocy5zaXplKCk7ICsraSkgeworICAgICAgICAg
ICAgaWYgKHBhdGhzW2ldICE9IG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSkgeworICAgICAg
ICAgICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKICAgICBzZXRGaWxlTGlzdChwYXRocyk7
CiAKICAgICBpbnB1dC0+c2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsK
QEAgLTI4OCw4ICszMDEsMTMgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpmaWxlc0Nob3Nlbihjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiAKICAgICBpZiAoaW5wdXQtPnJlbmRlcmVyKCkpCiAg
ICAgICAgIGlucHV0LT5yZW5kZXJlcigpLT5yZXBhaW50KCk7Ci0gICAgLy8gVGhpcyBjYWxsIG1h
eSBjYXVzZSBkZXN0cnVjdGlvbiBvZiB0aGlzIGluc3RhbmNlIGFuZCB0aHVzIG11c3QgYWx3YXlz
IGJlIGxhc3QgaW4gdGhlIGZ1bmN0aW9uLgotICAgIGlucHV0LT5kaXNwYXRjaEZvcm1Db250cm9s
Q2hhbmdlRXZlbnQoKTsKKworICAgIGlmIChwYXRoc0NoYW5nZWQpIHsKKyAgICAgICAgLy8gVGhp
cyBjYWxsIG1heSBjYXVzZSBkZXN0cnVjdGlvbiBvZiB0aGlzIGluc3RhbmNlLgorICAgICAgICAv
LyBpbnB1dCBpbnN0YW5jZSBpcyBzYWZlIHNpbmNlIGl0IGlzIHJlZi1jb3VudGVkLgorICAgICAg
ICBpbnB1dC0+SFRNTEVsZW1lbnQ6OmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKKyAgICB9CisgICAg
aW5wdXQtPnNldENoYW5nZWRTaW5jZUxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KGZhbHNlKTsK
IH0KIAogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>