<?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>35296</bug_id>
          
          <creation_ts>2010-02-23 08:13:03 -0800</creation_ts>
          <short_desc>TreeWalker is not calling acceptNode function in filter object</short_desc>
          <delta_ts>2019-02-06 09:03:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>http://code.google.com/p/chromium/issues/detail?id=36502</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James M. Greene">james.m.greene</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dumi</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>192956</commentid>
    <comment_count>0</comment_count>
    <who name="James M. Greene">james.m.greene</who>
    <bug_when>2010-02-23 08:13:03 -0800</bug_when>
    <thetext>Within the last 1 month (4 weeks), the TreeWalker in WebKit (confirmed on Safari for Mac and Google Chrome on Windows) is no longer calling its Filter object&apos;s acceptNode function.  There is a related bug on Chromium:  http://code.google.com/p/chromium/issues/detail?id=36502</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192988</commentid>
    <comment_count>1</comment_count>
      <attachid>49298</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-23 09:36:18 -0800</bug_when>
    <thetext>Created attachment 49298
test case (should alert PASS)

Attaching a test case adapted from one provided in Chromium bug. It fails in both Safari 4.0.4 and ToT for me.

You said that this started about a month ago for you. Do you have a different test case that passes in shipping Safari/WebKit, but fails in nightlies?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192999</commentid>
    <comment_count>2</comment_count>
    <who name="James M. Greene">james.m.greene</who>
    <bug_when>2010-02-23 10:04:26 -0800</bug_when>
    <thetext>I don&apos;t know when it STARTED, I just know that it worked 4 weeks ago. I pushed out an unrelated JavaScript fix in my product for WebKit browsers in the section of our code that uses the TreeWalker about 4 weeks ago, at which point it was tested thoroughly in all supported browsers.

So, it must&apos;ve started within the last 4 weeks.


I&apos;m not using nightly builds, just whatever is the most currently published/pushed versions of Safari and Chrome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193018</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-23 10:52:31 -0800</bug_when>
    <thetext>There were no Safari releases in the last 4 weeks.

This is a bug, of course, but there is no indication of it being a regression in WebKit (regressions typically get much higher priority, which is why I was asking).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193060</commentid>
    <comment_count>4</comment_count>
    <who name="James M. Greene">james.m.greene</who>
    <bug_when>2010-02-23 12:05:46 -0800</bug_when>
    <thetext>Perhaps my version of Safari was not up-to-date at that time?  I was utilizing a rarely used MacBook to do my Safari testing, so it&apos;s quite possible.  I would expect that my copy of Chrome was up-to-date, though, but maybe not.

It was working in the versions of Safari and Chrome that I had installed on Saturday, 1/16/2010 @ 12:00pm CST.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193112</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-02-23 13:50:51 -0800</bug_when>
    <thetext>Test case fails in Safari 4.0.4, so not a regression from Safari 4.0.4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193114</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-02-23 13:51:31 -0800</bug_when>
    <thetext>If someone can find an old version of Safari or WebKit nightly build where this test passes, it would be good to know the exact version number.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267477</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-20 16:42:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/4953561&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267486</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-20 16:55:19 -0700</bug_when>
    <thetext>WebKit works if the NodeFilter param is a bare function, but fails if it&apos;s an object with an acceptNode() property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267525</commentid>
    <comment_count>9</comment_count>
      <attachid>65019</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-20 20:37:05 -0700</bug_when>
    <thetext>Created attachment 65019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267593</commentid>
    <comment_count>10</comment_count>
      <attachid>65019</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-21 12:42:50 -0700</bug_when>
    <thetext>Comment on attachment 65019
Patch

With this patch our behavior differs from Gecko if the filter object does not have an acceptNode function (it should throw an exception).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267597</commentid>
    <comment_count>11</comment_count>
      <attachid>65033</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-21 13:26:36 -0700</bug_when>
    <thetext>Created attachment 65033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268002</commentid>
    <comment_count>12</comment_count>
      <attachid>65033</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-23 11:02:14 -0700</bug_when>
    <thetext>Comment on attachment 65033
Patch

What happens if the object is both callable, and has a callable acceptNode member? The priority here is opposite from what we have for handleEvent() in JSEVentListener.cpp.

&gt; With this patch our behavior differs from Gecko if the filter object does not have an acceptNode function (it should throw an exception).

Is there a good reason to be different? Doe Mozilla track this as a bug to be fixed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268016</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-23 11:23:51 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 65033 [details])
&gt; What happens if the object is both callable, and has a callable acceptNode member? The priority here is opposite from what we have for handleEvent() in JSEVentListener.cpp.

The object is called, This is what Gecko does. The testcase tests this.

&gt; &gt; With this patch our behavior differs from Gecko if the filter object does not have an acceptNode function (it should throw an exception).
&gt; 
&gt; Is there a good reason to be different? Doe Mozilla track this as a bug to be fixed?

The final patch fixes this so we match Gecko.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268020</commentid>
    <comment_count>14</comment_count>
      <attachid>65033</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-23 11:31:17 -0700</bug_when>
    <thetext>Comment on attachment 65033
Patch

Now I&apos;m wondering if JSEventListener.cpp gets the precedence wrong.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268054</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-23 12:24:48 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65824</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268136</commentid>
    <comment_count>16</comment_count>
      <attachid>65033</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-08-23 15:56:05 -0700</bug_when>
    <thetext>Comment on attachment 65033
Patch

WebCore/bindings/js/JSNodeFilterCondition.cpp:65
 +          JSValue function = m_filter.get(exec, Identifier(exec, &quot;acceptNode&quot;));
does &apos;function&apos; need to be re-declared here? if it does, then do we need the declaration above? can&apos;t we just pass m_filter to JSC::call() in that case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268160</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-23 16:29:49 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 65033 [details])
&gt; WebCore/bindings/js/JSNodeFilterCondition.cpp:65
&gt;  +          JSValue function = m_filter.get(exec, Identifier(exec, &quot;acceptNode&quot;));
&gt; does &apos;function&apos; need to be re-declared here? if it does, then do we need the declaration above? can&apos;t we just pass m_filter to JSC::call() in that case?

You&apos;re right; I aliased &apos;function&apos; by mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268185</commentid>
    <comment_count>18</comment_count>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-08-23 16:46:11 -0700</bug_when>
    <thetext>This patch has also broken the chromium bots, because the V8 bindings were not updated...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268198</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-23 16:54:01 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; (From update of attachment 65033 [details] [details])
&gt; &gt; WebCore/bindings/js/JSNodeFilterCondition.cpp:65
&gt; &gt;  +          JSValue function = m_filter.get(exec, Identifier(exec, &quot;acceptNode&quot;));
&gt; &gt; does &apos;function&apos; need to be re-declared here? if it does, then do we need the declaration above? can&apos;t we just pass m_filter to JSC::call() in that case?
&gt; 
&gt; You&apos;re right; I aliased &apos;function&apos; by mistake.

And I think this also shows that there is insufficient test coverage, because the code won&apos;t work right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268217</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-23 17:34:28 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #17)
&gt; &gt; (In reply to comment #16)
&gt; &gt; &gt; (From update of attachment 65033 [details] [details] [details])
&gt; &gt; &gt; WebCore/bindings/js/JSNodeFilterCondition.cpp:65
&gt; &gt; &gt;  +          JSValue function = m_filter.get(exec, Identifier(exec, &quot;acceptNode&quot;));
&gt; &gt; &gt; does &apos;function&apos; need to be re-declared here? if it does, then do we need the declaration above? can&apos;t we just pass m_filter to JSC::call() in that case?
&gt; &gt; 
&gt; &gt; You&apos;re right; I aliased &apos;function&apos; by mistake.
&gt; 
&gt; And I think this also shows that there is insufficient test coverage, because the code won&apos;t work right.

I don&apos;t know how to test this difference. I&apos;d expect it to break the case where the filter has an &apos;acceptNode&apos; function, but that works fine. I suspect that it continues to work because &apos;callData&apos; got the right data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268221</commentid>
    <comment_count>21</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-23 17:38:52 -0700</bug_when>
    <thetext>Reopen for cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268229</commentid>
    <comment_count>22</comment_count>
      <attachid>65192</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-23 17:48:23 -0700</bug_when>
    <thetext>Created attachment 65192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268246</commentid>
    <comment_count>23</comment_count>
      <attachid>65192</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-23 18:31:31 -0700</bug_when>
    <thetext>Comment on attachment 65192
Patch

+        Fix incorrect aliasing of the &apos;function&apos; variable, which could result

Shadowing?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268255</commentid>
    <comment_count>24</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-23 18:49:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65853</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502933</commentid>
    <comment_count>25</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:03:15 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>49298</attachid>
            <date>2010-02-23 09:36:18 -0800</date>
            <delta_ts>2010-02-23 09:38:10 -0800</delta_ts>
            <desc>test case (should alert PASS)</desc>
            <filename>walker.html</filename>
            <type>text/html</type>
            <size>229</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5Pgo8c2NyaXB0Pgp2YXIgdyA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdW1lbnQuYm9keSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIHsgYWNjZXB0Tm9kZTogZnVu
Y3Rpb24obm9kZSkgeyBhbGVydCgiUEFTUyIpOyByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfUkVK
RUNUOyB9IH0sIGZhbHNlKTsKdy5uZXh0Tm9kZSgpOwo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65019</attachid>
            <date>2010-08-20 20:37:05 -0700</date>
            <delta_ts>2010-08-21 12:42:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-35296-20100820203654.patch</filename>
            <type>text/plain</type>
            <size>7319</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmNlNWNmZGYyNDZkMmRhYWJmYmI2NDVlYjg4NWJkYjNlMzI2NzRhLi4wOWI1M2E3
OGM2MDAwOWE0OTBiYmIwZDlhMjdjODM5Yjg0OGQ0YzQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDgtMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJlZVdhbGtlciBp
cyBub3QgY2FsbGluZyBhY2NlcHROb2RlIGZ1bmN0aW9uIGluIGZpbHRlciBvYmplY3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1Mjk2CisgICAgICAg
IAorICAgICAgICBUZXN0Y2FzZSB3aXRoIHZhcmlvdXMgdHlwZXMgb2YgTm9kZUZpbHRlcnMgb24g
YSBUcmVlV2Fsa2VyLgorCisgICAgICAgICogZmFzdC9kb20vVHJlZVdhbGtlci9hY2NlcHROb2Rl
LWZpbHRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1RyZWVXYWxr
ZXIvYWNjZXB0Tm9kZS1maWx0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vVHJl
ZVdhbGtlci9zY3JpcHQtdGVzdHMvYWNjZXB0Tm9kZS1maWx0ZXIuanM6IEFkZGVkLgorCiAyMDEw
LTA4LTIwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5vZGUtZmlsdGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEyMzQzZmFjMmUyNDI5NWI1NjI1ZWY2ZmE0M2I5MjhlYzk2N2ExZWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5vZGUt
ZmlsdGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMwIEBACitUZXN0IEpTIG9iamVjdHMgYXMg
Tm9kZUZpbHRlcnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0aW5nIHdp
dGggcmF3IGZ1bmN0aW9uIGZpbHRlcgorIGZpbHRlcmluZyBub2RlIEExCitQQVNTIHdhbGtlci5m
aXJzdENoaWxkKCk7IHdhbGtlci5jdXJyZW50Tm9kZS5pZCBpcyAnQTEnCisgZmlsdGVyaW5nIG5v
ZGUgQjEKKyBmaWx0ZXJpbmcgbm9kZSBCMgorUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgd2Fsa2Vy
LmN1cnJlbnROb2RlLmlkIGlzICdCMicKKworVGVzdGluZyB3aXRoIG9iamVjdCBmaWx0ZXIKKyBm
aWx0ZXJpbmcgbm9kZSBBMQorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgpOyB3YWxrZXIuY3VycmVu
dE5vZGUuaWQgaXMgJ0ExJworIGZpbHRlcmluZyBub2RlIEIxCisgZmlsdGVyaW5nIG5vZGUgQjIK
K1BBU1Mgd2Fsa2VyLm5leHROb2RlKCk7IHdhbGtlci5jdXJyZW50Tm9kZS5pZCBpcyAnQjInCisK
K1Rlc3Rpbmcgd2l0aCBudWxsIGZpbHRlcgorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgpOyB3YWxr
ZXIuY3VycmVudE5vZGUuaWQgaXMgJ0ExJworUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgd2Fsa2Vy
LmN1cnJlbnROb2RlLmlkIGlzICdCMScKKworVGVzdGluZyB3aXRoIHVuZGVmaW5lZCBmaWx0ZXIK
K1BBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIGlzICdBMScK
K1BBU1Mgd2Fsa2VyLm5leHROb2RlKCk7IHdhbGtlci5jdXJyZW50Tm9kZS5pZCBpcyAnQjEnCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtlci9hY2NlcHROb2RlLWZpbHRlci5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtlci9hY2NlcHROb2RlLWZpbHRlci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE2Mzk4Zjk3YjE5MDFhY2MwMjg0YTQ1NmQzZTE5NmY5MjZlNDMzZjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL2FjY2Vw
dE5vZGUtZmlsdGVyLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2FjY2VwdE5vZGUtZmlsdGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvc2NyaXB0LXRl
c3RzL2FjY2VwdE5vZGUtZmlsdGVyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtl
ci9zY3JpcHQtdGVzdHMvYWNjZXB0Tm9kZS1maWx0ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTBkODVkZGY5
ZTAyZDlmZDFjNTM5NDA3NTU3YzFhZjU2ZDU5MzYwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvc2NyaXB0LXRlc3RzL2FjY2VwdE5vZGUtZmlsdGVy
LmpzCkBAIC0wLDAgKzEsNDUgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IEpTIG9iamVjdHMgYXMgTm9k
ZUZpbHRlcnMuJyk7CisKK3ZhciB3YWxrZXI7Cit2YXIgdGVzdEVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKK3Rlc3RFbGVtZW50LmlubmVySFRNTD0nPGRpdiBpZD0iQTEi
PjxkaXYgaWQ9IkIxIj48L2Rpdj48ZGl2IGlkPSJCMiI+PC9kaXY+PC9kaXY+JzsKKworZnVuY3Rp
b24gZmlsdGVyKG5vZGUpCit7CisgICAgZGVidWcoIiBmaWx0ZXJpbmcgbm9kZSAiICsgbm9kZS5p
ZCk7CisgICAgaWYgKG5vZGUuaWQgPT0gIkIxIikKKyAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIu
RklMVEVSX1NLSVA7CisgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDsKK30KKwor
ZGVidWcoIlRlc3Rpbmcgd2l0aCByYXcgZnVuY3Rpb24gZmlsdGVyIik7Cit3YWxrZXIgPSBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3RFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgZmlsdGVyLCBmYWxzZSk7CitzaG91bGRCZSgid2Fsa2VyLmZpcnN0Q2hpbGQoKTsgd2Fsa2Vy
LmN1cnJlbnROb2RlLmlkIiwgIidBMSciKTsKK3Nob3VsZEJlKCJ3YWxrZXIubmV4dE5vZGUoKTsg
d2Fsa2VyLmN1cnJlbnROb2RlLmlkIiwgIidCMiciKTsKKworZGVidWcoIjxicj5UZXN0aW5nIHdp
dGggb2JqZWN0IGZpbHRlciIpOword2Fsa2VyID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0
ZXN0RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIHsKKyAgICBhY2NlcHROb2RlIDog
ZnVuY3Rpb24obm9kZSkgeworICAgICAgZGVidWcoIiBmaWx0ZXJpbmcgbm9kZSAiICsgbm9kZS5p
ZCk7CisgICAgICBpZiAobm9kZS5pZCA9PSAiQjEiKQorICAgICAgICAgIHJldHVybiBOb2RlRmls
dGVyLkZJTFRFUl9TS0lQOworICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDsK
KyAgICB9CisgIH0sIGZhbHNlKTsKKworc2hvdWxkQmUoIndhbGtlci5maXJzdENoaWxkKCk7IHdh
bGtlci5jdXJyZW50Tm9kZS5pZCIsICInQTEnIik7CitzaG91bGRCZSgid2Fsa2VyLm5leHROb2Rl
KCk7IHdhbGtlci5jdXJyZW50Tm9kZS5pZCIsICInQjInIik7CisKK2RlYnVnKCI8YnI+VGVzdGlu
ZyB3aXRoIG51bGwgZmlsdGVyIik7Cit3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHRlc3RFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCwgZmFsc2UpOworCitz
aG91bGRCZSgid2Fsa2VyLmZpcnN0Q2hpbGQoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIiwgIidB
MSciKTsKK3Nob3VsZEJlKCJ3YWxrZXIubmV4dE5vZGUoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlk
IiwgIidCMSciKTsKKworZGVidWcoIjxicj5UZXN0aW5nIHdpdGggdW5kZWZpbmVkIGZpbHRlciIp
Oword2Fsa2VyID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RWxlbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIHVuZGVmaW5lZCwgZmFsc2UpOworCitzaG91bGRCZSgid2Fsa2Vy
LmZpcnN0Q2hpbGQoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIiwgIidBMSciKTsKK3Nob3VsZEJl
KCJ3YWxrZXIubmV4dE5vZGUoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIiwgIidCMSciKTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNjMzY1NTRiNDBkOTdiZjk1ZTY2YTMxZTYx
ZDY1NWE5ZDc1OTU4ZjEuLmE5ODA0NmNlMDlkNDY0ZGU0NTUyYWY2ZTllMjgxYzgzNzRkZjgzODMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDgtMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVHJlZVdhbGtlciBpcyBub3QgY2FsbGluZyBhY2NlcHROb2RlIGZ1bmN0aW9uIGluIGZpbHRl
ciBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM1Mjk2CisgICAgICAgIAorICAgICAgICBXZSBvbmx5IGFjY2VwdGVkIHJhdyBmdW5jdGlvbnMg
YXMgdGhlIE5vZGVGaWx0ZXIgb24gVHJlZVdhbGtlci4gRml4IHRoaXMgdG8KKyAgICAgICAgbG9v
ayBmb3IgYW4gJ2FjY2VwdE5vZGUnIGZ1bmN0aW9uIG9uIHRoZSBmaWx0ZXIgb2JqZWN0LCBhbmQg
dXNlIHRoYXQgaWYgcHJlc2VudC4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9UcmVlV2Fsa2Vy
L2FjY2VwdE5vZGUtZmlsdGVyLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUZp
bHRlckNvbmRpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVGaWx0ZXJDb25kaXRp
b246OmFjY2VwdE5vZGUpOgorCiAyMDEwLTA4LTIwICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5r
bGluZ0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQXJpeWEgSGlkYXlhdC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAppbmRleCBiNzIz
Mjg2YjM3ZTdhOTk5NGQ1ODVlZjIyYWNjMTY5MDI4MzhmZjA5Li5mMTljNjNjMTM3MGRhZmIwZWYw
NzhmYTU2YzM2ZTBmZDkyMWVmZWI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVG
aWx0ZXJDb25kaXRpb24uY3BwCkBAIC00NSwxMSArNDUsMTkgQEAgc2hvcnQgSlNOb2RlRmlsdGVy
Q29uZGl0aW9uOjphY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBOb2RlKiBmaWx0ZXJO
b2RlKQogewogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CiAKLSAgICBD
YWxsRGF0YSBjYWxsRGF0YTsKLSAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKG1f
ZmlsdGVyLCBjYWxsRGF0YSk7Ci0gICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkKKyAg
ICBpZiAoIW1fZmlsdGVyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpG
SUxURVJfQUNDRVBUOwogCisgICAgSlNWYWx1ZSBmdW5jdGlvbiA9IG1fZmlsdGVyLmdldChleGVj
LCBJZGVudGlmaWVyKGV4ZWMsICJhY2NlcHROb2RlIikpOworICAgIENhbGxEYXRhIGNhbGxEYXRh
OworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoZnVuY3Rpb24sIGNhbGxEYXRh
KTsKKyAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKSB7CisgICAgICAgIGNhbGxUeXBl
ID0gZ2V0Q2FsbERhdGEobV9maWx0ZXIsIGNhbGxEYXRhKTsKKyAgICAgICAgaWYgKGNhbGxUeXBl
ID09IENhbGxUeXBlTm9uZSkKKyAgICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJf
QUNDRVBUOworICAgICAgICBmdW5jdGlvbiA9IG1fZmlsdGVyOworICAgIH0KKwogICAgLy8gVGhl
IGV4ZWMgYXJndW1lbnQgaGVyZSBzaG91bGQgb25seSBiZSBudWxsIGlmIHRoaXMgd2FzIGNhbGxl
ZCBmcm9tIGEKICAgIC8vIG5vbi1KYXZhU2NyaXB0IGxhbmd1YWdlLCBhbmQgdGhpcyBpcyBhIEph
dmFTY3JpcHQgZmlsdGVyLCBhbmQgdGhlIGRvY3VtZW50CiAgICAvLyBpbiBxdWVzdGlvbiBpcyBu
b3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBmcmFtZS4gSW4gdGhhdCBjYXNlLCB3ZSdyZSBnb2luZyB0
bwpAQCAtNjYsNyArNzQsNyBAQCBzaG9ydCBKU05vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5v
ZGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIE5vZGUqIGZpbHRlck5vZGUpCiAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVD
VDsKIAotICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNDOjpjYWxsKGV4ZWMsIG1fZmlsdGVyLCBjYWxs
VHlwZSwgY2FsbERhdGEsIG1fZmlsdGVyLCBhcmdzKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IEpT
Qzo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2ZpbHRlciwgYXJn
cyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gTm9kZUZp
bHRlcjo6RklMVEVSX1JFSkVDVDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65033</attachid>
            <date>2010-08-21 13:26:36 -0700</date>
            <delta_ts>2010-08-23 17:48:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-35296-20100821132635.patch</filename>
            <type>text/plain</type>
            <size>9905</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmNlNWNmZGYyNDZkMmRhYWJmYmI2NDVlYjg4NWJkYjNlMzI2NzRhLi4wOWI1M2E3
OGM2MDAwOWE0OTBiYmIwZDlhMjdjODM5Yjg0OGQ0YzQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDgtMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJlZVdhbGtlciBp
cyBub3QgY2FsbGluZyBhY2NlcHROb2RlIGZ1bmN0aW9uIGluIGZpbHRlciBvYmplY3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1Mjk2CisgICAgICAg
IAorICAgICAgICBUZXN0Y2FzZSB3aXRoIHZhcmlvdXMgdHlwZXMgb2YgTm9kZUZpbHRlcnMgb24g
YSBUcmVlV2Fsa2VyLgorCisgICAgICAgICogZmFzdC9kb20vVHJlZVdhbGtlci9hY2NlcHROb2Rl
LWZpbHRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1RyZWVXYWxr
ZXIvYWNjZXB0Tm9kZS1maWx0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vVHJl
ZVdhbGtlci9zY3JpcHQtdGVzdHMvYWNjZXB0Tm9kZS1maWx0ZXIuanM6IEFkZGVkLgorCiAyMDEw
LTA4LTIwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5vZGUtZmlsdGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ4YWJhZTQ5ZDRkNTY2NmM1YmY3ZjQ5MGRkMDkzYmUwODM1OTNmZDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5vZGUt
ZmlsdGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ2IEBACitUZXN0IEpTIG9iamVjdHMgYXMg
Tm9kZUZpbHRlcnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0aW5nIHdp
dGggcmF3IGZ1bmN0aW9uIGZpbHRlcgorIGZpbHRlcmluZyBub2RlIEExCitQQVNTIHdhbGtlci5m
aXJzdENoaWxkKCk7IHdhbGtlci5jdXJyZW50Tm9kZS5pZCBpcyAnQTEnCisgZmlsdGVyaW5nIG5v
ZGUgQjEKKyBmaWx0ZXJpbmcgbm9kZSBCMgorUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgd2Fsa2Vy
LmN1cnJlbnROb2RlLmlkIGlzICdCMicKKworVGVzdGluZyB3aXRoIG9iamVjdCBmaWx0ZXIKKyBm
aWx0ZXJpbmcgbm9kZSBBMQorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgpOyB3YWxrZXIuY3VycmVu
dE5vZGUuaWQgaXMgJ0ExJworIGZpbHRlcmluZyBub2RlIEIxCisgZmlsdGVyaW5nIG5vZGUgQjIK
K1BBU1Mgd2Fsa2VyLm5leHROb2RlKCk7IHdhbGtlci5jdXJyZW50Tm9kZS5pZCBpcyAnQjInCisK
K1Rlc3Rpbmcgd2l0aCBudWxsIGZpbHRlcgorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgpOyB3YWxr
ZXIuY3VycmVudE5vZGUuaWQgaXMgJ0ExJworUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgd2Fsa2Vy
LmN1cnJlbnROb2RlLmlkIGlzICdCMScKKworVGVzdGluZyB3aXRoIHVuZGVmaW5lZCBmaWx0ZXIK
K1BBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIGlzICdBMScK
K1BBU1Mgd2Fsa2VyLm5leHROb2RlKCk7IHdhbGtlci5jdXJyZW50Tm9kZS5pZCBpcyAnQjEnCisK
K1Rlc3Rpbmcgd2l0aCBvYmplY3QgbGFja2luZyBhY2NlcHROb2RlIHByb3BlcnR5CitQQVNTIHdh
bGtlci5maXJzdENoaWxkKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vZGVGaWx0ZXIg
b2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbi4KK1BBU1Mgd2Fsa2Vy
LmN1cnJlbnROb2RlLmlkOyBpcyAncm9vdCcKK1BBU1Mgd2Fsa2VyLm5leHROb2RlKCk7IHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4g
YWNjZXB0Tm9kZSBmdW5jdGlvbi4KK1BBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9v
dCcKKworVGVzdGluZyB3aXRoIG9iamVjdCB3aXRoIG5vbi1mdW5jdGlvbiBhY2NlcHROb2RlIHBy
b3BlcnR5CitQQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IE5vZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlv
bi4KK1BBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9vdCcKK1BBU1Mgd2Fsa2VyLm5l
eHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vZGVGaWx0ZXIgb2JqZWN0IGRv
ZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbi4KK1BBU1Mgd2Fsa2VyLmN1cnJlbnRO
b2RlLmlkOyBpcyAncm9vdCcKKworVGVzdGluZyB3aXRoIGZ1bmN0aW9uIGhhdmluZyBhY2NlcHRO
b2RlIGZ1bmN0aW9uCitQQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHdhbGtlci5jdXJyZW50Tm9k
ZS5pZCBpcyAnQTEnCitQQVNTIHdhbGtlci5uZXh0Tm9kZSgpOyB3YWxrZXIuY3VycmVudE5vZGUu
aWQgaXMgJ0IxJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0
Tm9kZS1maWx0ZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0
Tm9kZS1maWx0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjM5OGY5N2IxOTAxYWNjMDI4NGE0NTZkM2Ux
OTZmOTI2ZTQzM2YwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vVHJl
ZVdhbGtlci9hY2NlcHROb2RlLWZpbHRlci5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9hY2NlcHROb2RlLWZpbHRlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fs
a2VyL3NjcmlwdC10ZXN0cy9hY2NlcHROb2RlLWZpbHRlci5qcyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1RyZWVXYWxrZXIvc2NyaXB0LXRlc3RzL2FjY2VwdE5vZGUtZmlsdGVyLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNhYzI0YTJiMDY3ZmI3MTY0Mjg1ODExYTMyNGFiZjM1ZjRjMDkzY2UKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL3NjcmlwdC10ZXN0cy9hY2Nl
cHROb2RlLWZpbHRlci5qcwpAQCAtMCwwICsxLDcwIEBACitkZXNjcmlwdGlvbignVGVzdCBKUyBv
YmplY3RzIGFzIE5vZGVGaWx0ZXJzLicpOworCit2YXIgd2Fsa2VyOwordmFyIHRlc3RFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0RWxlbWVudC5pZCA9ICdyb290
JzsKK3Rlc3RFbGVtZW50LmlubmVySFRNTD0nPGRpdiBpZD0iQTEiPjxkaXYgaWQ9IkIxIj48L2Rp
dj48ZGl2IGlkPSJCMiI+PC9kaXY+PC9kaXY+JzsKKworZnVuY3Rpb24gZmlsdGVyKG5vZGUpCit7
CisgICAgZGVidWcoIiBmaWx0ZXJpbmcgbm9kZSAiICsgbm9kZS5pZCk7CisgICAgaWYgKG5vZGUu
aWQgPT0gIkIxIikKKyAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7CisgICAg
cmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDsKK30KKworZGVidWcoIlRlc3Rpbmcgd2l0
aCByYXcgZnVuY3Rpb24gZmlsdGVyIik7Cit3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHRlc3RFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgZmlsdGVyLCBmYWxzZSk7
CitzaG91bGRCZSgid2Fsa2VyLmZpcnN0Q2hpbGQoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIiwg
IidBMSciKTsKK3Nob3VsZEJlKCJ3YWxrZXIubmV4dE5vZGUoKTsgd2Fsa2VyLmN1cnJlbnROb2Rl
LmlkIiwgIidCMiciKTsKKworZGVidWcoIjxicj5UZXN0aW5nIHdpdGggb2JqZWN0IGZpbHRlciIp
Oword2Fsa2VyID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RWxlbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIHsKKyAgICBhY2NlcHROb2RlIDogZnVuY3Rpb24obm9kZSkgewor
ICAgICAgZGVidWcoIiBmaWx0ZXJpbmcgbm9kZSAiICsgbm9kZS5pZCk7CisgICAgICBpZiAobm9k
ZS5pZCA9PSAiQjEiKQorICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQOwor
ICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDsKKyAgICB9CisgIH0sIGZhbHNl
KTsKKworc2hvdWxkQmUoIndhbGtlci5maXJzdENoaWxkKCk7IHdhbGtlci5jdXJyZW50Tm9kZS5p
ZCIsICInQTEnIik7CitzaG91bGRCZSgid2Fsa2VyLm5leHROb2RlKCk7IHdhbGtlci5jdXJyZW50
Tm9kZS5pZCIsICInQjInIik7CisKK2RlYnVnKCI8YnI+VGVzdGluZyB3aXRoIG51bGwgZmlsdGVy
Iik7Cit3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3RFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCwgZmFsc2UpOworCitzaG91bGRCZSgid2Fsa2VyLmZp
cnN0Q2hpbGQoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIiwgIidBMSciKTsKK3Nob3VsZEJlKCJ3
YWxrZXIubmV4dE5vZGUoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIiwgIidCMSciKTsKKworZGVi
dWcoIjxicj5UZXN0aW5nIHdpdGggdW5kZWZpbmVkIGZpbHRlciIpOword2Fsa2VyID0gZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IHVuZGVmaW5lZCwgZmFsc2UpOworCitzaG91bGRCZSgid2Fsa2VyLmZpcnN0Q2hpbGQoKTsgd2Fs
a2VyLmN1cnJlbnROb2RlLmlkIiwgIidBMSciKTsKK3Nob3VsZEJlKCJ3YWxrZXIubmV4dE5vZGUo
KTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIiwgIidCMSciKTsKKworZGVidWcoIjxicj5UZXN0aW5n
IHdpdGggb2JqZWN0IGxhY2tpbmcgYWNjZXB0Tm9kZSBwcm9wZXJ0eSIpOword2Fsa2VyID0gZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIHt9LCBmYWxzZSk7CisKK3Nob3VsZFRocm93KCJ3YWxrZXIuZmlyc3RDaGlsZCgpOyIpOwor
c2hvdWxkQmUoIndhbGtlci5jdXJyZW50Tm9kZS5pZDsiLCAiJ3Jvb3QnIik7CitzaG91bGRUaHJv
dygid2Fsa2VyLm5leHROb2RlKCk7Iik7CitzaG91bGRCZSgid2Fsa2VyLmN1cnJlbnROb2RlLmlk
OyIsICIncm9vdCciKTsKKworZGVidWcoIjxicj5UZXN0aW5nIHdpdGggb2JqZWN0IHdpdGggbm9u
LWZ1bmN0aW9uIGFjY2VwdE5vZGUgcHJvcGVydHkiKTsKK3dhbGtlciA9IGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIodGVzdEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCB7IGFjY2Vw
dE5vZGU6ICJmb28iIH0sIGZhbHNlKTsKKworc2hvdWxkVGhyb3coIndhbGtlci5maXJzdENoaWxk
KCk7Iik7CitzaG91bGRCZSgid2Fsa2VyLmN1cnJlbnROb2RlLmlkOyIsICIncm9vdCciKTsKK3No
b3VsZFRocm93KCJ3YWxrZXIubmV4dE5vZGUoKTsiKTsKK3Nob3VsZEJlKCJ3YWxrZXIuY3VycmVu
dE5vZGUuaWQ7IiwgIidyb290JyIpOworCitkZWJ1ZygiPGJyPlRlc3Rpbmcgd2l0aCBmdW5jdGlv
biBoYXZpbmcgYWNjZXB0Tm9kZSBmdW5jdGlvbiIpOwordmFyIGZpbHRlciA9IGZ1bmN0aW9uKCkg
eyByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUOyB9OworZmlsdGVyLmFjY2VwdE5vZGUg
PSBmdW5jdGlvbihub2RlKSB7IHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQOyB9Oword2Fs
a2VyID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIGZpbHRlciwgZmFsc2UpOworCitzaG91bGRCZSgid2Fsa2VyLmZpcnN0Q2hp
bGQoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIiwgIidBMSciKTsKK3Nob3VsZEJlKCJ3YWxrZXIu
bmV4dE5vZGUoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIiwgIidCMSciKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNjMzY1NTRiNDBkOTdiZjk1ZTY2YTMxZTYxZDY1NWE5ZDc1
OTU4ZjEuLjllY2MwZDAyZWM1MjNkOTVkOTcyZDc5MmM0MjNlMjM1YTRmZDRjNzAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTAtMDgtMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJlZVdh
bGtlciBpcyBub3QgY2FsbGluZyBhY2NlcHROb2RlIGZ1bmN0aW9uIGluIGZpbHRlciBvYmplY3QK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1Mjk2Cisg
ICAgICAgIAorICAgICAgICBXZSBvbmx5IGFjY2VwdGVkIHJhdyBmdW5jdGlvbnMgYXMgdGhlIE5v
ZGVGaWx0ZXIgb24gVHJlZVdhbGtlci4gRml4IHRoaXMgdG8KKyAgICAgICAgbG9vayBmb3IgYW4g
J2FjY2VwdE5vZGUnIGZ1bmN0aW9uIG9uIHRoZSBmaWx0ZXIgb2JqZWN0LCBhbmQgdXNlIHRoYXQg
aWYgcHJlc2VudC4KKyAgICAgICAgQWxzbyB0aHJvdyBhbiBleGNlcHRpb24gaWYgdGhlIGZpbHRl
ciBvYmplY3QgZG9lcyBub3QgaGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uLgorCisgICAgICAg
IFRlc3Q6IGZhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXIuaHRtbAorCisgICAg
ICAgICogYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZSk6CisKIDIwMTAtMDgtMjAg
IEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBcml5YSBIaWRheWF0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0
ZXJDb25kaXRpb24uY3BwCmluZGV4IGI3MjMyODZiMzdlN2E5OTk0ZDU4NWVmMjJhY2MxNjkwMjgz
OGZmMDkuLjllMGNkYzlkOTg4NGI5YzRjODJmZjYzMmFkMDViMWEwOTk1MDQwNTAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKQEAgLTIzLDYgKzIz
LDcgQEAKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJKU05vZGVGaWx0ZXIuaCIKICNp
bmNsdWRlICJOb2RlRmlsdGVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ1LDkgKzQ2
LDcgQEAgc2hvcnQgSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBOb2RlKiBmaWx0ZXJOb2RlKQogewogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VB
c3NlcnRpb25zT25seSk7CiAKLSAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBDYWxsVHlwZSBj
YWxsVHlwZSA9IGdldENhbGxEYXRhKG1fZmlsdGVyLCBjYWxsRGF0YSk7Ci0gICAgaWYgKGNhbGxU
eXBlID09IENhbGxUeXBlTm9uZSkKKyAgICBpZiAoIW1fZmlsdGVyLmlzT2JqZWN0KCkpCiAgICAg
ICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOwogCiAgICAvLyBUaGUgZXhlYyBh
cmd1bWVudCBoZXJlIHNob3VsZCBvbmx5IGJlIG51bGwgaWYgdGhpcyB3YXMgY2FsbGVkIGZyb20g
YQpAQCAtNTksNiArNTgsMTggQEAgc2hvcnQgSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHRO
b2RlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBOb2RlKiBmaWx0ZXJOb2RlKQogICAgIGlmICghZXhl
YykKICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CiAKKyAgICBKU1Zh
bHVlIGZ1bmN0aW9uID0gbV9maWx0ZXI7CisgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgQ2Fs
bFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOworICAgIGlm
IChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKKyAgICAgICAgSlNWYWx1ZSBmdW5jdGlvbiA9
IG1fZmlsdGVyLmdldChleGVjLCBJZGVudGlmaWVyKGV4ZWMsICJhY2NlcHROb2RlIikpOworICAg
ICAgICBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7CisgICAgICAg
IGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKKyAgICAgICAgICAgIHRocm93RXJyb3Io
ZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJOb2RlRmlsdGVyIG9iamVjdCBkb2VzIG5vdCBo
YXZlIGFuIGFjY2VwdE5vZGUgZnVuY3Rpb24iKSk7CisgICAgICAgICAgICByZXR1cm4gTm9kZUZp
bHRlcjo6RklMVEVSX1JFSkVDVDsKKyAgICAgICAgfQorICAgIH0KKwogICAgIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyIGFyZ3M7CiAgICAgLy8gRklYTUU6IFRoZSBub2RlIHNob3VsZCBoYXZlIHRoZSBw
cm90b3R5cGUgY2hhaW4gdGhhdCBjYW1lIGZyb20gaXRzIGRvY3VtZW50LCBub3QKICAgICAvLyB3
aGF0ZXZlciBwcm90b3R5cGUgY2hhaW4gbWlnaHQgYmUgb24gdGhlIHdpbmRvdyB0aGlzIGZpbHRl
ciBjYW1lIGZyb20uIEJ1ZyAyNzY2MgpAQCAtNjYsNyArNzcsNyBAQCBzaG9ydCBKU05vZGVGaWx0
ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIE5vZGUqIGZpbHRl
ck5vZGUpCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gTm9k
ZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKIAotICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNDOjpjYWxs
KGV4ZWMsIG1fZmlsdGVyLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fZmlsdGVyLCBhcmdzKTsKKyAg
ICBKU1ZhbHVlIHJlc3VsdCA9IEpTQzo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNh
bGxEYXRhLCBtX2ZpbHRlciwgYXJncyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65192</attachid>
            <date>2010-08-23 17:48:23 -0700</date>
            <delta_ts>2010-08-23 18:31:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-35296-20100823174821.patch</filename>
            <type>text/plain</type>
            <size>4288</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxZTRiNDU5MjcxYjBlMzc1NjM4NjY4ZDFiZTJhNGI2OGJiNGMyZTJhLi5hMzljZTRl
MzdjZDEyYzU4Yzg2Y2E3N2ZlYjdiMmNlYTBjOTljOThjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDgtMjMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJlZVdhbGtlciBp
cyBub3QgY2FsbGluZyBhY2NlcHROb2RlIGZ1bmN0aW9uIGluIGZpbHRlciBvYmplY3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1Mjk2CisgICAgICAg
IAorICAgICAgICBBZGQgYSB0ZXN0IGZvciBhcmd1bWVudHMuY2FsbGVlIGluc2lkZSB0aGUgYWNj
ZXB0Tm9kZSBmdW5jdGlvbi4KKworICAgICAgICAqIGZhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0
Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1RyZWVXYWxrZXIv
c2NyaXB0LXRlc3RzL2FjY2VwdE5vZGUtZmlsdGVyLmpzOgorICAgICAgICAoZmlsdGVyLmFjY2Vw
dE5vZGUpOgorCiAyMDEwLTA4LTIzICBEdW1pdHJ1IERhbmlsaXVjICA8ZHVtaUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdXBkYXRpbmcgc29tZSBDaHJvbWl1bSBleHBlY3Rh
dGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL2FjY2Vw
dE5vZGUtZmlsdGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxr
ZXIvYWNjZXB0Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0CmluZGV4IDQ4YWJhZTQ5ZDRkNTY2NmM1
YmY3ZjQ5MGRkMDkzYmUwODM1OTNmZDMuLmNhNWRhODQxYjc4MmIzM2ZmZTkzYmYwYTQ5Y2NmODdl
MjQ1ZmRkM2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNj
ZXB0Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Ry
ZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0CkBAIC00MCw2ICs0MCwxMyBA
QCBQQVNTIHdhbGtlci5jdXJyZW50Tm9kZS5pZDsgaXMgJ3Jvb3QnCiBUZXN0aW5nIHdpdGggZnVu
Y3Rpb24gaGF2aW5nIGFjY2VwdE5vZGUgZnVuY3Rpb24KIFBBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQo
KTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIGlzICdBMScKIFBBU1Mgd2Fsa2VyLm5leHROb2RlKCk7
IHdhbGtlci5jdXJyZW50Tm9kZS5pZCBpcyAnQjEnCisKK1Rlc3RpbmcgYWNjZXB0Tm9kZSBjYWxs
ZWUKK0NhbGxlZTogZnVuY3Rpb24gKG5vZGUpIHsKKyAgICBkZWJ1ZygnQ2FsbGVlOiAnICsgYXJn
dW1lbnRzLmNhbGxlZSk7CisgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDsKKyAg
fQorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgpOyB3YWxrZXIuY3VycmVudE5vZGUuaWQgaXMgJ0Ex
JwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL3NjcmlwdC10ZXN0cy9hY2Nl
cHROb2RlLWZpbHRlci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvc2NyaXB0
LXRlc3RzL2FjY2VwdE5vZGUtZmlsdGVyLmpzCmluZGV4IGNhYzI0YTJiMDY3ZmI3MTY0Mjg1ODEx
YTMyNGFiZjM1ZjRjMDkzY2UuLjc5YzI2Y2NmMmNkOGRkN2NjOWU5MzhiYzY5OGI5Yjc5YjM2MTMx
YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvc2NyaXB0LXRl
c3RzL2FjY2VwdE5vZGUtZmlsdGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVX
YWxrZXIvc2NyaXB0LXRlc3RzL2FjY2VwdE5vZGUtZmlsdGVyLmpzCkBAIC02Nyw0ICs2NywxNSBA
QCB3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3RFbGVtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgZmlsdGVyLAogc2hvdWxkQmUoIndhbGtlci5maXJzdENoaWxkKCk7
IHdhbGtlci5jdXJyZW50Tm9kZS5pZCIsICInQTEnIik7CiBzaG91bGRCZSgid2Fsa2VyLm5leHRO
b2RlKCk7IHdhbGtlci5jdXJyZW50Tm9kZS5pZCIsICInQjEnIik7CiAKK2RlYnVnKCI8YnI+VGVz
dGluZyBhY2NlcHROb2RlIGNhbGxlZSIpOwordmFyIGZpbHRlciA9IHsKKyAgYWNjZXB0Tm9kZTog
ZnVuY3Rpb24obm9kZSkgeworICAgIGRlYnVnKCdDYWxsZWU6ICcgKyBhcmd1bWVudHMuY2FsbGVl
KTsKKyAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUOworICB9Cit9Oword2Fsa2Vy
ID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RWxlbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIGZpbHRlciwgZmFsc2UpOworCitzaG91bGRCZSgid2Fsa2VyLmZpcnN0Q2hpbGQo
KTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIiwgIidBMSciKTsKKwogdmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDQ2NzIzNTQ1YjAwMGY3MWY5N2MyYzU4MDE5OWI1NDU4YWM2ZDJhNjQuLjA2
ZDY2NTI2N2E0YWZjM2RjNTVmNjM1MjQwYTVmYjgzMTVlM2MyN2YgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTAtMDgtMjMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJlZVdhbGtlciBpcyBu
b3QgY2FsbGluZyBhY2NlcHROb2RlIGZ1bmN0aW9uIGluIGZpbHRlciBvYmplY3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1Mjk2CisgICAgICAgIAor
ICAgICAgICBGaXggaW5jb3JyZWN0IGFsaWFzaW5nIG9mIHRoZSAnZnVuY3Rpb24nIHZhcmlhYmxl
LCB3aGljaCBjb3VsZCByZXN1bHQKKyAgICAgICAgaW4gYmFkbmVzcyB3aGVuIGFza2luZyBmb3Ig
YXJndW1lbnRzLmNhbGxlZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNv
bmRpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVGaWx0ZXJDb25kaXRpb246OmFj
Y2VwdE5vZGUpOgorCiAyMDEwLTA4LTIzICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKaW5kZXggOWUwY2RjOWQ5ODg0Yjlj
NGM4MmZmNjMyYWQwNWIxYTA5OTUwNDA1MC4uYjI2OWU1ZmE1OTE4OTk4ZDc4MGU5ZWQwZWEyMzJj
OGY3NzlmZGI2MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJD
b25kaXRpb24uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0
aW9uLmNwcApAQCAtNjIsNyArNjIsNyBAQCBzaG9ydCBKU05vZGVGaWx0ZXJDb25kaXRpb246OmFj
Y2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIE5vZGUqIGZpbHRlck5vZGUpCiAgICAgQ2Fs
bERhdGEgY2FsbERhdGE7CiAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmdW5j
dGlvbiwgY2FsbERhdGEpOwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKLSAg
ICAgICAgSlNWYWx1ZSBmdW5jdGlvbiA9IG1fZmlsdGVyLmdldChleGVjLCBJZGVudGlmaWVyKGV4
ZWMsICJhY2NlcHROb2RlIikpOworICAgICAgICBmdW5jdGlvbiA9IG1fZmlsdGVyLmdldChleGVj
LCBJZGVudGlmaWVyKGV4ZWMsICJhY2NlcHROb2RlIikpOwogICAgICAgICBjYWxsVHlwZSA9IGdl
dENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBD
YWxsVHlwZU5vbmUpIHsKICAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVy
cm9yKGV4ZWMsICJOb2RlRmlsdGVyIG9iamVjdCBkb2VzIG5vdCBoYXZlIGFuIGFjY2VwdE5vZGUg
ZnVuY3Rpb24iKSk7Cg==
</data>
<flag name="review"
          id="53891"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>