<?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>28828</bug_id>
          
          <creation_ts>2009-08-29 01:47:09 -0700</creation_ts>
          <short_desc>Make SVGStyleElement title/media/type setters do something</short_desc>
          <delta_ts>2009-09-03 02:12:35 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron McCormack (:heycam)">heycam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>143507</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2009-08-29 01:47:09 -0700</bug_when>
    <thetext>setTitle(), setMedia() and setType() on SVGStyleElement should do something other than just throwing a NOT_MODIFIED_ERR.  Also remove the &quot;setter raises&quot; clauses from the IDL, since an exception should never be thrown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143509</commentid>
    <comment_count>1</comment_count>
      <attachid>38774</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2009-08-29 05:11:26 -0700</bug_when>
    <thetext>Created attachment 38774
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143603</commentid>
    <comment_count>2</comment_count>
      <attachid>38774</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-31 03:17:14 -0700</bug_when>
    <thetext>Comment on attachment 38774
Patch v1

shouldBeEqualToString will make your life easier here:
 5 shouldBe(&quot;style.type&quot;, &quot;&apos;text/css&apos;&quot;);

shouldBeEqualToString(&quot;style.type&quot;, &quot;text/css&quot;);

Normally we would use longer argument names here:
 53 void SVGStyleElement::setXmlspace(const AtomicString&amp; s, ExceptionCode&amp;)
like &quot;space&quot;

and &quot;type&quot;:
 65 void SVGStyleElement::setType(const AtomicString&amp; s)

Why not just remove &quot;setter raises()&quot;?
 33                      /*setter raises(DOMException)*/;

Are these spec&apos;d to raise, but they never should?  If so, please explain in your ChangeLog.

In general this looks great!  If you were a committer, I would r+ and you could land with changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143644</commentid>
    <comment_count>3</comment_count>
      <attachid>38811</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2009-08-31 06:19:17 -0700</bug_when>
    <thetext>Created attachment 38811
Patch v2

(In reply to comment #2)
&gt; shouldBeEqualToString will make your life easier here:
&gt;  5 shouldBe(&quot;style.type&quot;, &quot;&apos;text/css&apos;&quot;);
&gt; 
&gt; shouldBeEqualToString(&quot;style.type&quot;, &quot;text/css&quot;);

OK, changed to use that.  I just copied some other test that was using shouldBe() in this manner.

&gt; Normally we would use longer argument names here:
&gt;  53 void SVGStyleElement::setXmlspace(const AtomicString&amp; s, ExceptionCode&amp;)
&gt; like &quot;space&quot;
&gt; 
&gt; and &quot;type&quot;:
&gt;  65 void SVGStyleElement::setType(const AtomicString&amp; s)

Changed.

&gt; Why not just remove &quot;setter raises()&quot;?
&gt;  33                      /*setter raises(DOMException)*/;
&gt; 
&gt; Are these spec&apos;d to raise, but they never should?  If so, please explain in
&gt; your ChangeLog.

The spec says to raise these in case the DOM node is read only, but in reality this is never the case.  Strictly, it can happen if the &lt;style&gt; is a descendant of an Entity or EntityReference node.  Various methods would need to check isReadOnly() and throw a NO_MODIFICATION_ALLOWED_ERR in this case.  Does XMLTokenizerLibxml2 ever cause parsed XML documents to include EntityReference nodes instead of expanding them?  I couldn&apos;t tell from a quick look.

&gt; In general this looks great!  If you were a committer, I would r+ and you could
&gt; land with changes.

Thanks!  WebKit code is pretty nice to work with. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143895</commentid>
    <comment_count>4</comment_count>
      <attachid>38811</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-01 08:08:58 -0700</bug_when>
    <thetext>Comment on attachment 38811
Patch v2

Shouldn&apos;t we just pass the ec along to setAttribute?  Then we future-proof ourselves against the read-only node case, no?

    void setAttribute(const QualifiedName&amp;, const AtomicString&amp; value, ExceptionCode&amp;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144175</commentid>
    <comment_count>5</comment_count>
      <attachid>38811</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-02 03:02:42 -0700</bug_when>
    <thetext>Comment on attachment 38811
Patch v2

r- for the unanswered setter issue.  Seems no reason to remove these exception codes if setAttribute can/should still throw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144355</commentid>
    <comment_count>6</comment_count>
      <attachid>38957</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2009-09-02 17:49:08 -0700</bug_when>
    <thetext>Created attachment 38957
Patch v3

OK, that&apos;s reasonable about passing along the ExceptionCode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144356</commentid>
    <comment_count>7</comment_count>
      <attachid>38957</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2009-09-02 17:50:56 -0700</bug_when>
    <thetext>Comment on attachment 38957
Patch v3

How about I test it first before requesting review...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144379</commentid>
    <comment_count>8</comment_count>
      <attachid>38965</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2009-09-02 21:51:41 -0700</bug_when>
    <thetext>Created attachment 38965
Patch v4

Turns out I couldn&apos;t use [Reflect] for title, since there needs to be a title() method on SVGStyleElement to override the one on StyleElement.  Oh well.  I had some changes to the ObjC bindings generators to make them work with [Reflect]ed attributes with setter exceptions, but I might file them separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144380</commentid>
    <comment_count>9</comment_count>
      <attachid>38966</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2009-09-02 22:02:28 -0700</bug_when>
    <thetext>Created attachment 38966
Patch v4a

Sigh, don&apos;t edit patches by hand without checking them. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144434</commentid>
    <comment_count>10</comment_count>
      <attachid>38966</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-03 01:43:59 -0700</bug_when>
    <thetext>Comment on attachment 38966
Patch v4a

Wonderful!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144455</commentid>
    <comment_count>11</comment_count>
      <attachid>38966</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-03 02:12:31 -0700</bug_when>
    <thetext>Comment on attachment 38966
Patch v4a

Clearing flags on attachment: 38966

Committed r48010: &lt;http://trac.webkit.org/changeset/48010&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144456</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-03 02:12:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38774</attachid>
            <date>2009-08-29 05:11:26 -0700</date>
            <delta_ts>2009-08-31 06:19:17 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>28828.patch</filename>
            <type>text/plain</type>
            <size>7155</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Nzg4MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDgtMjkgIENhbWVyb24gTWNDb3JtYWNrICA8Y2FtQG1jYy5p
ZC5hdT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
YWtlIFNWR1N0eWxlRWxlbWVudCB0aXRsZS9tZWRpYS90eXBlIHNldHRlcnMgZG8gc29tZXRoaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODgyOAor
CisgICAgICAgIFRlc3Q6IHN2Zy9kb20vc3R5bGUtcmVmbGVjdC5odG1sCisKKyAgICAgICAgKiBz
dmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVu
dDo6c2V0WG1sc3BhY2UpOiBBY3R1YWxseSBjaGFuZ2UgdGhlIGF0dHJpYnV0ZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6c2V0VHlwZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3R5bGVFbGVtZW50OjpzZXRNZWRpYSk6IERpdHRvLgorICAgICAgICAqIHN2Zy9T
VkdTdHlsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmlkbDogQ29t
bWVudCBvdXQgInNldHRlciByYWlzZXMiIGNsYXVzZXMuCisKIDIwMDktMDgtMjggIEphbiBNaWNo
YWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
T2xpdmVyIEh1bnQuCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAJKHJldmlzaW9uIDQ3ODgy
KQorKysgV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKICNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKKyNpbmNsdWRlICJTVkdOYW1l
cy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogCkBAIC00OSw5ICs1MCw5IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50
Ojp4bWwKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKFhNTE5hbWVzOjpzcGFjZUF0dHIpOwogfQog
Ci12b2lkIFNWR1N0eWxlRWxlbWVudDo6c2V0WG1sc3BhY2UoY29uc3QgQXRvbWljU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFNWR1N0eWxlRWxlbWVudDo6c2V0WG1sc3BhY2UoY29u
c3QgQXRvbWljU3RyaW5nJiBzLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICBlYyA9IE5PX01PRElG
SUNBVElPTl9BTExPV0VEX0VSUjsKKwlzZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OnNwYWNlQXR0ciwg
cyk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXBlKCkgY29u
c3QKQEAgLTYxLDkgKzYyLDkgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBTVkdTdHlsZUVsZW1lbnQ6
OnR5cAogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsKIH0KIAotdm9p
ZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9u
Q29kZSYgZWMpCit2b2lkIFNWR1N0eWxlRWxlbWVudDo6c2V0VHlwZShjb25zdCBBdG9taWNTdHJp
bmcmIHMpCiB7Ci0gICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7CisJc2V0QXR0
cmlidXRlKFNWR05hbWVzOjp0eXBlQXR0ciwgcyk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
U1ZHU3R5bGVFbGVtZW50OjptZWRpYSgpIGNvbnN0CkBAIC03MywxOSArNzQsOSBAQCBjb25zdCBB
dG9taWNTdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6bWVkCiAgICAgcmV0dXJuIG4uaXNOdWxsKCkg
PyBkZWZhdWx0VmFsdWUgOiBuOwogfQogCi12b2lkIFNWR1N0eWxlRWxlbWVudDo6c2V0TWVkaWEo
Y29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFNWR1N0eWxlRWxl
bWVudDo6c2V0TWVkaWEoY29uc3QgQXRvbWljU3RyaW5nJiBzKQogewotICAgIGVjID0gTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSOwotfQotCi1TdHJpbmcgU1ZHU3R5bGVFbGVtZW50Ojp0aXRs
ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGdldEF0dHJpYnV0ZSh0aXRsZUF0dHIpOwotfQotCi12
b2lkIFNWR1N0eWxlRWxlbWVudDo6c2V0VGl0bGUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0
aW9uQ29kZSYgZWMpCi17Ci0gICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7CisJ
c2V0QXR0cmlidXRlKFNWR05hbWVzOjptZWRpYUF0dHIsIHMpOwogfQogCiB2b2lkIFNWR1N0eWxl
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQpJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHU3R5bGVFbGVtZW50LmgJKHJldmlzaW9uIDQ3ODgyKQorKysgV2ViQ29yZS9zdmcvU1ZH
U3R5bGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDEzICs0OCwxMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaGVldExvYWRlZCgpOwogCiAgICAg
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCkgY29uc3Q7Ci0gICAgICAgIHZv
aWQgc2V0VHlwZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAg
IHZvaWQgc2V0VHlwZShjb25zdCBBdG9taWNTdHJpbmcmKTsKIAogICAgICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgbWVkaWEoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRNZWRpYShj
b25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICAgICAgdmlydHVhbCBT
dHJpbmcgdGl0bGUoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRUaXRsZShjb25zdCBBdG9taWNT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgc2V0TWVkaWEoY29uc3QgQXRv
bWljU3RyaW5nJik7CiAKICAgICAgICAgU3R5bGVTaGVldCogc2hlZXQoKTsKICAgICAgICAgCklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5pZGwJKHJldmlzaW9uIDQ3ODgyKQorKysgV2ViQ29yZS9z
dmcvU1ZHU3R5bGVFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTEgKzMwLDExIEBA
IG1vZHVsZSBzdmcgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgY29yZTo6RE9NU3RyaW5n
IHhtbHNwYWNlCiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcgdHlwZQotICAg
ICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAg
ICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmluZyBtZWRpYQotICAgICAgICAgICAgICAgICAg
ICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgY29yZTo6RE9NU3RyaW5nIHRpdGxlCi0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAvKnNldHRlciByYWlzZXMo
RE9NRXhjZXB0aW9uKSovOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGNv
cmU6OkRPTVN0cmluZyB0aXRsZQorICAgICAgICAgICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2Vz
KERPTUV4Y2VwdGlvbikqLzsKICAgICB9OwogCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0Nzg4MikK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDA5LTA4LTI5ICBDYW1lcm9uIE1jQ29ybWFjayAgPGNhbUBtY2MuaWQuYXU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTVkdTdHlsZUVs
ZW1lbnQgdGl0bGUvbWVkaWEvdHlwZSBzZXR0ZXJzIGRvIHNvbWV0aGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg4MjgKKworICAgICAgICAqIHN2
Zy9kb20vcmVzb3VyY2VzL3N0eWxlLXJlZmxlY3QuanM6IEFkZGVkLgorICAgICAgICAqIHN2Zy9k
b20vc3R5bGUtcmVmbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20v
c3R5bGUtcmVmbGVjdC5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0yOCAgR3VzdGF2byBOb3Jvbmhh
IFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBSZS1za2lwcGluZyB0ZXN0cyB0aGF0
IHN0aWxsIGZhaWwgb24gdGhlIGJvdC4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9kb20vc3R5bGUt
cmVmbGVjdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS9z
dHlsZS1yZWZsZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2
Zy9kb20vc3R5bGUtcmVmbGVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTUgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHlwZSwgbWVkaWEgYW5kIHRpdGxlIHBy
b3BlcnRpZXMgb24gYW4gU1ZHU3R5bGVFbGVtZW50IHJlZmxlY3QgdGhlIGNvcnJlc3BvbmRpbmcg
YXR0cmlidXRlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3R5bGUu
dHlwZSBpcyAndGV4dC9jc3MnCitQQVNTIHN0eWxlLm1lZGlhIGlzICdhbGwnCitQQVNTIHN0eWxl
LnRpdGxlIGlzICcnCitQQVNTIHN0eWxlLnR5cGUgaXMgJ3RleHQveC1zb21ldGhpbmctZWxzZScK
K1BBU1Mgc3R5bGUubWVkaWEgaXMgJ3ByaW50JworUEFTUyBzdHlsZS50aXRsZSBpcyAnTXkgU3R5
bGUgU2hlZXQnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2RvbS9zdHlsZS1yZWZsZWN0Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS9zdHlsZS1yZWZsZWN0Lmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvZG9tL3N0eWxlLXJlZmxlY3QuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3R5bGUtcmVmbGVjdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9kb20vcmVz
b3VyY2VzL3N0eWxlLXJlZmxlY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2Rv
bS9yZXNvdXJjZXMvc3R5bGUtcmVmbGVjdC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N2Zy9kb20vcmVzb3VyY2VzL3N0eWxlLXJlZmxlY3QuanMJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTggQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHR5cGUsIG1l
ZGlhIGFuZCB0aXRsZSBwcm9wZXJ0aWVzIG9uIGFuIFNWR1N0eWxlRWxlbWVudCByZWZsZWN0IHRo
ZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZXMuIik7CisKK3ZhciBzdHlsZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAic3R5bGUiKTsKKwor
c2hvdWxkQmUoInN0eWxlLnR5cGUiLCAiJ3RleHQvY3NzJyIpOworc2hvdWxkQmUoInN0eWxlLm1l
ZGlhIiwgIidhbGwnIik7CitzaG91bGRCZSgic3R5bGUudGl0bGUiLCAiJyciKTsKKworc3R5bGUu
dHlwZSA9ICJ0ZXh0L3gtc29tZXRoaW5nLWVsc2UiOworc2hvdWxkQmUoInN0eWxlLnR5cGUiLCAi
J3RleHQveC1zb21ldGhpbmctZWxzZSciKTsKKworc3R5bGUubWVkaWEgPSAicHJpbnQiOworc2hv
dWxkQmUoInN0eWxlLm1lZGlhIiwgIidwcmludCciKTsKKworc3R5bGUudGl0bGUgPSAiTXkgU3R5
bGUgU2hlZXQiOworc2hvdWxkQmUoInN0eWxlLnRpdGxlIiwgIidNeSBTdHlsZSBTaGVldCciKTsK
Kworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>
<flag name="review"
          id="19766"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38811</attachid>
            <date>2009-08-31 06:19:17 -0700</date>
            <delta_ts>2009-09-02 17:49:49 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>28828-v2.patch</filename>
            <type>text/plain</type>
            <size>7569</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Nzg4MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMDgtMzEgIENhbWVyb24gTWNDb3JtYWNrICA8Y2FtQG1jYy5p
ZC5hdT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
YWtlIFNWR1N0eWxlRWxlbWVudCB0aXRsZS9tZWRpYS90eXBlIHNldHRlcnMgZG8gc29tZXRoaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODgyOAor
CisgICAgICAgIFRoZSAic2V0dGVyIHJhaXNlcyIgY2xhdXNlcyBhcmUgcmVtb3ZlZCBmcm9tIHRo
ZSBJREwgYXR0cmlidXRlcyBzaW5jZQorICAgICAgICB0aGV5IGFyZSBkZWZpbmVkIHRvIHRocm93
IG9ubHkgaW4gdGhlIGNhc2Ugb2YgcmVhZCBvbmx5IERPTQorICAgICAgICBub2Rlcywgd2hpY2gg
c2hvdWxkIG5vdCBoYXBwZW4gaW4gdGhlIHJlYWwgd29ybGQuICAoT25seSBpZiB0aGUgPHN0eWxl
PgorICAgICAgICB3YXMgYSBkZXNjZW5kYW50IG9mIGFuIEVudGl0eSBvciBFbnRpdHlSZWZlcmVu
Y2Ugbm9kZSB3b3VsZCB0aGlzCisgICAgICAgIG1hdHRlci4pCisKKyAgICAgICAgVGVzdDogc3Zn
L2RvbS9zdHlsZS1yZWZsZWN0Lmh0bWwKKworICAgICAgICAqIHN2Zy9TVkdTdHlsZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjpzZXRYbWxzcGFjZSk6IEFj
dHVhbGx5IGNoYW5nZSB0aGUgYXR0cmlidXRlLgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVF
bGVtZW50OjpzZXRUeXBlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1l
bnQ6OnNldE1lZGlhKTogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdTdHlsZUVsZW1lbnQuaWRsOiBDb21tZW50IG91dCAic2V0dGVyIHJh
aXNlcyIgY2xhdXNlcy4KKwogMjAwOS0wOC0yOSAgQWRlbGUgUGV0ZXJzb24gIDxhZGVsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
U3R5bGVFbGVtZW50LmNwcAkocmV2aXNpb24gNDc4ODIpCisrKyBXZWJDb3JlL3N2Zy9TVkdTdHls
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1hcHBl
ZEF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMu
aCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTQ5LDkgKzUwLDkgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBTVkdTdHlsZUVsZW1lbnQ6OnhtbAogICAgIHJldHVybiBnZXRBdHRy
aWJ1dGUoWE1MTmFtZXM6OnNwYWNlQXR0cik7CiB9CiAKLXZvaWQgU1ZHU3R5bGVFbGVtZW50Ojpz
ZXRYbWxzcGFjZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQg
U1ZHU3R5bGVFbGVtZW50OjpzZXRYbWxzcGFjZShjb25zdCBBdG9taWNTdHJpbmcmIHNwYWNlLCBF
eGNlcHRpb25Db2RlJikKIHsKLSAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsK
KyAgICBzZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OnNwYWNlQXR0ciwgc3BhY2UpOwogfQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6dHlwZSgpIGNvbnN0CkBAIC02MSw5ICs2
Miw5IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXAKICAgICByZXR1
cm4gbi5pc051bGwoKSA/IGRlZmF1bHRWYWx1ZSA6IG47CiB9CiAKLXZvaWQgU1ZHU3R5bGVFbGVt
ZW50OjpzZXRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9p
ZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogewot
ICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOworICAgIHNldEF0dHJpYnV0ZShT
VkdOYW1lczo6dHlwZUF0dHIsIHR5cGUpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1N0
eWxlRWxlbWVudDo6bWVkaWEoKSBjb25zdApAQCAtNzMsMTkgKzc0LDkgQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBTVkdTdHlsZUVsZW1lbnQ6Om1lZAogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVm
YXVsdFZhbHVlIDogbjsKIH0KIAotdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldE1lZGlhKGNvbnN0
IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBTVkdTdHlsZUVsZW1lbnQ6
OnNldE1lZGlhKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWEpCiB7Ci0gICAgZWMgPSBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlI7Ci19Ci0KLVN0cmluZyBTVkdTdHlsZUVsZW1lbnQ6OnRpdGxl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHRpdGxlQXR0cik7Ci19Ci0KLXZv
aWQgU1ZHU3R5bGVFbGVtZW50OjpzZXRUaXRsZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRp
b25Db2RlJiBlYykKLXsKLSAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKKyAg
ICBzZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6Om1lZGlhQXR0ciwgbWVkaWEpOwogfQogCiB2b2lkIFNW
R1N0eWxlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRy
KQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgJKHJldmlzaW9uIDQ3ODgyKQorKysgV2ViQ29yZS9z
dmcvU1ZHU3R5bGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDEzICs0OCwxMCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaGVldExvYWRlZCgpOwog
CiAgICAgICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCkgY29uc3Q7Ci0gICAg
ICAgIHZvaWQgc2V0VHlwZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgICAgIHZvaWQgc2V0VHlwZShjb25zdCBBdG9taWNTdHJpbmcmKTsKIAogICAgICAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWEoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRN
ZWRpYShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICAgICAgdmly
dHVhbCBTdHJpbmcgdGl0bGUoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRUaXRsZShjb25zdCBB
dG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgc2V0TWVkaWEoY29u
c3QgQXRvbWljU3RyaW5nJik7CiAKICAgICAgICAgU3R5bGVTaGVldCogc2hlZXQoKTsKICAgICAg
ICAgCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5pZGwJKHJldmlzaW9uIDQ3ODgyKQorKysgV2Vi
Q29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTEgKzMw
LDExIEBAIG1vZHVsZSBzdmcgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgY29yZTo6RE9N
U3RyaW5nIHhtbHNwYWNlCiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcgdHlw
ZQotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAg
ICAgICAgICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmluZyBtZWRpYQotICAgICAgICAgICAg
ICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgY29yZTo6RE9NU3RyaW5nIHRpdGxlCi0gICAgICAgICAgICAgICAgICAgICBzZXR0
ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAvKnNldHRlciBy
YWlzZXMoRE9NRXhjZXB0aW9uKSovOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIGNvcmU6OkRPTVN0cmluZyB0aXRsZQorICAgICAgICAgICAgICAgICAgICAgLypzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKICAgICB9OwogCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0
Nzg4MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE0IEBACisyMDA5LTA4LTMxICBDYW1lcm9uIE1jQ29ybWFjayAgPGNhbUBtY2MuaWQuYXU+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTVkdT
dHlsZUVsZW1lbnQgdGl0bGUvbWVkaWEvdHlwZSBzZXR0ZXJzIGRvIHNvbWV0aGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg4MjgKKworICAgICAg
ICAqIHN2Zy9kb20vcmVzb3VyY2VzL3N0eWxlLXJlZmxlY3QuanM6IEFkZGVkLgorICAgICAgICAq
IHN2Zy9kb20vc3R5bGUtcmVmbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2
Zy9kb20vc3R5bGUtcmVmbGVjdC5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0yOCAgR3VzdGF2byBO
b3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBSZS1za2lwcGluZyB0ZXN0
cyB0aGF0IHN0aWxsIGZhaWwgb24gdGhlIGJvdC4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9kb20v
c3R5bGUtcmVmbGVjdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2RvbS9zdHlsZS1yZWZsZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N2Zy9kb20vc3R5bGUtcmVmbGVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHlwZSwgbWVkaWEgYW5kIHRp
dGxlIHByb3BlcnRpZXMgb24gYW4gU1ZHU3R5bGVFbGVtZW50IHJlZmxlY3QgdGhlIGNvcnJlc3Bv
bmRpbmcgYXR0cmlidXRlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
c3R5bGUudHlwZSBpcyAidGV4dC9jc3MiCitQQVNTIHN0eWxlLm1lZGlhIGlzICJhbGwiCitQQVNT
IHN0eWxlLnRpdGxlIGlzICIiCitQQVNTIHN0eWxlLnR5cGUgaXMgInRleHQveC1zb21ldGhpbmct
ZWxzZSIKK1BBU1Mgc3R5bGUubWVkaWEgaXMgInByaW50IgorUEFTUyBzdHlsZS50aXRsZSBpcyAi
TXkgU3R5bGUgU2hlZXQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2RvbS9zdHlsZS1yZWZsZWN0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS9zdHlsZS1yZWZsZWN0Lmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvZG9tL3N0eWxlLXJlZmxlY3QuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3R5bGUtcmVmbGVjdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9k
b20vcmVzb3VyY2VzL3N0eWxlLXJlZmxlY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2RvbS9yZXNvdXJjZXMvc3R5bGUtcmVmbGVjdC5qcwkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3N2Zy9kb20vcmVzb3VyY2VzL3N0eWxlLXJlZmxlY3QuanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTggQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHR5
cGUsIG1lZGlhIGFuZCB0aXRsZSBwcm9wZXJ0aWVzIG9uIGFuIFNWR1N0eWxlRWxlbWVudCByZWZs
ZWN0IHRoZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZXMuIik7CisKK3ZhciBzdHlsZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAic3R5bGUi
KTsKKworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdHlsZS50eXBlIiwgInRleHQvY3NzIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInN0eWxlLm1lZGlhIiwgImFsbCIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJzdHlsZS50aXRsZSIsICIiKTsKKworc3R5bGUudHlwZSA9ICJ0ZXh0L3gtc29t
ZXRoaW5nLWVsc2UiOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdHlsZS50eXBlIiwgInRleHQv
eC1zb21ldGhpbmctZWxzZSIpOworCitzdHlsZS5tZWRpYSA9ICJwcmludCI7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInN0eWxlLm1lZGlhIiwgInByaW50Iik7CisKK3N0eWxlLnRpdGxlID0gIk15
IFN0eWxlIFNoZWV0IjsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygic3R5bGUudGl0bGUiLCAiTXkg
U3R5bGUgU2hlZXQiKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>
<flag name="review"
          id="19801"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38957</attachid>
            <date>2009-09-02 17:49:08 -0700</date>
            <delta_ts>2009-09-02 21:51:41 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>28828-v3.patch</filename>
            <type>text/plain</type>
            <size>7027</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Nzk1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDktMDIgIENhbWVyb24gTWNDb3JtYWNrICA8Y2FtQG1jYy5p
ZC5hdT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
YWtlIFNWR1N0eWxlRWxlbWVudCB0aXRsZS9tZWRpYS90eXBlIHNldHRlcnMgZG8gc29tZXRoaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODgyOAor
CisgICAgICAgIFRlc3Q6IHN2Zy9kb20vc3R5bGUtcmVmbGVjdC5odG1sCisKKyAgICAgICAgKiBz
dmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVu
dDo6c2V0WG1sc3BhY2UpOiBBY3R1YWxseSBjaGFuZ2UgdGhlIGF0dHJpYnV0ZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6c2V0VHlwZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3R5bGVFbGVtZW50OjpzZXRNZWRpYSk6IERpdHRvLgorICAgICAgICAqIHN2Zy9T
VkdTdHlsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmlkbDogVXNl
IFtSZWZsZWN0XSBmb3IgdGl0bGUuCisKIDIwMDktMDktMDEgIFBhdHJpY2sgTXVlbGxlciAgPFBh
dHJpY2tfTXVlbGxlckB1cy5pYm0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkg
SGF0Y2hlci4KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAkocmV2aXNpb24gNDc5NTIpCisr
KyBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYg
KzIsNyBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4g
PHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDkgQ2FtZXJvbiBNY0Nvcm1hY2sg
PGNhbUBtY2MuaWQuYXU+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2pl
Y3QKIApAQCAtMzEsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKKyNpbmNsdWRl
ICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgogCkBAIC00OSw5ICs1MSw5IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5
bGVFbGVtZW50Ojp4bWwKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKFhNTE5hbWVzOjpzcGFjZUF0
dHIpOwogfQogCi12b2lkIFNWR1N0eWxlRWxlbWVudDo6c2V0WG1sc3BhY2UoY29uc3QgQXRvbWlj
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFNWR1N0eWxlRWxlbWVudDo6c2V0WG1s
c3BhY2UoY29uc3QgQXRvbWljU3RyaW5nJiBzcGFjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0g
ICAgZWMgPSBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7CisgICAgc2V0QXR0cmlidXRlKFhN
TE5hbWVzOjpzcGFjZUF0dHIsIHNwYWNlLCBlYyk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
U1ZHU3R5bGVFbGVtZW50Ojp0eXBlKCkgY29uc3QKQEAgLTYxLDkgKzYzLDkgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBTVkdTdHlsZUVsZW1lbnQ6OnR5cAogICAgIHJldHVybiBuLmlzTnVsbCgpID8g
ZGVmYXVsdFZhbHVlIDogbjsKIH0KIAotdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFR5cGUoY29u
c3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFNWR1N0eWxlRWxlbWVu
dDo6c2V0VHlwZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewotICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOworICAgIHNldEF0dHJpYnV0
ZShTVkdOYW1lczo6dHlwZUF0dHIsIHR5cGUsIGVjKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5n
JiBTVkdTdHlsZUVsZW1lbnQ6Om1lZGlhKCkgY29uc3QKQEAgLTczLDE5ICs3NSw5IEBAIGNvbnN0
IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50OjptZWQKICAgICByZXR1cm4gbi5pc051bGwo
KSA/IGRlZmF1bHRWYWx1ZSA6IG47CiB9CiAKLXZvaWQgU1ZHU3R5bGVFbGVtZW50OjpzZXRNZWRp
YShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgU1ZHU3R5bGVF
bGVtZW50OjpzZXRNZWRpYShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLX0KLQotU3Ry
aW5nIFNWR1N0eWxlRWxlbWVudDo6dGl0bGUoKSBjb25zdAotewotICAgIHJldHVybiBnZXRBdHRy
aWJ1dGUodGl0bGVBdHRyKTsKLX0KLQotdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFRpdGxlKGNv
bnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGVjID0gTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSOworICAgIHNldEF0dHJpYnV0ZShTVkdOYW1lczo6bWVkaWFB
dHRyLCBtZWRpYSwgZWMpOwogfQogCiB2b2lkIFNWR1N0eWxlRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3R5
bGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgJ
KHJldmlzaW9uIDQ3OTUyKQorKysgV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTUzLDkgKzUzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWEoKSBjb25zdDsKICAgICAgICAgdm9pZCBz
ZXRNZWRpYShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICAgICAg
dmlydHVhbCBTdHJpbmcgdGl0bGUoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRUaXRsZShjb25z
dCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0KICAgICAgICAgU3R5bGVTaGVldCog
c2hlZXQoKTsKICAgICAgICAgCiAgICAgcHJvdGVjdGVkOgpJbmRleDogV2ViQ29yZS9zdmcvU1ZH
U3R5bGVFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1l
bnQuaWRsCShyZXZpc2lvbiA0Nzk1MikKKysrIFdlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAg
ICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcgbWVkaWEKICAgICAgICAgICAgICAgICAgICAg
IHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IGNvcmU6OkRPTVN0cmluZyB0aXRsZQorICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIGNvcmU6OkRPTVN0cmluZyB0aXRsZQogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ3OTUyKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMDktMDktMDIgIENhbWVyb24gTWNDb3JtYWNrICA8Y2FtQG1jYy5pZC5hdT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFNWR1N0eWxlRWxl
bWVudCB0aXRsZS9tZWRpYS90eXBlIHNldHRlcnMgZG8gc29tZXRoaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODgyOAorCisgICAgICAgICogc3Zn
L2RvbS9yZXNvdXJjZXMvc3R5bGUtcmVmbGVjdC5qczogQWRkZWQuCisgICAgICAgICogc3ZnL2Rv
bS9zdHlsZS1yZWZsZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2RvbS9z
dHlsZS1yZWZsZWN0Lmh0bWw6IEFkZGVkLgorCiAyMDA5LTA5LTAxICBFcmljIFNlaWRlbCAgPGVy
aWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBTaW1vbiBGcmFzZXIu
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL3N0eWxlLXJlZmxlY3QtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9kb20vc3R5bGUtcmVmbGVjdC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvZG9tL3N0eWxlLXJlZmxlY3QtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3QgY2hlY2tz
IHRoYXQgdGhlIHR5cGUsIG1lZGlhIGFuZCB0aXRsZSBwcm9wZXJ0aWVzIG9uIGFuIFNWR1N0eWxl
RWxlbWVudCByZWZsZWN0IHRoZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZXMuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN0eWxlLnR5cGUgaXMgInRleHQvY3NzIgorUEFT
UyBzdHlsZS5tZWRpYSBpcyAiYWxsIgorUEFTUyBzdHlsZS50aXRsZSBpcyAiIgorUEFTUyBzdHls
ZS50eXBlIGlzICJ0ZXh0L3gtc29tZXRoaW5nLWVsc2UiCitQQVNTIHN0eWxlLm1lZGlhIGlzICJw
cmludCIKK1BBU1Mgc3R5bGUudGl0bGUgaXMgIk15IFN0eWxlIFNoZWV0IgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L3N2Zy9kb20vc3R5bGUtcmVmbGVjdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9kb20vc3R5bGUtcmVmbGVjdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Zn
L2RvbS9zdHlsZS1yZWZsZWN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3N0eWxlLXJlZmxlY3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL3Jlc291cmNlcy9zdHlsZS1yZWZsZWN0Lmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9kb20vcmVzb3VyY2VzL3N0eWxlLXJlZmxl
Y3QuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvZG9tL3Jlc291cmNlcy9zdHls
ZS1yZWZsZWN0LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4IEBACitkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0eXBlLCBtZWRpYSBhbmQgdGl0bGUgcHJvcGVydGll
cyBvbiBhbiBTVkdTdHlsZUVsZW1lbnQgcmVmbGVjdCB0aGUgY29ycmVzcG9uZGluZyBhdHRyaWJ1
dGVzLiIpOworCit2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIiwgInN0eWxlIik7CisKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
c3R5bGUudHlwZSIsICJ0ZXh0L2NzcyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdHlsZS5t
ZWRpYSIsICJhbGwiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygic3R5bGUudGl0bGUiLCAiIik7
CisKK3N0eWxlLnR5cGUgPSAidGV4dC94LXNvbWV0aGluZy1lbHNlIjsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygic3R5bGUudHlwZSIsICJ0ZXh0L3gtc29tZXRoaW5nLWVsc2UiKTsKKworc3R5bGUu
bWVkaWEgPSAicHJpbnQiOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdHlsZS5tZWRpYSIsICJw
cmludCIpOworCitzdHlsZS50aXRsZSA9ICJNeSBTdHlsZSBTaGVldCI7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInN0eWxlLnRpdGxlIiwgIk15IFN0eWxlIFNoZWV0Iik7CisKK3N1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38965</attachid>
            <date>2009-09-02 21:51:41 -0700</date>
            <delta_ts>2009-09-02 22:02:28 -0700</delta_ts>
            <desc>Patch v4</desc>
            <filename>28828-v4.patch</filename>
            <type>text/plain</type>
            <size>6323</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Nzk1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDktMDIgIENhbWVyb24gTWNDb3JtYWNrICA8Y2FtQG1jYy5p
ZC5hdT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
YWtlIFNWR1N0eWxlRWxlbWVudCB0aXRsZS9tZWRpYS90eXBlIHNldHRlcnMgZG8gc29tZXRoaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODgyOAor
CisgICAgICAgIFRlc3Q6IHN2Zy9kb20vc3R5bGUtcmVmbGVjdC5odG1sCisKKyAgICAgICAgKiBz
dmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVu
dDo6c2V0WG1sc3BhY2UpOiBBY3R1YWxseSBjaGFuZ2UgdGhlIGF0dHJpYnV0ZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6c2V0VHlwZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3R5bGVFbGVtZW50OjpzZXRNZWRpYSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU3R5bGVFbGVtZW50OjpzZXRUaXRsZSk6IERpdHRvLgorCiAyMDA5LTA5LTAxICBQYXRy
aWNrIE11ZWxsZXIgIDxQYXRyaWNrX011ZWxsZXJAdXMuaWJtLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDQ3OTUyKQorKysgV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlr
b2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0
LCAyMDA1LCAyMDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgICAgQ29weXJpZ2h0
IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgICAgQ29weXJpZ2h0IChDKSAyMDA5IENh
bWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQg
b2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI5LDE0ICszMCwxNCBAQAogI2luY2x1ZGUgIkNTU1N0
eWxlU2hlZXQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUu
aCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7Cit1c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7CiAKIFNWR1N0eWxl
RWxlbWVudDo6U1ZHU3R5bGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2MsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogICAgICA6IFNWR0VsZW1lbnQodGFn
TmFtZSwgZG9jKQpAQCAtNDksOSArNTAsOSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1N0eWxl
RWxlbWVudDo6eG1sCiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShYTUxOYW1lczo6c3BhY2VBdHRy
KTsKIH0KIAotdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFhtbHNwYWNlKGNvbnN0IEF0b21pY1N0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFhtbHNw
YWNlKGNvbnN0IEF0b21pY1N0cmluZyYgc3BhY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOworICAgIHNldEF0dHJpYnV0ZShYTUxO
YW1lczo6c3BhY2VBdHRyLCBzcGFjZSwgZWMpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNW
R1N0eWxlRWxlbWVudDo6dHlwZSgpIGNvbnN0CkBAIC02MSw5ICs2Miw5IEBAIGNvbnN0IEF0b21p
Y1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXAKICAgICByZXR1cm4gbi5pc051bGwoKSA/IGRl
ZmF1bHRWYWx1ZSA6IG47CiB9CiAKLXZvaWQgU1ZHU3R5bGVFbGVtZW50OjpzZXRUeXBlKGNvbnN0
IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBTVkdTdHlsZUVsZW1lbnQ6
OnNldFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
LSAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKKyAgICBzZXRBdHRyaWJ1dGUo
dHlwZUF0dHIsIHR5cGUsIGVjKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdTdHlsZUVs
ZW1lbnQ6Om1lZGlhKCkgY29uc3QKQEAgLTczLDkgKzc0LDkgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBTVkdTdHlsZUVsZW1lbnQ6Om1lZAogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZh
bHVlIDogbjsKIH0KIAotdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldE1lZGlhKGNvbnN0IEF0b21p
Y1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldE1l
ZGlhKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOworICAgIHNldEF0dHJpYnV0ZShtZWRp
YUF0dHIsIG1lZGlhLCBlYyk7CiB9CiAKIFN0cmluZyBTVkdTdHlsZUVsZW1lbnQ6OnRpdGxlKCkg
Y29uc3QKQEAgLTgzLDkgKzg0LDkgQEAgU3RyaW5nIFNWR1N0eWxlRWxlbWVudDo6dGl0bGUoKSBj
b25zdAogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUodGl0bGVBdHRyKTsKIH0KIAotdm9pZCBTVkdT
dHlsZUVsZW1lbnQ6OnNldFRpdGxlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFRpdGxlKGNvbnN0IEF0b21pY1N0cmluZyYg
dGl0bGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOworICAgIHNldEF0dHJpYnV0ZSh0aXRsZUF0dHIsIHRpdGxlLCBlYyk7CiB9CiAK
IHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1
dGUqIGF0dHIpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0Nzk1MikKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDA5LTA5LTAyICBDYW1lcm9u
IE1jQ29ybWFjayAgPGNhbUBtY2MuaWQuYXU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTVkdTdHlsZUVsZW1lbnQgdGl0bGUvbWVkaWEvdHlw
ZSBzZXR0ZXJzIGRvIHNvbWV0aGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mjg4MjgKKworICAgICAgICAqIHN2Zy9kb20vcmVzb3VyY2VzL3N0eWxl
LXJlZmxlY3QuanM6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vc3R5bGUtcmVmbGVjdC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vc3R5bGUtcmVmbGVjdC5odG1sOiBB
ZGRlZC4KKwogMjAwOS0wOS0wMSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUnViYmVyIHN0YW1wZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2RvbS9zdHlsZS1yZWZsZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvZG9tL3N0eWxlLXJlZmxlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvc3ZnL2RvbS9zdHlsZS1yZWZsZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0eXBlLCBtZWRp
YSBhbmQgdGl0bGUgcHJvcGVydGllcyBvbiBhbiBTVkdTdHlsZUVsZW1lbnQgcmVmbGVjdCB0aGUg
Y29ycmVzcG9uZGluZyBhdHRyaWJ1dGVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBzdHlsZS50eXBlIGlzICJ0ZXh0L2NzcyIKK1BBU1Mgc3R5bGUubWVkaWEgaXMgImFs
bCIKK1BBU1Mgc3R5bGUudGl0bGUgaXMgIiIKK1BBU1Mgc3R5bGUudHlwZSBpcyAidGV4dC94LXNv
bWV0aGluZy1lbHNlIgorUEFTUyBzdHlsZS5tZWRpYSBpcyAicHJpbnQiCitQQVNTIHN0eWxlLnRp
dGxlIGlzICJNeSBTdHlsZSBTaGVldCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL3N0eWxlLXJlZmxl
Y3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZG9tL3N0eWxlLXJlZmxlY3Qu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9kb20vc3R5bGUtcmVmbGVjdC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdHlsZS1yZWZsZWN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2RvbS9yZXNvdXJjZXMvc3R5bGUtcmVmbGVjdC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvZG9tL3Jlc291cmNlcy9zdHlsZS1yZWZsZWN0LmpzCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3ZnL2RvbS9yZXNvdXJjZXMvc3R5bGUtcmVmbGVjdC5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxOCBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhh
dCB0aGUgdHlwZSwgbWVkaWEgYW5kIHRpdGxlIHByb3BlcnRpZXMgb24gYW4gU1ZHU3R5bGVFbGVt
ZW50IHJlZmxlY3QgdGhlIGNvcnJlc3BvbmRpbmcgYXR0cmlidXRlcy4iKTsKKwordmFyIHN0eWxl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIs
ICJzdHlsZSIpOworCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0eWxlLnR5cGUiLCAidGV4dC9j
c3MiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygic3R5bGUubWVkaWEiLCAiYWxsIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInN0eWxlLnRpdGxlIiwgIiIpOworCitzdHlsZS50eXBlID0gInRl
eHQveC1zb21ldGhpbmctZWxzZSI7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0eWxlLnR5cGUi
LCAidGV4dC94LXNvbWV0aGluZy1lbHNlIik7CisKK3N0eWxlLm1lZGlhID0gInByaW50IjsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygic3R5bGUubWVkaWEiLCAicHJpbnQiKTsKKworc3R5bGUudGl0
bGUgPSAiTXkgU3R5bGUgU2hlZXQiOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdHlsZS50aXRs
ZSIsICJNeSBTdHlsZSBTaGVldCIpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38966</attachid>
            <date>2009-09-02 22:02:28 -0700</date>
            <delta_ts>2009-09-03 02:12:31 -0700</delta_ts>
            <desc>Patch v4a</desc>
            <filename>28828-v4.patch</filename>
            <type>text/plain</type>
            <size>6323</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Nzk1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDktMDktMDIgIENhbWVyb24gTWNDb3JtYWNrICA8Y2FtQG1jYy5p
ZC5hdT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
YWtlIFNWR1N0eWxlRWxlbWVudCB0aXRsZS9tZWRpYS90eXBlIHNldHRlcnMgZG8gc29tZXRoaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODgyOAor
CisgICAgICAgIFRlc3Q6IHN2Zy9kb20vc3R5bGUtcmVmbGVjdC5odG1sCisKKyAgICAgICAgKiBz
dmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVu
dDo6c2V0WG1sc3BhY2UpOiBBY3R1YWxseSBjaGFuZ2UgdGhlIGF0dHJpYnV0ZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6c2V0VHlwZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3R5bGVFbGVtZW50OjpzZXRNZWRpYSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU3R5bGVFbGVtZW50OjpzZXRUaXRsZSk6IERpdHRvLgorCiAyMDA5LTA5LTAxICBQYXRy
aWNrIE11ZWxsZXIgIDxQYXRyaWNrX011ZWxsZXJAdXMuaWJtLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDQ3OTUyKQorKysgV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlr
b2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0
LCAyMDA1LCAyMDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgICAgQ29weXJpZ2h0
IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgICAgQ29weXJpZ2h0IChDKSAyMDA5IENh
bWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQg
b2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI5LDE0ICszMCwxNCBAQAogI2luY2x1ZGUgIkNTU1N0
eWxlU2hlZXQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUu
aCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7Cit1c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7CiAKIFNWR1N0eWxl
RWxlbWVudDo6U1ZHU3R5bGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2MsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogICAgICA6IFNWR0VsZW1lbnQodGFn
TmFtZSwgZG9jKQpAQCAtNDksOSArNTAsOSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1N0eWxl
RWxlbWVudDo6eG1sCiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShYTUxOYW1lczo6c3BhY2VBdHRy
KTsKIH0KIAotdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFhtbHNwYWNlKGNvbnN0IEF0b21pY1N0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFhtbHNw
YWNlKGNvbnN0IEF0b21pY1N0cmluZyYgc3BhY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOworICAgIHNldEF0dHJpYnV0ZShYTUxO
YW1lczo6c3BhY2VBdHRyLCBzcGFjZSwgZWMpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNW
R1N0eWxlRWxlbWVudDo6dHlwZSgpIGNvbnN0CkBAIC02MSw5ICs2Miw5IEBAIGNvbnN0IEF0b21p
Y1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXAKICAgICByZXR1cm4gbi5pc051bGwoKSA/IGRl
ZmF1bHRWYWx1ZSA6IG47CiB9CiAKLXZvaWQgU1ZHU3R5bGVFbGVtZW50OjpzZXRUeXBlKGNvbnN0
IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBTVkdTdHlsZUVsZW1lbnQ6
OnNldFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
LSAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKKyAgICBzZXRBdHRyaWJ1dGUo
dHlwZUF0dHIsIHR5cGUsIGVjKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdTdHlsZUVs
ZW1lbnQ6Om1lZGlhKCkgY29uc3QKQEAgLTczLDkgKzc0LDkgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBTVkdTdHlsZUVsZW1lbnQ6Om1lZAogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZh
bHVlIDogbjsKIH0KIAotdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldE1lZGlhKGNvbnN0IEF0b21p
Y1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldE1l
ZGlhKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOworICAgIHNldEF0dHJpYnV0ZShtZWRp
YUF0dHIsIG1lZGlhLCBlYyk7CiB9CiAKIFN0cmluZyBTVkdTdHlsZUVsZW1lbnQ6OnRpdGxlKCkg
Y29uc3QKQEAgLTgzLDkgKzg0LDkgQEAgU3RyaW5nIFNWR1N0eWxlRWxlbWVudDo6dGl0bGUoKSBj
b25zdAogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUodGl0bGVBdHRyKTsKIH0KIAotdm9pZCBTVkdT
dHlsZUVsZW1lbnQ6OnNldFRpdGxlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFRpdGxlKGNvbnN0IEF0b21pY1N0cmluZyYg
dGl0bGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOworICAgIHNldEF0dHJpYnV0ZSh0aXRsZUF0dHIsIHRpdGxlLCBlYyk7CiB9CiAK
IHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1
dGUqIGF0dHIpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0Nzk1MikKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDA5LTA5LTAyICBDYW1lcm9u
IE1jQ29ybWFjayAgPGNhbUBtY2MuaWQuYXU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTVkdTdHlsZUVsZW1lbnQgdGl0bGUvbWVkaWEvdHlw
ZSBzZXR0ZXJzIGRvIHNvbWV0aGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mjg4MjgKKworICAgICAgICAqIHN2Zy9kb20vcmVzb3VyY2VzL3N0eWxl
LXJlZmxlY3QuanM6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vc3R5bGUtcmVmbGVjdC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vc3R5bGUtcmVmbGVjdC5odG1sOiBB
ZGRlZC4KKwogMjAwOS0wOS0wMSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUnViYmVyIHN0YW1wZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2RvbS9zdHlsZS1yZWZsZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvZG9tL3N0eWxlLXJlZmxlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvc3ZnL2RvbS9zdHlsZS1yZWZsZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0eXBlLCBtZWRp
YSBhbmQgdGl0bGUgcHJvcGVydGllcyBvbiBhbiBTVkdTdHlsZUVsZW1lbnQgcmVmbGVjdCB0aGUg
Y29ycmVzcG9uZGluZyBhdHRyaWJ1dGVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBzdHlsZS50eXBlIGlzICJ0ZXh0L2NzcyIKK1BBU1Mgc3R5bGUubWVkaWEgaXMgImFs
bCIKK1BBU1Mgc3R5bGUudGl0bGUgaXMgIiIKK1BBU1Mgc3R5bGUudHlwZSBpcyAidGV4dC94LXNv
bWV0aGluZy1lbHNlIgorUEFTUyBzdHlsZS5tZWRpYSBpcyAicHJpbnQiCitQQVNTIHN0eWxlLnRp
dGxlIGlzICJNeSBTdHlsZSBTaGVldCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL3N0eWxlLXJlZmxl
Y3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZG9tL3N0eWxlLXJlZmxlY3Qu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9kb20vc3R5bGUtcmVmbGVjdC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdHlsZS1yZWZsZWN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2RvbS9yZXNvdXJjZXMvc3R5bGUtcmVmbGVjdC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvZG9tL3Jlc291cmNlcy9zdHlsZS1yZWZsZWN0LmpzCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3ZnL2RvbS9yZXNvdXJjZXMvc3R5bGUtcmVmbGVjdC5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxOCBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhh
dCB0aGUgdHlwZSwgbWVkaWEgYW5kIHRpdGxlIHByb3BlcnRpZXMgb24gYW4gU1ZHU3R5bGVFbGVt
ZW50IHJlZmxlY3QgdGhlIGNvcnJlc3BvbmRpbmcgYXR0cmlidXRlcy4iKTsKKwordmFyIHN0eWxl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIs
ICJzdHlsZSIpOworCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0eWxlLnR5cGUiLCAidGV4dC9j
c3MiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygic3R5bGUubWVkaWEiLCAiYWxsIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInN0eWxlLnRpdGxlIiwgIiIpOworCitzdHlsZS50eXBlID0gInRl
eHQveC1zb21ldGhpbmctZWxzZSI7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInN0eWxlLnR5cGUi
LCAidGV4dC94LXNvbWV0aGluZy1lbHNlIik7CisKK3N0eWxlLm1lZGlhID0gInByaW50IjsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygic3R5bGUubWVkaWEiLCAicHJpbnQiKTsKKworc3R5bGUudGl0
bGUgPSAiTXkgU3R5bGUgU2hlZXQiOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzdHlsZS50aXRs
ZSIsICJNeSBTdHlsZSBTaGVldCIpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>