<?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>65900</bug_id>
          
          <creation_ts>2011-08-08 23:16:28 -0700</creation_ts>
          <short_desc>Correctly report selected text range for accessibility APIs for role=textbox</short_desc>
          <delta_ts>2011-08-30 17:20:28 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>66638</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alice Boxhall">aboxhall</reporter>
          <assigned_to name="Alice Boxhall">aboxhall</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>davidbarr</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>mikelawther</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>448450</commentid>
    <comment_count>0</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-08 23:16:28 -0700</bug_when>
    <thetext>The selected text range is not currently reported correctly for elements with role=textbox, as the relevant code assumes selection will only be reported for browser-based editable elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448453</commentid>
    <comment_count>1</comment_count>
      <attachid>103332</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-08 23:22:58 -0700</bug_when>
    <thetext>Created attachment 103332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448457</commentid>
    <comment_count>2</comment_count>
      <attachid>103332</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-08-09 00:01:13 -0700</bug_when>
    <thetext>Comment on attachment 103332
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2567
&gt; +

I think for this method you could just return

return ariaRoleAttribute() == TextFieldRole || ariaRoleAttribute() == TextAreaRole;

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3037
&gt; +

I think generally doing things like &quot;cleanup&quot; and renaming should not be mixed with behavioral changes. it makes it harder to review. The changes in the lines above this comment look to be only superficial, but it&apos;s hard to know,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448478</commentid>
    <comment_count>3</comment_count>
      <attachid>103332</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-09 02:07:16 -0700</bug_when>
    <thetext>Comment on attachment 103332
Patch

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

&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2567
&gt;&gt; +
&gt; 
&gt; I think for this method you could just return
&gt; 
&gt; return ariaRoleAttribute() == TextFieldRole || ariaRoleAttribute() == TextAreaRole;

I don&apos;t think so, because the node in question is not necessarily the node relating to this render object (which is why this method is necessary).

I should make this method static to make that clearer.

&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3037
&gt;&gt; +
&gt; 
&gt; I think generally doing things like &quot;cleanup&quot; and renaming should not be mixed with behavioral changes. it makes it harder to review. The changes in the lines above this comment look to be only superficial, but it&apos;s hard to know,

This is not actually cleanup: I&apos;m factoring a method out so that I can call it from nodeIsTextControl() above. Since it returns an AccessibilityRole but takes a string, I thought it would be confusing to leave the parameter named &quot;ariaRole&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448480</commentid>
    <comment_count>4</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-09 02:19:11 -0700</bug_when>
    <thetext>&gt; &gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3037
&gt; &gt;&gt; +
&gt; &gt; 
&gt; &gt; I think generally doing things like &quot;cleanup&quot; and renaming should not be mixed with behavioral changes. it makes it harder to review. The changes in the lines above this comment look to be only superficial, but it&apos;s hard to know,
&gt; 
&gt; This is not actually cleanup: I&apos;m factoring a method out so that I can call it from nodeIsTextControl() above. Since it returns an AccessibilityRole but takes a string, I thought it would be confusing to leave the parameter named &quot;ariaRole&quot;.

Ah -- after a closer look I see how much state is used in the original determineAriaRoleAttribute() method, so I&apos;ll have to have another think about this.

Will have a look at it tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448896</commentid>
    <comment_count>5</comment_count>
      <attachid>103421</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-09 17:11:04 -0700</bug_when>
    <thetext>Created attachment 103421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449172</commentid>
    <comment_count>6</comment_count>
      <attachid>103421</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-08-10 08:39:20 -0700</bug_when>
    <thetext>Comment on attachment 103421
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2541
&gt; +

why does this method ask for the root editable element and then seemingly doing the same thing by iterating up the parent chain? can you add a comment why this is necessary.

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2542
&gt; +    for (const Node* n = node; n != rootEditableElement; n = n-&gt;parentNode()) {

seems like you might also want to check for n != NULL in case something does not have the correct hierarchy

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2546
&gt; +            break;

if someone did (incorrectly)

&lt;div role=&quot;textbox&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;body&gt;&lt;div&gt;

would this fail?

should you just

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2561
&gt; +    if (!axObjectForNode)

is there a reason you don&apos;t want getOrCreate() here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450973</commentid>
    <comment_count>7</comment_count>
      <attachid>103890</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-14 18:58:14 -0700</bug_when>
    <thetext>Created attachment 103890
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450974</commentid>
    <comment_count>8</comment_count>
      <attachid>103421</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-14 18:59:27 -0700</bug_when>
    <thetext>Comment on attachment 103421
Patch

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

&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2541
&gt;&gt; +
&gt; 
&gt; why does this method ask for the root editable element and then seemingly doing the same thing by iterating up the parent chain? can you add a comment why this is necessary.

Ok, I&apos;ve added a comment explaining that it&apos;s looking for the root editable or pseudo-editable element.

&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2542
&gt;&gt; +    for (const Node* n = node; n != rootEditableElement; n = n-&gt;parentNode()) {
&gt; 
&gt; seems like you might also want to check for n != NULL in case something does not have the correct hierarchy

Good catch, thanks.

&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2546
&gt;&gt; +            break;
&gt; 
&gt; if someone did (incorrectly)
&gt; 
&gt; &lt;div role=&quot;textbox&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;body&gt;&lt;div&gt;
&gt; 
&gt; would this fail?
&gt; 
&gt; should you just

I think if someone did that the problems with rendering the page would extend far beyond correctly determining the relative cursor offset for an element; regardless, this is the same logic used in the Node::rootEditableElement() http://trac.webkit.org/browser/trunk/Source/WebCore/dom/Node.cpp#L1637) method, so it&apos;ll at least be consistent.

&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2561
&gt;&gt; +    if (!axObjectForNode)
&gt; 
&gt; is there a reason you don&apos;t want getOrCreate() here

No, getOrCreate() is correct, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452144</commentid>
    <comment_count>9</comment_count>
      <attachid>103890</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-08-16 23:19:04 -0700</bug_when>
    <thetext>Comment on attachment 103890
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452195</commentid>
    <comment_count>10</comment_count>
      <attachid>103890</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-17 03:53:23 -0700</bug_when>
    <thetext>Comment on attachment 103890
Patch

Rejecting attachment 103890 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=ec2-cq-02&apos;, &apos;--port...&quot; exit_code: 2

Last 500 characters of output:
cessibilityRenderObject.cpp
Hunk #1 FAILED at 2517.
Hunk #2 succeeded at 2535 (offset 1 line).
Hunk #3 succeeded at 3025 (offset -5 lines).
Hunk #4 succeeded at 3049 (offset -5 lines).
1 out of 4 hunks FAILED -- saving rejects to file Source/WebCore/accessibility/AccessibilityRenderObject.cpp.rej
patching file Source/WebCore/accessibility/AccessibilityRenderObject.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Chris Fleizach&apos;, u&apos;--f...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/9404821</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454635</commentid>
    <comment_count>11</comment_count>
      <attachid>103890</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-22 09:45:24 -0700</bug_when>
    <thetext>Comment on attachment 103890
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2520
&gt; -    if (!indexPosition.anchorNode() || indexPosition.anchorNode()-&gt;rootEditableElement() != node)
&gt; +    if (!indexPosition.anchorNode() || rootEditableElementForNode(indexPosition.anchorNode()) != node)

Why are we calling anchorNode here?  I know you didn&apos;t write this code but calling anchorNode is almost always wrong.
See https://rniwa.com/2011-06-26/position-and-anchor-types/

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2542
&gt; +    Element* rootEditableElement = node-&gt;rootEditableElement();

What if rootEditableElement was null here?

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2546
&gt; +        if (nodeIsTextControl(n))
&gt; +            result = static_cast&lt;const Element*&gt;(n);

Do we really need to check this case?  The only way this can happen is if position&apos;s anchor node had RenderTextControl because parentNode never returns the shadow root.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454636</commentid>
    <comment_count>12</comment_count>
      <attachid>103890</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-22 09:48:06 -0700</bug_when>
    <thetext>Comment on attachment 103890
Patch

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

&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2546
&gt;&gt; +            result = static_cast&lt;const Element*&gt;(n);
&gt; 
&gt; Do we really need to check this case?  The only way this can happen is if position&apos;s anchor node had RenderTextControl because parentNode never returns the shadow root.

Also note that if the anchor node had a RenderTextControl, then the caret is outside of that text control so this seems wrong in that case as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454655</commentid>
    <comment_count>13</comment_count>
      <attachid>103890</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-22 10:15:21 -0700</bug_when>
    <thetext>Comment on attachment 103890
Patch

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

&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2546

&gt;&gt; 
&gt;&gt; Do we really need to check this case?  The only way this can happen is if position&apos;s anchor node had RenderTextControl because parentNode never returns the shadow root.
&gt; 
&gt; Also note that if the anchor node had a RenderTextControl, then the caret is outside of that text control so this seems wrong in that case as well.

Oh, never mind. IsTextControl apparently means a different thing in accessibility code.  I still think we shouldn&apos;t be using anchorNode though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455055</commentid>
    <comment_count>14</comment_count>
      <attachid>104764</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-22 16:42:13 -0700</bug_when>
    <thetext>Created attachment 104764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455192</commentid>
    <comment_count>15</comment_count>
      <attachid>104788</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-22 21:58:15 -0700</bug_when>
    <thetext>Created attachment 104788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455781</commentid>
    <comment_count>16</comment_count>
      <attachid>104788</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-23 16:08:25 -0700</bug_when>
    <thetext>Comment on attachment 104788
Patch

Chris, would you mind reviewing this again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455843</commentid>
    <comment_count>17</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-08-23 17:12:46 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 104788 [details])
&gt; Chris, would you mind reviewing this again?

Alice do you have an answer for  Ryosuke as to why we need to use anchorNode()? i didn&apos;t write this code either so i don&apos;t know</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455852</commentid>
    <comment_count>18</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-23 17:18:35 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; (From update of attachment 104788 [details] [details])
&gt; &gt; Chris, would you mind reviewing this again?
&gt; 
&gt; Alice do you have an answer for  Ryosuke as to why we need to use anchorNode()? i didn&apos;t write this code either so i don&apos;t know

Oh, thanks for the reminder; I was going to look into rewriting that section of the code and then forgot overnight. Will hopefully get a chance later today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455984</commentid>
    <comment_count>19</comment_count>
      <attachid>104966</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-23 23:15:17 -0700</bug_when>
    <thetext>Created attachment 104966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455985</commentid>
    <comment_count>20</comment_count>
      <attachid>104966</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-23 23:17:07 -0700</bug_when>
    <thetext>Comment on attachment 104966
Patch

Ryosuke, I modified the rootEditableElement method on AccessibilityRenderObject to take a Position rather than a Node, and used position.containerNode() to mimic the Position::rootEditableElement method. Is that ok?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456132</commentid>
    <comment_count>21</comment_count>
      <attachid>104966</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-24 09:27:42 -0700</bug_when>
    <thetext>Comment on attachment 104966
Patch

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

review- because of the missing null check. There are other smaller mistakes.

&gt; LayoutTests/accessibility/textbox-role-reports-selection-expected.txt:8
&gt; +PASS
&gt; +PASS
&gt; +PASS
&gt; +PASS
&gt; +PASS
&gt; +PASS

It’s much better to have tests that log some data rather than just the word PASS. See the style of the shouldBe macros, which log what is being tested, not just &quot;pass&quot;. Something to keep in mind when working on a new test.

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2538
&gt; +const Element* AccessibilityRenderObject::rootEditableElementForPosition(const Position&amp; position) const

The use of const here in const Element* doesn’t make much sense to me. Why is the element returned a const*? Does the caller not have permission to make changes to that element?

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2545
&gt; +    for (const Node* n = position.containerNode(); n &amp;&amp; n != rootEditableElement; n = n-&gt;parentNode()) {

It would be better to write this loop using parentElement. That way we could achieve type safety without at typecast.

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2563
&gt; +    const AccessibilityObject* axObjectForNode = axObjectCache()-&gt;getOrCreate(node-&gt;renderer());

What if node-&gt;renderer() is 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457287</commentid>
    <comment_count>22</comment_count>
      <attachid>105282</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-25 17:31:55 -0700</bug_when>
    <thetext>Created attachment 105282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457291</commentid>
    <comment_count>23</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-25 17:34:03 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 104966 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=104966&amp;action=review
&gt; 
&gt; review- because of the missing null check. There are other smaller mistakes.
&gt; 
&gt; &gt; LayoutTests/accessibility/textbox-role-reports-selection-expected.txt:8
&gt; &gt; +PASS
&gt; &gt; +PASS
&gt; &gt; +PASS
&gt; &gt; +PASS
&gt; &gt; +PASS
&gt; &gt; +PASS
&gt; 
&gt; It’s much better to have tests that log some data rather than just the word PASS. See the style of the shouldBe macros, which log what is being tested, not just &quot;pass&quot;. Something to keep in mind when working on a new test.

Thanks for the explanation. I&apos;ve received conflicting advice on tests; will keep this in mind for future work. (It does log more information for the fail case, at least!)

&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2538
&gt; &gt; +const Element* AccessibilityRenderObject::rootEditableElementForPosition(const Position&amp; position) const
&gt; 
&gt; The use of const here in const Element* doesn’t make much sense to me. Why is the element returned a const*? Does the caller not have permission to make changes to that element?

I was sure I had a reason, but it looks like I didn&apos;t. Fixed.

&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2545
&gt; &gt; +    for (const Node* n = position.containerNode(); n &amp;&amp; n != rootEditableElement; n = n-&gt;parentNode()) {
&gt; 
&gt; It would be better to write this loop using parentElement. That way we could achieve type safety without at typecast.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2563
&gt; &gt; +    const AccessibilityObject* axObjectForNode = axObjectCache()-&gt;getOrCreate(node-&gt;renderer());
&gt; 
&gt; What if node-&gt;renderer() is 0?

The first line of AXObjectCache::getOrCreate() does a null check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458557</commentid>
    <comment_count>24</comment_count>
      <attachid>105282</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-29 16:38:43 -0700</bug_when>
    <thetext>Comment on attachment 105282
Patch

Can anyone take a look at this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458561</commentid>
    <comment_count>25</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-08-29 16:44:56 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 105282 [details])
&gt; Can anyone take a look at this?

I think Darren&apos;s comments about the tests are the most important actually. The rest of the patch seems fine.

I think your tests should follow the style of the other accessibility tests, which use the testing framework and the shouldBe... functions to get better output.

Can you fix that? otherwise seems ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458694</commentid>
    <comment_count>26</comment_count>
      <attachid>105576</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-29 22:04:33 -0700</bug_when>
    <thetext>Created attachment 105576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458696</commentid>
    <comment_count>27</comment_count>
      <attachid>105576</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-29 22:06:25 -0700</bug_when>
    <thetext>Comment on attachment 105576
Patch

Ok, I rewrote the test to use a shouldBe style assertion. I couldn&apos;t use shouldBe directly as I wanted to include some extra information. I hope this is sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459311</commentid>
    <comment_count>28</comment_count>
      <attachid>105576</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-08-30 16:27:20 -0700</bug_when>
    <thetext>Comment on attachment 105576
Patch

Is this ok?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459324</commentid>
    <comment_count>29</comment_count>
      <attachid>105576</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-08-30 16:36:40 -0700</bug_when>
    <thetext>Comment on attachment 105576
Patch

r=me. thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459348</commentid>
    <comment_count>30</comment_count>
      <attachid>105576</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-30 17:20:23 -0700</bug_when>
    <thetext>Comment on attachment 105576
Patch

Clearing flags on attachment: 105576

Committed r94134: &lt;http://trac.webkit.org/changeset/94134&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459349</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-30 17:20:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103332</attachid>
            <date>2011-08-08 23:22:58 -0700</date>
            <delta_ts>2011-08-09 17:10:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65900-20110809162256.patch</filename>
            <type>text/plain</type>
            <size>10128</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI1NzUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YWRlMDQyZDViNWM5NDM4Yzg4MGE1
ZDk5YmE2ODM0OTJiYzYxZjMwLi5lOTBmNjY0MjkyNGQ1MWIzYjM2YjRkNGU1MWEyZGNlZjIwNmRl
N2NhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDgtMDggIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29ycmVjdGx5IHJlcG9ydCBzZWxlY3Rl
ZCB0ZXh0IHJhbmdlIGZvciBhY2Nlc3NpYmlsaXR5IEFQSXMgZm9yIHJvbGU9dGV4dGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRt
bDogQWRkZWQuCisKIDIwMTEtMDgtMDcgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtRdF0gc3ZnL3pvb20vcGFnZS96b29tLXN2Zy10aHJvdWdoLSogcmVz
dWx0cyBkaXZlcmdpbmcgYmV0d2VlbiBib3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MzNTE4MDcyNDQyMWYyYWRkNDg1NWIwZTE3MzUzMTU3
MDE3ODEwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4
dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAK
K1RoaXMgdGVzdHMgdGhhdCB0aGUgQVhTZWxlY3Rpb24gcHJvcGVydHkgaXMgY29ycmVjdGx5IHJl
cG9ydGVkIGZvciBub24tbmF0aXZlIHRleHQgYm94ZXMuCitTb21lIHRleHQgaW4gYSB0ZXh0Ym94
ICgzNCBjaGFycykuCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2Vs
ZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBv
cnRzLXNlbGVjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhOWM3Mzg5YzUzZjJlMTJhNjNjMzM5Y2Fh
ZWNhZWM0Mzg1MzY3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi5odG1sCkBAIC0wLDAgKzEsNDUgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQz4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4K
K1RoaXMgdGVzdHMgdGhhdCB0aGUgQVhTZWxlY3Rpb24gcHJvcGVydHkgaXMgY29ycmVjdGx5IHJl
cG9ydGVkIGZvciBub24tbmF0aXZlIHRleHQgYm94ZXMuPGJyPgorPGRpdiByb2xlPSJ0ZXh0Ym94
IiBpZD0iYXJpYVRleHRCb3giIGFyaWEtbXVsdGlsaW5lPSJmYWxzZSIgdGFiaW5kZXg9IjAiPlNv
bWUgdGV4dCBpbiBhIHRleHRib3ggKDM0IGNoYXJzKS48L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+
PC9kaXY+Cis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGFzc2VydEVxdWFscyhhY3R1YWwsIGV4cGVj
dGVkLCBtZXNzYWdlKSB7CisgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic3BhbiIpOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuYXBw
ZW5kQ2hpbGQoc3Bhbik7CisgICAgICAgIGlmIChhY3R1YWwgPT0gZXhwZWN0ZWQpIHsKKyAgICAg
ICAgICAgIHNwYW4uaW5uZXJIVE1MID0gIlBBU1M8YnI+IjsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIHNwYW4uaW5uZXJIVE1MID0gIkZBSUw6IGV4cGVjdGVkICIgKyBleHBlY3RlZCAr
ICIsIGdvdCAiICsgYWN0dWFsOworICAgICAgICAgICAgaWYgKG1lc3NhZ2UpCisgICAgICAgICAg
ICAgICAgc3Bhbi5pbm5lckhUTUwgKz0gIiAtICIgKyBtZXNzYWdlOworICAgICAgICAgICAgc3Bh
bi5pbm5lckhUTUwgKz0gIjxicj4iOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24g
YXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9uKGVsZW1lbnQsIHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rp
b25FbmQsIG1lc3NhZ2UpIHsKKyAgICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgICB3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChlbGVtZW50LmZpcnN0Q2hpbGQsIHNl
bGVjdGlvblN0YXJ0LCBlbGVtZW50LmZpcnN0Q2hpbGQsIHNlbGVjdGlvbkVuZCk7CisgICAgICAg
IHZhciBheEVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsK
KyAgICAgICAgdmFyIGF4U2VsZWN0aW9uID0gYXhFbGVtZW50LnNlbGVjdGVkVGV4dFJhbmdlOwor
ICAgICAgICBhc3NlcnRFcXVhbHMoYXhTZWxlY3Rpb24sICJ7IiArIHNlbGVjdGlvblN0YXJ0ICsg
IiwgIiArIChzZWxlY3Rpb25FbmQgLSBzZWxlY3Rpb25TdGFydCkgKyAifSIsIG1lc3NhZ2UpOwor
ICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHZhciBhcmlhVGV4dEJveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJhcmlhVGV4dEJveCIpOworICAgICAgICB2YXIgdGV4dExlbmd0aCA9IGFy
aWFUZXh0Qm94LnRleHRDb250ZW50Lmxlbmd0aDsKKworICAgICAgICBhc3NlcnRDb3JyZWN0QVhT
ZWxlY3Rpb24oYXJpYVRleHRCb3gsIDAsIDAsICJDb2xsYXBzZWQgc2VsZWN0aW9uIGF0IHN0YXJ0
Iik7CisgICAgICAgIGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgdGV4dExl
bmd0aCwgdGV4dExlbmd0aCwgIkNvbGxhcHNlZCBzZWxlY3Rpb24gYXQgZW5kIik7CisgICAgICAg
IGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgMTUsIDE1LCAiQ29sbGFwc2Vk
IHNlbGVjdGlvbiBpbiB0aGUgbWlkZGxlIik7CisgICAgICAgIGFzc2VydENvcnJlY3RBWFNlbGVj
dGlvbihhcmlhVGV4dEJveCwgMTUsIDE3LCAiTm9uLWNvbGxhcHNlZCBzZWxlY3Rpb24gaW4gdGhl
IG1pZGRsZSIpOworICAgICAgICBhc3NlcnRDb3JyZWN0QVhTZWxlY3Rpb24oYXJpYVRleHRCb3gs
IDAsIDE1LCAiTm9uLWNvbGxhcHNlZCBzZWxlY3Rpb24gYXQgdGhlIHN0YXJ0Iik7CisgICAgICAg
IGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgMTUsIHRleHRMZW5ndGgsICJO
b24tY29sbGFwc2VkIHNlbGVjdGlvbiBhdCB0aGUgZW5kIik7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2NlNDQ1MjhmNGZmMDgwODY5MTQ4MmQ1M2Ni
NDAxMGEyZTAwNjI4My4uODc3YjdhMjJlNWMwOWUzMWU4NjVjNTY5NjllYTE3MmM3NThhNDY4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTA4LTA4ICBBbGljZSBCb3hoYWxsICA8
YWJveGhhbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvcnJlY3RseSByZXBvcnQgc2VsZWN0
ZWQgdGV4dCByYW5nZSBmb3IgYWNjZXNzaWJpbGl0eSBBUElzIGZvciByb2xlPXRleHRib3gKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1OTAwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogYWNjZXNz
aWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRtbAorCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJvb3RFZGl0
YWJsZUVsZW1lbnRGb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6Om5vZGVJc1RleHRDb250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFyaWFSb2xlQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFyaWFSb2xlRnJvbVJvbGVBdHRy
aWJ1dGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5oOgorCiAyMDExLTA4LTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNv
bT4KIAogICAgICAgICBEaXN0cmlidXRpb24gZml4IGZvciBHVEsrLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKaW5kZXggNDY3MjQ0NzJiYThkNjYyYThhMjZiYzQ2MzgwMTIzZTljNDlkNTg0Ny4uODFkZDBl
ZGUxYTM4YTg0ZWFjN2Y2NWU0MDg4NWNhMjMyMjM2NzQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CkBAIC0yNTE3LDcgKzI1MTcsNyBAQCBpbnQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5k
ZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwbwogICAgICAgICBy
ZXR1cm4gMDsKICAgICAKICAgICBQb3NpdGlvbiBpbmRleFBvc2l0aW9uID0gcG9zLmRlZXBFcXVp
dmFsZW50KCk7Ci0gICAgaWYgKCFpbmRleFBvc2l0aW9uLmFuY2hvck5vZGUoKSB8fCBpbmRleFBv
c2l0aW9uLmFuY2hvck5vZGUoKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpICE9IG5vZGUpCisgICAg
aWYgKCFpbmRleFBvc2l0aW9uLmFuY2hvck5vZGUoKSB8fCByb290RWRpdGFibGVFbGVtZW50Rm9y
Tm9kZShpbmRleFBvc2l0aW9uLmFuY2hvck5vZGUoKSkgIT0gbm9kZSkKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBAIC0yNTM0LDYgKzI1MzQsMzcg
QEAgaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9u
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG8KICNlbmRpZgogfQogCitjb25zdCBFbGVtZW50KiBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpyb290RWRpdGFibGVFbGVtZW50Rm9yTm9kZShjb25z
dCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQg
PSBub2RlLT5yb290RWRpdGFibGVFbGVtZW50KCk7CisgICAgY29uc3QgRWxlbWVudCogcmVzdWx0
ID0gMDsKKworICAgIGZvciAoY29uc3QgTm9kZSogbiA9IG5vZGU7IG4gIT0gcm9vdEVkaXRhYmxl
RWxlbWVudDsgbiA9IG4tPnBhcmVudE5vZGUoKSkgeworICAgICAgICBpZiAobm9kZUlzVGV4dENv
bnRyb2wobikpCisgICAgICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxjb25zdCBFbGVtZW50
Kj4obik7CisgICAgICAgIGlmIChuLT5oYXNUYWdOYW1lKGJvZHlUYWcpKQorICAgICAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KworICAgIHJldHVybiByb290RWRpdGFibGVFbGVtZW50OworfQorCitib29sIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6Om5vZGVJc1RleHRDb250cm9sKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0
Cit7CisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcm9sZSA9IHN0YXRpY19jYXN0PGNvbnN0IEVs
ZW1lbnQqPihub2RlKS0+Z2V0QXR0cmlidXRlKHJvbGVBdHRyKTsKKyAgICBpZiAocm9sZS5pc051
bGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgQWNjZXNzaWJpbGl0eVJv
bGUgYWNjZXNzaWJpbGl0eVJvbGUgPSBhcmlhUm9sZUZyb21Sb2xlQXR0cmlidXRlKHJvbGUpOwor
ICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5Um9sZSA9PSBUZXh0RmllbGRSb2xlIHx8IGFjY2Vzc2li
aWxpdHlSb2xlID09IFRleHRBcmVhUm9sZTsKK30KKwogSW50UmVjdCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojpib3VuZHNGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9z
aXRpb25SYW5nZSYgdmlzaWJsZVBvc2l0aW9uUmFuZ2UpIGNvbnN0CiB7CiAgICAgaWYgKHZpc2li
bGVQb3NpdGlvblJhbmdlLmlzTnVsbCgpKQpAQCAtMjk4OCwxNyArMzAxOSwyMiBAQCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpvYnNlcnZhYmxlT2JqZWN0
KCkgY29uc3QKIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRl
dGVybWluZUFyaWFSb2xlQXR0cmlidXRlKCkgY29uc3QKIHsKICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIGFyaWFSb2xlID0gZ2V0QXR0cmlidXRlKHJvbGVBdHRyKTsKLSAgICBpZiAoYXJpYVJvbGUu
aXNOdWxsKCkgfHwgYXJpYVJvbGUuaXNFbXB0eSgpKQorICAgIHJldHVybiBhcmlhUm9sZUZyb21S
b2xlQXR0cmlidXRlKGFyaWFSb2xlKTsKK30KKworQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6YXJpYVJvbGVGcm9tUm9sZUF0dHJpYnV0ZShjb25zdCBBdG9taWNT
dHJpbmcmIGFyaWFSb2xlQXR0cikgY29uc3QKK3sKKyAgICBpZiAoYXJpYVJvbGVBdHRyLmlzTnVs
bCgpIHx8IGFyaWFSb2xlQXR0ci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBVbmtub3duUm9s
ZTsKICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlID0gYXJpYVJvbGVUb1dlYkNvcmVS
b2xlKGFyaWFSb2xlKTsKKyAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlID0gYXJpYVJvbGVUb1dl
YkNvcmVSb2xlKGFyaWFSb2xlQXR0cik7CiAKICAgICBpZiAocm9sZSA9PSBCdXR0b25Sb2xlICYm
IGFyaWFIYXNQb3B1cCgpKQogICAgICAgICByb2xlID0gUG9wVXBCdXR0b25Sb2xlOwogCiAgICAg
aWYgKHJvbGUgPT0gVGV4dEFyZWFSb2xlICYmICFhcmlhSXNNdWx0aWxpbmUoKSkKICAgICAgICAg
cm9sZSA9IFRleHRGaWVsZFJvbGU7Ci0gICAgCisKICAgICBpZiAocm9sZSkKICAgICAgICAgcmV0
dXJuIHJvbGU7CiAKQEAgLTMwMDksMjAgKzMwNDUsMjAgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25z
dAogICAgIEFjY2Vzc2liaWxpdHlSb2xlIHBhcmVudEFyaWFSb2xlID0gcGFyZW50T2JqZWN0LT5h
cmlhUm9sZUF0dHJpYnV0ZSgpOwogCiAgICAgLy8gc2VsZWN0cyBhbmQgbGlzdGJveGVzIGJvdGgg
aGF2ZSBvcHRpb25zIGFzIGNoaWxkIHJvbGVzLCBidXQgdGhleSBtYXAgdG8gZGlmZmVyZW50IHJv
bGVzIHdpdGhpbiBXZWJDb3JlCi0gICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGFyaWFSb2xlLCAi
b3B0aW9uIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoYXJpYVJvbGVBdHRyLCAib3B0
aW9uIikpIHsKICAgICAgICAgaWYgKHBhcmVudEFyaWFSb2xlID09IE1lbnVSb2xlKQogICAgICAg
ICAgICAgcmV0dXJuIE1lbnVJdGVtUm9sZTsKICAgICAgICAgaWYgKHBhcmVudEFyaWFSb2xlID09
IExpc3RCb3hSb2xlKQogICAgICAgICAgICAgcmV0dXJuIExpc3RCb3hPcHRpb25Sb2xlOwogICAg
IH0KICAgICAvLyBhbiBhcmlhICJtZW51aXRlbSIgbWF5IG1hcCB0byBNZW51QnV0dG9uIG9yIE1l
bnVJdGVtIGRlcGVuZGluZyBvbiBpdHMgcGFyZW50Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdDYXNl
KGFyaWFSb2xlLCAibWVudWl0ZW0iKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShhcmlh
Um9sZUF0dHIsICJtZW51aXRlbSIpKSB7CiAgICAgICAgIGlmIChwYXJlbnRBcmlhUm9sZSA9PSBH
cm91cFJvbGUpCiAgICAgICAgICAgICByZXR1cm4gTWVudUJ1dHRvblJvbGU7CiAgICAgICAgIGlm
IChwYXJlbnRBcmlhUm9sZSA9PSBNZW51Um9sZSB8fCBwYXJlbnRBcmlhUm9sZSA9PSBNZW51QmFy
Um9sZSkKICAgICAgICAgICAgIHJldHVybiBNZW51SXRlbVJvbGU7CiAgICAgfQotICAgIAorCiAg
ICAgcmV0dXJuIFVua25vd25Sb2xlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IGQwYjY3ZmFl
YWI5ODg2ZGQ2MDgyODQyZTZkY2FjNGE1NDFiNjc3MjkuLmJiNjE1MjY3MjU5NGE4MWM3NTI3NzY0
NmI2YTIxNjlmMDE0MzAyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0yNDYsNyArMjQ2LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9y
SW5kZXgoaW50KSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBpbmRleEZvclZpc2libGVQb3NpdGlv
bihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdDsKLSAgICAKKwogICAgIHZpcnR1YWwgUGxh
aW5UZXh0UmFuZ2UgZG9BWFJhbmdlRm9yTGluZSh1bnNpZ25lZCkgY29uc3Q7CiAgICAgdmlydHVh
bCBQbGFpblRleHRSYW5nZSBkb0FYUmFuZ2VGb3JJbmRleCh1bnNpZ25lZCkgY29uc3Q7CiAgICAg
CkBAIC0yNzksMTEgKzI3OSwxNCBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFzVGV4dEFsdGVybmF0
aXZlKCkgY29uc3Q7CiAgICAgU3RyaW5nIHBvc2l0aW9uYWxEZXNjcmlwdGlvbkZvck1TQUEoKSBj
b25zdDsKICAgICBQbGFpblRleHRSYW5nZSBhcmlhU2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdDsK
KyAgICBjb25zdCBFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50Rm9yTm9kZShjb25zdCBOb2Rl
KikgY29uc3Q7CisgICAgYm9vbCBub2RlSXNUZXh0Q29udHJvbChjb25zdCBOb2RlKikgY29uc3Q7
CiAKICAgICBFbGVtZW50KiBtZW51RWxlbWVudEZvck1lbnVCdXR0b24oKSBjb25zdDsKICAgICBF
bGVtZW50KiBtZW51SXRlbUVsZW1lbnRGb3JNZW51KCkgY29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0
eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKTsKICAgICBBY2Nlc3NpYmlsaXR5Um9s
ZSBkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpIGNvbnN0OworICAgIEFjY2Vzc2liaWxpdHlS
b2xlIGFyaWFSb2xlRnJvbVJvbGVBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJiBhcmlhUm9s
ZUF0dHIpIGNvbnN0OwogCiAgICAgYm9vbCBpc1RhYkl0ZW1TZWxlY3RlZCgpIGNvbnN0OwogICAg
IHZvaWQgYWx0ZXJTbGlkZXJWYWx1ZShib29sIGluY3JlYXNlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103421</attachid>
            <date>2011-08-09 17:11:04 -0700</date>
            <delta_ts>2011-08-22 16:41:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65900-20110810101101.patch</filename>
            <type>text/plain</type>
            <size>8313</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI1NzUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YWRlMDQyZDViNWM5NDM4Yzg4MGE1
ZDk5YmE2ODM0OTJiYzYxZjMwLi5lOTBmNjY0MjkyNGQ1MWIzYjM2YjRkNGU1MWEyZGNlZjIwNmRl
N2NhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDgtMDggIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29ycmVjdGx5IHJlcG9ydCBzZWxlY3Rl
ZCB0ZXh0IHJhbmdlIGZvciBhY2Nlc3NpYmlsaXR5IEFQSXMgZm9yIHJvbGU9dGV4dGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRt
bDogQWRkZWQuCisKIDIwMTEtMDgtMDcgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtRdF0gc3ZnL3pvb20vcGFnZS96b29tLXN2Zy10aHJvdWdoLSogcmVz
dWx0cyBkaXZlcmdpbmcgYmV0d2VlbiBib3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MzNTE4MDcyNDQyMWYyYWRkNDg1NWIwZTE3MzUzMTU3
MDE3ODEwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4
dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAK
K1RoaXMgdGVzdHMgdGhhdCB0aGUgQVhTZWxlY3Rpb24gcHJvcGVydHkgaXMgY29ycmVjdGx5IHJl
cG9ydGVkIGZvciBub24tbmF0aXZlIHRleHQgYm94ZXMuCitTb21lIHRleHQgaW4gYSB0ZXh0Ym94
ICgzNCBjaGFycykuCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2Vs
ZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBv
cnRzLXNlbGVjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhOWM3Mzg5YzUzZjJlMTJhNjNjMzM5Y2Fh
ZWNhZWM0Mzg1MzY3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi5odG1sCkBAIC0wLDAgKzEsNDUgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQz4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4K
K1RoaXMgdGVzdHMgdGhhdCB0aGUgQVhTZWxlY3Rpb24gcHJvcGVydHkgaXMgY29ycmVjdGx5IHJl
cG9ydGVkIGZvciBub24tbmF0aXZlIHRleHQgYm94ZXMuPGJyPgorPGRpdiByb2xlPSJ0ZXh0Ym94
IiBpZD0iYXJpYVRleHRCb3giIGFyaWEtbXVsdGlsaW5lPSJmYWxzZSIgdGFiaW5kZXg9IjAiPlNv
bWUgdGV4dCBpbiBhIHRleHRib3ggKDM0IGNoYXJzKS48L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+
PC9kaXY+Cis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGFzc2VydEVxdWFscyhhY3R1YWwsIGV4cGVj
dGVkLCBtZXNzYWdlKSB7CisgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic3BhbiIpOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuYXBw
ZW5kQ2hpbGQoc3Bhbik7CisgICAgICAgIGlmIChhY3R1YWwgPT0gZXhwZWN0ZWQpIHsKKyAgICAg
ICAgICAgIHNwYW4uaW5uZXJIVE1MID0gIlBBU1M8YnI+IjsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIHNwYW4uaW5uZXJIVE1MID0gIkZBSUw6IGV4cGVjdGVkICIgKyBleHBlY3RlZCAr
ICIsIGdvdCAiICsgYWN0dWFsOworICAgICAgICAgICAgaWYgKG1lc3NhZ2UpCisgICAgICAgICAg
ICAgICAgc3Bhbi5pbm5lckhUTUwgKz0gIiAtICIgKyBtZXNzYWdlOworICAgICAgICAgICAgc3Bh
bi5pbm5lckhUTUwgKz0gIjxicj4iOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24g
YXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9uKGVsZW1lbnQsIHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rp
b25FbmQsIG1lc3NhZ2UpIHsKKyAgICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgICB3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChlbGVtZW50LmZpcnN0Q2hpbGQsIHNl
bGVjdGlvblN0YXJ0LCBlbGVtZW50LmZpcnN0Q2hpbGQsIHNlbGVjdGlvbkVuZCk7CisgICAgICAg
IHZhciBheEVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsK
KyAgICAgICAgdmFyIGF4U2VsZWN0aW9uID0gYXhFbGVtZW50LnNlbGVjdGVkVGV4dFJhbmdlOwor
ICAgICAgICBhc3NlcnRFcXVhbHMoYXhTZWxlY3Rpb24sICJ7IiArIHNlbGVjdGlvblN0YXJ0ICsg
IiwgIiArIChzZWxlY3Rpb25FbmQgLSBzZWxlY3Rpb25TdGFydCkgKyAifSIsIG1lc3NhZ2UpOwor
ICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHZhciBhcmlhVGV4dEJveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJhcmlhVGV4dEJveCIpOworICAgICAgICB2YXIgdGV4dExlbmd0aCA9IGFy
aWFUZXh0Qm94LnRleHRDb250ZW50Lmxlbmd0aDsKKworICAgICAgICBhc3NlcnRDb3JyZWN0QVhT
ZWxlY3Rpb24oYXJpYVRleHRCb3gsIDAsIDAsICJDb2xsYXBzZWQgc2VsZWN0aW9uIGF0IHN0YXJ0
Iik7CisgICAgICAgIGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgdGV4dExl
bmd0aCwgdGV4dExlbmd0aCwgIkNvbGxhcHNlZCBzZWxlY3Rpb24gYXQgZW5kIik7CisgICAgICAg
IGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgMTUsIDE1LCAiQ29sbGFwc2Vk
IHNlbGVjdGlvbiBpbiB0aGUgbWlkZGxlIik7CisgICAgICAgIGFzc2VydENvcnJlY3RBWFNlbGVj
dGlvbihhcmlhVGV4dEJveCwgMTUsIDE3LCAiTm9uLWNvbGxhcHNlZCBzZWxlY3Rpb24gaW4gdGhl
IG1pZGRsZSIpOworICAgICAgICBhc3NlcnRDb3JyZWN0QVhTZWxlY3Rpb24oYXJpYVRleHRCb3gs
IDAsIDE1LCAiTm9uLWNvbGxhcHNlZCBzZWxlY3Rpb24gYXQgdGhlIHN0YXJ0Iik7CisgICAgICAg
IGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgMTUsIHRleHRMZW5ndGgsICJO
b24tY29sbGFwc2VkIHNlbGVjdGlvbiBhdCB0aGUgZW5kIik7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2NlNDQ1MjhmNGZmMDgwODY5MTQ4MmQ1M2Ni
NDAxMGEyZTAwNjI4My4uODc3YjdhMjJlNWMwOWUzMWU4NjVjNTY5NjllYTE3MmM3NThhNDY4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTA4LTA4ICBBbGljZSBCb3hoYWxsICA8
YWJveGhhbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvcnJlY3RseSByZXBvcnQgc2VsZWN0
ZWQgdGV4dCByYW5nZSBmb3IgYWNjZXNzaWJpbGl0eSBBUElzIGZvciByb2xlPXRleHRib3gKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1OTAwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogYWNjZXNz
aWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRtbAorCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJvb3RFZGl0
YWJsZUVsZW1lbnRGb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6Om5vZGVJc1RleHRDb250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFyaWFSb2xlQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFyaWFSb2xlRnJvbVJvbGVBdHRy
aWJ1dGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5oOgorCiAyMDExLTA4LTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNv
bT4KIAogICAgICAgICBEaXN0cmlidXRpb24gZml4IGZvciBHVEsrLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKaW5kZXggNDY3MjQ0NzJiYThkNjYyYThhMjZiYzQ2MzgwMTIzZTljNDlkNTg0Ny4uZjYyNjU4
NmNjM2Y5OGJlZTAxYWVmMzgzZWUyYTk0YmYxNzBkZGFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CkBAIC0yNTE3LDcgKzI1MTcsNyBAQCBpbnQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5k
ZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwbwogICAgICAgICBy
ZXR1cm4gMDsKICAgICAKICAgICBQb3NpdGlvbiBpbmRleFBvc2l0aW9uID0gcG9zLmRlZXBFcXVp
dmFsZW50KCk7Ci0gICAgaWYgKCFpbmRleFBvc2l0aW9uLmFuY2hvck5vZGUoKSB8fCBpbmRleFBv
c2l0aW9uLmFuY2hvck5vZGUoKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpICE9IG5vZGUpCisgICAg
aWYgKCFpbmRleFBvc2l0aW9uLmFuY2hvck5vZGUoKSB8fCByb290RWRpdGFibGVFbGVtZW50Rm9y
Tm9kZShpbmRleFBvc2l0aW9uLmFuY2hvck5vZGUoKSkgIT0gbm9kZSkKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBAIC0yNTM0LDYgKzI1MzQsMzYg
QEAgaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9u
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG8KICNlbmRpZgogfQogCitjb25zdCBFbGVtZW50KiBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpyb290RWRpdGFibGVFbGVtZW50Rm9yTm9kZShjb25z
dCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQg
PSBub2RlLT5yb290RWRpdGFibGVFbGVtZW50KCk7CisgICAgY29uc3QgRWxlbWVudCogcmVzdWx0
ID0gMDsKKworICAgIGZvciAoY29uc3QgTm9kZSogbiA9IG5vZGU7IG4gIT0gcm9vdEVkaXRhYmxl
RWxlbWVudDsgbiA9IG4tPnBhcmVudE5vZGUoKSkgeworICAgICAgICBpZiAobm9kZUlzVGV4dENv
bnRyb2wobikpCisgICAgICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxjb25zdCBFbGVtZW50
Kj4obik7CisgICAgICAgIGlmIChuLT5oYXNUYWdOYW1lKGJvZHlUYWcpKQorICAgICAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KworICAgIHJldHVybiByb290RWRpdGFibGVFbGVtZW50OworfQorCitib29sIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6Om5vZGVJc1RleHRDb250cm9sKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0
Cit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjb25zdCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBheE9iamVjdEZvck5vZGUgPSBheE9iamVjdENhY2hlKCktPmdl
dChub2RlLT5yZW5kZXJlcigpKTsKKyAgICBpZiAoIWF4T2JqZWN0Rm9yTm9kZSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGF4T2JqZWN0Rm9yTm9kZS0+aXNUZXh0Q29udHJv
bCgpOworfQorCiBJbnRSZWN0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmJvdW5kc0ZvclZp
c2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJiB2aXNpYmxlUG9z
aXRpb25SYW5nZSkgY29uc3QKIHsKICAgICBpZiAodmlzaWJsZVBvc2l0aW9uUmFuZ2UuaXNOdWxs
KCkpCkBAIC0yOTk4LDcgKzMwMjgsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpIGNvbnN0CiAKICAgICBp
ZiAocm9sZSA9PSBUZXh0QXJlYVJvbGUgJiYgIWFyaWFJc011bHRpbGluZSgpKQogICAgICAgICBy
b2xlID0gVGV4dEZpZWxkUm9sZTsKLSAgICAKKwogICAgIGlmIChyb2xlKQogICAgICAgICByZXR1
cm4gcm9sZTsKIApAQCAtMzAyMiw3ICszMDUyLDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25zdAog
ICAgICAgICBpZiAocGFyZW50QXJpYVJvbGUgPT0gTWVudVJvbGUgfHwgcGFyZW50QXJpYVJvbGUg
PT0gTWVudUJhclJvbGUpCiAgICAgICAgICAgICByZXR1cm4gTWVudUl0ZW1Sb2xlOwogICAgIH0K
LSAgICAKKwogICAgIHJldHVybiBVbmtub3duUm9sZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRl
eCBkMGI2N2ZhZWFiOTg4NmRkNjA4Mjg0MmU2ZGNhYzRhNTQxYjY3NzI5Li5iYWM0Yzg5MzRlNDUz
YzAwZWRiNTU5Zjk1YmY5YTE4MTI4ODYxZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtMjQ2LDcg
KzI0Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQ
b3NpdGlvbkZvckluZGV4KGludCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgaW5kZXhGb3JWaXNp
YmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Q7Ci0gICAgCisKICAgICB2
aXJ0dWFsIFBsYWluVGV4dFJhbmdlIGRvQVhSYW5nZUZvckxpbmUodW5zaWduZWQpIGNvbnN0Owog
ICAgIHZpcnR1YWwgUGxhaW5UZXh0UmFuZ2UgZG9BWFJhbmdlRm9ySW5kZXgodW5zaWduZWQpIGNv
bnN0OwogICAgIApAQCAtMjc5LDYgKzI3OSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNUZXh0
QWx0ZXJuYXRpdmUoKSBjb25zdDsKICAgICBTdHJpbmcgcG9zaXRpb25hbERlc2NyaXB0aW9uRm9y
TVNBQSgpIGNvbnN0OwogICAgIFBsYWluVGV4dFJhbmdlIGFyaWFTZWxlY3RlZFRleHRSYW5nZSgp
IGNvbnN0OworICAgIGNvbnN0IEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JOb2RlKGNv
bnN0IE5vZGUqKSBjb25zdDsKKyAgICBib29sIG5vZGVJc1RleHRDb250cm9sKGNvbnN0IE5vZGUq
KSBjb25zdDsKIAogICAgIEVsZW1lbnQqIG1lbnVFbGVtZW50Rm9yTWVudUJ1dHRvbigpIGNvbnN0
OwogICAgIEVsZW1lbnQqIG1lbnVJdGVtRWxlbWVudEZvck1lbnUoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103890</attachid>
            <date>2011-08-14 18:58:14 -0700</date>
            <delta_ts>2011-08-22 16:42:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65900-20110815115811.patch</filename>
            <type>text/plain</type>
            <size>8427</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI1NzUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YWRlMDQyZDViNWM5NDM4Yzg4MGE1
ZDk5YmE2ODM0OTJiYzYxZjMwLi5lOTBmNjY0MjkyNGQ1MWIzYjM2YjRkNGU1MWEyZGNlZjIwNmRl
N2NhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDgtMDggIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29ycmVjdGx5IHJlcG9ydCBzZWxlY3Rl
ZCB0ZXh0IHJhbmdlIGZvciBhY2Nlc3NpYmlsaXR5IEFQSXMgZm9yIHJvbGU9dGV4dGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRt
bDogQWRkZWQuCisKIDIwMTEtMDgtMDcgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtRdF0gc3ZnL3pvb20vcGFnZS96b29tLXN2Zy10aHJvdWdoLSogcmVz
dWx0cyBkaXZlcmdpbmcgYmV0d2VlbiBib3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MzNTE4MDcyNDQyMWYyYWRkNDg1NWIwZTE3MzUzMTU3
MDE3ODEwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4
dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAK
K1RoaXMgdGVzdHMgdGhhdCB0aGUgQVhTZWxlY3Rpb24gcHJvcGVydHkgaXMgY29ycmVjdGx5IHJl
cG9ydGVkIGZvciBub24tbmF0aXZlIHRleHQgYm94ZXMuCitTb21lIHRleHQgaW4gYSB0ZXh0Ym94
ICgzNCBjaGFycykuCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2Vs
ZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBv
cnRzLXNlbGVjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhOWM3Mzg5YzUzZjJlMTJhNjNjMzM5Y2Fh
ZWNhZWM0Mzg1MzY3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi5odG1sCkBAIC0wLDAgKzEsNDUgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQz4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4K
K1RoaXMgdGVzdHMgdGhhdCB0aGUgQVhTZWxlY3Rpb24gcHJvcGVydHkgaXMgY29ycmVjdGx5IHJl
cG9ydGVkIGZvciBub24tbmF0aXZlIHRleHQgYm94ZXMuPGJyPgorPGRpdiByb2xlPSJ0ZXh0Ym94
IiBpZD0iYXJpYVRleHRCb3giIGFyaWEtbXVsdGlsaW5lPSJmYWxzZSIgdGFiaW5kZXg9IjAiPlNv
bWUgdGV4dCBpbiBhIHRleHRib3ggKDM0IGNoYXJzKS48L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+
PC9kaXY+Cis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGFzc2VydEVxdWFscyhhY3R1YWwsIGV4cGVj
dGVkLCBtZXNzYWdlKSB7CisgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic3BhbiIpOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuYXBw
ZW5kQ2hpbGQoc3Bhbik7CisgICAgICAgIGlmIChhY3R1YWwgPT0gZXhwZWN0ZWQpIHsKKyAgICAg
ICAgICAgIHNwYW4uaW5uZXJIVE1MID0gIlBBU1M8YnI+IjsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIHNwYW4uaW5uZXJIVE1MID0gIkZBSUw6IGV4cGVjdGVkICIgKyBleHBlY3RlZCAr
ICIsIGdvdCAiICsgYWN0dWFsOworICAgICAgICAgICAgaWYgKG1lc3NhZ2UpCisgICAgICAgICAg
ICAgICAgc3Bhbi5pbm5lckhUTUwgKz0gIiAtICIgKyBtZXNzYWdlOworICAgICAgICAgICAgc3Bh
bi5pbm5lckhUTUwgKz0gIjxicj4iOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24g
YXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9uKGVsZW1lbnQsIHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rp
b25FbmQsIG1lc3NhZ2UpIHsKKyAgICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgICB3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChlbGVtZW50LmZpcnN0Q2hpbGQsIHNl
bGVjdGlvblN0YXJ0LCBlbGVtZW50LmZpcnN0Q2hpbGQsIHNlbGVjdGlvbkVuZCk7CisgICAgICAg
IHZhciBheEVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsK
KyAgICAgICAgdmFyIGF4U2VsZWN0aW9uID0gYXhFbGVtZW50LnNlbGVjdGVkVGV4dFJhbmdlOwor
ICAgICAgICBhc3NlcnRFcXVhbHMoYXhTZWxlY3Rpb24sICJ7IiArIHNlbGVjdGlvblN0YXJ0ICsg
IiwgIiArIChzZWxlY3Rpb25FbmQgLSBzZWxlY3Rpb25TdGFydCkgKyAifSIsIG1lc3NhZ2UpOwor
ICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHZhciBhcmlhVGV4dEJveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJhcmlhVGV4dEJveCIpOworICAgICAgICB2YXIgdGV4dExlbmd0aCA9IGFy
aWFUZXh0Qm94LnRleHRDb250ZW50Lmxlbmd0aDsKKworICAgICAgICBhc3NlcnRDb3JyZWN0QVhT
ZWxlY3Rpb24oYXJpYVRleHRCb3gsIDAsIDAsICJDb2xsYXBzZWQgc2VsZWN0aW9uIGF0IHN0YXJ0
Iik7CisgICAgICAgIGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgdGV4dExl
bmd0aCwgdGV4dExlbmd0aCwgIkNvbGxhcHNlZCBzZWxlY3Rpb24gYXQgZW5kIik7CisgICAgICAg
IGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgMTUsIDE1LCAiQ29sbGFwc2Vk
IHNlbGVjdGlvbiBpbiB0aGUgbWlkZGxlIik7CisgICAgICAgIGFzc2VydENvcnJlY3RBWFNlbGVj
dGlvbihhcmlhVGV4dEJveCwgMTUsIDE3LCAiTm9uLWNvbGxhcHNlZCBzZWxlY3Rpb24gaW4gdGhl
IG1pZGRsZSIpOworICAgICAgICBhc3NlcnRDb3JyZWN0QVhTZWxlY3Rpb24oYXJpYVRleHRCb3gs
IDAsIDE1LCAiTm9uLWNvbGxhcHNlZCBzZWxlY3Rpb24gYXQgdGhlIHN0YXJ0Iik7CisgICAgICAg
IGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgMTUsIHRleHRMZW5ndGgsICJO
b24tY29sbGFwc2VkIHNlbGVjdGlvbiBhdCB0aGUgZW5kIik7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2NlNDQ1MjhmNGZmMDgwODY5MTQ4MmQ1M2Ni
NDAxMGEyZTAwNjI4My4uODc3YjdhMjJlNWMwOWUzMWU4NjVjNTY5NjllYTE3MmM3NThhNDY4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTA4LTA4ICBBbGljZSBCb3hoYWxsICA8
YWJveGhhbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvcnJlY3RseSByZXBvcnQgc2VsZWN0
ZWQgdGV4dCByYW5nZSBmb3IgYWNjZXNzaWJpbGl0eSBBUElzIGZvciByb2xlPXRleHRib3gKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1OTAwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogYWNjZXNz
aWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRtbAorCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJvb3RFZGl0
YWJsZUVsZW1lbnRGb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6Om5vZGVJc1RleHRDb250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFyaWFSb2xlQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFyaWFSb2xlRnJvbVJvbGVBdHRy
aWJ1dGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5oOgorCiAyMDExLTA4LTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNv
bT4KIAogICAgICAgICBEaXN0cmlidXRpb24gZml4IGZvciBHVEsrLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKaW5kZXggNDY3MjQ0NzJiYThkNjYyYThhMjZiYzQ2MzgwMTIzZTljNDlkNTg0Ny4uZTU0NTI5
MzZjZWY0YmFlMjE5YTJjZTU2ZThjNDU3NGY5MzVlMjY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CkBAIC0yNTE3LDcgKzI1MTcsNyBAQCBpbnQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5k
ZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwbwogICAgICAgICBy
ZXR1cm4gMDsKICAgICAKICAgICBQb3NpdGlvbiBpbmRleFBvc2l0aW9uID0gcG9zLmRlZXBFcXVp
dmFsZW50KCk7Ci0gICAgaWYgKCFpbmRleFBvc2l0aW9uLmFuY2hvck5vZGUoKSB8fCBpbmRleFBv
c2l0aW9uLmFuY2hvck5vZGUoKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpICE9IG5vZGUpCisgICAg
aWYgKCFpbmRleFBvc2l0aW9uLmFuY2hvck5vZGUoKSB8fCByb290RWRpdGFibGVFbGVtZW50Rm9y
Tm9kZShpbmRleFBvc2l0aW9uLmFuY2hvck5vZGUoKSkgIT0gbm9kZSkKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBAIC0yNTM0LDYgKzI1MzQsMzgg
QEAgaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9u
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG8KICNlbmRpZgogfQogCitjb25zdCBFbGVtZW50KiBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpyb290RWRpdGFibGVFbGVtZW50Rm9yTm9kZShjb25z
dCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIC8vIEZpbmQgdGhlIHJvb3QgZWRpdGFibGUgb3Ig
cHNldWRvLWVkaXRhYmxlIChpLmUuIGhhdmluZyBhbiBlZGl0YWJsZSBBUklBIHJvbGUpIGVsZW1l
bnQuCisgICAgY29uc3QgRWxlbWVudCogcmVzdWx0ID0gMDsKKyAgICAKKyAgICBFbGVtZW50KiBy
b290RWRpdGFibGVFbGVtZW50ID0gbm9kZS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpOworCisgICAg
Zm9yIChjb25zdCBOb2RlKiBuID0gbm9kZTsgbiAmJiBuICE9IHJvb3RFZGl0YWJsZUVsZW1lbnQ7
IG4gPSBuLT5wYXJlbnROb2RlKCkpIHsKKyAgICAgICAgaWYgKG5vZGVJc1RleHRDb250cm9sKG4p
KQorICAgICAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgRWxlbWVudCo+KG4pOwor
ICAgICAgICBpZiAobi0+aGFzVGFnTmFtZShib2R5VGFnKSkKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgIH0KKworICAgIGlmIChyZXN1bHQpCisgICAgICAgIHJldHVybiByZXN1bHQ7CisKKyAgICBy
ZXR1cm4gcm9vdEVkaXRhYmxlRWxlbWVudDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojpub2RlSXNUZXh0Q29udHJvbChjb25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAg
IGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgQWNjZXNzaWJp
bGl0eU9iamVjdCogYXhPYmplY3RGb3JOb2RlID0gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0
ZShub2RlLT5yZW5kZXJlcigpKTsKKyAgICBpZiAoIWF4T2JqZWN0Rm9yTm9kZSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGF4T2JqZWN0Rm9yTm9kZS0+aXNUZXh0Q29udHJv
bCgpOworfQorCiBJbnRSZWN0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmJvdW5kc0ZvclZp
c2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJiB2aXNpYmxlUG9z
aXRpb25SYW5nZSkgY29uc3QKIHsKICAgICBpZiAodmlzaWJsZVBvc2l0aW9uUmFuZ2UuaXNOdWxs
KCkpCkBAIC0yOTk4LDcgKzMwMzAsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpIGNvbnN0CiAKICAgICBp
ZiAocm9sZSA9PSBUZXh0QXJlYVJvbGUgJiYgIWFyaWFJc011bHRpbGluZSgpKQogICAgICAgICBy
b2xlID0gVGV4dEZpZWxkUm9sZTsKLSAgICAKKwogICAgIGlmIChyb2xlKQogICAgICAgICByZXR1
cm4gcm9sZTsKIApAQCAtMzAyMiw3ICszMDU0LDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25zdAog
ICAgICAgICBpZiAocGFyZW50QXJpYVJvbGUgPT0gTWVudVJvbGUgfHwgcGFyZW50QXJpYVJvbGUg
PT0gTWVudUJhclJvbGUpCiAgICAgICAgICAgICByZXR1cm4gTWVudUl0ZW1Sb2xlOwogICAgIH0K
LSAgICAKKwogICAgIHJldHVybiBVbmtub3duUm9sZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRl
eCBkMGI2N2ZhZWFiOTg4NmRkNjA4Mjg0MmU2ZGNhYzRhNTQxYjY3NzI5Li5iYWM0Yzg5MzRlNDUz
YzAwZWRiNTU5Zjk1YmY5YTE4MTI4ODYxZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtMjQ2LDcg
KzI0Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQ
b3NpdGlvbkZvckluZGV4KGludCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgaW5kZXhGb3JWaXNp
YmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Q7Ci0gICAgCisKICAgICB2
aXJ0dWFsIFBsYWluVGV4dFJhbmdlIGRvQVhSYW5nZUZvckxpbmUodW5zaWduZWQpIGNvbnN0Owog
ICAgIHZpcnR1YWwgUGxhaW5UZXh0UmFuZ2UgZG9BWFJhbmdlRm9ySW5kZXgodW5zaWduZWQpIGNv
bnN0OwogICAgIApAQCAtMjc5LDYgKzI3OSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNUZXh0
QWx0ZXJuYXRpdmUoKSBjb25zdDsKICAgICBTdHJpbmcgcG9zaXRpb25hbERlc2NyaXB0aW9uRm9y
TVNBQSgpIGNvbnN0OwogICAgIFBsYWluVGV4dFJhbmdlIGFyaWFTZWxlY3RlZFRleHRSYW5nZSgp
IGNvbnN0OworICAgIGNvbnN0IEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JOb2RlKGNv
bnN0IE5vZGUqKSBjb25zdDsKKyAgICBib29sIG5vZGVJc1RleHRDb250cm9sKGNvbnN0IE5vZGUq
KSBjb25zdDsKIAogICAgIEVsZW1lbnQqIG1lbnVFbGVtZW50Rm9yTWVudUJ1dHRvbigpIGNvbnN0
OwogICAgIEVsZW1lbnQqIG1lbnVJdGVtRWxlbWVudEZvck1lbnUoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104764</attachid>
            <date>2011-08-22 16:42:13 -0700</date>
            <delta_ts>2011-08-22 21:58:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65900-20110823094210.patch</filename>
            <type>text/plain</type>
            <size>8460</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM1NTMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyYjg4ZWVhYjQ3NWMzODFjZGViNDc2
ZmI4MDU3Nzc5MGNlMzhhOGE3Li4yZDBhYzk0ZmM4N2ZkYjVjMzE0ZWRkOTllZDg5ZTRjZGZmZDlj
OTBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDgtMDggIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29ycmVjdGx5IHJlcG9ydCBzZWxlY3Rl
ZCB0ZXh0IHJhbmdlIGZvciBhY2Nlc3NpYmlsaXR5IEFQSXMgZm9yIHJvbGU9dGV4dGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRt
bDogQWRkZWQuCisKIDIwMTEtMDgtMjIgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBBZGQgQ1NTIHBhcnNpbmcgb2YgLXdlYmtpdC1mbGV4LXBhY2sKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xl
LXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzM1MTgwNzI0NDIx
ZjJhZGQ0ODU1YjBlMTczNTMxNTcwMTc4MTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOSBAQAorVGhpcyB0ZXN0cyB0aGF0IHRoZSBBWFNlbGVjdGlvbiBwcm9w
ZXJ0eSBpcyBjb3JyZWN0bHkgcmVwb3J0ZWQgZm9yIG5vbi1uYXRpdmUgdGV4dCBib3hlcy4KK1Nv
bWUgdGV4dCBpbiBhIHRleHRib3ggKDM0IGNoYXJzKS4KK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0
Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E5Yzcz
ODljNTNmMmUxMmE2M2MzMzljYWFlY2FlYzQzODUzNjcyOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLmh0
bWwKQEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDPgorPGh0bWw+Cis8aGVh
ZD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0cyB0aGF0IHRoZSBBWFNlbGVjdGlvbiBwcm9w
ZXJ0eSBpcyBjb3JyZWN0bHkgcmVwb3J0ZWQgZm9yIG5vbi1uYXRpdmUgdGV4dCBib3hlcy48YnI+
Cis8ZGl2IHJvbGU9InRleHRib3giIGlkPSJhcmlhVGV4dEJveCIgYXJpYS1tdWx0aWxpbmU9ImZh
bHNlIiB0YWJpbmRleD0iMCI+U29tZSB0ZXh0IGluIGEgdGV4dGJveCAoMzQgY2hhcnMpLjwvZGl2
PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gYXNzZXJ0
RXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICAgICAgdmFyIHNwYW4gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZXN1bHQiKS5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICAgICAgaWYgKGFjdHVhbCA9
PSBleHBlY3RlZCkgeworICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSAiUEFTUzxicj4iOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSAiRkFJTDogZXhw
ZWN0ZWQgIiArIGV4cGVjdGVkICsgIiwgZ290ICIgKyBhY3R1YWw7CisgICAgICAgICAgICBpZiAo
bWVzc2FnZSkKKyAgICAgICAgICAgICAgICBzcGFuLmlubmVySFRNTCArPSAiIC0gIiArIG1lc3Nh
Z2U7CisgICAgICAgICAgICBzcGFuLmlubmVySFRNTCArPSAiPGJyPiI7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBhc3NlcnRDb3JyZWN0QVhTZWxlY3Rpb24oZWxlbWVudCwgc2Vs
ZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCwgbWVzc2FnZSkgeworICAgICAgICBlbGVtZW50LmZv
Y3VzKCk7CisgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGVs
ZW1lbnQuZmlyc3RDaGlsZCwgc2VsZWN0aW9uU3RhcnQsIGVsZW1lbnQuZmlyc3RDaGlsZCwgc2Vs
ZWN0aW9uRW5kKTsKKyAgICAgICAgdmFyIGF4RWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmZvY3VzZWRFbGVtZW50OworICAgICAgICB2YXIgYXhTZWxlY3Rpb24gPSBheEVsZW1lbnQu
c2VsZWN0ZWRUZXh0UmFuZ2U7CisgICAgICAgIGFzc2VydEVxdWFscyhheFNlbGVjdGlvbiwgInsi
ICsgc2VsZWN0aW9uU3RhcnQgKyAiLCAiICsgKHNlbGVjdGlvbkVuZCAtIHNlbGVjdGlvblN0YXJ0
KSArICJ9IiwgbWVzc2FnZSk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlciAmJiB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdmFyIGFyaWFU
ZXh0Qm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFyaWFUZXh0Qm94Iik7CisgICAgICAg
IHZhciB0ZXh0TGVuZ3RoID0gYXJpYVRleHRCb3gudGV4dENvbnRlbnQubGVuZ3RoOworCisgICAg
ICAgIGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgMCwgMCwgIkNvbGxhcHNl
ZCBzZWxlY3Rpb24gYXQgc3RhcnQiKTsKKyAgICAgICAgYXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9u
KGFyaWFUZXh0Qm94LCB0ZXh0TGVuZ3RoLCB0ZXh0TGVuZ3RoLCAiQ29sbGFwc2VkIHNlbGVjdGlv
biBhdCBlbmQiKTsKKyAgICAgICAgYXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9uKGFyaWFUZXh0Qm94
LCAxNSwgMTUsICJDb2xsYXBzZWQgc2VsZWN0aW9uIGluIHRoZSBtaWRkbGUiKTsKKyAgICAgICAg
YXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9uKGFyaWFUZXh0Qm94LCAxNSwgMTcsICJOb24tY29sbGFw
c2VkIHNlbGVjdGlvbiBpbiB0aGUgbWlkZGxlIik7CisgICAgICAgIGFzc2VydENvcnJlY3RBWFNl
bGVjdGlvbihhcmlhVGV4dEJveCwgMCwgMTUsICJOb24tY29sbGFwc2VkIHNlbGVjdGlvbiBhdCB0
aGUgc3RhcnQiKTsKKyAgICAgICAgYXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9uKGFyaWFUZXh0Qm94
LCAxNSwgdGV4dExlbmd0aCwgIk5vbi1jb2xsYXBzZWQgc2VsZWN0aW9uIGF0IHRoZSBlbmQiKTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNmY1OTAx
NmVhNWViY2IxNjA3Y2EzODFjZjA5OTc0OTg5NTAyYjFmLi41Mjg4ZjljNjdkYmQ3MzZiMTIyMWQ4
YTYyN2RjNWRkYjU4YTVlMjM0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDgt
MDggIEFsaWNlIEJveGhhbGwgIDxhYm94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29y
cmVjdGx5IHJlcG9ydCBzZWxlY3RlZCB0ZXh0IHJhbmdlIGZvciBhY2Nlc3NpYmlsaXR5IEFQSXMg
Zm9yIHJvbGU9dGV4dGJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjU5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlv
bi5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5k
ZXhGb3JWaXNpYmxlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6cm9vdEVkaXRhYmxlRWxlbWVudEZvck5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bm9kZUlzVGV4dENvbnRyb2wpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQXJpYVJvbGVB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
YXJpYVJvbGVGcm9tUm9sZUF0dHJpYnV0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisKIDIwMTEtMDgtMjIgIFRvbnkgQ2hhbmcgIDx0b255
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgQ1NTIHBhcnNpbmcgb2YgLXdlYmtpdC1mbGV4
LXBhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDBkOGE3YjlmYzQ5YTY4ZjJiNWVlMjlmNmIx
NDQzZDI2MDY3MDU3MTAuLmE1YjZiN2Q4M2I2YjA1YzcwZmFjZTJhNTRjNWY1YmUxMzY3YzQ1NWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjUxOCw3ICsyNTE4LDcgQEAgaW50IEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG8KICAgICAgICAgcmV0dXJuIDA7CiAgICAgCiAgICAgUG9zaXRpb24gaW5kZXhQ
b3NpdGlvbiA9IHBvcy5kZWVwRXF1aXZhbGVudCgpOwotICAgIGlmIChpbmRleFBvc2l0aW9uLmlz
TnVsbCgpIHx8IHBvcy5yb290RWRpdGFibGVFbGVtZW50KCkgIT0gbm9kZSkKKyAgICBpZiAoIWlu
ZGV4UG9zaXRpb24uYW5jaG9yTm9kZSgpIHx8IHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JOb2RlKGlu
ZGV4UG9zaXRpb24uYW5jaG9yTm9kZSgpKSAhPSBub2RlKQogICAgICAgICByZXR1cm4gMDsKICAg
ICAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTI1MzUsNiArMjUzNSwzOCBAQCBpbnQg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBwbwogI2VuZGlmCiB9CiAKK2NvbnN0IEVsZW1lbnQqIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnJvb3RFZGl0YWJsZUVsZW1lbnRGb3JOb2RlKGNvbnN0IE5vZGUq
IG5vZGUpIGNvbnN0Cit7CisgICAgLy8gRmluZCB0aGUgcm9vdCBlZGl0YWJsZSBvciBwc2V1ZG8t
ZWRpdGFibGUgKGkuZS4gaGF2aW5nIGFuIGVkaXRhYmxlIEFSSUEgcm9sZSkgZWxlbWVudC4KKyAg
ICBjb25zdCBFbGVtZW50KiByZXN1bHQgPSAwOworICAgIAorICAgIEVsZW1lbnQqIHJvb3RFZGl0
YWJsZUVsZW1lbnQgPSBub2RlLT5yb290RWRpdGFibGVFbGVtZW50KCk7CisKKyAgICBmb3IgKGNv
bnN0IE5vZGUqIG4gPSBub2RlOyBuICYmIG4gIT0gcm9vdEVkaXRhYmxlRWxlbWVudDsgbiA9IG4t
PnBhcmVudE5vZGUoKSkgeworICAgICAgICBpZiAobm9kZUlzVGV4dENvbnRyb2wobikpCisgICAg
ICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxjb25zdCBFbGVtZW50Kj4obik7CisgICAgICAg
IGlmIChuLT5oYXNUYWdOYW1lKGJvZHlUYWcpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQor
CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgIHJldHVybiBy
b290RWRpdGFibGVFbGVtZW50OworfQorCitib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
Om5vZGVJc1RleHRDb250cm9sKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgaWYgKCFu
b2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjb25zdCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBheE9iamVjdEZvck5vZGUgPSBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKG5vZGUt
PnJlbmRlcmVyKCkpOworICAgIGlmICghYXhPYmplY3RGb3JOb2RlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gYXhPYmplY3RGb3JOb2RlLT5pc1RleHRDb250cm9sKCk7Cit9
CisKIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Ym91bmRzRm9yVmlzaWJs
ZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHZpc2libGVQb3NpdGlv
blJhbmdlKSBjb25zdAogewogICAgIGlmICh2aXNpYmxlUG9zaXRpb25SYW5nZS5pc051bGwoKSkK
QEAgLTMwMjYsNyArMzA1OCw3IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmRldGVybWluZUFyaWFSb2xlQXR0cmlidXRlKCkgY29uc3QKICAgICAKICAgICBp
ZiAocm9sZSkKICAgICAgICAgcmV0dXJuIHJvbGU7Ci0gICAgCisKICAgICByZXR1cm4gVW5rbm93
blJvbGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggMzk3MGM1ZTg4NjM1ZDhkMzE0YzQyMzgx
ZjIwOWI5Yjc2Njc3NDU4Mi4uNWEzYjc2NGIzMTY0ODRlNWNmMWM5NWU5YjA1MjEzMzE0MmM3NTAz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTEsNCArMSwzIEBACi0KIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTI0Nyw3ICsy
NDYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9z
aXRpb25Gb3JJbmRleChpbnQpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGluZGV4Rm9yVmlzaWJs
ZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0OwotICAgIAorCiAgICAgdmly
dHVhbCBQbGFpblRleHRSYW5nZSBkb0FYUmFuZ2VGb3JMaW5lKHVuc2lnbmVkKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFBsYWluVGV4dFJhbmdlIGRvQVhSYW5nZUZvckluZGV4KHVuc2lnbmVkKSBjb25z
dDsKICAgICAKQEAgLTI4MCwxMyArMjc5LDE1IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNUZXh0
QWx0ZXJuYXRpdmUoKSBjb25zdDsKICAgICBTdHJpbmcgcG9zaXRpb25hbERlc2NyaXB0aW9uRm9y
TVNBQSgpIGNvbnN0OwogICAgIFBsYWluVGV4dFJhbmdlIGFyaWFTZWxlY3RlZFRleHRSYW5nZSgp
IGNvbnN0OworICAgIGNvbnN0IEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JOb2RlKGNv
bnN0IE5vZGUqKSBjb25zdDsKKyAgICBib29sIG5vZGVJc1RleHRDb250cm9sKGNvbnN0IE5vZGUq
KSBjb25zdDsKIAogICAgIEVsZW1lbnQqIG1lbnVFbGVtZW50Rm9yTWVudUJ1dHRvbigpIGNvbnN0
OwogICAgIEVsZW1lbnQqIG1lbnVJdGVtRWxlbWVudEZvck1lbnUoKSBjb25zdDsKICAgICBBY2Nl
c3NpYmlsaXR5Um9sZSBkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpOwogICAgIEFjY2Vzc2li
aWxpdHlSb2xlIGRldGVybWluZUFyaWFSb2xlQXR0cmlidXRlKCkgY29uc3Q7CiAgICAgQWNjZXNz
aWJpbGl0eVJvbGUgcmVtYXBBcmlhUm9sZUR1ZVRvUGFyZW50KEFjY2Vzc2liaWxpdHlSb2xlKSBj
b25zdDsKLSAgICAKKwogICAgIGJvb2wgaXNUYWJJdGVtU2VsZWN0ZWQoKSBjb25zdDsKICAgICB2
b2lkIGFsdGVyU2xpZGVyVmFsdWUoYm9vbCBpbmNyZWFzZSk7CiAgICAgdm9pZCBjaGFuZ2VWYWx1
ZUJ5U3RlcChib29sIGluY3JlYXNlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104788</attachid>
            <date>2011-08-22 21:58:15 -0700</date>
            <delta_ts>2011-08-23 23:15:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65900-20110823145812.patch</filename>
            <type>text/plain</type>
            <size>8467</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM1NzgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1Y2ZhNDFjMGVjMmU4MGExYWE2ODUz
ZWM5Yjc4Y2ZkNjY0YTk1NzhkLi4yM2U3N2IzMDE4NGI2OTI1OTQxMDk4ZGY4YzFiNTlmZjE2OTI2
MjU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDgtMDggIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29ycmVjdGx5IHJlcG9ydCBzZWxlY3Rl
ZCB0ZXh0IHJhbmdlIGZvciBhY2Nlc3NpYmlsaXR5IEFQSXMgZm9yIHJvbGU9dGV4dGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRt
bDogQWRkZWQuCisKIDIwMTEtMDgtMjIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5MzU2NS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMt
c2VsZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJv
eC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzM1MTgw
NzI0NDIxZjJhZGQ0ODU1YjBlMTczNTMxNTcwMTc4MTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24tZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGhpcyB0ZXN0cyB0aGF0IHRoZSBBWFNlbGVjdGlv
biBwcm9wZXJ0eSBpcyBjb3JyZWN0bHkgcmVwb3J0ZWQgZm9yIG5vbi1uYXRpdmUgdGV4dCBib3hl
cy4KK1NvbWUgdGV4dCBpbiBhIHRleHRib3ggKDM0IGNoYXJzKS4KK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2E5YzczODljNTNmMmUxMmE2M2MzMzljYWFlY2FlYzQzODUzNjcyOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0
aW9uLmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDPgorPGh0bWw+
Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0cyB0aGF0IHRoZSBBWFNlbGVjdGlv
biBwcm9wZXJ0eSBpcyBjb3JyZWN0bHkgcmVwb3J0ZWQgZm9yIG5vbi1uYXRpdmUgdGV4dCBib3hl
cy48YnI+Cis8ZGl2IHJvbGU9InRleHRib3giIGlkPSJhcmlhVGV4dEJveCIgYXJpYS1tdWx0aWxp
bmU9ImZhbHNlIiB0YWJpbmRleD0iMCI+U29tZSB0ZXh0IGluIGEgdGV4dGJveCAoMzQgY2hhcnMp
LjwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24g
YXNzZXJ0RXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICAgICAgdmFyIHNw
YW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICAgICAgaWYgKGFj
dHVhbCA9PSBleHBlY3RlZCkgeworICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSAiUEFTUzxi
cj4iOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSAiRkFJ
TDogZXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIiwgZ290ICIgKyBhY3R1YWw7CisgICAgICAgICAg
ICBpZiAobWVzc2FnZSkKKyAgICAgICAgICAgICAgICBzcGFuLmlubmVySFRNTCArPSAiIC0gIiAr
IG1lc3NhZ2U7CisgICAgICAgICAgICBzcGFuLmlubmVySFRNTCArPSAiPGJyPiI7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBhc3NlcnRDb3JyZWN0QVhTZWxlY3Rpb24oZWxlbWVu
dCwgc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCwgbWVzc2FnZSkgeworICAgICAgICBlbGVt
ZW50LmZvY3VzKCk7CisgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0
ZW50KGVsZW1lbnQuZmlyc3RDaGlsZCwgc2VsZWN0aW9uU3RhcnQsIGVsZW1lbnQuZmlyc3RDaGls
ZCwgc2VsZWN0aW9uRW5kKTsKKyAgICAgICAgdmFyIGF4RWxlbWVudCA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworICAgICAgICB2YXIgYXhTZWxlY3Rpb24gPSBheEVs
ZW1lbnQuc2VsZWN0ZWRUZXh0UmFuZ2U7CisgICAgICAgIGFzc2VydEVxdWFscyhheFNlbGVjdGlv
biwgInsiICsgc2VsZWN0aW9uU3RhcnQgKyAiLCAiICsgKHNlbGVjdGlvbkVuZCAtIHNlbGVjdGlv
blN0YXJ0KSArICJ9IiwgbWVzc2FnZSk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlciAmJiB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAg
ICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdmFy
IGFyaWFUZXh0Qm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFyaWFUZXh0Qm94Iik7Cisg
ICAgICAgIHZhciB0ZXh0TGVuZ3RoID0gYXJpYVRleHRCb3gudGV4dENvbnRlbnQubGVuZ3RoOwor
CisgICAgICAgIGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgMCwgMCwgIkNv
bGxhcHNlZCBzZWxlY3Rpb24gYXQgc3RhcnQiKTsKKyAgICAgICAgYXNzZXJ0Q29ycmVjdEFYU2Vs
ZWN0aW9uKGFyaWFUZXh0Qm94LCB0ZXh0TGVuZ3RoLCB0ZXh0TGVuZ3RoLCAiQ29sbGFwc2VkIHNl
bGVjdGlvbiBhdCBlbmQiKTsKKyAgICAgICAgYXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9uKGFyaWFU
ZXh0Qm94LCAxNSwgMTUsICJDb2xsYXBzZWQgc2VsZWN0aW9uIGluIHRoZSBtaWRkbGUiKTsKKyAg
ICAgICAgYXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9uKGFyaWFUZXh0Qm94LCAxNSwgMTcsICJOb24t
Y29sbGFwc2VkIHNlbGVjdGlvbiBpbiB0aGUgbWlkZGxlIik7CisgICAgICAgIGFzc2VydENvcnJl
Y3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgMCwgMTUsICJOb24tY29sbGFwc2VkIHNlbGVjdGlv
biBhdCB0aGUgc3RhcnQiKTsKKyAgICAgICAgYXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9uKGFyaWFU
ZXh0Qm94LCAxNSwgdGV4dExlbmd0aCwgIk5vbi1jb2xsYXBzZWQgc2VsZWN0aW9uIGF0IHRoZSBl
bmQiKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBm
NDg3ZDk3NGUwNjVkNGMzZjcxM2NhYzEyY2E4MDJmMWUzYzVhYWU2Li5kNjZlNGI1YzIwMTk3MjUz
OWE3MzJkZDhkMzVkZjhhNDI4OWJkYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTEtMDgtMDggIEFsaWNlIEJveGhhbGwgIDxhYm94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgQ29ycmVjdGx5IHJlcG9ydCBzZWxlY3RlZCB0ZXh0IHJhbmdlIGZvciBhY2Nlc3NpYmlsaXR5
IEFQSXMgZm9yIHJvbGU9dGV4dGJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjU5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNl
bGVjdGlvbi5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6cm9vdEVkaXRhYmxlRWxlbWVudEZvck5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bm9kZUlzVGV4dENvbnRyb2wpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQXJp
YVJvbGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6YXJpYVJvbGVGcm9tUm9sZUF0dHJpYnV0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisKIDIwMTEtMDgtMjIgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI5MzU2NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDBkOGE3YjlmYzQ5YTY4
ZjJiNWVlMjlmNmIxNDQzZDI2MDY3MDU3MTAuLmZkMDFmOGEyN2Y2MWZlZjJkOTIwZWE5YmQ4NDIy
NDNmMmFiODFlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjUxOCw3ICsyNTE4LDcgQEAg
aW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgcG8KICAgICAgICAgcmV0dXJuIDA7CiAgICAgCiAgICAgUG9z
aXRpb24gaW5kZXhQb3NpdGlvbiA9IHBvcy5kZWVwRXF1aXZhbGVudCgpOwotICAgIGlmIChpbmRl
eFBvc2l0aW9uLmlzTnVsbCgpIHx8IHBvcy5yb290RWRpdGFibGVFbGVtZW50KCkgIT0gbm9kZSkK
KyAgICBpZiAoaW5kZXhQb3NpdGlvbi5pc051bGwoKSB8fCByb290RWRpdGFibGVFbGVtZW50Rm9y
Tm9kZShpbmRleFBvc2l0aW9uLmFuY2hvck5vZGUoKSkgIT0gbm9kZSkKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBAIC0yNTM1LDYgKzI1MzUsMzgg
QEAgaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9u
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG8KICNlbmRpZgogfQogCitjb25zdCBFbGVtZW50KiBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpyb290RWRpdGFibGVFbGVtZW50Rm9yTm9kZShjb25z
dCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIC8vIEZpbmQgdGhlIHJvb3QgZWRpdGFibGUgb3Ig
cHNldWRvLWVkaXRhYmxlIChpLmUuIGhhdmluZyBhbiBlZGl0YWJsZSBBUklBIHJvbGUpIGVsZW1l
bnQuCisgICAgY29uc3QgRWxlbWVudCogcmVzdWx0ID0gMDsKKyAgICAKKyAgICBFbGVtZW50KiBy
b290RWRpdGFibGVFbGVtZW50ID0gbm9kZS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpOworCisgICAg
Zm9yIChjb25zdCBOb2RlKiBuID0gbm9kZTsgbiAmJiBuICE9IHJvb3RFZGl0YWJsZUVsZW1lbnQ7
IG4gPSBuLT5wYXJlbnROb2RlKCkpIHsKKyAgICAgICAgaWYgKG5vZGVJc1RleHRDb250cm9sKG4p
KQorICAgICAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgRWxlbWVudCo+KG4pOwor
ICAgICAgICBpZiAobi0+aGFzVGFnTmFtZShib2R5VGFnKSkKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgIH0KKworICAgIGlmIChyZXN1bHQpCisgICAgICAgIHJldHVybiByZXN1bHQ7CisKKyAgICBy
ZXR1cm4gcm9vdEVkaXRhYmxlRWxlbWVudDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojpub2RlSXNUZXh0Q29udHJvbChjb25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAg
IGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgQWNjZXNzaWJp
bGl0eU9iamVjdCogYXhPYmplY3RGb3JOb2RlID0gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0
ZShub2RlLT5yZW5kZXJlcigpKTsKKyAgICBpZiAoIWF4T2JqZWN0Rm9yTm9kZSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGF4T2JqZWN0Rm9yTm9kZS0+aXNUZXh0Q29udHJv
bCgpOworfQorCiBMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmJvdW5kc0Zv
clZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJiB2aXNpYmxl
UG9zaXRpb25SYW5nZSkgY29uc3QKIHsKICAgICBpZiAodmlzaWJsZVBvc2l0aW9uUmFuZ2UuaXNO
dWxsKCkpCkBAIC0zMDI2LDcgKzMwNTgsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpIGNvbnN0CiAgICAg
CiAgICAgaWYgKHJvbGUpCiAgICAgICAgIHJldHVybiByb2xlOwotICAgIAorCiAgICAgcmV0dXJu
IFVua25vd25Sb2xlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDM5NzBjNWU4ODYzNWQ4ZDMx
NGM0MjM4MWYyMDliOWI3NjY3NzQ1ODIuLjVhM2I3NjRiMzE2NDg0ZTVjZjFjOTVlOWIwNTIxMzMx
NDJjNzUwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0xLDQgKzEsMyBAQAotCiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0y
NDcsNyArMjQ2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gdmlz
aWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50KSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBpbmRleEZv
clZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdDsKLSAgICAKKwog
ICAgIHZpcnR1YWwgUGxhaW5UZXh0UmFuZ2UgZG9BWFJhbmdlRm9yTGluZSh1bnNpZ25lZCkgY29u
c3Q7CiAgICAgdmlydHVhbCBQbGFpblRleHRSYW5nZSBkb0FYUmFuZ2VGb3JJbmRleCh1bnNpZ25l
ZCkgY29uc3Q7CiAgICAgCkBAIC0yODAsMTMgKzI3OSwxNSBAQCBwcml2YXRlOgogICAgIGJvb2wg
aGFzVGV4dEFsdGVybmF0aXZlKCkgY29uc3Q7CiAgICAgU3RyaW5nIHBvc2l0aW9uYWxEZXNjcmlw
dGlvbkZvck1TQUEoKSBjb25zdDsKICAgICBQbGFpblRleHRSYW5nZSBhcmlhU2VsZWN0ZWRUZXh0
UmFuZ2UoKSBjb25zdDsKKyAgICBjb25zdCBFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50Rm9y
Tm9kZShjb25zdCBOb2RlKikgY29uc3Q7CisgICAgYm9vbCBub2RlSXNUZXh0Q29udHJvbChjb25z
dCBOb2RlKikgY29uc3Q7CiAKICAgICBFbGVtZW50KiBtZW51RWxlbWVudEZvck1lbnVCdXR0b24o
KSBjb25zdDsKICAgICBFbGVtZW50KiBtZW51SXRlbUVsZW1lbnRGb3JNZW51KCkgY29uc3Q7CiAg
ICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKTsKICAgICBB
Y2Nlc3NpYmlsaXR5Um9sZSBkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpIGNvbnN0OwogICAg
IEFjY2Vzc2liaWxpdHlSb2xlIHJlbWFwQXJpYVJvbGVEdWVUb1BhcmVudChBY2Nlc3NpYmlsaXR5
Um9sZSkgY29uc3Q7Ci0gICAgCisKICAgICBib29sIGlzVGFiSXRlbVNlbGVjdGVkKCkgY29uc3Q7
CiAgICAgdm9pZCBhbHRlclNsaWRlclZhbHVlKGJvb2wgaW5jcmVhc2UpOwogICAgIHZvaWQgY2hh
bmdlVmFsdWVCeVN0ZXAoYm9vbCBpbmNyZWFzZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104966</attachid>
            <date>2011-08-23 23:15:17 -0700</date>
            <delta_ts>2011-08-25 17:31:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65900-20110824161514.patch</filename>
            <type>text/plain</type>
            <size>8582</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM2OTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMzY4ZTIyYTUwMDFkM2M2ZDE1ZDRj
NGQ2Mzk5YWJjOTQ0YTFlYjg4Li42ZWE4NDI5YjU2YTdlMmM4YTQ0OTJiYmEzNTU5YTgwMTY5NGEw
OTg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDgtMDggIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29ycmVjdGx5IHJlcG9ydCBzZWxlY3Rl
ZCB0ZXh0IHJhbmdlIGZvciBhY2Nlc3NpYmlsaXR5IEFQSXMgZm9yIHJvbGU9dGV4dGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRt
bDogQWRkZWQuCisKIDIwMTEtMDgtMjMgIEJlbiBXZWxscyAgPGJlbndlbGxzQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBFeHRyYSBiYXNlbGluZSBmb3IgYnVnIDY2MDM2IChjYW52YXMgZmlsbCBj
b21wb3NpdGUgbW9kZXMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Rl
eHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2MzNTE4MDcyNDQyMWYyYWRkNDg1NWIwZTE3MzUzMTU3MDE3ODEwMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJl
cG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdHMg
dGhhdCB0aGUgQVhTZWxlY3Rpb24gcHJvcGVydHkgaXMgY29ycmVjdGx5IHJlcG9ydGVkIGZvciBu
b24tbmF0aXZlIHRleHQgYm94ZXMuCitTb21lIHRleHQgaW4gYSB0ZXh0Ym94ICgzNCBjaGFycyku
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNhOWM3Mzg5YzUzZjJlMTJhNjNjMzM5Y2FhZWNhZWM0Mzg1MzY3
MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHRib3gt
cm9sZS1yZXBvcnRzLXNlbGVjdGlvbi5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQz4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1RoaXMgdGVzdHMg
dGhhdCB0aGUgQVhTZWxlY3Rpb24gcHJvcGVydHkgaXMgY29ycmVjdGx5IHJlcG9ydGVkIGZvciBu
b24tbmF0aXZlIHRleHQgYm94ZXMuPGJyPgorPGRpdiByb2xlPSJ0ZXh0Ym94IiBpZD0iYXJpYVRl
eHRCb3giIGFyaWEtbXVsdGlsaW5lPSJmYWxzZSIgdGFiaW5kZXg9IjAiPlNvbWUgdGV4dCBpbiBh
IHRleHRib3ggKDM0IGNoYXJzKS48L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2Ny
aXB0PgorICAgIGZ1bmN0aW9uIGFzc2VydEVxdWFscyhhY3R1YWwsIGV4cGVjdGVkLCBtZXNzYWdl
KSB7CisgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwor
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuYXBwZW5kQ2hpbGQoc3Bh
bik7CisgICAgICAgIGlmIChhY3R1YWwgPT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgIHNwYW4u
aW5uZXJIVE1MID0gIlBBU1M8YnI+IjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNw
YW4uaW5uZXJIVE1MID0gIkZBSUw6IGV4cGVjdGVkICIgKyBleHBlY3RlZCArICIsIGdvdCAiICsg
YWN0dWFsOworICAgICAgICAgICAgaWYgKG1lc3NhZ2UpCisgICAgICAgICAgICAgICAgc3Bhbi5p
bm5lckhUTUwgKz0gIiAtICIgKyBtZXNzYWdlOworICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwg
Kz0gIjxicj4iOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gYXNzZXJ0Q29ycmVj
dEFYU2VsZWN0aW9uKGVsZW1lbnQsIHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQsIG1lc3Nh
Z2UpIHsKKyAgICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuc2V0QmFzZUFuZEV4dGVudChlbGVtZW50LmZpcnN0Q2hpbGQsIHNlbGVjdGlvblN0YXJ0
LCBlbGVtZW50LmZpcnN0Q2hpbGQsIHNlbGVjdGlvbkVuZCk7CisgICAgICAgIHZhciBheEVsZW1l
bnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKKyAgICAgICAgdmFy
IGF4U2VsZWN0aW9uID0gYXhFbGVtZW50LnNlbGVjdGVkVGV4dFJhbmdlOworICAgICAgICBhc3Nl
cnRFcXVhbHMoYXhTZWxlY3Rpb24sICJ7IiArIHNlbGVjdGlvblN0YXJ0ICsgIiwgIiArIChzZWxl
Y3Rpb25FbmQgLSBzZWxlY3Rpb25TdGFydCkgKyAifSIsIG1lc3NhZ2UpOworICAgIH0KKworICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmFjY2Vzc2liaWxpdHlD
b250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgIHZhciBhcmlhVGV4dEJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJhcmlhVGV4dEJveCIpOworICAgICAgICB2YXIgdGV4dExlbmd0aCA9IGFyaWFUZXh0Qm94LnRl
eHRDb250ZW50Lmxlbmd0aDsKKworICAgICAgICBhc3NlcnRDb3JyZWN0QVhTZWxlY3Rpb24oYXJp
YVRleHRCb3gsIDAsIDAsICJDb2xsYXBzZWQgc2VsZWN0aW9uIGF0IHN0YXJ0Iik7CisgICAgICAg
IGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgdGV4dExlbmd0aCwgdGV4dExl
bmd0aCwgIkNvbGxhcHNlZCBzZWxlY3Rpb24gYXQgZW5kIik7CisgICAgICAgIGFzc2VydENvcnJl
Y3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgMTUsIDE1LCAiQ29sbGFwc2VkIHNlbGVjdGlvbiBp
biB0aGUgbWlkZGxlIik7CisgICAgICAgIGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihhcmlhVGV4
dEJveCwgMTUsIDE3LCAiTm9uLWNvbGxhcHNlZCBzZWxlY3Rpb24gaW4gdGhlIG1pZGRsZSIpOwor
ICAgICAgICBhc3NlcnRDb3JyZWN0QVhTZWxlY3Rpb24oYXJpYVRleHRCb3gsIDAsIDE1LCAiTm9u
LWNvbGxhcHNlZCBzZWxlY3Rpb24gYXQgdGhlIHN0YXJ0Iik7CisgICAgICAgIGFzc2VydENvcnJl
Y3RBWFNlbGVjdGlvbihhcmlhVGV4dEJveCwgMTUsIHRleHRMZW5ndGgsICJOb24tY29sbGFwc2Vk
IHNlbGVjdGlvbiBhdCB0aGUgZW5kIik7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMDA5YjE1MjVkZDVlZGJlOWEwZjc0YzgzYjIyZjQ1NGEwNmQyZjkw
OC4uMDFmOWVjZWEzMDQ2NjNjYjE0YzRlM2Y5YmM1YTMwYmM0ZjRhMzI5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDExLTA4LTA4ICBBbGljZSBCb3hoYWxsICA8YWJveGhhbGxAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIENvcnJlY3RseSByZXBvcnQgc2VsZWN0ZWQgdGV4dCByYW5n
ZSBmb3IgYWNjZXNzaWJpbGl0eSBBUElzIGZvciByb2xlPXRleHRib3gKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1OTAwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS90ZXh0
Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJvb3RFZGl0YWJsZUVsZW1lbnRG
b3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5v
ZGVJc1RleHRDb250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmRldGVybWluZUFyaWFSb2xlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFyaWFSb2xlRnJvbVJvbGVBdHRyaWJ1dGUpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOgorCiAyMDEx
LTA4LTIzICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIGNoZWNrcyB0byBlbnN1cmUgYWxsb2NhdGlvbiBkb2VzIG5vdCB0YWtlIHBsYWNlIGR1
cmluZyBpbml0aWFsaXphdGlvbiBvZiBHQy1tYW5hZ2VkIG9iamVjdHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCmluZGV4IDBkOGE3YjlmYzQ5YTY4ZjJiNWVlMjlmNmIxNDQzZDI2MDY3MDU3MTAuLjkxY2Jk
ZGExYzAxNjRiMjY1YjkyM2Q1MzYwMWY4MTMxYTZkMDY1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cApAQCAtMjUxOCw3ICsyNTE4LDcgQEAgaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Omlu
ZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG8KICAgICAgICAg
cmV0dXJuIDA7CiAgICAgCiAgICAgUG9zaXRpb24gaW5kZXhQb3NpdGlvbiA9IHBvcy5kZWVwRXF1
aXZhbGVudCgpOwotICAgIGlmIChpbmRleFBvc2l0aW9uLmlzTnVsbCgpIHx8IHBvcy5yb290RWRp
dGFibGVFbGVtZW50KCkgIT0gbm9kZSkKKyAgICBpZiAoaW5kZXhQb3NpdGlvbi5pc051bGwoKSB8
fCByb290RWRpdGFibGVFbGVtZW50Rm9yUG9zaXRpb24oaW5kZXhQb3NpdGlvbikgIT0gbm9kZSkK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBAIC0y
NTM1LDYgKzI1MzUsMzggQEAgaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9y
VmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG8KICNlbmRpZgogfQogCitj
b25zdCBFbGVtZW50KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpyb290RWRpdGFibGVFbGVt
ZW50Rm9yUG9zaXRpb24oY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKSBjb25zdAoreworICAgIC8v
IEZpbmQgdGhlIHJvb3QgZWRpdGFibGUgb3IgcHNldWRvLWVkaXRhYmxlIChpLmUuIGhhdmluZyBh
biBlZGl0YWJsZSBBUklBIHJvbGUpIGVsZW1lbnQuCisgICAgY29uc3QgRWxlbWVudCogcmVzdWx0
ID0gMDsKKyAgICAKKyAgICBFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50ID0gcG9zaXRpb24u
cm9vdEVkaXRhYmxlRWxlbWVudCgpOworCisgICAgZm9yIChjb25zdCBOb2RlKiBuID0gcG9zaXRp
b24uY29udGFpbmVyTm9kZSgpOyBuICYmIG4gIT0gcm9vdEVkaXRhYmxlRWxlbWVudDsgbiA9IG4t
PnBhcmVudE5vZGUoKSkgeworICAgICAgICBpZiAobm9kZUlzVGV4dENvbnRyb2wobikpCisgICAg
ICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxjb25zdCBFbGVtZW50Kj4obik7CisgICAgICAg
IGlmIChuLT5oYXNUYWdOYW1lKGJvZHlUYWcpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQor
CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgIHJldHVybiBy
b290RWRpdGFibGVFbGVtZW50OworfQorCitib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
Om5vZGVJc1RleHRDb250cm9sKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgaWYgKCFu
b2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjb25zdCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBheE9iamVjdEZvck5vZGUgPSBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKG5vZGUt
PnJlbmRlcmVyKCkpOworICAgIGlmICghYXhPYmplY3RGb3JOb2RlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gYXhPYmplY3RGb3JOb2RlLT5pc1RleHRDb250cm9sKCk7Cit9
CisKIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Ym91bmRzRm9yVmlzaWJs
ZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHZpc2libGVQb3NpdGlv
blJhbmdlKSBjb25zdAogewogICAgIGlmICh2aXNpYmxlUG9zaXRpb25SYW5nZS5pc051bGwoKSkK
QEAgLTMwMjYsNyArMzA1OCw3IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmRldGVybWluZUFyaWFSb2xlQXR0cmlidXRlKCkgY29uc3QKICAgICAKICAgICBp
ZiAocm9sZSkKICAgICAgICAgcmV0dXJuIHJvbGU7Ci0gICAgCisKICAgICByZXR1cm4gVW5rbm93
blJvbGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggMzk3MGM1ZTg4NjM1ZDhkMzE0YzQyMzgx
ZjIwOWI5Yjc2Njc3NDU4Mi4uYjU3ZjFhODNlNGRmZWY3ZTc1ZmY3YmQwMTg1OGY0NWY4Mzg3ZmFi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTEsNCArMSwzIEBACi0KIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTI0Nyw3ICsy
NDYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9z
aXRpb25Gb3JJbmRleChpbnQpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGluZGV4Rm9yVmlzaWJs
ZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0OwotICAgIAorCiAgICAgdmly
dHVhbCBQbGFpblRleHRSYW5nZSBkb0FYUmFuZ2VGb3JMaW5lKHVuc2lnbmVkKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFBsYWluVGV4dFJhbmdlIGRvQVhSYW5nZUZvckluZGV4KHVuc2lnbmVkKSBjb25z
dDsKICAgICAKQEAgLTI4MCwxMyArMjc5LDE1IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNUZXh0
QWx0ZXJuYXRpdmUoKSBjb25zdDsKICAgICBTdHJpbmcgcG9zaXRpb25hbERlc2NyaXB0aW9uRm9y
TVNBQSgpIGNvbnN0OwogICAgIFBsYWluVGV4dFJhbmdlIGFyaWFTZWxlY3RlZFRleHRSYW5nZSgp
IGNvbnN0OworICAgIGNvbnN0IEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JQb3NpdGlv
bihjb25zdCBQb3NpdGlvbiYpIGNvbnN0OworICAgIGJvb2wgbm9kZUlzVGV4dENvbnRyb2woY29u
c3QgTm9kZSopIGNvbnN0OwogCiAgICAgRWxlbWVudCogbWVudUVsZW1lbnRGb3JNZW51QnV0dG9u
KCkgY29uc3Q7CiAgICAgRWxlbWVudCogbWVudUl0ZW1FbGVtZW50Rm9yTWVudSgpIGNvbnN0Owog
ICAgIEFjY2Vzc2liaWxpdHlSb2xlIGRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCk7CiAgICAg
QWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25zdDsKICAg
ICBBY2Nlc3NpYmlsaXR5Um9sZSByZW1hcEFyaWFSb2xlRHVlVG9QYXJlbnQoQWNjZXNzaWJpbGl0
eVJvbGUpIGNvbnN0OwotICAgIAorCiAgICAgYm9vbCBpc1RhYkl0ZW1TZWxlY3RlZCgpIGNvbnN0
OwogICAgIHZvaWQgYWx0ZXJTbGlkZXJWYWx1ZShib29sIGluY3JlYXNlKTsKICAgICB2b2lkIGNo
YW5nZVZhbHVlQnlTdGVwKGJvb2wgaW5jcmVhc2UpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105282</attachid>
            <date>2011-08-25 17:31:55 -0700</date>
            <delta_ts>2011-08-29 22:04:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65900-20110826103153.patch</filename>
            <type>text/plain</type>
            <size>8390</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM4MzgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiZDM2YWY3MzQ1ODFjMGQ3NThjNDk2
YzgyMmI4Mzg1YmNiOWRkNDliLi5mY2ViNTExNmRlMDNkMTUxMzhmYTk0NzM0N2MwNGNiMjIyNWRl
MGRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDgtMjUgIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29ycmVjdGx5IHJlcG9ydCBzZWxlY3Rl
ZCB0ZXh0IHJhbmdlIGZvciBhY2Nlc3NpYmlsaXR5IEFQSXMgZm9yIHJvbGU9dGV4dGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRt
bDogQWRkZWQuCisKIDIwMTEtMDgtMjUgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUu
Y29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVGVzdCBleHBlY3RhdGlvbiB1cGRhdGVzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1z
ZWxlY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0Ym94
LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjMzUxODA3
MjQ0MjFmMmFkZDQ4NTViMGUxNzM1MzE1NzAxNzgxMDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUaGlzIHRlc3RzIHRoYXQgdGhlIEFYU2VsZWN0aW9u
IHByb3BlcnR5IGlzIGNvcnJlY3RseSByZXBvcnRlZCBmb3Igbm9uLW5hdGl2ZSB0ZXh0IGJveGVz
LgorU29tZSB0ZXh0IGluIGEgdGV4dGJveCAoMzQgY2hhcnMpLgorUEFTUworUEFTUworUEFTUwor
UEFTUworUEFTUworUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L3RleHRib3gtcm9sZS1yZXBvcnRzLXNlbGVjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
YTljNzM4OWM1M2YyZTEyYTYzYzMzOWNhYWVjYWVjNDM4NTM2NzI4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rp
b24uaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUM+Cis8aHRtbD4K
KzxoZWFkPgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3RzIHRoYXQgdGhlIEFYU2VsZWN0aW9u
IHByb3BlcnR5IGlzIGNvcnJlY3RseSByZXBvcnRlZCBmb3Igbm9uLW5hdGl2ZSB0ZXh0IGJveGVz
Ljxicj4KKzxkaXYgcm9sZT0idGV4dGJveCIgaWQ9ImFyaWFUZXh0Qm94IiBhcmlhLW11bHRpbGlu
ZT0iZmFsc2UiIHRhYmluZGV4PSIwIj5Tb21lIHRleHQgaW4gYSB0ZXh0Ym94ICgzNCBjaGFycyku
PC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBh
c3NlcnRFcXVhbHMoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgICAgICB2YXIgc3Bh
biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlc3VsdCIpLmFwcGVuZENoaWxkKHNwYW4pOworICAgICAgICBpZiAoYWN0
dWFsID09IGV4cGVjdGVkKSB7CisgICAgICAgICAgICBzcGFuLmlubmVySFRNTCA9ICJQQVNTPGJy
PiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzcGFuLmlubmVySFRNTCA9ICJGQUlM
OiBleHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiLCBnb3QgIiArIGFjdHVhbDsKKyAgICAgICAgICAg
IGlmIChtZXNzYWdlKQorICAgICAgICAgICAgICAgIHNwYW4uaW5uZXJIVE1MICs9ICIgLSAiICsg
bWVzc2FnZTsKKyAgICAgICAgICAgIHNwYW4uaW5uZXJIVE1MICs9ICI8YnI+IjsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGZ1bmN0aW9uIGFzc2VydENvcnJlY3RBWFNlbGVjdGlvbihlbGVtZW50
LCBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kLCBtZXNzYWdlKSB7CisgICAgICAgIGVsZW1l
bnQuZm9jdXMoKTsKKyAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRl
bnQoZWxlbWVudC5maXJzdENoaWxkLCBzZWxlY3Rpb25TdGFydCwgZWxlbWVudC5maXJzdENoaWxk
LCBzZWxlY3Rpb25FbmQpOworICAgICAgICB2YXIgYXhFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAgICAgIHZhciBheFNlbGVjdGlvbiA9IGF4RWxl
bWVudC5zZWxlY3RlZFRleHRSYW5nZTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGF4U2VsZWN0aW9u
LCAieyIgKyBzZWxlY3Rpb25TdGFydCArICIsICIgKyAoc2VsZWN0aW9uRW5kIC0gc2VsZWN0aW9u
U3RhcnQpICsgIn0iLCBtZXNzYWdlKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB2YXIg
YXJpYVRleHRCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJpYVRleHRCb3giKTsKKyAg
ICAgICAgdmFyIHRleHRMZW5ndGggPSBhcmlhVGV4dEJveC50ZXh0Q29udGVudC5sZW5ndGg7CisK
KyAgICAgICAgYXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9uKGFyaWFUZXh0Qm94LCAwLCAwLCAiQ29s
bGFwc2VkIHNlbGVjdGlvbiBhdCBzdGFydCIpOworICAgICAgICBhc3NlcnRDb3JyZWN0QVhTZWxl
Y3Rpb24oYXJpYVRleHRCb3gsIHRleHRMZW5ndGgsIHRleHRMZW5ndGgsICJDb2xsYXBzZWQgc2Vs
ZWN0aW9uIGF0IGVuZCIpOworICAgICAgICBhc3NlcnRDb3JyZWN0QVhTZWxlY3Rpb24oYXJpYVRl
eHRCb3gsIDE1LCAxNSwgIkNvbGxhcHNlZCBzZWxlY3Rpb24gaW4gdGhlIG1pZGRsZSIpOworICAg
ICAgICBhc3NlcnRDb3JyZWN0QVhTZWxlY3Rpb24oYXJpYVRleHRCb3gsIDE1LCAxNywgIk5vbi1j
b2xsYXBzZWQgc2VsZWN0aW9uIGluIHRoZSBtaWRkbGUiKTsKKyAgICAgICAgYXNzZXJ0Q29ycmVj
dEFYU2VsZWN0aW9uKGFyaWFUZXh0Qm94LCAwLCAxNSwgIk5vbi1jb2xsYXBzZWQgc2VsZWN0aW9u
IGF0IHRoZSBzdGFydCIpOworICAgICAgICBhc3NlcnRDb3JyZWN0QVhTZWxlY3Rpb24oYXJpYVRl
eHRCb3gsIDE1LCB0ZXh0TGVuZ3RoLCAiTm9uLWNvbGxhcHNlZCBzZWxlY3Rpb24gYXQgdGhlIGVu
ZCIpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE0
ZWJjMjRiY2MwMjYwYmY0NjE3NjZkNTRlMDk0ODA4NDA4ODc1MWUuLmRmN2JkZDJhNmJkZGExYjlj
OTJhYzllMjRjMmZkYTE3ZWY5MzRlYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAx
MS0wOC0yNSAgQWxpY2UgQm94aGFsbCAgPGFib3hoYWxsQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBDb3JyZWN0bHkgcmVwb3J0IHNlbGVjdGVkIHRleHQgcmFuZ2UgZm9yIGFjY2Vzc2liaWxpdHkg
QVBJcyBmb3Igcm9sZT10ZXh0Ym94CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NTkwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2Vs
ZWN0aW9uLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjppbmRleEZvclZpc2libGVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0Ojpyb290RWRpdGFibGVFbGVtZW50Rm9yUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bm9kZUlzVGV4dENvbnRyb2wp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5l
QXJpYVJvbGVBdHRyaWJ1dGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5oOgorCiAyMDExLTA4LTI1ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZm
cmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIENvbmNlbnRyYXRlIFJlbmRlckxheWVyIHJlcGFp
bnQgcmVjdHMgdXBkYXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMGQ4YTdiOWZjNDlhNjhm
MmI1ZWUyOWY2YjE0NDNkMjYwNjcwNTcxMC4uZjJjMmUzNjVkOGJmN2M4MzBhZTMyYzAyMmZjYjQz
YTBlMDllN2I0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0yNTE4LDcgKzI1MTgsNyBAQCBp
bnQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBwbwogICAgICAgICByZXR1cm4gMDsKICAgICAKICAgICBQb3Np
dGlvbiBpbmRleFBvc2l0aW9uID0gcG9zLmRlZXBFcXVpdmFsZW50KCk7Ci0gICAgaWYgKGluZGV4
UG9zaXRpb24uaXNOdWxsKCkgfHwgcG9zLnJvb3RFZGl0YWJsZUVsZW1lbnQoKSAhPSBub2RlKQor
ICAgIGlmIChpbmRleFBvc2l0aW9uLmlzTnVsbCgpIHx8IHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JQ
b3NpdGlvbihpbmRleFBvc2l0aW9uKSAhPSBub2RlKQogICAgICAgICByZXR1cm4gMDsKICAgICAK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTI1MzUsNiArMjUzNSwzOCBAQCBpbnQgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBwbwogI2VuZGlmCiB9CiAKK0VsZW1lbnQqIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnJvb3RFZGl0YWJsZUVsZW1lbnRGb3JQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYg
cG9zaXRpb24pIGNvbnN0Cit7CisgICAgLy8gRmluZCB0aGUgcm9vdCBlZGl0YWJsZSBvciBwc2V1
ZG8tZWRpdGFibGUgKGkuZS4gaGF2aW5nIGFuIGVkaXRhYmxlIEFSSUEgcm9sZSkgZWxlbWVudC4K
KyAgICBFbGVtZW50KiByZXN1bHQgPSAwOworICAgIAorICAgIEVsZW1lbnQqIHJvb3RFZGl0YWJs
ZUVsZW1lbnQgPSBwb3NpdGlvbi5yb290RWRpdGFibGVFbGVtZW50KCk7CisKKyAgICBmb3IgKEVs
ZW1lbnQqIGUgPSBwb3NpdGlvbi5lbGVtZW50KCk7IGUgJiYgZSAhPSByb290RWRpdGFibGVFbGVt
ZW50OyBlID0gZS0+cGFyZW50RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChub2RlSXNUZXh0Q29u
dHJvbChlKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IGU7CisgICAgICAgIGlmIChlLT5oYXNUYWdO
YW1lKGJvZHlUYWcpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKHJlc3Vs
dCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgIHJldHVybiByb290RWRpdGFibGVFbGVt
ZW50OworfQorCitib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5vZGVJc1RleHRDb250
cm9sKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgaWYgKCFub2RlKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheE9iamVjdEZv
ck5vZGUgPSBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKG5vZGUtPnJlbmRlcmVyKCkpOwor
ICAgIGlmICghYXhPYmplY3RGb3JOb2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBy
ZXR1cm4gYXhPYmplY3RGb3JOb2RlLT5pc1RleHRDb250cm9sKCk7Cit9CisKIExheW91dFJlY3Qg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Ym91bmRzRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2Uo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHZpc2libGVQb3NpdGlvblJhbmdlKSBjb25zdAog
ewogICAgIGlmICh2aXNpYmxlUG9zaXRpb25SYW5nZS5pc051bGwoKSkKQEAgLTMwMjYsNyArMzA1
OCw3IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVy
bWluZUFyaWFSb2xlQXR0cmlidXRlKCkgY29uc3QKICAgICAKICAgICBpZiAocm9sZSkKICAgICAg
ICAgcmV0dXJuIHJvbGU7Ci0gICAgCisKICAgICByZXR1cm4gVW5rbm93blJvbGU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmgKaW5kZXggMzk3MGM1ZTg4NjM1ZDhkMzE0YzQyMzgxZjIwOWI5Yjc2Njc3NDU4
Mi4uOTdhZmRkMThlZDliNzZlYWMzNmY4N2RlNjFmN2FhODUzNTk0MjgwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmgKQEAgLTEsNCArMSwzIEBACi0KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTI0Nyw3ICsyNDYsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChp
bnQpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0OwotICAgIAorCiAgICAgdmlydHVhbCBQbGFpblRleHRS
YW5nZSBkb0FYUmFuZ2VGb3JMaW5lKHVuc2lnbmVkKSBjb25zdDsKICAgICB2aXJ0dWFsIFBsYWlu
VGV4dFJhbmdlIGRvQVhSYW5nZUZvckluZGV4KHVuc2lnbmVkKSBjb25zdDsKICAgICAKQEAgLTI4
MCwxMyArMjc5LDE1IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNUZXh0QWx0ZXJuYXRpdmUoKSBj
b25zdDsKICAgICBTdHJpbmcgcG9zaXRpb25hbERlc2NyaXB0aW9uRm9yTVNBQSgpIGNvbnN0Owog
ICAgIFBsYWluVGV4dFJhbmdlIGFyaWFTZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0OworICAgIEVs
ZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYpIGNv
bnN0OworICAgIGJvb2wgbm9kZUlzVGV4dENvbnRyb2woY29uc3QgTm9kZSopIGNvbnN0OwogCiAg
ICAgRWxlbWVudCogbWVudUVsZW1lbnRGb3JNZW51QnV0dG9uKCkgY29uc3Q7CiAgICAgRWxlbWVu
dCogbWVudUl0ZW1FbGVtZW50Rm9yTWVudSgpIGNvbnN0OwogICAgIEFjY2Vzc2liaWxpdHlSb2xl
IGRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCk7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0
ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSBy
ZW1hcEFyaWFSb2xlRHVlVG9QYXJlbnQoQWNjZXNzaWJpbGl0eVJvbGUpIGNvbnN0OwotICAgIAor
CiAgICAgYm9vbCBpc1RhYkl0ZW1TZWxlY3RlZCgpIGNvbnN0OwogICAgIHZvaWQgYWx0ZXJTbGlk
ZXJWYWx1ZShib29sIGluY3JlYXNlKTsKICAgICB2b2lkIGNoYW5nZVZhbHVlQnlTdGVwKGJvb2wg
aW5jcmVhc2UpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105576</attachid>
            <date>2011-08-29 22:04:33 -0700</date>
            <delta_ts>2011-08-30 17:20:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65900-20110830150431.patch</filename>
            <type>text/plain</type>
            <size>9383</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQwMzMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxMWM3YjA4ZmQyYzA2OTBiMGEzM2I1
ODAyYTc4NThhMDVkZmYwZmE3Li5hMTE3ZTkwZjkzODBjY2Q0ZjFjMWJkYjJhYzY3NGFmM2MxOWVh
ZTZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDgtMjUgIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29ycmVjdGx5IHJlcG9ydCBzZWxlY3Rl
ZCB0ZXh0IHJhbmdlIGZvciBhY2Nlc3NpYmlsaXR5IEFQSXMgZm9yIHJvbGU9dGV4dGJveAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRt
bDogQWRkZWQuCisKIDIwMTEtMDgtMjkgIEtlbmppIEltYXNha2kgIDxpbWFzYWtpQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEFkZGVkIG5ldyByZWJhc2VsaW5lcyBmb3IgbWVk
aWEvbWVkaWEtZG9jdW1lbnQtYXVkaW8tcmVwYWludC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0
aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTE3NjVkYWU3MDQ3OTQxMTFjMjVkMjg3MDBh
NDYzOTgxOTE4OTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTIgQEAKK1RoaXMgdGVzdHMgdGhhdCB0aGUgQVhTZWxlY3Rpb24gcHJvcGVydHkgaXMgY29ycmVj
dGx5IHJlcG9ydGVkIGZvciBub24tbmF0aXZlIHRleHQgYm94ZXMuCitTb21lIHRleHQgaW4gYSB0
ZXh0Ym94ICgzNCBjaGFycykuCitQQVNTOiBheFNlbGVjdGlvbiBpcyB7MCwgMH0gKENvbGxhcHNl
ZCBzZWxlY3Rpb24gYXQgc3RhcnQpCitQQVNTOiBheFNlbGVjdGlvbiBpcyB7MzQsIDB9IChDb2xs
YXBzZWQgc2VsZWN0aW9uIGF0IGVuZCkKK1BBU1M6IGF4U2VsZWN0aW9uIGlzIHsxNSwgMH0gKENv
bGxhcHNlZCBzZWxlY3Rpb24gaW4gdGhlIG1pZGRsZSkKK1BBU1M6IGF4U2VsZWN0aW9uIGlzIHsx
NSwgMn0gKE5vbi1jb2xsYXBzZWQgc2VsZWN0aW9uIGluIHRoZSBtaWRkbGUpCitQQVNTOiBheFNl
bGVjdGlvbiBpcyB7MCwgMTV9IChOb24tY29sbGFwc2VkIHNlbGVjdGlvbiBhdCB0aGUgc3RhcnQp
CitQQVNTOiBheFNlbGVjdGlvbiBpcyB7MTUsIDE5fSAoTm9uLWNvbGxhcHNlZCBzZWxlY3Rpb24g
YXQgdGhlIGVuZCkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHRib3gtcm9s
ZS1yZXBvcnRzLXNlbGVjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0
Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzZmZmZkMDYyMzJk
OTM2ZjBhZGM5MjE3MDgxMTVhMTJkNjMxYzRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRtbApAQCAt
MCwwICsxLDYwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUM+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3RzIHRoYXQgdGhlIEFYU2VsZWN0
aW9uIHByb3BlcnR5IGlzIGNvcnJlY3RseSByZXBvcnRlZCBmb3Igbm9uLW5hdGl2ZSB0ZXh0IGJv
eGVzLjxicj4KKzxkaXYgcm9sZT0idGV4dGJveCIgaWQ9ImFyaWFUZXh0Qm94IiBhcmlhLW11bHRp
bGluZT0iZmFsc2UiIHRhYmluZGV4PSIwIj5Tb21lIHRleHQgaW4gYSB0ZXh0Ym94ICgzNCBjaGFy
cykuPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgZnVuY3Rp
b24gYXNzZXJ0RXZhbHVhdGVzVG8oYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgICAg
ICB2YXIgYWN0dWFsVmFsdWUgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYWN0dWFs
VmFsdWUgPSBldmFsKGFjdHVhbCk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAg
IGRlYnVnKCJFdmFsdWF0aW5nICIgKyBhY3R1YWwgKyAiOiBUaHJldyBleGNlcHRpb24gIiArIGUp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChhY3R1YWxWYWx1
ZSA9PT0gZXhwZWN0ZWQpCisgICAgICAgICAgICBkZWJ1ZygiUEFTUzogIiArIGFjdHVhbCArICIg
aXMgIiArIGV4cGVjdGVkICsgKG1lc3NhZ2UgPyAiICgiICsgbWVzc2FnZSArICIpIiA6ICIiKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlYnVnKCJGQUlMOiAiICsgYWN0dWFsICsgIiBz
aG91bGQgYmUgIiArIGV4cGVjdGVkICsgIiwgZ290ICIgKyBhY3R1YWxWYWx1ZSArIChtZXNzYWdl
ID8gIiAoIiArIG1lc3NhZ2UgKyAiKSIgOiAiIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFz
c2VydENvcnJlY3RBWFNlbGVjdGlvbihlbGVtZW50LCBzZWxlY3Rpb24sIG1lc3NhZ2UpIHsKKyAg
ICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgICB2YXIgc2VsZWN0aW9uVmFsdWVzID0gL1x7
KFxkKyksIChcZCspXH0vLmV4ZWMoc2VsZWN0aW9uKTsKKyAgICAgICAgdmFyIHNlbGVjdGlvblN0
YXJ0ID0gZXZhbChzZWxlY3Rpb25WYWx1ZXNbMV0pOworICAgICAgICB2YXIgc2VsZWN0aW9uTGVu
Z3RoID0gZXZhbChzZWxlY3Rpb25WYWx1ZXNbMl0pOworICAgICAgICB2YXIgc2VsZWN0aW9uRW5k
ID0gc2VsZWN0aW9uU3RhcnQgKyBzZWxlY3Rpb25MZW5ndGg7CisKKyAgICAgICAgd2luZG93Lmdl
dFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZWxlbWVudC5maXJzdENoaWxkLCBzZWxlY3Rp
b25TdGFydCwgZWxlbWVudC5maXJzdENoaWxkLCBzZWxlY3Rpb25FbmQpOworICAgICAgICB2YXIg
YXhFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAg
ICAgIGF4U2VsZWN0aW9uID0gYXhFbGVtZW50LnNlbGVjdGVkVGV4dFJhbmdlOworICAgICAgICBh
c3NlcnRFdmFsdWF0ZXNUbygiYXhTZWxlY3Rpb24iLCBzZWxlY3Rpb24sIG1lc3NhZ2UpOworICAg
IH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmFjY2Vz
c2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHZhciBhcmlhVGV4dEJveCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJhcmlhVGV4dEJveCIpOworICAgICAgICB2YXIgdGV4dExlbmd0aCA9IGFyaWFU
ZXh0Qm94LnRleHRDb250ZW50Lmxlbmd0aDsKKworICAgICAgICBhc3NlcnRDb3JyZWN0QVhTZWxl
Y3Rpb24oYXJpYVRleHRCb3gsICJ7MCwgMH0iLCAiQ29sbGFwc2VkIHNlbGVjdGlvbiBhdCBzdGFy
dCIpOworICAgICAgICBhc3NlcnRDb3JyZWN0QVhTZWxlY3Rpb24oYXJpYVRleHRCb3gsICJ7IiAr
IHRleHRMZW5ndGggKyAiLCAwfSIsICJDb2xsYXBzZWQgc2VsZWN0aW9uIGF0IGVuZCIpOworICAg
ICAgICBhc3NlcnRDb3JyZWN0QVhTZWxlY3Rpb24oYXJpYVRleHRCb3gsICJ7MTUsIDB9IiwgIkNv
bGxhcHNlZCBzZWxlY3Rpb24gaW4gdGhlIG1pZGRsZSIpOworICAgICAgICBhc3NlcnRDb3JyZWN0
QVhTZWxlY3Rpb24oYXJpYVRleHRCb3gsICJ7MTUsIDJ9IiwgIk5vbi1jb2xsYXBzZWQgc2VsZWN0
aW9uIGluIHRoZSBtaWRkbGUiKTsKKyAgICAgICAgYXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9uKGFy
aWFUZXh0Qm94LCAiezAsIDE1fSIsICJOb24tY29sbGFwc2VkIHNlbGVjdGlvbiBhdCB0aGUgc3Rh
cnQiKTsKKyAgICAgICAgYXNzZXJ0Q29ycmVjdEFYU2VsZWN0aW9uKGFyaWFUZXh0Qm94LCAiezE1
LCAiKyAodGV4dExlbmd0aCAtIDE1KSArICJ9IiwgIk5vbi1jb2xsYXBzZWQgc2VsZWN0aW9uIGF0
IHRoZSBlbmQiKTsKKyAgICB9CisKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRjOGU4MzEwNDRl
ZjNiM2Q5OGM4ZGRmZmZlMTkzYjUxNzg5MGY0NzguLjhkMWU4ZDM2NWU5YjA2NTIwZWJiMTM2NGQy
M2JjYTNmMDIxYzM4ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0wOC0yNSAg
QWxpY2UgQm94aGFsbCAgPGFib3hoYWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb3JyZWN0
bHkgcmVwb3J0IHNlbGVjdGVkIHRleHQgcmFuZ2UgZm9yIGFjY2Vzc2liaWxpdHkgQVBJcyBmb3Ig
cm9sZT10ZXh0Ym94CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NTkwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLmh0
bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjppbmRleEZv
clZpc2libGVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojpyb290RWRpdGFibGVFbGVtZW50Rm9yUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bm9kZUlzVGV4dENvbnRyb2wpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQXJpYVJvbGVB
dHRyaWJ1dGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5oOgorCiAyMDExLTA4LTI5ICBKb2huIEJhdW1hbiAgPGpiYXVtYW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFNwZWVkIHVwIHRleEltYWdlIGZyb20gQkdSQQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKaW5kZXggMGQ4YTdiOWZjNDlhNjhmMmI1ZWUyOWY2YjE0NDNkMjYwNjcwNTcxMC4uZjJjMmUz
NjVkOGJmN2M4MzBhZTMyYzAyMmZjYjQzYTBlMDllN2I0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CkBAIC0yNTE4LDcgKzI1MTgsNyBAQCBpbnQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5k
ZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwbwogICAgICAgICBy
ZXR1cm4gMDsKICAgICAKICAgICBQb3NpdGlvbiBpbmRleFBvc2l0aW9uID0gcG9zLmRlZXBFcXVp
dmFsZW50KCk7Ci0gICAgaWYgKGluZGV4UG9zaXRpb24uaXNOdWxsKCkgfHwgcG9zLnJvb3RFZGl0
YWJsZUVsZW1lbnQoKSAhPSBub2RlKQorICAgIGlmIChpbmRleFBvc2l0aW9uLmlzTnVsbCgpIHx8
IHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JQb3NpdGlvbihpbmRleFBvc2l0aW9uKSAhPSBub2RlKQog
ICAgICAgICByZXR1cm4gMDsKICAgICAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTI1
MzUsNiArMjUzNSwzOCBAQCBpbnQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5kZXhGb3JW
aXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwbwogI2VuZGlmCiB9CiAKK0Vs
ZW1lbnQqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJvb3RFZGl0YWJsZUVsZW1lbnRGb3JQ
b3NpdGlvbihjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pIGNvbnN0Cit7CisgICAgLy8gRmluZCB0
aGUgcm9vdCBlZGl0YWJsZSBvciBwc2V1ZG8tZWRpdGFibGUgKGkuZS4gaGF2aW5nIGFuIGVkaXRh
YmxlIEFSSUEgcm9sZSkgZWxlbWVudC4KKyAgICBFbGVtZW50KiByZXN1bHQgPSAwOworICAgIAor
ICAgIEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQgPSBwb3NpdGlvbi5yb290RWRpdGFibGVF
bGVtZW50KCk7CisKKyAgICBmb3IgKEVsZW1lbnQqIGUgPSBwb3NpdGlvbi5lbGVtZW50KCk7IGUg
JiYgZSAhPSByb290RWRpdGFibGVFbGVtZW50OyBlID0gZS0+cGFyZW50RWxlbWVudCgpKSB7Cisg
ICAgICAgIGlmIChub2RlSXNUZXh0Q29udHJvbChlKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IGU7
CisgICAgICAgIGlmIChlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKQorICAgICAgICAgICAgYnJlYWs7
CisgICAgfQorCisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAg
IHJldHVybiByb290RWRpdGFibGVFbGVtZW50OworfQorCitib29sIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6Om5vZGVJc1RleHRDb250cm9sKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7Cisg
ICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjb25zdCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBheE9iamVjdEZvck5vZGUgPSBheE9iamVjdENhY2hlKCktPmdldE9yQ3Jl
YXRlKG5vZGUtPnJlbmRlcmVyKCkpOworICAgIGlmICghYXhPYmplY3RGb3JOb2RlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gYXhPYmplY3RGb3JOb2RlLT5pc1RleHRDb250
cm9sKCk7Cit9CisKIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Ym91bmRz
Rm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHZpc2li
bGVQb3NpdGlvblJhbmdlKSBjb25zdAogewogICAgIGlmICh2aXNpYmxlUG9zaXRpb25SYW5nZS5p
c051bGwoKSkKQEAgLTMwMjYsNyArMzA1OCw3IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFyaWFSb2xlQXR0cmlidXRlKCkgY29uc3QKICAg
ICAKICAgICBpZiAocm9sZSkKICAgICAgICAgcmV0dXJuIHJvbGU7Ci0gICAgCisKICAgICByZXR1
cm4gVW5rbm93blJvbGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggMzk3MGM1ZTg4NjM1ZDhk
MzE0YzQyMzgxZjIwOWI5Yjc2Njc3NDU4Mi4uOTdhZmRkMThlZDliNzZlYWMzNmY4N2RlNjFmN2Fh
ODUzNTk0MjgwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTEsNCArMSwzIEBACi0KIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAg
LTI0Nyw3ICsyNDYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiB2
aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbnQpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGluZGV4
Rm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0OwotICAgIAor
CiAgICAgdmlydHVhbCBQbGFpblRleHRSYW5nZSBkb0FYUmFuZ2VGb3JMaW5lKHVuc2lnbmVkKSBj
b25zdDsKICAgICB2aXJ0dWFsIFBsYWluVGV4dFJhbmdlIGRvQVhSYW5nZUZvckluZGV4KHVuc2ln
bmVkKSBjb25zdDsKICAgICAKQEAgLTI4MCwxMyArMjc5LDE1IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBoYXNUZXh0QWx0ZXJuYXRpdmUoKSBjb25zdDsKICAgICBTdHJpbmcgcG9zaXRpb25hbERlc2Ny
aXB0aW9uRm9yTVNBQSgpIGNvbnN0OwogICAgIFBsYWluVGV4dFJhbmdlIGFyaWFTZWxlY3RlZFRl
eHRSYW5nZSgpIGNvbnN0OworICAgIEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JQb3Np
dGlvbihjb25zdCBQb3NpdGlvbiYpIGNvbnN0OworICAgIGJvb2wgbm9kZUlzVGV4dENvbnRyb2wo
Y29uc3QgTm9kZSopIGNvbnN0OwogCiAgICAgRWxlbWVudCogbWVudUVsZW1lbnRGb3JNZW51QnV0
dG9uKCkgY29uc3Q7CiAgICAgRWxlbWVudCogbWVudUl0ZW1FbGVtZW50Rm9yTWVudSgpIGNvbnN0
OwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIGRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCk7CiAg
ICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25zdDsK
ICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByZW1hcEFyaWFSb2xlRHVlVG9QYXJlbnQoQWNjZXNzaWJp
bGl0eVJvbGUpIGNvbnN0OwotICAgIAorCiAgICAgYm9vbCBpc1RhYkl0ZW1TZWxlY3RlZCgpIGNv
bnN0OwogICAgIHZvaWQgYWx0ZXJTbGlkZXJWYWx1ZShib29sIGluY3JlYXNlKTsKICAgICB2b2lk
IGNoYW5nZVZhbHVlQnlTdGVwKGJvb2wgaW5jcmVhc2UpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>