<?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>202991</bug_id>
          
          <creation_ts>2019-10-15 09:30:35 -0700</creation_ts>
          <short_desc>[LFC][TFC] Add support for colgroup/col</short_desc>
          <delta_ts>2019-10-15 10:31: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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1580123</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-10-15 09:30:35 -0700</bug_when>
    <thetext>&lt;col&gt;&apos;s width attribute can drive the preferred width of the table column (trac uses this)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580124</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-15 09:30:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/56294715&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580131</commentid>
    <comment_count>2</comment_count>
      <attachid>380994</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-10-15 09:38:58 -0700</bug_when>
    <thetext>Created attachment 380994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580133</commentid>
    <comment_count>3</comment_count>
      <attachid>380994</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-15 09:42:48 -0700</bug_when>
    <thetext>Comment on attachment 380994
Patch

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

&gt; Source/WebCore/layout/tableformatting/TableFormattingContext.cpp:182
&gt; +    const Box* colgroup = nullptr;
&gt; +    // Table caption is an optional element; if used, it is always the first child of a &lt;table&gt;.
&gt; +    if (firstChild-&gt;isTableCaption())
&gt; +        tableCaption = firstChild;
&gt; +    // The &lt;colgroup&gt; must appear after any optional &lt;caption&gt; element but before any &lt;thead&gt;, &lt;th&gt;, &lt;tbody&gt;, &lt;tfoot&gt; and &lt;tr&gt; element.
&gt; +    auto* colgroupCandidate = firstChild;
&gt; +    if (tableCaption)
&gt; +        colgroupCandidate = tableCaption-&gt;nextSibling();
&gt; +    if (colgroupCandidate-&gt;isTableColumnGroup())
&gt; +        colgroup = colgroupCandidate;

You might want to factor finding captions and colgroups into functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580135</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-10-15 09:46:53 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 380994 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380994&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/tableformatting/TableFormattingContext.cpp:182
&gt; &gt; +    const Box* colgroup = nullptr;
&gt; &gt; +    // Table caption is an optional element; if used, it is always the first child of a &lt;table&gt;.
&gt; &gt; +    if (firstChild-&gt;isTableCaption())
&gt; &gt; +        tableCaption = firstChild;
&gt; &gt; +    // The &lt;colgroup&gt; must appear after any optional &lt;caption&gt; element but before any &lt;thead&gt;, &lt;th&gt;, &lt;tbody&gt;, &lt;tfoot&gt; and &lt;tr&gt; element.
&gt; &gt; +    auto* colgroupCandidate = firstChild;
&gt; &gt; +    if (tableCaption)
&gt; &gt; +        colgroupCandidate = tableCaption-&gt;nextSibling();
&gt; &gt; +    if (colgroupCandidate-&gt;isTableColumnGroup())
&gt; &gt; +        colgroup = colgroupCandidate;
&gt; 
&gt; You might want to factor finding captions and colgroups into functions.

good idea</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580143</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-10-15 09:57:53 -0700</bug_when>
    <thetext>(In reply to zalan from comment #4)
&gt; (In reply to Antti Koivisto from comment #3)
&gt; &gt; Comment on attachment 380994 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=380994&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/layout/tableformatting/TableFormattingContext.cpp:182
&gt; &gt; &gt; +    const Box* colgroup = nullptr;
&gt; &gt; &gt; +    // Table caption is an optional element; if used, it is always the first child of a &lt;table&gt;.
&gt; &gt; &gt; +    if (firstChild-&gt;isTableCaption())
&gt; &gt; &gt; +        tableCaption = firstChild;
&gt; &gt; &gt; +    // The &lt;colgroup&gt; must appear after any optional &lt;caption&gt; element but before any &lt;thead&gt;, &lt;th&gt;, &lt;tbody&gt;, &lt;tfoot&gt; and &lt;tr&gt; element.
&gt; &gt; &gt; +    auto* colgroupCandidate = firstChild;
&gt; &gt; &gt; +    if (tableCaption)
&gt; &gt; &gt; +        colgroupCandidate = tableCaption-&gt;nextSibling();
&gt; &gt; &gt; +    if (colgroupCandidate-&gt;isTableColumnGroup())
&gt; &gt; &gt; +        colgroup = colgroupCandidate;
&gt; &gt; 
&gt; &gt; You might want to factor finding captions and colgroups into functions.
&gt; 
&gt; good idea
Though, as a second thought, this is the only time when we need traverse the layout tree in the table code (layout uses the grid and not the tree).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580144</commentid>
    <comment_count>6</comment_count>
      <attachid>380994</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-15 10:01:50 -0700</bug_when>
    <thetext>Comment on attachment 380994
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/layout/tableformatting/TableFormattingContext.cpp:182
&gt;&gt;&gt;&gt; +        colgroup = colgroupCandidate;
&gt;&gt;&gt; 
&gt;&gt;&gt; You might want to factor finding captions and colgroups into functions.
&gt;&gt; 
&gt;&gt; good idea
&gt; 
&gt; Though, as a second thought, this is the only time when we need traverse the layout tree in the table code (layout uses the grid and not the tree).

Lambdas!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580146</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-10-15 10:04:59 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #6)
&gt; Comment on attachment 380994 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380994&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt; Source/WebCore/layout/tableformatting/TableFormattingContext.cpp:182
&gt; &gt;&gt;&gt;&gt; +        colgroup = colgroupCandidate;
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; You might want to factor finding captions and colgroups into functions.
&gt; &gt;&gt; 
&gt; &gt;&gt; good idea
&gt; &gt; 
&gt; &gt; Though, as a second thought, this is the only time when we need traverse the layout tree in the table code (layout uses the grid and not the tree).
&gt; 
&gt; Lambdas!
I love lambdas!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580158</commentid>
    <comment_count>8</comment_count>
      <attachid>380994</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-15 10:31:43 -0700</bug_when>
    <thetext>Comment on attachment 380994
Patch

Clearing flags on attachment: 380994

Committed r251147: &lt;https://trac.webkit.org/changeset/251147&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580159</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-15 10:31:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380994</attachid>
            <date>2019-10-15 09:38:58 -0700</date>
            <delta_ts>2019-10-15 10:31:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202991-20191015093858.patch</filename>
            <type>text/plain</type>
            <size>7110</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGYyNDg3ZmZiZDI4Zjky
NDA4NmE3YjJmNGFmMzZmYjZiM2RhNTVkZS4uY2Y1YWZjMmE3MGJhYThmMTRmMmRjMjk0ZDhhOTYw
OTJhMDgwODFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTEwLTE1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bVEZDXSBBZGQgc3Vw
cG9ydCBmb3IgY29sZ3JvdXAvY29sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDI5OTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2Mjk0NzE1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggc2V0cyB1cCB0aGUgY29sdW1uIGNvbnRleHQgd2hlbiA8Y29sZ3JvdXA+IGlzIHByZXNlbnQu
IFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIHVzaW5nIDxjb2w+J3Mgd2lkdGggdG8gYWRqdXN0
IHRoZSBwcmVmZXJyZWQgd2lkdGggb24gdGFibGUgY29sdW1ucy4KKworICAgICAgICAqIGxheW91
dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveCk6CisgICAgICAgICogbGF5b3V0L3Rh
YmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6ZW5zdXJlVGFibGVHcmlkKToKKyAg
ICAgICAgKiBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6Q29sdW1uOjpDb2x1bW4pOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpUYWJsZUdyaWQ6OkNvbHVtbnNDb250ZXh0OjphZGRDb2x1bW4pOgorICAg
ICAgICAqIGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmg6CisKIDIwMTktMTAtMTUg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBBZGp1c3Qg
Y29tcHV0ZWQgd2lkdGggdmFsdWUgd2hlbiBib3ggc2l6aW5nIGlzIGJvcmRlci1ib3gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVy
LmNwcAppbmRleCBkZDkxY2FkNmZhNTQwYzRkN2QxZWI3OTFmYTlkMzcwOGE5MzUyMDc5Li43MTky
OGE4MGY5OWZjNmFjZDRhZjgwNDExNzM3MWUzYmI5NzA5NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCkBAIC0x
ODcsOSArMTg3LDEyIEBAIHN0ZDo6dW5pcXVlX3B0cjxCb3g+IFRyZWVCdWlsZGVyOjpjcmVhdGVM
YXlvdXRCb3goY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50UmVuCiAgICAgICAgICAgICBjaGls
ZExheW91dEJveCA9IG1ha2VVbmlxdWU8Q29udGFpbmVyPihlbGVtZW50QXR0cmlidXRlcyhyZW5k
ZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7CiAgICAgICAgIH0g
ZWxzZSBpZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlQ29sdW1uKSB7CiAgICAg
ICAgICAgICBjaGlsZExheW91dEJveCA9IG1ha2VVbmlxdWU8Q29udGFpbmVyPihlbGVtZW50QXR0
cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7
Ci0gICAgICAgICAgICBhdXRvIGNvbHVtbldpZHRoID0gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ29s
RWxlbWVudCY+KCpyZW5kZXJlci5lbGVtZW50KCkpLndpZHRoKCk7CisgICAgICAgICAgICBhdXRv
JiB0YWJsZUNvbEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MVGFibGVDb2xFbGVtZW50Jj4oKnJl
bmRlcmVyLmVsZW1lbnQoKSk7CisgICAgICAgICAgICBhdXRvIGNvbHVtbldpZHRoID0gdGFibGVD
b2xFbGVtZW50LndpZHRoKCk7CiAgICAgICAgICAgICBpZiAoIWNvbHVtbldpZHRoLmlzRW1wdHko
KSkKICAgICAgICAgICAgICAgICBjaGlsZExheW91dEJveC0+c2V0Q29sdW1uV2lkdGgoY29sdW1u
V2lkdGgudG9JbnQoKSk7CisgICAgICAgICAgICBpZiAodGFibGVDb2xFbGVtZW50LnNwYW4oKSA+
IDEpCisgICAgICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3gtPnNldENvbHVtblNwYW4odGFibGVD
b2xFbGVtZW50LnNwYW4oKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlRf
Tk9UX0lNUExFTUVOVEVEX1lFVCgpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5n
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxl
Rm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDJlZTAxOWMzNDYyYmI4MmUwYTA5OTZmMTE3YzNh
YzE3Yjc1Y2IzOGUuLmRhZmRiOTcwMmFmOGVmNzcyZDE3MzRlMTJlYjM2MzcyZDcwZmVhZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3Jt
YXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0
dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMTY4LDcgKzE2OCwzMiBAQCB2b2lk
IFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OmVuc3VyZVRhYmxlR3JpZCgpCiAgICAgdGFibGVHcmlk
LnNldEhvcml6b250YWxTcGFjaW5nKExheW91dFVuaXQgeyB0YWJsZVdyYXBwZXJCb3guc3R5bGUo
KS5ob3Jpem9udGFsQm9yZGVyU3BhY2luZygpIH0pOwogICAgIHRhYmxlR3JpZC5zZXRWZXJ0aWNh
bFNwYWNpbmcoTGF5b3V0VW5pdCB7IHRhYmxlV3JhcHBlckJveC5zdHlsZSgpLnZlcnRpY2FsQm9y
ZGVyU3BhY2luZygpIH0pOwogCi0gICAgZm9yIChhdXRvKiBzZWN0aW9uID0gdGFibGVXcmFwcGVy
Qm94LmZpcnN0Q2hpbGQoKTsgc2VjdGlvbjsgc2VjdGlvbiA9IHNlY3Rpb24tPm5leHRTaWJsaW5n
KCkpIHsKKyAgICBhdXRvKiBmaXJzdENoaWxkID0gdGFibGVXcmFwcGVyQm94LmZpcnN0Q2hpbGQo
KTsKKyAgICBjb25zdCBCb3gqIHRhYmxlQ2FwdGlvbiA9IG51bGxwdHI7CisgICAgY29uc3QgQm94
KiBjb2xncm91cCA9IG51bGxwdHI7CisgICAgLy8gVGFibGUgY2FwdGlvbiBpcyBhbiBvcHRpb25h
bCBlbGVtZW50OyBpZiB1c2VkLCBpdCBpcyBhbHdheXMgdGhlIGZpcnN0IGNoaWxkIG9mIGEgPHRh
YmxlPi4KKyAgICBpZiAoZmlyc3RDaGlsZC0+aXNUYWJsZUNhcHRpb24oKSkKKyAgICAgICAgdGFi
bGVDYXB0aW9uID0gZmlyc3RDaGlsZDsKKyAgICAvLyBUaGUgPGNvbGdyb3VwPiBtdXN0IGFwcGVh
ciBhZnRlciBhbnkgb3B0aW9uYWwgPGNhcHRpb24+IGVsZW1lbnQgYnV0IGJlZm9yZSBhbnkgPHRo
ZWFkPiwgPHRoPiwgPHRib2R5PiwgPHRmb290PiBhbmQgPHRyPiBlbGVtZW50LgorICAgIGF1dG8q
IGNvbGdyb3VwQ2FuZGlkYXRlID0gZmlyc3RDaGlsZDsKKyAgICBpZiAodGFibGVDYXB0aW9uKQor
ICAgICAgICBjb2xncm91cENhbmRpZGF0ZSA9IHRhYmxlQ2FwdGlvbi0+bmV4dFNpYmxpbmcoKTsK
KyAgICBpZiAoY29sZ3JvdXBDYW5kaWRhdGUtPmlzVGFibGVDb2x1bW5Hcm91cCgpKQorICAgICAg
ICBjb2xncm91cCA9IGNvbGdyb3VwQ2FuZGlkYXRlOworCisgICAgaWYgKGNvbGdyb3VwKSB7Cisg
ICAgICAgIGF1dG8mIGNvbHVtbnNDb250ZXh0ID0gdGFibGVHcmlkLmNvbHVtbnNDb250ZXh0KCk7
CisgICAgICAgIGZvciAoYXV0byogY29sdW1uID0gZG93bmNhc3Q8Q29udGFpbmVyPigqY29sZ3Jv
dXApLmZpcnN0Q2hpbGQoKTsgY29sdW1uOyBjb2x1bW4gPSBjb2x1bW4tPm5leHRTaWJsaW5nKCkp
IHsKKyAgICAgICAgICAgIEFTU0VSVChjb2x1bW4tPmlzVGFibGVDb2x1bW4oKSk7CisgICAgICAg
ICAgICBhdXRvIGNvbHVtblNwYW5Db3VudCA9IGNvbHVtbi0+Y29sdW1uU3BhbigpOworICAgICAg
ICAgICAgQVNTRVJUKGNvbHVtblNwYW5Db3VudCA+IDApOworICAgICAgICAgICAgd2hpbGUgKGNv
bHVtblNwYW5Db3VudC0tKQorICAgICAgICAgICAgICAgIGNvbHVtbnNDb250ZXh0LmFkZENvbHVt
bihjb2x1bW4pOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byogZmlyc3RTZWN0aW9uID0g
Y29sZ3JvdXAgPyBjb2xncm91cC0+bmV4dFNpYmxpbmcoKSA6IHRhYmxlQ2FwdGlvbiA/IHRhYmxl
Q2FwdGlvbi0+bmV4dFNpYmxpbmcoKSA6IGZpcnN0Q2hpbGQ7CisgICAgZm9yIChhdXRvKiBzZWN0
aW9uID0gZmlyc3RTZWN0aW9uOyBzZWN0aW9uOyBzZWN0aW9uID0gc2VjdGlvbi0+bmV4dFNpYmxp
bmcoKSkgewogICAgICAgICBBU1NFUlQoc2VjdGlvbi0+aXNUYWJsZUhlYWRlcigpIHx8IHNlY3Rp
b24tPmlzVGFibGVCb2R5KCkgfHwgc2VjdGlvbi0+aXNUYWJsZUZvb3RlcigpKTsKICAgICAgICAg
Zm9yIChhdXRvKiByb3cgPSBkb3duY2FzdDxDb250YWluZXI+KCpzZWN0aW9uKS5maXJzdENoaWxk
KCk7IHJvdzsgcm93ID0gcm93LT5uZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICBBU1NFUlQo
cm93LT5pc1RhYmxlUm93KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3Rh
YmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxl
Zm9ybWF0dGluZy9UYWJsZUdyaWQuY3BwCmluZGV4IDI3MTdmYzFjMzg4MzUyOWQxYWRlMGEzYTMx
ZjRhYzg3MjU0NzUxNDIuLmRjYTE5MTZiNjMxNGJiZDk4ZDFhMWY4OWJmNDg1MDFkZmRmZWZhMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVH
cmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxl
R3JpZC5jcHAKQEAgLTM1LDYgKzM1LDExIEBAIG5hbWVzcGFjZSBMYXlvdXQgewogCiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoVGFibGVHcmlkKTsKIAorVGFibGVHcmlkOjpDb2x1bW46OkNv
bHVtbihjb25zdCBCb3gqIGNvbHVtbkJveCkKKyAgICA6IG1fY29sdW1uQm94KG1ha2VXZWFrUHRy
KGNvbHVtbkJveCkpCit7Cit9CisKIHZvaWQgVGFibGVHcmlkOjpDb2x1bW46OnNldFdpZHRoQ29u
c3RyYWludHMoRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgd2lk
dGhDb25zdHJhaW50cykKIHsKICNpZm5kZWYgTkRFQlVHCkBAIC03Nyw5ICs4Miw5IEBAIExheW91
dFVuaXQgVGFibGVHcmlkOjpDb2x1bW46OmxvZ2ljYWxMZWZ0KCkgY29uc3QKICAgICByZXR1cm4g
bV9jb21wdXRlZExvZ2ljYWxMZWZ0OwogfQogCi12b2lkIFRhYmxlR3JpZDo6Q29sdW1uc0NvbnRl
eHQ6OmFkZENvbHVtbigpCit2b2lkIFRhYmxlR3JpZDo6Q29sdW1uc0NvbnRleHQ6OmFkZENvbHVt
bihjb25zdCBCb3gqIGNvbHVtbkJveCkKIHsKLSAgICBtX2NvbHVtbnMuYXBwZW5kKHsgfSk7Cisg
ICAgbV9jb2x1bW5zLmFwcGVuZCh7IGNvbHVtbkJveCB9KTsKIH0KIAogVGFibGVHcmlkOjpSb3c6
OlJvdyhjb25zdCBCb3gmIHJvd0JveCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFi
bGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5oCmluZGV4IDEzMzlkZjZiNzcwMGRlMDI4OTZkNjdlYjk1
NWI4ODBmNDk5NjBiOTAuLjcwNjk0YTQ2MzJkYmRjODk5ZGY1YmY2ZWQ1OTczZDdhNjcyOWFhZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVH
cmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdy
aWQuaApAQCAtODIsMTEgKzgyLDEzIEBAIHB1YmxpYzoKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IGZyaWVuZCBjbGFzcyBDb2x1bW5zQ29udGV4dDsKLSAgICAgICAgQ29sdW1uKCkgPSBkZWZhdWx0
OworICAgICAgICBDb2x1bW4oY29uc3QgQm94KiBjb2x1bW5Cb3gpOwogCiAgICAgICAgIEZvcm1h
dHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIG1fd2lkdGhDb25zdHJhaW50
czsKICAgICAgICAgTGF5b3V0VW5pdCBtX2NvbXB1dGVkTG9naWNhbFdpZHRoOwogICAgICAgICBM
YXlvdXRVbml0IG1fY29tcHV0ZWRMb2dpY2FsTGVmdDsKKyAgICAgICAgV2Vha1B0cjxjb25zdCBC
b3g+IG1fY29sdW1uQm94OworCiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBib29sIG1faGFzV2lk
dGhDb25zdHJhaW50cyB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgbV9oYXNDb21wdXRlZFdpZHRo
IHsgZmFsc2UgfTsKQEAgLTk5LDExICsxMDEsMTIgQEAgcHVibGljOgogICAgICAgICB1c2luZyBD
b2x1bW5MaXN0ID0gVmVjdG9yPENvbHVtbj47CiAgICAgICAgIENvbHVtbkxpc3QmIGNvbHVtbnMo
KSB7IHJldHVybiBtX2NvbHVtbnM7IH0KICAgICAgICAgY29uc3QgQ29sdW1uTGlzdCYgY29sdW1u
cygpIGNvbnN0IHsgcmV0dXJuIG1fY29sdW1uczsgfQorICAgICAgICB2b2lkIGFkZENvbHVtbihj
b25zdCBCb3gqIGNvbHVtbkJveCA9IG51bGxwdHIpOworCiAgICAgICAgIExheW91dFVuaXQgbG9n
aWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gY29sdW1ucygpLmxhc3QoKS5sb2dpY2FsUmlnaHQo
KSAtIGNvbHVtbnMoKS5maXJzdCgpLmxvZ2ljYWxMZWZ0KCk7IH0KIAogICAgIHByaXZhdGU6CiAg
ICAgICAgIGZyaWVuZCBjbGFzcyBUYWJsZUdyaWQ7Ci0gICAgICAgIHZvaWQgYWRkQ29sdW1uKCk7
CiAKICAgICAgICAgQ29sdW1uTGlzdCBtX2NvbHVtbnM7CiAgICAgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>