<?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>39288</bug_id>
          
          <creation_ts>2010-05-18 06:22:20 -0700</creation_ts>
          <short_desc>Geolocation causes DOMWindow to leak if position requests are in progress when the page is navigated away</short_desc>
          <delta_ts>2010-09-16 08:18:52 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</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>1</everconfirmed>
          <reporter name="Steve Block">steveblock</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andreip</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>227273</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-18 06:22:20 -0700</bug_when>
    <thetext>Geolocation causes DOMWindow to leak if position requests are in progress when the page is navigated away</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227274</commentid>
    <comment_count>1</comment_count>
      <attachid>56365</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-18 06:25:24 -0700</bug_when>
    <thetext>Created attachment 56365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227334</commentid>
    <comment_count>2</comment_count>
      <attachid>56365</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-18 09:20:15 -0700</bug_when>
    <thetext>Comment on attachment 56365
Patch

Is there any good way to test this? I&apos;d like to prevent us from having this regress in the future.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227773</commentid>
    <comment_count>3</comment_count>
      <attachid>56365</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-19 04:33:49 -0700</bug_when>
    <thetext>Comment on attachment 56365
Patch

Investigating options for LayoutTests. Will upload an updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227902</commentid>
    <comment_count>4</comment_count>
      <attachid>56503</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-19 11:23:29 -0700</bug_when>
    <thetext>Created attachment 56503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227906</commentid>
    <comment_count>5</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-19 11:26:31 -0700</bug_when>
    <thetext>Updated patch which handles the case where the page is destroyed, as well as when it is navigated away.

Also adds a LayoutTest which exercises this case. Currently, the test relies on external instrumentation to check for leaks. Or is there a way to do this with LayoutTestController?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227909</commentid>
    <comment_count>6</comment_count>
      <attachid>56503</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-19 11:29:38 -0700</bug_when>
    <thetext>Comment on attachment 56503
Patch

This is one of those cases where a function by function comment in the change log would make it more clear why your changes are correct.

&gt; +    if (m_frame-&gt;domWindow() &amp;&amp; m_frame-&gt;domWindow()-&gt;navigator()-&gt;optionalGeolocation())
&gt; +        m_frame-&gt;domWindow()-&gt;navigator()-&gt;optionalGeolocation()-&gt;stop();

If we’re calling m_frame-&gt;domWindow() you should not check it for 0. The code can either call existingDOMWindow or we can remove the null check.

&gt;  void Geolocation::disconnectFrame()
&gt;  {
&gt;      if (m_frame &amp;&amp; m_frame-&gt;page() &amp;&amp; m_allowGeolocation == InProgress)
&gt;          m_frame-&gt;page()-&gt;chrome()-&gt;cancelGeolocationPermissionRequestForFrame(m_frame, this);
&gt; -    stopUpdating();

Is there a guarantee that no new geolocation activity can start after a frame stops loading? What guarantees that? There is not enough explanation here, either in change log or in comments, to make clear why this code is correct.

review- for the moment because of this one issue and one question</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228338</commentid>
    <comment_count>7</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-20 05:40:45 -0700</bug_when>
    <thetext>&gt; If we’re calling m_frame-&gt;domWindow() you should not check it for 0.
Done

&gt; Is there a guarantee that no new geolocation activity can start after a frame
&gt; stops loading?
This call is made after the unload event has been sent, which is the last point at which JS can make new calls to Geolocation. This call removes all ongoing Geolocation requests and stops the service, so there&apos;s no further activity.

The reason that removing the ongoing requests in Geolocation::disconnectFrame() (as in my first patch) is insufficient, is that in the case of the Page being destroyed, disconnectFrame() is not called until the Frame has been destroyed. However, the Frame may not be destroyed if the Geolocation object still holds references to JS callback functions, as these create circular references.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228339</commentid>
    <comment_count>8</comment_count>
      <attachid>56589</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-20 05:42:13 -0700</bug_when>
    <thetext>Created attachment 56589
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228346</commentid>
    <comment_count>9</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-05-20 06:34:30 -0700</bug_when>
    <thetext>Attachment 56589 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/2319345</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228348</commentid>
    <comment_count>10</comment_count>
      <attachid>56590</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-20 06:38:54 -0700</bug_when>
    <thetext>Created attachment 56590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228483</commentid>
    <comment_count>11</comment_count>
      <attachid>56590</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-20 11:31:26 -0700</bug_when>
    <thetext>Comment on attachment 56590
Patch

&gt; +     // Stop the Geolocation object, if present. This call is made after the unload
&gt; +     // event has fired, so no new Geolocation activity is possible.
&gt; +    if (m_frame-&gt;domWindow()-&gt;navigator()-&gt;optionalGeolocation())
&gt; +        m_frame-&gt;domWindow()-&gt;navigator()-&gt;optionalGeolocation()-&gt;stop();

Incorrect indentation of the comment here.

What about if some other frame in the same domain has access to this frame, and later tries to trigger some geolocation activity in this frame with JavaScript code?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229692</commentid>
    <comment_count>12</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-24 04:16:30 -0700</bug_when>
    <thetext>Committed r60069: &lt;http://trac.webkit.org/changeset/60069&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229695</commentid>
    <comment_count>13</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-24 04:25:49 -0700</bug_when>
    <thetext>&gt; What about if some other frame in the same domain has access to this frame, and
&gt; later tries to trigger some geolocation activity in this frame with JavaScript
&gt; code?
I&apos;ll look into this to double-check, but I think it&apos;s best to land the current fix now.

Landed updated version of patch to reflect fix to stop timers in http://trac.webkit.org/changeset/59859 and restructuring of Geolocation LayoutTests in http://trac.webkit.org/changeset/59926</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229802</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-24 10:39:45 -0700</bug_when>
    <thetext>I second Darin&apos;s concern - the &quot;after the unload event has fired, so no new Geolocation activity is possible&quot; explanation seems weak. If one manages to start a Geolocation after stop(), then we have a security bug due to accessing deallocated objects.

We should revert this change unless there is a strong guarantee that this can&apos;t happen.

&gt; However, the Frame may not be destroyed if the Geolocation object still holds
&gt; references to JS callback functions, as these create circular references.

What exactly creates the circular reference? I think that the proper fix would be to avoid having those - disconnectFrame() makes referencing the frame from geolocation code unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230891</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-26 14:21:47 -0700</bug_when>
    <thetext>Even though I don&apos;t have a specific test case where this fails, I think that this is a change in a wrong direction. A more solid fix needn&apos;t build upon it, and it may even end up being simpler.

I&apos;m going to revert this change tomorrow, unless there are objections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231307</commentid>
    <comment_count>16</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-27 08:12:08 -0700</bug_when>
    <thetext>&gt; If one manages to start a Geolocation after stop(), then we have a security bug
&gt; due to accessing deallocated objects.
I don&apos;t think there&apos;s any danger of that. Even after stop() has been called and all ongoing requests have been killed, later calls to startRequest() will happily start new requests.

&gt; What exactly creates the circular reference? I think that the proper fix would
&gt; be to avoid having those
On Android I find that if Geolocation requests are ongoing when the tab is closed, away the Frame is not deleted, so disconnectFrame() is never called. I think this is due to the fact that the Geolocation object holds references to script callbacks and script holds references to the page. You might be right that the correct fix is to avoid these circular refs and to rely on disconnectFrame(). Since the current patch is at least a partial fix and shouldn&apos;t introduce any further problems, can&apos;t we leave it in until we find a complete fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231435</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-27 13:27:16 -0700</bug_when>
    <thetext>&gt; I don&apos;t think there&apos;s any danger of that. Even after stop() has been called
&gt; and all ongoing requests have been killed, later calls to startRequest() will
&gt; happily start new requests.

That&apos;s exactly what concerns me. These requests won&apos;t be stopped, because FrameLoader::stop() won&apos;t be called again. So, the problem that was fixed by r59859 can be re-introduced.

Anyway, I found that
1) Geolocation is completely broken in ToT WebKit now (bug 39434);
2) Geolocation regression tests are all disabled on Mac and Windows.

I&apos;m going to work on these issues first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231452</commentid>
    <comment_count>18</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-27 13:59:34 -0700</bug_when>
    <thetext>&gt; That&apos;s exactly what concerns me. These requests won&apos;t be stopped, because FrameLoader::stop() won&apos;t be called again.
&gt; So, the problem that was fixed by r59859 can be re-introduced.
It&apos;s true that a crash is possible, but I don&apos;t think this is introduced by this patch. I don&apos;t think the fix in r59859 fully solved
the problem. If I understand things correctly, stopping ongoing requests in disconnectFrame() isn&apos;t sufficient because
Geolocation activity can be started after this point by code in same-origin frames. I think that as well as stopping ongoing
requests, we would need to make sure that no new requests are started after disconnectFrame() has been called.

After this patch, we suffer from the same problem, but the critical point is now stop() rather than disconnectFrame().

Does that make sense? Apologies if not, I&apos;m new to the loader code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231744</commentid>
    <comment_count>19</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-28 09:24:29 -0700</bug_when>
    <thetext>&gt; I don&apos;t think the fix in r59859 fully solved
&gt; the problem. If I understand things correctly, stopping ongoing requests in disconnectFrame() isn&apos;t sufficient because
&gt; Geolocation activity can be started after this point by code in same-origin frames. I think that as well as stopping ongoing
&gt; requests, we would need to make sure that no new requests are started after disconnectFrame() has been called.
I&apos;ve filed Bug 39879 to track this.

I&apos;m still looking into the details of the circular reference problems to see if this patch can be reverted completely, or whether it can be adapted to clear the ongoing requests in disconnectFrame() rather than in stop(). I&apos;ll continue to update the bug with my progress, but if you feel that you must revert this patch now, please go ahead. Please CC on me on any related bugs you file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232419</commentid>
    <comment_count>20</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-31 09:31:03 -0700</bug_when>
    <thetext>Rolled back in http://trac.webkit.org/changeset/60441

Reopening bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280041</commentid>
    <comment_count>21</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-16 06:06:17 -0700</bug_when>
    <thetext>The underlying problem has been fixed with other recent changes to Geolocation - probably http://trac.webkit.org/changeset/65416</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56365</attachid>
            <date>2010-05-18 06:25:24 -0700</date>
            <delta_ts>2010-05-19 11:23:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39288-20100518142522.patch</filename>
            <type>text/plain</type>
            <size>1235</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTY2NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDUtMTggIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEdlb2xvY2F0aW9uIGNhdXNlcyBET01XaW5kb3cgdG8gbGVhayBpZiBwb3NpdGlvbiByZXF1ZXN0
cyBhcmUgaW4gcHJvZ3Jlc3Mgd2hlbiB0aGUgcGFnZSBpcyBuYXZpZ2F0ZWQgYXdheQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkyODgKKworICAgICAg
ICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpkaXNjb25uZWN0RnJhbWUpOgorCiAyMDEwLTA1LTE4
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1
aWxkIGZpeC4KSW5kZXg6IFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcAkocmV2aXNpb24gNTk2NjcpCisrKyBXZWJD
b3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjIsNiArMjIyLDgg
QEAgdm9pZCBHZW9sb2NhdGlvbjo6ZGlzY29ubmVjdEZyYW1lKCkKIHsKICAgICBpZiAobV9mcmFt
ZSAmJiBtX2ZyYW1lLT5wYWdlKCkgJiYgbV9hbGxvd0dlb2xvY2F0aW9uID09IEluUHJvZ3Jlc3Mp
CiAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNhbmNlbEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RGb3JGcmFtZShtX2ZyYW1lLCB0aGlzKTsKKyAgICBtX29uZVNob3RzLmNs
ZWFyKCk7CisgICAgbV93YXRjaGVycy5jbGVhcigpOwogICAgIHN0b3BVcGRhdGluZygpOwogICAg
IGlmIChtX2ZyYW1lICYmIG1fZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICAgIG1fZnJhbWUtPmRv
Y3VtZW50KCktPnNldFVzaW5nR2VvbG9jYXRpb24oZmFsc2UpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56503</attachid>
            <date>2010-05-19 11:23:29 -0700</date>
            <delta_ts>2010-05-20 05:42:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39288-20100519192326.patch</filename>
            <type>text/plain</type>
            <size>6407</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTc3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDUtMTkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEdlb2xvY2F0aW9uIGNhdXNlcyBET01XaW5kb3cgdG8gbGVhayBpZiBwb3NpdGlvbiByZXF1ZXN0
cyBhcmUgaW4gcHJvZ3Jlc3Mgd2hlbiB0aGUgcGFnZSBpcyBuYXZpZ2F0ZWQgYXdheQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkyODgKKworICAgICAg
ICBUZXN0OiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9vbmdvaW5nLXJlcXVlc3QtbGVhay5odG1sCisK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6
Okdlb2xvY2F0aW9uOjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRp
b24uaDoKKwogMjAxMC0wNS0xOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCShyZXZpc2lvbiA1OTc2NikKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CisjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxBcHBsZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVt
ZW50LmgiCkBAIC03NSw2ICs3Niw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
Ik1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNYWluUmVzb3VyY2VMb2FkZXIuaCIKKyNp
bmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNh
Y2hlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCkBAIC02MDUsNiArNjA3LDkgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6c3RvcExvYWRpbmcoVW5sb2FkRXZlbgogI2VuZGlmCiAgICAgfQogCisgICAg
aWYgKG1fZnJhbWUtPmRvbVdpbmRvdygpICYmIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5uYXZpZ2F0
b3IoKS0+b3B0aW9uYWxHZW9sb2NhdGlvbigpKQorICAgICAgICBtX2ZyYW1lLT5kb21XaW5kb3co
KS0+bmF2aWdhdG9yKCktPm9wdGlvbmFsR2VvbG9jYXRpb24oKS0+c3RvcCgpOworCiAgICAgLy8g
dGVsbCBhbGwgc3ViZnJhbWVzIHRvIHN0b3AgYXMgd2VsbAogICAgIGZvciAoRnJhbWUqIGNoaWxk
ID0gbV9mcmFtZS0+dHJlZSgpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50
cmVlKCktPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGNoaWxkLT5sb2FkZXIoKS0+c3RvcExvYWRp
bmcodW5sb2FkRXZlbnRQb2xpY3kpOwpJbmRleDogV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCShyZXZpc2lvbiA1
OTc2NikKKysrIFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIxOCwxMSArMjE4LDE3IEBAIEdlb2xvY2F0aW9uOjp+R2VvbG9jYXRpb24oKQogewogfQogCit2
b2lkIEdlb2xvY2F0aW9uOjpzdG9wKCkKK3sKKyAgICBtX29uZVNob3RzLmNsZWFyKCk7CisgICAg
bV93YXRjaGVycy5jbGVhcigpOworICAgIHN0b3BVcGRhdGluZygpOworfQorCiB2b2lkIEdlb2xv
Y2F0aW9uOjpkaXNjb25uZWN0RnJhbWUoKQogewogICAgIGlmIChtX2ZyYW1lICYmIG1fZnJhbWUt
PnBhZ2UoKSAmJiBtX2FsbG93R2VvbG9jYXRpb24gPT0gSW5Qcm9ncmVzcykKICAgICAgICAgbV9m
cmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dEZvckZyYW1lKG1fZnJhbWUsIHRoaXMpOwotICAgIHN0b3BVcGRhdGluZygpOwogICAgIGlmICht
X2ZyYW1lICYmIG1fZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50
KCktPnNldFVzaW5nR2VvbG9jYXRpb24oZmFsc2UpOwogICAgIG1fZnJhbWUgPSAwOwpJbmRleDog
V2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0dl
b2xvY2F0aW9uLmgJKHJldmlzaW9uIDU5NzY2KQorKysgV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9u
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDggQEAgcHVibGljOgogICAgIHZvaWQgc3Vz
cGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAKKyAgICB2b2lkIHN0b3AoKTsKKwogICAgIHZv
aWQgc2V0SXNBbGxvd2VkKGJvb2wpOwogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZnJhbWU7IH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTk3NzYpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNS0xOSAgU3Rl
dmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2VvbG9jYXRpb24gY2F1c2VzIERPTVdpbmRvdyB0
byBsZWFrIGlmIHBvc2l0aW9uIHJlcXVlc3RzIGFyZSBpbiBwcm9ncmVzcyB3aGVuIHRoZSBwYWdl
IGlzIG5hdmlnYXRlZCBhd2F5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zOTI4OAorCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vb25nb2lu
Zy1yZXF1ZXN0LWxlYWstZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9H
ZW9sb2NhdGlvbi9vbmdvaW5nLXJlcXVlc3QtbGVhay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvb25nb2luZy1yZXF1ZXN0LWxlYWsuanM6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorCiAyMDEwLTA1LTE5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3
ZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9vbmdvaW5nLXJlcXVl
c3QtbGVhay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
R2VvbG9jYXRpb24vb25nb2luZy1yZXF1ZXN0LWxlYWstZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vb25nb2luZy1yZXF1ZXN0LWxl
YWstZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkgQEAKK1RoaXMgcGFnZSBl
eGVyY2lzZXMgYSBjb25kaXRpb24gd2hlcmUgdGhlIERPTVdpbmRvdyBtYXkgbGVhayBpZiBHZW9s
b2NhdGlvbiByZXF1ZXN0cyBhcmUgb25nb2luZyB3aGVuIHRoZSBwYWdlIGlzIG5hdmlnYXRlZCBh
d2F5IG9yIGNsb3NlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9vbmdvaW5nLXJlcXVlc3QtbGVhay5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL29uZ29pbmctcmVxdWVz
dC1sZWFrLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2Nh
dGlvbi9vbmdvaW5nLXJlcXVlc3QtbGVhay5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEz
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL29uZ29pbmctcmVxdWVzdC1sZWFrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9vbmdvaW5nLXJlcXVl
c3QtbGVhay5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlv
bi9yZXNvdXJjZXMvb25nb2luZy1yZXF1ZXN0LWxlYWsuanMJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvb25nb2luZy1yZXF1ZXN0LWxl
YWsuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAorZGVzY3JpcHRpb24oIlRoaXMgcGFn
ZSBleGVyY2lzZXMgYSBjb25kaXRpb24gd2hlcmUgdGhlIERPTVdpbmRvdyBtYXkgbGVhayBpZiBH
ZW9sb2NhdGlvbiByZXF1ZXN0cyBhcmUgb25nb2luZyB3aGVuIHRoZSBwYWdlIGlzIG5hdmlnYXRl
ZCBhd2F5IG9yIGNsb3NlZC4iKTsKKword2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLnNldEdl
b2xvY2F0aW9uUGVybWlzc2lvbih0cnVlKTsKK3dpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbig1MS40NzgsIC0wLjE2NiwgMTAwLjApOworbmF2aWdh
dG9yLmdlb2xvY2F0aW9uLndhdGNoUG9zaXRpb24oZnVuY3Rpb24oKSB7fSwgbnVsbCk7CisKK3Zh
ciBpc0FzeW5jaHJvbm91cyA9IGZhbHNlOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkocmV2aXNpb24gNTk3NjYpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTE4MSw2ICsx
MTgxLDcgQEAgZmFzdC9kb20vY3NzVGFyZ2V0LWNyYXNoLmh0bWwKIGZhc3QvZG9tL2ZyYW1lLWxv
YWRpbmctdmlhLWRvY3VtZW50LXdyaXRlLmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxi
YWNrLWV4Y2VwdGlvbi5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9lcnJvci5odG1sCitmYXN0
L2RvbS9HZW9sb2NhdGlvbi9vbmdvaW5nLXJlcXVlc3QtbGVhay5odG1sCiBmYXN0L2RvbS9HZW9s
b2NhdGlvbi9wZXJtaXNzaW9uLWRlbmllZC1hbHJlYWR5LWNsZWFyLXdhdGNoLmh0bWwKIGZhc3Qv
ZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlv
bi9yZWVudHJhbnQtZXJyb3IuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56589</attachid>
            <date>2010-05-20 05:42:13 -0700</date>
            <delta_ts>2010-05-20 06:38:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39288-20100520134211.patch</filename>
            <type>text/plain</type>
            <size>6817</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTc3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDUtMTkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEdlb2xvY2F0aW9uIGNhdXNlcyBET01XaW5kb3cgdG8gbGVhayBpZiBwb3NpdGlvbiByZXF1ZXN0
cyBhcmUgaW4gcHJvZ3Jlc3Mgd2hlbiB0aGUgcGFnZSBpcyBuYXZpZ2F0ZWQgYXdheQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkyODgKKworICAgICAg
ICBUZXN0OiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9vbmdvaW5nLXJlcXVlc3QtbGVhay5odG1sCisK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OnN0b3BMb2FkaW5nKTogU3RvcCBhbGwgR2VvbG9jYXRpb24gaW5zdGFuY2VzLiBU
aGlzIGNhbGwgaXMgbWFkZSBhZnRlciB0aGUgdW5sb2FkIGV2ZW50IGhhcyBmaXJlZCwgc28gbm8g
bmV3IEdlb2xvY2F0aW9uIGFjdGl2aXR5IGlzIHBvc3NpYmxlLgorICAgICAgICAqIHBhZ2UvR2Vv
bG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnN0b3ApOiBSZW1v
dmVzIGFsbCBvbmdvaW5nIHJlcXVlc3RzIGFuZCBzdG9wcyB0aGUgc2VydmljZS4KKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpkaXNjb25uZWN0RnJhbWUpOiBSZW1vdmVkIGNhbGwgdG8g
c3RvcCBzZXJ2aWNlLCBhcyB0aGlzIHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4gZG9uZSBpbiBzdG9w
KCk7CisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5oOiBBZGRlZCBzdG9wKCkgbWV0aG9kLgor
CiAyMDEwLTA1LTE5ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJ
KHJldmlzaW9uIDU5NzY2KQorKysgV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQu
aCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNs
dWRlICJHZW9sb2NhdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTEFwcGxldEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIK
QEAgLTc1LDYgKzc2LDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
Ik5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIK
ICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKQEAgLTYwNSw2ICs2MDcsMTEgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6c3RvcExvYWRpbmcoVW5sb2FkRXZlbgogI2VuZGlmCiAgICAgfQogCisgICAgIC8vIFN0
b3AgdGhlIEdlb2xvY2F0aW9uIG9iamVjdCwgaWYgcHJlc2VudC4gVGhpcyBjYWxsIGlzIG1hZGUg
YWZ0ZXIgdGhlIHVubG9hZAorICAgICAvLyBldmVudCBoYXMgZmlyZWQsIHNvIG5vIG5ldyBHZW9s
b2NhdGlvbiBhY3Rpdml0eSBpcyBwb3NzaWJsZS4KKyAgICBpZiAobV9mcmFtZS0+ZG9tV2luZG93
KCktPm5hdmlnYXRvcigpLT5vcHRpb25hbEdlb2xvY2F0aW9uKCkpCisgICAgICAgIG1fZnJhbWUt
PmRvbVdpbmRvdygpLT5uYXZpZ2F0b3IoKS0+b3B0aW9uYWxHZW9sb2NhdGlvbigpLT5zdG9wKCk7
CisKICAgICAvLyB0ZWxsIGFsbCBzdWJmcmFtZXMgdG8gc3RvcCBhcyB3ZWxsCiAgICAgZm9yIChG
cmFtZSogY2hpbGQgPSBtX2ZyYW1lLT50cmVlKCktPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQtPnRyZWUoKS0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgY2hpbGQtPmxvYWRlcigp
LT5zdG9wTG9hZGluZyh1bmxvYWRFdmVudFBvbGljeSk7CkluZGV4OiBXZWJDb3JlL3BhZ2UvR2Vv
bG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAJ
KHJldmlzaW9uIDU5NzY2KQorKysgV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjE4LDExICsyMTgsMTcgQEAgR2VvbG9jYXRpb246On5HZW9sb2NhdGlvbigp
CiB7CiB9CiAKK3ZvaWQgR2VvbG9jYXRpb246OnN0b3AoKQoreworICAgIG1fb25lU2hvdHMuY2xl
YXIoKTsKKyAgICBtX3dhdGNoZXJzLmNsZWFyKCk7CisgICAgc3RvcFVwZGF0aW5nKCk7Cit9CisK
IHZvaWQgR2VvbG9jYXRpb246OmRpc2Nvbm5lY3RGcmFtZSgpCiB7CiAgICAgaWYgKG1fZnJhbWUg
JiYgbV9mcmFtZS0+cGFnZSgpICYmIG1fYWxsb3dHZW9sb2NhdGlvbiA9PSBJblByb2dyZXNzKQog
ICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5jYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Rm9yRnJhbWUobV9mcmFtZSwgdGhpcyk7Ci0gICAgc3RvcFVwZGF0aW5nKCk7
CiAgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKSkKICAgICAgICAgbV9mcmFt
ZS0+ZG9jdW1lbnQoKS0+c2V0VXNpbmdHZW9sb2NhdGlvbihmYWxzZSk7CiAgICAgbV9mcmFtZSA9
IDA7CkluZGV4OiBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BhZ2UvR2VvbG9jYXRpb24uaAkocmV2aXNpb24gNTk3NjYpCisrKyBXZWJDb3JlL3BhZ2Uv
R2VvbG9jYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUoKTsKIAorICAgIHZvaWQgc3RvcCgp
OworCiAgICAgdm9pZCBzZXRJc0FsbG93ZWQoYm9vbCk7CiAgICAgRnJhbWUqIGZyYW1lKCkgY29u
c3QgeyByZXR1cm4gbV9mcmFtZTsgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1OTc3NikKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEw
LTA1LTE5ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHZW9sb2NhdGlvbiBjYXVzZXMg
RE9NV2luZG93IHRvIGxlYWsgaWYgcG9zaXRpb24gcmVxdWVzdHMgYXJlIGluIHByb2dyZXNzIHdo
ZW4gdGhlIHBhZ2UgaXMgbmF2aWdhdGVkIGF3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM5Mjg4CisKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2Nh
dGlvbi9vbmdvaW5nLXJlcXVlc3QtbGVhay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL0dlb2xvY2F0aW9uL29uZ29pbmctcmVxdWVzdC1sZWFrLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9vbmdvaW5nLXJlcXVlc3Qt
bGVhay5qczogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisKIDIwMTAt
MDUtMTkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAg
IE5vdCByZXZpZXdlZC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL29u
Z29pbmctcmVxdWVzdC1sZWFrLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9vbmdvaW5nLXJlcXVlc3QtbGVhay1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9vbmdvaW5n
LXJlcXVlc3QtbGVhay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAor
VGhpcyBwYWdlIGV4ZXJjaXNlcyBhIGNvbmRpdGlvbiB3aGVyZSB0aGUgRE9NV2luZG93IG1heSBs
ZWFrIGlmIEdlb2xvY2F0aW9uIHJlcXVlc3RzIGFyZSBvbmdvaW5nIHdoZW4gdGhlIHBhZ2UgaXMg
bmF2aWdhdGVkIGF3YXkgb3IgY2xvc2VkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL29uZ29pbmctcmVxdWVzdC1sZWFr
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vb25n
b2luZy1yZXF1ZXN0LWxlYWsuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0dlb2xvY2F0aW9uL29uZ29pbmctcmVxdWVzdC1sZWFrLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvb25nb2luZy1yZXF1ZXN0LWxlYWsuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL29u
Z29pbmctcmVxdWVzdC1sZWFrLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL3Jlc291cmNlcy9vbmdvaW5nLXJlcXVlc3QtbGVhay5qcwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9vbmdvaW5n
LXJlcXVlc3QtbGVhay5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACitkZXNjcmlwdGlv
bigiVGhpcyBwYWdlIGV4ZXJjaXNlcyBhIGNvbmRpdGlvbiB3aGVyZSB0aGUgRE9NV2luZG93IG1h
eSBsZWFrIGlmIEdlb2xvY2F0aW9uIHJlcXVlc3RzIGFyZSBvbmdvaW5nIHdoZW4gdGhlIHBhZ2Ug
aXMgbmF2aWdhdGVkIGF3YXkgb3IgY2xvc2VkLiIpOworCit3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKHRydWUpOword2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyLnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKDUxLjQ3OCwgLTAuMTY2LCAxMDAu
MCk7CituYXZpZ2F0b3IuZ2VvbG9jYXRpb24ud2F0Y2hQb3NpdGlvbihmdW5jdGlvbigpIHt9LCBu
dWxsKTsKKwordmFyIGlzQXN5bmNocm9ub3VzID0gZmFsc2U7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiA1OTc2
NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTgxLDYgKzExODEsNyBAQCBmYXN0L2RvbS9jc3NUYXJnZXQtY3Jhc2guaHRtbAogZmFzdC9k
b20vZnJhbWUtbG9hZGluZy12aWEtZG9jdW1lbnQtd3JpdGUuaHRtbAogZmFzdC9kb20vR2VvbG9j
YXRpb24vY2FsbGJhY2stZXhjZXB0aW9uLmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9y
Lmh0bWwKK2Zhc3QvZG9tL0dlb2xvY2F0aW9uL29uZ29pbmctcmVxdWVzdC1sZWFrLmh0bWwKIGZh
c3QvZG9tL0dlb2xvY2F0aW9uL3Blcm1pc3Npb24tZGVuaWVkLWFscmVhZHktY2xlYXItd2F0Y2gu
aHRtbAogZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLmh0bWwKIGZhc3QvZG9t
L0dlb2xvY2F0aW9uL3JlZW50cmFudC1lcnJvci5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56590</attachid>
            <date>2010-05-20 06:38:54 -0700</date>
            <delta_ts>2010-06-11 13:56:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39288-20100520143852.patch</filename>
            <type>text/plain</type>
            <size>7036</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTc3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDUtMTkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEdlb2xvY2F0aW9uIGNhdXNlcyBET01XaW5kb3cgdG8gbGVhayBpZiBwb3NpdGlvbiByZXF1ZXN0
cyBhcmUgaW4gcHJvZ3Jlc3Mgd2hlbiB0aGUgcGFnZSBpcyBuYXZpZ2F0ZWQgYXdheQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkyODgKKworICAgICAg
ICBUZXN0OiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9vbmdvaW5nLXJlcXVlc3QtbGVhay5odG1sCisK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OnN0b3BMb2FkaW5nKTogU3RvcCBhbGwgR2VvbG9jYXRpb24gaW5zdGFuY2VzLiBU
aGlzIGNhbGwgaXMgbWFkZSBhZnRlciB0aGUgdW5sb2FkIGV2ZW50IGhhcyBmaXJlZCwgc28gbm8g
bmV3IEdlb2xvY2F0aW9uIGFjdGl2aXR5IGlzIHBvc3NpYmxlLgorICAgICAgICAqIHBhZ2UvR2Vv
bG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnN0b3ApOiBSZW1v
dmVzIGFsbCBvbmdvaW5nIHJlcXVlc3RzIGFuZCBzdG9wcyB0aGUgc2VydmljZS4KKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpkaXNjb25uZWN0RnJhbWUpOiBSZW1vdmVkIGNhbGwgdG8g
c3RvcCBzZXJ2aWNlLCBhcyB0aGlzIHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4gZG9uZSBpbiBzdG9w
KCk7CisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5oOiBBZGRlZCBzdG9wKCkgbWV0aG9kLgor
CiAyMDEwLTA1LTE5ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJ
KHJldmlzaW9uIDU5NzY2KQorKysgV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQu
aCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNs
dWRlICJHZW9sb2NhdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTEFwcGxldEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIK
QEAgLTc1LDYgKzc2LDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
Ik5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIK
ICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKQEAgLTYwNSw2ICs2MDcsMTEgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6c3RvcExvYWRpbmcoVW5sb2FkRXZlbgogI2VuZGlmCiAgICAgfQogCisgICAgIC8vIFN0
b3AgdGhlIEdlb2xvY2F0aW9uIG9iamVjdCwgaWYgcHJlc2VudC4gVGhpcyBjYWxsIGlzIG1hZGUg
YWZ0ZXIgdGhlIHVubG9hZAorICAgICAvLyBldmVudCBoYXMgZmlyZWQsIHNvIG5vIG5ldyBHZW9s
b2NhdGlvbiBhY3Rpdml0eSBpcyBwb3NzaWJsZS4KKyAgICBpZiAobV9mcmFtZS0+ZG9tV2luZG93
KCktPm5hdmlnYXRvcigpLT5vcHRpb25hbEdlb2xvY2F0aW9uKCkpCisgICAgICAgIG1fZnJhbWUt
PmRvbVdpbmRvdygpLT5uYXZpZ2F0b3IoKS0+b3B0aW9uYWxHZW9sb2NhdGlvbigpLT5zdG9wKCk7
CisKICAgICAvLyB0ZWxsIGFsbCBzdWJmcmFtZXMgdG8gc3RvcCBhcyB3ZWxsCiAgICAgZm9yIChG
cmFtZSogY2hpbGQgPSBtX2ZyYW1lLT50cmVlKCktPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQtPnRyZWUoKS0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgY2hpbGQtPmxvYWRlcigp
LT5zdG9wTG9hZGluZyh1bmxvYWRFdmVudFBvbGljeSk7CkluZGV4OiBXZWJDb3JlL3BhZ2UvR2Vv
bG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAJ
KHJldmlzaW9uIDU5NzY2KQorKysgV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjE4LDExICsyMTgsMTcgQEAgR2VvbG9jYXRpb246On5HZW9sb2NhdGlvbigp
CiB7CiB9CiAKK3ZvaWQgR2VvbG9jYXRpb246OnN0b3AoKQoreworICAgIG1fb25lU2hvdHMuY2xl
YXIoKTsKKyAgICBtX3dhdGNoZXJzLmNsZWFyKCk7CisgICAgc3RvcFVwZGF0aW5nKCk7Cit9CisK
IHZvaWQgR2VvbG9jYXRpb246OmRpc2Nvbm5lY3RGcmFtZSgpCiB7CiAgICAgaWYgKG1fZnJhbWUg
JiYgbV9mcmFtZS0+cGFnZSgpICYmIG1fYWxsb3dHZW9sb2NhdGlvbiA9PSBJblByb2dyZXNzKQog
ICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5jYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Rm9yRnJhbWUobV9mcmFtZSwgdGhpcyk7Ci0gICAgc3RvcFVwZGF0aW5nKCk7
CiAgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKSkKICAgICAgICAgbV9mcmFt
ZS0+ZG9jdW1lbnQoKS0+c2V0VXNpbmdHZW9sb2NhdGlvbihmYWxzZSk7CiAgICAgbV9mcmFtZSA9
IDA7CkBAIC02NjcsNiArNjczLDggQEAgR2VvbG9jYXRpb246On5HZW9sb2NhdGlvbigpIHt9CiAK
IHZvaWQgR2VvbG9jYXRpb246OnNldElzQWxsb3dlZChib29sKSB7fQogCit2b2lkIEdlb2xvY2F0
aW9uOjpzdG9wKCkge30KKwogfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCkluZGV4
OiBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2Uv
R2VvbG9jYXRpb24uaAkocmV2aXNpb24gNTk3NjYpCisrKyBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
dXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUoKTsKIAorICAgIHZvaWQgc3RvcCgpOworCiAgICAg
dm9pZCBzZXRJc0FsbG93ZWQoYm9vbCk7CiAgICAgRnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9mcmFtZTsgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1OTc3NikKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA1LTE5ICBT
dGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHZW9sb2NhdGlvbiBjYXVzZXMgRE9NV2luZG93
IHRvIGxlYWsgaWYgcG9zaXRpb24gcmVxdWVzdHMgYXJlIGluIHByb2dyZXNzIHdoZW4gdGhlIHBh
Z2UgaXMgbmF2aWdhdGVkIGF3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM5Mjg4CisKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9vbmdv
aW5nLXJlcXVlc3QtbGVhay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L0dlb2xvY2F0aW9uL29uZ29pbmctcmVxdWVzdC1sZWFrLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9vbmdvaW5nLXJlcXVlc3QtbGVhay5qczog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisKIDIwMTAtMDUtMTkgIE1h
cnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vdCByZXZp
ZXdlZC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL29uZ29pbmctcmVx
dWVzdC1sZWFrLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9HZW9sb2NhdGlvbi9vbmdvaW5nLXJlcXVlc3QtbGVhay1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9vbmdvaW5nLXJlcXVlc3Qt
bGVhay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorVGhpcyBwYWdl
IGV4ZXJjaXNlcyBhIGNvbmRpdGlvbiB3aGVyZSB0aGUgRE9NV2luZG93IG1heSBsZWFrIGlmIEdl
b2xvY2F0aW9uIHJlcXVlc3RzIGFyZSBvbmdvaW5nIHdoZW4gdGhlIHBhZ2UgaXMgbmF2aWdhdGVk
IGF3YXkgb3IgY2xvc2VkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL29uZ29pbmctcmVxdWVzdC1sZWFrLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vb25nb2luZy1yZXF1
ZXN0LWxlYWsuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xv
Y2F0aW9uL29uZ29pbmctcmVxdWVzdC1sZWFrLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvb25nb2luZy1yZXF1ZXN0LWxlYWsuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL29uZ29pbmctcmVx
dWVzdC1sZWFrLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0
aW9uL3Jlc291cmNlcy9vbmdvaW5nLXJlcXVlc3QtbGVhay5qcwkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9vbmdvaW5nLXJlcXVlc3Qt
bGVhay5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACitkZXNjcmlwdGlvbigiVGhpcyBw
YWdlIGV4ZXJjaXNlcyBhIGNvbmRpdGlvbiB3aGVyZSB0aGUgRE9NV2luZG93IG1heSBsZWFrIGlm
IEdlb2xvY2F0aW9uIHJlcXVlc3RzIGFyZSBvbmdvaW5nIHdoZW4gdGhlIHBhZ2UgaXMgbmF2aWdh
dGVkIGF3YXkgb3IgY2xvc2VkLiIpOworCit3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
R2VvbG9jYXRpb25QZXJtaXNzaW9uKHRydWUpOword2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
LnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKDUxLjQ3OCwgLTAuMTY2LCAxMDAuMCk7CituYXZp
Z2F0b3IuZ2VvbG9jYXRpb24ud2F0Y2hQb3NpdGlvbihmdW5jdGlvbigpIHt9LCBudWxsKTsKKwor
dmFyIGlzQXN5bmNocm9ub3VzID0gZmFsc2U7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiA1OTc2NikKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgxLDYg
KzExODEsNyBAQCBmYXN0L2RvbS9jc3NUYXJnZXQtY3Jhc2guaHRtbAogZmFzdC9kb20vZnJhbWUt
bG9hZGluZy12aWEtZG9jdW1lbnQtd3JpdGUuaHRtbAogZmFzdC9kb20vR2VvbG9jYXRpb24vY2Fs
bGJhY2stZXhjZXB0aW9uLmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLmh0bWwKK2Zh
c3QvZG9tL0dlb2xvY2F0aW9uL29uZ29pbmctcmVxdWVzdC1sZWFrLmh0bWwKIGZhc3QvZG9tL0dl
b2xvY2F0aW9uL3Blcm1pc3Npb24tZGVuaWVkLWFscmVhZHktY2xlYXItd2F0Y2guaHRtbAogZmFz
dC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0
aW9uL3JlZW50cmFudC1lcnJvci5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>