<?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>47318</bug_id>
          
          <creation_ts>2010-10-06 18:25:49 -0700</creation_ts>
          <short_desc>FileWriter should hold a reference to a Blob during write</short_desc>
          <delta_ts>2010-10-11 21:09:06 -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>DOM</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>44358</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric U.">ericu</reporter>
          <assigned_to name="Eric U.">ericu</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dumi</cc>
    
    <cc>kinuko</cc>
    
    <cc>levin</cc>
    
    <cc>michaeln</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>290744</commentid>
    <comment_count>0</comment_count>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-06 18:25:49 -0700</bug_when>
    <thetext>The current Chromium WebKit API just grabs the URL of a Blob and passes that to the writer.
If the Blob itself is garbage-collected while the write is taking place, the write will fail.
This seems like a very nonintuitive result.  For example:

function doWriter(fileWriter) {
  var bb = new BlobBuilder();
  bb.append(&quot;foo&quot;);
  var blob = bb.getBlob();
  fileWriter.write(blob);
}

If that blob gets garbage-collected very quickly, this write could fail, which I clearly the wrong behavior.

FileWriter should hold on to a reference to the blob it&apos;s writing until the write is complete, so that it sticks around regardless of the underlying implementation of AsyncFileWriter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291406</commentid>
    <comment_count>1</comment_count>
      <attachid>70191</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-07 19:37:06 -0700</bug_when>
    <thetext>Created attachment 70191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291410</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-10-07 19:47:38 -0700</bug_when>
    <thetext>patch looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291417</commentid>
    <comment_count>3</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-07 19:56:46 -0700</bug_when>
    <thetext>LGTM too. Yeah we would need that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291455</commentid>
    <comment_count>4</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-10-07 22:53:43 -0700</bug_when>
    <thetext>Test?

(Even if it doesn&apos;t fail all of the time. A test that becomes flaky if this break would be good. You could put a note in the test about why it might be flaky even.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291457</commentid>
    <comment_count>5</comment_count>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-07 22:57:11 -0700</bug_when>
    <thetext>I&apos;ll be adding FileWriter layout tests tomorrow, and I&apos;ll see if I can include one that tries to tickle this a bit.  I suppose the thing to do is to do a large write while churning memory a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291468</commentid>
    <comment_count>6</comment_count>
      <attachid>70191</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-10-07 23:26:18 -0700</bug_when>
    <thetext>Comment on attachment 70191
Patch

Please add a test with the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291978</commentid>
    <comment_count>7</comment_count>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-08 17:27:19 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 70191 [details])
&gt; Please add a test with the patch.

The Chromium implementation is now complete, with the exception of this bugfix.
However, there is not yet a TestShell implementation or a WebCore/Safari implementation.  So there&apos;s nothing to run an automated LayoutTest in yet, although I can run them manually using Chromium.

How about I add a test that I can manually run, but mark it as skipped for now, and write the TestShell implementation of FileWriter next week?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291999</commentid>
    <comment_count>8</comment_count>
      <attachid>70328</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-08 18:17:41 -0700</bug_when>
    <thetext>Created attachment 70328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292001</commentid>
    <comment_count>9</comment_count>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-08 18:19:34 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 70191 [details] [details])
&gt; &gt; Please add a test with the patch.
&gt; 
&gt; The Chromium implementation is now complete, with the exception of this bugfix.
&gt; However, there is not yet a TestShell implementation or a WebCore/Safari implementation.  So there&apos;s nothing to run an automated LayoutTest in yet, although I can run them manually using Chromium.
&gt; 
&gt; How about I add a test that I can manually run, but mark it as skipped for now, and write the TestShell implementation of FileWriter next week?

Update: I&apos;ve added a suppressed test.  The output was generated by running the page in Chromium, built from an unchanged source tree.  Michael Nordman has volunteered to put in the TestShell implementation of FileWriter, so we&apos;ll be able to remove the suppression shortly.

I&apos;m working on more tests now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292013</commentid>
    <comment_count>10</comment_count>
      <attachid>70328</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-08 18:49:52 -0700</bug_when>
    <thetext>Comment on attachment 70328
Patch

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

(Haven&apos;t looked into the code, a comment just for suppression...)

&gt; LayoutTests/ChangeLog:20
&gt; +        * platform/chromium/fast/filesystem/Skipped: Added.

For chromium the suppression needs to be added in platform/chromium/test_expectations.txt.
BUGXXXXX SKIP : fast/filesystem/file-writer-gc-blob.html = FAIL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292020</commentid>
    <comment_count>11</comment_count>
      <attachid>70332</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-08 19:07:21 -0700</bug_when>
    <thetext>Created attachment 70332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292021</commentid>
    <comment_count>12</comment_count>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-08 19:07:47 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 70328 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=70328&amp;action=review
&gt; 
&gt; (Haven&apos;t looked into the code, a comment just for suppression...)
&gt; 
&gt; &gt; LayoutTests/ChangeLog:20
&gt; &gt; +        * platform/chromium/fast/filesystem/Skipped: Added.
&gt; 
&gt; For chromium the suppression needs to be added in platform/chromium/test_expectations.txt.
&gt; BUGXXXXX SKIP : fast/filesystem/file-writer-gc-blob.html = FAIL

Fixed, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292448</commentid>
    <comment_count>13</comment_count>
      <attachid>70332</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-10-11 03:48:27 -0700</bug_when>
    <thetext>Comment on attachment 70332
Patch

I&apos;m not doing a cq+ right now because I don&apos;t want to deal with any failures right now. Just get any committer to to cq+ it in the morning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292564</commentid>
    <comment_count>14</comment_count>
      <attachid>70332</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-11 11:10:21 -0700</bug_when>
    <thetext>Comment on attachment 70332
Patch

Rejecting patch 70332 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--quiet&apos;, 70332]&quot; exit_code: 2
Cleaning working directory
Updating working directory
Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=70332&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=47318&amp;ctype=xml
Processing 1 patch from 1 bug.
Processing patch 70332 from bug 47318.
Failed to run &quot;[u&apos;/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;David Levin&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4347027</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292732</commentid>
    <comment_count>15</comment_count>
      <attachid>70486</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-11 16:02:14 -0700</bug_when>
    <thetext>Created attachment 70486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292736</commentid>
    <comment_count>16</comment_count>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-11 16:03:07 -0700</bug_when>
    <thetext>Merged out the latest code; no actual changes since the R+ version.
Hopefully this will make the commit queue bot happy.

Could I get another R+/CQ+ please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292781</commentid>
    <comment_count>17</comment_count>
      <attachid>70486</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-10-11 17:24:33 -0700</bug_when>
    <thetext>Comment on attachment 70486
Patch

r+&apos;ing based on dave&apos;s r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292786</commentid>
    <comment_count>18</comment_count>
      <attachid>70486</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-10-11 17:39:57 -0700</bug_when>
    <thetext>Comment on attachment 70486
Patch

cq-&apos;ing the patch. i&apos;ll try to submit it manually, since we want it to get in before midnight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292851</commentid>
    <comment_count>19</comment_count>
      <attachid>70486</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-10-11 21:09:00 -0700</bug_when>
    <thetext>Comment on attachment 70486
Patch

Clearing flags on attachment: 70486

Committed r69560: &lt;http://trac.webkit.org/changeset/69560&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292852</commentid>
    <comment_count>20</comment_count>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-10-11 21:09:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70191</attachid>
            <date>2010-10-07 19:37:06 -0700</date>
            <delta_ts>2010-10-08 18:17:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47318-20101007193705.patch</filename>
            <type>text/plain</type>
            <size>2514</size>
            <attacher name="Eric U.">ericu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTM3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMTAtMDcgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aWxlV3JpdGVyIHNob3VsZCBob2xkIGEgcmVmZXJlbmNlIHRvIGEgQmxvYiBkdXJpbmcgd3JpdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MzE4CisK
KyAgICAgICAgV2l0aG91dCB0aGlzIHJlZmVyZW5jZSwgdGhlIEJsb2IgbWlnaHQgZ2V0IGdhcmJh
Z2UtY29sbGVjdGVkIGZyb20gSlMKKyAgICAgICAgYmVmb3JlIHRoZSB3cml0ZSBoYXMgY29tcGxl
dGVkLCB3aGljaCB3b3VsZCBiZSBxdWl0ZSB1bmludHVpdGl2ZSB0byB0aGUKKyAgICAgICAgdXNl
ci4gIEkganVzdCBncmFiIGEgUmVmUHRyIHRvIHRoZSBCbG9iIGF0IHdyaXRlKCksIHRoZW4gY2xl
YXIgaXQgd2hlbgorICAgICAgICB3ZSdyZSBkb25lLgorCisgICAgICAgICogZmlsZWFwaS9GaWxl
V3JpdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVXcml0ZXI6OnN0b3ApOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdy
aXRlcjo6ZGlkV3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6ZGlkRmFpbCk6
CisgICAgICAgICogZmlsZWFwaS9GaWxlV3JpdGVyLmg6CisKIDIwMTAtMTAtMDcgIEVyaWMgVWhy
aGFuZSAgPGVyaWN1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKaWFuIExp
CkluZGV4OiBXZWJDb3JlL2ZpbGVhcGkvRmlsZVdyaXRlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9maWxlYXBpL0ZpbGVXcml0ZXIuY3BwCShyZXZpc2lvbiA2OTM1OSkKKysrIFdlYkNvcmUv
ZmlsZWFwaS9GaWxlV3JpdGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsNyBAQCB2
b2lkIEZpbGVXcml0ZXI6OnN0b3AoKQogewogICAgIGlmIChtX3dyaXRlciAmJiBtX3JlYWR5U3Rh
dGUgPT0gV1JJVElORykKICAgICAgICAgbV93cml0ZXItPmFib3J0KCk7CisgICAgbV9ibG9iQmVp
bmdXcml0dGVuLmNsZWFyKCk7CiAgICAgbV9yZWFkeVN0YXRlID0gRE9ORTsKIH0KIApAQCAtOTks
NiArMTAwLDcgQEAgdm9pZCBGaWxlV3JpdGVyOjp3cml0ZShCbG9iKiBkYXRhLCBFeGNlcAogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgbV9ibG9iQmVpbmdXcml0dGVuID0gZGF0YTsKICAg
ICBtX3JlYWR5U3RhdGUgPSBXUklUSU5HOwogICAgIG1fc3RhcnRlZFdyaXRpbmcgPSBmYWxzZTsK
ICAgICBtX2J5dGVzV3JpdHRlbiA9IDA7CkBAIC0xNjksNiArMTcxLDcgQEAgdm9pZCBGaWxlV3Jp
dGVyOjpkaWRXcml0ZShsb25nIGxvbmcgYnl0ZQogICAgICAgICBtX2xlbmd0aCA9IG1fcG9zaXRp
b247CiAgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53cml0ZUV2ZW50KTsKICAgICBpZiAoY29t
cGxldGUpIHsKKyAgICAgICAgbV9ibG9iQmVpbmdXcml0dGVuLmNsZWFyKCk7CiAgICAgICAgIG1f
cmVhZHlTdGF0ZSA9IERPTkU7CiAgICAgICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkud3JpdGVl
bmRFdmVudCk7CiAgICAgfQpAQCAtMTk0LDYgKzE5Nyw3IEBAIHZvaWQgRmlsZVdyaXRlcjo6ZGlk
RmFpbChFeGNlcHRpb25Db2RlIGUKICAgICBpZiAoQUJPUlRfRVJSID09IGVjKQogICAgICAgICBm
aXJlRXZlbnQoZXZlbnROYW1lcygpLmFib3J0RXZlbnQpOwogICAgIGZpcmVFdmVudChldmVudE5h
bWVzKCkuZXJyb3JFdmVudCk7CisgICAgbV9ibG9iQmVpbmdXcml0dGVuLmNsZWFyKCk7CiAgICAg
bV9yZWFkeVN0YXRlID0gRE9ORTsKICAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLndyaXRlZW5k
RXZlbnQpOwogfQpJbmRleDogV2ViQ29yZS9maWxlYXBpL0ZpbGVXcml0ZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2ZpbGVhcGkvRmlsZVdyaXRlci5oCShyZXZpc2lvbiA2OTM1OSkKKysrIFdl
YkNvcmUvZmlsZWFwaS9GaWxlV3JpdGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2ICsxMjMs
NyBAQCBwcml2YXRlOgogICAgIGxvbmcgbG9uZyBtX2J5dGVzV3JpdHRlbjsKICAgICBsb25nIGxv
bmcgbV9ieXRlc1RvV3JpdGU7CiAgICAgbG9uZyBsb25nIG1fdHJ1bmNhdGVMZW5ndGg7CisgICAg
UmVmUHRyPEJsb2I+IG1fYmxvYkJlaW5nV3JpdHRlbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70328</attachid>
            <date>2010-10-08 18:17:41 -0700</date>
            <delta_ts>2010-10-08 19:07:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47318-20101008181740.patch</filename>
            <type>text/plain</type>
            <size>7449</size>
            <attacher name="Eric U.">ericu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTQzNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMTAtMDcgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aWxlV3JpdGVyIHNob3VsZCBob2xkIGEgcmVmZXJlbmNlIHRvIGEgQmxvYiBkdXJpbmcgd3JpdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MzE4CisK
KyAgICAgICAgV2l0aG91dCB0aGlzIHJlZmVyZW5jZSwgdGhlIEJsb2IgbWlnaHQgZ2V0IGdhcmJh
Z2UtY29sbGVjdGVkIGZyb20gSlMKKyAgICAgICAgYmVmb3JlIHRoZSB3cml0ZSBoYXMgY29tcGxl
dGVkLCB3aGljaCB3b3VsZCBiZSBxdWl0ZSB1bmludHVpdGl2ZSB0byB0aGUKKyAgICAgICAgdXNl
ci4gIEkganVzdCBncmFiIGEgUmVmUHRyIHRvIHRoZSBCbG9iIGF0IHdyaXRlKCksIHRoZW4gY2xl
YXIgaXQgd2hlbgorICAgICAgICB3ZSdyZSBkb25lLgorCisgICAgICAgICogZmlsZWFwaS9GaWxl
V3JpdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVXcml0ZXI6OnN0b3ApOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdy
aXRlcjo6ZGlkV3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6ZGlkRmFpbCk6
CisgICAgICAgICogZmlsZWFwaS9GaWxlV3JpdGVyLmg6CisKIDIwMTAtMTAtMDggIE1paGFpIFBh
cnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KSW5kZXg6IFdlYkNvcmUvZmlsZWFwaS9GaWxlV3JpdGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2ZpbGVhcGkvRmlsZVdyaXRlci5jcHAJKHJldmlzaW9uIDY5NDExKQorKysg
V2ViQ29yZS9maWxlYXBpL0ZpbGVXcml0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4
Miw3IEBAIHZvaWQgRmlsZVdyaXRlcjo6c3RvcCgpCiB7CiAgICAgaWYgKG1fd3JpdGVyICYmIG1f
cmVhZHlTdGF0ZSA9PSBXUklUSU5HKQogICAgICAgICBtX3dyaXRlci0+YWJvcnQoKTsKKyAgICBt
X2Jsb2JCZWluZ1dyaXR0ZW4uY2xlYXIoKTsKICAgICBtX3JlYWR5U3RhdGUgPSBET05FOwogfQog
CkBAIC05OSw2ICsxMDAsNyBAQCB2b2lkIEZpbGVXcml0ZXI6OndyaXRlKEJsb2IqIGRhdGEsIEV4
Y2VwCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBtX2Jsb2JCZWluZ1dyaXR0ZW4gPSBk
YXRhOwogICAgIG1fcmVhZHlTdGF0ZSA9IFdSSVRJTkc7CiAgICAgbV9zdGFydGVkV3JpdGluZyA9
IGZhbHNlOwogICAgIG1fYnl0ZXNXcml0dGVuID0gMDsKQEAgLTE2OSw2ICsxNzEsNyBAQCB2b2lk
IEZpbGVXcml0ZXI6OmRpZFdyaXRlKGxvbmcgbG9uZyBieXRlCiAgICAgICAgIG1fbGVuZ3RoID0g
bV9wb3NpdGlvbjsKICAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLndyaXRlRXZlbnQpOwogICAg
IGlmIChjb21wbGV0ZSkgeworICAgICAgICBtX2Jsb2JCZWluZ1dyaXR0ZW4uY2xlYXIoKTsKICAg
ICAgICAgbV9yZWFkeVN0YXRlID0gRE9ORTsKICAgICAgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMo
KS53cml0ZWVuZEV2ZW50KTsKICAgICB9CkBAIC0xOTQsNiArMTk3LDcgQEAgdm9pZCBGaWxlV3Jp
dGVyOjpkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgZQogICAgIGlmIChBQk9SVF9FUlIgPT0gZWMpCiAg
ICAgICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkuYWJvcnRFdmVudCk7CiAgICAgZmlyZUV2ZW50
KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50KTsKKyAgICBtX2Jsb2JCZWluZ1dyaXR0ZW4uY2xlYXIo
KTsKICAgICBtX3JlYWR5U3RhdGUgPSBET05FOwogICAgIGZpcmVFdmVudChldmVudE5hbWVzKCku
d3JpdGVlbmRFdmVudCk7CiB9CkluZGV4OiBXZWJDb3JlL2ZpbGVhcGkvRmlsZVdyaXRlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvZmlsZWFwaS9GaWxlV3JpdGVyLmgJKHJldmlzaW9uIDY5NDEx
KQorKysgV2ViQ29yZS9maWxlYXBpL0ZpbGVXcml0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTIz
LDYgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAgbG9uZyBsb25nIG1fYnl0ZXNXcml0dGVuOwogICAg
IGxvbmcgbG9uZyBtX2J5dGVzVG9Xcml0ZTsKICAgICBsb25nIGxvbmcgbV90cnVuY2F0ZUxlbmd0
aDsKKyAgICBSZWZQdHI8QmxvYj4gbV9ibG9iQmVpbmdXcml0dGVuOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjk0MzQpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0xMC0wOCAgRXJp
YyBVaHJoYW5lICA8ZXJpY3VAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpbGVXcml0ZXIgc2hvdWxkIGhvbGQgYSByZWZlcmVu
Y2UgdG8gYSBCbG9iIGR1cmluZyB3cml0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDczMTgKKworICAgICAgICBBZGRlZCB0aGUgZmlyc3QgRmlsZVdy
aXRlciB0ZXN0IHRvIGNvdmVyIHRoaXMuCisgICAgICAgIFByb2JsZW0gIzE6IGl0J3Mgbm90IGEg
ZGV0ZXJtaW5pc3RpYyBwcm9ibGVtOyB0aGUgdGVzdCBtaWdodCBvciBtaWdodAorICAgICAgICBu
b3QgY2F0Y2ggdGhlIGVycm9yLCBidXQgYXQgbGVhc3QgaXQgd29uJ3QgZXZlciB0cmlnZ2VyIGEg
ZmFsc2UKKyAgICAgICAgcG9zaXRpdmUuCisgICAgICAgIFByb2JsZW0gIzI6IG5vIHBsYXRmb3Jt
IGZ1bGx5IGltcGxlbWVudHMgRmlsZVdyaXRlciB5ZXQsIHNvIHRoaXMgdGVzdAorICAgICAgICBt
dXN0IHN0YXJ0IG91dCBjb21wbGV0ZWx5IHN1cHJlc3NlZC4gIEFsbCBub24tY2hyb21pdW0gcGxh
dGZvcm1zCisgICAgICAgIGFscmVhZHkgc2tpcCBhbGwgZmlsZXN5c3RlbSB0ZXN0cywgc28gSSdt
IG9ubHkgYWRkaW5nIGEgc2tpcCBpbgorICAgICAgICBjaHJvbWl1bS4KKworICAgICAgICAqIGZh
c3QvZmlsZXN5c3RlbS9maWxlLXdyaXRlci1nYy1ibG9iLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9maWxlc3lzdGVtL2ZpbGUtd3JpdGVyLWdjLWJsb2IuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9maWxlc3lzdGVtOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2ZpbGVzeXN0ZW0vU2tpcHBlZDogQWRkZWQu
CisKIDIwMTAtMTAtMDggIEFsYmVydCBKLiBXb25nICA8YWp3b25nQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbVW5yZXZpZWRdIENocm9taXVtIGJ1aWxkIGZpeC4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9maWxlLXdyaXRlci1nYy1ibG9iLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZS13cml0ZXItZ2MtYmxvYi1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
ZmlsZS13cml0ZXItZ2MtYmxvYi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NSBAQAorc3RhcnRpbmcgdGVzdAorUEFTUyBTdWNjZXNzZnVsbHkgd3JvdGUgYmxvYi4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL2ZpbGUtd3JpdGVyLWdjLWJsb2IuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZS13cml0ZXItZ2MtYmxvYi5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL2ZpbGUtd3JpdGVy
LWdjLWJsb2IuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDIgQEAKKzwhRE9DVFlQRSBI
VE1MPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5GaWxlIFdyaXRlciB0ZXN0PC90aXRsZT4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKyAgICB2YXIgZmlsZUVudHJ5OworCisgICAgZnVuY3Rpb24gY2xlYW5V
cCgpIHsKKyAgICAgIHZhciBuZWVkVG9DYWxsRmluaXNoID0gdHJ1ZTsKKyAgICAgIHRyeSB7Cisg
ICAgICAgIGlmIChmaWxlRW50cnkpIHsKKyAgICAgICAgICBmaWxlRW50cnkucmVtb3ZlKGZpbmlz
aEpTVGVzdCwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICBuZWVkVG9DYWxsRmluaXNoID0gZmFs
c2U7CisgICAgICAgIH0KKyAgICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICB9CisgICAgICBpZiAo
bmVlZFRvQ2FsbEZpbmlzaCkgeworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgIH0KKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBzdHJpbmdpZnlPYmoobykgeworICAgICAgICBzID0gIiI7Cisg
ICAgICAgIGlmIChvKQorICAgICAgICAgICAgZm9yIChpbmRleCBpbiBvKSB7CisgICAgICAgICAg
ICAgICAgcyArPSBpbmRleCArICI6ICIgKyBvW2luZGV4XSArICJcbiI7CisgICAgICAgICAgICB9
CisgICAgICAgIHJldHVybiBzOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uRXJyb3IoZSkgewor
ICAgICAgICBkZWJ1ZygiQ2F1Z2h0IGFuIGVycm9yLiIpOworICAgICAgICBpZiAoZSAmJiBlLmNv
ZGUpIHsgIC8vIEVhY2ggRmlsZUVycm9yIGhhcyBhIGNvZGUuCisgICAgICAgICAgZGVidWcoIkVy
cm9yIGNvZGU6ICIgKyBlLmNvZGUpOworICAgICAgICB9CisgICAgICAgIHRlc3RGYWlsZWQoc3Ry
aW5naWZ5T2JqKGUpKTsKKyAgICAgICAgY2xlYW5VcCgpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IG9uU3VjY2VzcygpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bGx5IHdyb3RlIGJs
b2IuIik7CisgICAgICAgIGNsZWFuVXAoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZW5YQmxv
YihibG9iKSB7CisgICAgICAgIHZhciBiYiA9IG5ldyBCbG9iQnVpbGRlcigpOworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICAgICAgICAgIGJiLmFwcGVuZChibG9i
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYmIuZ2V0QmxvYigpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHN0YXJ0V3JpdGUod3JpdGVyKSB7CisgICAgICAgIC8vIExldCdzIG1ha2UgaXQg
YWJvdXQgYSBtZWdhYnl0ZS4KKyAgICAgICAgdmFyIGJiID0gbmV3IEJsb2JCdWlsZGVyKCk7Cisg
ICAgICAgIGJiLmFwcGVuZCgibG9yZW0gaXBzdW0iKTsKKyAgICAgICAgdmFyIGJsb2IgPSB0ZW5Y
QmxvYihiYi5nZXRCbG9iKCkpOworICAgICAgICBibG9iID0gdGVuWEJsb2IoYmIuZ2V0QmxvYigp
KTsKKyAgICAgICAgYmxvYiA9IHRlblhCbG9iKGJiLmdldEJsb2IoKSk7CisgICAgICAgIGJsb2Ig
PSB0ZW5YQmxvYihiYi5nZXRCbG9iKCkpOworICAgICAgICBibG9iID0gdGVuWEJsb2IoYmIuZ2V0
QmxvYigpKTsKKyAgICAgICAgd3JpdGVyLm9uZXJyb3IgPSBvbkVycm9yOworICAgICAgICB3cml0
ZXIub253cml0ZWVuZCA9IG9uU3VjY2VzczsKKyAgICAgICAgd3JpdGVyLndyaXRlKGJsb2IpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHVzZUZpbGVXcml0ZXIod3JpdGVyKSB7CisgICAgICAgIHN0
YXJ0V3JpdGUod3JpdGVyKTsKKyAgICAgICAgZ2MoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBm
aWxlQ2FsbGJhY2soZikgeworICAgICAgICBmaWxlRW50cnkgPSBmOworICAgICAgICBmaWxlRW50
cnkuY3JlYXRlV3JpdGVyKHVzZUZpbGVXcml0ZXIsIG9uRXJyb3IpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGRlYnVnKCJzdGFydGluZyB0ZXN0Iik7CisgICAg
ICAgIGlmIChyZXF1ZXN0RmlsZVN5c3RlbSkgeworICAgICAgICAgICAgcmVxdWVzdEZpbGVTeXN0
ZW0oMCwgMTAyNCoxMDI0LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGZzKSB7CisgICAgICAg
ICAgICAgICAgICAgIGZzLnJvb3QuZ2V0RmlsZSgidGVzdC50eHQiLCB7Y3JlYXRlOnRydWV9LCBm
aWxlQ2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkVycm9y
KTsKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIG9uRXJyb3IpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBGaWxlU3lz
dGVtIEFQSSBzdXBwb3J0LiIpOworICAgICAgICB9CisgICAgfQorICAgIHdpbmRvdy5zdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZmlsZXN5c3RlbS9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZmlsZXN5c3RlbS9Ta2lwcGVkCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9maWxlc3lzdGVtL1NraXBwZWQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMiBAQAorIyBGaWxlV3JpdGVyIGlzbid0IHlldCBpbXBsZW1lbnRlZCBp
biBUZXN0U2hlbGwuCitmaWxlLXdyaXRlci1nYy1ibG9iLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70332</attachid>
            <date>2010-10-08 19:07:21 -0700</date>
            <delta_ts>2010-10-11 16:02:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47318-20101008190720.patch</filename>
            <type>text/plain</type>
            <size>7590</size>
            <attacher name="Eric U.">ericu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTQzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMTAtMDggIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aWxlV3JpdGVyIHNob3VsZCBob2xkIGEgcmVmZXJlbmNlIHRvIGEgQmxvYiBkdXJpbmcgd3JpdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MzE4CisK
KyAgICAgICAgV2l0aG91dCB0aGlzIHJlZmVyZW5jZSwgdGhlIEJsb2IgbWlnaHQgZ2V0IGdhcmJh
Z2UtY29sbGVjdGVkIGZyb20gSlMKKyAgICAgICAgYmVmb3JlIHRoZSB3cml0ZSBoYXMgY29tcGxl
dGVkLCB3aGljaCB3b3VsZCBiZSBxdWl0ZSB1bmludHVpdGl2ZSB0byB0aGUKKyAgICAgICAgdXNl
ci4gIEkganVzdCBncmFiIGEgUmVmUHRyIHRvIHRoZSBCbG9iIGF0IHdyaXRlKCksIHRoZW4gY2xl
YXIgaXQgd2hlbgorICAgICAgICB3ZSdyZSBkb25lLgorCisgICAgICAgICogZmlsZWFwaS9GaWxl
V3JpdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVXcml0ZXI6OnN0b3ApOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdy
aXRlcjo6ZGlkV3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6ZGlkRmFpbCk6
CisgICAgICAgICogZmlsZWFwaS9GaWxlV3JpdGVyLmg6CisKIDIwMTAtMTAtMDggIEphbWVzIFJv
Ymluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IEJhcnRoLgpJbmRleDogV2ViQ29yZS9maWxlYXBpL0ZpbGVXcml0ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZmlsZWFwaS9GaWxlV3JpdGVyLmNwcAkocmV2aXNpb24gNjk0MTEpCisrKyBX
ZWJDb3JlL2ZpbGVhcGkvRmlsZVdyaXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgy
LDcgQEAgdm9pZCBGaWxlV3JpdGVyOjpzdG9wKCkKIHsKICAgICBpZiAobV93cml0ZXIgJiYgbV9y
ZWFkeVN0YXRlID09IFdSSVRJTkcpCiAgICAgICAgIG1fd3JpdGVyLT5hYm9ydCgpOworICAgIG1f
YmxvYkJlaW5nV3JpdHRlbi5jbGVhcigpOwogICAgIG1fcmVhZHlTdGF0ZSA9IERPTkU7CiB9CiAK
QEAgLTk5LDYgKzEwMCw3IEBAIHZvaWQgRmlsZVdyaXRlcjo6d3JpdGUoQmxvYiogZGF0YSwgRXhj
ZXAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fYmxvYkJlaW5nV3JpdHRlbiA9IGRh
dGE7CiAgICAgbV9yZWFkeVN0YXRlID0gV1JJVElORzsKICAgICBtX3N0YXJ0ZWRXcml0aW5nID0g
ZmFsc2U7CiAgICAgbV9ieXRlc1dyaXR0ZW4gPSAwOwpAQCAtMTY5LDYgKzE3MSw3IEBAIHZvaWQg
RmlsZVdyaXRlcjo6ZGlkV3JpdGUobG9uZyBsb25nIGJ5dGUKICAgICAgICAgbV9sZW5ndGggPSBt
X3Bvc2l0aW9uOwogICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkud3JpdGVFdmVudCk7CiAgICAg
aWYgKGNvbXBsZXRlKSB7CisgICAgICAgIG1fYmxvYkJlaW5nV3JpdHRlbi5jbGVhcigpOwogICAg
ICAgICBtX3JlYWR5U3RhdGUgPSBET05FOwogICAgICAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygp
LndyaXRlZW5kRXZlbnQpOwogICAgIH0KQEAgLTE5NCw2ICsxOTcsNyBAQCB2b2lkIEZpbGVXcml0
ZXI6OmRpZEZhaWwoRXhjZXB0aW9uQ29kZSBlCiAgICAgaWYgKEFCT1JUX0VSUiA9PSBlYykKICAg
ICAgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsKICAgICBmaXJlRXZlbnQo
ZXZlbnROYW1lcygpLmVycm9yRXZlbnQpOworICAgIG1fYmxvYkJlaW5nV3JpdHRlbi5jbGVhcigp
OwogICAgIG1fcmVhZHlTdGF0ZSA9IERPTkU7CiAgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53
cml0ZWVuZEV2ZW50KTsKIH0KSW5kZXg6IFdlYkNvcmUvZmlsZWFwaS9GaWxlV3JpdGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9maWxlYXBpL0ZpbGVXcml0ZXIuaAkocmV2aXNpb24gNjk0MTEp
CisrKyBXZWJDb3JlL2ZpbGVhcGkvRmlsZVdyaXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMs
NiArMTIzLDcgQEAgcHJpdmF0ZToKICAgICBsb25nIGxvbmcgbV9ieXRlc1dyaXR0ZW47CiAgICAg
bG9uZyBsb25nIG1fYnl0ZXNUb1dyaXRlOwogICAgIGxvbmcgbG9uZyBtX3RydW5jYXRlTGVuZ3Ro
OworICAgIFJlZlB0cjxCbG9iPiBtX2Jsb2JCZWluZ1dyaXR0ZW47CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2OTQzNykKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEwLTEwLTA4ICBFcmlj
IFVocmhhbmUgIDxlcmljdUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRmlsZVdyaXRlciBzaG91bGQgaG9sZCBhIHJlZmVyZW5j
ZSB0byBhIEJsb2IgZHVyaW5nIHdyaXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NzMxOAorCisgICAgICAgIEFkZGVkIHRoZSBmaXJzdCBGaWxlV3Jp
dGVyIHRlc3QgdG8gY292ZXIgdGhpcy4KKyAgICAgICAgUHJvYmxlbSAjMTogaXQncyBub3QgYSBk
ZXRlcm1pbmlzdGljIHByb2JsZW07IHRoZSB0ZXN0IG1pZ2h0IG9yIG1pZ2h0CisgICAgICAgIG5v
dCBjYXRjaCB0aGUgZXJyb3IsIGJ1dCBhdCBsZWFzdCBpdCB3b24ndCBldmVyIHRyaWdnZXIgYSBm
YWxzZQorICAgICAgICBwb3NpdGl2ZS4KKyAgICAgICAgUHJvYmxlbSAjMjogbm8gcGxhdGZvcm0g
ZnVsbHkgaW1wbGVtZW50cyBGaWxlV3JpdGVyIHlldCwgc28gdGhpcyB0ZXN0CisgICAgICAgIG11
c3Qgc3RhcnQgb3V0IGNvbXBsZXRlbHkgc3VwcmVzc2VkLiAgQWxsIG5vbi1jaHJvbWl1bSBwbGF0
Zm9ybXMKKyAgICAgICAgYWxyZWFkeSBza2lwIGFsbCBmaWxlc3lzdGVtIHRlc3RzLCBzbyBJJ20g
b25seSBhZGRpbmcgYSBzdXBwcmVzc2lvbiBpbgorICAgICAgICBjaHJvbWl1bS4KKyAgICAgICAg
KiBmYXN0L2ZpbGVzeXN0ZW0vZmlsZS13cml0ZXItZ2MtYmxvYi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9maWxlLXdyaXRlci1nYy1ibG9iLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoK
KwogMjAxMC0xMC0wOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL2ZpbGUtd3JpdGVyLWdjLWJsb2ItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9maWxlLXdyaXRlci1nYy1ibG9iLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9maWxl
LXdyaXRlci1nYy1ibG9iLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1IEBA
CitzdGFydGluZyB0ZXN0CitQQVNTIFN1Y2Nlc3NmdWxseSB3cm90ZSBibG9iLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZS13cml0ZXItZ2MtYmxvYi5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9maWxlLXdyaXRlci1nYy1ibG9iLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZS13cml0ZXItZ2Mt
YmxvYi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwMiBAQAorPCFET0NUWVBFIEhUTUw+
Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkZpbGUgV3JpdGVyIHRlc3Q8L3RpdGxlPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorICAgIHZhciBmaWxlRW50cnk7CisKKyAgICBmdW5jdGlvbiBjbGVhblVwKCkg
eworICAgICAgdmFyIG5lZWRUb0NhbGxGaW5pc2ggPSB0cnVlOworICAgICAgdHJ5IHsKKyAgICAg
ICAgaWYgKGZpbGVFbnRyeSkgeworICAgICAgICAgIGZpbGVFbnRyeS5yZW1vdmUoZmluaXNoSlNU
ZXN0LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgIG5lZWRUb0NhbGxGaW5pc2ggPSBmYWxzZTsK
KyAgICAgICAgfQorICAgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAgIH0KKyAgICAgIGlmIChuZWVk
VG9DYWxsRmluaXNoKSB7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgfQorICAgIH0K
KworICAgIGZ1bmN0aW9uIHN0cmluZ2lmeU9iaihvKSB7CisgICAgICAgIHMgPSAiIjsKKyAgICAg
ICAgaWYgKG8pCisgICAgICAgICAgICBmb3IgKGluZGV4IGluIG8pIHsKKyAgICAgICAgICAgICAg
ICBzICs9IGluZGV4ICsgIjogIiArIG9baW5kZXhdICsgIlxuIjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHM7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25FcnJvcihlKSB7CisgICAg
ICAgIGRlYnVnKCJDYXVnaHQgYW4gZXJyb3IuIik7CisgICAgICAgIGlmIChlICYmIGUuY29kZSkg
eyAgLy8gRWFjaCBGaWxlRXJyb3IgaGFzIGEgY29kZS4KKyAgICAgICAgICBkZWJ1ZygiRXJyb3Ig
Y29kZTogIiArIGUuY29kZSk7CisgICAgICAgIH0KKyAgICAgICAgdGVzdEZhaWxlZChzdHJpbmdp
ZnlPYmooZSkpOworICAgICAgICBjbGVhblVwKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25T
dWNjZXNzKCkgeworICAgICAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzZnVsbHkgd3JvdGUgYmxvYi4i
KTsKKyAgICAgICAgY2xlYW5VcCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlblhCbG9iKGJs
b2IpIHsKKyAgICAgICAgdmFyIGJiID0gbmV3IEJsb2JCdWlsZGVyKCk7CisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAgICAgICAgICAgYmIuYXBwZW5kKGJsb2IpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBiYi5nZXRCbG9iKCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gc3RhcnRXcml0ZSh3cml0ZXIpIHsKKyAgICAgICAgLy8gTGV0J3MgbWFrZSBpdCBhYm91
dCBhIG1lZ2FieXRlLgorICAgICAgICB2YXIgYmIgPSBuZXcgQmxvYkJ1aWxkZXIoKTsKKyAgICAg
ICAgYmIuYXBwZW5kKCJsb3JlbSBpcHN1bSIpOworICAgICAgICB2YXIgYmxvYiA9IHRlblhCbG9i
KGJiLmdldEJsb2IoKSk7CisgICAgICAgIGJsb2IgPSB0ZW5YQmxvYihiYi5nZXRCbG9iKCkpOwor
ICAgICAgICBibG9iID0gdGVuWEJsb2IoYmIuZ2V0QmxvYigpKTsKKyAgICAgICAgYmxvYiA9IHRl
blhCbG9iKGJiLmdldEJsb2IoKSk7CisgICAgICAgIGJsb2IgPSB0ZW5YQmxvYihiYi5nZXRCbG9i
KCkpOworICAgICAgICB3cml0ZXIub25lcnJvciA9IG9uRXJyb3I7CisgICAgICAgIHdyaXRlci5v
bndyaXRlZW5kID0gb25TdWNjZXNzOworICAgICAgICB3cml0ZXIud3JpdGUoYmxvYik7CisgICAg
fQorCisgICAgZnVuY3Rpb24gdXNlRmlsZVdyaXRlcih3cml0ZXIpIHsKKyAgICAgICAgc3RhcnRX
cml0ZSh3cml0ZXIpOworICAgICAgICBnYygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbGVD
YWxsYmFjayhmKSB7CisgICAgICAgIGZpbGVFbnRyeSA9IGY7CisgICAgICAgIGZpbGVFbnRyeS5j
cmVhdGVXcml0ZXIodXNlRmlsZVdyaXRlciwgb25FcnJvcik7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICAgICAgZGVidWcoInN0YXJ0aW5nIHRlc3QiKTsKKyAgICAgICAg
aWYgKHJlcXVlc3RGaWxlU3lzdGVtKSB7CisgICAgICAgICAgICByZXF1ZXN0RmlsZVN5c3RlbSgw
LCAxMDI0KjEwMjQsCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oZnMpIHsKKyAgICAgICAgICAg
ICAgICAgICAgZnMucm9vdC5nZXRGaWxlKCJ0ZXN0LnR4dCIsIHtjcmVhdGU6dHJ1ZX0sIGZpbGVD
YWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRXJyb3IpOwor
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgb25FcnJvcik7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIEZpbGVTeXN0ZW0g
QVBJIHN1cHBvcnQuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgd2luZG93LnN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAkocmV2aXNpb24gNjk0MTEpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTMyMTcsMyArMzIxNyw2IEBAIEJVRzU4MzU4IFdJTiBMSU5VWCA6IGZhc3QvY3NzL3RyYW5z
Zm9ybWUKIEJVRzU4MzU4IE1BQyA6IGZhc3QvY3NzL3RyYW5zZm9ybWVkLW1hc2suaHRtbCA9IElN
QUdFCiAKIEJVRzU4NDgxIFdJTiA6IGZhc3QvaHRtbC9vYmplY3QtaW1hZ2UtbmVzdGVkLWZhbGxi
YWNrLmh0bWwgPSBDUkFTSAorCisvLyBGaWxlV3JpdGVyIGlzbid0IGluIFRlc3RTaGVsbCB5ZXQu
CitCVUc1ODU4NyBTS0lQIDogZmFzdC9maWxlc3lzdGVtL2ZpbGUtd3JpdGVyLWdjLWJsb2IuaHRt
bCA9IEZBSUwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70486</attachid>
            <date>2010-10-11 16:02:14 -0700</date>
            <delta_ts>2010-10-11 21:09:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47318-20101011160212.patch</filename>
            <type>text/plain</type>
            <size>7824</size>
            <attacher name="Eric U.">ericu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTUyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMTAtMTEgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aWxlV3JpdGVyIHNob3VsZCBob2xkIGEgcmVmZXJlbmNlIHRvIGEgQmxvYiBkdXJpbmcgd3JpdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MzE4CisK
KyAgICAgICAgV2l0aG91dCB0aGlzIHJlZmVyZW5jZSwgdGhlIEJsb2IgbWlnaHQgZ2V0IGdhcmJh
Z2UtY29sbGVjdGVkIGZyb20gSlMKKyAgICAgICAgYmVmb3JlIHRoZSB3cml0ZSBoYXMgY29tcGxl
dGVkLCB3aGljaCB3b3VsZCBiZSBxdWl0ZSB1bmludHVpdGl2ZSB0byB0aGUKKyAgICAgICAgdXNl
ci4gIEkganVzdCBncmFiIGEgUmVmUHRyIHRvIHRoZSBCbG9iIGF0IHdyaXRlKCksIHRoZW4gY2xl
YXIgaXQgd2hlbgorICAgICAgICB3ZSdyZSBkb25lLgorCisgICAgICAgICogZmlsZWFwaS9GaWxl
V3JpdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVXcml0ZXI6OnN0b3ApOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdy
aXRlcjo6ZGlkV3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6ZGlkRmFpbCk6
CisgICAgICAgICogZmlsZWFwaS9GaWxlV3JpdGVyLmg6CisKIDIwMTAtMTAtMTEgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1
c3Rhdm8gTm9yb25oYSBTaWx2YS4KSW5kZXg6IFdlYkNvcmUvZmlsZWFwaS9GaWxlV3JpdGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2ZpbGVhcGkvRmlsZVdyaXRlci5jcHAJKHJldmlzaW9u
IDY5NTI3KQorKysgV2ViQ29yZS9maWxlYXBpL0ZpbGVXcml0ZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04Miw2ICs4Miw3IEBAIHZvaWQgRmlsZVdyaXRlcjo6c3RvcCgpCiB7CiAgICAgaWYgKG1f
d3JpdGVyICYmIG1fcmVhZHlTdGF0ZSA9PSBXUklUSU5HKQogICAgICAgICBtX3dyaXRlci0+YWJv
cnQoKTsKKyAgICBtX2Jsb2JCZWluZ1dyaXR0ZW4uY2xlYXIoKTsKICAgICBtX3JlYWR5U3RhdGUg
PSBET05FOwogfQogCkBAIC05OSw2ICsxMDAsNyBAQCB2b2lkIEZpbGVXcml0ZXI6OndyaXRlKEJs
b2IqIGRhdGEsIEV4Y2VwCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBtX2Jsb2JCZWlu
Z1dyaXR0ZW4gPSBkYXRhOwogICAgIG1fcmVhZHlTdGF0ZSA9IFdSSVRJTkc7CiAgICAgbV9zdGFy
dGVkV3JpdGluZyA9IGZhbHNlOwogICAgIG1fYnl0ZXNXcml0dGVuID0gMDsKQEAgLTE2OSw2ICsx
NzEsNyBAQCB2b2lkIEZpbGVXcml0ZXI6OmRpZFdyaXRlKGxvbmcgbG9uZyBieXRlCiAgICAgICAg
IG1fbGVuZ3RoID0gbV9wb3NpdGlvbjsKICAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLnByb2dy
ZXNzRXZlbnQpOwogICAgIGlmIChjb21wbGV0ZSkgeworICAgICAgICBtX2Jsb2JCZWluZ1dyaXR0
ZW4uY2xlYXIoKTsKICAgICAgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53cml0ZUV2ZW50KTsK
ICAgICAgICAgbV9yZWFkeVN0YXRlID0gRE9ORTsKICAgICAgICAgZmlyZUV2ZW50KGV2ZW50TmFt
ZXMoKS53cml0ZWVuZEV2ZW50KTsKQEAgLTE5NSw2ICsxOTgsNyBAQCB2b2lkIEZpbGVXcml0ZXI6
OmRpZEZhaWwoRXhjZXB0aW9uQ29kZSBlCiAgICAgaWYgKEFCT1JUX0VSUiA9PSBlYykKICAgICAg
ICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsKICAgICBmaXJlRXZlbnQoZXZl
bnROYW1lcygpLmVycm9yRXZlbnQpOworICAgIG1fYmxvYkJlaW5nV3JpdHRlbi5jbGVhcigpOwog
ICAgIG1fcmVhZHlTdGF0ZSA9IERPTkU7CiAgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53cml0
ZWVuZEV2ZW50KTsKIH0KSW5kZXg6IFdlYkNvcmUvZmlsZWFwaS9GaWxlV3JpdGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9maWxlYXBpL0ZpbGVXcml0ZXIuaAkocmV2aXNpb24gNjk1MjcpCisr
KyBXZWJDb3JlL2ZpbGVhcGkvRmlsZVdyaXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiAr
MTIzLDcgQEAgcHJpdmF0ZToKICAgICBsb25nIGxvbmcgbV9ieXRlc1dyaXR0ZW47CiAgICAgbG9u
ZyBsb25nIG1fYnl0ZXNUb1dyaXRlOwogICAgIGxvbmcgbG9uZyBtX3RydW5jYXRlTGVuZ3RoOwor
ICAgIFJlZlB0cjxCbG9iPiBtX2Jsb2JCZWluZ1dyaXR0ZW47CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2OTUyNykKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEwLTEwLTExICBFcmljIFVo
cmhhbmUgIDxlcmljdUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRmlsZVdyaXRlciBzaG91bGQgaG9sZCBhIHJlZmVyZW5jZSB0
byBhIEJsb2IgZHVyaW5nIHdyaXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NzMxOAorCisgICAgICAgIEFkZGVkIHRoZSBmaXJzdCBGaWxlV3JpdGVy
IHRlc3QgdG8gY292ZXIgdGhpcy4KKyAgICAgICAgUHJvYmxlbSAjMTogaXQncyBub3QgYSBkZXRl
cm1pbmlzdGljIHByb2JsZW07IHRoZSB0ZXN0IG1pZ2h0IG9yIG1pZ2h0CisgICAgICAgIG5vdCBj
YXRjaCB0aGUgZXJyb3IsIGJ1dCBhdCBsZWFzdCBpdCB3b24ndCBldmVyIHRyaWdnZXIgYSBmYWxz
ZQorICAgICAgICBwb3NpdGl2ZS4KKyAgICAgICAgUHJvYmxlbSAjMjogbm8gcGxhdGZvcm0gZnVs
bHkgaW1wbGVtZW50cyBGaWxlV3JpdGVyIHlldCwgc28gdGhpcyB0ZXN0CisgICAgICAgIG11c3Qg
c3RhcnQgb3V0IGNvbXBsZXRlbHkgc3VwcmVzc2VkLiAgQWxsIG5vbi1jaHJvbWl1bSBwbGF0Zm9y
bXMKKyAgICAgICAgYWxyZWFkeSBza2lwIGFsbCBmaWxlc3lzdGVtIHRlc3RzLCBzbyBJJ20gb25s
eSBhZGRpbmcgYSBzdXBwcmVzc2lvbiBpbgorICAgICAgICBjaHJvbWl1bS4KKyAgICAgICAgKiBm
YXN0L2ZpbGVzeXN0ZW0vZmlsZS13cml0ZXItZ2MtYmxvYi1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9maWxlLXdyaXRlci1nYy1ibG9iLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKwog
MjAxMC0xMC0xMSAgQWxiZXJ0IEouIFdvbmcgIDxhandvbmdAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZC4gVGVtcG9yYXJ5IHBhdGNoIGZvciBTVkcgY2hhbmdl
cyBmcm9tIHI2OTUxNy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9maWxlLXdy
aXRlci1nYy1ibG9iLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vZmlsZS13cml0ZXItZ2MtYmxvYi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZS13cml0ZXItZ2MtYmxvYi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorc3RhcnRpbmcgdGVzdAorUEFT
UyBTdWNjZXNzZnVsbHkgd3JvdGUgYmxvYi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL2Zp
bGUtd3JpdGVyLWdjLWJsb2IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vZmlsZS13cml0ZXItZ2MtYmxvYi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL2ZpbGUtd3JpdGVyLWdjLWJsb2IuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMDIgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzx0
aXRsZT5GaWxlIFdyaXRlciB0ZXN0PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICB2YXIg
ZmlsZUVudHJ5OworCisgICAgZnVuY3Rpb24gY2xlYW5VcCgpIHsKKyAgICAgIHZhciBuZWVkVG9D
YWxsRmluaXNoID0gdHJ1ZTsKKyAgICAgIHRyeSB7CisgICAgICAgIGlmIChmaWxlRW50cnkpIHsK
KyAgICAgICAgICBmaWxlRW50cnkucmVtb3ZlKGZpbmlzaEpTVGVzdCwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgICBuZWVkVG9DYWxsRmluaXNoID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgIH0g
Y2F0Y2ggKGV4KSB7CisgICAgICB9CisgICAgICBpZiAobmVlZFRvQ2FsbEZpbmlzaCkgeworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdHJp
bmdpZnlPYmoobykgeworICAgICAgICBzID0gIiI7CisgICAgICAgIGlmIChvKQorICAgICAgICAg
ICAgZm9yIChpbmRleCBpbiBvKSB7CisgICAgICAgICAgICAgICAgcyArPSBpbmRleCArICI6ICIg
KyBvW2luZGV4XSArICJcbiI7CisgICAgICAgICAgICB9CisgICAgICAgIHJldHVybiBzOworICAg
IH0KKworICAgIGZ1bmN0aW9uIG9uRXJyb3IoZSkgeworICAgICAgICBkZWJ1ZygiQ2F1Z2h0IGFu
IGVycm9yLiIpOworICAgICAgICBpZiAoZSAmJiBlLmNvZGUpIHsgIC8vIEVhY2ggRmlsZUVycm9y
IGhhcyBhIGNvZGUuCisgICAgICAgICAgZGVidWcoIkVycm9yIGNvZGU6ICIgKyBlLmNvZGUpOwor
ICAgICAgICB9CisgICAgICAgIHRlc3RGYWlsZWQoc3RyaW5naWZ5T2JqKGUpKTsKKyAgICAgICAg
Y2xlYW5VcCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uU3VjY2VzcygpIHsKKyAgICAgICAg
dGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bGx5IHdyb3RlIGJsb2IuIik7CisgICAgICAgIGNsZWFuVXAo
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZW5YQmxvYihibG9iKSB7CisgICAgICAgIHZhciBi
YiA9IG5ldyBCbG9iQnVpbGRlcigpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwOyAr
K2kpIHsKKyAgICAgICAgICAgIGJiLmFwcGVuZChibG9iKTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gYmIuZ2V0QmxvYigpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0YXJ0V3JpdGUod3Jp
dGVyKSB7CisgICAgICAgIC8vIExldCdzIG1ha2UgaXQgYWJvdXQgYSBtZWdhYnl0ZS4KKyAgICAg
ICAgdmFyIGJiID0gbmV3IEJsb2JCdWlsZGVyKCk7CisgICAgICAgIGJiLmFwcGVuZCgibG9yZW0g
aXBzdW0iKTsKKyAgICAgICAgdmFyIGJsb2IgPSB0ZW5YQmxvYihiYi5nZXRCbG9iKCkpOworICAg
ICAgICBibG9iID0gdGVuWEJsb2IoYmIuZ2V0QmxvYigpKTsKKyAgICAgICAgYmxvYiA9IHRlblhC
bG9iKGJiLmdldEJsb2IoKSk7CisgICAgICAgIGJsb2IgPSB0ZW5YQmxvYihiYi5nZXRCbG9iKCkp
OworICAgICAgICBibG9iID0gdGVuWEJsb2IoYmIuZ2V0QmxvYigpKTsKKyAgICAgICAgd3JpdGVy
Lm9uZXJyb3IgPSBvbkVycm9yOworICAgICAgICB3cml0ZXIub253cml0ZWVuZCA9IG9uU3VjY2Vz
czsKKyAgICAgICAgd3JpdGVyLndyaXRlKGJsb2IpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHVz
ZUZpbGVXcml0ZXIod3JpdGVyKSB7CisgICAgICAgIHN0YXJ0V3JpdGUod3JpdGVyKTsKKyAgICAg
ICAgZ2MoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaWxlQ2FsbGJhY2soZikgeworICAgICAg
ICBmaWxlRW50cnkgPSBmOworICAgICAgICBmaWxlRW50cnkuY3JlYXRlV3JpdGVyKHVzZUZpbGVX
cml0ZXIsIG9uRXJyb3IpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIGRlYnVnKCJzdGFydGluZyB0ZXN0Iik7CisgICAgICAgIGlmICh3aW5kb3cucmVxdWVzdEZp
bGVTeXN0ZW0pIHsKKyAgICAgICAgICAgIHJlcXVlc3RGaWxlU3lzdGVtKDAsIDEwMjQqMTAyNCwK
KyAgICAgICAgICAgICAgICBmdW5jdGlvbihmcykgeworICAgICAgICAgICAgICAgICAgICBmcy5y
b290LmdldEZpbGUoInRlc3QudHh0Iiwge2NyZWF0ZTp0cnVlfSwgZmlsZUNhbGxiYWNrLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FcnJvcik7CisgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICAgICBvbkVycm9yKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4i
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgor
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CShyZXZpc2lvbiA2OTUyNykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzIxMyw2ICsz
MjEzLDkgQEAgQlVHV0s0NzM3NSBXSU4gOiBmYXN0L2ZpbGVzeXN0ZW0vb3AtbW92ZQogQlVHNTgz
NTggV0lOIExJTlVYIDogZmFzdC9jc3MvdHJhbnNmb3JtZWQtbWFzay5odG1sID0gSU1BR0UrVEVY
VAogQlVHNTgzNTggTUFDIDogZmFzdC9jc3MvdHJhbnNmb3JtZWQtbWFzay5odG1sID0gSU1BR0UK
IAorLy8gRmlsZVdyaXRlciBpc24ndCBpbiBUZXN0U2hlbGwgeWV0LgorQlVHNTg1ODcgU0tJUCA6
IGZhc3QvZmlsZXN5c3RlbS9maWxlLXdyaXRlci1nYy1ibG9iLmh0bWwgPSBGQUlMCisKIC8vIEZh
aWxpbmcgc29tZXdoZXJlIGJldHdlZW4gYWZ0ZXIgV2Via2l0IHI2OTM2NyBhbmQgcjY5NDE3Lgog
QlVHX0FKV09ORyBXSU4gTElOVVggOiBzdmcvVzNDLVNWRy0xLjEvcHNlcnZlcnMtZ3JhZC0xNy1i
LnN2ZyA9IElNQUdFCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>