<?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>36427</bug_id>
          
          <creation_ts>2010-03-21 08:27:13 -0700</creation_ts>
          <short_desc>XPathEvaluator returns document root for &quot;/&quot; when the context node is in a detached subtree (unlike Firefox)</short_desc>
          <delta_ts>2012-10-15 14:23:50 -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>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://azer.kodfabrik.com/butor/webkit/xpath.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>azerkoculu</reporter>
          <assigned_to name="Chris Evans">cevans</assigned_to>
          <cc>ap</cc>
    
    <cc>cevans</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>202287</commentid>
    <comment_count>0</comment_count>
    <who name="">azerkoculu</who>
    <bug_when>2010-03-21 08:27:13 -0700</bug_when>
    <thetext>XPathEvaluator returns invalid root node for &quot;/&quot; expression when context node is an element without a parent node. 

For example:

var xpe = new XPathEvaluator....
...
xpe.evaluate(&quot;/&quot;, document.body ... // returns window.document in Webkit. Firefox returns context node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202850</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-03-22 17:45:32 -0700</bug_when>
    <thetext>&gt; xpe.evaluate(&quot;/&quot;, document.body ... // returns window.document in Webkit.

The description doesn&apos;t match test case - in the latter, it&apos;s a detached subtree of elements created with document.createElement:


  var fset = window.fset = document.createElement(&apos;fieldset&apos;);
  fset.appendChild( document.createElement(&apos;legend&apos;) );
  var form = document.createElement(&apos;form&apos;);
  form.appendChild( document.createElement(&apos;input&apos;) );
  fset.appendChild( form );

  // get fieldset
  assert( evaluateXPath(fset,&apos;/&apos;)[0] == fset, &apos;Trying to get fieldset element.&apos; ); // fails for webkit
  assert( evaluateXPath(fset,&apos;/form&apos;)[0] == form, &apos;Tring to get form element&apos; );


Anyway, the XPath spec &lt;http://www.w3.org/TR/xpath/&gt; says &quot;/ selects the document root (which is always the parent of the document element)&quot;. Why do you think that this is a bug in WebKit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695592</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-08-14 17:44:48 -0700</bug_when>
    <thetext>Copying in some discussion where we conclude it&apos;s a reasonable idea to follow Firefox:

---
Thanks for the references. I did spend some time poking around trying to find a clear reference for what to do with detached subtrees, but didn&apos;t find one. That&apos;s why matching Firefox seemed like the best option. It&apos;s also more in-line with internal expectations of WebKit code, which is very handy in terms of not being an intrusive patch.

To go into more detail, the relevant sentence in http://www.w3.org/TR/xpath/ seems to have changed since Alexey quoted it in the older bug. It is now, section &quot;2 Location Paths&quot;: &quot;A / by itself selects the root node of the document containing the context node.&quot;

And &quot;contains&quot; is best defined by http://www.w3.org/TR/domcore/#dom-node-contains. Putting it together, we have well defined behavior when the context node is attached to the document but not when it is detached.

TL;DR: IMHO, a careful reading leaves us free to follow Firefox. It&apos;ll be nice to have two major rendering engines behaving the same way.
---

---
Actually, the spec hasn&apos;t changed since 1999, and it still has that specific example saying that Firefox is wrong.

&quot;/ selects the document root (which is always the parent of the document element)&quot;

It&apos;s of vague interest that XPath 2 actually changes the meaning of leading slash &quot;to begin the path at the root node of the tree that contains the context node&quot;. However, that&apos;s an entirely separate incompatible spec that&apos;s not relevant to the Web.

&gt; And &quot;contains&quot; is best defined by http://www.w3.org/TR/domcore/#dom-node-contains

XPath authors most certainly didn&apos;t envision referencing the DOM4 train wreck in 1999 :)

I&apos;m ambivalent on whether we match Firefox or the spec here. This seems to be a case that&apos;s only happening in browsers, so XPath spec authors likely haven&apos;t really thought of it, and it does seem kind of logical to start from tree root.
---</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695594</commentid>
    <comment_count>3</comment_count>
      <attachid>158459</attachid>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-08-14 17:45:30 -0700</bug_when>
    <thetext>Created attachment 158459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695634</commentid>
    <comment_count>4</comment_count>
      <attachid>158459</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 18:29:10 -0700</bug_when>
    <thetext>Comment on attachment 158459
Patch

Clearing flags on attachment: 158459

Committed r125631: &lt;http://trac.webkit.org/changeset/125631&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695635</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 18:29:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696058</commentid>
    <comment_count>6</comment_count>
      <attachid>158459</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-15 09:26:34 -0700</bug_when>
    <thetext>Comment on attachment 158459
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=158459&amp;action=review

&gt; Source/WebCore/ChangeLog:10
&gt; +        The consensus seems to be that the XPath spec is ambiguous for the case of detached nodes, and that using the fragment root is more intuitive than the document root for the case of detached nodes.
&gt; +        For example, http://www.w3.org/TR/xpath/ section 2 &quot;Location Paths&quot; is only clear for attached nodes: &quot;A / by itself selects the root node of the document containing the context node. If it is followed by a relative location path, then the location path selects the set of nodes that would be selected by the relative location path relative to the root node of the document containing the context node.&quot;

I&apos;d be happier if the description was more direct. What we&apos;re doing is an intentional spec violation, there is no ambiguity.

&gt; Source/WebCore/xml/XPathPath.cpp:98
&gt; -    // For absolute location paths, the context node is ignored - the
&gt; -    // document&apos;s root node is used instead.
&gt; +    // For absolute location paths, the context node is ignored. The
&gt; +    // document&apos;s root node is used for attached nodes, otherwise the root
&gt; +    // node of the detached subtree is used.

This was a bad comment, and is still a bad one. Re-stating what the (pretty obvious) code does is not helpful.

Saying why we do this might be helpful, since we don&apos;t follow the spec.

&gt; LayoutTests/fast/xpath/xpath-detached-nodes-expected.txt:8
&gt; +PASS result.numberValue is 1
&gt; +PASS result.numberValue is 0
&gt; +PASS result.numberValue is 1
&gt; +PASS result.numberValue is 0
&gt; +PASS result.numberValue is NaN

It&apos;s generally desirable to make test output a little more self-descriptive. With a long list of similar subtests, it&apos;s hard to even find which one failed.

Putting the whole evaluate statement into shouldBe would be perfectly fine here, in my opinion.

&gt; LayoutTests/fast/xpath/xpath-detached-nodes.html:13
&gt; +  if (window.testRunner)
&gt; +    testRunner.dumpAsText();

This is unnecessary, js-test-pre.js does that for you.

&gt; LayoutTests/fast/xpath/xpath-detached-nodes.html:15
&gt; +  frag = document.createDocumentFragment();

I think that it would be important to test &quot;/&quot; path for fragments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697569</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-08-16 15:15:11 -0700</bug_when>
    <thetext>I&apos;ll fix these things.

I&apos;m most concerned about the comment in the code being correct. Alexey, would you mind re-iterating why you think it&apos;s a willful spec violation so that we&apos;re all on the same page? I can then try and document it clearly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697589</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-16 15:26:17 -0700</bug_when>
    <thetext>I&apos;m primarily going from this example in the spec:

&quot;/ selects the document root (which is always the parent of the document element)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697595</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-08-16 15:32:44 -0700</bug_when>
    <thetext>What&apos;s your reading on the definition of &quot;document element&quot;?

Section 5.1 seems closest to defining that:
---
The root node is the root of the tree. A root node does not occur except as the root of the tree. The element node for the document element is a child of the root node.
---</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697636</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-16 15:58:33 -0700</bug_when>
    <thetext>My understanding is that this is terminology from XML Infoset &lt;http://www.w3.org/TR/xml-infoset/&gt;, which gives it a 1-to-1 relationship with XML&apos;s document element.

Anyway, I&apos;m not sure why you are asking about document element. The example says that / selects &quot;document root&quot;, not &quot;tree root&quot; or &quot;document element&quot;.

But this discussion made me realize that we didn&apos;t check or test &quot;//&quot; behavior. It&apos;s just a shortcut, so it should have changed its behavior in detached trees in this patch, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702642</commentid>
    <comment_count>11</comment_count>
      <attachid>160069</attachid>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-08-22 19:35:11 -0700</bug_when>
    <thetext>Created attachment 160069
Patch

Action Alexey&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703010</commentid>
    <comment_count>12</comment_count>
      <attachid>160069</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-23 08:19:16 -0700</bug_when>
    <thetext>Comment on attachment 160069
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=160069&amp;action=review

Thank you!

&gt; Source/WebCore/xml/XPathPath.cpp:101
&gt; +    // &quot;/ selects the document root (which is always the parent of the
&gt; +    // document element)&quot;
&gt; +    // &quot;A / by itself selects the root node of the document containing the
&gt; +    // context node.&quot;

We don&apos;t need to make lines this short, it&apos;s normal to have much longer lines in WebKit.

&gt; Source/WebCore/xml/XPathPath.cpp:104
&gt; +    // This is for compatability with Firefox, and also seems like a more

Typo: should be &quot;compatibility&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704398</commentid>
    <comment_count>13</comment_count>
      <attachid>160492</attachid>
    <who name="Chris Evans">cevans</who>
    <bug_when>2012-08-24 13:34:03 -0700</bug_when>
    <thetext>Created attachment 160492
Patch

Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704408</commentid>
    <comment_count>14</comment_count>
      <attachid>160492</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-24 13:51:35 -0700</bug_when>
    <thetext>Comment on attachment 160492
Patch

Clearing flags on attachment: 160492

Committed r126621: &lt;http://trac.webkit.org/changeset/126621&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704409</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-24 13:51:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742445</commentid>
    <comment_count>16</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2012-10-15 14:23:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/11313005&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158459</attachid>
            <date>2012-08-14 17:45:30 -0700</date>
            <delta_ts>2012-08-15 09:26:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk_36427_2.diff</filename>
            <type>text/plain</type>
            <size>5955</size>
            <attacher name="Chris Evans">cevans</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTYxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA4LTE0ICBDaHJpcyBF
dmFucyAgPGNldmFuc0Bnb29nbGUuY29tPgorCisgICAgICAgIEhhbmRsZSB0aGUgWFBhdGggLyAo
cm9vdCkgb3BlcmF0b3IgY29ycmVjdGx5IGZvciBub2RlcyB0aGF0IGFyZW4ndCBhdHRhY2hlZCB0
byB0aGUgZG9jdW1lbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNjQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlIG5vdyBiZWhhdmUgdGhlIHNhbWUgYXMgRmlyZWZveCAxNC4KKyAgICAgICAgVGhl
IGNvbnNlbnN1cyBzZWVtcyB0byBiZSB0aGF0IHRoZSBYUGF0aCBzcGVjIGlzIGFtYmlndW91cyBm
b3IgdGhlIGNhc2Ugb2YgZGV0YWNoZWQgbm9kZXMsIGFuZCB0aGF0IHVzaW5nIHRoZSBmcmFnbWVu
dCByb290IGlzIG1vcmUgaW50dWl0aXZlIHRoYW4gdGhlIGRvY3VtZW50IHJvb3QgZm9yIHRoZSBj
YXNlIG9mIGRldGFjaGVkIG5vZGVzLgorICAgICAgICBGb3IgZXhhbXBsZSwgaHR0cDovL3d3dy53
My5vcmcvVFIveHBhdGgvIHNlY3Rpb24gMiAiTG9jYXRpb24gUGF0aHMiIGlzIG9ubHkgY2xlYXIg
Zm9yIGF0dGFjaGVkIG5vZGVzOiAiQSAvIGJ5IGl0c2VsZiBzZWxlY3RzIHRoZSByb290IG5vZGUg
b2YgdGhlIGRvY3VtZW50IGNvbnRhaW5pbmcgdGhlIGNvbnRleHQgbm9kZS4gSWYgaXQgaXMgZm9s
bG93ZWQgYnkgYSByZWxhdGl2ZSBsb2NhdGlvbiBwYXRoLCB0aGVuIHRoZSBsb2NhdGlvbiBwYXRo
IHNlbGVjdHMgdGhlIHNldCBvZiBub2RlcyB0aGF0IHdvdWxkIGJlIHNlbGVjdGVkIGJ5IHRoZSBy
ZWxhdGl2ZSBsb2NhdGlvbiBwYXRoIHJlbGF0aXZlIHRvIHRoZSByb290IG5vZGUgb2YgdGhlIGRv
Y3VtZW50IGNvbnRhaW5pbmcgdGhlIGNvbnRleHQgbm9kZS4iCisKKyAgICAgICAgVGVzdDogZmFz
dC94cGF0aC94cGF0aC1kZXRhY2hlZC1ub2Rlcy5odG1sCisKKyAgICAgICAgKiB4bWwvWFBhdGhQ
YXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpMb2NhdGlvblBhdGg6OmV2YWx1YXRl
KTogSnVtcCB0byB0aGUgcm9vdCBvZiB0aGUgZGV0YWNoZWQgc3VidHJlZSBpbnN0ZWFkIG9mIHRo
ZSBwYXJlbnQgZG9jdW1lbnQgaWYgdGhlIG5vZGUgaXNuJ3QgYXR0YWNoZWQgdG8gdGhlIGRvY3Vt
ZW50LgorCiAyMDEyLTA4LTE0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgRGVsZXRlIEZyYW1lOjpkb21XaW5kb3coKSBhbmQgRnJhbWU6OmV4aXN0aW5nRE9NV2lu
ZG93KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFBhdGguY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFBhdGguY3BwCShyZXZpc2lvbiAxMjU1MjYpCisr
KyBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQYXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMs
MTEgKzkzLDE2IEBACiB7CiAgICAgRXZhbHVhdGlvbkNvbnRleHQmIGV2YWx1YXRpb25Db250ZXh0
ID0gRXhwcmVzc2lvbjo6ZXZhbHVhdGlvbkNvbnRleHQoKTsKICAgICBFdmFsdWF0aW9uQ29udGV4
dCBiYWNrdXBDb250ZXh0ID0gZXZhbHVhdGlvbkNvbnRleHQ7Ci0gICAgLy8gRm9yIGFic29sdXRl
IGxvY2F0aW9uIHBhdGhzLCB0aGUgY29udGV4dCBub2RlIGlzIGlnbm9yZWQgLSB0aGUKLSAgICAv
LyBkb2N1bWVudCdzIHJvb3Qgbm9kZSBpcyB1c2VkIGluc3RlYWQuCisgICAgLy8gRm9yIGFic29s
dXRlIGxvY2F0aW9uIHBhdGhzLCB0aGUgY29udGV4dCBub2RlIGlzIGlnbm9yZWQuIFRoZQorICAg
IC8vIGRvY3VtZW50J3Mgcm9vdCBub2RlIGlzIHVzZWQgZm9yIGF0dGFjaGVkIG5vZGVzLCBvdGhl
cndpc2UgdGhlIHJvb3QKKyAgICAvLyBub2RlIG9mIHRoZSBkZXRhY2hlZCBzdWJ0cmVlIGlzIHVz
ZWQuCiAgICAgTm9kZSogY29udGV4dCA9IGV2YWx1YXRpb25Db250ZXh0Lm5vZGUuZ2V0KCk7Ci0g
ICAgaWYgKG1fYWJzb2x1dGUgJiYgY29udGV4dC0+bm9kZVR5cGUoKSAhPSBOb2RlOjpET0NVTUVO
VF9OT0RFKSAKLSAgICAgICAgY29udGV4dCA9IGNvbnRleHQtPm93bmVyRG9jdW1lbnQoKTsKKyAg
ICBpZiAobV9hYnNvbHV0ZSAmJiBjb250ZXh0LT5ub2RlVHlwZSgpICE9IE5vZGU6OkRPQ1VNRU5U
X05PREUpICB7CisgICAgICAgIGlmIChjb250ZXh0LT5pbkRvY3VtZW50KCkpCisgICAgICAgICAg
ICBjb250ZXh0ID0gY29udGV4dC0+b3duZXJEb2N1bWVudCgpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBjb250ZXh0ID0gY29udGV4dC0+aGlnaGVzdEFuY2VzdG9yKCk7CisgICAgfQogCiAg
ICAgTm9kZVNldCBub2RlczsKICAgICBub2Rlcy5hcHBlbmQoY29udGV4dCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWRldGFjaGVkLW5vZGVzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWRldGFjaGVkLW5vZGVzLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgt
ZGV0YWNoZWQtbm9kZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBA
CitUaGlzIHRlc3RzIFhQYXRoIGV4cHJlc3Npb25zIG9uIGRldGFjaGVkIGRvY3VtZW50IGZyYWdt
ZW50cyBhbmQgbm9kZXMuIAorU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNjQyNworCitQQVNTIHJlc3VsdC5udW1iZXJWYWx1ZSBpcyAxCitQQVNTIHJlc3VsdC5u
dW1iZXJWYWx1ZSBpcyAwCitQQVNTIHJlc3VsdC5udW1iZXJWYWx1ZSBpcyAxCitQQVNTIHJlc3Vs
dC5udW1iZXJWYWx1ZSBpcyAwCitQQVNTIHJlc3VsdC5udW1iZXJWYWx1ZSBpcyBOYU4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWRldGFjaGVkLW5vZGVzLWV4
cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWRldGFjaGVkLW5vZGVzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1kZXRhY2hlZC1ub2Rlcy5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1kZXRhY2hlZC1u
b2Rlcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBYUGF0aCBleHBy
ZXNzaW9ucyBvbiBkZXRhY2hlZCBkb2N1bWVudCBmcmFnbWVudHMgYW5kIG5vZGVzLgorPGJyLz5T
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NDI3Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgIGZyYWcgPSBkb2N1bWVudC5jcmVhdGVE
b2N1bWVudEZyYWdtZW50KCk7CisgIGNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgIGZyYWcuYXBwZW5kQ2hpbGQoY2hpbGQpOworICByZXN1bHQgPSBkb2N1bWVudC5ldmFs
dWF0ZSgiY291bnQoL2RpdikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZCwg
bnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpOworICBzaG91bGRCZSgicmVzdWx0
Lm51bWJlclZhbHVlIiwgIjEiKTsKKyAgcmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVhdGUoImNvdW50
KC9odG1sKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLCBudWxsLCBYUGF0
aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCk7CisgIHNob3VsZEJlKCJyZXN1bHQubnVtYmVyVmFs
dWUiLCAiMCIpOworCisgIGVsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKKyAgZWxl
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gxJykpOworICByZXN1bHQgPSBk
b2N1bWVudC5ldmFsdWF0ZSgiY291bnQoL2gxKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZSwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpOworICBzaG91bGRC
ZSgicmVzdWx0Lm51bWJlclZhbHVlIiwgIjEiKTsKKyAgcmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVh
dGUoImNvdW50KC9odG1sKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZSwgbnVs
bCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpOworICBzaG91bGRCZSgicmVzdWx0Lm51
bWJlclZhbHVlIiwgIjAiKTsKKyAgcmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVhdGUoIi8qIHwgKiIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZSwgbnVsbCwgWFBhdGhSZXN1bHQuTlVN
QkVSX1RZUEUsIG51bGwpOworICBzaG91bGRCZSgicmVzdWx0Lm51bWJlclZhbHVlIiwgIk5hTiIp
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWRldGFjaGVkLW5vZGVzLmh0bWwKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpB
ZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTI1NjE2KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTItMDgtMTQgIENocmlzIEV2YW5zICA8Y2V2YW5zQGdvb2dsZS5jb20+CisKKyAgICAgICAg
SGFuZGxlIHRoZSBYUGF0aCAvIChyb290KSBvcGVyYXRvciBjb3JyZWN0bHkgZm9yIG5vZGVzIHRo
YXQgYXJlbid0IGF0dGFjaGVkIHRvIHRoZSBkb2N1bWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLWRldGFjaGVkLW5v
ZGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94cGF0aC94cGF0aC1kZXRh
Y2hlZC1ub2Rlcy5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0xNCAgTWlrZSBXZXN0ICA8bWt3c3RA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRpZ2h0ZW4gdXAgcGFyc2luZyB0aGUgJ3NjcmlwdC1u
b25jZScgQ1NQIGRpcmVjdGl2ZSB2YWx1ZS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160069</attachid>
            <date>2012-08-22 19:35:11 -0700</date>
            <delta_ts>2012-08-24 13:34:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk_36427.diff</filename>
            <type>text/plain</type>
            <size>7640</size>
            <attacher name="Chris Evans">cevans</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNjM4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA4LTIyICBDaHJpcyBF
dmFucyAgPGNldmFuc0Bnb29nbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBjb21tZW50IHJlZ2Fy
ZGluZyByb290IG5vZGUgaGFuZGxpbmcgaW4gWFBhdGggZm9yIGRldGFjaGVkIHRyZWVzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY0MjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHhtbC9YUGF0aFBh
dGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkxvY2F0aW9uUGF0aDo6ZXZhbHVhdGUp
OiBVcGRhdGUgWFBhdGggcm9vdCBub2RlIGNvbW1lbnQuCisKIDIwMTItMDgtMjIgIFZpbmVldCBD
aGF1ZGhhcnkgIDxyZ2Y3NDhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIENvbnNpZGVyIHJlcGxh
Y2luZyByZXR1cm4gdHlwZSBvZiBDbGlwYm9hcmQ6OnR5cGVzKCkgZnJvbSBIYXNoU2V0PFN0cmlu
Zz4gdG8gVmVjdG9yPFN0cmluZz4uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQYXRo
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQYXRoLmNwcAkocmV2
aXNpb24gMTI2MjgzKQorKysgU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUGF0aC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTkzLDkgKzkzLDE2IEBACiB7CiAgICAgRXZhbHVhdGlvbkNvbnRleHQmIGV2
YWx1YXRpb25Db250ZXh0ID0gRXhwcmVzc2lvbjo6ZXZhbHVhdGlvbkNvbnRleHQoKTsKICAgICBF
dmFsdWF0aW9uQ29udGV4dCBiYWNrdXBDb250ZXh0ID0gZXZhbHVhdGlvbkNvbnRleHQ7Ci0gICAg
Ly8gRm9yIGFic29sdXRlIGxvY2F0aW9uIHBhdGhzLCB0aGUgY29udGV4dCBub2RlIGlzIGlnbm9y
ZWQuIFRoZQotICAgIC8vIGRvY3VtZW50J3Mgcm9vdCBub2RlIGlzIHVzZWQgZm9yIGF0dGFjaGVk
IG5vZGVzLCBvdGhlcndpc2UgdGhlIHJvb3QKLSAgICAvLyBub2RlIG9mIHRoZSBkZXRhY2hlZCBz
dWJ0cmVlIGlzIHVzZWQuCisgICAgLy8gaHR0cDovL3d3dy53My5vcmcvVFIveHBhdGgvCisgICAg
Ly8gU2VjdGlvbiAyLCBMb2NhdGlvbiBQYXRoczoKKyAgICAvLyAiLyBzZWxlY3RzIHRoZSBkb2N1
bWVudCByb290ICh3aGljaCBpcyBhbHdheXMgdGhlIHBhcmVudCBvZiB0aGUKKyAgICAvLyBkb2N1
bWVudCBlbGVtZW50KSIKKyAgICAvLyAiQSAvIGJ5IGl0c2VsZiBzZWxlY3RzIHRoZSByb290IG5v
ZGUgb2YgdGhlIGRvY3VtZW50IGNvbnRhaW5pbmcgdGhlCisgICAgLy8gY29udGV4dCBub2RlLiIK
KyAgICAvLyBJbiB0aGUgY2FzZSBvZiBhIHRyZWUgdGhhdCBpcyBkZXRhY2hlZCBmcm9tIHRoZSBk
b2N1bWVudCwgd2UgdmlvbGF0ZQorICAgIC8vIHRoZSBzcGVjIGFuZCB0cmVhdCAvIGFzIHRoZSBy
b290IG5vZGUgb2YgdGhlIGRldGFjaGVkIHRyZWUuCisgICAgLy8gVGhpcyBpcyBmb3IgY29tcGF0
YWJpbGl0eSB3aXRoIEZpcmVmb3gsIGFuZCBhbHNvIHNlZW1zIGxpa2UgYSBtb3JlCisgICAgLy8g
bG9naWNhbCB0cmVhdG1lbnQgb2Ygd2hlcmUgeW91IHdvdWxkIGV4cGVjdCB0aGUgInJvb3QiIHRv
IGJlLgogICAgIE5vZGUqIGNvbnRleHQgPSBldmFsdWF0aW9uQ29udGV4dC5ub2RlLmdldCgpOwog
ICAgIGlmIChtX2Fic29sdXRlICYmIGNvbnRleHQtPm5vZGVUeXBlKCkgIT0gTm9kZTo6RE9DVU1F
TlRfTk9ERSkgIHsKICAgICAgICAgaWYgKGNvbnRleHQtPmluRG9jdW1lbnQoKSkKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEyNjM4MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA4LTIyICBDaHJpcyBFdmFucyAgPGNldmFuc0Bnb29n
bGUuY29tPgorCisgICAgICAgIEltcHJvdmUgeHBhdGgtZGV0YWNoZWQtbm9kZXMuaHRtbCB0ZXN0
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY0MjcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
eHBhdGgveHBhdGgtZGV0YWNoZWQtbm9kZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
eHBhdGgveHBhdGgtZGV0YWNoZWQtbm9kZXMuaHRtbDogSW5jcmVhc2UgY292ZXJhZ2UgYW5kIGlt
cHJvdmUgbG9nIG1lc3NhZ2VzLgorCiAyMDEyLTA4LTIyICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJA
Z29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIENocm9taXVtIGdhcmRlbmluZy4gT3B0
aW1pemVkIGJhc2VsaW5lcyBmcm9tIHllc3RlcmRheQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC94
cGF0aC94cGF0aC1kZXRhY2hlZC1ub2Rlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1kZXRhY2hlZC1ub2Rlcy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDEyNjI4MykKKysrIExheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtZGV0YWNoZWQt
bm9kZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDE5IEBACiBUaGlz
IHRlc3RzIFhQYXRoIGV4cHJlc3Npb25zIG9uIGRldGFjaGVkIGRvY3VtZW50IGZyYWdtZW50cyBh
bmQgbm9kZXMuIAogU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NjQyNwogCi1QQVNTIHJlc3VsdC5udW1iZXJWYWx1ZSBpcyAxCi1QQVNTIHJlc3VsdC5udW1iZXJW
YWx1ZSBpcyAwCi1QQVNTIHJlc3VsdC5udW1iZXJWYWx1ZSBpcyAxCi1QQVNTIHJlc3VsdC5udW1i
ZXJWYWx1ZSBpcyAwCi1QQVNTIHJlc3VsdC5udW1iZXJWYWx1ZSBpcyBOYU4KK1BBU1MgZG9jdW1l
bnQuZXZhbHVhdGUoJ2NvdW50KC9kaXYpJywgY2hpbGQsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJF
Ul9UWVBFLCBudWxsKS5udW1iZXJWYWx1ZSBpcyAxCitQQVNTIGRvY3VtZW50LmV2YWx1YXRlKCdj
b3VudCgvaHRtbCknLCBjaGlsZCwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwp
Lm51bWJlclZhbHVlIGlzIDAKK1BBU1MgZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8pJywgY2hp
bGQsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5udW1iZXJWYWx1ZSBpcyAx
CitQQVNTIGRvY3VtZW50LmV2YWx1YXRlKCdjb3VudCgvL2h0bWwpJywgY2hpbGQsIG51bGwsIFhQ
YXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5udW1iZXJWYWx1ZSBpcyAwCitQQVNTIGRvY3Vt
ZW50LmV2YWx1YXRlKCdjb3VudCgvL2RpdiknLCBjaGlsZCwgbnVsbCwgWFBhdGhSZXN1bHQuTlVN
QkVSX1RZUEUsIG51bGwpLm51bWJlclZhbHVlIGlzIDEKK1BBU1MgZG9jdW1lbnQuZXZhbHVhdGUo
J2NvdW50KC8vaDIpJywgY2hpbGQsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxs
KS5udW1iZXJWYWx1ZSBpcyAxCitQQVNTIGRvY3VtZW50LmV2YWx1YXRlKCdjb3VudCgvaDEpJywg
ZWxlLCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVyVmFsdWUgaXMg
MQorUEFTUyBkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQoL2h0bWwpJywgZWxlLCBudWxsLCBYUGF0
aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVyVmFsdWUgaXMgMAorUEFTUyBkb2N1bWVu
dC5ldmFsdWF0ZSgnY291bnQoLyknLCBlbGUsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBF
LCBudWxsKS5udW1iZXJWYWx1ZSBpcyAxCitQQVNTIGRvY3VtZW50LmV2YWx1YXRlKCdjb3VudCgv
L2h0bWwpJywgZWxlLCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVy
VmFsdWUgaXMgMAorUEFTUyBkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQoLy9wKScsIGVsZSwgbnVs
bCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpLm51bWJlclZhbHVlIGlzIDAKK1BBU1Mg
ZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8vaDEpJywgZWxlLCBudWxsLCBYUGF0aFJlc3VsdC5O
VU1CRVJfVFlQRSwgbnVsbCkubnVtYmVyVmFsdWUgaXMgMQorUEFTUyBkb2N1bWVudC5ldmFsdWF0
ZSgnLyogfCAqJywgZWxlLCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVt
YmVyVmFsdWUgaXMgTmFOCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtZGV0YWNoZWQtbm9k
ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWRldGFj
aGVkLW5vZGVzLmh0bWwJKHJldmlzaW9uIDEyNjI4MykKKysrIExheW91dFRlc3RzL2Zhc3QveHBh
dGgveHBhdGgtZGV0YWNoZWQtbm9kZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSwzMCArOSwz
OSBAQAogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiAKIDxzY3JpcHQ+Ci0gIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQogICBmcmFnID0gZG9j
dW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwogICBjaGlsZCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwogICBmcmFnLmFwcGVuZENoaWxkKGNoaWxkKTsKLSAgcmVzdWx0ID0g
ZG9jdW1lbnQuZXZhbHVhdGUoImNvdW50KC9kaXYpIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2hpbGQsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKTsKLSAgc2hv
dWxkQmUoInJlc3VsdC5udW1iZXJWYWx1ZSIsICIxIik7Ci0gIHJlc3VsdCA9IGRvY3VtZW50LmV2
YWx1YXRlKCJjb3VudCgvaHRtbCkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGls
ZCwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpOwotICBzaG91bGRCZSgicmVz
dWx0Lm51bWJlclZhbHVlIiwgIjAiKTsKKyAgY2hpbGQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnaDInKSk7CisgIHNob3VsZEJlKCJkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQo
L2RpdiknLCBjaGlsZCwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpLm51bWJl
clZhbHVlIiwKKyAgICAgICAgICAgIjEiKTsKKyAgc2hvdWxkQmUoImRvY3VtZW50LmV2YWx1YXRl
KCdjb3VudCgvaHRtbCknLCBjaGlsZCwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51
bGwpLm51bWJlclZhbHVlIiwKKyAgICAgICAgICAgIjAiKTsKKyAgc2hvdWxkQmUoImRvY3VtZW50
LmV2YWx1YXRlKCdjb3VudCgvKScsIGNoaWxkLCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQ
RSwgbnVsbCkubnVtYmVyVmFsdWUiLAorICAgICAgICAgICAiMSIpOworICBzaG91bGRCZSgiZG9j
dW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8vaHRtbCknLCBjaGlsZCwgbnVsbCwgWFBhdGhSZXN1bHQu
TlVNQkVSX1RZUEUsIG51bGwpLm51bWJlclZhbHVlIiwKKyAgICAgICAgICAgIjAiKTsKKyAgc2hv
dWxkQmUoImRvY3VtZW50LmV2YWx1YXRlKCdjb3VudCgvL2RpdiknLCBjaGlsZCwgbnVsbCwgWFBh
dGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpLm51bWJlclZhbHVlIiwKKyAgICAgICAgICAgIjEi
KTsKKyAgc2hvdWxkQmUoImRvY3VtZW50LmV2YWx1YXRlKCdjb3VudCgvL2gyKScsIGNoaWxkLCBu
dWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVyVmFsdWUiLAorICAgICAg
ICAgICAiMSIpOwogCiAgIGVsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKICAgZWxl
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gxJykpOwotICByZXN1bHQgPSBk
b2N1bWVudC5ldmFsdWF0ZSgiY291bnQoL2gxKSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZSwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpOwotICBzaG91bGRC
ZSgicmVzdWx0Lm51bWJlclZhbHVlIiwgIjEiKTsKLSAgcmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVh
dGUoImNvdW50KC9odG1sKSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZSwgbnVs
bCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpOwotICBzaG91bGRCZSgicmVzdWx0Lm51
bWJlclZhbHVlIiwgIjAiKTsKLSAgcmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVhdGUoIi8qIHwgKiIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZSwgbnVsbCwgWFBhdGhSZXN1bHQuTlVN
QkVSX1RZUEUsIG51bGwpOwotICBzaG91bGRCZSgicmVzdWx0Lm51bWJlclZhbHVlIiwgIk5hTiIp
OworICBzaG91bGRCZSgiZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC9oMSknLCBlbGUsIG51bGws
IFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5udW1iZXJWYWx1ZSIsCisgICAgICAgICAg
ICIxIik7CisgIHNob3VsZEJlKCJkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQoL2h0bWwpJywgZWxl
LCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVyVmFsdWUiLAorICAg
ICAgICAgICAiMCIpOworICBzaG91bGRCZSgiZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8pJywg
ZWxlLCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVyVmFsdWUiLAor
ICAgICAgICAgICAiMSIpOworICBzaG91bGRCZSgiZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8v
aHRtbCknLCBlbGUsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5udW1iZXJW
YWx1ZSIsCisgICAgICAgICAgICIwIik7CisgIHNob3VsZEJlKCJkb2N1bWVudC5ldmFsdWF0ZSgn
Y291bnQoLy9wKScsIGVsZSwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpLm51
bWJlclZhbHVlIiwKKyAgICAgICAgICAgIjAiKTsKKyAgc2hvdWxkQmUoImRvY3VtZW50LmV2YWx1
YXRlKCdjb3VudCgvL2gxKScsIGVsZSwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51
bGwpLm51bWJlclZhbHVlIiwKKyAgICAgICAgICAgIjEiKTsKKyAgc2hvdWxkQmUoImRvY3VtZW50
LmV2YWx1YXRlKCcvKiB8IConLCBlbGUsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBu
dWxsKS5udW1iZXJWYWx1ZSIsCisgICAgICAgICAgICJOYU4iKTsKIDwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
Pgo=
</data>
<flag name="review"
          id="170536"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="170537"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160492</attachid>
            <date>2012-08-24 13:34:03 -0700</date>
            <delta_ts>2012-08-24 13:51:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk_36427_2.diff</filename>
            <type>text/plain</type>
            <size>7634</size>
            <attacher name="Chris Evans">cevans</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFBhdGguY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aFBhdGguY3BwCShyZXZpc2lvbiAxMjYyODMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhQYXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsOSArOTMs
MTQgQEAKIHsKICAgICBFdmFsdWF0aW9uQ29udGV4dCYgZXZhbHVhdGlvbkNvbnRleHQgPSBFeHBy
ZXNzaW9uOjpldmFsdWF0aW9uQ29udGV4dCgpOwogICAgIEV2YWx1YXRpb25Db250ZXh0IGJhY2t1
cENvbnRleHQgPSBldmFsdWF0aW9uQ29udGV4dDsKLSAgICAvLyBGb3IgYWJzb2x1dGUgbG9jYXRp
b24gcGF0aHMsIHRoZSBjb250ZXh0IG5vZGUgaXMgaWdub3JlZC4gVGhlCi0gICAgLy8gZG9jdW1l
bnQncyByb290IG5vZGUgaXMgdXNlZCBmb3IgYXR0YWNoZWQgbm9kZXMsIG90aGVyd2lzZSB0aGUg
cm9vdAotICAgIC8vIG5vZGUgb2YgdGhlIGRldGFjaGVkIHN1YnRyZWUgaXMgdXNlZC4KKyAgICAv
LyBodHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aC8KKyAgICAvLyBTZWN0aW9uIDIsIExvY2F0aW9u
IFBhdGhzOgorICAgIC8vICIvIHNlbGVjdHMgdGhlIGRvY3VtZW50IHJvb3QgKHdoaWNoIGlzIGFs
d2F5cyB0aGUgcGFyZW50IG9mIHRoZSBkb2N1bWVudCBlbGVtZW50KSIKKyAgICAvLyAiQSAvIGJ5
IGl0c2VsZiBzZWxlY3RzIHRoZSByb290IG5vZGUgb2YgdGhlIGRvY3VtZW50IGNvbnRhaW5pbmcg
dGhlIGNvbnRleHQgbm9kZS4iCisgICAgLy8gSW4gdGhlIGNhc2Ugb2YgYSB0cmVlIHRoYXQgaXMg
ZGV0YWNoZWQgZnJvbSB0aGUgZG9jdW1lbnQsIHdlIHZpb2xhdGUKKyAgICAvLyB0aGUgc3BlYyBh
bmQgdHJlYXQgLyBhcyB0aGUgcm9vdCBub2RlIG9mIHRoZSBkZXRhY2hlZCB0cmVlLgorICAgIC8v
IFRoaXMgaXMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBGaXJlZm94LCBhbmQgYWxzbyBzZWVtcyBs
aWtlIGEgbW9yZQorICAgIC8vIGxvZ2ljYWwgdHJlYXRtZW50IG9mIHdoZXJlIHlvdSB3b3VsZCBl
eHBlY3QgdGhlICJyb290IiB0byBiZS4KICAgICBOb2RlKiBjb250ZXh0ID0gZXZhbHVhdGlvbkNv
bnRleHQubm9kZS5nZXQoKTsKICAgICBpZiAobV9hYnNvbHV0ZSAmJiBjb250ZXh0LT5ub2RlVHlw
ZSgpICE9IE5vZGU6OkRPQ1VNRU5UX05PREUpICB7CiAgICAgICAgIGlmIChjb250ZXh0LT5pbkRv
Y3VtZW50KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjYzODMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wOC0y
MiAgQ2hyaXMgRXZhbnMgIDxjZXZhbnNAZ29vZ2xlLmNvbT4KKworICAgICAgICBVcGRhdGUgY29t
bWVudCByZWdhcmRpbmcgcm9vdCBub2RlIGhhbmRsaW5nIGluIFhQYXRoIGZvciBkZXRhY2hlZCB0
cmVlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2
NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAg
ICAqIHhtbC9YUGF0aFBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkxvY2F0aW9u
UGF0aDo6ZXZhbHVhdGUpOiBVcGRhdGUgWFBhdGggcm9vdCBub2RlIGNvbW1lbnQuCisKIDIwMTIt
MDgtMjIgIFZpbmVldCBDaGF1ZGhhcnkgIDxyZ2Y3NDhAbW90b3JvbGEuY29tPgogCiAgICAgICAg
IENvbnNpZGVyIHJlcGxhY2luZyByZXR1cm4gdHlwZSBvZiBDbGlwYm9hcmQ6OnR5cGVzKCkgZnJv
bSBIYXNoU2V0PFN0cmluZz4gdG8gVmVjdG9yPFN0cmluZz4uCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3hwYXRoL3hwYXRoLWRldGFjaGVkLW5vZGVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC94cGF0aC94cGF0aC1kZXRhY2hlZC1ub2Rlcy5odG1sCShyZXZpc2lvbiAxMjYy
ODMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWRldGFjaGVkLW5vZGVzLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTksMzAgKzksMzkgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgogCiA8c2NyaXB0PgotICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Ci0KICAgZnJhZyA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKICAgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgZnJhZy5hcHBl
bmRDaGlsZChjaGlsZCk7Ci0gIHJlc3VsdCA9IGRvY3VtZW50LmV2YWx1YXRlKCJjb3VudCgvZGl2
KSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLCBudWxsLCBYUGF0aFJlc3Vs
dC5OVU1CRVJfVFlQRSwgbnVsbCk7Ci0gIHNob3VsZEJlKCJyZXN1bHQubnVtYmVyVmFsdWUiLCAi
MSIpOwotICByZXN1bHQgPSBkb2N1bWVudC5ldmFsdWF0ZSgiY291bnQoL2h0bWwpIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9U
WVBFLCBudWxsKTsKLSAgc2hvdWxkQmUoInJlc3VsdC5udW1iZXJWYWx1ZSIsICIwIik7CisgIGNo
aWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gyJykpOworICBzaG91bGRC
ZSgiZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC9kaXYpJywgY2hpbGQsIG51bGwsIFhQYXRoUmVz
dWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5udW1iZXJWYWx1ZSIsCisgICAgICAgICAgICIxIik7Cisg
IHNob3VsZEJlKCJkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQoL2h0bWwpJywgY2hpbGQsIG51bGws
IFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5udW1iZXJWYWx1ZSIsCisgICAgICAgICAg
ICIwIik7CisgIHNob3VsZEJlKCJkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQoLyknLCBjaGlsZCwg
bnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpLm51bWJlclZhbHVlIiwKKyAgICAg
ICAgICAgIjEiKTsKKyAgc2hvdWxkQmUoImRvY3VtZW50LmV2YWx1YXRlKCdjb3VudCgvL2h0bWwp
JywgY2hpbGQsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5udW1iZXJWYWx1
ZSIsCisgICAgICAgICAgICIwIik7CisgIHNob3VsZEJlKCJkb2N1bWVudC5ldmFsdWF0ZSgnY291
bnQoLy9kaXYpJywgY2hpbGQsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5u
dW1iZXJWYWx1ZSIsCisgICAgICAgICAgICIxIik7CisgIHNob3VsZEJlKCJkb2N1bWVudC5ldmFs
dWF0ZSgnY291bnQoLy9oMiknLCBjaGlsZCwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUs
IG51bGwpLm51bWJlclZhbHVlIiwKKyAgICAgICAgICAgIjEiKTsKIAogICBlbGUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdwJyk7CiAgIGVsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdoMScpKTsKLSAgcmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVhdGUoImNvdW50KC9oMSki
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGUsIG51bGwsIFhQYXRoUmVzdWx0Lk5V
TUJFUl9UWVBFLCBudWxsKTsKLSAgc2hvdWxkQmUoInJlc3VsdC5udW1iZXJWYWx1ZSIsICIxIik7
Ci0gIHJlc3VsdCA9IGRvY3VtZW50LmV2YWx1YXRlKCJjb3VudCgvaHRtbCkiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbGUsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBu
dWxsKTsKLSAgc2hvdWxkQmUoInJlc3VsdC5udW1iZXJWYWx1ZSIsICIwIik7Ci0gIHJlc3VsdCA9
IGRvY3VtZW50LmV2YWx1YXRlKCIvKiB8ICoiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbGUsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKTsKLSAgc2hvdWxkQmUo
InJlc3VsdC5udW1iZXJWYWx1ZSIsICJOYU4iKTsKKyAgc2hvdWxkQmUoImRvY3VtZW50LmV2YWx1
YXRlKCdjb3VudCgvaDEpJywgZWxlLCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVs
bCkubnVtYmVyVmFsdWUiLAorICAgICAgICAgICAiMSIpOworICBzaG91bGRCZSgiZG9jdW1lbnQu
ZXZhbHVhdGUoJ2NvdW50KC9odG1sKScsIGVsZSwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZ
UEUsIG51bGwpLm51bWJlclZhbHVlIiwKKyAgICAgICAgICAgIjAiKTsKKyAgc2hvdWxkQmUoImRv
Y3VtZW50LmV2YWx1YXRlKCdjb3VudCgvKScsIGVsZSwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVS
X1RZUEUsIG51bGwpLm51bWJlclZhbHVlIiwKKyAgICAgICAgICAgIjEiKTsKKyAgc2hvdWxkQmUo
ImRvY3VtZW50LmV2YWx1YXRlKCdjb3VudCgvL2h0bWwpJywgZWxlLCBudWxsLCBYUGF0aFJlc3Vs
dC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVyVmFsdWUiLAorICAgICAgICAgICAiMCIpOworICBz
aG91bGRCZSgiZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8vcCknLCBlbGUsIG51bGwsIFhQYXRo
UmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5udW1iZXJWYWx1ZSIsCisgICAgICAgICAgICIwIik7
CisgIHNob3VsZEJlKCJkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQoLy9oMSknLCBlbGUsIG51bGws
IFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5udW1iZXJWYWx1ZSIsCisgICAgICAgICAg
ICIxIik7CisgIHNob3VsZEJlKCJkb2N1bWVudC5ldmFsdWF0ZSgnLyogfCAqJywgZWxlLCBudWxs
LCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVyVmFsdWUiLAorICAgICAgICAg
ICAiTmFOIik7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QveHBh
dGgveHBhdGgtZGV0YWNoZWQtbm9kZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtZGV0YWNoZWQtbm9kZXMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxMjYyODMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWRldGFjaGVkLW5v
ZGVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMSwxOSBAQAogVGhpcyB0
ZXN0cyBYUGF0aCBleHByZXNzaW9ucyBvbiBkZXRhY2hlZCBkb2N1bWVudCBmcmFnbWVudHMgYW5k
IG5vZGVzLiAKIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY0
MjcKIAotUEFTUyByZXN1bHQubnVtYmVyVmFsdWUgaXMgMQotUEFTUyByZXN1bHQubnVtYmVyVmFs
dWUgaXMgMAotUEFTUyByZXN1bHQubnVtYmVyVmFsdWUgaXMgMQotUEFTUyByZXN1bHQubnVtYmVy
VmFsdWUgaXMgMAotUEFTUyByZXN1bHQubnVtYmVyVmFsdWUgaXMgTmFOCitQQVNTIGRvY3VtZW50
LmV2YWx1YXRlKCdjb3VudCgvZGl2KScsIGNoaWxkLCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJf
VFlQRSwgbnVsbCkubnVtYmVyVmFsdWUgaXMgMQorUEFTUyBkb2N1bWVudC5ldmFsdWF0ZSgnY291
bnQoL2h0bWwpJywgY2hpbGQsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5u
dW1iZXJWYWx1ZSBpcyAwCitQQVNTIGRvY3VtZW50LmV2YWx1YXRlKCdjb3VudCgvKScsIGNoaWxk
LCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVyVmFsdWUgaXMgMQor
UEFTUyBkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQoLy9odG1sKScsIGNoaWxkLCBudWxsLCBYUGF0
aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCkubnVtYmVyVmFsdWUgaXMgMAorUEFTUyBkb2N1bWVu
dC5ldmFsdWF0ZSgnY291bnQoLy9kaXYpJywgY2hpbGQsIG51bGwsIFhQYXRoUmVzdWx0Lk5VTUJF
Ul9UWVBFLCBudWxsKS5udW1iZXJWYWx1ZSBpcyAxCitQQVNTIGRvY3VtZW50LmV2YWx1YXRlKCdj
b3VudCgvL2gyKScsIGNoaWxkLCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwgbnVsbCku
bnVtYmVyVmFsdWUgaXMgMQorUEFTUyBkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQoL2gxKScsIGVs
ZSwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpLm51bWJlclZhbHVlIGlzIDEK
K1BBU1MgZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC9odG1sKScsIGVsZSwgbnVsbCwgWFBhdGhS
ZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpLm51bWJlclZhbHVlIGlzIDAKK1BBU1MgZG9jdW1lbnQu
ZXZhbHVhdGUoJ2NvdW50KC8pJywgZWxlLCBudWxsLCBYUGF0aFJlc3VsdC5OVU1CRVJfVFlQRSwg
bnVsbCkubnVtYmVyVmFsdWUgaXMgMQorUEFTUyBkb2N1bWVudC5ldmFsdWF0ZSgnY291bnQoLy9o
dG1sKScsIGVsZSwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpLm51bWJlclZh
bHVlIGlzIDAKK1BBU1MgZG9jdW1lbnQuZXZhbHVhdGUoJ2NvdW50KC8vcCknLCBlbGUsIG51bGws
IFhQYXRoUmVzdWx0Lk5VTUJFUl9UWVBFLCBudWxsKS5udW1iZXJWYWx1ZSBpcyAwCitQQVNTIGRv
Y3VtZW50LmV2YWx1YXRlKCdjb3VudCgvL2gxKScsIGVsZSwgbnVsbCwgWFBhdGhSZXN1bHQuTlVN
QkVSX1RZUEUsIG51bGwpLm51bWJlclZhbHVlIGlzIDEKK1BBU1MgZG9jdW1lbnQuZXZhbHVhdGUo
Jy8qIHwgKicsIGVsZSwgbnVsbCwgWFBhdGhSZXN1bHQuTlVNQkVSX1RZUEUsIG51bGwpLm51bWJl
clZhbHVlIGlzIE5hTgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjYzODMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wOC0yMiAgQ2hyaXMgRXZh
bnMgIDxjZXZhbnNAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXByb3ZlIHhwYXRoLWRldGFjaGVk
LW5vZGVzLmh0bWwgdGVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM2NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtv
di4KKworICAgICAgICAqIGZhc3QveHBhdGgveHBhdGgtZGV0YWNoZWQtbm9kZXMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QveHBhdGgveHBhdGgtZGV0YWNoZWQtbm9kZXMuaHRtbDogSW5j
cmVhc2UgY292ZXJhZ2UgYW5kIGltcHJvdmUgbG9nIG1lc3NhZ2VzLgorCiAyMDEyLTA4LTIyICBL
ZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIENo
cm9taXVtIGdhcmRlbmluZy4gT3B0aW1pemVkIGJhc2VsaW5lcyBmcm9tIHllc3RlcmRheQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>