<?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>16923</bug_id>
          
          <creation_ts>2008-01-18 06:11:28 -0800</creation_ts>
          <short_desc>Attr nodes with a value of &quot;&quot; should not have any childNodes</short_desc>
          <delta_ts>2008-05-14 09:22:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael A. Puls II">shadow2531</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>67596</commentid>
    <comment_count>0</comment_count>
    <who name="Michael A. Puls II">shadow2531</who>
    <bug_when>2008-01-18 06:11:28 -0800</bug_when>
    <thetext>In Firefox, Opera and IE, whenever an Attr&apos;s value is &quot;&quot;, the node has no child nodes. In Safari 3.0.5 (525.3) with WebKit-SVN-r29603, this is not the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67597</commentid>
    <comment_count>1</comment_count>
      <attachid>18528</attachid>
    <who name="Michael A. Puls II">shadow2531</who>
    <bug_when>2008-01-18 06:13:05 -0800</bug_when>
    <thetext>Created attachment 18528
TC

Opera, Firefox and IE pass. Safari does not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67659</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-01-18 23:18:56 -0800</bug_when>
    <thetext>Does this affect any real life sites?

While we probably want to match other browsers, it seems weird that an empty (not null) attribute is special.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67664</commentid>
    <comment_count>3</comment_count>
    <who name="Michael A. Puls II">shadow2531</who>
    <bug_when>2008-01-18 23:49:03 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Does this affect any real life sites?

Not sure. However, when checking out Test 10 of Acid3 (and doing some TCs that are not in there), I realized that webkit has this problem.

&gt; While we probably want to match other browsers, it seems weird that an empty
&gt; (not null) attribute is special.

Element.textContent = &quot;&quot; removes all nodes from the element.
Attr.textContent = &quot;&quot; removes all nodes from the Attr (in Safari also).

It probably makes sense for Attr.value = &quot;&quot; to be consistent and do the same as Attr.textContent = &quot;&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67669</commentid>
    <comment_count>4</comment_count>
    <who name="Michael A. Puls II">shadow2531</who>
    <bug_when>2008-01-19 00:55:53 -0800</bug_when>
    <thetext>At &lt; http://trac.webkit.org/projects/webkit/browser/trunk/WebCore/dom/Attr.cpp#L118 &gt;, I see removeChildren() and then right after that I see that a textNode is always appended even if v is empty.

Would something like:
 
if (!v.isEmpty()) {
    appendChild(document()-&gt;createTextNode(v), e)
    // whatever else needs to be moved to this condition
}

fix it?

It&apos;s basically what setTextContent does at &lt; http://trac.webkit.org/projects/webkit/browser/trunk/WebCore/dom/Node.cpp#L1561 &gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67720</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-01-19 11:15:36 -0800</bug_when>
    <thetext>Yes, this looks quite reasonable.

I&apos;d try to use Attr::createTextChild() here. Also, the test case needs to verify what happens to attributes created by the parser - since we only create Attr nodes on demand, the relationship between Attr and Attribute is tricky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67725</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-01-19 11:59:35 -0800</bug_when>
    <thetext>Confirmed with a local debug build of ToT WebKit.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67767</commentid>
    <comment_count>7</comment_count>
    <who name="Michael A. Puls II">shadow2531</who>
    <bug_when>2008-01-19 20:59:25 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Also, the test case needs to
&gt; verify what happens to attributes created by the parser - since we only create
&gt; Attr nodes on demand, the relationship between Attr and Attribute is tricky.

I&apos;ll make a better TC that covers that.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67771</commentid>
    <comment_count>8</comment_count>
      <attachid>18561</attachid>
    <who name="Michael A. Puls II">shadow2531</who>
    <bug_when>2008-01-19 22:12:37 -0800</bug_when>
    <thetext>Created attachment 18561
TC that tests both new Attrs and parsed Attrs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67774</commentid>
    <comment_count>9</comment_count>
      <attachid>18562</attachid>
    <who name="Michael A. Puls II">shadow2531</who>
    <bug_when>2008-01-20 00:16:46 -0800</bug_when>
    <thetext>Created attachment 18562
Another one that only tests a parsed Attr.

And, I also made &lt; http://shadow2531.com/opera/testcases/attr/suite0.html &gt; that you can test with.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79483</commentid>
    <comment_count>10</comment_count>
    <who name="Michael A. Puls II">shadow2531</who>
    <bug_when>2008-05-02 14:35:32 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Yes, this looks quite reasonable.
&gt; 
&gt; I&apos;d try to use Attr::createTextChild() here. Also, the test case needs to
&gt; verify what happens to attributes created by the parser - since we only create
&gt; Attr nodes on demand, the relationship between Attr and Attribute is tricky.

Well, I tried:

if (!v.isEmpty())
    appendChild(document()-&gt;createTextNode(v), e);

and that seems to do the trick.

Now, if I use createTextChild instead like you suggest, does that mean I have to put:
if (!v.isEmpty())
    createTextChild()

*after*, the m_attribute-&gt;setValue(v.impl()); line?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79653</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-05-04 22:49:23 -0700</bug_when>
    <thetext>Yes, it would need to be called after the value is set (but there is no need to check that v is not empty then - createTextChild() does that internally).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79660</commentid>
    <comment_count>12</comment_count>
      <attachid>20968</attachid>
    <who name="Michael A. Puls II">shadow2531</who>
    <bug_when>2008-05-05 00:36:27 -0700</bug_when>
    <thetext>Created attachment 20968
Example patch

(In reply to comment #11)
&gt; Yes, it would need to be called after the value is set (but there is no need to
&gt; check that v is not empty then - createTextChild() does that internally).
&gt;

Oops, thanks. So, the attached changes would be O.K.?

They make the 2 TCs pass and make &lt;http://shadow2531.com/opera/testcases/attr/suite0.html&gt; score 100% (in the Midori browser). (Not sure how to build the jscore tests etc. on linux, so I didn&apos;t do any of that.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79667</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-05-05 03:45:22 -0700</bug_when>
    <thetext>Yes, this looks reasonable to me. Could you please make a patch with the code changes, ChangeLogs and tests, and mark it for review? There are some guidelines and tools mentioned at &lt;http://webkit.org/coding/contributing.html&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80206</commentid>
    <comment_count>14</comment_count>
      <attachid>21091</attachid>
    <who name="Michael A. Puls II">shadow2531</who>
    <bug_when>2008-05-12 11:02:45 -0700</bug_when>
    <thetext>Created attachment 21091
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80353</commentid>
    <comment_count>15</comment_count>
      <attachid>21091</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-05-14 09:09:56 -0700</bug_when>
    <thetext>Comment on attachment 21091
Proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80357</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-05-14 09:22:01 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/33442&gt;.

I made the ChangeLog a bit shorter when committing, as people can always go to Bugzilla for additional details.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>18528</attachid>
            <date>2008-01-18 06:13:05 -0800</date>
            <delta_ts>2008-01-18 06:13:33 -0800</delta_ts>
            <desc>TC</desc>
            <filename>webkit_attr_empty.html</filename>
            <type>text/html</type>
            <size>643</size>
            <attacher name="Michael A. Puls II">shadow2531</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogICAgPGhlYWQ+CiAgICAgICAgPHRpdGxlPkF0dHIgbm9k
ZXMgd2l0aCBhIHZhbHVlIG9mICIiIHNob3VsZCBub3QgaGF2ZSBhbnkgY2hpbGROb2RlczwvdGl0
bGU+CiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgdmFyIGF0dHIgPSBkb2N1bWVudC5jcmVhdGVBdHRyaWJ1dGUo
ImZvbyIpOwogICAgICAgICAgICAgICAgYXR0ci52YWx1ZSA9ICIiOwogICAgICAgICAgICAgICAg
dmFyIHRlc3QxID0gIWF0dHIuaGFzQ2hpbGROb2RlcygpOwogICAgICAgICAgICAgICAgYXR0ci52
YWx1ZSA9ICJ6aXB6YW1iYW0iOwogICAgICAgICAgICAgICAgYXR0ci52YWx1ZSA9ICIiOwogICAg
ICAgICAgICAgICAgdmFyIHRlc3QyID0gIWF0dHIuaGFzQ2hpbGROb2RlcygpOwogICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSB0ZXN0MSAmJiB0ZXN0MiA/ICJQQVNTIiA6
ICJGQUlMIjsKICAgICAgICAgICAgfTsKICAgICAgICA8L3NjcmlwdD4KICAgIDwvaGVhZD4KICAg
IDxib2R5PgogICAgICAgIDxwPlRoaXMgdGVzdCByZXF1aXJlcyBKYXZhc2NyaXB0LjwvcD4KICAg
IDwvYm9keT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>18561</attachid>
            <date>2008-01-19 22:12:37 -0800</date>
            <delta_ts>2008-01-19 22:12:37 -0800</delta_ts>
            <desc>TC that tests both new Attrs and parsed Attrs</desc>
            <filename>webkit_attr_empty2.html</filename>
            <type>text/html</type>
            <size>2543</size>
            <attacher name="Michael A. Puls II">shadow2531</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCiAgICA8aGVhZD4NCiAgICAgICAgPHRpdGxlPkF0dHIg
ZW1wdHkgdmFsdWUgdGVzdHM8L3RpdGxlPg0KICAgICAgICA8c2NyaXB0Pg0KICAgICAgICAgICAg
Ly8gT3BlcmEgZG9lc24ndCB1c2UgY2hpbGQgdGV4dCBub2RlcyBvbiBBdHRycyB5ZXQsIHNvIGl0
IHdpbGwgZmFpbCB0aGUgaGFzQ2hpbGROb2RlcyB0ZXN0cyBmb3Igbm9uLWVtcHR5IHZhbHVlcy4N
CiAgICAgICAgICAgIC8vIFRoaXMgd2lsbCB3b3JrYXJvdW5kIG9ubHkgdGhhdCBwcm9ibGVtIHNv
IGl0IGRvZXNuJ3QgYWZmZWN0IGNvbXBhcmlzb24gd2l0aCBPcGVyYS4NCiAgICAgICAgICAgIC8v
IE9yLCBqdXN0IGNvbXBhcmUgd2l0aCBGaXJlZm94IGFzIGl0IGRvZXNuJ3QgaGF2ZSB0aGF0IHBy
b2JsZW0uDQogICAgICAgICAgICBmdW5jdGlvbiBoYXNDaGlsZE5vZGVzKGF0dHIpIHsNCiAgICAg
ICAgICAgICAgICBpZiAod2luZG93Lm9wZXJhICYmIGF0dHIudmFsdWUgIT0gIiIpIHsNCiAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAg
ICAgICAgIHJldHVybiBhdHRyLmhhc0NoaWxkTm9kZXMoKTsNCiAgICAgICAgICAgIH0NCiAgICAg
ICAgICAgIA0KICAgICAgICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICAg
ICAgICAgICAgIHZhciBuZXdBdHRyID0gZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKCJmb28iKTsN
CiAgICAgICAgICAgICAgICB2YXIgdGVzdDEgPSBuZXdBdHRyLnZhbHVlID09ICIiICYmICFoYXND
aGlsZE5vZGVzKG5ld0F0dHIpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIG5l
d0F0dHIudmFsdWUgPSAiIjsNCiAgICAgICAgICAgICAgICB2YXIgdGVzdDIgPSBuZXdBdHRyLnZh
bHVlID09ICIiICYmICFoYXNDaGlsZE5vZGVzKG5ld0F0dHIpOzsNCiAgICAgICAgICAgICAgICAN
CiAgICAgICAgICAgICAgICBuZXdBdHRyLnZhbHVlID0gImJhciI7DQogICAgICAgICAgICAgICAg
dmFyIHRlc3QzID0gbmV3QXR0ci52YWx1ZSA9PSAiYmFyIiAmJiBoYXNDaGlsZE5vZGVzKG5ld0F0
dHIpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIG5ld0F0dHIudmFsdWUgPSAi
IjsNCiAgICAgICAgICAgICAgICB2YXIgdGVzdDQgPSBuZXdBdHRyLnZhbHVlID09ICIiICYmICFo
YXNDaGlsZE5vZGVzKG5ld0F0dHIpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAg
IHZhciBwYXJzZWRBdHRyID0gZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpOw0K
ICAgICAgICAgICAgICAgIHZhciB0ZXN0NSA9IHBhcnNlZEF0dHIudmFsdWUgPT0gIiIgJiYgIWhh
c0NoaWxkTm9kZXMocGFyc2VkQXR0cik7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAg
ICAgcGFyc2VkQXR0ci52YWx1ZSA9ICIiOw0KICAgICAgICAgICAgICAgIHZhciB0ZXN0NiA9IHBh
cnNlZEF0dHIudmFsdWUgPT0gIiIgJiYgIWhhc0NoaWxkTm9kZXMocGFyc2VkQXR0cik7DQogICAg
ICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgcGFyc2VkQXR0ci52YWx1ZSA9ICJiYXIiOw0K
ICAgICAgICAgICAgICAgIHZhciB0ZXN0NyA9IHBhcnNlZEF0dHIudmFsdWUgPT0gImJhciIgJiYg
aGFzQ2hpbGROb2RlcyhwYXJzZWRBdHRyKTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAg
ICAgICBwYXJzZWRBdHRyLnZhbHVlID0gIiI7DQogICAgICAgICAgICAgICAgdmFyIHRlc3Q4ID0g
cGFyc2VkQXR0ci52YWx1ZSA9PSAiIiAmJiAhaGFzQ2hpbGROb2RlcyhwYXJzZWRBdHRyKTsNCiAg
ICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICB2YXIgcGFyc2VkQXR0ck5vbkVtcHR5ID0g
ZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGVOb2RlKCJjbGFzcyIpOw0KICAgICAgICAgICAgICAg
IHZhciB0ZXN0OSA9IHBhcnNlZEF0dHJOb25FbXB0eS52YWx1ZSA9PSAidGVzdCIgJiYgaGFzQ2hp
bGROb2RlcyhwYXJzZWRBdHRyTm9uRW1wdHkpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAg
ICAgICAgIHBhcnNlZEF0dHJOb25FbXB0eS52YWx1ZSA9ICIiOw0KICAgICAgICAgICAgICAgIHZh
ciB0ZXN0MTAgPSBwYXJzZWRBdHRyTm9uRW1wdHkudmFsdWUgPT0gIiIgJiYgIWhhc0NoaWxkTm9k
ZXMocGFyc2VkQXR0ck5vbkVtcHR5KTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAg
ICB2YXIgcmVzdWx0ID0gdGVzdDEgJiYgdGVzdDIgJiYgdGVzdDMgJiYgdGVzdDQgJiYgdGVzdDUg
JiYgdGVzdDYgJiYgdGVzdDcgJiYgdGVzdDggJiYgdGVzdDkgJiYgdGVzdDEwOw0KICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gcmVzdWx0ID8gIlBBU1MiIDogIkZBSUwi
Ow0KICAgICAgICAgICAgfTsNCiAgICAgICAgPC9zY3JpcHQ+DQogICAgPC9oZWFkPg0KICAgIDxi
b2R5IGlkPSIiIGNsYXNzPSJ0ZXN0Ij4NCiAgICAgICAgPHA+VGhpcyB0ZXN0IHJlcXVpcmVzIEph
dmFzY3JpcHQuPC9wPg0KICAgIDwvYm9keT4NCjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>18562</attachid>
            <date>2008-01-20 00:16:46 -0800</date>
            <delta_ts>2008-01-20 00:16:46 -0800</delta_ts>
            <desc>Another one that only tests a parsed Attr.</desc>
            <filename>webkit_attr_empty3.html</filename>
            <type>text/html</type>
            <size>810</size>
            <attacher name="Michael A. Puls II">shadow2531</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCiAgICA8aGVhZD4NCiAgICAgICAgPHRpdGxlPkF0dHIg
ZW1wdHkgdmFsdWUgdGVzdHM8L3RpdGxlPg0KICAgICAgICA8c2NyaXB0Pg0KICAgICAgICAgICAg
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIHZhciBwYXJzZWRB
dHRyID0gZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpOw0KICAgICAgICAgICAg
ICAgIHZhciB0ZXN0MSA9IHBhcnNlZEF0dHIudmFsdWUgPT0gIiIgJiYgIXBhcnNlZEF0dHIuaGFz
Q2hpbGROb2RlcygpOw0KICAgICAgICAgICAgICAgIHBhcnNlZEF0dHIudmFsdWUgPSAiIjsNCiAg
ICAgICAgICAgICAgICB2YXIgdGVzdDIgPSBwYXJzZWRBdHRyLnZhbHVlID09ICIiICYmICFwYXJz
ZWRBdHRyLmhhc0NoaWxkTm9kZXMoKTsNCiAgICAgICAgICAgICAgICBwYXJzZWRBdHRyLnZhbHVl
ID0gImJhciI7DQogICAgICAgICAgICAgICAgcGFyc2VkQXR0ci52YWx1ZSA9ICIiOw0KICAgICAg
ICAgICAgICAgIHZhciB0ZXN0MyA9IHBhcnNlZEF0dHIudmFsdWUgPT0gIiIgJiYgIXBhcnNlZEF0
dHIuaGFzQ2hpbGROb2RlcygpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJI
VE1MID0gdGVzdDEgJiYgdGVzdDIgJiYgdGVzdDMgPyAiUEFTUyIgOiAiRkFJTCI7DQogICAgICAg
ICAgICB9Ow0KICAgICAgICA8L3NjcmlwdD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHkgaWQ9IiI+
DQogICAgICAgIDxwPlRoaXMgdGVzdCByZXF1aXJlcyBKYXZhc2NyaXB0LjwvcD4NCiAgICA8L2Jv
ZHk+DQo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20968</attachid>
            <date>2008-05-05 00:36:27 -0700</date>
            <delta_ts>2008-05-05 00:36:27 -0700</delta_ts>
            <desc>Example patch</desc>
            <filename>Attr-r32698.cpp.diff</filename>
            <type>text/plain</type>
            <size>770</size>
            <attacher name="Michael A. Puls II">shadow2531</attacher>
            
              <data encoding="base64">LS0tIEF0dHItcjMyNjk4LmNwcC5vbGQJMjAwOC0wNC0yOCAxOTowNDo0Ny4wMDAwMDAwMDAgLTA0
MDAKKysrIEF0dHItcjMyNjk4LmNwcC5uZXcJMjAwOC0wNS0wNSAwMzowMjo1MC4wMDAwMDAwMDAg
LTA0MDAKQEAgLTEwNSw3ICsxMDUsNyBAQAogewogICAgIGVjID0gMDsKIAotICAgIC8vIGRvIG5v
dCBpbnRlcnByZXRlIGVudGl0aWVzIGluIHRoZSBzdHJpbmcsIGl0cyBsaXRlcmFsIQorICAgIC8v
IGRvIG5vdCBpbnRlcnByZXQgZW50aXRpZXMgaW4gdGhlIHN0cmluZywgaXQncyBsaXRlcmFsIQog
CiAgICAgLy8gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOiBSYWlzZWQgd2hlbiB0aGUgbm9k
ZSBpcyByZWFkb25seQogICAgIGlmIChpc1JlYWRPbmx5Tm9kZSgpKSB7CkBAIC0xMTMsMTMgKzEx
MywxMiBAQAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IGUgPSAwOwogICAgIG1f
aWdub3JlQ2hpbGRyZW5DaGFuZ2VkKys7CiAgICAgcmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBhcHBl
bmRDaGlsZChkb2N1bWVudCgpLT5jcmVhdGVUZXh0Tm9kZSh2KSwgZSk7Ci0gICAgbV9pZ25vcmVD
aGlsZHJlbkNoYW5nZWQtLTsKLSAgICAKICAgICBtX2F0dHJpYnV0ZS0+c2V0VmFsdWUodi5pbXBs
KCkpOworICAgIGNyZWF0ZVRleHRDaGlsZCgpOworICAgIG1faWdub3JlQ2hpbGRyZW5DaGFuZ2Vk
LS07CisKICAgICBpZiAobV9lbGVtZW50KQogICAgICAgICBtX2VsZW1lbnQtPmF0dHJpYnV0ZUNo
YW5nZWQobV9hdHRyaWJ1dGUuZ2V0KCkpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21091</attachid>
            <date>2008-05-12 11:02:45 -0700</date>
            <delta_ts>2008-05-14 09:09:56 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>Attr.cpp.diff</filename>
            <type>text/plain</type>
            <size>8897</size>
            <attacher name="Michael A. Puls II">shadow2531</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMzA0NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMDgtMDUtMTIgIE1pY2hhZWwgQS4gUHVscyBJSSAgPHNoYWRvdzI1
MzFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
OTIzIAorICAgICAgICBBdHRyIG5vZGVzIHdpdGggYSB2YWx1ZSBvZiAiIiBzaG91bGQgbm90IGhh
dmUgYW55IGNoaWxkTm9kZXMKKyAgICAgICAgCisgICAgICAgIEluIE9wZXJhLCBGaXJlZm94IGFu
ZCBJRSwgd2hlbiBhbiBhdHRyaWJ1dGUgbm9kZSBoYXMgYSB2YWx1ZQorICAgICAgICBvZiAiIiwg
dGhlIGF0dHJpYnV0ZSBub2RlIGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGROb2Rlcy4gVGhpcworICAg
ICAgICBpcyB0cnVlIGluIFdlYktpdCBhbHNvLCBidXQgbm90IHdoZW4geW91IGFzc2lnbiAiIiB0
byB0aGUKKyAgICAgICAgQXR0cidzIHZhbHVlIHdoZW4gdGhlIGV4aXN0aW5nIHZhbHVlIGlzIG5v
bi1lbXB0eS4KKyAgICAgICAgCisgICAgICAgIFRoZSByZWFzb24gZm9yIFdlYktpdCdzIGJlaGF2
aW9yIGlzIHRoYXQsIHdoZW4gYXNzaWduaW5nIGEgCisgICAgICAgIHZhbHVlLCBXZWJLaXQgYWx3
YXlzIGFwcGVuZHMgYSBjaGlsZCB0ZXh0IG5vZGUgYWZ0ZXIgcmVtb3ZpbmcKKyAgICAgICAgYWxs
IHRoZSBjaGlsZHJlbi4KKyAgICAgICAgCisgICAgICAgIFRoaXMgZml4IGNoYW5nZXMgdG8gdXNp
bmcgY3JlYXRlVGV4dENoaWxkKCksIHdoaWNoIG9ubHkgYXBwZW5kcyAKKyAgICAgICAgYSBjaGls
ZCB0ZXh0IG5vZGUgaWYgdGhlIHZhbHVlIGJlaW5nIGFzc2lnbmVkIGlzIG5vdCBlbXB0eS4KKyAg
ICAgICAgCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL2F0dHJpYnV0ZS1lbXB0eS12YWx1ZS1uby1j
aGlsZHJlbi5odG1sCisKKyAgICAgICAgKiBkb20vQXR0ci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdHRyOjpzZXRWYWx1ZSk6CisKIDIwMDgtMDUtMTIgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFdpbmRvd3MgYnVpbGQgZml4CkluZGV4OiBXZWJDb3JlL2RvbS9B
dHRyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9BdHRyLmNwcAkocmV2aXNpb24gMzMw
MzEpCisrKyBXZWJDb3JlL2RvbS9BdHRyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDcgKzEw
NSw3IEBAIHZvaWQgQXR0cjo6c2V0VmFsdWUoIGNvbnN0IFN0cmluZyYgdiwgRXgKIHsKICAgICBl
YyA9IDA7CiAKLSAgICAvLyBkbyBub3QgaW50ZXJwcmV0ZSBlbnRpdGllcyBpbiB0aGUgc3RyaW5n
LCBpdHMgbGl0ZXJhbCEKKyAgICAvLyBkbyBub3QgaW50ZXJwcmV0IGVudGl0aWVzIGluIHRoZSBz
dHJpbmcsIGl0J3MgbGl0ZXJhbCEKIAogICAgIC8vIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VS
UjogUmFpc2VkIHdoZW4gdGhlIG5vZGUgaXMgcmVhZG9ubHkKICAgICBpZiAoaXNSZWFkT25seU5v
ZGUoKSkgewpAQCAtMTEzLDEzICsxMTMsMTIgQEAgdm9pZCBBdHRyOjpzZXRWYWx1ZSggY29uc3Qg
U3RyaW5nJiB2LCBFeAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IGUgPSAwOwog
ICAgIG1faWdub3JlQ2hpbGRyZW5DaGFuZ2VkKys7CiAgICAgcmVtb3ZlQ2hpbGRyZW4oKTsKLSAg
ICBhcHBlbmRDaGlsZChkb2N1bWVudCgpLT5jcmVhdGVUZXh0Tm9kZSh2KSwgZSk7Ci0gICAgbV9p
Z25vcmVDaGlsZHJlbkNoYW5nZWQtLTsKLSAgICAKICAgICBtX2F0dHJpYnV0ZS0+c2V0VmFsdWUo
di5pbXBsKCkpOworICAgIGNyZWF0ZVRleHRDaGlsZCgpOworICAgIG1faWdub3JlQ2hpbGRyZW5D
aGFuZ2VkLS07CisKICAgICBpZiAobV9lbGVtZW50KQogICAgICAgICBtX2VsZW1lbnQtPmF0dHJp
YnV0ZUNoYW5nZWQobV9hdHRyaWJ1dGUuZ2V0KCkpOwogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMzMw
NDYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NSBAQAorMjAwOC0wNS0xMiAgTWljaGFlbCBBLiBQdWxzIElJICA8c2hhZG93MjUzMUBnbWFpbC5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTIzCisgICAg
ICAgIAorICAgICAgICBUZXN0IHRoYXQgQXR0ciBub2RlcyB3aXRoIGEgdmFsdWUgb2YgIiIgZG9u
J3QgaGF2ZSBhbnkKKyAgICAgICAgY2hpbGROb2RlcyBsaWtlIEZpcmVmb3gsIE9wZXJhIGFuZCBJ
RS4KKyAgICAgICAgCisgICAgICAgICogZmFzdC9kb20vYXR0cmlidXRlLWVtcHR5LXZhbHVlLW5v
LWNoaWxkcmVuLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vYXR0cmli
dXRlLWVtcHR5LXZhbHVlLW5vLWNoaWxkcmVuLmh0bWw6IEFkZGVkLgorCiAyMDA4LTA1LTA5ICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBS
b3dlLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vYXR0cmlidXRlLWVtcHR5LXZhbHVlLW5v
LWNoaWxkcmVuLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9hdHRyaWJ1dGUtZW1wdHktdmFsdWUtbm8tY2hpbGRyZW4tZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vYXR0cmlidXRlLWVtcHR5LXZhbHVlLW5vLWNo
aWxkcmVuLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorQXR0ciBl
bXB0eSB2YWx1ZSB0ZXN0cyBCdWcgMTY5MjMKKworSW4gT3BlcmEsIEZpcmVmb3ggYW5kIElFLCB3
aGVuIGFuIEF0dHIncyB2YWx1ZSBpcyBhbiBlbXB0eSBzdHJpbmcsIHRoZSBBdHRyIG5vZGUgd29u
J3QgaGF2ZSBhbnkgY2hpbGROb2Rlcy4gVGhlIGZvbGxvd2luZyAxMiB0ZXN0cyB3aWxsIHNlZSBp
ZiB0aGlzIGlzIHRydWUgZm9yIFdlYktpdCBmb3IgYm90aCBwYXJzZWQgYW5kIGR5bmFtaWNhbGx5
LWNyZWF0ZWQgQXR0ciBub2Rlcy4gVGhlIHRlc3RzIHVzZSBtdWx0aXBsZSBtZXRob2RzIG9mIGNo
YW5naW5nIHRoZSBBdHRyJ3MgdmFsdWUgYW5kIGV2ZW4gdGVzdCByZXZlcnRpbmcgZnJvbSBhIG5v
bi1lbXB0eSB2YWx1ZSB0byBhbiBlbXB0eSBvbmUgdG8gY2hlY2sgdGhhdCBhbGwgY2hpbGROb2Rl
cyB3ZXJlIHJlbW92ZWQuIFNvbWUgb2YgdGhlIHRlc3RzIG1ha2UgdXNlIG9mIC50ZXh0Q29udGVu
dCwgc28gdGhpcyB0ZXN0IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggSUUuIE9wZXJhIGFuZCBGaXJl
Zm94IGJvdGggY29tcGxldGVseSBwYXNzIHRoaXMgdGVzdC4KKworU3ViVGVzdCAxID0gUEFTUwor
U3ViVGVzdCAyID0gUEFTUworU3ViVGVzdCAzID0gUEFTUworU3ViVGVzdCA0ID0gUEFTUworU3Vi
VGVzdCA1ID0gUEFTUworU3ViVGVzdCA2ID0gUEFTUworU3ViVGVzdCA3ID0gUEFTUworU3ViVGVz
dCA4ID0gUEFTUworU3ViVGVzdCA5ID0gUEFTUworU3ViVGVzdCAxMCA9IFBBU1MKK1N1YlRlc3Qg
MTEgPSBQQVNTCitTdWJUZXN0IDEyID0gUEFTUworQ29tcGxldGUgVGVzdCA9IFBBU1MKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL2F0dHJpYnV0ZS1lbXB0eS12YWx1ZS1uby1jaGlsZHJlbi5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL2F0dHJpYnV0ZS1lbXB0eS12
YWx1ZS1uby1jaGlsZHJlbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vYXR0cmlidXRlLWVtcHR5LXZhbHVlLW5vLWNoaWxkcmVuLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsOTIgQEAKKzwhRE9DVFlQRSBodG1sPg0KKzxodG1sPg0KKyAgICA8aGVhZD4NCisg
ICAgICAgIDx0aXRsZT5BdHRyIGVtcHR5IHZhbHVlIHRlc3RzPC90aXRsZT4NCisgICAgICAgIDxz
Y3JpcHQ+DQorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgew0K
KyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQorICAg
ICAgICAgICAgfQ0KKyAgICAgICAgICAgIGZ1bmN0aW9uIGlzUmVhbGx5RW1wdHkoYXR0cikgew0K
KyAgICAgICAgICAgICAgICByZXR1cm4gYXR0ci52YWx1ZSA9PT0gIiINCisgICAgICAgICAgICAg
ICAgJiYgYXR0ci5ub2RlVmFsdWUgPT09ICIiDQorICAgICAgICAgICAgICAgICYmIGF0dHIudGV4
dENvbnRlbnQgPT09ICIiDQorICAgICAgICAgICAgICAgICYmIGF0dHIuaGFzQ2hpbGROb2Rlcygp
ID09PSBmYWxzZQ0KKyAgICAgICAgICAgICAgICAmJiBhdHRyLmZpcnN0Q2hpbGQgPT09IG51bGwN
CisgICAgICAgICAgICAgICAgJiYgYXR0ci5sYXN0Q2hpbGQgPT09IG51bGwNCisgICAgICAgICAg
ICAgICAgJiYgYXR0ci5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMDsNCisgICAgICAgICAgICB9DQor
ICAgICAgICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KKyAgICAgICAgICAgICAg
ICB2YXIgdGVzdHMgPSBbXTsNCisgICAgICAgICAgICAgICAgdmFyIGR5bmFtaWNBdHRyID0gZG9j
dW1lbnQuY3JlYXRlQXR0cmlidXRlKCJmb28iKTsNCisgICAgICAgICAgICAgICAgdGVzdHNbMF0g
PSBpc1JlYWxseUVtcHR5KGR5bmFtaWNBdHRyKTsNCisNCisgICAgICAgICAgICAgICAgZHluYW1p
Y0F0dHIudmFsdWUgPSAiIjsNCisgICAgICAgICAgICAgICAgdGVzdHNbMV0gPSBpc1JlYWxseUVt
cHR5KGR5bmFtaWNBdHRyKTsNCisNCisgICAgICAgICAgICAgICAgZHluYW1pY0F0dHIudmFsdWUg
PSAiYmFyIjsNCisgICAgICAgICAgICAgICAgZHluYW1pY0F0dHIudmFsdWUgPSAiIjsNCisgICAg
ICAgICAgICAgICAgdGVzdHNbMl0gPSBpc1JlYWxseUVtcHR5KGR5bmFtaWNBdHRyKTsNCisNCisg
ICAgICAgICAgICAgICAgZHluYW1pY0F0dHIudGV4dENvbnRlbnQgPSAiYmFyIjsNCisgICAgICAg
ICAgICAgICAgZHluYW1pY0F0dHIudGV4dENvbnRlbnQgPSAiIjsNCisgICAgICAgICAgICAgICAg
dGVzdHNbM10gPSBpc1JlYWxseUVtcHR5KGR5bmFtaWNBdHRyKTsNCisNCisgICAgICAgICAgICAg
ICAgdmFyIHBhcnNlZEF0dHIgPSBkb2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZU5vZGUoImlkIik7
DQorICAgICAgICAgICAgICAgIHRlc3RzWzRdID0gaXNSZWFsbHlFbXB0eShwYXJzZWRBdHRyKTsN
CisNCisgICAgICAgICAgICAgICAgcGFyc2VkQXR0ci52YWx1ZSA9ICIiOw0KKyAgICAgICAgICAg
ICAgICB0ZXN0c1s1XSA9IGlzUmVhbGx5RW1wdHkocGFyc2VkQXR0cik7DQorDQorICAgICAgICAg
ICAgICAgIHBhcnNlZEF0dHIudmFsdWUgPSAiYmFyIjsNCisgICAgICAgICAgICAgICAgcGFyc2Vk
QXR0ci52YWx1ZSA9ICIiOw0KKyAgICAgICAgICAgICAgICB0ZXN0c1s2XSA9IGlzUmVhbGx5RW1w
dHkocGFyc2VkQXR0cik7DQorDQorICAgICAgICAgICAgICAgIHBhcnNlZEF0dHIudGV4dENvbnRl
bnQgPSAiYmFyIjsNCisgICAgICAgICAgICAgICAgcGFyc2VkQXR0ci50ZXh0Q29udGVudCA9ICIi
Ow0KKyAgICAgICAgICAgICAgICB0ZXN0c1s3XSA9IGlzUmVhbGx5RW1wdHkocGFyc2VkQXR0cik7
DQorDQorICAgICAgICAgICAgICAgIHZhciBwYXJzZWRBdHRySW50aXRpYWxseU5vbkVtcHR5ID0g
ZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGVOb2RlKCJjbGFzcyIpOw0KKyAgICAgICAgICAgICAg
ICBwYXJzZWRBdHRySW50aXRpYWxseU5vbkVtcHR5LnZhbHVlID0gIiI7DQorICAgICAgICAgICAg
ICAgIHRlc3RzWzhdID0gaXNSZWFsbHlFbXB0eShwYXJzZWRBdHRySW50aXRpYWxseU5vbkVtcHR5
KTsNCisNCisgICAgICAgICAgICAgICAgcGFyc2VkQXR0ckludGl0aWFsbHlOb25FbXB0eS50ZXh0
Q29udGVudCA9ICJiYXIiOw0KKyAgICAgICAgICAgICAgICBwYXJzZWRBdHRySW50aXRpYWxseU5v
bkVtcHR5LnRleHRDb250ZW50ID0gIiI7DQorICAgICAgICAgICAgICAgIHRlc3RzWzldID0gaXNS
ZWFsbHlFbXB0eShwYXJzZWRBdHRySW50aXRpYWxseU5vbkVtcHR5KTsNCisNCisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoInRpdGxlIiwgIiIpOw0KKw0KKyAgICAg
ICAgICAgICAgICB2YXIgcGFyc2VkQXR0ck5vZGVDaGFuZ2VkVG9FbXB0eUJ5U2V0QXR0cmlidXRl
ID0gZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGVOb2RlKCJ0aXRsZSIpOw0KKyAgICAgICAgICAg
ICAgICB0ZXN0c1sxMF0gPSBpc1JlYWxseUVtcHR5KHBhcnNlZEF0dHJOb2RlQ2hhbmdlZFRvRW1w
dHlCeVNldEF0dHJpYnV0ZSk7DQorDQorICAgICAgICAgICAgICAgIHBhcnNlZEF0dHJOb2RlQ2hh
bmdlZFRvRW1wdHlCeVNldEF0dHJpYnV0ZS50ZXh0Q29udGVudCA9ICJiYXIiOw0KKyAgICAgICAg
ICAgICAgICBwYXJzZWRBdHRyTm9kZUNoYW5nZWRUb0VtcHR5QnlTZXRBdHRyaWJ1dGUudGV4dENv
bnRlbnQgPSAiIjsNCisgICAgICAgICAgICAgICAgdGVzdHNbMTFdID0gaXNSZWFsbHlFbXB0eShw
YXJzZWRBdHRyTm9kZUNoYW5nZWRUb0VtcHR5QnlTZXRBdHRyaWJ1dGUpOw0KKw0KKyAgICAgICAg
ICAgICAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwIilb
MV07DQorICAgICAgICAgICAgICAgIHdoaWxlIChyZXN1bHRzLmhhc0NoaWxkTm9kZXMoKSkgew0K
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5yZW1vdmVDaGlsZChyZXN1bHRzLmxhc3RDaGls
ZCk7DQorICAgICAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgew0KKyAgICAgICAgICAgICAgICAgICAgdmFyIHBh
c3MgPSB0ZXN0c1tpXSA/ICJQQVNTIiA6ICJGQUlMIjsNCisgICAgICAgICAgICAgICAgICAgIHJl
c3VsdHMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlN1YlRlc3QgIiArIChp
ICsgMSkgKyAiID0gIiArIHBhc3MpKTsNCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7DQorICAgICAgICAgICAgICAg
IH0NCisNCisgICAgICAgICAgICAgICAgdmFyIGNvbXBsZXRlbHkgPSAiUEFTUyI7DQorICAgICAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpIHsNCisgICAg
ICAgICAgICAgICAgICAgIGlmICh0ZXN0c1tpXSA9PT0gZmFsc2UpIHsNCisgICAgICAgICAgICAg
ICAgICAgICAgICBjb21wbGV0ZWx5ID0gIkZBSUwiOw0KKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOw0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICB9DQorICAg
ICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
IkNvbXBsZXRlIFRlc3QgPSAiICsgY29tcGxldGVseSkpOw0KKyAgICAgICAgICAgIH07DQorICAg
ICAgICA8L3NjcmlwdD4NCisgICAgPC9oZWFkPg0KKyAgICA8Ym9keSBpZD0iIiBjbGFzcz0idGVz
dCIgdGl0bGU9InRlc3QiPg0KKyAgICAgICAgPGgxPkF0dHIgZW1wdHkgdmFsdWUgdGVzdHMgPGEg
aHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTIzIj5CdWcg
MTY5MjM8L2E+PC9oMT4NCisgICAgICAgIDxwPkluIE9wZXJhLCBGaXJlZm94IGFuZCBJRSwgd2hl
biBhbiBBdHRyJ3MgdmFsdWUgaXMgYW4gZW1wdHkgc3RyaW5nLCB0aGUgQXR0ciBub2RlIHdvbid0
IGhhdmUgYW55IGNoaWxkTm9kZXMuIFRoZSBmb2xsb3dpbmcgMTIgdGVzdHMgd2lsbCBzZWUgaWYg
dGhpcyBpcyB0cnVlIGZvciBXZWJLaXQgZm9yIGJvdGggcGFyc2VkIGFuZCBkeW5hbWljYWxseS1j
cmVhdGVkIEF0dHIgbm9kZXMuIFRoZSB0ZXN0cyB1c2UgbXVsdGlwbGUgbWV0aG9kcyBvZiBjaGFu
Z2luZyB0aGUgQXR0cidzIHZhbHVlIGFuZCBldmVuIHRlc3QgcmV2ZXJ0aW5nIGZyb20gYSBub24t
ZW1wdHkgdmFsdWUgdG8gYW4gZW1wdHkgb25lIHRvIGNoZWNrIHRoYXQgYWxsIGNoaWxkTm9kZXMg
d2VyZSByZW1vdmVkLiBTb21lIG9mIHRoZSB0ZXN0cyBtYWtlIHVzZSBvZiAudGV4dENvbnRlbnQs
IHNvIHRoaXMgdGVzdCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIElFLiBPcGVyYSBhbmQgRmlyZWZv
eCBib3RoIGNvbXBsZXRlbHkgcGFzcyB0aGlzIHRlc3QuPC9wPg0KKyAgICAgICAgPHA+VGhpcyB0
ZXN0IHJlcXVpcmVzIEphdmFzY3JpcHQuPC9wPg0KKyAgICA8L2JvZHk+DQorPC9odG1sPg0KClBy
b3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZG9tL2F0dHJpYnV0ZS1lbXB0eS12
YWx1ZS1uby1jaGlsZHJlbi5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFibGUKICAg
KyAqCgo=
</data>
<flag name="review"
          id="9219"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>