<?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>103621</bug_id>
          
          <creation_ts>2012-11-29 02:19:04 -0800</creation_ts>
          <short_desc>Caret is incorrectly painted for a contenteditable &lt;div&gt; containing a &lt;br&gt; in vertical writing mode</short_desc>
          <delta_ts>2013-01-09 06:51:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</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>
          
          <blocked>106452</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Arpita Bahuguna">arpitabahuguna</reporter>
          <assigned_to name="Arpita Bahuguna">arpitabahuguna</assigned_to>
          <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>778844</commentid>
    <comment_count>0</comment_count>
      <attachid>176681</attachid>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2012-11-29 02:19:04 -0800</bug_when>
    <thetext>Created attachment 176681
Testcase

The position of the caret is not computed correctly when a contenteditable &lt;div&gt; contains only a &lt;br&gt; element in the vertical writing mode.

If the &lt;br&gt; element is followed by some some text, the caret is drawn correctly, i.e. at the start of the contenteditable block.
Again, in the horizontal writing mode as well the caret is painted at the right location.

Have uploaded a testcase for this issue. A caret should be drawn within the block upon loading the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778961</commentid>
    <comment_count>1</comment_count>
      <attachid>176715</attachid>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2012-11-29 06:31:36 -0800</bug_when>
    <thetext>Created attachment 176715
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781838</commentid>
    <comment_count>2</comment_count>
      <attachid>176715</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-03 13:42:58 -0800</bug_when>
    <thetext>Comment on attachment 176715
Patch

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

&gt; Source/WebCore/dom/Position.cpp:845
&gt; +            if ((o-&gt;isText() &amp;&amp; (o-&gt;style()-&gt;isHorizontalWritingMode() ? toRenderText(o)-&gt;linesBoundingBox().height() : toRenderText(o)-&gt;linesBoundingBox().width()))
&gt; +                || (o-&gt;isBox() &amp;&amp; (o-&gt;style()-&gt;isHorizontalWritingMode() ? toRenderBox(o)-&gt;borderBoundingBox().height() : toRenderBox(o)-&gt;borderBoundingBox().width())))

We should be calling logicalWidth &amp; logicalHeight instead.

&gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode.html:17
&gt; +    /* Caret rect in div containing text. */

This comment repeats the code. Please remove it.

&gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode.html:22
&gt; +    /* Caret rect in div containing no text. */

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783554</commentid>
    <comment_count>3</comment_count>
      <attachid>177703</attachid>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2012-12-05 02:17:59 -0800</bug_when>
    <thetext>Created attachment 177703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783602</commentid>
    <comment_count>4</comment_count>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2012-12-05 03:36:15 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 176715 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176715&amp;action=review
&gt; 
Thanks for the review rniwa.

&gt; &gt; Source/WebCore/dom/Position.cpp:845
&gt; &gt; +            if ((o-&gt;isText() &amp;&amp; (o-&gt;style()-&gt;isHorizontalWritingMode() ? toRenderText(o)-&gt;linesBoundingBox().height() : toRenderText(o)-&gt;linesBoundingBox().width()))
&gt; &gt; +                || (o-&gt;isBox() &amp;&amp; (o-&gt;style()-&gt;isHorizontalWritingMode() ? toRenderBox(o)-&gt;borderBoundingBox().height() : toRenderBox(o)-&gt;borderBoundingBox().width())))
&gt; 
&gt; We should be calling logicalWidth &amp; logicalHeight instead.
&gt; 
The width and the height values returned for linesBoundingBox would already be adjusted as per the writing mode, but the same is not true for borderBoundingBox.

Thus we should use logicalWidth and logicalHeight for borderBoundingBox since these return the width and height values in accordance with the writing mode.

As the borderBoundingBox internally calls on the pixelSnappedBorderBoxRect() have made use of the pixelSnappedLogicalHeight() and pixelSnappedLogicalWidth() methods which too take care of the writing mode.

&gt; &gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode.html:17
&gt; &gt; +    /* Caret rect in div containing text. */
&gt; 
&gt; This comment repeats the code. Please remove it.
&gt; 
&gt; &gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode.html:22
&gt; &gt; +    /* Caret rect in div containing no text. */
&gt; 
&gt; Ditto.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788596</commentid>
    <comment_count>5</comment_count>
      <attachid>177703</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2012-12-11 10:52:33 -0800</bug_when>
    <thetext>Comment on attachment 177703
Patch

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

&gt; Source/WebCore/dom/Position.cpp:845
&gt; +            if ((o-&gt;isText() &amp;&amp; (o-&gt;style()-&gt;isHorizontalWritingMode() ? toRenderText(o)-&gt;linesBoundingBox().height() : toRenderText(o)-&gt;linesBoundingBox().width()))
&gt; +                || (o-&gt;isBox() &amp;&amp; (o-&gt;style()-&gt;isHorizontalWritingMode() ? toRenderBox(o)-&gt;pixelSnappedLogicalHeight() : toRenderBox(o)-&gt;pixelSnappedLogicalWidth())))

Anyone know why this function doesn&apos;t already check the linesBoundingBox of RenderInlines?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792911</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-17 12:10:07 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; The width and the height values returned for linesBoundingBox would already be adjusted as per the writing mode, but the same is not true for borderBoundingBox.
&gt; 
&gt; Thus we should use logicalWidth and logicalHeight for borderBoundingBox since these return the width and height values in accordance with the writing mode.
&gt; 
&gt; As the borderBoundingBox internally calls on the pixelSnappedBorderBoxRect() have made use of the pixelSnappedLogicalHeight() and pixelSnappedLogicalWidth() methods which too take care of the writing mode.

I don’t get this… pixelSnappedLogicalHeight already checks style()-&gt;isHorizontalWritingMode(). If we’re to flip values again, then we’re back to square one. RenderText::linesBoundingBox also takes the writing mode into account.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793596</commentid>
    <comment_count>7</comment_count>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2012-12-18 06:45:10 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; The width and the height values returned for linesBoundingBox would already be adjusted as per the writing mode, but the same is not true for borderBoundingBox.
&gt; &gt; 
&gt; &gt; Thus we should use logicalWidth and logicalHeight for borderBoundingBox since these return the width and height values in accordance with the writing mode.
&gt; &gt; 
&gt; &gt; As the borderBoundingBox internally calls on the pixelSnappedBorderBoxRect() have made use of the pixelSnappedLogicalHeight() and pixelSnappedLogicalWidth() methods which too take care of the writing mode.
&gt; 
&gt; I don’t get this… pixelSnappedLogicalHeight already checks style()-&gt;isHorizontalWritingMode(). If we’re to flip values again, then we’re back to square one. RenderText::linesBoundingBox also takes the writing mode into account.

This happens because internally RenderText::linesBoundingBox() does a logicalRightSide - logicalLeftSide to return the height value, when in the vertical writing mode.

Now, our logicalRightSide is nothing but curr-&gt;logicalRight() which again internally handles the writing mode.
So in effect we are reversing the value in RenderText::linesBoundingBox() itself and hence the need to reverse it again in Position::hasRenderedNonAnonymousDescendantsWithHeight() arises.

In my opinion our RenderText::linesBoundingBox() should be internally changed to compute values as:
float x = logicalLeftSide;
float y = firstTextBox()-&gt;logicalTop();
float width = logicalRightSide - logicalLeftSide;
and
float height = lastTextBox()-&gt;logicalBottom() - y;

These take care of the writing mode and also, with this, there is no need for code change in Position::hasRenderedNonAnonymousDescendantsWithHeight().

I propose to put another patch with the fix in RenderText::linesBoundingBox() (as suggested above) instead of the current patch, if it seems correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793840</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-18 11:03:46 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt;
&gt; &gt; I don’t get this… pixelSnappedLogicalHeight already checks style()-&gt;isHorizontalWritingMode(). If we’re to flip values again, then we’re back to square one. RenderText::linesBoundingBox also takes the writing mode into account.
&gt; 
&gt; This happens because internally RenderText::linesBoundingBox() does a logicalRightSide - logicalLeftSide to return the height value, when in the vertical writing mode.
&gt; 
&gt; Now, our logicalRightSide is nothing but curr-&gt;logicalRight() which again internally handles the writing mode.
&gt; So in effect we are reversing the value in RenderText::linesBoundingBox() itself and hence the need to reverse it again in Position::hasRenderedNonAnonymousDescendantsWithHeight() arises.

Oh, sure. linesBoundingBox case makes sense. What I&apos;m complaining about is:
o-&gt;style()-&gt;isHorizontalWritingMode() ? toRenderBox(o)-&gt;pixelSnappedLogicalHeight() : toRenderBox(o)-&gt;pixelSnappedLogicalWidth()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793841</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-18 11:04:28 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; In my opinion our RenderText::linesBoundingBox() should be internally changed to compute values as:
&gt; float x = logicalLeftSide;
&gt; float y = firstTextBox()-&gt;logicalTop();
&gt; float width = logicalRightSide - logicalLeftSide;
&gt; and
&gt; float height = lastTextBox()-&gt;logicalBottom() - y;
&gt; 
&gt; These take care of the writing mode and also, with this, there is no need for code change in Position::hasRenderedNonAnonymousDescendantsWithHeight().
&gt; 
&gt; I propose to put another patch with the fix in RenderText::linesBoundingBox() (as suggested above) instead of the current patch, if it seems correct.

That sounds like a sensible thing to do. Perhaps we need to do that in a separate patch? Does all tests pass when you make that change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799963</commentid>
    <comment_count>10</comment_count>
      <attachid>181276</attachid>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2013-01-04 00:01:59 -0800</bug_when>
    <thetext>Created attachment 181276
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799964</commentid>
    <comment_count>11</comment_count>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2013-01-04 00:05:02 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt;
&gt; &gt; &gt; I don’t get this… pixelSnappedLogicalHeight already checks style()-&gt;isHorizontalWritingMode(). If we’re to flip values again, then we’re back to square one. RenderText::linesBoundingBox also takes the writing mode into account.
&gt; &gt; 
&gt; &gt; This happens because internally RenderText::linesBoundingBox() does a logicalRightSide - logicalLeftSide to return the height value, when in the vertical writing mode.
&gt; &gt; 
&gt; &gt; Now, our logicalRightSide is nothing but curr-&gt;logicalRight() which again internally handles the writing mode.
&gt; &gt; So in effect we are reversing the value in RenderText::linesBoundingBox() itself and hence the need to reverse it again in Position::hasRenderedNonAnonymousDescendantsWithHeight() arises.
&gt; 
&gt; Oh, sure. linesBoundingBox case makes sense. What I&apos;m complaining about is:
&gt; o-&gt;style()-&gt;isHorizontalWritingMode() ? toRenderBox(o)-&gt;pixelSnappedLogicalHeight() : toRenderBox(o)-&gt;pixelSnappedLogicalWidth()

Yes, you are indeed correct and apologize for overseeing this in my previous patch.
For RenderBox we don&apos;t really need to have a specific writing mode check again since pixelSnappedLogicalHeight() does take care of returning the appropriate value based on the writing mode.
Have made the required changes in the latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799970</commentid>
    <comment_count>12</comment_count>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2013-01-04 00:15:43 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; In my opinion our RenderText::linesBoundingBox() should be internally changed to compute values as:
&gt; &gt; float x = logicalLeftSide;
&gt; &gt; float y = firstTextBox()-&gt;logicalTop();
&gt; &gt; float width = logicalRightSide - logicalLeftSide;
&gt; &gt; and
&gt; &gt; float height = lastTextBox()-&gt;logicalBottom() - y;
&gt; &gt; 
&gt; &gt; These take care of the writing mode and also, with this, there is no need for code change in Position::hasRenderedNonAnonymousDescendantsWithHeight().
&gt; &gt; 
&gt; &gt; I propose to put another patch with the fix in RenderText::linesBoundingBox() (as suggested above) instead of the current patch, if it seems correct.
&gt; 
&gt; That sounds like a sensible thing to do. Perhaps we need to do that in a separate patch? Does all tests pass when you make that change?

I did raise another bug for this issue, based on my prev interpretation in comment #7 above. https://bugs.webkit.org/show_bug.cgi?id=105409

But on further analysis (https://bugs.webkit.org/show_bug.cgi?id=105409#c1) have found the current implementation for RenderText::linesBoundingBox() to be correct.

Even though logicalRight() and logicalLeft() return values based on the writing mode, InlineBox&apos;s logicalHeight() and logicalWidth() don&apos;t. Their logicalness perhaps refers to the bidi logicalness as you had mentioned earlier.
Thus for our linesBoundingBox we would still require a specific writing mode check in Position::hasRenderedNonAnonymousDescendantsWithHeight().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799975</commentid>
    <comment_count>13</comment_count>
      <attachid>181276</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-04 00:27:05 -0800</bug_when>
    <thetext>Comment on attachment 181276
Patch

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

&gt; Source/WebCore/ChangeLog:20
&gt; +        case the &lt;br&gt; element) rather than the height in the vertical mode.

Thanks for the detailed change log. It makes the code review much easier.

&gt; Source/WebCore/dom/Position.cpp:849
&gt; +            if ((o-&gt;isText() &amp;&amp; (o-&gt;style()-&gt;isHorizontalWritingMode() ? toRenderText(o)-&gt;linesBoundingBox().height() : toRenderText(o)-&gt;linesBoundingBox().width()))

Can we add something like linesLogicalBoundingBox and flip width &amp; height there?

&gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode-expected.txt:12
&gt; +The caret on the empty div, containing only the &lt;br&gt; element, should be visible. For the test to pass, the top, the width and the height of the caret rects in both the boxes should be the same.
&gt; +PASS withTextCaretRect.top is withoutTextCaretRect.top
&gt; +PASS withTextCaretRect.width is withoutTextCaretRect.width
&gt; +PASS withTextCaretRect.height is withoutTextCaretRect.height
&gt; +To manually verify the issue, try focusing or clicking on the second box. A caret should be visible at the start position of that container.

It&apos;s really distracting to see these debug messages interleaving actual test results.

&gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode.html:25
&gt; +    debug(&quot;The caret on the empty div, containing only the &amp;lt;br&amp;gt; element, should be visible. For the test to pass, the top, the width and the height of the caret rects in both the boxes should be the same.&quot;)

Why don&apos;t you merge this debug,

&gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode.html:33
&gt; +    debug(&quot;To manually verify the issue, try focusing or clicking on the second box. A caret should be visible at the start position of that container.&quot;);

and this one into the description? (Add \n as needed). Also, these lines are really long for my taste.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800187</commentid>
    <comment_count>14</comment_count>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2013-01-04 06:50:33 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 181276 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181276&amp;action=review
&gt; 
Thanks for the review rniwa. I will shortly add another patch with the changes as suggested by you.

&gt; &gt; Source/WebCore/dom/Position.cpp:849
&gt; &gt; +            if ((o-&gt;isText() &amp;&amp; (o-&gt;style()-&gt;isHorizontalWritingMode() ? toRenderText(o)-&gt;linesBoundingBox().height() : toRenderText(o)-&gt;linesBoundingBox().width()))
&gt; 
&gt; Can we add something like linesLogicalBoundingBox and flip width &amp; height there?
&gt; 
This seems like a good idea, would you rather have me do this as a separate fix or as a part of this patch itself?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800376</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-04 10:43:13 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (From update of attachment 181276 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181276&amp;action=review
&gt; &gt; 
&gt; Thanks for the review rniwa. I will shortly add another patch with the changes as suggested by you.
&gt; 
&gt; &gt; &gt; Source/WebCore/dom/Position.cpp:849
&gt; &gt; &gt; +            if ((o-&gt;isText() &amp;&amp; (o-&gt;style()-&gt;isHorizontalWritingMode() ? toRenderText(o)-&gt;linesBoundingBox().height() : toRenderText(o)-&gt;linesBoundingBox().width()))
&gt; &gt; 
&gt; &gt; Can we add something like linesLogicalBoundingBox and flip width &amp; height there?
&gt; &gt; 
&gt; This seems like a good idea, would you rather have me do this as a separate fix or as a part of this patch itself?

We should do it in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802236</commentid>
    <comment_count>16</comment_count>
      <attachid>181689</attachid>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2013-01-08 07:19:20 -0800</bug_when>
    <thetext>Created attachment 181689
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802798</commentid>
    <comment_count>17</comment_count>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2013-01-08 16:41:57 -0800</bug_when>
    <thetext>Hi rniwa, have uploaded another patch with the changes as suggested by you.
Have introduced linesLogicalBoundingBox() and merged the debug statements into the description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802803</commentid>
    <comment_count>18</comment_count>
      <attachid>181689</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-08 16:45:28 -0800</bug_when>
    <thetext>Comment on attachment 181689
Patch

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

&gt; Source/WebCore/rendering/RenderText.cpp:1617
&gt; +    IntRect rect;
&gt; +
&gt; +    rect = linesBoundingBox();

You can just do:
IntRect rect = linesBoundingBox();

&gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode-expected.txt:3
&gt; +
&gt; +some text
&gt; +

Could you hide this test when ran inside a DRT?

&gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode.html:24
&gt; +        

Nit: whitespace.

&gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode.html:29
&gt; +    }

Setting style.display to none would work.

&gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode.html:30
&gt; +    

Nit: whitespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803019</commentid>
    <comment_count>19</comment_count>
      <attachid>181843</attachid>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2013-01-08 22:00:26 -0800</bug_when>
    <thetext>Created attachment 181843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803022</commentid>
    <comment_count>20</comment_count>
    <who name="Arpita Bahuguna">arpitabahuguna</who>
    <bug_when>2013-01-08 22:02:12 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 181689 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181689&amp;action=review
&gt; 
Many thanks for the review rniwa. Have uploaded another patch with the suggested changes.

&gt; &gt; Source/WebCore/rendering/RenderText.cpp:1617
&gt; &gt; +    IntRect rect;
&gt; &gt; +
&gt; &gt; +    rect = linesBoundingBox();
&gt; 
&gt; You can just do:
&gt; IntRect rect = linesBoundingBox();
&gt; 
&gt; &gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode-expected.txt:3
&gt; &gt; +
&gt; &gt; +some text
&gt; &gt; +
&gt; 
&gt; Could you hide this test when ran inside a DRT?
&gt; 
&gt; &gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode.html:24
&gt; &gt; +        
&gt; 
&gt; Nit: whitespace.
&gt; 
&gt; &gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode.html:29
&gt; &gt; +    }
&gt; 
&gt; Setting style.display to none would work.
&gt; 
&gt; &gt; LayoutTests/editing/selection/caret-in-div-containing-br-in-vertical-mode.html:30
&gt; &gt; +    
&gt; 
&gt; Nit: whitespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803052</commentid>
    <comment_count>21</comment_count>
      <attachid>181843</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-08 22:57:20 -0800</bug_when>
    <thetext>Comment on attachment 181843
Patch

Clearing flags on attachment: 181843

Committed r139166: &lt;http://trac.webkit.org/changeset/139166&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803053</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-08 22:57:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>176681</attachid>
            <date>2012-11-29 02:19:04 -0800</date>
            <delta_ts>2012-11-29 02:19:04 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>edit3.html</filename>
            <type>text/html</type>
            <size>310</size>
            <attacher name="Arpita Bahuguna">arpitabahuguna</attacher>
            
              <data encoding="base64">PHN0eWxlPg0KI3Rlc3Qgew0KICAgIGhlaWdodDogMjAwcHg7DQogICAgd2lkdGg6IDIwMHB4Ow0K
ICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOw0KICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2
ZXJ0aWNhbC1ybDsNCn0NCjwvc3R5bGU+DQo8c2NyaXB0Pg0KZnVuY3Rpb24gdGVzdCgpIHsNCiAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLmZvY3VzKCk7DQp9DQo8L3NjcmlwdD4N
Cjxib2R5IG9ubG9hZD0idGVzdCgpIj4NCjxkaXYgaWQ9InRlc3QiIGNvbnRlbnRlZGl0YWJsZT0i
dHJ1ZSI+PGJyPjwvZGl2Pg0KPC9ib2R5Pg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176715</attachid>
            <date>2012-11-29 06:31:36 -0800</date>
            <delta_ts>2012-12-05 02:17:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103621-20121129200338.patch</filename>
            <type>text/plain</type>
            <size>7272</size>
            <attacher name="Arpita Bahuguna">arpitabahuguna</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjEyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTI5ICBBcnBpdGEg
QmFodWd1bmEgIDxhcnBpdGFiYWh1Z3VuYUBnbWFpbC5jb20+CisKKyAgICAgICAgQ2FyZXQgaXMg
aW5jb3JyZWN0bHkgcGFpbnRlZCBmb3IgYSBjb250ZW50ZWRpdGFibGUgPGRpdj4gY29udGFpbmlu
ZyBhIDxicj4gaW4gdmVydGljYWwgd3JpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM2MjEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGlsZSBjb21wdXRpbmcgdGhlIGNhcmV0IHJlY3Qg
Zm9yIHRoZSBnaXZlbiBzcGVjaWZpYyBzY2VuYXJpbywgd2UKKyAgICAgICAgY2Fub25pY2FsaXpl
IG91ciBwb3NpdGlvbi4gRm9yIHRoZSB1cHN0cmVhbSAob3IgZG93bnN0cmVhbSkgYmxvY2sgZmxv
dworICAgICAgICBjYW5kaWRhdGVzIGEgY2hlY2sgdG8gaWdub3JlIHRoZSBub2RlcyBoYXZpbmcg
cmVuZGVyZXJzIHdpdGggemVybyBoZWlnaHQKKyAgICAgICAgaXMgY2FycmllZCBvdXQuIFRoaXMg
aXMgd2hlcmUgd2UgZmFpbCBvdXIgY2hlY2sgaW4gdGhlIHZlcnRpY2FsIHdyaXRpbmcgbW9kZS4K
KworICAgICAgICBJbiB0aGUgdmVydGljYWwgd3JpdGluZyBtb2RlLCBpbnN0ZWFkIG9mIHZlcmlm
eWluZyB0aGUgaGVpZ2h0IG9mIHRoZSBkZXNjZW5kYW50cworICAgICAgICBvZiB0aGUgY2FuZGlk
YXRlIG5vZGVzLCBhIGNoZWNrIGZvciB0aGVpciB3aWR0aCBzaG91bGQgYmUgY2FycmllZCBvdXQu
CisKKyAgICAgICAgRm9yIG91ciBjYXNlLCBpLmUuIHRoZSA8YnI+IGVsZW1lbnQgY29udGFpbmVk
IGluc2lkZSB0aGUgZGl2LCB0aGUgYm91bmRpbmcgYm94CisgICAgICAgIGluIHRoZSB2ZXJ0aWNh
bCB3cml0aW5nIG1vZGUgd291bGQgaGF2ZSBhIHdpZHRoIGdyZWF0ZXIgdGhhbiB6ZXJvIGFuZCBo
ZWlnaHQKKyAgICAgICAgZXF1YWwgdG8gemVybyAoYXMgaXMgdG8gYmUgZXhwZWN0ZWQgaW4gdGhl
IHZlcnRpY2FsIG1vZGUpLgorICAgICAgICBUaHVzLCB3ZSBzaG91bGQgY2hlY2sgYWdhaW5zdCB0
aGUgd2lkdGggb2YgdGhlIGRlc2NlbmRhbnRzIG9mIG91ciBkaXYgKGluIHRoaXMKKyAgICAgICAg
Y2FzZSB0aGUgPGJyPiBlbGVtZW50KSByYXRoZXIgdGhhbiB0aGUgaGVpZ2h0IGluIHRoZSB2ZXJ0
aWNhbCBtb2RlLgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWluLWRp
di1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUuaHRtbAorCisgICAgICAgICogZG9tL1Bv
c2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFu
b255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodCk6CisgICAgICAgIEJhc2VkIG9uIHRoZSB3cml0
aW5nIG1vZGUsIGhhdmUgbW9kaWZpZWQgdGhlIGNvZGUgdG8gZWl0aGVyIHZlcmlmeSBhZ2FpbnN0
CisgICAgICAgIHRoZSBoZWlnaHQgb2YgdGhlIGJvdW5kaW5nQm94IChob3Jpem9udGFsIHdyaXRp
bmcgbW9kZSkgb3IgYWdhaW5zdCB0aGUKKyAgICAgICAgd2lkdGggKHZlcnRpY2FsIHdyaXRpbmcg
bW9kZSkuCisKIDIwMTItMTEtMjkgIEZsb3JpbiBNYWxpdGEgIDxmbWFsaXRhQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbU2tpYV0gQWRkIG1pc3NpbmcgT3BhcXVlUmVnaW9uU2tpYSBub3RpZmll
ciBjYWxscwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCShyZXZpc2lvbiAxMzYxMjUpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NDEs
OCArODQxLDggQEAgYm9vbCBQb3NpdGlvbjo6aGFzUmVuZGVyZWROb25Bbm9ueW1vdXNEZQogICAg
IFJlbmRlck9iamVjdCogc3RvcCA9IHJlbmRlcmVyLT5uZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRy
ZW4oKTsKICAgICBmb3IgKFJlbmRlck9iamVjdCAqbyA9IHJlbmRlcmVyLT5maXJzdENoaWxkKCk7
IG8gJiYgbyAhPSBzdG9wOyBvID0gby0+bmV4dEluUHJlT3JkZXIoKSkKICAgICAgICAgaWYgKG8t
Pm5vZGUoKSkgewotICAgICAgICAgICAgaWYgKChvLT5pc1RleHQoKSAmJiB0b1JlbmRlclRleHQo
byktPmxpbmVzQm91bmRpbmdCb3goKS5oZWlnaHQoKSkgfHwKLSAgICAgICAgICAgICAgICAoby0+
aXNCb3goKSAmJiB0b1JlbmRlckJveChvKS0+Ym9yZGVyQm91bmRpbmdCb3goKS5oZWlnaHQoKSkp
CisgICAgICAgICAgICBpZiAoKG8tPmlzVGV4dCgpICYmIChvLT5zdHlsZSgpLT5pc0hvcml6b250
YWxXcml0aW5nTW9kZSgpID8gdG9SZW5kZXJUZXh0KG8pLT5saW5lc0JvdW5kaW5nQm94KCkuaGVp
Z2h0KCkgOiB0b1JlbmRlclRleHQobyktPmxpbmVzQm91bmRpbmdCb3goKS53aWR0aCgpKSkKKyAg
ICAgICAgICAgICAgICB8fCAoby0+aXNCb3goKSAmJiAoby0+c3R5bGUoKS0+aXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IHRvUmVuZGVyQm94KG8pLT5ib3JkZXJCb3VuZGluZ0JveCgpLmhlaWdo
dCgpIDogdG9SZW5kZXJCb3gobyktPmJvcmRlckJvdW5kaW5nQm94KCkud2lkdGgoKSkpKQogICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMTM2MTI1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTEtMjkgIEFycGl0YSBCYWh1Z3VuYSAg
PGFycGl0YWJhaHVndW5hQGdtYWlsLmNvbT4KKworICAgICAgICBDYXJldCBpcyBpbmNvcnJlY3Rs
eSBwYWludGVkIGZvciBhIGNvbnRlbnRlZGl0YWJsZSA8ZGl2PiBjb250YWluaW5nIGEgPGJyPiBp
biB2ZXJ0aWNhbCB3cml0aW5nIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMzYyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtaW4tZGl2LWNvbnRhaW5p
bmctYnItaW4tdmVydGljYWwtbW9kZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL2NhcmV0LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1v
ZGUuaHRtbDogQWRkZWQuCisgICAgICAgIFRlc3RjYXNlIGFkZGVkIGZvciB2ZXJpZnlpbmcgdGhl
IGNhcmV0IGRpc3BsYXkgYXQgdGhlIHN0YXJ0IG9mIGFuIGVkaXRhYmxlCisgICAgICAgIGRpdiBj
b250YWluaW5nIG9ubHkgYSA8YnI+IGVsZW1lbnQgaW4gdmVydGljYWwgd3JpdGluZyBtb2RlLgor
CiAyMDEyLTExLTI5ICBLd2FuZ1lvbmcgQ2hvaSAgPGt5MC5jaG9pQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIFtFRkxdIFJlbW92ZSBkdXBsaWNhdGVkIGVudHJpZXMgZnJvbSBlZmwtd2sxL1Rlc3RF
eHBlY3RhdGlvbnMKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWlu
LWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWluLWRpdi1jb250YWlu
aW5nLWJyLWluLXZlcnRpY2FsLW1vZGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtaW4tZGl2LWNvbnRhaW5pbmctYnItaW4t
dmVydGljYWwtbW9kZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYgQEAK
Kworc29tZSB0ZXh0CisKK1Rlc3RjYXNlIGZvciBidWcgMTAzNjIxOiBDYXJldCBpcyBpbmNvcnJl
Y3RseSBwYWludGVkIGZvciBhIGNvbnRlbnRlZGl0YWJsZSA8ZGl2PiBjb250YWluaW5nIGEgPGJy
PiBpbiB2ZXJ0aWNhbCB3cml0aW5nIG1vZGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworVGhlIGNhcmV0IG9uIHRoZSBlbXB0eSBkaXYsIGNvbnRhaW5pbmcgb25seSB0aGUgPGJyPiBl
bGVtZW50LCBzaG91bGQgYmUgdmlzaWJsZS4gRm9yIHRoZSB0ZXN0IHRvIHBhc3MsIHRoZSB0b3As
IHRoZSB3aWR0aCBhbmQgdGhlIGhlaWdodCBvZiB0aGUgY2FyZXQgcmVjdHMgaW4gYm90aCB0aGUg
Ym94ZXMgc2hvdWxkIGJlIHRoZSBzYW1lLgorUEFTUyB3aXRoVGV4dENhcmV0UmVjdC50b3AgaXMg
d2l0aG91dFRleHRDYXJldFJlY3QudG9wCitQQVNTIHdpdGhUZXh0Q2FyZXRSZWN0LndpZHRoIGlz
IHdpdGhvdXRUZXh0Q2FyZXRSZWN0LndpZHRoCitQQVNTIHdpdGhUZXh0Q2FyZXRSZWN0LmhlaWdo
dCBpcyB3aXRob3V0VGV4dENhcmV0UmVjdC5oZWlnaHQKK1RvIG1hbnVhbGx5IHZlcmlmeSB0aGUg
aXNzdWUsIHRyeSBmb2N1c2luZyBvciBjbGlja2luZyBvbiB0aGUgc2Vjb25kIGJveC4gQSBjYXJl
dCBzaG91bGQgYmUgdmlzaWJsZSBhdCB0aGUgc3RhcnQgcG9zaXRpb24gb2YgdGhhdCBjb250YWlu
ZXIuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtaW4tZGl2LWNvbnRhaW5p
bmctYnItaW4tdmVydGljYWwtbW9kZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2NhcmV0LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1v
ZGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2Nh
cmV0LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+IAorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZT4KKy5lZGl0YWJsZURpdiB7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB3aWR0aDogMjAw
cHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgLXdlYmtpdC13cml0aW5nLW1v
ZGU6IHZlcnRpY2FsLXJsOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICBkZXNjcmlwdGlvbignVGVzdGNhc2UgZm9yIGJ1ZyA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjIxIj4xMDM2MjE8L2E+
OiAgQ2FyZXQgaXMgaW5jb3JyZWN0bHkgcGFpbnRlZCBmb3IgYSBjb250ZW50ZWRpdGFibGUgJmx0
O2RpdiZndDsgY29udGFpbmluZyBhICZsdDticiZndDsgaW4gdmVydGljYWwgd3JpdGluZyBtb2Rl
LicpOworCisgICAgLyogQ2FyZXQgcmVjdCBpbiBkaXYgY29udGFpbmluZyB0ZXh0LiAqLworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0RGl2JykuZm9jdXMoKTsKKyAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgd2l0aFRleHRDYXJldFJlY3QgPSBpbnRlcm5hbHMuYWJz
b2x1dGVDYXJldEJvdW5kcyhkb2N1bWVudCk7CisKKyAgICAvKiBDYXJldCByZWN0IGluIGRpdiBj
b250YWluaW5nIG5vIHRleHQuICovCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vVGV4
dERpdicpLmZvY3VzKCk7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpdGhv
dXRUZXh0Q2FyZXRSZWN0ID0gaW50ZXJuYWxzLmFic29sdXRlQ2FyZXRCb3VuZHMoZG9jdW1lbnQp
OworICAgICAgICAKKyAgICBkZWJ1ZygiVGhlIGNhcmV0IG9uIHRoZSBlbXB0eSBkaXYsIGNvbnRh
aW5pbmcgb25seSB0aGUgJmx0O2JyJmd0OyBlbGVtZW50LCBzaG91bGQgYmUgdmlzaWJsZS4gRm9y
IHRoZSB0ZXN0IHRvIHBhc3MsIHRoZSB0b3AsIHRoZSB3aWR0aCBhbmQgdGhlIGhlaWdodCBvZiB0
aGUgY2FyZXQgcmVjdHMgaW4gYm90aCB0aGUgYm94ZXMgc2hvdWxkIGJlIHRoZSBzYW1lLiIpCisg
ICAgCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgc2hvdWxkQmUoIndpdGhU
ZXh0Q2FyZXRSZWN0LnRvcCIsICJ3aXRob3V0VGV4dENhcmV0UmVjdC50b3AiKTsKKyAgICAgICAg
c2hvdWxkQmUoIndpdGhUZXh0Q2FyZXRSZWN0LndpZHRoIiwgIndpdGhvdXRUZXh0Q2FyZXRSZWN0
LndpZHRoIik7CisgICAgICAgIHNob3VsZEJlKCJ3aXRoVGV4dENhcmV0UmVjdC5oZWlnaHQiLCAi
d2l0aG91dFRleHRDYXJldFJlY3QuaGVpZ2h0Iik7ICAgICAgICAKKyAgICB9CisgICAgCisgICAg
ZGVidWcoIlRvIG1hbnVhbGx5IHZlcmlmeSB0aGUgaXNzdWUsIHRyeSBmb2N1c2luZyBvciBjbGlj
a2luZyBvbiB0aGUgc2Vjb25kIGJveC4gQSBjYXJldCBzaG91bGQgYmUgdmlzaWJsZSBhdCB0aGUg
c3RhcnQgcG9zaXRpb24gb2YgdGhhdCBjb250YWluZXIuIik7CisgICAgCisgICAgaXNTdWNjZXNz
ZnVsbHlQYXJzZWQoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCk7Ij4KKzxkaXYgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzdHlsZT0iZmxvYXQ6IGxlZnQ7
IiBjbGFzcz0iZWRpdGFibGVEaXYiIGlkPSJ0ZXh0RGl2Ij48YnI+c29tZSB0ZXh0PC9kaXY+Cis8
ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgY2xhc3M9ImVkaXRhYmxlRGl2IiBpZD0ibm9UZXh0
RGl2Ij48YnI+PC9kaXY+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177703</attachid>
            <date>2012-12-05 02:17:59 -0800</date>
            <delta_ts>2013-01-04 00:01:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103621-20121205155006.patch</filename>
            <type>text/plain</type>
            <size>7522</size>
            <attacher name="Arpita Bahuguna">arpitabahuguna</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjY1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEyLTEyLTA1ICBBcnBpdGEg
QmFodWd1bmEgIDxhcnBpdGFiYWh1Z3VuYUBnbWFpbC5jb20+CisKKyAgICAgICAgQ2FyZXQgaXMg
aW5jb3JyZWN0bHkgcGFpbnRlZCBmb3IgYSBjb250ZW50ZWRpdGFibGUgPGRpdj4gY29udGFpbmlu
ZyBhIDxicj4gaW4gdmVydGljYWwgd3JpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM2MjEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGlsZSBjb21wdXRpbmcgdGhlIGNhcmV0IHJlY3Qg
Zm9yIHRoZSBnaXZlbiBzcGVjaWZpYyBzY2VuYXJpbywgd2UKKyAgICAgICAgY2Fub25pY2FsaXpl
IG91ciBwb3NpdGlvbi4gRm9yIHRoZSB1cHN0cmVhbSAob3IgZG93bnN0cmVhbSkgYmxvY2sgZmxv
dworICAgICAgICBjYW5kaWRhdGVzIGEgY2hlY2sgdG8gaWdub3JlIHRoZSBub2RlcyBoYXZpbmcg
cmVuZGVyZXJzIHdpdGggemVybyBoZWlnaHQKKyAgICAgICAgaXMgY2FycmllZCBvdXQuIFRoaXMg
aXMgd2hlcmUgd2UgZmFpbCBvdXIgY2hlY2sgaW4gdGhlIHZlcnRpY2FsIHdyaXRpbmcgbW9kZS4K
KworICAgICAgICBJbiB0aGUgdmVydGljYWwgd3JpdGluZyBtb2RlLCBpbnN0ZWFkIG9mIHZlcmlm
eWluZyB0aGUgaGVpZ2h0IG9mIHRoZSBkZXNjZW5kYW50cworICAgICAgICBvZiB0aGUgY2FuZGlk
YXRlIG5vZGVzLCBhIGNoZWNrIGZvciB0aGVpciB3aWR0aCBzaG91bGQgYmUgY2FycmllZCBvdXQu
CisKKyAgICAgICAgRm9yIG91ciBjYXNlLCBpLmUuIHRoZSA8YnI+IGVsZW1lbnQgY29udGFpbmVk
IGluc2lkZSB0aGUgZGl2LCB0aGUgYm91bmRpbmcgYm94CisgICAgICAgIGluIHRoZSB2ZXJ0aWNh
bCB3cml0aW5nIG1vZGUgd291bGQgaGF2ZSBhIHdpZHRoIGdyZWF0ZXIgdGhhbiB6ZXJvIGFuZCBo
ZWlnaHQKKyAgICAgICAgZXF1YWwgdG8gemVybyAoYXMgaXMgdG8gYmUgZXhwZWN0ZWQgaW4gdGhl
IHZlcnRpY2FsIG1vZGUpLgorICAgICAgICBUaHVzLCB3ZSBzaG91bGQgY2hlY2sgYWdhaW5zdCB0
aGUgd2lkdGggb2YgdGhlIGRlc2NlbmRhbnRzIG9mIG91ciBkaXYgKGluIHRoaXMKKyAgICAgICAg
Y2FzZSB0aGUgPGJyPiBlbGVtZW50KSByYXRoZXIgdGhhbiB0aGUgaGVpZ2h0IGluIHRoZSB2ZXJ0
aWNhbCBtb2RlLgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWluLWRp
di1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUuaHRtbAorCisgICAgICAgICogZG9tL1Bv
c2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFu
b255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodCk6CisgICAgICAgIEJhc2VkIG9uIHRoZSB3cml0
aW5nIG1vZGUsIGhhdmUgbW9kaWZpZWQgdGhlIGNvZGUgdG8gZWl0aGVyIHZlcmlmeSBhZ2FpbnN0
CisgICAgICAgIHRoZSBoZWlnaHQgb2YgdGhlIGJvdW5kaW5nQm94IChob3Jpem9udGFsIHdyaXRp
bmcgbW9kZSkgb3IgYWdhaW5zdCB0aGUKKyAgICAgICAgd2lkdGggKHZlcnRpY2FsIHdyaXRpbmcg
bW9kZSkuCisKKyAgICAgICAgQWxzbywgaW5zdGVhZCBvZiB1c2luZyB0aGUgaGVpZ2h0IGFuZCB3
aWR0aCBkaXJlY3RseSBmb3IgUmVuZGVyQm94IHdlIHNob3VsZAorICAgICAgICByYXRoZXIgdXNl
IHRoZSBsb2dpY2FsSGVpZ2h0IGFuZCB0aGUgbG9naWNhbFdpZHRoIHNpbmNlIHRoZXkgcmV0dXJu
IHRoZSB2YWx1ZXMKKyAgICAgICAgYWNjb3JkaW5nIHRvIHRoZSB3cml0aW5nIG1vZGUuIGJvcmRl
ckJvdW5kaW5nQm94KCkgaW50ZXJuYWxseSBjYWxscworICAgICAgICBvbiB0aGUgcGl4ZWwgc25h
cHBlZCByZWN0LCBhbSB0aHVzIG1ha2luZyB1c2Ugb2YgdGhlIHBpeGVsU25hcHBlZCBsb2dpY2Fs
V2lkdGgKKyAgICAgICAgYW5kIGxvZ2ljYWxIZWlnaHQgY2FsbHMuCisKIDIwMTItMTItMDUgIERh
biBDYXJuZXkgIDxkY2FybmV5QGdvb2dsZS5jb20+CiAKICAgICAgICAgW1Y4XSB0b1Y4RmFzdCBm
b3IgYWxsIGNsYXNzZXMgd2l0aCBTY3JpcHRXcmFwcGVyIEhvbGRlciBvYmplY3RzCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHJldmlzaW9uIDEzNjY1MykKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Qb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0MSw4ICs4NDEsOCBAQCBib29s
IFBvc2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFub255bW91c0RlCiAgICAgUmVuZGVyT2JqZWN0KiBz
dG9wID0gcmVuZGVyZXItPm5leHRJblByZU9yZGVyQWZ0ZXJDaGlsZHJlbigpOwogICAgIGZvciAo
UmVuZGVyT2JqZWN0ICpvID0gcmVuZGVyZXItPmZpcnN0Q2hpbGQoKTsgbyAmJiBvICE9IHN0b3A7
IG8gPSBvLT5uZXh0SW5QcmVPcmRlcigpKQogICAgICAgICBpZiAoby0+bm9kZSgpKSB7Ci0gICAg
ICAgICAgICBpZiAoKG8tPmlzVGV4dCgpICYmIHRvUmVuZGVyVGV4dChvKS0+bGluZXNCb3VuZGlu
Z0JveCgpLmhlaWdodCgpKSB8fAotICAgICAgICAgICAgICAgIChvLT5pc0JveCgpICYmIHRvUmVu
ZGVyQm94KG8pLT5ib3JkZXJCb3VuZGluZ0JveCgpLmhlaWdodCgpKSkKKyAgICAgICAgICAgIGlm
ICgoby0+aXNUZXh0KCkgJiYgKG8tPnN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyB0b1JlbmRlclRleHQobyktPmxpbmVzQm91bmRpbmdCb3goKS5oZWlnaHQoKSA6IHRvUmVuZGVy
VGV4dChvKS0+bGluZXNCb3VuZGluZ0JveCgpLndpZHRoKCkpKQorICAgICAgICAgICAgICAgIHx8
IChvLT5pc0JveCgpICYmIChvLT5zdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8g
dG9SZW5kZXJCb3gobyktPnBpeGVsU25hcHBlZExvZ2ljYWxIZWlnaHQoKSA6IHRvUmVuZGVyQm94
KG8pLT5waXhlbFNuYXBwZWRMb2dpY2FsV2lkdGgoKSkpKQogICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTM2NjUzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTItMTItMDUgIEFycGl0YSBCYWh1Z3VuYSAgPGFycGl0YWJhaHVndW5hQGdt
YWlsLmNvbT4KKworICAgICAgICBDYXJldCBpcyBpbmNvcnJlY3RseSBwYWludGVkIGZvciBhIGNv
bnRlbnRlZGl0YWJsZSA8ZGl2PiBjb250YWluaW5nIGEgPGJyPiBpbiB2ZXJ0aWNhbCB3cml0aW5n
IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MzYyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtaW4tZGl2LWNvbnRhaW5pbmctYnItaW4tdmVydGljYWwt
bW9kZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2Nh
cmV0LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUuaHRtbDogQWRkZWQuCisg
ICAgICAgIFRlc3RjYXNlIGFkZGVkIGZvciB2ZXJpZnlpbmcgdGhlIGNhcmV0IGRpc3BsYXkgYXQg
dGhlIHN0YXJ0IG9mIGFuIGVkaXRhYmxlCisgICAgICAgIGRpdiBjb250YWluaW5nIG9ubHkgYSA8
YnI+IGVsZW1lbnQgaW4gdmVydGljYWwgd3JpdGluZyBtb2RlLgorCiAyMDEyLTEyLTA1ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBVbnJldmll
d2VkIGdhcmRlbmluZy4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NhcmV0
LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWluLWRpdi1jb250
YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtaW4tZGl2LWNvbnRhaW5pbmctYnIt
aW4tdmVydGljYWwtbW9kZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYg
QEAKKworc29tZSB0ZXh0CisKK1Rlc3RjYXNlIGZvciBidWcgMTAzNjIxOiBDYXJldCBpcyBpbmNv
cnJlY3RseSBwYWludGVkIGZvciBhIGNvbnRlbnRlZGl0YWJsZSA8ZGl2PiBjb250YWluaW5nIGEg
PGJyPiBpbiB2ZXJ0aWNhbCB3cml0aW5nIG1vZGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworVGhlIGNhcmV0IG9uIHRoZSBlbXB0eSBkaXYsIGNvbnRhaW5pbmcgb25seSB0aGUgPGJy
PiBlbGVtZW50LCBzaG91bGQgYmUgdmlzaWJsZS4gRm9yIHRoZSB0ZXN0IHRvIHBhc3MsIHRoZSB0
b3AsIHRoZSB3aWR0aCBhbmQgdGhlIGhlaWdodCBvZiB0aGUgY2FyZXQgcmVjdHMgaW4gYm90aCB0
aGUgYm94ZXMgc2hvdWxkIGJlIHRoZSBzYW1lLgorUEFTUyB3aXRoVGV4dENhcmV0UmVjdC50b3Ag
aXMgd2l0aG91dFRleHRDYXJldFJlY3QudG9wCitQQVNTIHdpdGhUZXh0Q2FyZXRSZWN0LndpZHRo
IGlzIHdpdGhvdXRUZXh0Q2FyZXRSZWN0LndpZHRoCitQQVNTIHdpdGhUZXh0Q2FyZXRSZWN0Lmhl
aWdodCBpcyB3aXRob3V0VGV4dENhcmV0UmVjdC5oZWlnaHQKK1RvIG1hbnVhbGx5IHZlcmlmeSB0
aGUgaXNzdWUsIHRyeSBmb2N1c2luZyBvciBjbGlja2luZyBvbiB0aGUgc2Vjb25kIGJveC4gQSBj
YXJldCBzaG91bGQgYmUgdmlzaWJsZSBhdCB0aGUgc3RhcnQgcG9zaXRpb24gb2YgdGhhdCBjb250
YWluZXIuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtaW4tZGl2LWNvbnRh
aW5pbmctYnItaW4tdmVydGljYWwtbW9kZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2Fs
LW1vZGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2NhcmV0LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+IAorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKy5lZGl0YWJsZURpdiB7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB3aWR0aDog
MjAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgLXdlYmtpdC13cml0aW5n
LW1vZGU6IHZlcnRpY2FsLXJsOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICBkZXNjcmlwdGlvbignVGVzdGNhc2UgZm9yIGJ1ZyA8YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjIxIj4xMDM2MjE8
L2E+OiAgQ2FyZXQgaXMgaW5jb3JyZWN0bHkgcGFpbnRlZCBmb3IgYSBjb250ZW50ZWRpdGFibGUg
Jmx0O2RpdiZndDsgY29udGFpbmluZyBhICZsdDticiZndDsgaW4gdmVydGljYWwgd3JpdGluZyBt
b2RlLicpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHREaXYnKS5mb2N1cygp
OworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aXRoVGV4dENhcmV0UmVjdCA9
IGludGVybmFscy5hYnNvbHV0ZUNhcmV0Qm91bmRzKGRvY3VtZW50KTsKKworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdub1RleHREaXYnKS5mb2N1cygpOworICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICB3aXRob3V0VGV4dENhcmV0UmVjdCA9IGludGVybmFscy5hYnNvbHV0
ZUNhcmV0Qm91bmRzKGRvY3VtZW50KTsKKyAgICAgICAgCisgICAgZGVidWcoIlRoZSBjYXJldCBv
biB0aGUgZW1wdHkgZGl2LCBjb250YWluaW5nIG9ubHkgdGhlICZsdDticiZndDsgZWxlbWVudCwg
c2hvdWxkIGJlIHZpc2libGUuIEZvciB0aGUgdGVzdCB0byBwYXNzLCB0aGUgdG9wLCB0aGUgd2lk
dGggYW5kIHRoZSBoZWlnaHQgb2YgdGhlIGNhcmV0IHJlY3RzIGluIGJvdGggdGhlIGJveGVzIHNo
b3VsZCBiZSB0aGUgc2FtZS4iKQorICAgIAorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Cisg
ICAgICAgIHNob3VsZEJlKCJ3aXRoVGV4dENhcmV0UmVjdC50b3AiLCAid2l0aG91dFRleHRDYXJl
dFJlY3QudG9wIik7CisgICAgICAgIHNob3VsZEJlKCJ3aXRoVGV4dENhcmV0UmVjdC53aWR0aCIs
ICJ3aXRob3V0VGV4dENhcmV0UmVjdC53aWR0aCIpOworICAgICAgICBzaG91bGRCZSgid2l0aFRl
eHRDYXJldFJlY3QuaGVpZ2h0IiwgIndpdGhvdXRUZXh0Q2FyZXRSZWN0LmhlaWdodCIpOyAgICAg
ICAgCisgICAgfQorICAgIAorICAgIGRlYnVnKCJUbyBtYW51YWxseSB2ZXJpZnkgdGhlIGlzc3Vl
LCB0cnkgZm9jdXNpbmcgb3IgY2xpY2tpbmcgb24gdGhlIHNlY29uZCBib3guIEEgY2FyZXQgc2hv
dWxkIGJlIHZpc2libGUgYXQgdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoYXQgY29udGFpbmVyLiIp
OworICAgIAorICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1
ZSIgc3R5bGU9ImZsb2F0OiBsZWZ0OyIgY2xhc3M9ImVkaXRhYmxlRGl2IiBpZD0idGV4dERpdiI+
PGJyPnNvbWUgdGV4dDwvZGl2PgorPGRpdiBjb250ZW50ZWRpdGFibGU9InRydWUiIGNsYXNzPSJl
ZGl0YWJsZURpdiIgaWQ9Im5vVGV4dERpdiI+PGJyPjwvZGl2PgorPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181276</attachid>
            <date>2013-01-04 00:01:59 -0800</date>
            <delta_ts>2013-01-08 07:19:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103621-20130104133350.patch</filename>
            <type>text/plain</type>
            <size>7433</size>
            <attacher name="Arpita Bahuguna">arpitabahuguna</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODc3OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAxLTAzICBBcnBpdGEg
QmFodWd1bmEgIDxhcnBpdGFiYWh1Z3VuYUBnbWFpbC5jb20+CisKKyAgICAgICAgQ2FyZXQgaXMg
aW5jb3JyZWN0bHkgcGFpbnRlZCBmb3IgYSBjb250ZW50ZWRpdGFibGUgPGRpdj4gY29udGFpbmlu
ZyBhIDxicj4gaW4gdmVydGljYWwgd3JpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM2MjEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGlsZSBjb21wdXRpbmcgdGhlIGNhcmV0IHJlY3Qg
Zm9yIHRoZSBnaXZlbiBzcGVjaWZpYyBzY2VuYXJpbywgd2UKKyAgICAgICAgY2Fub25pY2FsaXpl
IG91ciBwb3NpdGlvbi4gRm9yIHRoZSB1cHN0cmVhbSAob3IgZG93bnN0cmVhbSkgYmxvY2sgZmxv
dworICAgICAgICBjYW5kaWRhdGVzIGEgY2hlY2sgdG8gaWdub3JlIHRoZSBub2RlcyBoYXZpbmcg
cmVuZGVyZXJzIHdpdGggemVybyBoZWlnaHQKKyAgICAgICAgaXMgY2FycmllZCBvdXQuIFRoaXMg
aXMgd2hlcmUgd2UgZmFpbCBvdXIgY2hlY2sgaW4gdGhlIHZlcnRpY2FsIHdyaXRpbmcgbW9kZS4K
KworICAgICAgICBJbiB0aGUgdmVydGljYWwgd3JpdGluZyBtb2RlLCBpbnN0ZWFkIG9mIHZlcmlm
eWluZyB0aGUgaGVpZ2h0IG9mIHRoZSBkZXNjZW5kYW50cworICAgICAgICBvZiB0aGUgY2FuZGlk
YXRlIG5vZGVzLCBhIGNoZWNrIGZvciB0aGVpciB3aWR0aCBzaG91bGQgYmUgY2FycmllZCBvdXQu
CisKKyAgICAgICAgRm9yIG91ciBjYXNlLCBpLmUuIHRoZSA8YnI+IGVsZW1lbnQgY29udGFpbmVk
IGluc2lkZSB0aGUgZGl2LCB0aGUgYm91bmRpbmcgYm94CisgICAgICAgIGluIHRoZSB2ZXJ0aWNh
bCB3cml0aW5nIG1vZGUgd291bGQgaGF2ZSBhIHdpZHRoIGdyZWF0ZXIgdGhhbiB6ZXJvIGFuZCBo
ZWlnaHQKKyAgICAgICAgZXF1YWwgdG8gemVybyAoYXMgaXMgdG8gYmUgZXhwZWN0ZWQgaW4gdGhl
IHZlcnRpY2FsIG1vZGUpLgorICAgICAgICBUaHVzLCB3ZSBzaG91bGQgY2hlY2sgYWdhaW5zdCB0
aGUgd2lkdGggb2YgdGhlIGRlc2NlbmRhbnRzIG9mIG91ciBkaXYgKGluIHRoaXMKKyAgICAgICAg
Y2FzZSB0aGUgPGJyPiBlbGVtZW50KSByYXRoZXIgdGhhbiB0aGUgaGVpZ2h0IGluIHRoZSB2ZXJ0
aWNhbCBtb2RlLgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWluLWRp
di1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUuaHRtbAorCisgICAgICAgICogZG9tL1Bv
c2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFu
b255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodCk6CisgICAgICAgIEJhc2VkIG9uIHRoZSB3cml0
aW5nIG1vZGUsIGhhdmUgbW9kaWZpZWQgdGhlIGNvZGUgdG8gZWl0aGVyIHZlcmlmeSBhZ2FpbnN0
CisgICAgICAgIHRoZSBoZWlnaHQgb2YgdGhlIGxpbmVzQm91bmRpbmdCb3ggKGhvcml6b250YWwg
d3JpdGluZyBtb2RlKSBvciBhZ2FpbnN0IHRoZQorICAgICAgICB3aWR0aCAodmVydGljYWwgd3Jp
dGluZyBtb2RlKS4KKworICAgICAgICBBbHNvLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBoZWlnaHQg
ZGlyZWN0bHkgZm9yIFJlbmRlckJveCB3ZSBzaG91bGQKKyAgICAgICAgcmF0aGVyIHVzZSB0aGUg
bG9naWNhbEhlaWdodCBzaW5jZSB0aGF0IHJldHVybnMgdGhlIHZhbHVlcyBhY2NvcmRpbmcgdG8g
dGhlCisgICAgICAgIHdyaXRpbmcgbW9kZS4KKyAgICAgICAgYm9yZGVyQm91bmRpbmdCb3goKSBp
bnRlcm5hbGx5IGNhbGxzIG9uIHRoZSBwaXhlbCBzbmFwcGVkIHJlY3QsIGFtIHRodXMKKyAgICAg
ICAgbWFraW5nIHVzZSBvZiB0aGUgcGl4ZWxTbmFwcGVkIGxvZ2ljYWxIZWlnaHQgY2FsbC4KKwog
MjAxMy0wMS0wMyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGlu
Y29ycmVjdCBmbGV4Ym94IHJlbGF5b3V0IHdpdGggb3ZlcmZsb3csIHBhZGRpbmcgYW5kIGFic29s
dXRlIHBvc2l0aW9uaW5nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHJldmlzaW9uIDEz
ODc3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTg0Niw4ICs4NDYsOCBAQCBib29sIFBvc2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFub255bW91
c0RlCiAgICAgUmVuZGVyT2JqZWN0KiBzdG9wID0gcmVuZGVyZXItPm5leHRJblByZU9yZGVyQWZ0
ZXJDaGlsZHJlbigpOwogICAgIGZvciAoUmVuZGVyT2JqZWN0ICpvID0gcmVuZGVyZXItPmZpcnN0
Q2hpbGQoKTsgbyAmJiBvICE9IHN0b3A7IG8gPSBvLT5uZXh0SW5QcmVPcmRlcigpKQogICAgICAg
ICBpZiAoby0+bm9uUHNldWRvTm9kZSgpKSB7Ci0gICAgICAgICAgICBpZiAoKG8tPmlzVGV4dCgp
ICYmIHRvUmVuZGVyVGV4dChvKS0+bGluZXNCb3VuZGluZ0JveCgpLmhlaWdodCgpKSB8fAotICAg
ICAgICAgICAgICAgIChvLT5pc0JveCgpICYmIHRvUmVuZGVyQm94KG8pLT5ib3JkZXJCb3VuZGlu
Z0JveCgpLmhlaWdodCgpKSkKKyAgICAgICAgICAgIGlmICgoby0+aXNUZXh0KCkgJiYgKG8tPnN0
eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyB0b1JlbmRlclRleHQobyktPmxpbmVz
Qm91bmRpbmdCb3goKS5oZWlnaHQoKSA6IHRvUmVuZGVyVGV4dChvKS0+bGluZXNCb3VuZGluZ0Jv
eCgpLndpZHRoKCkpKQorICAgICAgICAgICAgICAgIHx8IChvLT5pc0JveCgpICYmIHRvUmVuZGVy
Qm94KG8pLT5waXhlbFNuYXBwZWRMb2dpY2FsSGVpZ2h0KCkpKQogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTM4Nzc5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTMtMDEtMDMgIEFycGl0YSBCYWh1Z3VuYSAgPGFycGl0YWJhaHVndW5h
QGdtYWlsLmNvbT4KKworICAgICAgICBDYXJldCBpcyBpbmNvcnJlY3RseSBwYWludGVkIGZvciBh
IGNvbnRlbnRlZGl0YWJsZSA8ZGl2PiBjb250YWluaW5nIGEgPGJyPiBpbiB2ZXJ0aWNhbCB3cml0
aW5nIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMzYyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtaW4tZGl2LWNvbnRhaW5pbmctYnItaW4tdmVydGlj
YWwtbW9kZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9u
L2NhcmV0LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUuaHRtbDogQWRkZWQu
CisgICAgICAgIFRlc3RjYXNlIGFkZGVkIGZvciB2ZXJpZnlpbmcgdGhlIGNhcmV0IGRpc3BsYXkg
YXQgdGhlIHN0YXJ0IG9mIGFuIGVkaXRhYmxlCisgICAgICAgIGRpdiBjb250YWluaW5nIG9ubHkg
YSA8YnI+IGVsZW1lbnQgaW4gdmVydGljYWwgd3JpdGluZyBtb2RlLgorCiAyMDEzLTAxLTAzICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBvbmUgbW9yZSBN
YWMgdGVzdCBleHBlY3RhdGlvbiBmb3IgdGhlIGJ1ZyAxMDU5ODYuCkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9jYXJldC1pbi1kaXYtY29udGFpbmluZy1ici1pbi12ZXJ0aWNh
bC1tb2RlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9jYXJldC1pbi1kaXYtY29udGFpbmluZy1ici1pbi12ZXJ0aWNhbC1tb2RlLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2Nh
cmV0LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBACisKK3NvbWUgdGV4dAorCitUZXN0Y2FzZSBmb3Ig
YnVnIDEwMzYyMTogQ2FyZXQgaXMgaW5jb3JyZWN0bHkgcGFpbnRlZCBmb3IgYSBjb250ZW50ZWRp
dGFibGUgPGRpdj4gY29udGFpbmluZyBhIDxicj4gaW4gdmVydGljYWwgd3JpdGluZyBtb2RlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1RoZSBjYXJldCBvbiB0aGUgZW1wdHkgZGl2
LCBjb250YWluaW5nIG9ubHkgdGhlIDxicj4gZWxlbWVudCwgc2hvdWxkIGJlIHZpc2libGUuIEZv
ciB0aGUgdGVzdCB0byBwYXNzLCB0aGUgdG9wLCB0aGUgd2lkdGggYW5kIHRoZSBoZWlnaHQgb2Yg
dGhlIGNhcmV0IHJlY3RzIGluIGJvdGggdGhlIGJveGVzIHNob3VsZCBiZSB0aGUgc2FtZS4KK1BB
U1Mgd2l0aFRleHRDYXJldFJlY3QudG9wIGlzIHdpdGhvdXRUZXh0Q2FyZXRSZWN0LnRvcAorUEFT
UyB3aXRoVGV4dENhcmV0UmVjdC53aWR0aCBpcyB3aXRob3V0VGV4dENhcmV0UmVjdC53aWR0aAor
UEFTUyB3aXRoVGV4dENhcmV0UmVjdC5oZWlnaHQgaXMgd2l0aG91dFRleHRDYXJldFJlY3QuaGVp
Z2h0CitUbyBtYW51YWxseSB2ZXJpZnkgdGhlIGlzc3VlLCB0cnkgZm9jdXNpbmcgb3IgY2xpY2tp
bmcgb24gdGhlIHNlY29uZCBib3guIEEgY2FyZXQgc2hvdWxkIGJlIHZpc2libGUgYXQgdGhlIHN0
YXJ0IHBvc2l0aW9uIG9mIHRoYXQgY29udGFpbmVyLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2NhcmV0LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jYXJldC1pbi1kaXYt
Y29udGFpbmluZy1ici1pbi12ZXJ0aWNhbC1tb2RlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jYXJldC1pbi1kaXYtY29udGFpbmluZy1ici1pbi12
ZXJ0aWNhbC1tb2RlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQ
RSBodG1sPiAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuZWRpdGFibGVEaXYgeworICAgIGhl
aWdodDogMjAwcHg7CisgICAgd2lkdGg6IDIwMHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsKK30KKzwvc3R5bGU+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgZGVzY3JpcHRpb24o
J1Rlc3RjYXNlIGZvciBidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMzYyMSI+MTAzNjIxPC9hPjogIENhcmV0IGlzIGluY29ycmVjdGx5IHBhaW50
ZWQgZm9yIGEgY29udGVudGVkaXRhYmxlICZsdDtkaXYmZ3Q7IGNvbnRhaW5pbmcgYSAmbHQ7YnIm
Z3Q7IGluIHZlcnRpY2FsIHdyaXRpbmcgbW9kZS4nKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXh0RGl2JykuZm9jdXMoKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgd2l0aFRleHRDYXJldFJlY3QgPSBpbnRlcm5hbHMuYWJzb2x1dGVDYXJldEJvdW5kcyhk
b2N1bWVudCk7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9UZXh0RGl2JykuZm9j
dXMoKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2l0aG91dFRleHRDYXJl
dFJlY3QgPSBpbnRlcm5hbHMuYWJzb2x1dGVDYXJldEJvdW5kcyhkb2N1bWVudCk7CisgICAgICAg
IAorICAgIGRlYnVnKCJUaGUgY2FyZXQgb24gdGhlIGVtcHR5IGRpdiwgY29udGFpbmluZyBvbmx5
IHRoZSAmbHQ7YnImZ3Q7IGVsZW1lbnQsIHNob3VsZCBiZSB2aXNpYmxlLiBGb3IgdGhlIHRlc3Qg
dG8gcGFzcywgdGhlIHRvcCwgdGhlIHdpZHRoIGFuZCB0aGUgaGVpZ2h0IG9mIHRoZSBjYXJldCBy
ZWN0cyBpbiBib3RoIHRoZSBib3hlcyBzaG91bGQgYmUgdGhlIHNhbWUuIikKKyAgICAKKyAgICBp
ZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBzaG91bGRCZSgid2l0aFRleHRDYXJldFJl
Y3QudG9wIiwgIndpdGhvdXRUZXh0Q2FyZXRSZWN0LnRvcCIpOworICAgICAgICBzaG91bGRCZSgi
d2l0aFRleHRDYXJldFJlY3Qud2lkdGgiLCAid2l0aG91dFRleHRDYXJldFJlY3Qud2lkdGgiKTsK
KyAgICAgICAgc2hvdWxkQmUoIndpdGhUZXh0Q2FyZXRSZWN0LmhlaWdodCIsICJ3aXRob3V0VGV4
dENhcmV0UmVjdC5oZWlnaHQiKTsgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBkZWJ1ZygiVG8g
bWFudWFsbHkgdmVyaWZ5IHRoZSBpc3N1ZSwgdHJ5IGZvY3VzaW5nIG9yIGNsaWNraW5nIG9uIHRo
ZSBzZWNvbmQgYm94LiBBIGNhcmV0IHNob3VsZCBiZSB2aXNpYmxlIGF0IHRoZSBzdGFydCBwb3Np
dGlvbiBvZiB0aGF0IGNvbnRhaW5lci4iKTsKKyAgICAKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNl
ZCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgor
PGRpdiBjb250ZW50ZWRpdGFibGU9InRydWUiIHN0eWxlPSJmbG9hdDogbGVmdDsiIGNsYXNzPSJl
ZGl0YWJsZURpdiIgaWQ9InRleHREaXYiPjxicj5zb21lIHRleHQ8L2Rpdj4KKzxkaXYgY29udGVu
dGVkaXRhYmxlPSJ0cnVlIiBjbGFzcz0iZWRpdGFibGVEaXYiIGlkPSJub1RleHREaXYiPjxicj48
L2Rpdj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181689</attachid>
            <date>2013-01-08 07:19:20 -0800</date>
            <delta_ts>2013-01-08 22:00:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103621-20130108205113.patch</filename>
            <type>text/plain</type>
            <size>8598</size>
            <attacher name="Arpita Bahuguna">arpitabahuguna</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzOTA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDEzLTAxLTA4ICBBcnBpdGEg
QmFodWd1bmEgIDxhcnBpdGFiYWh1Z3VuYUBnbWFpbC5jb20+CisKKyAgICAgICAgQ2FyZXQgaXMg
aW5jb3JyZWN0bHkgcGFpbnRlZCBmb3IgYSBjb250ZW50ZWRpdGFibGUgPGRpdj4gY29udGFpbmlu
ZyBhIDxicj4gaW4gdmVydGljYWwgd3JpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM2MjEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGlsZSBjb21wdXRpbmcgdGhlIGNhcmV0IHJlY3Qg
Zm9yIHRoZSBnaXZlbiBzcGVjaWZpYyBzY2VuYXJpbywgd2UKKyAgICAgICAgY2Fub25pY2FsaXpl
IG91ciBwb3NpdGlvbi4gRm9yIHRoZSB1cHN0cmVhbSAob3IgZG93bnN0cmVhbSkgYmxvY2sgZmxv
dworICAgICAgICBjYW5kaWRhdGVzIGEgY2hlY2sgdG8gaWdub3JlIHRoZSBub2RlcyBoYXZpbmcg
cmVuZGVyZXJzIHdpdGggemVybyBoZWlnaHQKKyAgICAgICAgaXMgY2FycmllZCBvdXQuIFRoaXMg
aXMgd2hlcmUgd2UgZmFpbCBvdXIgY2hlY2sgaW4gdGhlIHZlcnRpY2FsIHdyaXRpbmcgbW9kZS4K
KworICAgICAgICBJbiB0aGUgdmVydGljYWwgd3JpdGluZyBtb2RlLCBpbnN0ZWFkIG9mIHZlcmlm
eWluZyB0aGUgaGVpZ2h0IG9mIHRoZSBkZXNjZW5kYW50cworICAgICAgICBvZiB0aGUgY2FuZGlk
YXRlIG5vZGVzLCBhIGNoZWNrIGZvciB0aGVpciB3aWR0aCBzaG91bGQgYmUgY2FycmllZCBvdXQu
CisKKyAgICAgICAgRm9yIG91ciBjYXNlLCBpLmUuIHRoZSA8YnI+IGVsZW1lbnQgY29udGFpbmVk
IGluc2lkZSB0aGUgZGl2LCB0aGUgYm91bmRpbmcgYm94CisgICAgICAgIGluIHRoZSB2ZXJ0aWNh
bCB3cml0aW5nIG1vZGUgd291bGQgaGF2ZSBhIHdpZHRoIGdyZWF0ZXIgdGhhbiB6ZXJvIGFuZCBo
ZWlnaHQKKyAgICAgICAgZXF1YWwgdG8gemVybyAoYXMgaXMgdG8gYmUgZXhwZWN0ZWQgaW4gdGhl
IHZlcnRpY2FsIG1vZGUpLgorCisgICAgICAgIFRodXMsIHdlIG5lZWQgdG8gbWFrZSBhIGNoZWNr
IGFnYWluc3QgdGhlIGxvZ2ljYWwgaGVpZ2h0LiBGb3IgdGhlIHZlcnRpY2FsCisgICAgICAgIHdy
aXRpbmcgbW9kZSwgdGhlIGxvZ2ljYWwgaGVpZ2h0IHNob3VsZCByZXR1cm4gdGhlIHdpZHRoIG9m
IHRoZSBjb21wdXRlZAorICAgICAgICBib3VuZGluZyBib3guCisKKyAgICAgICAgVGVzdDogZWRp
dGluZy9zZWxlY3Rpb24vY2FyZXQtaW4tZGl2LWNvbnRhaW5pbmctYnItaW4tdmVydGljYWwtbW9k
ZS5odG1sCisKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UG9zaXRpb246Omhhc1JlbmRlcmVkTm9uQW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KToK
KyAgICAgICAgSGF2ZSBtb2RpZmllZCB0aGUgY29kZSB0byB2ZXJpZnkgYWdhaW5zdCB0aGUgbG9n
aWNhbCBoZWlnaHQsIGluc3RlYWQKKyAgICAgICAgb2Ygc2ltcGx5IHRoZSBoZWlnaHQsIGJvdGgg
aW4gY2FzZSBvZiBSZW5kZXJUZXh0IGFuZCBSZW5kZXJCb3guCisgICAgICAgIFRoZSBsb2dpY2Fs
IGhlaWdodCBvZiB0aGUgY29tcHV0ZWQgcmVjdHMgcmV0dXJucyBhIHZhbHVlIGFjY29yZGluZwor
ICAgICAgICB0byB0aGUgd3JpdGluZyBtb2RlLgorCisgICAgICAgIEZvciB0aGUgUmVuZGVyVGV4
dCBhIG5ldyBmdW5jdGlvbiwgbGluZXNMb2dpY2FsQm91bmRpbmdCb3goKSBpcyBjYWxsZWQKKyAg
ICAgICAgd2hpY2ggcmV0dXJucyB0aGUgdmFsdWVzIGRlcGVuZGluZyBvbiB0aGUgd3JpdGluZyBt
b2RlLgorICAgICAgICBTaW1pbGFybHksIG9uIHRoZSBSZW5kZXJCb3gsIHBpeGVsU25hcHBlZExv
Z2ljYWxIZWlnaHQoKSBpcyBjYWxsZWQgd2hpY2gKKyAgICAgICAgdG9vIHRha2VzIGNhcmUgb2Yg
dGhlIHdyaXRpbmcgbW9kZSBpbnRlcm5hbGx5LiAoYm9yZGVyQm91bmRpbmdCb3goKQorICAgICAg
ICBpbnRlcm5hbGx5IGNhbGxzIG9uIHRoZSBwaXhlbFNuYXBwZWRSZWN0KS4KKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6
OmxpbmVzTG9naWNhbEJvdW5kaW5nQm94KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0Lmg6CisgICAgICAgIChSZW5kZXJUZXh0KToKKyAgICAgICAg
TmV3IGZ1bmN0aW9uIGlzIGFkZGVkIHRvIHJldHVybiB0aGUgbG9naWNhbCBsaW5lc0JvdW5kaW5n
Qm94LCBpLmUuLAorICAgICAgICB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgbGluZXNCb3Vu
ZGluZ0JveCBhcmUgc2V0IGFjY29yZGluZyB0bworICAgICAgICB0aGUgd3JpdGluZyBtb2RlLgor
CiAyMDEzLTAxLTA4ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtDaHJvbWl1bV0gRG9uJ3QgY29uZmluZSBwYWdlIHBvcHVwcyB0byByb290IHZpZXcgb24g
TWFjCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHJldmlzaW9uIDEzOTA1NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0Niw4ICs4
NDYsOCBAQCBib29sIFBvc2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFub255bW91c0RlCiAgICAgUmVu
ZGVyT2JqZWN0KiBzdG9wID0gcmVuZGVyZXItPm5leHRJblByZU9yZGVyQWZ0ZXJDaGlsZHJlbigp
OwogICAgIGZvciAoUmVuZGVyT2JqZWN0ICpvID0gcmVuZGVyZXItPmZpcnN0Q2hpbGQoKTsgbyAm
JiBvICE9IHN0b3A7IG8gPSBvLT5uZXh0SW5QcmVPcmRlcigpKQogICAgICAgICBpZiAoby0+bm9u
UHNldWRvTm9kZSgpKSB7Ci0gICAgICAgICAgICBpZiAoKG8tPmlzVGV4dCgpICYmIHRvUmVuZGVy
VGV4dChvKS0+bGluZXNCb3VuZGluZ0JveCgpLmhlaWdodCgpKSB8fAotICAgICAgICAgICAgICAg
IChvLT5pc0JveCgpICYmIHRvUmVuZGVyQm94KG8pLT5ib3JkZXJCb3VuZGluZ0JveCgpLmhlaWdo
dCgpKSkKKyAgICAgICAgICAgIGlmICgoby0+aXNUZXh0KCkgJiYgdG9SZW5kZXJUZXh0KG8pLT5s
aW5lc0xvZ2ljYWxCb3VuZGluZ0JveCgpLmhlaWdodCgpKQorICAgICAgICAgICAgICAgIHx8IChv
LT5pc0JveCgpICYmIHRvUmVuZGVyQm94KG8pLT5waXhlbFNuYXBwZWRMb2dpY2FsSGVpZ2h0KCkp
KQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgcmV0dXJuIGZh
bHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkocmV2aXNp
b24gMTM5MDU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjEwLDYgKzE2MTAsMTUgQEAgSW50UmVjdCBSZW5kZXJUZXh0Ojps
aW5lc0JvdW5kaW5nQm94KCkgYwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0ludFJlY3QgUmVu
ZGVyVGV4dDo6bGluZXNMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdAoreworICAgIEludFJlY3Qg
cmVjdDsKKworICAgIHJlY3QgPSBsaW5lc0JvdW5kaW5nQm94KCk7CisKKyAgICByZXR1cm4gc3R5
bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJlY3QgOiBJbnRSZWN0KHJlY3QueCgp
LCByZWN0LnkoKSwgcmVjdC5oZWlnaHQoKSwgcmVjdC53aWR0aCgpKTsKK30KKwogTGF5b3V0UmVj
dCBSZW5kZXJUZXh0OjpsaW5lc1Zpc3VhbE92ZXJmbG93Qm91bmRpbmdCb3goKSBjb25zdAogewog
ICAgIGlmICghZmlyc3RUZXh0Qm94KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmgJKHJldmlzaW9uIDEzOTA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBJbnRSZWN0IGxpbmVzQm91bmRpbmdCb3goKSBjb25zdDsKICAgICBMYXlvdXRS
ZWN0IGxpbmVzVmlzdWFsT3ZlcmZsb3dCb3VuZGluZ0JveCgpIGNvbnN0OworICAgIEludFJlY3Qg
bGluZXNMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdDsKIAogICAgIEZsb2F0UG9pbnQgZmlyc3RS
dW5PcmlnaW4oKSBjb25zdDsKICAgICBmbG9hdCBmaXJzdFJ1blgoKSBjb25zdDsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEzOTA1NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAxLTA4ICBBcnBpdGEgQmFodWd1bmEgIDxhcnBpdGFi
YWh1Z3VuYUBnbWFpbC5jb20+CisKKyAgICAgICAgQ2FyZXQgaXMgaW5jb3JyZWN0bHkgcGFpbnRl
ZCBmb3IgYSBjb250ZW50ZWRpdGFibGUgPGRpdj4gY29udGFpbmluZyBhIDxicj4gaW4gdmVydGlj
YWwgd3JpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDM2MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWluLWRpdi1jb250YWluaW5nLWJyLWlu
LXZlcnRpY2FsLW1vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9jYXJldC1pbi1kaXYtY29udGFpbmluZy1ici1pbi12ZXJ0aWNhbC1tb2RlLmh0bWw6
IEFkZGVkLgorICAgICAgICBUZXN0Y2FzZSBhZGRlZCBmb3IgdmVyaWZ5aW5nIHRoZSBjYXJldCBk
aXNwbGF5IGF0IHRoZSBzdGFydCBvZiBhbiBlZGl0YWJsZQorICAgICAgICBkaXYgY29udGFpbmlu
ZyBvbmx5IGEgPGJyPiBlbGVtZW50IGluIHZlcnRpY2FsIHdyaXRpbmcgbW9kZS4KKwogMjAxMy0w
MS0wOCAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQ2hy
b21pdW1dIERvbid0IGNvbmZpbmUgcGFnZSBwb3B1cHMgdG8gcm9vdCB2aWV3IG9uIE1hYwpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtaW4tZGl2LWNvbnRhaW5pbmct
YnItaW4tdmVydGljYWwtbW9kZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtaW4tZGl2LWNvbnRhaW5pbmctYnItaW4tdmVydGlj
YWwtbW9kZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9jYXJldC1pbi1kaXYtY29udGFpbmluZy1ici1pbi12ZXJ0aWNhbC1tb2RlLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorCitzb21lIHRleHQKKwor
VGVzdGNhc2UgZm9yIGJ1ZyAxMDM2MjE6IENhcmV0IGlzIGluY29ycmVjdGx5IHBhaW50ZWQgZm9y
IGEgY29udGVudGVkaXRhYmxlIDxkaXY+IGNvbnRhaW5pbmcgYSA8YnI+IGluIHZlcnRpY2FsIHdy
aXRpbmcgbW9kZS4gRm9yIHRoZSB0ZXN0IHRvIHBhc3MsIGNhcmV0cyBpbiBib3RoIHRoZSBib3hl
cyBzaG91bGQgYmUgZXhhY3RseSBzaW1pbGFyLiBUbyBtYW51YWxseSB2ZXJpZnkgdGhlIGlzc3Vl
LCB0cnkgY2xpY2tpbmcgb24gdGhlIHNlY29uZCBib3guIEEgY2FyZXQgc2hvdWxkIGJlIHZpc2li
bGUgYXQgdGhlIHN0YXJ0IG9mIHRoYXQgY29udGFpbmVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKK1BBU1Mgd2l0aFRleHRDYXJldFJlY3QudG9wIGlzIHdpdGhvdXRUZXh0Q2FyZXRS
ZWN0LnRvcAorUEFTUyB3aXRoVGV4dENhcmV0UmVjdC53aWR0aCBpcyB3aXRob3V0VGV4dENhcmV0
UmVjdC53aWR0aAorUEFTUyB3aXRoVGV4dENhcmV0UmVjdC5oZWlnaHQgaXMgd2l0aG91dFRleHRD
YXJldFJlY3QuaGVpZ2h0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtaW4t
ZGl2LWNvbnRhaW5pbmctYnItaW4tdmVydGljYWwtbW9kZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWluLWRpdi1jb250YWluaW5nLWJyLWlu
LXZlcnRpY2FsLW1vZGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2NhcmV0LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+IAorPGh0bWw+
Cis8aGVhZD4KKzxzdHlsZT4KKy5lZGl0YWJsZURpdiB7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAg
ICB3aWR0aDogMjAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgLXdlYmtp
dC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBkZXNjcmlwdGlvbignVGVzdGNhc2UgZm9yIGJ1
ZyA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjIx
Ij4xMDM2MjE8L2E+OiBDYXJldCBpcyBpbmNvcnJlY3RseSBwYWludGVkIGZvciBhIGNvbnRlbnRl
ZGl0YWJsZSAmbHQ7ZGl2Jmd0OyBjb250YWluaW5nIGEgJmx0O2JyJmd0OyBpbiB2ZXJ0aWNhbCB3
cml0aW5nIG1vZGUuXG5Gb3IgdGhlIHRlc3QgdG8gcGFzcywgY2FyZXRzIGluIGJvdGggdGhlIGJv
eGVzIHNob3VsZCBiZSBleGFjdGx5IHNpbWlsYXIuXG5UbyBtYW51YWxseSB2ZXJpZnkgdGhlIGlz
c3VlLCB0cnkgY2xpY2tpbmcgb24gdGhlIHNlY29uZCBib3guIEEgY2FyZXQgc2hvdWxkIGJlIHZp
c2libGUgYXQgdGhlIHN0YXJ0IG9mIHRoYXQgY29udGFpbmVyLicpOworCisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RleHREaXYnKS5mb2N1cygpOworICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICB3aXRoVGV4dENhcmV0UmVjdCA9IGludGVybmFscy5hYnNvbHV0ZUNhcmV0
Qm91bmRzKGRvY3VtZW50KTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdub1RleHRE
aXYnKS5mb2N1cygpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aXRob3V0
VGV4dENhcmV0UmVjdCA9IGludGVybmFscy5hYnNvbHV0ZUNhcmV0Qm91bmRzKGRvY3VtZW50KTsK
KyAgICAgICAgCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgc2hvdWxkQmUo
IndpdGhUZXh0Q2FyZXRSZWN0LnRvcCIsICJ3aXRob3V0VGV4dENhcmV0UmVjdC50b3AiKTsKKyAg
ICAgICAgc2hvdWxkQmUoIndpdGhUZXh0Q2FyZXRSZWN0LndpZHRoIiwgIndpdGhvdXRUZXh0Q2Fy
ZXRSZWN0LndpZHRoIik7CisgICAgICAgIHNob3VsZEJlKCJ3aXRoVGV4dENhcmV0UmVjdC5oZWln
aHQiLCAid2l0aG91dFRleHRDYXJldFJlY3QuaGVpZ2h0Iik7ICAgICAgICAKKyAgICB9CisgICAg
CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KKzxkaXYgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzdHls
ZT0iZmxvYXQ6IGxlZnQ7IiBjbGFzcz0iZWRpdGFibGVEaXYiIGlkPSJ0ZXh0RGl2Ij48YnI+c29t
ZSB0ZXh0PC9kaXY+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgY2xhc3M9ImVkaXRhYmxl
RGl2IiBpZD0ibm9UZXh0RGl2Ij48YnI+PC9kaXY+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181843</attachid>
            <date>2013-01-08 22:00:26 -0800</date>
            <delta_ts>2013-01-08 22:57:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103621-20130109113218.patch</filename>
            <type>text/plain</type>
            <size>8726</size>
            <attacher name="Arpita Bahuguna">arpitabahuguna</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzOTE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDEzLTAxLTA4ICBBcnBpdGEg
QmFodWd1bmEgIDxhcnBpdGFiYWh1Z3VuYUBnbWFpbC5jb20+CisKKyAgICAgICAgQ2FyZXQgaXMg
aW5jb3JyZWN0bHkgcGFpbnRlZCBmb3IgYSBjb250ZW50ZWRpdGFibGUgPGRpdj4gY29udGFpbmlu
ZyBhIDxicj4gaW4gdmVydGljYWwgd3JpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM2MjEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGlsZSBjb21wdXRpbmcgdGhlIGNhcmV0IHJlY3Qg
Zm9yIHRoZSBnaXZlbiBzcGVjaWZpYyBzY2VuYXJpbywgd2UKKyAgICAgICAgY2Fub25pY2FsaXpl
IG91ciBwb3NpdGlvbi4gRm9yIHRoZSB1cHN0cmVhbSAob3IgZG93bnN0cmVhbSkgYmxvY2sgZmxv
dworICAgICAgICBjYW5kaWRhdGVzIGEgY2hlY2sgdG8gaWdub3JlIHRoZSBub2RlcyBoYXZpbmcg
cmVuZGVyZXJzIHdpdGggemVybyBoZWlnaHQKKyAgICAgICAgaXMgY2FycmllZCBvdXQuIFRoaXMg
aXMgd2hlcmUgd2UgZmFpbCBvdXIgY2hlY2sgaW4gdGhlIHZlcnRpY2FsIHdyaXRpbmcgbW9kZS4K
KworICAgICAgICBJbiB0aGUgdmVydGljYWwgd3JpdGluZyBtb2RlLCBpbnN0ZWFkIG9mIHZlcmlm
eWluZyB0aGUgaGVpZ2h0IG9mIHRoZSBkZXNjZW5kYW50cworICAgICAgICBvZiB0aGUgY2FuZGlk
YXRlIG5vZGVzLCBhIGNoZWNrIGZvciB0aGVpciB3aWR0aCBzaG91bGQgYmUgY2FycmllZCBvdXQu
CisKKyAgICAgICAgRm9yIG91ciBjYXNlLCBpLmUuIHRoZSA8YnI+IGVsZW1lbnQgY29udGFpbmVk
IGluc2lkZSB0aGUgZGl2LCB0aGUgYm91bmRpbmcgYm94CisgICAgICAgIGluIHRoZSB2ZXJ0aWNh
bCB3cml0aW5nIG1vZGUgd291bGQgaGF2ZSBhIHdpZHRoIGdyZWF0ZXIgdGhhbiB6ZXJvIGFuZCBo
ZWlnaHQKKyAgICAgICAgZXF1YWwgdG8gemVybyAoYXMgaXMgdG8gYmUgZXhwZWN0ZWQgaW4gdGhl
IHZlcnRpY2FsIG1vZGUpLgorCisgICAgICAgIFRodXMsIHdlIG5lZWQgdG8gbWFrZSBhIGNoZWNr
IGFnYWluc3QgdGhlIGxvZ2ljYWwgaGVpZ2h0LiBGb3IgdGhlIHZlcnRpY2FsCisgICAgICAgIHdy
aXRpbmcgbW9kZSwgdGhlIGxvZ2ljYWwgaGVpZ2h0IHNob3VsZCByZXR1cm4gdGhlIHdpZHRoIG9m
IHRoZSBjb21wdXRlZAorICAgICAgICBib3VuZGluZyBib3guCisKKyAgICAgICAgVGVzdDogZWRp
dGluZy9zZWxlY3Rpb24vY2FyZXQtaW4tZGl2LWNvbnRhaW5pbmctYnItaW4tdmVydGljYWwtbW9k
ZS5odG1sCisKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UG9zaXRpb246Omhhc1JlbmRlcmVkTm9uQW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KToK
KyAgICAgICAgSGF2ZSBtb2RpZmllZCB0aGUgY29kZSB0byB2ZXJpZnkgYWdhaW5zdCB0aGUgbG9n
aWNhbCBoZWlnaHQsIGluc3RlYWQKKyAgICAgICAgb2Ygc2ltcGx5IHRoZSBoZWlnaHQsIGJvdGgg
aW4gY2FzZSBvZiBSZW5kZXJUZXh0IGFuZCBSZW5kZXJCb3guCisgICAgICAgIFRoZSBsb2dpY2Fs
IGhlaWdodCBvZiB0aGUgY29tcHV0ZWQgcmVjdHMgcmV0dXJucyBhIHZhbHVlIGFjY29yZGluZwor
ICAgICAgICB0byB0aGUgd3JpdGluZyBtb2RlLgorCisgICAgICAgIEZvciB0aGUgUmVuZGVyVGV4
dCBhIG5ldyBmdW5jdGlvbiwgbGluZXNMb2dpY2FsQm91bmRpbmdCb3goKSBpcyBjYWxsZWQKKyAg
ICAgICAgd2hpY2ggcmV0dXJucyB0aGUgdmFsdWVzIGRlcGVuZGluZyBvbiB0aGUgd3JpdGluZyBt
b2RlLgorICAgICAgICBTaW1pbGFybHksIG9uIHRoZSBSZW5kZXJCb3gsIHBpeGVsU25hcHBlZExv
Z2ljYWxIZWlnaHQoKSBpcyBjYWxsZWQgd2hpY2gKKyAgICAgICAgdG9vIHRha2VzIGNhcmUgb2Yg
dGhlIHdyaXRpbmcgbW9kZSBpbnRlcm5hbGx5LiAoYm9yZGVyQm91bmRpbmdCb3goKQorICAgICAg
ICBpbnRlcm5hbGx5IGNhbGxzIG9uIHRoZSBwaXhlbFNuYXBwZWRSZWN0KS4KKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6
OmxpbmVzTG9naWNhbEJvdW5kaW5nQm94KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0Lmg6CisgICAgICAgIChSZW5kZXJUZXh0KToKKyAgICAgICAg
TmV3IGZ1bmN0aW9uIGlzIGFkZGVkIHRvIHJldHVybiB0aGUgbG9naWNhbCBsaW5lc0JvdW5kaW5n
Qm94LCBpLmUuLAorICAgICAgICB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgbGluZXNCb3Vu
ZGluZ0JveCBhcmUgc2V0IGFjY29yZGluZyB0bworICAgICAgICB0aGUgd3JpdGluZyBtb2RlLgor
CiAyMDEzLTAxLTA4ICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmVtb3ZlIGEgZmV3IHVudXNlZCBpbmNsdWRlcyBmcm9tIEhUTUxUcmVlQnVpbGRlcgpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCShyZXZpc2lvbiAxMzkxNjEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NDYsOCArODQ2LDgg
QEAgYm9vbCBQb3NpdGlvbjo6aGFzUmVuZGVyZWROb25Bbm9ueW1vdXNEZQogICAgIFJlbmRlck9i
amVjdCogc3RvcCA9IHJlbmRlcmVyLT5uZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRyZW4oKTsKICAg
ICBmb3IgKFJlbmRlck9iamVjdCAqbyA9IHJlbmRlcmVyLT5maXJzdENoaWxkKCk7IG8gJiYgbyAh
PSBzdG9wOyBvID0gby0+bmV4dEluUHJlT3JkZXIoKSkKICAgICAgICAgaWYgKG8tPm5vblBzZXVk
b05vZGUoKSkgewotICAgICAgICAgICAgaWYgKChvLT5pc1RleHQoKSAmJiB0b1JlbmRlclRleHQo
byktPmxpbmVzQm91bmRpbmdCb3goKS5oZWlnaHQoKSkgfHwKLSAgICAgICAgICAgICAgICAoby0+
aXNCb3goKSAmJiB0b1JlbmRlckJveChvKS0+Ym9yZGVyQm91bmRpbmdCb3goKS5oZWlnaHQoKSkp
CisgICAgICAgICAgICBpZiAoKG8tPmlzVGV4dCgpICYmIHRvUmVuZGVyVGV4dChvKS0+bGluZXNM
b2dpY2FsQm91bmRpbmdCb3goKS5oZWlnaHQoKSkKKyAgICAgICAgICAgICAgICB8fCAoby0+aXNC
b3goKSAmJiB0b1JlbmRlckJveChvKS0+cGl4ZWxTbmFwcGVkTG9naWNhbEhlaWdodCgpKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIHJldHVybiBmYWxzZTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlzaW9uIDEz
OTE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTYxMCw2ICsxNjEwLDEzIEBAIEludFJlY3QgUmVuZGVyVGV4dDo6bGluZXNC
b3VuZGluZ0JveCgpIGMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitJbnRSZWN0IFJlbmRlclRl
eHQ6OmxpbmVzTG9naWNhbEJvdW5kaW5nQm94KCkgY29uc3QKK3sKKyAgICBJbnRSZWN0IHJlY3Qg
PSBsaW5lc0JvdW5kaW5nQm94KCk7CisKKyAgICByZXR1cm4gc3R5bGUoKS0+aXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IHJlY3QgOiBJbnRSZWN0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC5o
ZWlnaHQoKSwgcmVjdC53aWR0aCgpKTsKK30KKwogTGF5b3V0UmVjdCBSZW5kZXJUZXh0OjpsaW5l
c1Zpc3VhbE92ZXJmbG93Qm91bmRpbmdCb3goKSBjb25zdAogewogICAgIGlmICghZmlyc3RUZXh0
Qm94KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHJldmlzaW9u
IDEzOTE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTk2LDYgKzk2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBJbnRSZWN0
IGxpbmVzQm91bmRpbmdCb3goKSBjb25zdDsKICAgICBMYXlvdXRSZWN0IGxpbmVzVmlzdWFsT3Zl
cmZsb3dCb3VuZGluZ0JveCgpIGNvbnN0OworICAgIEludFJlY3QgbGluZXNMb2dpY2FsQm91bmRp
bmdCb3goKSBjb25zdDsKIAogICAgIEZsb2F0UG9pbnQgZmlyc3RSdW5PcmlnaW4oKSBjb25zdDsK
ICAgICBmbG9hdCBmaXJzdFJ1blgoKSBjb25zdDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzOTE2MSkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDEzLTAxLTA4ICBBcnBpdGEgQmFodWd1bmEgIDxhcnBpdGFiYWh1Z3VuYUBnbWFpbC5jb20+
CisKKyAgICAgICAgQ2FyZXQgaXMgaW5jb3JyZWN0bHkgcGFpbnRlZCBmb3IgYSBjb250ZW50ZWRp
dGFibGUgPGRpdj4gY29udGFpbmluZyBhIDxicj4gaW4gdmVydGljYWwgd3JpdGluZyBtb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM2MjEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uL2NhcmV0LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2FsLW1vZGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9jYXJldC1pbi1k
aXYtY29udGFpbmluZy1ici1pbi12ZXJ0aWNhbC1tb2RlLmh0bWw6IEFkZGVkLgorICAgICAgICBU
ZXN0Y2FzZSBhZGRlZCBmb3IgdmVyaWZ5aW5nIHRoZSBjYXJldCBkaXNwbGF5IGF0IHRoZSBzdGFy
dCBvZiBhbiBlZGl0YWJsZQorICAgICAgICBkaXYgY29udGFpbmluZyBvbmx5IGEgPGJyPiBlbGVt
ZW50IGluIHZlcnRpY2FsIHdyaXRpbmcgbW9kZS4KKwogMjAxMy0wMS0wOCAgU3RlcGhhbmllIExl
d2lzICA8c2xld2lzQGFwcGxlLmNvbT4KIAogICAgICAgICBBIGNvdXBsZSBvZiBmYXN0L3dvcmtl
cnMgdGVzdHMgZmFpbCBhZnRlciBodHRwOi8vdHJhYy53ZWJraXQub3JnL3Byb2plY3RzL3dlYmtp
dC9jaGFuZ2VzZXQvMTM5MTQ1LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
Y2FyZXQtaW4tZGl2LWNvbnRhaW5pbmctYnItaW4tdmVydGljYWwtbW9kZS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtaW4tZGl2
LWNvbnRhaW5pbmctYnItaW4tdmVydGljYWwtbW9kZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jYXJldC1pbi1kaXYtY29udGFpbmlu
Zy1ici1pbi12ZXJ0aWNhbC1tb2RlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMSBAQAorVGVzdGNhc2UgZm9yIGJ1ZyAxMDM2MjE6IENhcmV0IGlzIGluY29ycmVjdGx5IHBh
aW50ZWQgZm9yIGEgY29udGVudGVkaXRhYmxlIDxkaXY+IGNvbnRhaW5pbmcgYSA8YnI+IGluIHZl
cnRpY2FsIHdyaXRpbmcgbW9kZS4gRm9yIHRoZSB0ZXN0IHRvIHBhc3MsIGNhcmV0cyBpbiBib3Ro
IHRoZSBib3hlcyBzaG91bGQgYmUgZXhhY3RseSBzaW1pbGFyLiBUbyBtYW51YWxseSB2ZXJpZnkg
dGhlIGlzc3VlLCB0cnkgY2xpY2tpbmcgb24gdGhlIHNlY29uZCBib3guIEEgY2FyZXQgc2hvdWxk
IGJlIHZpc2libGUgYXQgdGhlIHN0YXJ0IG9mIHRoYXQgY29udGFpbmVyLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKK1BBU1Mgd2l0aFRleHRDYXJldFJlY3QudG9wIGlzIHdpdGhvdXRU
ZXh0Q2FyZXRSZWN0LnRvcAorUEFTUyB3aXRoVGV4dENhcmV0UmVjdC53aWR0aCBpcyB3aXRob3V0
VGV4dENhcmV0UmVjdC53aWR0aAorUEFTUyB3aXRoVGV4dENhcmV0UmVjdC5oZWlnaHQgaXMgd2l0
aG91dFRleHRDYXJldFJlY3QuaGVpZ2h0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
Y2FyZXQtaW4tZGl2LWNvbnRhaW5pbmctYnItaW4tdmVydGljYWwtbW9kZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWluLWRpdi1jb250YWlu
aW5nLWJyLWluLXZlcnRpY2FsLW1vZGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWluLWRpdi1jb250YWluaW5nLWJyLWluLXZlcnRpY2Fs
LW1vZGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmVkaXRhYmxlRGl2IHsKKyAgICBoZWlnaHQ6IDIw
MHB4OworICAgIHdpZHRoOiAyMDBweDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAg
ICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGRlc2NyaXB0aW9uKCdUZXN0Y2Fz
ZSBmb3IgYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM2MjEiPjEwMzYyMTwvYT46IENhcmV0IGlzIGluY29ycmVjdGx5IHBhaW50ZWQgZm9yIGEg
Y29udGVudGVkaXRhYmxlICZsdDtkaXYmZ3Q7IGNvbnRhaW5pbmcgYSAmbHQ7YnImZ3Q7IGluIHZl
cnRpY2FsIHdyaXRpbmcgbW9kZS5cbkZvciB0aGUgdGVzdCB0byBwYXNzLCBjYXJldHMgaW4gYm90
aCB0aGUgYm94ZXMgc2hvdWxkIGJlIGV4YWN0bHkgc2ltaWxhci5cblRvIG1hbnVhbGx5IHZlcmlm
eSB0aGUgaXNzdWUsIHRyeSBjbGlja2luZyBvbiB0aGUgc2Vjb25kIGJveC4gQSBjYXJldCBzaG91
bGQgYmUgdmlzaWJsZSBhdCB0aGUgc3RhcnQgb2YgdGhhdCBjb250YWluZXIuJyk7CisKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dERpdicpLmZvY3VzKCk7CisgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgIHdpdGhUZXh0Q2FyZXRSZWN0ID0gaW50ZXJuYWxzLmFic29s
dXRlQ2FyZXRCb3VuZHMoZG9jdW1lbnQpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J25vVGV4dERpdicpLmZvY3VzKCk7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
IHdpdGhvdXRUZXh0Q2FyZXRSZWN0ID0gaW50ZXJuYWxzLmFic29sdXRlQ2FyZXRCb3VuZHMoZG9j
dW1lbnQpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgc2hvdWxkQmUo
IndpdGhUZXh0Q2FyZXRSZWN0LnRvcCIsICJ3aXRob3V0VGV4dENhcmV0UmVjdC50b3AiKTsKKyAg
ICAgICAgc2hvdWxkQmUoIndpdGhUZXh0Q2FyZXRSZWN0LndpZHRoIiwgIndpdGhvdXRUZXh0Q2Fy
ZXRSZWN0LndpZHRoIik7CisgICAgICAgIHNob3VsZEJlKCJ3aXRoVGV4dENhcmV0UmVjdC5oZWln
aHQiLCAid2l0aG91dFRleHRDYXJldFJlY3QuaGVpZ2h0Iik7CisKKyAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RleHREaXYnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9UZXh0RGl2Jykuc3R5bGUuZGlzcGxheSA9ICdu
b25lJzsKKyAgICB9CisKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgorPGRpdiBjb250ZW50ZWRpdGFi
bGU9InRydWUiIHN0eWxlPSJmbG9hdDogbGVmdDsiIGNsYXNzPSJlZGl0YWJsZURpdiIgaWQ9InRl
eHREaXYiPjxicj5zb21lIHRleHQ8L2Rpdj4KKzxkaXYgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBj
bGFzcz0iZWRpdGFibGVEaXYiIGlkPSJub1RleHREaXYiPjxicj48L2Rpdj4KKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>