<?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>76664</bug_id>
          
          <creation_ts>2012-01-19 13:59:20 -0800</creation_ts>
          <short_desc>Incorrect positioning of floating pseudo-elements in table captions</short_desc>
          <delta_ts>2012-01-24 11:54:51 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>72981</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robert Hogan">robert</reporter>
          <assigned_to name="Robert Hogan">robert</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hyatt</cc>
    
    <cc>inferno</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>mitz</cc>
    
    <cc>robert</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>539011</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2012-01-19 13:59:20 -0800</bug_when>
    <thetext>Floating :before and :after pseudo elements are not correctly positioned in table captions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539012</commentid>
    <comment_count>1</comment_count>
      <attachid>123190</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2012-01-19 14:00:06 -0800</bug_when>
    <thetext>Created attachment 123190
Test Case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540186</commentid>
    <comment_count>2</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2012-01-21 15:58:20 -0800</bug_when>
    <thetext>Like FF and Opera, table captions should expand to enclose overhanging floats in RenderBlock::expandsToEncloseOverhangingFloats(). Doing this causes multiple-captions-crash3.html to start crashing again though, so needs more investigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540191</commentid>
    <comment_count>3</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2012-01-21 17:06:50 -0800</bug_when>
    <thetext>Allowing table captions to enclose overhanging floats regress multiple-captions-crash-3.html because the float in the &lt;keygen&gt; element doesn&apos;t get removed in markSiblingsWithFloatsForLayout() anymore. This happens because the logicalBottomForFloat() == the keygen element&apos;s logicalHeight(). Once markSiblingsWithFloatsForLayout() is broadened, it will be safe to allow captions to enclose overhanging floats here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540194</commentid>
    <comment_count>4</comment_count>
      <attachid>123463</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-01-21 17:10:46 -0800</bug_when>
    <thetext>Created attachment 123463
Float next sibling patch for bug 72981

Robert, does the crash still happen after this patch ? If not, we can combine your and mine patch in 72981 itself ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540195</commentid>
    <comment_count>5</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-01-21 17:26:46 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Allowing table captions to enclose overhanging floats regress multiple-captions-crash-3.html because the float in the &lt;keygen&gt; element doesn&apos;t get removed in markSiblingsWithFloatsForLayout() anymore. This happens because the logicalBottomForFloat() == the keygen element&apos;s logicalHeight(). Once markSiblingsWithFloatsForLayout() is broadened, it will be safe to allow captions to enclose overhanging floats here.

I remember hitting something similar. This should be because of the problem in this code. we layout all the captions at logicaltop 0, and then we adjust the caption height. So, floats get incorrectly added.

    for (unsigned i = 0; i &lt; m_captions.size(); i++)
        m_captions[i]-&gt;layoutIfNeeded();

    // If any table section moved vertically, we will just repaint everything from that
    // section down (it is quite unlikely that any of the following sections
    // did not shift).
    bool sectionMoved = false;
    LayoutUnit movedSectionLogicalTop = 0;

    // FIXME: Collapse caption margin.
    if (!m_captions.isEmpty()) {
        for (unsigned i = 0; i &lt; m_captions.size(); i++) {
            if (m_captions[i]-&gt;style()-&gt;captionSide() == CAPBOTTOM)
                continue;
            adjustLogicalHeightForCaption(m_captions[i]);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540265</commentid>
    <comment_count>6</comment_count>
      <attachid>123480</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2012-01-22 09:47:03 -0800</bug_when>
    <thetext>Created attachment 123480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540266</commentid>
    <comment_count>7</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2012-01-22 09:51:21 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; Allowing table captions to enclose overhanging floats regress multiple-captions-crash-3.html because the float in the &lt;keygen&gt; element doesn&apos;t get removed in markSiblingsWithFloatsForLayout() anymore. This happens because the logicalBottomForFloat() == the keygen element&apos;s logicalHeight(). Once markSiblingsWithFloatsForLayout() is broadened, it will be safe to allow captions to enclose overhanging floats here.
&gt; 
&gt; I remember hitting something similar. This should be because of the problem in this code. we layout all the captions at logicaltop 0, and then we adjust the caption height. So, floats get incorrectly added.

Yes, that&apos;s the problem. The attached fixes it - with the result that the floats no longer intrude on their siblings since they now allows fully enclose them. This should make all of these caption/float related crashes go away I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540269</commentid>
    <comment_count>8</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-01-22 09:57:56 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; Allowing table captions to enclose overhanging floats regress multiple-captions-crash-3.html because the float in the &lt;keygen&gt; element doesn&apos;t get removed in markSiblingsWithFloatsForLayout() anymore. This happens because the logicalBottomForFloat() == the keygen element&apos;s logicalHeight(). Once markSiblingsWithFloatsForLayout() is broadened, it will be safe to allow captions to enclose overhanging floats here.
&gt; &gt; 
&gt; &gt; I remember hitting something similar. This should be because of the problem in this code. we layout all the captions at logicaltop 0, and then we adjust the caption height. So, floats get incorrectly added.
&gt; 
&gt; Yes, that&apos;s the problem. The attached fixes it - with the result that the floats no longer intrude on their siblings since they now allows fully enclose them. This should make all of these caption/float related crashes go away I think.

Yeah, i think my patch might not needed at all now since this was the root cause. I will check with ClusterFuzz once your patch lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540734</commentid>
    <comment_count>9</comment_count>
      <attachid>123480</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-01-23 12:11:35 -0800</bug_when>
    <thetext>Comment on attachment 123480
Patch

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

The logical looks good to me, I look forward to the updated patch.

&gt; Source/WebCore/rendering/RenderBlock.cpp:1518
&gt; +           || hasColumns() || isTableCell() || isFieldset() || isWritingModeRoot() || isRoot() || isTableCaption();

Nit: Put the isTableCaption() next to the isTableCell() for consistency.

&gt; Source/WebCore/rendering/RenderTable.cpp:278
&gt; +    // The margins may not be available but ensure the caption is at least located beneath any previous sibling caption
&gt; +    // so that it does not mistakenly think any floats in the previous caption intrude into it.
&gt;      caption-&gt;setLogicalLocation(IntPoint(caption-&gt;marginStart(), caption-&gt;marginBefore() + logicalHeight()));
&gt; +    caption-&gt;layoutIfNeeded();
&gt; +    // Apply the margins to the location now that they are definitely available from layout
&gt; +    caption-&gt;setLogicalLocation(IntPoint(caption-&gt;marginStart(), caption-&gt;marginBefore() + logicalHeight()));

I think you could simplify this code further:

if (caption-&gt;needsLayout()) {
    // The margins may not be available but ensure the caption is at least located beneath any previous sibling caption...
    caption-&gt;setLogicalLocation(IntPoint(caption-&gt;marginStart(), caption-&gt;marginBefore() + logicalHeight()));
    caption-&gt;layout();
}

// Apply the margins to the location now that they are definitely available from layout
caption-&gt;setLogicalLocation(IntPoint(caption-&gt;marginStart(), caption-&gt;marginBefore() + logicalHeight()));

That would make it easier to see what is going on and avoid 2 calls to setLogicalHeight when one only is needed.

&gt; Source/WebCore/rendering/RenderTable.cpp:344
&gt; +    for (unsigned i = 0; i &lt; m_captions.size(); i++) {
&gt; +        if (m_captions[i]-&gt;style()-&gt;captionSide() == CAPBOTTOM)
&gt; +            continue;
&gt; +        layoutCaption(m_captions[i]);
&gt; +    }

Why not keep those lines below? I don&apos;t think this justifies splitting the caption layout / logical height update logic.

&gt; Source/WebCore/rendering/RenderTable.h:251
&gt; +    void layoutCaption(RenderBlock*);

This should take a RenderTableCaption pointer now.

&gt; LayoutTests/fast/table/caption-encloses-overhanging-float-expected.html:13
&gt; +    &lt;table&gt;
&gt; +    &lt;div class=&quot;caption2&quot;&gt;caption1&lt;div class=&quot;fl&quot;&gt;a&lt;/div&gt;&lt;/div&gt;
&gt; +    &lt;/table&gt;

Could you please add the auto-generated rendering bits of your table here (row-group, row and cell) as that would show you are comparing against a RenderTableCell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540747</commentid>
    <comment_count>10</comment_count>
      <attachid>123599</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2012-01-23 12:42:55 -0800</bug_when>
    <thetext>Created attachment 123599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541261</commentid>
    <comment_count>11</comment_count>
      <attachid>123599</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-01-24 05:20:29 -0800</bug_when>
    <thetext>Comment on attachment 123599
Patch

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

&gt; Source/WebCore/rendering/RenderTable.cpp:277
&gt; +        caption-&gt;layoutIfNeeded();

It should be caption-&gt;layout(); directly as you know you need layout in this branch.

&gt; Source/WebCore/rendering/RenderTable.h:251
&gt; +    void layoutCaptionIfNeeded(RenderTableCaption*);

layoutCaptionIfNeeded is definitely a misnomer here (look at how the *IfNeeded() functions are implemented and you deviate from the pattern).

I really prefer layoutCaption to name the function but here are some alternatives if you want to avoid the word &apos;layout&apos;: placeCaption(), correctCaptionPosition() or adjustCaptionPosition()

&gt; LayoutTests/fast/table/caption-encloses-overhanging-float.html:10
&gt; +    &lt;table&gt;

Nit: add a comment with this bug URL, possibly a description of the expected output (like &apos;you should see no red&apos;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541473</commentid>
    <comment_count>12</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-01-24 10:51:09 -0800</bug_when>
    <thetext>Robert, today (7pm) is the last day for our merges to m17. Can you please commit it today with Julien&apos;s nits, we dont want to ship m17 with this regression. Thank you very much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541532</commentid>
    <comment_count>13</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2012-01-24 11:54:51 -0800</bug_when>
    <thetext>Committed r105768: &lt;http://trac.webkit.org/changeset/105768&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>123190</attachid>
            <date>2012-01-19 14:00:06 -0800</date>
            <delta_ts>2012-01-19 14:00:06 -0800</delta_ts>
            <desc>Test Case</desc>
            <filename>float-after-in-caption.html</filename>
            <type>text/html</type>
            <size>367</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDxz
dHlsZT4KICAgIC5jYXB0aW9uMSB7IGJhY2tncm91bmQtY29sb3I6eWVsbG93OyB9CiAgICAuY2Fw
dGlvbjE6YmVmb3JlIHsgZmxvYXQ6IGxlZnQ7IGNvbnRlbnQ6ICJBQkMiOyBtYXgtd2lkdGg6IDIw
cHg7fQogICAgLmNhcHRpb24yIHtiYWNrZ3JvdW5kLWNvbG9yOnJlZDt9CiAgICA8L3N0eWxlPgog
ICAgPHRhYmxlPgogICAgPGNhcHRpb24gY2xhc3M9ImNhcHRpb24xIj5jYXB0aW9uMTwvY2FwdGlv
bj4KICAgIDxjYXB0aW9uIGNsYXNzPSJjYXB0aW9uMiI+Y2FwdGlvbjI8L2NhcHRpb24+CiAgICA8
L3RhYmxlPgogIDwvYm9keT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>123463</attachid>
            <date>2012-01-21 17:10:46 -0800</date>
            <delta_ts>2012-01-21 17:10:46 -0800</delta_ts>
            <desc>Float next sibling patch for bug 72981</desc>
            <filename>fix1</filename>
            <type>application/octet-stream</type>
            <size>2366</size>
            <attacher name="Abhishek Arya">inferno</attacher>
            
              <data encoding="base64">SW5kZXg6IHRoaXJkX3BhcnR5L1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHRoaXJkX3BhcnR5L1dlYktpdC9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiAxMDUxMjcpCisrKyB0aGlyZF9w
YXJ0eS9XZWJLaXQvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDA2OSwyNyArNDA2OSwyOSBAQAogewogICAgIGlmICghbV9mbG9hdGlu
Z09iamVjdHMpCiAgICAgICAgIHJldHVybjsKKwogICAgIGNvbnN0IEZsb2F0aW5nT2JqZWN0U2V0
JiBmbG9hdGluZ09iamVjdFNldCA9IG1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKTsKICAgICBGbG9h
dGluZ09iamVjdFNldEl0ZXJhdG9yIGVuZCA9IGZsb2F0aW5nT2JqZWN0U2V0LmVuZCgpOwotICAg
IGZvciAoRmxvYXRpbmdPYmplY3RTZXRJdGVyYXRvciBpdCA9IGZsb2F0aW5nT2JqZWN0U2V0LmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICBpZiAobG9naWNhbEJvdHRvbUZvckZs
b2F0KCppdCkgPiBsb2dpY2FsSGVpZ2h0KCkpIHsKLSAgICAgICAgICAgIFJlbmRlckJveCogZmxv
YXRpbmdCb3ggPSAoKml0KS0+cmVuZGVyZXIoKTsKLSAgICAgICAgICAgIGlmIChmbG9hdFRvUmVt
b3ZlICYmIGZsb2F0aW5nQm94ICE9IGZsb2F0VG9SZW1vdmUpCi0gICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wUG9zID0gbG9naWNhbFRvcCgpOworICAg
IExheW91dFVuaXQgbG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tID0gbG93ZXN0RmxvYXRMb2dpY2Fs
Qm90dG9tSW5jbHVkaW5nUG9zaXRpb25lZEZsb2F0cygpOwogCi0gICAgICAgICAgICBSZW5kZXJP
YmplY3QqIG5leHQgPSBuZXh0U2libGluZygpOwotICAgICAgICAgICAgd2hpbGUgKG5leHQpIHsK
LSAgICAgICAgICAgICAgICBpZiAobmV4dC0+aXNSZW5kZXJCbG9jaygpICYmICFuZXh0LT5pc0Zs
b2F0aW5nT3JQb3NpdGlvbmVkKCkgJiYgIXRvUmVuZGVyQmxvY2sobmV4dCktPmF2b2lkc0Zsb2F0
cygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrKiBuZXh0QmxvY2sgPSB0b1Jl
bmRlckJsb2NrKG5leHQpOwotICAgICAgICAgICAgICAgICAgICBpZiAobmV4dEJsb2NrLT5jb250
YWluc0Zsb2F0KGZsb2F0aW5nQm94KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG5leHRCbG9j
ay0+bWFya0FsbERlc2NlbmRhbnRzV2l0aEZsb2F0c0ZvckxheW91dChmbG9hdGluZ0JveCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgIFJlbmRlck9iamVjdCogbmV4dCA9IG5leHRTaWJsaW5nKCk7CisgICAgd2hpbGUgKG5leHQp
IHsKKyAgICAgICAgaWYgKG5leHQtPmlzUmVuZGVyQmxvY2soKSkgeworICAgICAgICAgICAgUmVu
ZGVyQmxvY2sqIG5leHRCbG9jayA9IHRvUmVuZGVyQmxvY2sobmV4dCk7CisgICAgICAgICAgICBM
YXlvdXRVbml0IGxvZ2ljYWxUb3BPZmZzZXQgPSBuZXh0QmxvY2stPmxvZ2ljYWxUb3AoKSAtIGxv
Z2ljYWxUb3BQb3M7CisgICAgICAgICAgICBpZiAobG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tID4g
bG9naWNhbFRvcE9mZnNldCAmJiAhbmV4dC0+aXNGbG9hdGluZ09yUG9zaXRpb25lZCgpICYmICFu
ZXh0QmxvY2stPmF2b2lkc0Zsb2F0cygpKSB7CisgICAgICAgICAgICAgICAgZm9yIChGbG9hdGlu
Z09iamVjdFNldEl0ZXJhdG9yIGl0ID0gZmxvYXRpbmdPYmplY3RTZXQuYmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KSB7CisgICAgICAgICAgICAgICAgICAgICBSZW5kZXJCb3gqIGZsb2F0aW5nQm94
ID0gKCppdCktPnJlbmRlcmVyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoZmxvYXRUb1Jl
bW92ZSAmJiBmbG9hdGluZ0JveCAhPSBmbG9hdFRvUmVtb3ZlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRCbG9jay0+Y29u
dGFpbnNGbG9hdChmbG9hdGluZ0JveCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEJs
b2NrLT5tYXJrQWxsRGVzY2VuZGFudHNXaXRoRmxvYXRzRm9yTGF5b3V0KGZsb2F0aW5nQm94KTsK
ICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBuZXh0ID0gbmV4dC0+bmV4dFNp
YmxpbmcoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorCisgICAgICAgIG5leHQgPSBuZXh0
LT5uZXh0U2libGluZygpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123480</attachid>
            <date>2012-01-22 09:47:03 -0800</date>
            <delta_ts>2012-01-23 12:42:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76664-20120122174700.patch</filename>
            <type>text/plain</type>
            <size>7936</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI2NTA2NTdjZjc4Zjcy
ZjJjNWZiNmNjOWY4OWEyMTc3NjhiYTFlNy4uNmZkOWFjNjM2YmQzZDI1ZWE2MDgzZmViYjdlMmRi
Mjc1MmUyOTNlNSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAxLTIyICBSb2Jl
cnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBJbmNvcnJlY3QgcG9zaXRp
b25pbmcgb2YgZmxvYXRpbmcgcHNldWRvLWVsZW1lbnRzIGluIHRhYmxlIGNhcHRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY2NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3Rh
YmxlL2NhcHRpb24tZW5jbG9zZXMtb3ZlcmhhbmdpbmctZmxvYXQtZXhwZWN0ZWQuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC90YWJsZS9jYXB0aW9uLWVuY2xvc2VzLW92ZXJoYW5naW5nLWZsb2F0
Lmh0bWwKKworICAgICAgICBBbGxvdyB0YWJsZSBjYXB0aW9ucyB0byBleHBhbmQgYW5kIGVuY2xv
c2Ugb3ZlcmhhbmdpbmcgZmxvYXRzLiBXaGVuIHBlcmZvcm1pbmcKKyAgICAgICAgbGF5b3V0IG9u
IGEgY2FwdGlvbiBlbnN1cmUgdGhhdCBpdHMgbG9naWNhbCB0b3AgaXMgc2V0IHNvIHRoYXQgaXQg
ZG9lcyBub3QgbWlzdGFrZW5seQorICAgICAgICBjb25jbHVkZSB0aGF0IGZsb2F0cyBpbiBhIHBy
ZXZpb3VzIHNpYmxpbmcgYXJlIGludHJ1ZGluZyBpbnRvIGl0IHdoZW4gdGhleSdyZSBub3QuCisK
KyAgICAgICAgTW9zdGx5IGRpYWdub3NlZCBieSBBYmhpc2hlayBBcnlhLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpleHBhbmRzVG9FbmNsb3NlT3ZlcmhhbmdpbmdGbG9hdHMpOiBhZGQgdGFibGUgY2FwdGlvbnMg
dG8gdGhlIGxpc3QKKyAgICAgICAgIHRoYXQgY2FuIGVuY2xvc2VkIG92ZXJoYW5naW5nIGZsb2F0
cy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGFibGU6OmxheW91dENhcHRpb24pOiB1c2UgdGhlIGJlc3QgYXZhaWxhYmxlIGFw
cHJveGltYXRpb24gb2YgdGhlIGNhcHRpb24ncyBsb2dpY2FsCisgICAgICAgICB0b3Agb2Zmc2V0
IGJlZm9yZSBsYXlpbmcgaXQgb3V0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6Omxh
eW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6CisKIDIwMTItMDEtMTkg
IEFuZHJlYXMgS2xpbmcgIDxhd2Vzb21la2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgZGVidWcgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKaW5kZXggZDcwYjlmNWQyMDZlZjg2MTE2MWZmYWRiNzE0YWQxMDU4ZmZjNDc4MC4uNzE5
NjdjYjBiZjVjMGViNDczMGFiNjM4ZDVhODI4MjJjOTYwMGM4YyAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xNTE1LDcgKzE1MTUsNyBAQCB2b2lkIFJlbmRl
ckJsb2NrOjphZGRWaXN1YWxPdmVyZmxvd0Zyb21UaGVtZSgpCiBib29sIFJlbmRlckJsb2NrOjpl
eHBhbmRzVG9FbmNsb3NlT3ZlcmhhbmdpbmdGbG9hdHMoKSBjb25zdAogewogICAgIHJldHVybiBp
c0lubGluZUJsb2NrT3JJbmxpbmVUYWJsZSgpIHx8IGlzRmxvYXRpbmdPclBvc2l0aW9uZWQoKSB8
fCBoYXNPdmVyZmxvd0NsaXAoKSB8fCAocGFyZW50KCkgJiYgcGFyZW50KCktPmlzRGVwcmVjYXRl
ZEZsZXhpYmxlQm94KCkpCi0gICAgICAgICAgIHx8IGhhc0NvbHVtbnMoKSB8fCBpc1RhYmxlQ2Vs
bCgpIHx8IGlzRmllbGRzZXQoKSB8fCBpc1dyaXRpbmdNb2RlUm9vdCgpIHx8IGlzUm9vdCgpOwor
ICAgICAgICAgICB8fCBoYXNDb2x1bW5zKCkgfHwgaXNUYWJsZUNlbGwoKSB8fCBpc0ZpZWxkc2V0
KCkgfHwgaXNXcml0aW5nTW9kZVJvb3QoKSB8fCBpc1Jvb3QoKSB8fCBpc1RhYmxlQ2FwdGlvbigp
OwogfQogCiB2b2lkIFJlbmRlckJsb2NrOjphZGp1c3RQb3NpdGlvbmVkQmxvY2soUmVuZGVyQm94
KiBjaGlsZCwgY29uc3QgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IGM4ODk2MWU3ZWIxOGIzNGRjNTRjMmVmMDA1Zjg2
Mzk2NWJkNTFmM2UuLjlkODMxYTZjMmFmNDk0YzRjN2MyZDEyZjM5ZjU2NjE1M2IwNmVlNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtMjY2LDExICsyNjYs
MTcgQEAgdm9pZCBSZW5kZXJUYWJsZTo6Y29tcHV0ZUxvZ2ljYWxXaWR0aCgpCiAgICAgfQogfQog
Ci12b2lkIFJlbmRlclRhYmxlOjphZGp1c3RMb2dpY2FsSGVpZ2h0Rm9yQ2FwdGlvbihSZW5kZXJC
bG9jayogY2FwdGlvbikKK3ZvaWQgUmVuZGVyVGFibGU6OmxheW91dENhcHRpb24oUmVuZGVyQmxv
Y2sqIGNhcHRpb24pCiB7CiAgICAgSW50UmVjdCBjYXB0aW9uUmVjdChjYXB0aW9uLT54KCksIGNh
cHRpb24tPnkoKSwgY2FwdGlvbi0+d2lkdGgoKSwgY2FwdGlvbi0+aGVpZ2h0KCkpOwogCisgICAg
Ly8gVGhlIG1hcmdpbnMgbWF5IG5vdCBiZSBhdmFpbGFibGUgYnV0IGVuc3VyZSB0aGUgY2FwdGlv
biBpcyBhdCBsZWFzdCBsb2NhdGVkIGJlbmVhdGggYW55IHByZXZpb3VzIHNpYmxpbmcgY2FwdGlv
bgorICAgIC8vIHNvIHRoYXQgaXQgZG9lcyBub3QgbWlzdGFrZW5seSB0aGluayBhbnkgZmxvYXRz
IGluIHRoZSBwcmV2aW91cyBjYXB0aW9uIGludHJ1ZGUgaW50byBpdC4KICAgICBjYXB0aW9uLT5z
ZXRMb2dpY2FsTG9jYXRpb24oSW50UG9pbnQoY2FwdGlvbi0+bWFyZ2luU3RhcnQoKSwgY2FwdGlv
bi0+bWFyZ2luQmVmb3JlKCkgKyBsb2dpY2FsSGVpZ2h0KCkpKTsKKyAgICBjYXB0aW9uLT5sYXlv
dXRJZk5lZWRlZCgpOworICAgIC8vIEFwcGx5IHRoZSBtYXJnaW5zIHRvIHRoZSBsb2NhdGlvbiBu
b3cgdGhhdCB0aGV5IGFyZSBkZWZpbml0ZWx5IGF2YWlsYWJsZSBmcm9tIGxheW91dAorICAgIGNh
cHRpb24tPnNldExvZ2ljYWxMb2NhdGlvbihJbnRQb2ludChjYXB0aW9uLT5tYXJnaW5TdGFydCgp
LCBjYXB0aW9uLT5tYXJnaW5CZWZvcmUoKSArIGxvZ2ljYWxIZWlnaHQoKSkpOworCiAgICAgaWYg
KCFzZWxmTmVlZHNMYXlvdXQoKSAmJiBjYXB0aW9uLT5jaGVja0ZvclJlcGFpbnREdXJpbmdMYXlv
dXQoKSkKICAgICAgICAgY2FwdGlvbi0+cmVwYWludER1cmluZ0xheW91dElmTW92ZWQoY2FwdGlv
blJlY3QpOwogCkBAIC0zMzEsMTAgKzMzNywxMSBAQCB2b2lkIFJlbmRlclRhYmxlOjpsYXlvdXQo
KQogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gT25seSBsYXkgb3V0IG9uZSBjYXB0aW9uLCBz
aW5jZSBpdCdzIHRoZSBvbmx5IG9uZSB3ZSdyZSBnb2luZyB0byBlbmQgdXAgcGFpbnRpbmcuCi0g
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2FwdGlvbnMuc2l6ZSgpOyBpKyspCi0gICAg
ICAgIG1fY2FwdGlvbnNbaV0tPmxheW91dElmTmVlZGVkKCk7Ci0KKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV9jYXB0aW9ucy5zaXplKCk7IGkrKykgeworICAgICAgICBpZiAobV9jYXB0
aW9uc1tpXS0+c3R5bGUoKS0+Y2FwdGlvblNpZGUoKSA9PSBDQVBCT1RUT00pCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgbGF5b3V0Q2FwdGlvbihtX2NhcHRpb25zW2ldKTsKKyAgICB9
CiAgICAgLy8gSWYgYW55IHRhYmxlIHNlY3Rpb24gbW92ZWQgdmVydGljYWxseSwgd2Ugd2lsbCBq
dXN0IHJlcGFpbnQgZXZlcnl0aGluZyBmcm9tIHRoYXQKICAgICAvLyBzZWN0aW9uIGRvd24gKGl0
IGlzIHF1aXRlIHVubGlrZWx5IHRoYXQgYW55IG9mIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMKICAg
ICAvLyBkaWQgbm90IHNoaWZ0KS4KQEAgLTM0MywxMSArMzUwLDYgQEAgdm9pZCBSZW5kZXJUYWJs
ZTo6bGF5b3V0KCkKIAogICAgIC8vIEZJWE1FOiBDb2xsYXBzZSBjYXB0aW9uIG1hcmdpbi4KICAg
ICBpZiAoIW1fY2FwdGlvbnMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX2NhcHRpb25zLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAobV9jYXB0
aW9uc1tpXS0+c3R5bGUoKS0+Y2FwdGlvblNpZGUoKSA9PSBDQVBCT1RUT00pCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBhZGp1c3RMb2dpY2FsSGVpZ2h0Rm9yQ2FwdGlv
bihtX2NhcHRpb25zW2ldKTsKLSAgICAgICAgfQogICAgICAgICBpZiAobG9naWNhbEhlaWdodCgp
ICE9IG9sZFRhYmxlTG9naWNhbFRvcCkgewogICAgICAgICAgICAgc2VjdGlvbk1vdmVkID0gdHJ1
ZTsKICAgICAgICAgICAgIG1vdmVkU2VjdGlvbkxvZ2ljYWxUb3AgPSBtaW4obG9naWNhbEhlaWdo
dCgpLCBvbGRUYWJsZUxvZ2ljYWxUb3ApOwpAQCAtNDA2LDcgKzQwOCw3IEBAIHZvaWQgUmVuZGVy
VGFibGU6OmxheW91dCgpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2FwdGlvbnMu
c2l6ZSgpOyBpKyspIHsKICAgICAgICAgaWYgKG1fY2FwdGlvbnNbaV0tPnN0eWxlKCktPmNhcHRp
b25TaWRlKCkgIT0gQ0FQQk9UVE9NKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGFk
anVzdExvZ2ljYWxIZWlnaHRGb3JDYXB0aW9uKG1fY2FwdGlvbnNbaV0pOworICAgICAgICBsYXlv
dXRDYXB0aW9uKG1fY2FwdGlvbnNbaV0pOwogICAgIH0KIAogICAgIGlmIChpc1Bvc2l0aW9uZWQo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKaW5kZXggMGE0OGMxNTZmMDI3
OTk0N2RjZjRlNDg4YmIyZmI5NThkNGQ0MTdhMS4uNDZlZTBkZDFmODAzYTc4N2JiYjk0MDcyNDJh
NjBiNDliZmIyNGNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKQEAg
LTI0OCw3ICsyNDgsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWNhbGNDb2xsYXBzZWRCb3Jk
ZXJzKCk7CiAgICAgdm9pZCByZWNhbGNTZWN0aW9ucygpIGNvbnN0OwotICAgIHZvaWQgYWRqdXN0
TG9naWNhbEhlaWdodEZvckNhcHRpb24oUmVuZGVyQmxvY2sqKTsKKyAgICB2b2lkIGxheW91dENh
cHRpb24oUmVuZGVyQmxvY2sqKTsKIAogICAgIG11dGFibGUgVmVjdG9yPExheW91dFVuaXQ+IG1f
Y29sdW1uUG9zOwogICAgIG11dGFibGUgVmVjdG9yPENvbHVtblN0cnVjdD4gbV9jb2x1bW5zOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDcwYWJjZGVjYjAwOTZiM2U0ZGQ0NWQ2NzljNTI0NmU1MjE2NjgyNGQuLmE1NmZkNjlh
YjEwMjMyOGFmZTE5OGU1MjEzMDE0NDRmMDU2OTc3YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0wMS0yMiAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CisKKyAgICAgICAg
SW5jb3JyZWN0IHBvc2l0aW9uaW5nIG9mIGZsb2F0aW5nIHBzZXVkby1lbGVtZW50cyBpbiB0YWJs
ZSBjYXB0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzY2NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvdGFibGUvY2FwdGlvbi1lbmNsb3Nlcy1vdmVyaGFuZ2luZy1mbG9hdC1leHBlY3Rl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RhYmxlL2NhcHRpb24tZW5jbG9zZXMtb3Zl
cmhhbmdpbmctZmxvYXQuaHRtbDogQWRkZWQuCisKIDIwMTItMDEtMTkgIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc1MTkyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Rh
YmxlL2NhcHRpb24tZW5jbG9zZXMtb3ZlcmhhbmdpbmctZmxvYXQtZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvdGFibGUvY2FwdGlvbi1lbmNsb3Nlcy1vdmVyaGFuZ2luZy1mbG9hdC1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MzVhZmY4NzQzMDcwZjcxZWJhNTliNjFlYzllNzY3
YjJjNjhkZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NhcHRp
b24tZW5jbG9zZXMtb3ZlcmhhbmdpbmctZmxvYXQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgPC9oZWFkPgorICA8Ym9k
eT4KKyAgICA8c3R5bGU+CisgICAgLmNhcHRpb24xIHsgYmFja2dyb3VuZC1jb2xvcjp5ZWxsb3c7
IHdpZHRoOiA0MHB4OyB9CisgICAgLmNhcHRpb24yIHsgYmFja2dyb3VuZC1jb2xvcjp5ZWxsb3c7
IHdpZHRoOiA0MHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fQorICAgIC5mbCB7IGZsb2F0OiBs
ZWZ0OyBiYWNrZ3JvdW5kLWNvbG9yOnJlZDt9CisgICAgPC9zdHlsZT4KKyAgICA8dGFibGU+Cisg
ICAgPGRpdiBjbGFzcz0iY2FwdGlvbjIiPmNhcHRpb24xPGRpdiBjbGFzcz0iZmwiPmE8L2Rpdj48
L2Rpdj4KKyAgICA8L3RhYmxlPgorICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9jYXB0aW9uLWVu
Y2xvc2VzLW92ZXJoYW5naW5nLWZsb2F0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2Nh
cHRpb24tZW5jbG9zZXMtb3ZlcmhhbmdpbmctZmxvYXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTI5YTli
NzBjOWYyYzg1ZTZmM2ZmZjkyMDMzMzQ0YTUzODBjYjFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90YWJsZS9jYXB0aW9uLWVuY2xvc2VzLW92ZXJoYW5naW5nLWZsb2F0Lmh0
bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+Cisg
IDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHN0eWxlPgorICAgIC5jYXB0aW9uMSB7IGJhY2tncm91
bmQtY29sb3I6eWVsbG93OyB3aWR0aDogNDBweDsgfQorICAgIC5jYXB0aW9uMiB7IGJhY2tncm91
bmQtY29sb3I6eWVsbG93OyB3aWR0aDogNDBweDsgfQorICAgIC5mbCB7IGZsb2F0OiBsZWZ0OyBi
YWNrZ3JvdW5kLWNvbG9yOnJlZDt9CisgICAgPC9zdHlsZT4KKyAgICA8dGFibGU+CisgICAgPGNh
cHRpb24gY2xhc3M9ImNhcHRpb24yIj5jYXB0aW9uMTxkaXYgY2xhc3M9ImZsIj5hPC9kaXY+PC9j
YXB0aW9uPgorICAgIDwvdGFibGU+CisgIDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123599</attachid>
            <date>2012-01-23 12:42:55 -0800</date>
            <delta_ts>2012-01-24 05:20:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76664-20120123204253.patch</filename>
            <type>text/plain</type>
            <size>7594</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI2NTA2NTdjZjc4Zjcy
ZjJjNWZiNmNjOWY4OWEyMTc3NjhiYTFlNy4uNmZkOWFjNjM2YmQzZDI1ZWE2MDgzZmViYjdlMmRi
Mjc1MmUyOTNlNSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAxLTIyICBSb2Jl
cnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBJbmNvcnJlY3QgcG9zaXRp
b25pbmcgb2YgZmxvYXRpbmcgcHNldWRvLWVsZW1lbnRzIGluIHRhYmxlIGNhcHRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY2NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3Rh
YmxlL2NhcHRpb24tZW5jbG9zZXMtb3ZlcmhhbmdpbmctZmxvYXQtZXhwZWN0ZWQuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC90YWJsZS9jYXB0aW9uLWVuY2xvc2VzLW92ZXJoYW5naW5nLWZsb2F0
Lmh0bWwKKworICAgICAgICBBbGxvdyB0YWJsZSBjYXB0aW9ucyB0byBleHBhbmQgYW5kIGVuY2xv
c2Ugb3ZlcmhhbmdpbmcgZmxvYXRzLiBXaGVuIHBlcmZvcm1pbmcKKyAgICAgICAgbGF5b3V0IG9u
IGEgY2FwdGlvbiBlbnN1cmUgdGhhdCBpdHMgbG9naWNhbCB0b3AgaXMgc2V0IHNvIHRoYXQgaXQg
ZG9lcyBub3QgbWlzdGFrZW5seQorICAgICAgICBjb25jbHVkZSB0aGF0IGZsb2F0cyBpbiBhIHBy
ZXZpb3VzIHNpYmxpbmcgYXJlIGludHJ1ZGluZyBpbnRvIGl0IHdoZW4gdGhleSdyZSBub3QuCisK
KyAgICAgICAgTW9zdGx5IGRpYWdub3NlZCBieSBBYmhpc2hlayBBcnlhLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpleHBhbmRzVG9FbmNsb3NlT3ZlcmhhbmdpbmdGbG9hdHMpOiBhZGQgdGFibGUgY2FwdGlvbnMg
dG8gdGhlIGxpc3QKKyAgICAgICAgIHRoYXQgY2FuIGVuY2xvc2VkIG92ZXJoYW5naW5nIGZsb2F0
cy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGFibGU6OmxheW91dENhcHRpb24pOiB1c2UgdGhlIGJlc3QgYXZhaWxhYmxlIGFw
cHJveGltYXRpb24gb2YgdGhlIGNhcHRpb24ncyBsb2dpY2FsCisgICAgICAgICB0b3Agb2Zmc2V0
IGJlZm9yZSBsYXlpbmcgaXQgb3V0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6Omxh
eW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6CisKIDIwMTItMDEtMTkg
IEFuZHJlYXMgS2xpbmcgIDxhd2Vzb21la2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgZGVidWcgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKaW5kZXggZDcwYjlmNWQyMDZlZjg2MTE2MWZmYWRiNzE0YWQxMDU4ZmZjNDc4MC4uZDFh
YTRkMDg2ZTg2MGY1NmM1MjcxMDAwZDNkODllYjA3NWJmZTQxMiAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xNTE1LDcgKzE1MTUsNyBAQCB2b2lkIFJlbmRl
ckJsb2NrOjphZGRWaXN1YWxPdmVyZmxvd0Zyb21UaGVtZSgpCiBib29sIFJlbmRlckJsb2NrOjpl
eHBhbmRzVG9FbmNsb3NlT3ZlcmhhbmdpbmdGbG9hdHMoKSBjb25zdAogewogICAgIHJldHVybiBp
c0lubGluZUJsb2NrT3JJbmxpbmVUYWJsZSgpIHx8IGlzRmxvYXRpbmdPclBvc2l0aW9uZWQoKSB8
fCBoYXNPdmVyZmxvd0NsaXAoKSB8fCAocGFyZW50KCkgJiYgcGFyZW50KCktPmlzRGVwcmVjYXRl
ZEZsZXhpYmxlQm94KCkpCi0gICAgICAgICAgIHx8IGhhc0NvbHVtbnMoKSB8fCBpc1RhYmxlQ2Vs
bCgpIHx8IGlzRmllbGRzZXQoKSB8fCBpc1dyaXRpbmdNb2RlUm9vdCgpIHx8IGlzUm9vdCgpOwor
ICAgICAgICAgICB8fCBoYXNDb2x1bW5zKCkgfHwgaXNUYWJsZUNlbGwoKSB8fCBpc1RhYmxlQ2Fw
dGlvbigpIHx8IGlzRmllbGRzZXQoKSB8fCBpc1dyaXRpbmdNb2RlUm9vdCgpIHx8IGlzUm9vdCgp
OwogfQogCiB2b2lkIFJlbmRlckJsb2NrOjphZGp1c3RQb3NpdGlvbmVkQmxvY2soUmVuZGVyQm94
KiBjaGlsZCwgY29uc3QgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IGM4ODk2MWU3ZWIxOGIzNGRjNTRjMmVmMDA1Zjg2
Mzk2NWJkNTFmM2UuLmRkMzZlZWE1ZTAwZThhMTk4OWZhMDAxYzU5Njc4OGMxYWM4MjhjZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtMjY2LDExICsyNjYs
MTkgQEAgdm9pZCBSZW5kZXJUYWJsZTo6Y29tcHV0ZUxvZ2ljYWxXaWR0aCgpCiAgICAgfQogfQog
Ci12b2lkIFJlbmRlclRhYmxlOjphZGp1c3RMb2dpY2FsSGVpZ2h0Rm9yQ2FwdGlvbihSZW5kZXJC
bG9jayogY2FwdGlvbikKK3ZvaWQgUmVuZGVyVGFibGU6OmxheW91dENhcHRpb25JZk5lZWRlZChS
ZW5kZXJUYWJsZUNhcHRpb24qIGNhcHRpb24pCiB7CiAgICAgSW50UmVjdCBjYXB0aW9uUmVjdChj
YXB0aW9uLT54KCksIGNhcHRpb24tPnkoKSwgY2FwdGlvbi0+d2lkdGgoKSwgY2FwdGlvbi0+aGVp
Z2h0KCkpOwogCisgICAgaWYgKGNhcHRpb24tPm5lZWRzTGF5b3V0KCkpIHsKKyAgICAgICAgLy8g
VGhlIG1hcmdpbnMgbWF5IG5vdCBiZSBhdmFpbGFibGUgYnV0IGVuc3VyZSB0aGUgY2FwdGlvbiBp
cyBhdCBsZWFzdCBsb2NhdGVkIGJlbmVhdGggYW55IHByZXZpb3VzIHNpYmxpbmcgY2FwdGlvbgor
ICAgICAgICAvLyBzbyB0aGF0IGl0IGRvZXMgbm90IG1pc3Rha2VubHkgdGhpbmsgYW55IGZsb2F0
cyBpbiB0aGUgcHJldmlvdXMgY2FwdGlvbiBpbnRydWRlIGludG8gaXQuCisgICAgICAgIGNhcHRp
b24tPnNldExvZ2ljYWxMb2NhdGlvbihJbnRQb2ludChjYXB0aW9uLT5tYXJnaW5TdGFydCgpLCBj
YXB0aW9uLT5tYXJnaW5CZWZvcmUoKSArIGxvZ2ljYWxIZWlnaHQoKSkpOworICAgICAgICBjYXB0
aW9uLT5sYXlvdXRJZk5lZWRlZCgpOworICAgIH0KKyAgICAvLyBBcHBseSB0aGUgbWFyZ2lucyB0
byB0aGUgbG9jYXRpb24gbm93IHRoYXQgdGhleSBhcmUgZGVmaW5pdGVseSBhdmFpbGFibGUgZnJv
bSBsYXlvdXQKICAgICBjYXB0aW9uLT5zZXRMb2dpY2FsTG9jYXRpb24oSW50UG9pbnQoY2FwdGlv
bi0+bWFyZ2luU3RhcnQoKSwgY2FwdGlvbi0+bWFyZ2luQmVmb3JlKCkgKyBsb2dpY2FsSGVpZ2h0
KCkpKTsKKwogICAgIGlmICghc2VsZk5lZWRzTGF5b3V0KCkgJiYgY2FwdGlvbi0+Y2hlY2tGb3JS
ZXBhaW50RHVyaW5nTGF5b3V0KCkpCiAgICAgICAgIGNhcHRpb24tPnJlcGFpbnREdXJpbmdMYXlv
dXRJZk1vdmVkKGNhcHRpb25SZWN0KTsKIApAQCAtMzMxLDEwICszMzksNiBAQCB2b2lkIFJlbmRl
clRhYmxlOjpsYXlvdXQoKQogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gT25seSBsYXkgb3V0
IG9uZSBjYXB0aW9uLCBzaW5jZSBpdCdzIHRoZSBvbmx5IG9uZSB3ZSdyZSBnb2luZyB0byBlbmQg
dXAgcGFpbnRpbmcuCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2FwdGlvbnMuc2l6
ZSgpOyBpKyspCi0gICAgICAgIG1fY2FwdGlvbnNbaV0tPmxheW91dElmTmVlZGVkKCk7Ci0KICAg
ICAvLyBJZiBhbnkgdGFibGUgc2VjdGlvbiBtb3ZlZCB2ZXJ0aWNhbGx5LCB3ZSB3aWxsIGp1c3Qg
cmVwYWludCBldmVyeXRoaW5nIGZyb20gdGhhdAogICAgIC8vIHNlY3Rpb24gZG93biAoaXQgaXMg
cXVpdGUgdW5saWtlbHkgdGhhdCBhbnkgb2YgdGhlIGZvbGxvd2luZyBzZWN0aW9ucwogICAgIC8v
IGRpZCBub3Qgc2hpZnQpLgpAQCAtMzQ2LDcgKzM1MCw3IEBAIHZvaWQgUmVuZGVyVGFibGU6Omxh
eW91dCgpCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NhcHRpb25zLnNpemUo
KTsgaSsrKSB7CiAgICAgICAgICAgICBpZiAobV9jYXB0aW9uc1tpXS0+c3R5bGUoKS0+Y2FwdGlv
blNpZGUoKSA9PSBDQVBCT1RUT00pCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICBhZGp1c3RMb2dpY2FsSGVpZ2h0Rm9yQ2FwdGlvbihtX2NhcHRpb25zW2ldKTsKKyAgICAg
ICAgICAgIGxheW91dENhcHRpb25JZk5lZWRlZChtX2NhcHRpb25zW2ldKTsKICAgICAgICAgfQog
ICAgICAgICBpZiAobG9naWNhbEhlaWdodCgpICE9IG9sZFRhYmxlTG9naWNhbFRvcCkgewogICAg
ICAgICAgICAgc2VjdGlvbk1vdmVkID0gdHJ1ZTsKQEAgLTQwNiw3ICs0MTAsNyBAQCB2b2lkIFJl
bmRlclRhYmxlOjpsYXlvdXQoKQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NhcHRp
b25zLnNpemUoKTsgaSsrKSB7CiAgICAgICAgIGlmIChtX2NhcHRpb25zW2ldLT5zdHlsZSgpLT5j
YXB0aW9uU2lkZSgpICE9IENBUEJPVFRPTSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICBhZGp1c3RMb2dpY2FsSGVpZ2h0Rm9yQ2FwdGlvbihtX2NhcHRpb25zW2ldKTsKKyAgICAgICAg
bGF5b3V0Q2FwdGlvbklmTmVlZGVkKG1fY2FwdGlvbnNbaV0pOwogICAgIH0KIAogICAgIGlmIChp
c1Bvc2l0aW9uZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKaW5kZXgg
MGE0OGMxNTZmMDI3OTk0N2RjZjRlNDg4YmIyZmI5NThkNGQ0MTdhMS4uYzg4OWNkZTE1NmY2ODJi
YWUzYWVlYmEzYjc4OTQzZWE0NGNlYmNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlLmgKQEAgLTI0OCw3ICsyNDgsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWNhbGND
b2xsYXBzZWRCb3JkZXJzKCk7CiAgICAgdm9pZCByZWNhbGNTZWN0aW9ucygpIGNvbnN0OwotICAg
IHZvaWQgYWRqdXN0TG9naWNhbEhlaWdodEZvckNhcHRpb24oUmVuZGVyQmxvY2sqKTsKKyAgICB2
b2lkIGxheW91dENhcHRpb25JZk5lZWRlZChSZW5kZXJUYWJsZUNhcHRpb24qKTsKIAogICAgIG11
dGFibGUgVmVjdG9yPExheW91dFVuaXQ+IG1fY29sdW1uUG9zOwogICAgIG11dGFibGUgVmVjdG9y
PENvbHVtblN0cnVjdD4gbV9jb2x1bW5zOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcwYWJjZGVjYjAwOTZiM2U0ZGQ0NWQ2
NzljNTI0NmU1MjE2NjgyNGQuLmE1NmZkNjlhYjEwMjMyOGFmZTE5OGU1MjEzMDE0NDRmMDU2OTc3
YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMS0yMiAgUm9iZXJ0IEhvZ2FuICA8cm9i
ZXJ0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW5jb3JyZWN0IHBvc2l0aW9uaW5nIG9mIGZsb2F0
aW5nIHBzZXVkby1lbGVtZW50cyBpbiB0YWJsZSBjYXB0aW9ucworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2NjQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvdGFibGUvY2FwdGlvbi1lbmNsb3Nl
cy1vdmVyaGFuZ2luZy1mbG9hdC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3RhYmxlL2NhcHRpb24tZW5jbG9zZXMtb3ZlcmhhbmdpbmctZmxvYXQuaHRtbDogQWRkZWQuCisK
IDIwMTItMDEtMTkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTkyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NhcHRpb24tZW5jbG9zZXMtb3Zlcmhhbmdp
bmctZmxvYXQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvY2FwdGlvbi1l
bmNsb3Nlcy1vdmVyaGFuZ2luZy1mbG9hdC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwMmI2
MzAxNmMxZmJkYjEyMjliZWQ3ZjY2ODg5ZjZmYzY1OTIxNDUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NhcHRpb24tZW5jbG9zZXMtb3ZlcmhhbmdpbmctZmxvYXQt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c3R5bGU+CisgICAgLmNhcHRpb24x
IHsgYmFja2dyb3VuZC1jb2xvcjp5ZWxsb3c7IHdpZHRoOiA0MHB4OyBkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7fQorICAgIC5mbCB7IGZsb2F0OiBsZWZ0OyBiYWNrZ3JvdW5kLWNvbG9yOnJlZDt9Cisg
ICAgPC9zdHlsZT4KKyAgICA8ZGl2IGNsYXNzPSJjYXB0aW9uMSI+Y2FwdGlvbjE8ZGl2IGNsYXNz
PSJmbCI+YTwvZGl2PjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9jYXB0aW9uLWVu
Y2xvc2VzLW92ZXJoYW5naW5nLWZsb2F0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2Nh
cHRpb24tZW5jbG9zZXMtb3ZlcmhhbmdpbmctZmxvYXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjc1OThm
NzVhOGYyYjI1NmMwODliNDc1NzA5MTNkOWE0N2ZhNjVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90YWJsZS9jYXB0aW9uLWVuY2xvc2VzLW92ZXJoYW5naW5nLWZsb2F0Lmh0
bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+Cisg
IDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHN0eWxlPgorICAgIC5jYXB0aW9uMSB7IGJhY2tncm91
bmQtY29sb3I6eWVsbG93OyB3aWR0aDogNDBweDsgfQorICAgIC5mbCB7IGZsb2F0OiBsZWZ0OyBi
YWNrZ3JvdW5kLWNvbG9yOnJlZDt9CisgICAgPC9zdHlsZT4KKyAgICA8dGFibGU+CisgICAgPGNh
cHRpb24gY2xhc3M9ImNhcHRpb24xIj5jYXB0aW9uMTxkaXYgY2xhc3M9ImZsIj5hPC9kaXY+PC9j
YXB0aW9uPgorICAgIDwvdGFibGU+CisgIDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="124675"
          type_id="1"
          status="+"
          setter="jchaffraix"
    />
    <flag name="commit-queue"
          id="124814"
          type_id="3"
          status="-"
          setter="jchaffraix"
    />
          </attachment>
      

    </bug>

</bugzilla>