<?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>62478</bug_id>
          
          <creation_ts>2011-06-10 14:16:03 -0700</creation_ts>
          <short_desc>RenderText::absoluteRectsForRange() and absoluteQuadsForRange() have nearly duplicate code</short_desc>
          <delta_ts>2011-08-04 14:58:44 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>eae</cc>
    
    <cc>hyatt</cc>
    
    <cc>jparent</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>418905</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-06-10 14:16:03 -0700</bug_when>
    <thetext>* SUMMARY
In RenderText::absoluteRectsForRange(), the following code is used in an else clause:

            IntRect r = box-&gt;selectionRect(0, 0, start, realEnd);
            if (!r.isEmpty()) {
                if (!useSelectionHeight) {

In RenderText::absoluteQuadsForRange(), the same code uses a slightly different check:

            IntRect r = box-&gt;selectionRect(0, 0, start, realEnd);
            if (r.height()) {
                if (!useSelectionHeight) {

It seems like these methods should be using the same check, and it would be great if the duplicate code could be extracted into a local static method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418908</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-10 14:17:00 -0700</bug_when>
    <thetext>From bug 34239</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442018</commentid>
    <comment_count>2</comment_count>
      <attachid>101949</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-07-25 17:30:30 -0700</bug_when>
    <thetext>Created attachment 101949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442025</commentid>
    <comment_count>3</comment_count>
      <attachid>101949</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-25 17:33:00 -0700</bug_when>
    <thetext>Comment on attachment 101949
Patch

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

&gt; Source/WebCore/rendering/RenderText.cpp:281
&gt; +            // change the height and y position because selectionRect uses selection-specific values

Please change this to use sentence case and end with a period.

&gt; Source/WebCore/rendering/RenderText.cpp:324
&gt; +            if (!rect.size().isZero())

Don&apos;t we have rect.isEmpty()?

&gt; Source/WebCore/rendering/RenderText.cpp:405
&gt; +            if (!rect.size().isZero())

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442327</commentid>
    <comment_count>4</comment_count>
      <attachid>102019</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-07-26 10:05:36 -0700</bug_when>
    <thetext>Created attachment 102019
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442328</commentid>
    <comment_count>5</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-07-26 10:07:58 -0700</bug_when>
    <thetext>Thanks for the quick review.

(In reply to comment #3)
&gt; (From update of attachment 101949 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=101949&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderText.cpp:281
&gt; &gt; +            // change the height and y position because selectionRect uses selection-specific values
&gt; 
&gt; Please change this to use sentence case and end with a period.

Done.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderText.cpp:324
&gt; &gt; +            if (!rect.size().isZero())
&gt; 
&gt; Don&apos;t we have rect.isEmpty()?

We do but I want to check for zero as opposed to empty here as we have a couple of tests that expect getClientRects to return a rect with a zero width.

Added FloatRect::isZero that calls FloatSize::isZero and changed the code in RenderText to use that method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442349</commentid>
    <comment_count>6</comment_count>
      <attachid>102019</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-26 10:47:19 -0700</bug_when>
    <thetext>Comment on attachment 102019
Patch for landing

Clearing flags on attachment: 102019

Committed r91763: &lt;http://trac.webkit.org/changeset/91763&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442350</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-26 10:47:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446276</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-03 18:45:58 -0700</bug_when>
    <thetext>This test has been failing on GTK:
http://build.webkit.org/old-results/GTK%20Linux%2032-bit%20Release/r91765%20(15930)/fast/dom/Range/getClientRects-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446805</commentid>
    <comment_count>9</comment_count>
      <attachid>102019</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-04 14:58:44 -0700</bug_when>
    <thetext>Comment on attachment 102019
Patch for landing

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

&gt; Source/WebCore/rendering/RenderText.cpp:407
&gt; +            FloatRect rect = absoluteQuadForTextBox(box, start, end, useSelectionHeight);
&gt; +            if (!rect.isZero())
&gt; +                quads.append(localToAbsoluteQuad(rect));

This is wrong. It converts local to absolute twice.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101949</attachid>
            <date>2011-07-25 17:30:30 -0700</date>
            <delta_ts>2011-07-26 10:05:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62478-20110725173029.patch</filename>
            <type>text/plain</type>
            <size>8614</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxNzEyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDctMjUgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmRlclRleHQ6OmFic29sdXRl
UmVjdHNGb3JSYW5nZSgpIGFuZCBhYnNvbHV0ZVF1YWRzRm9yUmFuZ2UoKSBoYXZlIG5lYXJseSBk
dXBsaWNhdGUgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjI0NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBmYXN0L2RvbS9SYW5nZS9nZXRDbGllbnRSZWN0cy5odG1sCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphYnNvbHV0ZVF1
YWRGb3JUZXh0Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmFic29sdXRlUmVj
dHNGb3JSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjphYnNvbHV0ZVF1YWRz
Rm9yUmFuZ2UpOgorICAgICAgICBCcmVhayBkdXBsaWNhdGUgY29kZSBvdXQgb2YgYWJzb2x1dGVS
ZWN0c0ZvclJhbmdlIGFuZAorICAgICAgICBhYnNvbHV0ZVF1YWRzRm9yUmFuZ2UgaW50byBzaGFy
ZWQgc3RhdGljIGZ1bmN0aW9uLgorICAgICAgICAKKyAgICAgICAgRml4IHdoYXQgSSBwcmVzdW1l
IHRvIGJlIGEgYnVnIGluIHRoZSBhYnNvbHV0ZVF1YWRzRm9yUmFuZ2Ugd2hlcmUgdGhlCisgICAg
ICAgIGxvZ2ljYWxIZWlnaHQgd2FzIGFsd2F5cyB1c2VkIHRvIHNldCB0aGUgc2l6ZSBpbiBhYnNv
bHV0ZVF1YWRGb3JUZXh0Qm94CisgICAgICAgIGFzIG9wcHN1ZWQgdG8gdGhlIGFic29sdXRlUmVj
dHNGb3JSYW5nZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgdGhlCisgICAgICAgIGxvZ2ljYWxX
aWR0aCBvciB0aGUgbG9naWNhbEhlaWdodCBkZXBlbmRpbmcgb24gd2hldGhlciBpdCdzIGhvcml6
b250YWwgb3IKKyAgICAgICAgdmVydGljYWwuCisKIDIwMTEtMDctMjUgIERhbiBCZXJuc3RlaW4g
IDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnRlZCByOTE2OTkgZHVlIHRvCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiA5MTY2OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjcyLDYgKzI3MiwyNiBAQCB2b2lkIFJlbmRlclRleHQ6OmFic29sdXRlUmVjdHMoVmVj
dG9yPExhCiAgICAgICAgIHJlY3RzLmFwcGVuZChlbmNsb3NpbmdMYXlvdXRSZWN0KEZsb2F0UmVj
dChhY2N1bXVsYXRlZE9mZnNldCArIGJveC0+dG9wTGVmdCgpLCBib3gtPnNpemUoKSkpKTsKIH0K
IAorc3RhdGljIEZsb2F0UmVjdCBhYnNvbHV0ZVF1YWRGb3JUZXh0Qm94KElubGluZVRleHRCb3gq
IGJveCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rpb25IZWln
aHQpCit7CisgICAgdW5zaWduZWQgcmVhbEVuZCA9IG1pbihib3gtPmVuZCgpICsgMSwgZW5kKTsK
KyAgICBJbnRSZWN0IHIgPSBib3gtPnNlbGVjdGlvblJlY3Qoc3RhcnQsIHJlYWxFbmQpOworICAg
IGlmIChyLmhlaWdodCgpKSB7CisgICAgICAgIGlmICghdXNlU2VsZWN0aW9uSGVpZ2h0KSB7Cisg
ICAgICAgICAgICAvLyBjaGFuZ2UgdGhlIGhlaWdodCBhbmQgeSBwb3NpdGlvbiBiZWNhdXNlIHNl
bGVjdGlvblJlY3QgdXNlcyBzZWxlY3Rpb24tc3BlY2lmaWMgdmFsdWVzCisgICAgICAgICAgICBp
ZiAoYm94LT5pc0hvcml6b250YWwoKSkgeworICAgICAgICAgICAgICAgIHIuc2V0SGVpZ2h0KGJv
eC0+bG9naWNhbEhlaWdodCgpKTsKKyAgICAgICAgICAgICAgICByLnNldFkoYm94LT55KCkpOwor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByLnNldFdpZHRoKGJveC0+bG9n
aWNhbFdpZHRoKCkpOworICAgICAgICAgICAgICAgIHIuc2V0WChib3gtPngoKSk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEZsb2F0UmVjdChyKTsKKyAgICB9Cisg
ICAgcmV0dXJuIEZsb2F0UmVjdCgpOworfQorCiB2b2lkIFJlbmRlclRleHQ6OmFic29sdXRlUmVj
dHNGb3JSYW5nZShWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCB1bnNpZ25lZCBzdGFydCwgdW5zaWdu
ZWQgZW5kLCBib29sIHVzZVNlbGVjdGlvbkhlaWdodCkKIHsKICAgICAvLyBXb3JrIGFyb3VuZCBz
aWduZWQvdW5zaWduZWQgaXNzdWVzLiBUaGlzIGZ1bmN0aW9uIHRha2VzIHVuc2lnbmVkcywgYW5k
IGlzIG9mdGVuIHBhc3NlZCBVSU5UX01BWApAQCAtMzAwLDIxICszMjAsOSBAQCB2b2lkIFJlbmRl
clRleHQ6OmFic29sdXRlUmVjdHNGb3JSYW5nZShWCiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICByZWN0cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQocikpLmVuY2xvc2lu
Z0JvdW5kaW5nQm94KCkpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdW5zaWduZWQg
cmVhbEVuZCA9IG1pbihib3gtPmVuZCgpICsgMSwgZW5kKTsKLSAgICAgICAgICAgIEludFJlY3Qg
ciA9IGJveC0+c2VsZWN0aW9uUmVjdChzdGFydCwgcmVhbEVuZCk7Ci0gICAgICAgICAgICBpZiAo
IXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF1c2VTZWxlY3Rpb25IZWlnaHQp
IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gY2hhbmdlIHRoZSBoZWlnaHQgYW5kIHkgcG9zaXRp
b24gYmVjYXVzZSBzZWxlY3Rpb25SZWN0IHVzZXMgc2VsZWN0aW9uLXNwZWNpZmljIHZhbHVlcwot
ICAgICAgICAgICAgICAgICAgICBpZiAoYm94LT5pc0hvcml6b250YWwoKSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgci5zZXRIZWlnaHQoYm94LT5sb2dpY2FsSGVpZ2h0KCkpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgci5zZXRZKGJveC0+eSgpKTsKLSAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHIuc2V0V2lkdGgoYm94LT5sb2dpY2Fs
V2lkdGgoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByLnNldFgoYm94LT54KCkpOwotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJl
Y3RzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChyKSkuZW5jbG9zaW5nQm91
bmRpbmdCb3goKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBGbG9hdFJlY3QgcmVjdCA9
IGFic29sdXRlUXVhZEZvclRleHRCb3goYm94LCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rpb25IZWln
aHQpOworICAgICAgICAgICAgaWYgKCFyZWN0LnNpemUoKS5pc1plcm8oKSkKKyAgICAgICAgICAg
ICAgICByZWN0cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChyZWN0KS5lbmNsb3NpbmdCb3Vu
ZGluZ0JveCgpKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTM5MywyMSArNDAxLDkgQEAgdm9p
ZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1YWRzRm9yUmFuZ2UoVgogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHIpKSk7
CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCByZWFsRW5kID0gbWluKGJv
eC0+ZW5kKCkgKyAxLCBlbmQpOwotICAgICAgICAgICAgSW50UmVjdCByID0gYm94LT5zZWxlY3Rp
b25SZWN0KHN0YXJ0LCByZWFsRW5kKTsKLSAgICAgICAgICAgIGlmIChyLmhlaWdodCgpKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKCF1c2VTZWxlY3Rpb25IZWlnaHQpIHsKLSAgICAgICAgICAgICAg
ICAgICAgLy8gY2hhbmdlIHRoZSBoZWlnaHQgYW5kIHkgcG9zaXRpb24gYmVjYXVzZSBzZWxlY3Rp
b25SZWN0IHVzZXMgc2VsZWN0aW9uLXNwZWNpZmljIHZhbHVlcwotICAgICAgICAgICAgICAgICAg
ICBpZiAoYm94LT5pc0hvcml6b250YWwoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgci5z
ZXRIZWlnaHQoYm94LT5sb2dpY2FsSGVpZ2h0KCkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ci5zZXRZKGJveC0+eSgpKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHIuc2V0V2lkdGgoYm94LT5sb2dpY2FsSGVpZ2h0KCkpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgci5zZXRYKGJveC0+eCgpKTsKLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxU
b0Fic29sdXRlUXVhZChGbG9hdFJlY3QocikpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IEZsb2F0UmVjdCByZWN0ID0gYWJzb2x1dGVRdWFkRm9yVGV4dEJveChib3gsIHN0YXJ0LCBlbmQs
IHVzZVNlbGVjdGlvbkhlaWdodCk7CisgICAgICAgICAgICBpZiAoIXJlY3Quc2l6ZSgpLmlzWmVy
bygpKQorICAgICAgICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHJl
Y3QpKTsKICAgICAgICAgfQogICAgIH0KIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxNzEyKQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTEtMDctMjUgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
bmRlclRleHQ6OmFic29sdXRlUmVjdHNGb3JSYW5nZSgpIGFuZCBhYnNvbHV0ZVF1YWRzRm9yUmFu
Z2UoKSBoYXZlIG5lYXJseSBkdXBsaWNhdGUgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI0NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL1JhbmdlL2dldENsaWVudFJlY3RzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9SYW5nZS9nZXRDbGllbnRSZWN0cy5odG1s
OgorICAgICAgICBBZGQgdGVzdCBmb3IgdmVydGljYWwgdGV4dC4KKwogMjAxMS0wNi0wNyAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFu
Z2UvZ2V0Q2xpZW50UmVjdHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL1JhbmdlL2dldENsaWVudFJlY3RzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTE2
NjkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9nZXRDbGllbnRSZWN0cy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw2ICsxOTgsMjQgQEAgUEFTUyByZWN0c1swXS5s
ZWZ0IGlzIDgKIFBBU1MgcmVjdHNbMF0udG9wIGlzIDE5MDMKIFBBU1MgcmVjdHNbMF0ud2lkdGgg
aXMgMAogUEFTUyByZWN0c1swXS5oZWlnaHQgaXMgMTgKK1Rlc3QgMTAKK1BBU1MgcmVjdHMubGVu
Z3RoIGlzIDQKK1BBU1MgcmVjdHNbMF0ubGVmdCBpcyAxOQorUEFTUyByZWN0c1swXS50b3AgaXMg
MjA4OAorUEFTUyByZWN0c1swXS53aWR0aCBpcyAxOAorUEFTUyByZWN0c1swXS5oZWlnaHQgaXMg
MzkzCitQQVNTIHJlY3RzWzFdLmxlZnQgaXMgNTkKK1BBU1MgcmVjdHNbMV0udG9wIGlzIDIwODgK
K1BBU1MgcmVjdHNbMV0ud2lkdGggaXMgMTgKK1BBU1MgcmVjdHNbMV0uaGVpZ2h0IGlzIDM3Nwor
UEFTUyByZWN0c1syXS5sZWZ0IGlzIDk5CitQQVNTIHJlY3RzWzJdLnRvcCBpcyAyMDg4CitQQVNT
IHJlY3RzWzJdLndpZHRoIGlzIDE4CitQQVNTIHJlY3RzWzJdLmhlaWdodCBpcyAzNzIKK1BBU1Mg
cmVjdHNbM10ubGVmdCBpcyAxMzkKK1BBU1MgcmVjdHNbM10udG9wIGlzIDIwODgKK1BBU1MgcmVj
dHNbM10ud2lkdGggaXMgMTgKK1BBU1MgcmVjdHNbM10uaGVpZ2h0IGlzIDM2MAogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9SYW5nZS9nZXRDbGllbnRSZWN0cy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL2dldENsaWVudFJlY3RzLmh0bWwJKHJldmlzaW9uIDkxNjY5
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Q2xpZW50UmVjdHMuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMjcsNiArMjcsMTEgQEAKICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJh
bnNsYXRlKDUwcHgsIDEwMHB4KSByb3RhdGUoNTBkZWcpOwogfQogCisjdGVzdDEwIHsKKyAgICBo
ZWlnaHQ6IDQwMHB4OworICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsKK30K
KwogI2NvbnNvbGUgewogICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgIGxlZnQ6IDUwMHB4OwpA
QCAtNzMsNiArNzgsMTAgQEAKIAogPGRpdiBjbGFzcz0iYm94IiBpZD0idGVzdDkiPkxvcmVtIGlw
c3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8g
ZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1
YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxs
YW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC48L2Rp
dj4KIAorPGJyPjxicj4KKworPGRpdiBjbGFzcz0iYm94IiBpZD0idGVzdDEwIj53ZWVlISBMb3Jl
bSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2Vk
IGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBh
bGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9u
IHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQu
PC9kaXY+CisKIDwvZGl2PgogCiA8c2NyaXB0PgpAQCAtMzY2LDYgKzM3NSwzMCBAQAogICAgIHNo
b3VsZEJlKCJyZWN0c1swXS53aWR0aCIsICIwIik7CiAgICAgc2hvdWxkQmUoInJlY3RzWzBdLmhl
aWdodCIsICIxOCIpOwogCisgICAgLy8gVGVzdCAxMAorICAgIGRlYnVnKCJUZXN0IDEwIik7Cisg
ICAgdmFyIHJhbmdlMTAgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworICAgIHJhbmdlMTAuc2Vs
ZWN0Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTAnKSk7CisgICAg
c2hvdyhyYW5nZTEwKTsKKyAgICByZWN0cyA9IHJhbmdlMTAuZ2V0Q2xpZW50UmVjdHMoKTsKKyAg
ICBzaG91bGRCZSgicmVjdHMubGVuZ3RoIiwgIjQiKTsKKyAgICBzaG91bGRCZSgicmVjdHNbMF0u
bGVmdCIsICIxOSIpOworICAgIHNob3VsZEJlKCJyZWN0c1swXS50b3AiLCAiMjA4OCIpOworICAg
IHNob3VsZEJlKCJyZWN0c1swXS53aWR0aCIsICIxOCIpOworICAgIHNob3VsZEJlKCJyZWN0c1sw
XS5oZWlnaHQiLCAiMzkzIik7CisgICAgc2hvdWxkQmUoInJlY3RzWzFdLmxlZnQiLCAiNTkiKTsK
KyAgICBzaG91bGRCZSgicmVjdHNbMV0udG9wIiwgIjIwODgiKTsKKyAgICBzaG91bGRCZSgicmVj
dHNbMV0ud2lkdGgiLCAiMTgiKTsKKyAgICBzaG91bGRCZSgicmVjdHNbMV0uaGVpZ2h0IiwgIjM3
NyIpOworICAgIHNob3VsZEJlKCJyZWN0c1syXS5sZWZ0IiwgIjk5Iik7CisgICAgc2hvdWxkQmUo
InJlY3RzWzJdLnRvcCIsICIyMDg4Iik7CisgICAgc2hvdWxkQmUoInJlY3RzWzJdLndpZHRoIiwg
IjE4Iik7CisgICAgc2hvdWxkQmUoInJlY3RzWzJdLmhlaWdodCIsICIzNzIiKTsKKyAgICBzaG91
bGRCZSgicmVjdHNbM10ubGVmdCIsICIxMzkiKTsKKyAgICBzaG91bGRCZSgicmVjdHNbM10udG9w
IiwgIjIwODgiKTsKKyAgICBzaG91bGRCZSgicmVjdHNbM10ud2lkdGgiLCAiMTgiKTsKKyAgICBz
aG91bGRCZSgicmVjdHNbM10uaGVpZ2h0IiwgIjM2MCIpOworCiAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICB2YXIgYXJlYSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0QXJlYScpOwogICAgICAgICBhcmVhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
YXJlYSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102019</attachid>
            <date>2011-07-26 10:05:36 -0700</date>
            <delta_ts>2011-08-04 14:58:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-62478-20110726100535.patch</filename>
            <type>text/plain</type>
            <size>9411</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxNzU4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDctMjYgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmRlclRleHQ6OmFic29sdXRl
UmVjdHNGb3JSYW5nZSgpIGFuZCBhYnNvbHV0ZVF1YWRzRm9yUmFuZ2UoKSBoYXZlIG5lYXJseSBk
dXBsaWNhdGUgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjI0NzgKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9kb20vUmFuZ2UvZ2V0Q2xpZW50UmVjdHMuaHRtbAorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJl
Y3Q6OmlzWmVybyk6CisgICAgICAgIEFkZCBpelplcm8gbWV0aG9kLCB1bmxpa2UgaXNFbXB0eSB0
aGlzIGNoZWNrcyBpZiBib3RoIHRoZSB3aWR0aCBhbmQgdGhlCisgICAgICAgIGhlaWdodCBhcmUg
emVyby4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmFic29sdXRlUXVhZEZvclRleHRCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGV4dDo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHQ6OmFic29sdXRlUXVhZHNGb3JSYW5nZSk6CisgICAgICAgIEJyZWFrIGR1cGxpY2F0ZSBjb2Rl
IG91dCBvZiBhYnNvbHV0ZVJlY3RzRm9yUmFuZ2UgYW5kCisgICAgICAgIGFic29sdXRlUXVhZHNG
b3JSYW5nZSBpbnRvIHNoYXJlZCBzdGF0aWMgZnVuY3Rpb24uCisgICAgICAgIAorICAgICAgICBG
aXggd2hhdCBJIHByZXN1bWUgdG8gYmUgYSBidWcgaW4gdGhlIGFic29sdXRlUXVhZHNGb3JSYW5n
ZSB3aGVyZSB0aGUKKyAgICAgICAgbG9naWNhbEhlaWdodCB3YXMgYWx3YXlzIHVzZWQgdG8gc2V0
IHRoZSBzaXplIGluIGFic29sdXRlUXVhZEZvclRleHRCb3gKKyAgICAgICAgYXMgb3Bwc3VlZCB0
byB0aGUgYWJzb2x1dGVSZWN0c0ZvclJhbmdlIGltcGxlbWVudGF0aW9uIHRoYXQgdXNlcyB0aGUK
KyAgICAgICAgbG9naWNhbFdpZHRoIG9yIHRoZSBsb2dpY2FsSGVpZ2h0IGRlcGVuZGluZyBvbiB3
aGV0aGVyIGl0J3MgaG9yaXpvbnRhbCBvcgorICAgICAgICB2ZXJ0aWNhbC4KKwogMjAxMS0wNy0y
NiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkxNzQ2LgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmgJKHJldmlzaW9uIDkxNzU2KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEwMiw2ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRIZWlnaHQoZmxvYXQgaGVpZ2h0
KSB7IG1fc2l6ZS5zZXRIZWlnaHQoaGVpZ2h0KTsgfQogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29u
c3QgeyByZXR1cm4gbV9zaXplLmlzRW1wdHkoKTsgfQorICAgIGJvb2wgaXNaZXJvKCkgY29uc3Qg
eyByZXR1cm4gbV9zaXplLmlzWmVybygpOyB9CiAKICAgICBGbG9hdFBvaW50IGNlbnRlcigpIGNv
bnN0IHsgcmV0dXJuIEZsb2F0UG9pbnQoeCgpICsgd2lkdGgoKSAvIDIsIHkoKSArIGhlaWdodCgp
IC8gMik7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAko
cmV2aXNpb24gOTE3NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI3Miw2ICsyNzIsMjcgQEAgdm9pZCBSZW5kZXJUZXh0Ojph
YnNvbHV0ZVJlY3RzKFZlY3RvcjxMYQogICAgICAgICByZWN0cy5hcHBlbmQoZW5jbG9zaW5nTGF5
b3V0UmVjdChGbG9hdFJlY3QoYWNjdW11bGF0ZWRPZmZzZXQgKyBib3gtPnRvcExlZnQoKSwgYm94
LT5zaXplKCkpKSk7CiB9CiAKK3N0YXRpYyBGbG9hdFJlY3QgYWJzb2x1dGVRdWFkRm9yVGV4dEJv
eChJbmxpbmVUZXh0Qm94KiBib3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGJvb2wg
dXNlU2VsZWN0aW9uSGVpZ2h0KQoreworICAgIHVuc2lnbmVkIHJlYWxFbmQgPSBtaW4oYm94LT5l
bmQoKSArIDEsIGVuZCk7CisgICAgSW50UmVjdCByID0gYm94LT5zZWxlY3Rpb25SZWN0KHN0YXJ0
LCByZWFsRW5kKTsKKyAgICBpZiAoci5oZWlnaHQoKSkgeworICAgICAgICBpZiAoIXVzZVNlbGVj
dGlvbkhlaWdodCkgeworICAgICAgICAgICAgLy8gQ2hhbmdlIHRoZSBoZWlnaHQgYW5kIHkgcG9z
aXRpb24gKG9yIHdpZHRoIGFuZCB4IGZvciB2ZXJ0aWNhbCB0ZXh0KQorICAgICAgICAgICAgLy8g
YmVjYXVzZSBzZWxlY3Rpb25SZWN0IHVzZXMgc2VsZWN0aW9uLXNwZWNpZmljIHZhbHVlcy4KKyAg
ICAgICAgICAgIGlmIChib3gtPmlzSG9yaXpvbnRhbCgpKSB7CisgICAgICAgICAgICAgICAgci5z
ZXRIZWlnaHQoYm94LT5sb2dpY2FsSGVpZ2h0KCkpOworICAgICAgICAgICAgICAgIHIuc2V0WShi
b3gtPnkoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHIuc2V0V2lk
dGgoYm94LT5sb2dpY2FsV2lkdGgoKSk7CisgICAgICAgICAgICAgICAgci5zZXRYKGJveC0+eCgp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRmxvYXRSZWN0KHIp
OworICAgIH0KKyAgICByZXR1cm4gRmxvYXRSZWN0KCk7Cit9CisKIHZvaWQgUmVuZGVyVGV4dDo6
YWJzb2x1dGVSZWN0c0ZvclJhbmdlKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIHVuc2lnbmVkIHN0
YXJ0LCB1bnNpZ25lZCBlbmQsIGJvb2wgdXNlU2VsZWN0aW9uSGVpZ2h0KQogewogICAgIC8vIFdv
cmsgYXJvdW5kIHNpZ25lZC91bnNpZ25lZCBpc3N1ZXMuIFRoaXMgZnVuY3Rpb24gdGFrZXMgdW5z
aWduZWRzLCBhbmQgaXMgb2Z0ZW4gcGFzc2VkIFVJTlRfTUFYCkBAIC0zMDAsMjEgKzMyMSw5IEBA
IHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlKFYKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIHJlY3RzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChy
KSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICB1bnNpZ25lZCByZWFsRW5kID0gbWluKGJveC0+ZW5kKCkgKyAxLCBlbmQpOwotICAgICAgICAg
ICAgSW50UmVjdCByID0gYm94LT5zZWxlY3Rpb25SZWN0KHN0YXJ0LCByZWFsRW5kKTsKLSAgICAg
ICAgICAgIGlmICghci5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXVzZVNlbGVj
dGlvbkhlaWdodCkgewotICAgICAgICAgICAgICAgICAgICAvLyBjaGFuZ2UgdGhlIGhlaWdodCBh
bmQgeSBwb3NpdGlvbiBiZWNhdXNlIHNlbGVjdGlvblJlY3QgdXNlcyBzZWxlY3Rpb24tc3BlY2lm
aWMgdmFsdWVzCi0gICAgICAgICAgICAgICAgICAgIGlmIChib3gtPmlzSG9yaXpvbnRhbCgpKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICByLnNldEhlaWdodChib3gtPmxvZ2ljYWxIZWlnaHQo
KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByLnNldFkoYm94LT55KCkpOwotICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgci5zZXRXaWR0aChi
b3gtPmxvZ2ljYWxXaWR0aCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHIuc2V0WChib3gt
PngoKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgcmVjdHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKHIpKS5l
bmNsb3NpbmdCb3VuZGluZ0JveCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEZsb2F0
UmVjdCByZWN0ID0gYWJzb2x1dGVRdWFkRm9yVGV4dEJveChib3gsIHN0YXJ0LCBlbmQsIHVzZVNl
bGVjdGlvbkhlaWdodCk7CisgICAgICAgICAgICBpZiAoIXJlY3QuaXNaZXJvKCkpCisgICAgICAg
ICAgICAgICAgcmVjdHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQocmVjdCkuZW5jbG9zaW5n
Qm91bmRpbmdCb3goKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0zOTMsMjEgKzQwMiw5IEBA
IHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkc0ZvclJhbmdlKFYKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChy
KSkpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdW5zaWduZWQgcmVhbEVuZCA9IG1p
bihib3gtPmVuZCgpICsgMSwgZW5kKTsKLSAgICAgICAgICAgIEludFJlY3QgciA9IGJveC0+c2Vs
ZWN0aW9uUmVjdChzdGFydCwgcmVhbEVuZCk7Ci0gICAgICAgICAgICBpZiAoci5oZWlnaHQoKSkg
ewotICAgICAgICAgICAgICAgIGlmICghdXNlU2VsZWN0aW9uSGVpZ2h0KSB7Ci0gICAgICAgICAg
ICAgICAgICAgIC8vIGNoYW5nZSB0aGUgaGVpZ2h0IGFuZCB5IHBvc2l0aW9uIGJlY2F1c2Ugc2Vs
ZWN0aW9uUmVjdCB1c2VzIHNlbGVjdGlvbi1zcGVjaWZpYyB2YWx1ZXMKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKGJveC0+aXNIb3Jpem9udGFsKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHIuc2V0SGVpZ2h0KGJveC0+bG9naWNhbEhlaWdodCgpKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHIuc2V0WShib3gtPnkoKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICByLnNldFdpZHRoKGJveC0+bG9naWNhbEhlaWdodCgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHIuc2V0WChib3gtPngoKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcXVhZHMuYXBwZW5kKGxv
Y2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHIpKSk7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICBGbG9hdFJlY3QgcmVjdCA9IGFic29sdXRlUXVhZEZvclRleHRCb3goYm94LCBzdGFydCwg
ZW5kLCB1c2VTZWxlY3Rpb25IZWlnaHQpOworICAgICAgICAgICAgaWYgKCFyZWN0LmlzWmVybygp
KQorICAgICAgICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHJlY3Qp
KTsKICAgICAgICAgfQogICAgIH0KIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxNzU4KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEt
MDctMjYgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmRl
clRleHQ6OmFic29sdXRlUmVjdHNGb3JSYW5nZSgpIGFuZCBhYnNvbHV0ZVF1YWRzRm9yUmFuZ2Uo
KSBoYXZlIG5lYXJseSBkdXBsaWNhdGUgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI0NzgKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBG
cmFzZXIuCisKKyAgICAgICAgKiBmYXN0L2RvbS9SYW5nZS9nZXRDbGllbnRSZWN0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vUmFuZ2UvZ2V0Q2xpZW50UmVjdHMuaHRtbDoKKyAg
ICAgICAgQWRkIHRlc3QgZm9yIHZlcnRpY2FsIHRleHQuCisKIDIwMTEtMDctMjYgIFBhdmVsIEZl
bGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIE5vdCByZXZpZXdlZDogaW5z
cGVjdG9yIHRlc3QgcmViYXNlbGluZXMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5n
ZS9nZXRDbGllbnRSZWN0cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vUmFuZ2UvZ2V0Q2xpZW50UmVjdHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5MTc1
NikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL2dldENsaWVudFJlY3RzLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTk4LDYgKzE5OCwyNCBAQCBQQVNTIHJlY3RzWzBdLmxl
ZnQgaXMgOAogUEFTUyByZWN0c1swXS50b3AgaXMgMTkwMwogUEFTUyByZWN0c1swXS53aWR0aCBp
cyAwCiBQQVNTIHJlY3RzWzBdLmhlaWdodCBpcyAxOAorVGVzdCAxMAorUEFTUyByZWN0cy5sZW5n
dGggaXMgNAorUEFTUyByZWN0c1swXS5sZWZ0IGlzIDE5CitQQVNTIHJlY3RzWzBdLnRvcCBpcyAy
MDg4CitQQVNTIHJlY3RzWzBdLndpZHRoIGlzIDE4CitQQVNTIHJlY3RzWzBdLmhlaWdodCBpcyAz
OTMKK1BBU1MgcmVjdHNbMV0ubGVmdCBpcyA1OQorUEFTUyByZWN0c1sxXS50b3AgaXMgMjA4OAor
UEFTUyByZWN0c1sxXS53aWR0aCBpcyAxOAorUEFTUyByZWN0c1sxXS5oZWlnaHQgaXMgMzc3CitQ
QVNTIHJlY3RzWzJdLmxlZnQgaXMgOTkKK1BBU1MgcmVjdHNbMl0udG9wIGlzIDIwODgKK1BBU1Mg
cmVjdHNbMl0ud2lkdGggaXMgMTgKK1BBU1MgcmVjdHNbMl0uaGVpZ2h0IGlzIDM3MgorUEFTUyBy
ZWN0c1szXS5sZWZ0IGlzIDEzOQorUEFTUyByZWN0c1szXS50b3AgaXMgMjA4OAorUEFTUyByZWN0
c1szXS53aWR0aCBpcyAxOAorUEFTUyByZWN0c1szXS5oZWlnaHQgaXMgMzYwCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL1JhbmdlL2dldENsaWVudFJlY3RzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Q2xpZW50UmVjdHMuaHRtbAkocmV2aXNpb24gOTE3NTYp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9nZXRDbGllbnRSZWN0cy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw2ICsyNywxMSBAQAogICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFu
c2xhdGUoNTBweCwgMTAwcHgpIHJvdGF0ZSg1MGRlZyk7CiB9CiAKKyN0ZXN0MTAgeworICAgIGhl
aWdodDogNDAwcHg7CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOworfQor
CiAjY29uc29sZSB7CiAgICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICAgbGVmdDogNTAwcHg7CkBA
IC03Myw2ICs3OCwxMCBAQAogCiA8ZGl2IGNsYXNzPSJib3giIGlkPSJ0ZXN0OSI+TG9yZW0gaXBz
dW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBl
aXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVh
LiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxh
bWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LjwvZGl2
PgogCis8YnI+PGJyPgorCis8ZGl2IGNsYXNzPSJib3giIGlkPSJ0ZXN0MTAiPndlZWUhIExvcmVt
IGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQg
ZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFs
aXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24g
dWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC48
L2Rpdj4KKwogPC9kaXY+CiAKIDxzY3JpcHQ+CkBAIC0zNjYsNiArMzc1LDMwIEBACiAgICAgc2hv
dWxkQmUoInJlY3RzWzBdLndpZHRoIiwgIjAiKTsKICAgICBzaG91bGRCZSgicmVjdHNbMF0uaGVp
Z2h0IiwgIjE4Iik7CiAKKyAgICAvLyBUZXN0IDEwCisgICAgZGVidWcoIlRlc3QgMTAiKTsKKyAg
ICB2YXIgcmFuZ2UxMCA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAgcmFuZ2UxMC5zZWxl
Y3ROb2RlQ29udGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxMCcpKTsKKyAgICBz
aG93KHJhbmdlMTApOworICAgIHJlY3RzID0gcmFuZ2UxMC5nZXRDbGllbnRSZWN0cygpOworICAg
IHNob3VsZEJlKCJyZWN0cy5sZW5ndGgiLCAiNCIpOworICAgIHNob3VsZEJlKCJyZWN0c1swXS5s
ZWZ0IiwgIjE5Iik7CisgICAgc2hvdWxkQmUoInJlY3RzWzBdLnRvcCIsICIyMDg4Iik7CisgICAg
c2hvdWxkQmUoInJlY3RzWzBdLndpZHRoIiwgIjE4Iik7CisgICAgc2hvdWxkQmUoInJlY3RzWzBd
LmhlaWdodCIsICIzOTMiKTsKKyAgICBzaG91bGRCZSgicmVjdHNbMV0ubGVmdCIsICI1OSIpOwor
ICAgIHNob3VsZEJlKCJyZWN0c1sxXS50b3AiLCAiMjA4OCIpOworICAgIHNob3VsZEJlKCJyZWN0
c1sxXS53aWR0aCIsICIxOCIpOworICAgIHNob3VsZEJlKCJyZWN0c1sxXS5oZWlnaHQiLCAiMzc3
Iik7CisgICAgc2hvdWxkQmUoInJlY3RzWzJdLmxlZnQiLCAiOTkiKTsKKyAgICBzaG91bGRCZSgi
cmVjdHNbMl0udG9wIiwgIjIwODgiKTsKKyAgICBzaG91bGRCZSgicmVjdHNbMl0ud2lkdGgiLCAi
MTgiKTsKKyAgICBzaG91bGRCZSgicmVjdHNbMl0uaGVpZ2h0IiwgIjM3MiIpOworICAgIHNob3Vs
ZEJlKCJyZWN0c1szXS5sZWZ0IiwgIjEzOSIpOworICAgIHNob3VsZEJlKCJyZWN0c1szXS50b3Ai
LCAiMjA4OCIpOworICAgIHNob3VsZEJlKCJyZWN0c1szXS53aWR0aCIsICIxOCIpOworICAgIHNo
b3VsZEJlKCJyZWN0c1szXS5oZWlnaHQiLCAiMzYwIik7CisKICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICAgIHZhciBhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3RBcmVhJyk7CiAgICAgICAgIGFyZWEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChh
cmVhKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>