<?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>7296</bug_id>
          
          <creation_ts>2006-02-16 00:56:36 -0800</creation_ts>
          <short_desc>JavaScript error not thrown when trying to set a CSS property to an invalid value</short_desc>
          <delta_ts>2007-04-11 14:23:11 -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>CSS</component>
          <version>417.x</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Giovanni Intini">intinig</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>ian</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>32936</commentid>
    <comment_count>0</comment_count>
    <who name="Giovanni Intini">intinig</who>
    <bug_when>2006-02-16 00:56:36 -0800</bug_when>
    <thetext>The following two lines (full code attached) are used to dinamically change the position of a div:

67: innerDiv.style.top = top + (event.clientY - dragStartTop) + &apos;px&apos;;
68: innerDiv.style.left = left + (event.clientX - dragStartLeft);

Using an XHTML doctype the first line is correct while the 2nd one isn&apos;t because it&apos;s missing the + &apos;px&apos; part. 

Safari doesn&apos;t work (as it should), but the javascript console doesn&apos;t return any error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32937</commentid>
    <comment_count>1</comment_count>
      <attachid>6533</attachid>
    <who name="Giovanni Intini">intinig</who>
    <bug_when>2006-02-16 00:57:08 -0800</bug_when>
    <thetext>Created attachment 6533
Full page code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32966</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-16 08:51:30 -0800</bug_when>
    <thetext>I think this is known - a comment in the code says this problem cannot be fixed right away because that would cause backwards compatibility problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33037</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2006-02-16 12:27:17 -0800</bug_when>
    <thetext>I should point out that it only seems to occur when the document is in &quot;standards&quot; mode.  In quirks mode, the value is parsed even without the &quot;px&quot; and everything proceeds.  In standards mode, the value is not parsed with the &quot;px&quot; and therefore the line has zero effect.  I&apos;m not clear on how changing this would be a compatibility problem - on the same code Firefox raises a JavaScript exception when setting the property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33038</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-16 12:35:42 -0800</bug_when>
    <thetext>I have now found this comment, it&apos;s in DOMCSSStyleDeclaration::put(). FWIW:
// We have to ignore exceptions here, because of the following unfortunate situation:
//   1) Older versions ignored exceptions here by accident, because the put function
//      that translated exceptions did not translate CSS exceptions.
//   2) Gecko does not raise an exception in this case, although WinIE does.
//   3) At least some Dashboard widgets are depending on this behavior.
// It would be nice to fix this some day, perhaps with some kind of &quot;quirks mode&quot;,
// but it&apos;s likely that the Dashboard widgets are already using a strict mode DOCTYPE.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33039</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2006-02-16 12:42:45 -0800</bug_when>
    <thetext>Thanks for the clarification.  Breaking Dashboard widgets is a pretty big no-no, so that would be reason enough not to &quot;fix&quot; this.  Is there any easy way to log a &quot;warning&quot; in the JS console without throwing an exception?  Having code that mysteriously doesn&apos;t work with no message as to why can be very frustrating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33056</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-16 13:05:51 -0800</bug_when>
    <thetext>Looks like this is done with Frame::addMessageToConsole(). I think it is a great idea!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41740</commentid>
    <comment_count>7</comment_count>
      <attachid>11888</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-16 14:08:25 -0800</bug_when>
    <thetext>Created attachment 11888
proposed fix

Now we do have a quirks mode for Dashboard!

The attached test now raises an exception even earlier than expected, that is, when trying to set the cursor:

innerDiv.style.cursor = &quot;-moz-grab&quot;;

WinIE treats this as &quot;url(&apos;-moz-grab&apos;)&quot; and thus doesn&apos;t raise an exception. OTOH, Firefox ignores unknown cursor names. I&apos;m going to file a followup bug for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41741</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-12-16 14:11:39 -0800</bug_when>
    <thetext>See also bug 9687</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41743</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-16 14:17:44 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; OTOH, Firefox ignores unknown cursor names. 

More precisely, it treats such declarations as invalid, but it doesn&apos;t raise exceptions for invalid CSS anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41184</commentid>
    <comment_count>10</comment_count>
      <attachid>11888</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-12-19 07:42:09 -0800</bug_when>
    <thetext>Comment on attachment 11888
proposed fix

The mechanics of the change look good. But the bug report has conflicting information about Firefox&apos;s behavior.

Generally, fixes that cause us to raise more exceptions have been problematic in the past -- it&apos;s one of the easiest ways to stop sites from working.

+      if (Document* doc = static_cast&lt;CSSStyleSheet*&gt;(styleDecl.stylesheet())-&gt;doc())

No need to nil-check the document. A document can have a nil frame, but a stylesheet can&apos;t have a nil document.

+            styleDecl.removeProperty(prop, exception);
+            if (!exception) {
+              ExceptionCode ec = 0;
+              styleDecl.setProperty(prop, propValue, ec);
+              return;
+            }

I think it&apos;s confusing here to have one variable named exception and another named ec. The difference is that the second one is ignored, and so perhaps its name should reflect that.

+    // When replacing an existing property value, this moves the property to the end of the list.
+    // Firefox preserves the position, and MSIE moves the property to the beginning.

Should we have a test case or bug report for this?

I&apos;m going to say review+ even though I think this is risky for compatibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41033</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-19 11:20:20 -0800</bug_when>
    <thetext>Committed revision 18320. Filed bug 11878 for cursors.

(In reply to comment #10)

&gt; +      if (Document* doc =
&gt; static_cast&lt;CSSStyleSheet*&gt;(styleDecl.stylesheet())-&gt;doc())
&gt; 
&gt; No need to nil-check the document. A document can have a nil frame, but a
&gt; stylesheet can&apos;t have a nil document.

Fixed.

&gt; I think it&apos;s confusing here to have one variable named exception and another
&gt; named ec. The difference is that the second one is ignored, and so perhaps its
&gt; name should reflect that.

OK.

&gt; +    // When replacing an existing property value, this moves the property to
&gt; the end of the list.
&gt; +    // Firefox preserves the position, and MSIE moves the property to the
&gt; beginning.
&gt; 
&gt; Should we have a test case or bug report for this?

The modified fast/dom/css-set-property-exception.html test will at least catch changes in behavior. I don&apos;t think there&apos;s anything for us to fix, since the behavior is unspecified, and other browsers behave inconsistently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40945</commentid>
    <comment_count>12</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-12-21 00:32:11 -0800</bug_when>
    <thetext>Hyatt and I think this change was a bad idea.

1. Small gain. It doesn&apos;t improve performance or compatibility.

2. It&apos;s a ticking compatibilty timebomb. IE6 is pretty lenient with invalid CSS values. It doesn&apos;t throw when setting to null, for example. Throwing an exception completely destroys a site / widget / app.

3. Dashboard quirks should be a last resort. There&apos;s no way for an author to turn them off, and they create a confusing gap between widgets and real web technology.

4. The proof is in the pudding: this change broke our very own Web Inspector and JavaScript debugger!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40946</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2006-12-21 00:38:10 -0800</bug_when>
    <thetext>For reference, bug 11888 covers the inspector/debugger breakage and includes a proposed patch which treats null as valid to allow its use in resetting a property to its initial value.  Of course, the patch is moot if this change gets reverted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40951</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-21 01:26:13 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; IE6 is pretty lenient with invalid CSS values. 
&gt; It doesn&apos;t throw when setting to null, for example. 

  Interesting - in my tests, it does! See fast/dom/css-set-property-exception.html .

&gt; 4. The proof is in the pudding: this change broke our very own Web Inspector
&gt; and JavaScript debugger!

  Well, this sort of thing aways happens to code that was only tested in one browser. Thankfully, there isn&apos;t that much code that has only been tested with WebKit ;)

  One thing I want to point out is that this patch shouldn&apos;t be just reverted if it&apos;s decided that exceptions shouldn&apos;t be thrown. Besides enabling exceptions, it corrected the behavior is error case. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40716</commentid>
    <comment_count>15</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-12-21 17:24:28 -0800</bug_when>
    <thetext>&gt;   Interesting - in my tests, it does! See
&gt; fast/dom/css-set-property-exception.html .

I can see that IE throws in your test. But it doesn&apos;t throw for, e.g., div.style.width = null. And FF, whose code path we usually take on websites, never throws.

Can we just report the error in the console instead of throwing an exception? Generally, throwing an exception for bad CSS seems completely contrary to CSS, whose goal is gracefully to ignore unsupported syntax.

Also, I think this might be a bug:

+      if (Document* doc = static_cast&lt;CSSStyleSheet*&gt;(styleDecl.stylesheet())-&gt;doc())
+        if (Frame* frame = doc-&gt;frame())
+          if (frame-&gt;settings()-&gt;shouldUseDashboardBackwardCompatibilityMode()) {
+            styleDecl.removeProperty(prop, exception);
+            if (!exception) {
+              ExceptionCode ec = 0;
+              styleDecl.setProperty(prop, propValue, ec);
+              return;
+            }
+          }
+      styleDecl.setProperty(prop, propValue, exception);

If removeProperty throws an exception, this code will call setProperty, even though there&apos;s a branch that attempts to prevent that. I think the second call to setProperty needs to be in an &apos;else&apos; clause.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40707</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-21 21:52:03 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; I can see that IE throws in your test. But it doesn&apos;t throw for, e.g.,
&gt; div.style.width = null. And FF, whose code path we usually take on websites,
&gt; never throws.

  I&apos;ve now added a special case for null, see bug 11919. Please note that previously, that didn&apos;t behave correctly in all cases anyway (because null was converted to &quot;null&quot;), and no one seemed to care :)

&gt; Can we just report the error in the console instead of throwing an exception?
&gt; Generally, throwing an exception for bad CSS seems completely contrary to CSS,
&gt; whose goal is gracefully to ignore unsupported syntax.

  Of course we can! I just think it&apos;s humiliating not to be standards-compliant in an area where IE is compliant. Hiding mistakes in general may be good for compatibility in short term, but has a bunch of its own negative consequences.

  Your argument #2 (IE6 is pretty lenient with invalid CSS values) does make me rather nervous indeed, but maybe we should wait for a few compatibility problems before freaking out?

&gt; Also, I think this might be a bug:

  Oops! I think &quot;return&quot; in Dashboard case should be moved down a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40349</commentid>
    <comment_count>17</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-12-22 15:00:16 -0800</bug_when>
    <thetext>&gt;   I&apos;ve now added a special case for null, see bug 11919.

Thanks!

&gt;  Please note that previously, that didn&apos;t behave correctly in all cases anyway (because null was
&gt; converted to &quot;null&quot;), and no one seemed to care :)

Sure, and that&apos;s great. My concern is limited to exceptions.

&gt;   Of course we can! I just think it&apos;s humiliating not to be standards-compliant
&gt; in an area where IE is compliant. Hiding mistakes in general may be good for
&gt; compatibility in short term, but has a bunch of its own negative consequences.

I have mixed feelings about this. Standards help developers understand how a browser will behave. But this standard seems like more trouble than it&apos;s worth. CSS is meant to grow and change. If I develop CSS for a modern Safari, and it throws exceptions in an older Safari, I&apos;m an unhappy developer.

&gt;   Your argument #2 (IE6 is pretty lenient with invalid CSS values) does make me
&gt; rather nervous indeed, but maybe we should wait for a few compatibility
&gt; problems before freaking out?

OK, let&apos;s see how things turn out. Bug 11936 is our first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40219</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-22 23:12:27 -0800</bug_when>
    <thetext>(In reply to comment #17)

&gt; But this standard seems like more trouble than it&apos;s worth.
&gt; CSS is meant to grow and change.
&lt;...&gt;
&gt; OK, let&apos;s see how things turn out. Bug 11936 is our first.

If we count bug 11878 (Mozilla cursors), it&apos;s already the second...

I guess I&apos;m convinced now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40223</commentid>
    <comment_count>19</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-12-23 00:48:30 -0800</bug_when>
    <thetext>I wonder if we could honor the spirit of the spec by return false or an exception object from setProperty when parsing failed, without actually throwing an exception. The spec says that setProperty should have a void return value, so it would be a neat augmentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39969</commentid>
    <comment_count>20</comment_count>
      <attachid>11992</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-24 02:03:14 -0800</bug_when>
    <thetext>Created attachment 11992
disable exceptions

This doesn&apos;t implement logging (tracked as bug 9687).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39877</commentid>
    <comment_count>21</comment_count>
      <attachid>11992</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-12-24 13:54:30 -0800</bug_when>
    <thetext>Comment on attachment 11992
disable exceptions

I spoke with ap about this. He&apos;s going to remove the Dashboard quirk. We&apos;d rather not have them unless we know they&apos;re needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39876</commentid>
    <comment_count>22</comment_count>
      <attachid>12010</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-24 14:36:57 -0800</bug_when>
    <thetext>Created attachment 12010
without a Dashboard quirk

We&apos;re ending up with throwing less than before - in shipping Safari, setProperty was allowed to throw exceptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39371</commentid>
    <comment_count>23</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-12-27 13:51:07 -0800</bug_when>
    <thetext>Does bug 11993 mean that we need the quirk afterall?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39303</commentid>
    <comment_count>24</comment_count>
      <attachid>12010</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-12-27 22:34:50 -0800</bug_when>
    <thetext>Comment on attachment 12010
without a Dashboard quirk

I&apos;m going to wait and let Geoff review this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39240</commentid>
    <comment_count>25</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-12-28 09:52:43 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; Does bug 11993 mean that we need the quirk afterall?

I don&apos;t think so! Alexey&apos;s basically saying we&apos;re going in the opposite direction -- we&apos;re going to throw exceptions even *less* than before, so bugs like that one will go away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39241</commentid>
    <comment_count>26</comment_count>
      <attachid>12010</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-12-28 09:58:43 -0800</bug_when>
    <thetext>Comment on attachment 12010
without a Dashboard quirk

ChangeLog is misleading since it mentions a Dashboard quirk and the patch has none.

In the case where the value is not parsable, the old code removes the property. But the new code does nothing. Is that change OK for Dashboard widgets? I&apos;m not sure it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39242</commentid>
    <comment_count>27</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-28 10:09:13 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; In the case where the value is not parsable, the old code removes the property.
&gt; But the new code does nothing. Is that change OK for Dashboard widgets? I&apos;m not
&gt; sure it is.

I believe that&apos;s what Geoff is asking about in comment 23. I don&apos;t have an answer myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39159</commentid>
    <comment_count>28</comment_count>
      <attachid>11888</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-28 15:29:15 -0800</bug_when>
    <thetext>Comment on attachment 11888
proposed fix

Clearing darin&apos;s r+ on attachment 11888 so this doesn&apos;t show up in the commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37260</commentid>
    <comment_count>29</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-01-03 20:51:59 -0800</bug_when>
    <thetext>It would be great to see some progress with Alexey&apos;s patch.  The original change in r18320 has caused quite a serious regression at mapquest.com (bug 11936) which I will need to roll out in the near future unless it is addressed.

It looks like the sticking point on the latest patch is the whether the property should be removed or left untouched when the value is not parseable?  For compatibility, I would suggest it should be removed as we  did prior to r18320.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37262</commentid>
    <comment_count>30</comment_count>
      <attachid>12010</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-01-03 21:07:37 -0800</bug_when>
    <thetext>Comment on attachment 12010
without a Dashboard quirk

I like the change to move this into the DOM!

I think Darin is right, though: We need to maintain the old behavior of unconditionally removing the property, then setting it only if it parses correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37194</commentid>
    <comment_count>31</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-01-04 01:12:24 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; I think Darin is right, though: We need to maintain the old behavior of
&gt; unconditionally removing the property, then setting it only if it parses
&gt; correctly.

Then the previous version of the patch is what you want, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36951</commentid>
    <comment_count>32</comment_count>
      <attachid>12010</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-01-04 23:09:58 -0800</bug_when>
    <thetext>Comment on attachment 12010
without a Dashboard quirk

I&apos;m going to approve this patch.

ap mentioned on IRC that neither IE nor Firefox deletes the property when it fails to parse, so I think this is a compatibilty improvement. Let&apos;s not add a Dashboard quirk until it proves necessary.

Please remember to do these things before landing:
- Remove mention of the quirk from the ChangeLog
- Change to ASSERT(!ec), to match our style guidelines
- Add a test the verifies that a syntax error does not remove the previous property (i don&apos;t think that was covered by the original patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36870</commentid>
    <comment_count>33</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-01-05 08:33:09 -0800</bug_when>
    <thetext>Committed revision 18618.

(In reply to comment #32)
&gt; - Remove mention of the quirk from the ChangeLog

  Done.

&gt; - Change to ASSERT(!ec), to match our style guidelines

  Done.

&gt; - Add a test the verifies that a syntax error does not remove the previous
&gt; property (i don&apos;t think that was covered by the original patch)

  Actually, it is already covered - the test dumps complete cssText after assignment.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15007</commentid>
    <comment_count>34</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-04-11 14:23:11 -0700</bug_when>
    <thetext>Some fallout:

&lt;rdar://problem/5111539&gt; -- an Apple internal website relying on WebKit&apos;s old behavior, using an unparseable style rule to clear a style.

&lt;rdar://problem/5011784&gt; -- a WebKit app using undefined to clear a style rule.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6533</attachid>
            <date>2006-02-16 00:57:08 -0800</date>
            <delta_ts>2006-02-16 00:57:08 -0800</delta_ts>
            <desc>Full page code</desc>
            <filename>index.html</filename>
            <type>application/xhtml+xml</type>
            <size>2349</size>
            <attacher name="Giovanni Intini">intinig</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIGh0bWwgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKCSJodHRwOi8vd3d3
LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KCjxodG1sIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVu
Ij4KPGhlYWQ+Cgk8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD11dGYtOCIvPgoKCTx0aXRsZT5BamF4aWFuIE1hcHM8L3RpdGxlPgoJPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KCQloMSB7CgkJCWZvbnQ6IDIwcHQgc2Fucy1zZXJpZjsKCQl9
CgkJI291dGVyRGl2IHsKCQkJaGVpZ2h0OiA2MDBweDsKCQkJd2lkdGg6IDgwMHB4OwoJCQlib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsKCQkJcG9zaXRpb246IHJlbGF0aXZlOwoJCQlvdmVyZmxvdzog
aGlkZGVuOwoJCX0KCQkKCQkjaW5uZXJEaXYgewoJCQlwb3NpdGlvbjogcmVsYXRpdmU7CgkJCWxl
ZnQ6IDBweDsKCQkJdG9wOiAwcHg7CgkJfQoJPC9zdHlsZT4KCTxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KCS8vPCFbQ0RBVEFbCgkJdmFyIGRyYWdnaW5nID0gZmFsc2U7CgkJdmFyIHRv
cDsKCQl2YXIgbGVmdDsKCQl2YXIgZHJhZ1N0YXJ0VG9wOwoJCXZhciBkcmFnU3RhcnRMZWZ0OwoJ
CQoJCWZ1bmN0aW9uIGluaXQoKSB7CgkJCXNldElubmVyRGl2U2l6ZSgnMjAwMHB4JywgJzE0MDBw
eCcpOwoJCQkKCQkJdmFyIG91dGVyRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dGVy
RGl2Iik7CgkJCW91dGVyRGl2Lm9ubW91c2Vkb3duID0gc3RhcnRNb3ZlOwoJCQlvdXRlckRpdi5v
bm1vdXNlbW92ZSA9IHByb2Nlc3NNb3ZlOwoJCQlvdXRlckRpdi5vbm1vdXNldXAgPSBzdG9wTW92
ZTsKCQkJLy8gSUUgSGFjawoJCQlvdXRlckRpdi5vbmRyYWdzdGFydCA9IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KCQl9CgkJCgkJZnVuY3Rpb24gc3RhcnRNb3ZlKGV2ZW50KSB7CgkJCS8v
IElFCgkJCWlmICghZXZlbnQpIGV2ZW50ID0gd2luZG93LmV2ZW50OwoJCQkKCQkJZHJhZ1N0YXJ0
TGVmdCA9IGV2ZW50LmNsaWVudFg7CgkJCWRyYWdTdGFydFRvcCA9IGV2ZW50LmNsaWVudFk7CgkJ
CXZhciBpbm5lckRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbm5lckRpdiIpOwoJCQlp
bm5lckRpdi5zdHlsZS5jdXJzb3IgPSAiLW1vei1ncmFiIjsKCQkJCgkJCXRvcCA9IHN0cmlwUHgo
aW5uZXJEaXYuc3R5bGUudG9wKTsKCQkJbGVmdCA9IHN0cmlwUHgoaW5uZXJEaXYuc3R5bGUubGVm
dCk7CgkJCQoJCQlkcmFnZ2luZyA9IHRydWU7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJCgkJZnVu
Y3Rpb24gcHJvY2Vzc01vdmUoZXZlbnQpIHsKCQkJaWYgKCFldmVudCkgZXZlbnQgPSB3aW5kb3cu
ZXZlbnQ7IC8vIElFCgkJCXZhciBpbm5lckRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJp
bm5lckRpdiIpOwoJCQlpZiAoZHJhZ2dpbmcpIHsKCQkJCWlubmVyRGl2LnN0eWxlLnRvcCA9IHRv
cCArIChldmVudC5jbGllbnRZIC0gZHJhZ1N0YXJ0VG9wKSArICdweCc7CgkJCQlpbm5lckRpdi5z
dHlsZS5sZWZ0ID0gbGVmdCArIChldmVudC5jbGllbnRYIC0gZHJhZ1N0YXJ0TGVmdCk7CgkJCX0K
CQl9CgkJCgkJZnVuY3Rpb24gc3RvcE1vdmUoKSB7CgkJCXZhciBpbm5lckRpdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJpbm5lckRpdiIpOwoJCQlpbm5lckRpdi5zdHlsZS5jdXJzb3IgPSAi
IjsKCQkJZHJhZ2dpbmcgPSBmYWxzZTsKCQl9CgkJCgkJZnVuY3Rpb24gc3RyaXBQeCh2YWx1ZSkg
ewoJCQlpZiAodmFsdWUgPT0gIiIpIHJldHVybiAwOwoJCQlyZXR1cm4gcGFyc2VGbG9hdCh2YWx1
ZS5zdWJzdHJpbmcoMCwgdmFsdWUubGVuZ3RoIC0gMikpOwoJCX0KCQkKCQlmdW5jdGlvbiBzZXRJ
bm5lckRpdlNpemUod2lkdGgsIGhlaWdodCkgewoJCQl2YXIgaW5uZXJEaXYgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiaW5uZXJEaXYiKTsKCQkJaW5uZXJEaXYuc3R5bGUud2lkdGggPSB3aWR0
aDsKCQkJaW5uZXJEaXYuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0OwoJCX0KCS8vXV0+Cgk8L3Njcmlw
dD4KPC9oZWFkPgoKPGJvZHkgb25sb2FkPSJpbml0KCkiPgoJPGgxPkFqYXhpYW4gTWFwczwvaDE+
Cgk8ZGl2IGlkPSJvdXRlckRpdiI+CgkJPGRpdiBpZD0iaW5uZXJEaXYiPgoJCQlUaGUgcmFpbiBp
biBTcGFpbiBmYWxscyBtYWlubHkgaW4gdGhlIHBsYWlucy4KCQk8L2Rpdj4KCTwvZGl2Pgo8L2Jv
ZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11888</attachid>
            <date>2006-12-16 14:08:25 -0800</date>
            <delta_ts>2006-12-28 15:29:15 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>7296r1_patch.txt</filename>
            <type>text/plain</type>
            <size>14166</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4MjYwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDYtMTItMTcgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTYK
KyAgICAgICAgSmF2YVNjcmlwdCBlcnJvciBub3QgdGhyb3duIHdoZW4gdHJ5aW5nIHRvIHNldCBh
IENTUyBwcm9wZXJ0eSB0byBhbiBpbnZhbGlkIHZhbHVlCisKKyAgICAgICAgKiBmYXN0L2Jsb2Nr
L3Bvc2l0aW9uaW5nL3JlbGF5b3V0LW9uLXBvc2l0aW9uLWNoYW5nZS5odG1sOiBUaGlzIHRlc3Qg
d2FzIHNldHRpbmcKKyAgICAgICAgcG9zaXRpb24gcHJvcGVydHkgdG8gYW4gaW52YWxpZCB2YWx1
ZSwgZXhwZWN0aW5nIHRoYXQgaXQgd2lsbCBiZSByZW1vdmVkLiBDaGFuZ2VkCisgICAgICAgIGl0
IHRvIHNldCB0aGUgcHJvcGVydHkgdG8gYW4gZW1wdHkgdmFsdWUgKG5vdyB0aGUgdGVzdCBwYXNz
ZXMgaW4gRmlyZWZveCwgdG9vKS4KKworICAgICAgICAqIGZhc3QvZG9tL2Nzcy1zZXQtcHJvcGVy
dHktZXhjZXB0aW9uLmh0bWw6IFVwZGF0ZWQgdG8gcmVzdWx0cywgYWRkZWQgYSBuZXcgY2FzZSAK
KyAgICAgICAgYW5kIG1hZGUgdGhlIG91dHB1dCBtb3JlIHZlcmJvc2UuCisKIDIwMDYtMTItMTYg
IE1pdHogUGV0dGVsICA8bWl0ekB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9s
aXZlci4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svcG9zaXRpb25pbmcvcmVsYXlvdXQt
b24tcG9zaXRpb24tY2hhbmdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9i
bG9jay9wb3NpdGlvbmluZy9yZWxheW91dC1vbi1wb3NpdGlvbi1jaGFuZ2UuaHRtbAkocmV2aXNp
b24gMTgyNTUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL3JlbGF5b3V0
LW9uLXBvc2l0aW9uLWNoYW5nZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQAog
ZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7ICAgIC8vIGZv
cmNlIGxheW91dAotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFuZ2UnKS5zdHlsZS5w
b3NpdGlvbiA9ICJub25lIjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbmdlJyku
c3R5bGUucG9zaXRpb24gPSAiIjsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vY3NzLXNldC1wcm9wZXJ0eS1leGNlcHRpb24tZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1zZXQtcHJvcGVydHktZXhjZXB0
aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTgyNTUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9jc3Mtc2V0LXByb3BlcnR5LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTMgKzEsMTcgQEAKLVRoaXMgdGVzdCBjaGVja3MgdG8gc2VlIHdoZXRoZXIgeW91IGdl
dCBleGNlcHRpb25zIHdoZW4gc2V0dGluZyBhIHByb3BlcnR5IHdpdGggYSAiYmFkIHZhbHVlIi4g
V2UgcHJlc2VydmUgb3VyIGhpc3RvcmljIGJlaGF2aW9yIG9mIG5ldmVyIHJhaXNpbmcgYW4gZXhj
ZXB0aW9uIHdoZW4geW91IHNldCBhIENTUyBwcm9wZXJ0eSB1c2luZyBKYXZhU2NyaXB0IHByb3Bl
cnR5IHN5bnRheC4gQnV0IHdlIGRvIHJhaXNlIGV4Y2VwdGlvbnMgd2hlbiBzZXR0aW5nIGEgcHJv
cGVydHkgd2l0aCBzZXRQcm9wZXJ0eS4KK1Rlc3QgZm9yIGJ1ZyA3Mjk2LgogCi1UaGUgcmVzdWx0
cyBiZWxvdyBzaG91bGQgc2hvdyBmb3VyIHN1Y2Nlc3NlcywgZm9sbG93ZWQgYnkgdHdvIGV4Y2Vw
dGlvbnMuCitUaGlzIHRlc3QgY2hlY2tzIHRvIHNlZSB3aGV0aGVyIHlvdSBnZXQgZXhjZXB0aW9u
cyB3aGVuIHNldHRpbmcgYSBwcm9wZXJ0eSB3aXRoIGEgImJhZCB2YWx1ZSIuIFNldHRpbmcgdXNp
bmcgSmF2YVNjcmlwdCBwcm9wZXJ0eSBzeW50YXggYW5kIHdpdGggc2V0UHJvcGVydHkoKSBzaG91
bGQgYmVoYXZlIHRoZSBzYW1lLgogCi1UaGlzIGlzIHRoZSB0ZXN0IGVsZW1lbnQuCitUaGUgcmVz
dWx0cyBiZWxvdyBzaG91bGQgc2hvdyBzdWNjZXNzIGluIGNhc2VzIDEsIDMsIDUsIGFuZCA3Lgog
Ci1TdWNjZXNzZnVsbHkgc2V0IGRpc3BsYXkgdG8gImJsb2NrIjsgdmFsdWUgaXMgbm93ICJibG9j
ayIuCi1TdWNjZXNzZnVsbHkgc2V0IGRpc3BsYXkgdG8gIiI7IHZhbHVlIGlzIG5vdyAiIi4KLVN1
Y2Nlc3NmdWxseSBzZXQgZGlzcGxheSB0byBudWxsOyB2YWx1ZSBpcyBub3cgIiIuCi1TdWNjZXNz
ZnVsbHkgc2V0IGRpc3BsYXkgdG8gImJsb2NrIiB3aXRoIHNldFByb3BlcnR5OyB2YWx1ZSBpcyBu
b3cgImJsb2NrIi4KLUdvdCBleGNlcHRpb24gdHJ5aW5nIHRvIHNldCBkaXNwbGF5IHRvICIiIHdp
dGggc2V0UHJvcGVydHk7IHZhbHVlIGlzIG5vdyAiIi4KLUdvdCBleGNlcHRpb24gdHJ5aW5nIHRv
IHNldCBkaXNwbGF5IHRvIG51bGwgd2l0aCBzZXRQcm9wZXJ0eTsgdmFsdWUgaXMgbm93ICIiLgor
SXQgaXMgT0sgaWYgdGhlIG9yZGVyIG9mIHByb3BlcnRpZXMgY2hhbmdlcyBmcm9tIHRoZSBleHBl
Y3RlZCByZXN1bHRzIC0gSUUgNiBhbmQgRmlyZWZveCAyIGRvbid0IGFncmVlIG9uIGl0IGFueXdh
eS4KKworU3VjY2Vzc2Z1bGx5IHNldCBkaXNwbGF5IHRvICJibG9jayI7IGNzc1RleHQgaXMgbm93
OiAidG9wOiAwcHg7IGJvdHRvbTogMXB4OyBkaXNwbGF5OiBibG9jazsgIi4KK0dvdCBleGNlcHRp
b24gdHJ5aW5nIHRvIHNldCBkaXNwbGF5IHRvICJmb29iYXIiOyBjc3NUZXh0IGlzIG5vdzogInRv
cDogMHB4OyBkaXNwbGF5OiBub25lOyBib3R0b206IDFweDsgIi4KK1N1Y2Nlc3NmdWxseSBzZXQg
ZGlzcGxheSB0byAiIjsgY3NzVGV4dCBpcyBub3c6ICJ0b3A6IDBweDsgYm90dG9tOiAxcHg7ICIu
CitHb3QgZXhjZXB0aW9uIHRyeWluZyB0byBzZXQgZGlzcGxheSB0byBudWxsOyBjc3NUZXh0IGlz
IG5vdzogInRvcDogMHB4OyBkaXNwbGF5OiBub25lOyBib3R0b206IDFweDsgIi4KK1N1Y2Nlc3Nm
dWxseSBzZXQgZGlzcGxheSB0byAiYmxvY2siIHdpdGggc2V0UHJvcGVydHk7IGNzc1RleHQgaXMg
bm93OiAidG9wOiAwcHg7IGJvdHRvbTogMXB4OyBkaXNwbGF5OiBibG9jazsgIi4KK0dvdCBleGNl
cHRpb24gdHJ5aW5nIHRvIHNldCBkaXNwbGF5IHRvICJmb29iYXIiIHdpdGggc2V0UHJvcGVydHk7
IGNzc1RleHQgaXMgbm93OiAidG9wOiAwcHg7IGRpc3BsYXk6IG5vbmU7IGJvdHRvbTogMXB4OyAi
LgorU3VjY2Vzc2Z1bGx5IHNldCBkaXNwbGF5IHRvICIiIHdpdGggc2V0UHJvcGVydHk7IGNzc1Rl
eHQgaXMgbm93OiAidG9wOiAwcHg7IGJvdHRvbTogMXB4OyAiLgorR290IGV4Y2VwdGlvbiB0cnlp
bmcgdG8gc2V0IGRpc3BsYXkgdG8gbnVsbCB3aXRoIHNldFByb3BlcnR5OyBjc3NUZXh0IGlzIG5v
dzogInRvcDogMHB4OyBkaXNwbGF5OiBub25lOyBib3R0b206IDFweDsgIi4KIApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vY3NzLXNldC1wcm9wZXJ0eS1leGNlcHRpb24uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3Mtc2V0LXByb3BlcnR5LWV4Y2VwdGlvbi5o
dG1sCShyZXZpc2lvbiAxODI1NSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1zZXQtcHJv
cGVydHktZXhjZXB0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNiArNywxNSBAQCBmdW5j
dGlvbiBsb2cobWVzc2FnZSkKICAgICBpdGVtLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKG1lc3NhZ2UpKTsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIp
LmFwcGVuZENoaWxkKGl0ZW0pOwogfQorZnVuY3Rpb24gc2V0SW5pdGlhbFN0eWxlRm9yRSgpCit7
CisgICAgdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZScpOworCisgICAgZS5zdHls
ZS50b3AgPSAiMHB4IjsKKyAgICBlLnN0eWxlLmJvdHRvbSA9ICIiOworICAgIGUuc3R5bGUuZGlz
cGxheSA9ICJub25lIjsKKyAgICBlLnN0eWxlLmJvdHRvbSA9ICIxcHgiOworfQogZnVuY3Rpb24g
dGVzdCgpCiB7CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKQEAgLTE0LDYx
ICsyMyw3OCBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIHZhciBlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2UnKTsKIAotICAgIGUuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICBzZXRJ
bml0aWFsU3R5bGVGb3JFKCk7CiAgICAgdHJ5IHsKICAgICAgICAgZS5zdHlsZS5kaXNwbGF5ID0g
ImJsb2NrIjsKLSAgICAgICAgbG9nKCJTdWNjZXNzZnVsbHkgc2V0IGRpc3BsYXkgdG8gXCJibG9j
a1wiOyB2YWx1ZSBpcyBub3cgXCIiICsgZS5zdHlsZS5kaXNwbGF5ICsgIlwiLiIpOworICAgICAg
ICBsb2coIlN1Y2Nlc3NmdWxseSBzZXQgZGlzcGxheSB0byBcImJsb2NrXCI7IGNzc1RleHQgaXMg
bm93OiBcIiIgKyBlLnN0eWxlLmNzc1RleHQgKyAiXCIuIik7CiAgICAgfSBjYXRjaCAoZXhjZXB0
aW9uKSB7Ci0gICAgICAgIGxvZygiR290IGV4Y2VwdGlvbiB0cnlpbmcgdG8gc2V0IGRpc3BsYXkg
dG8gXCJibG9ja1wiOyB2YWx1ZSBpcyBub3cgXCIiICsgZS5zdHlsZS5kaXNwbGF5ICsgIlwiLiIp
OworICAgICAgICBsb2coIkdvdCBleGNlcHRpb24gdHJ5aW5nIHRvIHNldCBkaXNwbGF5IHRvIFwi
YmxvY2tcIjsgY3NzVGV4dCBpcyBub3c6IFwiIiArIGUuc3R5bGUuY3NzVGV4dCArICJcIi4iKTsK
ICAgICB9CiAKLSAgICBlLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgc2V0SW5pdGlhbFN0
eWxlRm9yRSgpOworICAgIHRyeSB7CisgICAgICAgIGUuc3R5bGUuZGlzcGxheSA9ICJmb29iYXIi
OworICAgICAgICBsb2coIlN1Y2Nlc3NmdWxseSBzZXQgZGlzcGxheSB0byBcImZvb2JhclwiOyBj
c3NUZXh0IGlzIG5vdzogXCIiICsgZS5zdHlsZS5jc3NUZXh0ICsgIlwiLiIpOworICAgIH0gY2F0
Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICBsb2coIkdvdCBleGNlcHRpb24gdHJ5aW5nIHRvIHNl
dCBkaXNwbGF5IHRvIFwiZm9vYmFyXCI7IGNzc1RleHQgaXMgbm93OiBcIiIgKyBlLnN0eWxlLmNz
c1RleHQgKyAiXCIuIik7CisgICAgfQorCisgICAgc2V0SW5pdGlhbFN0eWxlRm9yRSgpOwogICAg
IHRyeSB7CiAgICAgICAgIGUuc3R5bGUuZGlzcGxheSA9ICIiOwotICAgICAgICBsb2coIlN1Y2Nl
c3NmdWxseSBzZXQgZGlzcGxheSB0byBcIlwiOyB2YWx1ZSBpcyBub3cgXCIiICsgZS5zdHlsZS5k
aXNwbGF5ICsgIlwiLiIpOworICAgICAgICBsb2coIlN1Y2Nlc3NmdWxseSBzZXQgZGlzcGxheSB0
byBcIlwiOyBjc3NUZXh0IGlzIG5vdzogXCIiICsgZS5zdHlsZS5jc3NUZXh0ICsgIlwiLiIpOwog
ICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikgewotICAgICAgICBsb2coIkdvdCBleGNlcHRpb24gdHJ5
aW5nIHRvIHNldCBkaXNwbGF5IHRvIFwiXCI7IHZhbHVlIGlzIG5vdyBcIiIgKyBlLnN0eWxlLmRp
c3BsYXkgKyAiXCIuIik7CisgICAgICAgIGxvZygiR290IGV4Y2VwdGlvbiB0cnlpbmcgdG8gc2V0
IGRpc3BsYXkgdG8gXCJcIjsgY3NzVGV4dCBpcyBub3c6IFwiIiArIGUuc3R5bGUuY3NzVGV4dCAr
ICJcIi4iKTsKICAgICB9CiAKLSAgICBlLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgc2V0
SW5pdGlhbFN0eWxlRm9yRSgpOwogICAgIHRyeSB7CiAgICAgICAgIGUuc3R5bGUuZGlzcGxheSA9
IG51bGw7Ci0gICAgICAgIGxvZygiU3VjY2Vzc2Z1bGx5IHNldCBkaXNwbGF5IHRvIG51bGw7IHZh
bHVlIGlzIG5vdyBcIiIgKyBlLnN0eWxlLmRpc3BsYXkgKyAiXCIuIik7CisgICAgICAgIGxvZygi
U3VjY2Vzc2Z1bGx5IHNldCBkaXNwbGF5IHRvIG51bGw7IGNzc1RleHQgaXMgbm93OiBcIiIgKyBl
LnN0eWxlLmNzc1RleHQgKyAiXCIuIik7CiAgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7Ci0gICAg
ICAgIGxvZygiR290IGV4Y2VwdGlvbiB0cnlpbmcgdG8gc2V0IGRpc3BsYXkgdG8gbnVsbDsgdmFs
dWUgaXMgbm93IFwiIiArIGUuc3R5bGUuZGlzcGxheSArICJcIi4iKTsKKyAgICAgICAgbG9nKCJH
b3QgZXhjZXB0aW9uIHRyeWluZyB0byBzZXQgZGlzcGxheSB0byBudWxsOyBjc3NUZXh0IGlzIG5v
dzogXCIiICsgZS5zdHlsZS5jc3NUZXh0ICsgIlwiLiIpOwogICAgIH0KIAotICAgIGUuc3R5bGUu
ZGlzcGxheSA9ICJub25lIjsKKyAgICBzZXRJbml0aWFsU3R5bGVGb3JFKCk7CiAgICAgdHJ5IHsK
ICAgICAgICAgZS5zdHlsZS5zZXRQcm9wZXJ0eSgiZGlzcGxheSIsICJibG9jayIsICIiKTsKLSAg
ICAgICAgbG9nKCJTdWNjZXNzZnVsbHkgc2V0IGRpc3BsYXkgdG8gXCJibG9ja1wiIHdpdGggc2V0
UHJvcGVydHk7IHZhbHVlIGlzIG5vdyBcIiIgKyBlLnN0eWxlLmRpc3BsYXkgKyAiXCIuIik7Cisg
ICAgICAgIGxvZygiU3VjY2Vzc2Z1bGx5IHNldCBkaXNwbGF5IHRvIFwiYmxvY2tcIiB3aXRoIHNl
dFByb3BlcnR5OyBjc3NUZXh0IGlzIG5vdzogXCIiICsgZS5zdHlsZS5jc3NUZXh0ICsgIlwiLiIp
OwogICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikgewotICAgICAgICBsb2coIkdvdCBleGNlcHRpb24g
dHJ5aW5nIHRvIHNldCBkaXNwbGF5IHRvIFwiYmxvY2tcIiB3aXRoIHNldFByb3BlcnR5OyB2YWx1
ZSBpcyBub3cgXCIiICsgZS5zdHlsZS5kaXNwbGF5ICsgIlwiLiIpOworICAgICAgICBsb2coIkdv
dCBleGNlcHRpb24gdHJ5aW5nIHRvIHNldCBkaXNwbGF5IHRvIFwiYmxvY2tcIiB3aXRoIHNldFBy
b3BlcnR5OyBjc3NUZXh0IGlzIG5vdzogXCIiICsgZS5zdHlsZS5jc3NUZXh0ICsgIlwiLiIpOwog
ICAgIH0KIAotICAgIGUuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICBzZXRJbml0aWFsU3R5
bGVGb3JFKCk7CisgICAgdHJ5IHsKKyAgICAgICAgZS5zdHlsZS5zZXRQcm9wZXJ0eSgiZGlzcGxh
eSIsICJmb29iYXIiLCAiIik7CisgICAgICAgIGxvZygiU3VjY2Vzc2Z1bGx5IHNldCBkaXNwbGF5
IHRvIFwiZm9vYmFyXCIgd2l0aCBzZXRQcm9wZXJ0eTsgY3NzVGV4dCBpcyBub3c6IFwiIiArIGUu
c3R5bGUuY3NzVGV4dCArICJcIi4iKTsKKyAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAg
ICAgbG9nKCJHb3QgZXhjZXB0aW9uIHRyeWluZyB0byBzZXQgZGlzcGxheSB0byBcImZvb2Jhclwi
IHdpdGggc2V0UHJvcGVydHk7IGNzc1RleHQgaXMgbm93OiBcIiIgKyBlLnN0eWxlLmNzc1RleHQg
KyAiXCIuIik7CisgICAgfQorCisgICAgc2V0SW5pdGlhbFN0eWxlRm9yRSgpOwogICAgIHRyeSB7
CiAgICAgICAgIGUuc3R5bGUuc2V0UHJvcGVydHkoImRpc3BsYXkiLCAiIiwgIiIpOwotICAgICAg
ICBsb2coIlN1Y2Nlc3NmdWxseSBzZXQgZGlzcGxheSB0byBcIlwiIHdpdGggc2V0UHJvcGVydHk7
IHZhbHVlIGlzIG5vdyBcIiIgKyBlLnN0eWxlLmRpc3BsYXkgKyAiXCIuIik7CisgICAgICAgIGxv
ZygiU3VjY2Vzc2Z1bGx5IHNldCBkaXNwbGF5IHRvIFwiXCIgd2l0aCBzZXRQcm9wZXJ0eTsgY3Nz
VGV4dCBpcyBub3c6IFwiIiArIGUuc3R5bGUuY3NzVGV4dCArICJcIi4iKTsKICAgICB9IGNhdGNo
IChleGNlcHRpb24pIHsKLSAgICAgICAgbG9nKCJHb3QgZXhjZXB0aW9uIHRyeWluZyB0byBzZXQg
ZGlzcGxheSB0byBcIlwiIHdpdGggc2V0UHJvcGVydHk7IHZhbHVlIGlzIG5vdyBcIiIgKyBlLnN0
eWxlLmRpc3BsYXkgKyAiXCIuIik7CisgICAgICAgIGxvZygiR290IGV4Y2VwdGlvbiB0cnlpbmcg
dG8gc2V0IGRpc3BsYXkgdG8gXCJcIiB3aXRoIHNldFByb3BlcnR5OyBjc3NUZXh0IGlzIG5vdzog
XCIiICsgZS5zdHlsZS5jc3NUZXh0ICsgIlwiLiIpOwogICAgIH0KIAotICAgIGUuc3R5bGUuZGlz
cGxheSA9ICJub25lIjsKKyAgICBzZXRJbml0aWFsU3R5bGVGb3JFKCk7CiAgICAgdHJ5IHsKICAg
ICAgICAgZS5zdHlsZS5zZXRQcm9wZXJ0eSgiZGlzcGxheSIsIG51bGwsICIiKTsKLSAgICAgICAg
bG9nKCJTdWNjZXNzZnVsbHkgc2V0IGRpc3BsYXkgdG8gbnVsbCB3aXRoIHNldFByb3BlcnR5OyB2
YWx1ZSBpcyBub3cgXCIiICsgZS5zdHlsZS5kaXNwbGF5ICsgIlwiLiIpOworICAgICAgICBsb2co
IlN1Y2Nlc3NmdWxseSBzZXQgZGlzcGxheSB0byBudWxsIHdpdGggc2V0UHJvcGVydHk7IGNzc1Rl
eHQgaXMgbm93OiBcIiIgKyBlLnN0eWxlLmNzc1RleHQgKyAiXCIuIik7CiAgICAgfSBjYXRjaCAo
ZXhjZXB0aW9uKSB7Ci0gICAgICAgIGxvZygiR290IGV4Y2VwdGlvbiB0cnlpbmcgdG8gc2V0IGRp
c3BsYXkgdG8gbnVsbCB3aXRoIHNldFByb3BlcnR5OyB2YWx1ZSBpcyBub3cgXCIiICsgZS5zdHls
ZS5kaXNwbGF5ICsgIlwiLiIpOworICAgICAgICBsb2coIkdvdCBleGNlcHRpb24gdHJ5aW5nIHRv
IHNldCBkaXNwbGF5IHRvIG51bGwgd2l0aCBzZXRQcm9wZXJ0eTsgY3NzVGV4dCBpcyBub3c6IFwi
IiArIGUuc3R5bGUuY3NzVGV4dCArICJcIi4iKTsKICAgICB9CiB9CiA8L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5IG9ubG9hZD0idGVzdCgpOyI+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk2Ij5idWcgNzI5NjwvYT4uPC9wPgog
PHA+VGhpcyB0ZXN0IGNoZWNrcyB0byBzZWUgd2hldGhlciB5b3UgZ2V0IGV4Y2VwdGlvbnMgd2hl
biBzZXR0aW5nIGEgcHJvcGVydHkgd2l0aCBhICJiYWQgdmFsdWUiLgotV2UgcHJlc2VydmUgb3Vy
IGhpc3RvcmljIGJlaGF2aW9yIG9mIG5ldmVyIHJhaXNpbmcgYW4gZXhjZXB0aW9uIHdoZW4geW91
IHNldCBhIENTUyBwcm9wZXJ0eSB1c2luZyBKYXZhU2NyaXB0IHByb3BlcnR5IHN5bnRheC4KLUJ1
dCB3ZSBkbyByYWlzZSBleGNlcHRpb25zIHdoZW4gc2V0dGluZyBhIHByb3BlcnR5IHdpdGggc2V0
UHJvcGVydHkuPC9wPgotPHA+VGhlIHJlc3VsdHMgYmVsb3cgc2hvdWxkIHNob3cgZm91ciBzdWNj
ZXNzZXMsIGZvbGxvd2VkIGJ5IHR3byBleGNlcHRpb25zLjwvcD4KK1NldHRpbmcgdXNpbmcgSmF2
YVNjcmlwdCBwcm9wZXJ0eSBzeW50YXggYW5kIHdpdGggc2V0UHJvcGVydHkoKSBzaG91bGQgYmVo
YXZlIHRoZSBzYW1lLjwvcD4KKzxwPlRoZSByZXN1bHRzIGJlbG93IHNob3VsZCBzaG93IHN1Y2Nl
c3MgaW4gY2FzZXMgMSwgMywgNSwgYW5kIDcuPC9wPgorPFA+SXQgaXMgT0sgaWYgdGhlIG9yZGVy
IG9mIHByb3BlcnRpZXMgY2hhbmdlcyBmcm9tIHRoZSBleHBlY3RlZCByZXN1bHRzIC0gSUUgNiBh
bmQgRmlyZWZveCAyIGRvbid0IGFncmVlIG9uIGl0IGFueXdheS48L3A+CiA8aHI+CiA8cCBpZD0i
ZSI+VGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50LjwvcD4KIDxocj4KSW5kZXg6IFdlYkNvcmUvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODI2MCkK
KysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MDYtMTItMTcgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTYKKyAgICAgICAgSmF2YVNjcmlwdCBlcnJvciBub3Qg
dGhyb3duIHdoZW4gdHJ5aW5nIHRvIHNldCBhIENTUyBwcm9wZXJ0eSB0byBhbiBpbnZhbGlkIHZh
bHVlCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfY3NzLmNwcDoKKyAgICAgICAgKEtKUzo6
RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbjo6cHV0KTogV2hlbiBub3QgaW4gRGFzaGJvYXJkIGNvbXBh
dGliaWxpdHkgbW9kZSwKKyAgICAgICAgcmFpc2UgZXhjZXB0aW9uIGZvciBpbnZhbGlkIHZhbHVl
cy4gQWxzbyByZW1vdmVkIGFuIHVubmVjZXNzYXJ5IGNhbGwgdG8KKyAgICAgICAgcmVtb3ZlUHJv
cGVydHkoKSwgd2hpY2ggcHJldmVudGVkIHRoZSBwcm9wZXJ0eSB2YWx1ZSBmcm9tIGJlaW5nIHBy
ZXNlcnZlZCBpbiAKKyAgICAgICAgZXJyb3IgY2FzZS4KKworICAgICAgICAqIGNzcy9DU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHkpOiBNb3ZlZCB0aGUgaGFuZGxpbmcgb2YKKyAgICAg
ICAgZW1wdHkgcHJvcGVydHkgdmFsdWVzIGhlcmUuIEFsc28gcmVtb3ZlZCBhbiB1bm5lY2Vzc2Fy
eSBjYWxsIHRvIHJlbW92ZVByb3BlcnR5KCkuCisKIDIwMDYtMTItMTYgIFphY2sgUnVzaW4gIDx6
YWNrQGtkZS5vcmc+CiAKICAgICAgICAgQWRkIGEgc3R1YiBmb3IgU2VhcmNoUG9wdXBNZW51IGZv
ciBRdCBjb2RlLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfY3NzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19jc3MuY3BwCShyZXZpc2lvbiAxODI1NSkK
KysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2Nzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NWYWx1
ZUxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogI2luY2x1
ZGUgIkpTQ1NTUHJpbWl0aXZlVmFsdWUuaCIKQEAgLTQyLDYgKzQzLDcgQEAKICNpbmNsdWRlICJK
U0NTU1J1bGVMaXN0LmgiCiAjaW5jbHVkZSAiSlNDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJN
ZWRpYUxpc3QuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRM
aXN0LmgiCiAjaW5jbHVkZSAia2pzX2RvbS5oIgogCkBAIC0yMTEsMjQgKzIxMywyNCBAQCB2b2lk
IERPTUNTU1N0eWxlRGVjbGFyYXRpb246OnB1dChFeGVjU3RhCiAgICAgaWYgKGlzQ1NTUHJvcGVy
dHlOYW1lKHByb3BlcnR5TmFtZSkpIHsKICAgICAgIGJvb2wgcGl4ZWxPclBvczsKICAgICAgIFN0
cmluZyBwcm9wID0gY3NzUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSwgJnBpeGVsT3JQb3MpOwot
ICAgICAgU3RyaW5nIHByb3B2YWx1ZSA9IHZhbHVlLT50b1N0cmluZyhleGVjKTsKKyAgICAgIFN0
cmluZyBwcm9wVmFsdWUgPSB2YWx1ZS0+dG9TdHJpbmcoZXhlYyk7CiAgICAgICBpZiAocGl4ZWxP
clBvcykKLSAgICAgICAgcHJvcHZhbHVlICs9ICJweCI7CisgICAgICAgIHByb3BWYWx1ZSArPSAi
cHgiOwogI2lmZGVmIEtKU19WRVJCT1NFCiAgICAgICBrZERlYnVnKDYwNzApIDw8ICJET01DU1NT
dHlsZURlY2xhcmF0aW9uOiBwcm9wPSIgPDwgcHJvcCA8PCAiIHByb3B2YWx1ZT0iIDw8IHByb3B2
YWx1ZSA8PCBlbmRsOwogI2VuZGlmCi0gICAgICBzdHlsZURlY2wucmVtb3ZlUHJvcGVydHkocHJv
cCwgZXhjZXB0aW9uKTsKLSAgICAgIGlmICghZXhjZXB0aW9uICYmICFwcm9wdmFsdWUuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIC8vIFdlIGhhdmUgdG8gaWdub3JlIGV4Y2VwdGlvbnMgaGVyZSwgYmVj
YXVzZSBvZiB0aGUgZm9sbG93aW5nIHVuZm9ydHVuYXRlIHNpdHVhdGlvbjoKLSAgICAgICAgLy8g
ICAxKSBPbGRlciB2ZXJzaW9ucyBpZ25vcmVkIGV4Y2VwdGlvbnMgaGVyZSBieSBhY2NpZGVudCwg
YmVjYXVzZSB0aGUgcHV0IGZ1bmN0aW9uCi0gICAgICAgIC8vICAgICAgdGhhdCB0cmFuc2xhdGVk
IGV4Y2VwdGlvbnMgZGlkIG5vdCB0cmFuc2xhdGUgQ1NTIGV4Y2VwdGlvbnMuCi0gICAgICAgIC8v
ICAgMikgR2Vja28gZG9lcyBub3QgcmFpc2UgYW4gZXhjZXB0aW9uIGluIHRoaXMgY2FzZSwgYWx0
aG91Z2ggV2luSUUgZG9lcy4KLSAgICAgICAgLy8gICAzKSBBdCBsZWFzdCBzb21lIERhc2hib2Fy
ZCB3aWRnZXRzIGFyZSBkZXBlbmRpbmcgb24gdGhpcyBiZWhhdmlvci4KLSAgICAgICAgLy8gSXQg
d291bGQgYmUgbmljZSB0byBmaXggdGhpcyBzb21lIGRheSwgcGVyaGFwcyB3aXRoIHNvbWUga2lu
ZCBvZiAicXVpcmtzIG1vZGUiLAotICAgICAgICAvLyBidXQgaXQncyBsaWtlbHkgdGhhdCB0aGUg
RGFzaGJvYXJkIHdpZGdldHMgYXJlIGFscmVhZHkgdXNpbmcgYSBzdHJpY3QgbW9kZSBET0NUWVBF
LgotICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgc3R5bGVEZWNsLnNldFBy
b3BlcnR5KHByb3AsIHByb3B2YWx1ZSwgZWMpOwotICAgICAgfQorICAgICAgQVNTRVJUKHN0eWxl
RGVjbC5zdHlsZXNoZWV0KCktPmlzQ1NTU3R5bGVTaGVldCgpKTsKKyAgICAgIGlmIChEb2N1bWVu
dCogZG9jID0gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlRGVjbC5zdHlsZXNoZWV0
KCkpLT5kb2MoKSkKKyAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvYy0+ZnJhbWUoKSkKKyAg
ICAgICAgICBpZiAoZnJhbWUtPnNldHRpbmdzKCktPnNob3VsZFVzZURhc2hib2FyZEJhY2t3YXJk
Q29tcGF0aWJpbGl0eU1vZGUoKSkgeworICAgICAgICAgICAgc3R5bGVEZWNsLnJlbW92ZVByb3Bl
cnR5KHByb3AsIGV4Y2VwdGlvbik7CisgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvbikgeworICAg
ICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAgICAgICAgICAgc3R5bGVEZWNs
LnNldFByb3BlcnR5KHByb3AsIHByb3BWYWx1ZSwgZWMpOworICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgc3R5bGVEZWNsLnNldFByb3BlcnR5
KHByb3AsIHByb3BWYWx1ZSwgZXhjZXB0aW9uKTsKICAgICB9IGVsc2UgewogICAgICAgRE9NT2Jq
ZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgYXR0cik7CiAgICAgfQpJbmRleDog
V2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAkocmV2aXNpb24gMTgy
NTUpCisrKyBXZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI5Nyw4ICsyOTcsMTQgQEAgYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbjo6c2V0UHJvcAogewogICAgIGVjID0gMDsKIAotICAgIHJlbW92ZVByb3BlcnR5KHByb3Bl
cnR5SUQpOworICAgIC8vIFNldHRpbmcgdGhlIHZhbHVlIHRvIGFuIGVtcHR5IHN0cmluZyBqdXN0
IHJlbW92ZXMgdGhlIHByb3BlcnR5IGluIGJvdGggSUUgYW5kIEdlY2tvLgorICAgIGlmICh2YWx1
ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgcmVtb3ZlUHJvcGVydHkocHJvcGVydHlJRCwgbm90aWZ5
Q2hhbmdlZCwgZWMpOworICAgICAgICByZXR1cm4gZWMgPT0gMDsKKyAgICB9CiAKKyAgICAvLyBX
aGVuIHJlcGxhY2luZyBhbiBleGlzdGluZyBwcm9wZXJ0eSB2YWx1ZSwgdGhpcyBtb3ZlcyB0aGUg
cHJvcGVydHkgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4KKyAgICAvLyBGaXJlZm94IHByZXNlcnZl
cyB0aGUgcG9zaXRpb24sIGFuZCBNU0lFIG1vdmVzIHRoZSBwcm9wZXJ0eSB0byB0aGUgYmVnaW5u
aW5nLgogICAgIENTU1BhcnNlciBwYXJzZXIodXNlU3RyaWN0UGFyc2luZygpKTsKICAgICBib29s
IHN1Y2Nlc3MgPSBwYXJzZXIucGFyc2VWYWx1ZSh0aGlzLCBwcm9wZXJ0eUlELCB2YWx1ZSwgaW1w
b3J0YW50KTsKICAgICBpZiAoIXN1Y2Nlc3MpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11992</attachid>
            <date>2006-12-24 02:03:14 -0800</date>
            <delta_ts>2007-01-04 22:47:04 -0800</delta_ts>
            <desc>disable exceptions</desc>
            <filename>7296-no-exception.txt</filename>
            <type>text/plain</type>
            <size>7547</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4NDA4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDYtMTItMjQgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTYK
KyAgICAgICAgRGlzYWJsZSBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgd2hlbiBkeW5hbWljYWxseSBj
aGFuZ2luZyBDU1MgcHJvcGVydGllcy4KKworICAgICAgICAqIGZhc3QvZG9tL2Nzcy1zZXQtcHJv
cGVydHktZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9jc3Mtc2V0
LXByb3BlcnR5LWV4Y2VwdGlvbi5odG1sOgorCiAyMDA2LTEyLTI0ICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05ODAxCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3Mtc2V0LXBy
b3BlcnR5LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vY3NzLXNldC1wcm9wZXJ0eS1leGNlcHRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxODQwNSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1zZXQtcHJvcGVydHktZXhjZXB0
aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiwxOCArMiwxNiBAQCBUZXN0IGZv
ciBidWcgNzI5Ni4KIAogVGhpcyB0ZXN0IGNoZWNrcyB0byBzZWUgd2hldGhlciB5b3UgZ2V0IGV4
Y2VwdGlvbnMgd2hlbiBzZXR0aW5nIGEgcHJvcGVydHkgd2l0aCBhICJiYWQgdmFsdWUiLiBTZXR0
aW5nIHVzaW5nIEphdmFTY3JpcHQgcHJvcGVydHkgc3ludGF4IGFuZCB3aXRoIHNldFByb3BlcnR5
KCkgc2hvdWxkIGJlaGF2ZSB0aGUgc2FtZS4KIAotVGhlIHJlc3VsdHMgYmVsb3cgc2hvdWxkIHNo
b3cgc3VjY2VzcywgZXhjZXB0IGZvciBjYXNlcyAyIGFuZCA2LCBpbiB3aGljaCBleGNlcHRpb25z
IHNob3VsZCBiZSByYWlzZWQuCi0KIEl0IGlzIE9LIGlmIHRoZSBvcmRlciBvZiBwcm9wZXJ0aWVz
IGNoYW5nZXMgZnJvbSB0aGUgZXhwZWN0ZWQgcmVzdWx0cyAtIElFIDYgYW5kIEZpcmVmb3ggMiBk
b24ndCBhZ3JlZSBvbiBpdCBhbnl3YXkuCiAKIFRoaXMgaXMgdGhlIHRlc3QgZWxlbWVudC4KIAog
U3VjY2Vzc2Z1bGx5IHNldCBkaXNwbGF5IHRvICJibG9jayI7IGNzc1RleHQgaXMgbm93OiAidG9w
OiAwcHg7IGJvdHRvbTogMXB4OyBkaXNwbGF5OiBibG9jazsgIi4KLUdvdCBleGNlcHRpb24gdHJ5
aW5nIHRvIHNldCBkaXNwbGF5IHRvICJmb29iYXIiOyBjc3NUZXh0IGlzIG5vdzogInRvcDogMHB4
OyBkaXNwbGF5OiBub25lOyBib3R0b206IDFweDsgIi4KK1N1Y2Nlc3NmdWxseSBzZXQgZGlzcGxh
eSB0byAiZm9vYmFyIjsgY3NzVGV4dCBpcyBub3c6ICJ0b3A6IDBweDsgZGlzcGxheTogbm9uZTsg
Ym90dG9tOiAxcHg7ICIuCiBTdWNjZXNzZnVsbHkgc2V0IGRpc3BsYXkgdG8gIiI7IGNzc1RleHQg
aXMgbm93OiAidG9wOiAwcHg7IGJvdHRvbTogMXB4OyAiLgogU3VjY2Vzc2Z1bGx5IHNldCBkaXNw
bGF5IHRvIG51bGw7IGNzc1RleHQgaXMgbm93OiAidG9wOiAwcHg7IGJvdHRvbTogMXB4OyAiLgog
U3VjY2Vzc2Z1bGx5IHNldCBkaXNwbGF5IHRvICJibG9jayIgd2l0aCBzZXRQcm9wZXJ0eTsgY3Nz
VGV4dCBpcyBub3c6ICJ0b3A6IDBweDsgYm90dG9tOiAxcHg7IGRpc3BsYXk6IGJsb2NrOyAiLgot
R290IGV4Y2VwdGlvbiB0cnlpbmcgdG8gc2V0IGRpc3BsYXkgdG8gImZvb2JhciIgd2l0aCBzZXRQ
cm9wZXJ0eTsgY3NzVGV4dCBpcyBub3c6ICJ0b3A6IDBweDsgZGlzcGxheTogbm9uZTsgYm90dG9t
OiAxcHg7ICIuCitTdWNjZXNzZnVsbHkgc2V0IGRpc3BsYXkgdG8gImZvb2JhciIgd2l0aCBzZXRQ
cm9wZXJ0eTsgY3NzVGV4dCBpcyBub3c6ICJ0b3A6IDBweDsgZGlzcGxheTogbm9uZTsgYm90dG9t
OiAxcHg7ICIuCiBTdWNjZXNzZnVsbHkgc2V0IGRpc3BsYXkgdG8gIiIgd2l0aCBzZXRQcm9wZXJ0
eTsgY3NzVGV4dCBpcyBub3c6ICJ0b3A6IDBweDsgYm90dG9tOiAxcHg7ICIuCiBTdWNjZXNzZnVs
bHkgc2V0IGRpc3BsYXkgdG8gbnVsbCB3aXRoIHNldFByb3BlcnR5OyBjc3NUZXh0IGlzIG5vdzog
InRvcDogMHB4OyBib3R0b206IDFweDsgIi4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
Y3NzLXNldC1wcm9wZXJ0eS1leGNlcHRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9jc3Mtc2V0LXByb3BlcnR5LWV4Y2VwdGlvbi5odG1sCShyZXZpc2lvbiAxODQw
NSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1zZXQtcHJvcGVydHktZXhjZXB0aW9uLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDYgQEAgZnVuY3Rpb24gdGVzdCgpCiA8cD5U
ZXN0IGZvciA8YSBocmVmPSJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
Mjk2Ij5idWcgNzI5NjwvYT4uPC9wPgogPHA+VGhpcyB0ZXN0IGNoZWNrcyB0byBzZWUgd2hldGhl
ciB5b3UgZ2V0IGV4Y2VwdGlvbnMgd2hlbiBzZXR0aW5nIGEgcHJvcGVydHkgd2l0aCBhICJiYWQg
dmFsdWUiLgogU2V0dGluZyB1c2luZyBKYXZhU2NyaXB0IHByb3BlcnR5IHN5bnRheCBhbmQgd2l0
aCBzZXRQcm9wZXJ0eSgpIHNob3VsZCBiZWhhdmUgdGhlIHNhbWUuPC9wPgotPHA+VGhlIHJlc3Vs
dHMgYmVsb3cgc2hvdWxkIHNob3cgc3VjY2VzcywgZXhjZXB0IGZvciBjYXNlcyAyIGFuZCA2LCBp
biB3aGljaCBleGNlcHRpb25zIHNob3VsZCBiZSByYWlzZWQuPC9wPgogPFA+SXQgaXMgT0sgaWYg
dGhlIG9yZGVyIG9mIHByb3BlcnRpZXMgY2hhbmdlcyBmcm9tIHRoZSBleHBlY3RlZCByZXN1bHRz
IC0gSUUgNiBhbmQgRmlyZWZveCAyIGRvbid0IGFncmVlIG9uIGl0IGFueXdheS48L3A+CiA8aHI+
CiA8cCBpZD0iZSI+VGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50LjwvcD4KSW5kZXg6IFdlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODQw
OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMDYtMTItMjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTYKKyAgICAgICAgRGlzYWJsZSBKYXZhU2NyaXB0
IGV4Y2VwdGlvbnMgd2hlbiBkeW5hbWljYWxseSBjaGFuZ2luZyBDU1MgcHJvcGVydGllcy4KKwor
ICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19jc3MuY3BwOgorICAgICAgICAoS0pTOjpET01DU1NT
dHlsZURlY2xhcmF0aW9uOjpwdXQpOiBNb3ZlZCB0aGUgRGFzaGJvYXJkIHF1aXJrIGxvZ2ljIGZy
b20gaGVyZSB0byBET00uCisKKyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNl
dFByb3BlcnR5KTogRG9uJ3QgcmFpc2UgYW4gZXhjZXB0aW9uIGlmIHBhcnNpbmcgZmFpbHMuCisg
ICAgICAgIEluIERhc2hib2FyZCBjb21wYXRpYmlsaXR5IG1vZGUsIHN0aWxsIGRvIHJlbW92ZSB0
aGUgcHJvcGVydHkgaW4gdGhpcyBjYXNlLgorCiAyMDA2LTEyLTIzICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZi4KSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2Nzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9qcy9ranNfY3NzLmNwcAkocmV2aXNpb24gMTg0MDYpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL2pzL2tqc19jc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw2IEBACiAjaW5j
bHVkZSAiQ1NTU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgogI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0NTU1ByaW1pdGl2
ZVZhbHVlLmgiCkBAIC00NCw3ICs0Myw2IEBACiAjaW5jbHVkZSAiSlNDU1NSdWxlTGlzdC5oIgog
I2luY2x1ZGUgIkpTQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCi0jaW5j
bHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0TGlzdC5oIgogI2luY2x1ZGUg
Imtqc19kb20uaCIKIApAQCAtMjIwLDIwICsyMTgsNiBAQCB2b2lkIERPTUNTU1N0eWxlRGVjbGFy
YXRpb246OnB1dChFeGVjU3RhCiAjaWZkZWYgS0pTX1ZFUkJPU0UKICAgICAgIGtkRGVidWcoNjA3
MCkgPDwgIkRPTUNTU1N0eWxlRGVjbGFyYXRpb246IHByb3A9IiA8PCBwcm9wIDw8ICIgcHJvcHZh
bHVlPSIgPDwgcHJvcHZhbHVlIDw8IGVuZGw7CiAjZW5kaWYKLSAgICAgIFN0eWxlU2hlZXQqIHN0
eWxlc2hlZXQgPSBzdHlsZURlY2wuc3R5bGVzaGVldCgpOwotICAgICAgLy8gQ29tcHV0ZWQgc3R5
bGUgZGVjbGFyYXRpb25zIGRvbid0IGhhdmUgc3R5bGVzaGVldHMuCi0gICAgICBpZiAoc3R5bGVz
aGVldCkgewotICAgICAgICBBU1NFUlQoc3R5bGVzaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpOwot
ICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0
eWxlc2hlZXQpLT5kb2MoKS0+ZnJhbWUoKSkKLSAgICAgICAgICBpZiAoZnJhbWUtPnNldHRpbmdz
KCktPnNob3VsZFVzZURhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKSkgewotICAg
ICAgICAgICAgc3R5bGVEZWNsLnJlbW92ZVByb3BlcnR5KHByb3AsIGV4Y2VwdGlvbik7Ci0gICAg
ICAgICAgICBpZiAoIWV4Y2VwdGlvbikgewotICAgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGV4
Y2VwdGlvbklnbm9yZWQgPSAwOwotICAgICAgICAgICAgICBzdHlsZURlY2wuc2V0UHJvcGVydHko
cHJvcCwgcHJvcFZhbHVlLCBleGNlcHRpb25JZ25vcmVkKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICB9Ci0gICAgICB9CiAgICAgICBzdHlsZURlY2wuc2V0
UHJvcGVydHkocHJvcCwgcHJvcFZhbHVlLCBleGNlcHRpb24pOwogICAgIH0gZWxzZSB7CiAgICAg
ICBET01PYmplY3Q6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyKTsKSW5kZXg6
IFdlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDE4
NDA1KQorKysgV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw5IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogCiAvLyBOb3QgaW4gYW55IGhlYWRlciwgc28ganVz
dCBkZWNsYXJlIGl0IGhlcmUgZm9yIG5vdy4KQEAgLTI5OCw2ICszMDAsNyBAQCBib29sIENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm9wCiAgICAgZWMgPSAwOwogCiAgICAgLy8gU2V0
dGluZyB0aGUgdmFsdWUgdG8gYW4gZW1wdHkgc3RyaW5nIGp1c3QgcmVtb3ZlcyB0aGUgcHJvcGVy
dHkgaW4gYm90aCBJRSBhbmQgR2Vja28uCisgICAgLy8gU2V0dGluZyBpdCB0byBudWxsIHNlZW1z
IHRvIHByb2R1Y2UgbGVzcyBjb25zaXN0ZW50IHJlc3VsdHMsIGJ1dCB3ZSB0cmVhdCBpdCBqdXN0
IHRoZSBzYW1lLgogICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgcmVtb3ZlUHJv
cGVydHkocHJvcGVydHlJRCwgbm90aWZ5Q2hhbmdlZCwgZWMpOwogICAgICAgICByZXR1cm4gZWMg
PT0gMDsKQEAgLTMwOCw5ICszMTEsMjAgQEAgYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bjo6c2V0UHJvcAogICAgIENTU1BhcnNlciBwYXJzZXIodXNlU3RyaWN0UGFyc2luZygpKTsKICAg
ICBib29sIHN1Y2Nlc3MgPSBwYXJzZXIucGFyc2VWYWx1ZSh0aGlzLCBwcm9wZXJ0eUlELCB2YWx1
ZSwgaW1wb3J0YW50KTsKICAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgZWMgPSBTWU5UQVhf
RVJSOworICAgICAgICAvLyBDU1MgRE9NIHJlcXVpcmVzIHJhaXNpbmcgU1lOVEFYX0VSUiBoZXJl
LCBidXQgdGhpcyBpcyB0b28gZGFuZ2Vyb3VzIGZvciBjb21wYXRpYmlsaXR5LAorICAgICAgICAv
LyBzZWUgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTY+LgorICAg
ICAgICAKKyAgICAgICAgLy8gV2ViS2l0IHVzZWQgdG8gcmVtb3ZlIHRoZSBwcm9wZXJ0eSB3aGVu
IHNldHRpbmcgaXRzIHZhbHVlIHRvIGFuIGludmFsaWQgb25lLgorICAgICAgICAvLyBQcmVzZXJ2
aW5nIHRoaXMgYmVoYXZpb3IgaW4gRGFzaGJvYXJkIG1vZGUgZm9yIGNvbXBhdGliaWxpdHkuCisg
ICAgICAgIFN0eWxlU2hlZXQqIHNoZWV0ID0gc3R5bGVzaGVldCgpOworICAgICAgICBBU1NFUlQo
c2hlZXQpOworICAgICAgICBBU1NFUlQoc2hlZXQtPmlzQ1NTU3R5bGVTaGVldCgpKTsKKyAgICAg
ICAgaWYgKEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihzaGVldCkt
PmRvYygpLT5mcmFtZSgpKQorICAgICAgICAgICAgaWYgKGZyYW1lLT5zZXR0aW5ncygpLT5zaG91
bGRVc2VEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCkpCisgICAgICAgICAgICAg
ICAgcmVtb3ZlUHJvcGVydHkocHJvcGVydHlJRCwgZWMpOwogICAgIH0gZWxzZSBpZiAobm90aWZ5
Q2hhbmdlZCkKICAgICAgICAgc2V0Q2hhbmdlZCgpOworICAgIEFTU0VSVChlYyA9PSAwKTsKICAg
ICByZXR1cm4gc3VjY2VzczsKIH0KIAo=
</data>
<flag name="review"
          id="4404"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12010</attachid>
            <date>2006-12-24 14:36:57 -0800</date>
            <delta_ts>2007-01-04 23:09:58 -0800</delta_ts>
            <desc>without a Dashboard quirk</desc>
            <filename>7296-no-exception.txt</filename>
            <type>text/plain</type>
            <size>6812</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4NDA4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDYtMTItMjQgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTYK
KyAgICAgICAgRGlzYWJsZSBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgd2hlbiBkeW5hbWljYWxseSBj
aGFuZ2luZyBDU1MgcHJvcGVydGllcy4KKworICAgICAgICAqIGZhc3QvZG9tL2Nzcy1zZXQtcHJv
cGVydHktZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9jc3Mtc2V0
LXByb3BlcnR5LWV4Y2VwdGlvbi5odG1sOgorCiAyMDA2LTEyLTI0ICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05ODAxCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3Mtc2V0LXBy
b3BlcnR5LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vY3NzLXNldC1wcm9wZXJ0eS1leGNlcHRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxODQwNSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1zZXQtcHJvcGVydHktZXhjZXB0
aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiwxOCArMiwxNiBAQCBUZXN0IGZv
ciBidWcgNzI5Ni4KIAogVGhpcyB0ZXN0IGNoZWNrcyB0byBzZWUgd2hldGhlciB5b3UgZ2V0IGV4
Y2VwdGlvbnMgd2hlbiBzZXR0aW5nIGEgcHJvcGVydHkgd2l0aCBhICJiYWQgdmFsdWUiLiBTZXR0
aW5nIHVzaW5nIEphdmFTY3JpcHQgcHJvcGVydHkgc3ludGF4IGFuZCB3aXRoIHNldFByb3BlcnR5
KCkgc2hvdWxkIGJlaGF2ZSB0aGUgc2FtZS4KIAotVGhlIHJlc3VsdHMgYmVsb3cgc2hvdWxkIHNo
b3cgc3VjY2VzcywgZXhjZXB0IGZvciBjYXNlcyAyIGFuZCA2LCBpbiB3aGljaCBleGNlcHRpb25z
IHNob3VsZCBiZSByYWlzZWQuCi0KIEl0IGlzIE9LIGlmIHRoZSBvcmRlciBvZiBwcm9wZXJ0aWVz
IGNoYW5nZXMgZnJvbSB0aGUgZXhwZWN0ZWQgcmVzdWx0cyAtIElFIDYgYW5kIEZpcmVmb3ggMiBk
b24ndCBhZ3JlZSBvbiBpdCBhbnl3YXkuCiAKIFRoaXMgaXMgdGhlIHRlc3QgZWxlbWVudC4KIAog
U3VjY2Vzc2Z1bGx5IHNldCBkaXNwbGF5IHRvICJibG9jayI7IGNzc1RleHQgaXMgbm93OiAidG9w
OiAwcHg7IGJvdHRvbTogMXB4OyBkaXNwbGF5OiBibG9jazsgIi4KLUdvdCBleGNlcHRpb24gdHJ5
aW5nIHRvIHNldCBkaXNwbGF5IHRvICJmb29iYXIiOyBjc3NUZXh0IGlzIG5vdzogInRvcDogMHB4
OyBkaXNwbGF5OiBub25lOyBib3R0b206IDFweDsgIi4KK1N1Y2Nlc3NmdWxseSBzZXQgZGlzcGxh
eSB0byAiZm9vYmFyIjsgY3NzVGV4dCBpcyBub3c6ICJ0b3A6IDBweDsgZGlzcGxheTogbm9uZTsg
Ym90dG9tOiAxcHg7ICIuCiBTdWNjZXNzZnVsbHkgc2V0IGRpc3BsYXkgdG8gIiI7IGNzc1RleHQg
aXMgbm93OiAidG9wOiAwcHg7IGJvdHRvbTogMXB4OyAiLgogU3VjY2Vzc2Z1bGx5IHNldCBkaXNw
bGF5IHRvIG51bGw7IGNzc1RleHQgaXMgbm93OiAidG9wOiAwcHg7IGJvdHRvbTogMXB4OyAiLgog
U3VjY2Vzc2Z1bGx5IHNldCBkaXNwbGF5IHRvICJibG9jayIgd2l0aCBzZXRQcm9wZXJ0eTsgY3Nz
VGV4dCBpcyBub3c6ICJ0b3A6IDBweDsgYm90dG9tOiAxcHg7IGRpc3BsYXk6IGJsb2NrOyAiLgot
R290IGV4Y2VwdGlvbiB0cnlpbmcgdG8gc2V0IGRpc3BsYXkgdG8gImZvb2JhciIgd2l0aCBzZXRQ
cm9wZXJ0eTsgY3NzVGV4dCBpcyBub3c6ICJ0b3A6IDBweDsgZGlzcGxheTogbm9uZTsgYm90dG9t
OiAxcHg7ICIuCitTdWNjZXNzZnVsbHkgc2V0IGRpc3BsYXkgdG8gImZvb2JhciIgd2l0aCBzZXRQ
cm9wZXJ0eTsgY3NzVGV4dCBpcyBub3c6ICJ0b3A6IDBweDsgZGlzcGxheTogbm9uZTsgYm90dG9t
OiAxcHg7ICIuCiBTdWNjZXNzZnVsbHkgc2V0IGRpc3BsYXkgdG8gIiIgd2l0aCBzZXRQcm9wZXJ0
eTsgY3NzVGV4dCBpcyBub3c6ICJ0b3A6IDBweDsgYm90dG9tOiAxcHg7ICIuCiBTdWNjZXNzZnVs
bHkgc2V0IGRpc3BsYXkgdG8gbnVsbCB3aXRoIHNldFByb3BlcnR5OyBjc3NUZXh0IGlzIG5vdzog
InRvcDogMHB4OyBib3R0b206IDFweDsgIi4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
Y3NzLXNldC1wcm9wZXJ0eS1leGNlcHRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9jc3Mtc2V0LXByb3BlcnR5LWV4Y2VwdGlvbi5odG1sCShyZXZpc2lvbiAxODQw
NSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1zZXQtcHJvcGVydHktZXhjZXB0aW9uLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDYgQEAgZnVuY3Rpb24gdGVzdCgpCiA8cD5U
ZXN0IGZvciA8YSBocmVmPSJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
Mjk2Ij5idWcgNzI5NjwvYT4uPC9wPgogPHA+VGhpcyB0ZXN0IGNoZWNrcyB0byBzZWUgd2hldGhl
ciB5b3UgZ2V0IGV4Y2VwdGlvbnMgd2hlbiBzZXR0aW5nIGEgcHJvcGVydHkgd2l0aCBhICJiYWQg
dmFsdWUiLgogU2V0dGluZyB1c2luZyBKYXZhU2NyaXB0IHByb3BlcnR5IHN5bnRheCBhbmQgd2l0
aCBzZXRQcm9wZXJ0eSgpIHNob3VsZCBiZWhhdmUgdGhlIHNhbWUuPC9wPgotPHA+VGhlIHJlc3Vs
dHMgYmVsb3cgc2hvdWxkIHNob3cgc3VjY2VzcywgZXhjZXB0IGZvciBjYXNlcyAyIGFuZCA2LCBp
biB3aGljaCBleGNlcHRpb25zIHNob3VsZCBiZSByYWlzZWQuPC9wPgogPFA+SXQgaXMgT0sgaWYg
dGhlIG9yZGVyIG9mIHByb3BlcnRpZXMgY2hhbmdlcyBmcm9tIHRoZSBleHBlY3RlZCByZXN1bHRz
IC0gSUUgNiBhbmQgRmlyZWZveCAyIGRvbid0IGFncmVlIG9uIGl0IGFueXdheS48L3A+CiA8aHI+
CiA8cCBpZD0iZSI+VGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50LjwvcD4KSW5kZXg6IFdlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODQx
MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMDYtMTItMjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTYKKyAgICAgICAgRGlzYWJsZSBKYXZhU2NyaXB0
IGV4Y2VwdGlvbnMgd2hlbiBkeW5hbWljYWxseSBjaGFuZ2luZyBDU1MgcHJvcGVydGllcy4KKwor
ICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19jc3MuY3BwOgorICAgICAgICAoS0pTOjpET01DU1NT
dHlsZURlY2xhcmF0aW9uOjpwdXQpOiBNb3ZlZCB0aGUgRGFzaGJvYXJkIHF1aXJrIGxvZ2ljIGZy
b20gaGVyZSB0byBET00uCisKKyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNl
dFByb3BlcnR5KTogRG9uJ3QgcmFpc2UgYW4gZXhjZXB0aW9uIGlmIHBhcnNpbmcgZmFpbHMuCisg
ICAgICAgIEluIERhc2hib2FyZCBjb21wYXRpYmlsaXR5IG1vZGUsIHN0aWxsIGRvIHJlbW92ZSB0
aGUgcHJvcGVydHkgaW4gdGhpcyBjYXNlLgorCiAyMDA2LTEyLTI0ICBNaXR6IFBldHRlbCAgPG1p
dHpAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogYW5kIEdlb2ZmLgpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfY3NzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL2tqc19jc3MuY3BwCShyZXZpc2lvbiAxODQwNikKKysrIFdlYkNvcmUv
YmluZGluZ3MvanMva2pzX2Nzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAK
ICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTQ1NTUHJp
bWl0aXZlVmFsdWUuaCIKQEAgLTQ0LDcgKzQzLDYgQEAKICNpbmNsdWRlICJKU0NTU1J1bGVMaXN0
LmgiCiAjaW5jbHVkZSAiSlNDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIK
LSNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCiAjaW5j
bHVkZSAia2pzX2RvbS5oIgogCkBAIC0yMjAsMjAgKzIxOCw2IEBAIHZvaWQgRE9NQ1NTU3R5bGVE
ZWNsYXJhdGlvbjo6cHV0KEV4ZWNTdGEKICNpZmRlZiBLSlNfVkVSQk9TRQogICAgICAga2REZWJ1
Zyg2MDcwKSA8PCAiRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbjogcHJvcD0iIDw8IHByb3AgPDwgIiBw
cm9wdmFsdWU9IiA8PCBwcm9wdmFsdWUgPDwgZW5kbDsKICNlbmRpZgotICAgICAgU3R5bGVTaGVl
dCogc3R5bGVzaGVldCA9IHN0eWxlRGVjbC5zdHlsZXNoZWV0KCk7Ci0gICAgICAvLyBDb21wdXRl
ZCBzdHlsZSBkZWNsYXJhdGlvbnMgZG9uJ3QgaGF2ZSBzdHlsZXNoZWV0cy4KLSAgICAgIGlmIChz
dHlsZXNoZWV0KSB7Ci0gICAgICAgIEFTU0VSVChzdHlsZXNoZWV0LT5pc0NTU1N0eWxlU2hlZXQo
KSk7Ci0gICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0
Kj4oc3R5bGVzaGVldCktPmRvYygpLT5mcmFtZSgpKQotICAgICAgICAgIGlmIChmcmFtZS0+c2V0
dGluZ3MoKS0+c2hvdWxkVXNlRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpKSB7
Ci0gICAgICAgICAgICBzdHlsZURlY2wucmVtb3ZlUHJvcGVydHkocHJvcCwgZXhjZXB0aW9uKTsK
LSAgICAgICAgICAgIGlmICghZXhjZXB0aW9uKSB7Ci0gICAgICAgICAgICAgIEV4Y2VwdGlvbkNv
ZGUgZXhjZXB0aW9uSWdub3JlZCA9IDA7Ci0gICAgICAgICAgICAgIHN0eWxlRGVjbC5zZXRQcm9w
ZXJ0eShwcm9wLCBwcm9wVmFsdWUsIGV4Y2VwdGlvbklnbm9yZWQpOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgIH0KLSAgICAgIH0KICAgICAgIHN0eWxlRGVj
bC5zZXRQcm9wZXJ0eShwcm9wLCBwcm9wVmFsdWUsIGV4Y2VwdGlvbik7CiAgICAgfSBlbHNlIHsK
ICAgICAgIERPTU9iamVjdDo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIGF0dHIpOwpJ
bmRleDogV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAkocmV2aXNp
b24gMTg0MDUpCisrKyBXZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5OCw2ICsyOTgsNyBAQCBib29sIENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uOjpzZXRQcm9wCiAgICAgZWMgPSAwOwogCiAgICAgLy8gU2V0dGluZyB0aGUgdmFs
dWUgdG8gYW4gZW1wdHkgc3RyaW5nIGp1c3QgcmVtb3ZlcyB0aGUgcHJvcGVydHkgaW4gYm90aCBJ
RSBhbmQgR2Vja28uCisgICAgLy8gU2V0dGluZyBpdCB0byBudWxsIHNlZW1zIHRvIHByb2R1Y2Ug
bGVzcyBjb25zaXN0ZW50IHJlc3VsdHMsIGJ1dCB3ZSB0cmVhdCBpdCBqdXN0IHRoZSBzYW1lLgog
ICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgcmVtb3ZlUHJvcGVydHkocHJvcGVy
dHlJRCwgbm90aWZ5Q2hhbmdlZCwgZWMpOwogICAgICAgICByZXR1cm4gZWMgPT0gMDsKQEAgLTMw
OCw5ICszMDksMTEgQEAgYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcAog
ICAgIENTU1BhcnNlciBwYXJzZXIodXNlU3RyaWN0UGFyc2luZygpKTsKICAgICBib29sIHN1Y2Nl
c3MgPSBwYXJzZXIucGFyc2VWYWx1ZSh0aGlzLCBwcm9wZXJ0eUlELCB2YWx1ZSwgaW1wb3J0YW50
KTsKICAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgZWMgPSBTWU5UQVhfRVJSOworICAgICAg
ICAvLyBDU1MgRE9NIHJlcXVpcmVzIHJhaXNpbmcgU1lOVEFYX0VSUiBoZXJlLCBidXQgdGhpcyBp
cyB0b28gZGFuZ2Vyb3VzIGZvciBjb21wYXRpYmlsaXR5LAorICAgICAgICAvLyBzZWUgPGh0dHA6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTY+LgogICAgIH0gZWxzZSBpZiAo
bm90aWZ5Q2hhbmdlZCkKICAgICAgICAgc2V0Q2hhbmdlZCgpOworICAgIEFTU0VSVChlYyA9PSAw
KTsKICAgICByZXR1cm4gc3VjY2VzczsKIH0KIAo=
</data>
<flag name="review"
          id="4409"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>