<?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>132132</bug_id>
          
          <creation_ts>2014-04-24 09:59:14 -0700</creation_ts>
          <short_desc>[CSS Shapes] shape-outside polygon can fail when line-top intersects a vertex</short_desc>
          <delta_ts>2014-04-29 08:01:51 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kling</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1003688</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2014-04-24 09:59:14 -0700</bug_when>
    <thetext>Bear reported this.

The attached test case demonstrates the problem (also: http://jsfiddle.net/52UMu/2/).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003691</commentid>
    <comment_count>1</comment_count>
      <attachid>230089</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2014-04-24 10:00:22 -0700</bug_when>
    <thetext>Created attachment 230089
Test case.

The test case can also be found here: http://jsfiddle.net/52UMu/2/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004234</commentid>
    <comment_count>2</comment_count>
      <attachid>230210</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2014-04-25 15:08:24 -0700</bug_when>
    <thetext>Created attachment 230210
Patch

ShapeInterval now distinguishes between x1==x2 - isEmpty() and x1,x2 haven&apos;t been set yet - isUndefined().

The polygon algorithm for computing excluded intervals now ignores horizontal edges. It also ignores edges whose lower vertex matches the top of the line, if the edge&apos;s Y direction is upwards (away from the top of the line). The rationale for this was explained here: http://hansmuller-webkit.blogspot.com/2012/11/revised-horizontal-box-algorithm.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004731</commentid>
    <comment_count>3</comment_count>
      <attachid>230210</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-04-28 14:09:58 -0700</bug_when>
    <thetext>Comment on attachment 230210
Patch

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

IT would nice to see a test for the case where the top of a line overlaps the bottom of the shape, if it&apos;s not too much of a pain to create.

&gt; Source/WebCore/ChangeLog:3
&gt; +        [CSS Shapes] shape-outside polygon fails when first vertex is 0,0

Nit: it would be nice if this was changed to better explain the issue, since it&apos;s not just when the first vertex is 0,0.

&gt; Source/WebCore/rendering/shapes/ShapeInterval.h:43
&gt; +        : m_x1(-1)
&gt; +        , m_x2(-2)

I wish there was a way to make these look less like magic numbers (as far as I can tell, any numbers would work as long as x2 &lt; x1).

&gt; Source/WebCore/rendering/shapes/ShapeInterval.h:81
&gt;      void setX1(T x1)
&gt;      {
&gt; -        ASSERT(m_x2 &gt;= x1);
&gt; -        m_x1 = x1;
&gt; +        if (isUndefined()) {
&gt; +            m_x1 = x1;
&gt; +            m_x2 = x1;
&gt; +        } else {
&gt; +            ASSERT(m_x2 &gt;= x1);
&gt; +            m_x1 = x1;
&gt; +        }
&gt;      }
&gt;  
&gt;      void setX2(T x2)
&gt;      {
&gt; -        ASSERT(x2 &gt;= m_x1);
&gt; -        m_x2 = x2;
&gt; +        if (isUndefined()) {
&gt; +            m_x1 = x2;
&gt; +            m_x2 = x2;
&gt; +        } else {
&gt; +            ASSERT(x2 &gt;= m_x1);
&gt; +            m_x2 = x2;
&gt; +        }
&gt;      }

With the addition of the undefined state, these two methods have become much more complex and potentially confusing (setting one can set the other?!?). It doesn&apos;t look like they&apos;re used anywhere, can we just remove them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004753</commentid>
    <comment_count>4</comment_count>
      <attachid>230210</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2014-04-28 15:25:22 -0700</bug_when>
    <thetext>Comment on attachment 230210
Patch

Looks like the test covers more than I had thought.

r=me, please to remove the setX methods before landing. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004776</commentid>
    <comment_count>5</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2014-04-28 16:32:58 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Nit: it would be nice if this was changed to better explain the issue, since it&apos;s not just when the first vertex is 0,0.

The original bug description was just a guess about the scope of the problem. 

The real source of the problem was that polygon edges that only overlapped the vertical line interval because the top of the line interval was coincident with the bottom vertex of the edge were included in the exclusion boundary.  

A simple way to visualize the problem is to consider a 100x100 square polygon at 0,0 and line-height=100.  We want the first line, whose vertical interval is 0,100 to be excluded by the polygon.  The second line, whose vertical interval is 100,200 should not exclude the polygon, despite the fact that top of the line is coincident with the bottom of the polygon.  Similarly, if the polygon&apos;s origin is 0,100, then the first line would not be excluded by the polygon, but the second line would (and the third line would not).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004932</commentid>
    <comment_count>6</comment_count>
      <attachid>230375</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2014-04-29 07:13:11 -0700</bug_when>
    <thetext>Created attachment 230375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004945</commentid>
    <comment_count>7</comment_count>
      <attachid>230375</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-29 08:01:47 -0700</bug_when>
    <thetext>Comment on attachment 230375
Patch

Clearing flags on attachment: 230375

Committed r167931: &lt;http://trac.webkit.org/changeset/167931&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004946</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-29 08:01:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>230089</attachid>
            <date>2014-04-24 10:00:22 -0700</date>
            <delta_ts>2014-04-24 10:00:22 -0700</delta_ts>
            <desc>Test case.</desc>
            <filename>bear-bug.html</filename>
            <type>text/html</type>
            <size>850</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">PHN0eWxlPgouY29udGFpbmVyIHsKICAgIHdpZHRoOiA0MDBweDsKfQoKLnNoYXBlIHsKICAgIGZs
b2F0OiByaWdodDsKICAgIHdpZHRoOiAyMDBweDsKICAgIGhlaWdodDogMjAwcHg7CiAgICAtd2Vi
a2l0LXNoYXBlLW91dHNpZGU6IHBvbHlnb24oMCAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgNTAlIDEw
MCUsIDUwJSA1MCUsIDAgNTAlKTsKICAgIHNoYXBlLW91dHNpZGU6IHBvbHlnb24oMCAwLCAxMDAl
IDAsIDEwMCUgMTAwJSwgNTAlIDEwMCUsIDUwJSA1MCUsIDAgNTAlKTsKICAgIGJhY2tncm91bmQt
Y29sb3I6IHJnYmEoNTEsIDUxLCA1MSwgMC43KTsKfQo8L3N0eWxlPgo8ZGl2IGNsYXNzPSdjb250
YWluZXInPgogICAgPGRpdiBjbGFzcz0nc2hhcGUnPjwvZGl2PgogICAgPHA+QnkgdGhpcyB0aW1l
IFN0dWJiIHdhcyBvdmVyIHRoZSBzaWRlLCBhbmQgZ2V0dGluZyBpbnRvIGhpcyBib2F0LCBoYWls
ZWQgdGhlIEd1ZXJuc2V5LW1hbiB0byB0aGlzIGVmZmVjdCwmbWRhc2g7dGhhdCBoYXZpbmcgYSBs
b25nIHRvdy1saW5lIGluIGhpcyBib2F0LCBoZSB3b3VsZCBkbyB3aGF0IGhlIGNvdWxkIHRvIGhl
bHAgdGhlbSwgYnkgcHVsbGluZyBvdXQgdGhlIGxpZ2h0ZXIgd2hhbGUgb2YgdGhlIHR3byBmcm9t
IHRoZSBzaGlwJ3Mgc2lkZS4gV2hpbGUgdGhlIEZyZW5jaG1hbidzIGJvYXRzLCB0aGVuLCB3ZXJl
IGVuZ2FnZWQgaW4gdG93aW5nIHRoZSBzaGlwIG9uZSB3YXksIFN0dWJiIGJlbmV2b2xlbnRseSB0
b3dlZCBhd2F5IGF0IGhpcyB3aGFsZSB0aGUgb3RoZXIgd2F5LCBvc3RlbnRhdGlvdXNseSBzbGFj
a2luZyBvdXQgYSBtb3N0IHVudXN1YWxseSBsb25nIHRvdy1saW5lLjwvcD4KPC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230210</attachid>
            <date>2014-04-25 15:08:24 -0700</date>
            <delta_ts>2014-04-29 07:13:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>8112</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNTU4ODhmLi5iZjhhYmU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDQt
MjUgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFw
ZXNdIHNoYXBlLW91dHNpZGUgcG9seWdvbiBmYWlscyB3aGVuIGZpcnN0IHZlcnRleCBpcyAwLDAK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjEzMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9z
aGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1wb2x5Z29uLXplcm8tdmVy
dGV4LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhcGVzL3NoYXBlLW91
dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtcG9seWdvbi16ZXJvLXZlcnRleC5odG1sOiBBZGRl
ZC4KKwogMjAxNC0wNC0yNCAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVbnJldmlld2VkIEdUSyBnYXJkZW5pbmcuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFw
ZS1vdXRzaWRlLXBvbHlnb24temVyby12ZXJ0ZXgtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtcG9seWdvbi16
ZXJvLXZlcnRleC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmZhYTA3YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9z
aGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLXBvbHlnb24temVyby12ZXJ0ZXgtZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyNj
b250YWluZXIgeworICAgIHdpZHRoOiA0MDBweDsKKyAgICB0ZXh0LWFsaWduOiByaWdodDsKKyAg
ICBmb250OiA1MHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAtd2Via2l0LWZvbnQtc21vb3Ro
aW5nOiBhbnRpYWxpYXNlZDsKKyAgICBjb2xvcjogcmdiYSgwLCAyNTUsIDAsIDAuNSk7Cit9CisK
KyNzaGFwZTEgeworICAgIGZsb2F0OiByaWdodDsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorCisjc2hhcGUyIHsK
KyAgICBjbGVhcjogcmlnaHQ7CisgICAgZmxvYXQ6IHJpZ2h0OworICAgIHdpZHRoOiAxMDBweDsK
KyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cit9Cis8L3N0
eWxlPgorCis8cD5UaGUgZ3JlZW4gcmVjdGFuZ2xlcyBzaG91bGQgd3JhcCBhcm91bmQgdGhlIGxl
ZnQgZWRnZSBvZiB0aGUgYmx1ZSBzaGFwZS48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAg
IDxkaXYgaWQ9InNoYXBlMSI+PC9kaXY+CisgICAgPGRpdiBpZD0ic2hhcGUyIj48L2Rpdj4KKyAg
ICBYPGJyPlg8YnI+WDxicj5YPGJyPlgKKzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1wb2x5Z29uLXpl
cm8tdmVydGV4Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZs
b2F0cy9zaGFwZS1vdXRzaWRlLXBvbHlnb24temVyby12ZXJ0ZXguaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmYwNjYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1wb2x5
Z29uLXplcm8tdmVydGV4Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
c3R5bGU+CisuY29udGFpbmVyIHsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgdGV4dC1hbGlnbjog
cmlnaHQ7CisgICAgZm9udDogNTBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgLXdlYmtpdC1m
b250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CisgICAgY29sb3I6IHJnYmEoMCwgMjU1LCAwLCAw
LjUpOworfQorCisuc2hhcGUgeworICAgIGZsb2F0OiByaWdodDsKKyAgICB3aWR0aDogMjAwcHg7
CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAtd2Via2l0LXNoYXBlLW91dHNpZGU6IGNvbnRlbnQt
Ym94IHBvbHlnb24oMCAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgNTAlIDEwMCUsIDUwJSA1MCUsIDAg
NTAlKTsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtVVEYt
OCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEwMCUnIGhl
aWdodD0nMTAwJSc+PHBvbHlnb24gcG9pbnRzPScwLDAgMjAwLDAgMjAwLDIwMCAxMDAsMjAwIDEw
MCwxMDAsIDAsMTAwJyBmaWxsPSdibHVlJy8+PC9zdmc+Iik7Cit9Cis8L3N0eWxlPgorPHA+VGhl
IGdyZWVuIHJlY3RhbmdsZXMgc2hvdWxkIHdyYXAgYXJvdW5kIHRoZSBsZWZ0IGVkZ2Ugb2YgdGhl
IGJsdWUgc2hhcGUuPC9wPgorPGRpdiBjbGFzcz0nY29udGFpbmVyJz4KKyAgICA8ZGl2IGNsYXNz
PSdzaGFwZSc+PC9kaXY+CisgICAgWDxicj5YPGJyPlg8YnI+WDxicj5YCis8L2Rpdj4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBmYmM1ZDljLi5lMWY3N2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIw
MTQtMDQtMjUgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NT
UyBTaGFwZXNdIHNoYXBlLW91dHNpZGUgcG9seWdvbiBmYWlscyB3aGVuIGZpcnN0IHZlcnRleCBp
cyAwLDAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNo
YXBlSW50ZXJ2YWwgbm93IGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiB4MT09eDIgLSBpc0VtcHR5KCkg
YW5kIHgxLHgyIGhhdmVuJ3QgYmVlbgorICAgICAgICBzZXQgeWV0IC0gaXNVbmRlZmluZWQoKS4K
KworICAgICAgICBUaGUgcG9seWdvbiBhbGdvcml0aG0gZm9yIGNvbXB1dGluZyBleGNsdWRlZCBp
bnRlcnZhbHMgbm93IGlnbm9yZXMgaG9yaXpvbnRhbAorICAgICAgICBlZGdlcy4gSXQgYWxzbyBp
Z25vcmVzIGVkZ2VzIHdob3NlIGxvd2VyIHZlcnRleCBtYXRjaGVzIHRoZSB0b3Agb2YgdGhlIGxp
bmUsIGlmCisgICAgICAgIHRoZSBlZGdlJ3MgWSBkaXJlY3Rpb24gaXMgdXB3YXJkcyAoYXdheSBm
cm9tIHRoZSB0b3Agb2YgdGhlIGxpbmUpLiBUaGUgcmF0aW9uYWxlCisgICAgICAgIGZvciB0aGlz
IHdhcyBleHBsYWluZWQgaGVyZToKKyAgICAgICAgaHR0cDovL2hhbnNtdWxsZXItd2Via2l0LmJs
b2dzcG90LmNvbS8yMDEyLzExL3JldmlzZWQtaG9yaXpvbnRhbC1ib3gtYWxnb3JpdGhtLmh0bWwK
KworICAgICAgICBUZXN0OiBmYXN0L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1v
dXRzaWRlLXBvbHlnb24temVyby12ZXJ0ZXguaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL3No
YXBlcy9Qb2x5Z29uU2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2V0UG9seWdvbkVk
Z2U6OmNsaXBwZWRFZGdlWFJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvbHlnb25TaGFwZTo6
Z2V0RXhjbHVkZWRJbnRlcnZhbHMpOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJ
bnRlcnZhbC5oOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbnRlcnZhbDo6U2hhcGVJbnRlcnZh
bCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUludGVydmFsOjppc1VuZGVmaW5lZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFwZUludGVydmFsOjp4MSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFw
ZUludGVydmFsOjp4Mik6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUludGVydmFsOjp3aWR0aCk6
CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUludGVydmFsOjppc0VtcHR5KToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYXBlSW50ZXJ2YWw6OnNldFgxKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW50
ZXJ2YWw6OnNldFgyKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW50ZXJ2YWw6Om92ZXJsYXBz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW50ZXJ2YWw6OmNvbnRhaW5zKToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYXBlSW50ZXJ2YWw6OnVuaXRlKToKKwogMjAxNC0wNC0yNCAgRGF2aWQgSHlh
dHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgW05ldyBNdWx0aWNvbHVtbl0gQ2xpZW50
IHJlY3RzIGRvbid0IHdvcmsgd2l0aCBjb2x1bW4gc3BhbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5jcHAKaW5kZXggMzM5ZTNmZi4uMjdhNDAz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hh
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBl
LmNwcApAQCAtNjYsNyArNjYsNyBAQCBmbG9hdCBPZmZzZXRQb2x5Z29uRWRnZTo6eEludGVyY2Vw
dChmbG9hdCB5KSBjb25zdAogCiBGbG9hdFNoYXBlSW50ZXJ2YWwgT2Zmc2V0UG9seWdvbkVkZ2U6
OmNsaXBwZWRFZGdlWFJhbmdlKGZsb2F0IHkxLCBmbG9hdCB5MikgY29uc3QKIHsKLSAgICBpZiAo
IW92ZXJsYXBzWVJhbmdlKHkxLCB5MikpCisgICAgaWYgKCFvdmVybGFwc1lSYW5nZSh5MSwgeTIp
IHx8ICh5MSA9PSBtYXhZKCkgJiYgdmVydGV4MigpLnkoKSA8IHZlcnRleDEoKS55KCkpKQogICAg
ICAgICByZXR1cm4gRmxvYXRTaGFwZUludGVydmFsKCk7CiAKICAgICBpZiAoaXNXaXRoaW5ZUmFu
Z2UoeTEsIHkyKSkKQEAgLTEzMiw2ICsxMzIsOCBAQCB2b2lkIFBvbHlnb25TaGFwZTo6Z2V0RXhj
bHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYQog
ICAgIEZsb2F0U2hhcGVJbnRlcnZhbCBleGNsdWRlZEludGVydmFsOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBvdmVybGFwcGluZ0VkZ2VzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgIGNv
bnN0IEZsb2F0UG9seWdvbkVkZ2UmIGVkZ2UgPSAqKG92ZXJsYXBwaW5nRWRnZXNbaV0pOworICAg
ICAgICBpZiAoZWRnZS5tYXhZKCkgPT0gZWRnZS5taW5ZKCkpCisgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgaWYgKCFzaGFwZU1hcmdpbigpKQogICAgICAgICAgICAgZXhjbHVkZWRJbnRl
cnZhbC51bml0ZShPZmZzZXRQb2x5Z29uRWRnZShlZGdlLCBGbG9hdFNpemUoKSkuY2xpcHBlZEVk
Z2VYUmFuZ2UoeTEsIHkyKSk7CiAgICAgICAgIGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUludGVydmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW50ZXJ2YWwuaAppbmRleCBhZDc2MzRmLi5kMWNmN2EyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW50ZXJ2YWwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW50ZXJ2YWwuaApA
QCAtMzgsMjggKzM4LDQ2IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgU2hhcGVJbnRl
cnZhbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU2hhcGVJ
bnRlcnZhbChUIHgxID0gMCwgVCB4MiA9IDApCisgICAgU2hhcGVJbnRlcnZhbCgpCisgICAgICAg
IDogbV94MSgtMSkKKyAgICAgICAgLCBtX3gyKC0yKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlz
VW5kZWZpbmVkKCkpOworICAgIH0KKworICAgIFNoYXBlSW50ZXJ2YWwoVCB4MSwgVCB4MikKICAg
ICAgICAgOiBtX3gxKHgxKQogICAgICAgICAsIG1feDIoeDIpCiAgICAgewogICAgICAgICBBU1NF
UlQoeDIgPj0geDEpOwogICAgIH0KIAotICAgIFQgeDEoKSBjb25zdCB7IHJldHVybiBtX3gxOyB9
Ci0gICAgVCB4MigpIGNvbnN0IHsgcmV0dXJuIG1feDI7IH0KLSAgICBUIHdpZHRoKCkgY29uc3Qg
eyByZXR1cm4gbV94MiAtIG1feDE7IH0KLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVy
biAhbV94MSAmJiAhbV94MjsgfQorICAgIGJvb2wgaXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVy
biBtX3gyIDwgbV94MTsgfQorICAgIFQgeDEoKSBjb25zdCB7IHJldHVybiBpc1VuZGVmaW5lZCgp
ID8gMCA6IG1feDE7IH0KKyAgICBUIHgyKCkgY29uc3QgeyByZXR1cm4gaXNVbmRlZmluZWQoKSA/
IDAgOiBtX3gyOyB9CisgICAgVCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIGlzVW5kZWZpbmVkKCkg
PyAwIDogbV94MiAtIG1feDE7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBp
c1VuZGVmaW5lZCgpID8gdHJ1ZSA6IG1feDEgPT0gbV94MjsgfQogCiAgICAgdm9pZCBzZXRYMShU
IHgxKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1feDIgPj0geDEpOwotICAgICAgICBtX3gxID0g
eDE7CisgICAgICAgIGlmIChpc1VuZGVmaW5lZCgpKSB7CisgICAgICAgICAgICBtX3gxID0geDE7
CisgICAgICAgICAgICBtX3gyID0geDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBB
U1NFUlQobV94MiA+PSB4MSk7CisgICAgICAgICAgICBtX3gxID0geDE7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICB2b2lkIHNldFgyKFQgeDIpCiAgICAgewotICAgICAgICBBU1NFUlQoeDIgPj0g
bV94MSk7Ci0gICAgICAgIG1feDIgPSB4MjsKKyAgICAgICAgaWYgKGlzVW5kZWZpbmVkKCkpIHsK
KyAgICAgICAgICAgIG1feDEgPSB4MjsKKyAgICAgICAgICAgIG1feDIgPSB4MjsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVCh4MiA+PSBtX3gxKTsKKyAgICAgICAgICAgIG1f
eDIgPSB4MjsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHZvaWQgc2V0KFQgeDEsIFQgeDIpCkBA
IC03MSwxOSArODksMjMgQEAgcHVibGljOgogCiAgICAgYm9vbCBvdmVybGFwcyhjb25zdCBTaGFw
ZUludGVydmFsPFQ+JiBpbnRlcnZhbCkgY29uc3QKICAgICB7CisgICAgICAgIGlmIChpc1VuZGVm
aW5lZCgpIHx8IGludGVydmFsLmlzVW5kZWZpbmVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIHJldHVybiB4MigpID49IGludGVydmFsLngxKCkgJiYgeDEoKSA8PSBpbnRl
cnZhbC54MigpOwogICAgIH0KIAogICAgIGJvb2wgY29udGFpbnMoY29uc3QgU2hhcGVJbnRlcnZh
bDxUPiYgaW50ZXJ2YWwpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAoaXNVbmRlZmluZWQoKSB8
fCBpbnRlcnZhbC5pc1VuZGVmaW5lZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICByZXR1cm4geDEoKSA8PSBpbnRlcnZhbC54MSgpICYmIHgyKCkgPj0gaW50ZXJ2YWwueDIo
KTsKICAgICB9CiAKICAgICB2b2lkIHVuaXRlKGNvbnN0IFNoYXBlSW50ZXJ2YWw8VD4mIGludGVy
dmFsKQogICAgIHsKLSAgICAgICAgaWYgKGludGVydmFsLmlzRW1wdHkoKSkKKyAgICAgICAgaWYg
KGludGVydmFsLmlzVW5kZWZpbmVkKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlm
IChpc0VtcHR5KCkpCisgICAgICAgIGlmIChpc1VuZGVmaW5lZCgpKQogICAgICAgICAgICAgc2V0
KGludGVydmFsLngxKCksIGludGVydmFsLngyKCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICBzZXQoc3RkOjptaW48VD4oeDEoKSwgaW50ZXJ2YWwueDEoKSksIHN0ZDo6bWF4PFQ+KHgyKCks
IGludGVydmFsLngyKCkpKTsK
</data>
<flag name="review"
          id="254633"
          type_id="1"
          status="+"
          setter="bjonesbe"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230375</attachid>
            <date>2014-04-29 07:13:11 -0700</date>
            <delta_ts>2014-04-29 08:01:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>8082</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3N2M1Yjk0Li5iOWJiZDllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDQt
MjUgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFw
ZXNdIHNoYXBlLW91dHNpZGUgcG9seWdvbiBmYWlscyB3aGVuIGZpcnN0IHZlcnRleCBpcyAwLDAK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjEzMgor
CisgICAgICAgIFJldmlld2VkIGJ5IEJlbSBKb25lcy1CZXkuCisKKyAgICAgICAgKiBmYXN0L3No
YXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLXBvbHlnb24temVyby12ZXJ0
ZXgtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zaGFwZXMvc2hhcGUtb3V0
c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1wb2x5Z29uLXplcm8tdmVydGV4Lmh0bWw6IEFkZGVk
LgorCiAyMDE0LTA0LTI4ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxp
YS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lk
ZS1wb2x5Z29uLXplcm8tdmVydGV4LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3No
YXBlcy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLXBvbHlnb24temVyby12ZXJ0
ZXgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWEw
N2E1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0
c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1wb2x5Z29uLXplcm8tdmVydGV4LWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisjY29udGFpbmVy
IHsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgdGV4dC1hbGlnbjogcmlnaHQ7CisgICAgZm9udDog
NTBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50
aWFsaWFzZWQ7CisgICAgY29sb3I6IHJnYmEoMCwgMjU1LCAwLCAwLjUpOworfQorCisjc2hhcGUx
IHsKKyAgICBmbG9hdDogcmlnaHQ7CisgICAgd2lkdGg6IDIwMHB4OworICAgIGhlaWdodDogMTAw
cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKworI3NoYXBlMiB7CisgICAgY2xl
YXI6IHJpZ2h0OworICAgIGZsb2F0OiByaWdodDsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorPC9zdHlsZT4KKwor
PHA+VGhlIGdyZWVuIHJlY3RhbmdsZXMgc2hvdWxkIHdyYXAgYXJvdW5kIHRoZSBsZWZ0IGVkZ2Ug
b2YgdGhlIGJsdWUgc2hhcGUuPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGlk
PSJzaGFwZTEiPjwvZGl2PgorICAgIDxkaXYgaWQ9InNoYXBlMiI+PC9kaXY+CisgICAgWDxicj5Y
PGJyPlg8YnI+WDxicj5YCis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hh
cGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtcG9seWdvbi16ZXJvLXZlcnRl
eC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hh
cGUtb3V0c2lkZS1wb2x5Z29uLXplcm8tdmVydGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMjZmMDY2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2hhcGVzL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtcG9seWdvbi16ZXJv
LXZlcnRleC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgor
LmNvbnRhaW5lciB7CisgICAgd2lkdGg6IDQwMHB4OworICAgIHRleHQtYWxpZ246IHJpZ2h0Owor
ICAgIGZvbnQ6IDUwcHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgIC13ZWJraXQtZm9udC1zbW9v
dGhpbmc6IGFudGlhbGlhc2VkOworICAgIGNvbG9yOiByZ2JhKDAsIDI1NSwgMCwgMC41KTsKK30K
KworLnNoYXBlIHsKKyAgICBmbG9hdDogcmlnaHQ7CisgICAgd2lkdGg6IDIwMHB4OworICAgIGhl
aWdodDogMjAwcHg7CisgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiBjb250ZW50LWJveCBwb2x5
Z29uKDAgMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDUwJSAxMDAlLCA1MCUgNTAlLCAwIDUwJSk7Cisg
ICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7VVRGLTgsPHN2ZyB4
bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEw
MCUnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDIwMCwwIDIwMCwyMDAgMTAwLDIwMCAxMDAsMTAwLCAw
LDEwMCcgZmlsbD0nYmx1ZScvPjwvc3ZnPiIpOworfQorPC9zdHlsZT4KKzxwPlRoZSBncmVlbiBy
ZWN0YW5nbGVzIHNob3VsZCB3cmFwIGFyb3VuZCB0aGUgbGVmdCBlZGdlIG9mIHRoZSBibHVlIHNo
YXBlLjwvcD4KKzxkaXYgY2xhc3M9J2NvbnRhaW5lcic+CisgICAgPGRpdiBjbGFzcz0nc2hhcGUn
PjwvZGl2PgorICAgIFg8YnI+WDxicj5YPGJyPlg8YnI+WAorPC9kaXY+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTM5N2RjYS4uYmMxZDI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE0LTA0LTI1
ICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVz
XSBzaGFwZS1vdXRzaWRlIHBvbHlnb24gZmFpbHMgd2hlbiBmaXJzdCB2ZXJ0ZXggaXMgMCwwCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzIxMzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBCZW0gSm9uZXMtQmV5LgorCisgICAgICAgIFNoYXBlSW50ZXJ2
YWwgbm93IGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiB4MT09eDIgLSBpc0VtcHR5KCkgYW5kIHgxLHgy
IGhhdmVuJ3QgYmVlbgorICAgICAgICBzZXQgeWV0IC0gaXNVbmRlZmluZWQoKS4gUmVtb3ZlZCB0
aGUgU2hhcGVJbnRlcnZhbCBzZXRYMSgpIGFuZCBzZXRYMigpIG1ldGhvZHMsIHNpbmNlCisgICAg
ICAgIHRoZXkncmUgbm8gbG9uZ2VyIHVzZWQuCisKKyAgICAgICAgVGhlIHBvbHlnb24gYWxnb3Jp
dGhtIGZvciBjb21wdXRpbmcgZXhjbHVkZWQgaW50ZXJ2YWxzIG5vdyBpZ25vcmVzIGhvcml6b250
YWwKKyAgICAgICAgZWRnZXMuIEl0IGFsc28gaWdub3JlcyBlZGdlcyB3aG9zZSBsb3dlciB2ZXJ0
ZXggbWF0Y2hlcyB0aGUgdG9wIG9mIHRoZSBsaW5lLCBpZgorICAgICAgICB0aGUgZWRnZSdzIFkg
ZGlyZWN0aW9uIGlzIHVwd2FyZHMgKGF3YXkgZnJvbSB0aGUgdG9wIG9mIHRoZSBsaW5lKS4gVGhl
IHJhdGlvbmFsZQorICAgICAgICBmb3IgdGhpcyB3YXMgZXhwbGFpbmVkIGhlcmU6CisgICAgICAg
IGh0dHA6Ly9oYW5zbXVsbGVyLXdlYmtpdC5ibG9nc3BvdC5jb20vMjAxMi8xMS9yZXZpc2VkLWhv
cml6b250YWwtYm94LWFsZ29yaXRobS5odG1sCisKKyAgICAgICAgVGVzdDogZmFzdC9zaGFwZXMv
c2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1wb2x5Z29uLXplcm8tdmVydGV4Lmh0
bWwKKworICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok9mZnNldFBvbHlnb25FZGdlOjpjbGlwcGVkRWRnZVhSYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQb2x5Z29uU2hhcGU6OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW50ZXJ2YWwuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNoYXBlSW50ZXJ2YWw6OlNoYXBlSW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJ
bnRlcnZhbDo6aXNVbmRlZmluZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbnRlcnZhbDo6
eDEpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbnRlcnZhbDo6eDIpOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhcGVJbnRlcnZhbDo6d2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbnRl
cnZhbDo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUludGVydmFsOjpzZXRYMSk6
CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUludGVydmFsOjpzZXRYMik6CisgICAgICAgIChXZWJD
b3JlOjpTaGFwZUludGVydmFsOjpvdmVybGFwcyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUlu
dGVydmFsOjpjb250YWlucyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUludGVydmFsOjp1bml0
ZSk6CisKIDIwMTQtMDQtMjggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIEJ1aWx0aW4gY3Vyc29ycyBkbyBub3QgcHJvcGVybHkgaGFuZGxl
IHRyYW5zcGFyZW5jeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9Qb2x5Z29uU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5
Z29uU2hhcGUuY3BwCmluZGV4IDMzOWUzZmYuLjI3YTQwM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAg
ZmxvYXQgT2Zmc2V0UG9seWdvbkVkZ2U6OnhJbnRlcmNlcHQoZmxvYXQgeSkgY29uc3QKIAogRmxv
YXRTaGFwZUludGVydmFsIE9mZnNldFBvbHlnb25FZGdlOjpjbGlwcGVkRWRnZVhSYW5nZShmbG9h
dCB5MSwgZmxvYXQgeTIpIGNvbnN0CiB7Ci0gICAgaWYgKCFvdmVybGFwc1lSYW5nZSh5MSwgeTIp
KQorICAgIGlmICghb3ZlcmxhcHNZUmFuZ2UoeTEsIHkyKSB8fCAoeTEgPT0gbWF4WSgpICYmIHZl
cnRleDIoKS55KCkgPCB2ZXJ0ZXgxKCkueSgpKSkKICAgICAgICAgcmV0dXJuIEZsb2F0U2hhcGVJ
bnRlcnZhbCgpOwogCiAgICAgaWYgKGlzV2l0aGluWVJhbmdlKHkxLCB5MikpCkBAIC0xMzIsNiAr
MTMyLDggQEAgdm9pZCBQb2x5Z29uU2hhcGU6OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVu
aXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2EKICAgICBGbG9hdFNoYXBlSW50ZXJ2YWwg
ZXhjbHVkZWRJbnRlcnZhbDsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgb3ZlcmxhcHBp
bmdFZGdlcy5zaXplKCk7IGkrKykgewogICAgICAgICBjb25zdCBGbG9hdFBvbHlnb25FZGdlJiBl
ZGdlID0gKihvdmVybGFwcGluZ0VkZ2VzW2ldKTsKKyAgICAgICAgaWYgKGVkZ2UubWF4WSgpID09
IGVkZ2UubWluWSgpKQorICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmICghc2hhcGVN
YXJnaW4oKSkKICAgICAgICAgICAgIGV4Y2x1ZGVkSW50ZXJ2YWwudW5pdGUoT2Zmc2V0UG9seWdv
bkVkZ2UoZWRnZSwgRmxvYXRTaXplKCkpLmNsaXBwZWRFZGdlWFJhbmdlKHkxLCB5MikpOwogICAg
ICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
U2hhcGVJbnRlcnZhbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUlu
dGVydmFsLmgKaW5kZXggYWQ3NjM0Zi4uZjE4NDU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUludGVydmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9TaGFwZUludGVydmFsLmgKQEAgLTM4LDI5ICszOCwyNyBAQCB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFNoYXBlSW50ZXJ2YWwgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFNoYXBlSW50ZXJ2YWwoVCB4MSA9IDAsIFQgeDIg
PSAwKQotICAgICAgICA6IG1feDEoeDEpCi0gICAgICAgICwgbV94Mih4MikKKyAgICBTaGFwZUlu
dGVydmFsKCkKKyAgICAgICAgOiBtX3gxKC0xKQorICAgICAgICAsIG1feDIoLTIpCiAgICAgewot
ICAgICAgICBBU1NFUlQoeDIgPj0geDEpOworICAgICAgICAvLyBUaGUgaW5pdGlhbCB2YWx1ZXMg
b2YgbV94MSx4MiBkb24ndCBtYXR0ZXIgKHVubGVzcyB5b3UncmUgbG9va2luZworICAgICAgICAv
LyBhdCB0aGVtIGluIHRoZSBkZWJ1Z2dlcikgc28gbG9uZyBhcyBpc1VuZGVmaW5lZCgpIGlzIHRy
dWUuCisgICAgICAgIEFTU0VSVChpc1VuZGVmaW5lZCgpKTsKICAgICB9CiAKLSAgICBUIHgxKCkg
Y29uc3QgeyByZXR1cm4gbV94MTsgfQotICAgIFQgeDIoKSBjb25zdCB7IHJldHVybiBtX3gyOyB9
Ci0gICAgVCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1feDIgLSBtX3gxOyB9Ci0gICAgYm9vbCBp
c0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1feDEgJiYgIW1feDI7IH0KLQotICAgIHZvaWQgc2V0
WDEoVCB4MSkKKyAgICBTaGFwZUludGVydmFsKFQgeDEsIFQgeDIpCisgICAgICAgIDogbV94MSh4
MSkKKyAgICAgICAgLCBtX3gyKHgyKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1feDIgPj0geDEp
OwotICAgICAgICBtX3gxID0geDE7CisgICAgICAgIEFTU0VSVCh4MiA+PSB4MSk7CiAgICAgfQog
Ci0gICAgdm9pZCBzZXRYMihUIHgyKQotICAgIHsKLSAgICAgICAgQVNTRVJUKHgyID49IG1feDEp
OwotICAgICAgICBtX3gyID0geDI7Ci0gICAgfQorICAgIGJvb2wgaXNVbmRlZmluZWQoKSBjb25z
dCB7IHJldHVybiBtX3gyIDwgbV94MTsgfQorICAgIFQgeDEoKSBjb25zdCB7IHJldHVybiBpc1Vu
ZGVmaW5lZCgpID8gMCA6IG1feDE7IH0KKyAgICBUIHgyKCkgY29uc3QgeyByZXR1cm4gaXNVbmRl
ZmluZWQoKSA/IDAgOiBtX3gyOyB9CisgICAgVCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIGlzVW5k
ZWZpbmVkKCkgPyAwIDogbV94MiAtIG1feDE7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7
IHJldHVybiBpc1VuZGVmaW5lZCgpID8gdHJ1ZSA6IG1feDEgPT0gbV94MjsgfQogCiAgICAgdm9p
ZCBzZXQoVCB4MSwgVCB4MikKICAgICB7CkBAIC03MSwxOSArNjksMjMgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBvdmVybGFwcyhjb25zdCBTaGFwZUludGVydmFsPFQ+JiBpbnRlcnZhbCkgY29uc3QK
ICAgICB7CisgICAgICAgIGlmIChpc1VuZGVmaW5lZCgpIHx8IGludGVydmFsLmlzVW5kZWZpbmVk
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiB4MigpID49IGlu
dGVydmFsLngxKCkgJiYgeDEoKSA8PSBpbnRlcnZhbC54MigpOwogICAgIH0KIAogICAgIGJvb2wg
Y29udGFpbnMoY29uc3QgU2hhcGVJbnRlcnZhbDxUPiYgaW50ZXJ2YWwpIGNvbnN0CiAgICAgewor
ICAgICAgICBpZiAoaXNVbmRlZmluZWQoKSB8fCBpbnRlcnZhbC5pc1VuZGVmaW5lZCgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4geDEoKSA8PSBpbnRlcnZhbC54
MSgpICYmIHgyKCkgPj0gaW50ZXJ2YWwueDIoKTsKICAgICB9CiAKICAgICB2b2lkIHVuaXRlKGNv
bnN0IFNoYXBlSW50ZXJ2YWw8VD4mIGludGVydmFsKQogICAgIHsKLSAgICAgICAgaWYgKGludGVy
dmFsLmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKGludGVydmFsLmlzVW5kZWZpbmVkKCkpCiAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChpc0VtcHR5KCkpCisgICAgICAgIGlmIChpc1Vu
ZGVmaW5lZCgpKQogICAgICAgICAgICAgc2V0KGludGVydmFsLngxKCksIGludGVydmFsLngyKCkp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzZXQoc3RkOjptaW48VD4oeDEoKSwgaW50ZXJ2
YWwueDEoKSksIHN0ZDo6bWF4PFQ+KHgyKCksIGludGVydmFsLngyKCkpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>