<?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>106571</bug_id>
          
          <creation_ts>2013-01-10 08:15:03 -0800</creation_ts>
          <short_desc>REGRESSION(r120616): Cell&apos;s logical height wrongly computed with vertical-align: baseline and rowspan</short_desc>
          <delta_ts>2013-01-26 01:38:08 -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>Tables</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://codepen.io/anon/pen/lBswz</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Robert Hogan">robert</assigned_to>
          <cc>benjamin</cc>
    
    <cc>eric</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>robert</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>804389</commentid>
    <comment_count>0</comment_count>
      <attachid>182144</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-10 08:15:03 -0800</bug_when>
    <thetext>Created attachment 182144
Reduction

See URL and attached test case.

It looks like we don&apos;t properly grow the first line to account for the baseline, thus leading the content of the first row to overflow into the second row. The attached test case shows that a bit better than the original test case as the image is bigger.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807482</commentid>
    <comment_count>1</comment_count>
      <attachid>182811</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-01-15 11:12:29 -0800</bug_when>
    <thetext>Created attachment 182811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810966</commentid>
    <comment_count>2</comment_count>
      <attachid>182811</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-18 13:15:41 -0800</bug_when>
    <thetext>Comment on attachment 182811
Patch

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

&gt; Source/WebCore/rendering/RenderTableSection.cpp:326
&gt; -                        m_grid[cellStartRow].baseline = max(m_grid[cellStartRow].baseline, baselinePosition - cell-&gt;intrinsicPaddingBefore());
&gt; -                        baselineDescent = max(baselineDescent, m_rowPos[cellStartRow] + cellLogicalHeight - (baselinePosition - cell-&gt;intrinsicPaddingBefore()));
&gt; +                        m_grid[cellStartRow].baseline = max(m_grid[cellStartRow].baseline, baselinePosition);

Note that this is how the baseline is computed in RenderTableSection::layoutRows which would have been nice to mention somewhere (e.g in the ChangeLog).

Also you are not removing cell-&gt;intrinsicPaddingBefore() from m_grid[cellStartRow].baseline which I would expect to change most baselines. Do you know why we don&apos;t see a lot of failing test cases because of that?

&gt; Source/WebCore/rendering/RenderTableSection.cpp:335
&gt; +                // Increase row height if the baseline requires it. This is always the first row in the case of a rowspan.
&gt; +                if (m_grid[cellStartRow].baseline)
&gt; +                    m_rowPos[cellStartRow + 1] = max&lt;int&gt;(m_rowPos[cellStartRow + 1], m_rowPos[cellStartRow] + m_grid[cellStartRow].baseline + baselineDescent);

Why do we need to move this code inside the loop? It seems bad as we now will recompute our position for each cells in each rows instead of doing it for each rows.

&gt; LayoutTests/ChangeLog:11
&gt; +        * fast/css/vertical-align-baseline-rowspan-010-expected.html: Added.
&gt; +        * fast/css/vertical-align-baseline-rowspan-010.html: Added.
&gt; +        * fast/css/vertical-align-baseline-rowspan-011-expected.html: Added.
&gt; +        * fast/css/vertical-align-baseline-rowspan-011.html: Added.

I usually advise people to pick up meaningful names for new tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810995</commentid>
    <comment_count>3</comment_count>
      <attachid>182811</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-01-18 13:45:15 -0800</bug_when>
    <thetext>Comment on attachment 182811
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderTableSection.cpp:326
&gt;&gt; +                        m_grid[cellStartRow].baseline = max(m_grid[cellStartRow].baseline, baselinePosition);
&gt; 
&gt; Note that this is how the baseline is computed in RenderTableSection::layoutRows which would have been nice to mention somewhere (e.g in the ChangeLog).
&gt; 
&gt; Also you are not removing cell-&gt;intrinsicPaddingBefore() from m_grid[cellStartRow].baseline which I would expect to change most baselines. Do you know why we don&apos;t see a lot of failing test cases because of that?

Lack of test coverage for the rowspan case I suspect, and cases where the border and padding would materially affect the baseline across a row. It doesn&apos;t make sense to me that we would consider a baseline less than the real one in this calculation so I don&apos;t think it should ever have been there.

&gt;&gt; Source/WebCore/rendering/RenderTableSection.cpp:335
&gt;&gt; +                    m_rowPos[cellStartRow + 1] = max&lt;int&gt;(m_rowPos[cellStartRow + 1], m_rowPos[cellStartRow] + m_grid[cellStartRow].baseline + baselineDescent);
&gt; 
&gt; Why do we need to move this code inside the loop? It seems bad as we now will recompute our position for each cells in each rows instead of doing it for each rows.

This is at the root of the regression observed in your test case. With a rowspan, this function will go to the last row in the span and then calculate the baseline. It the new baseline should grow the row it sits on (i.e. the first row) then that&apos;s the one we need to grow. In order to do that, we need to move this statement to where it can spot cellStartRow growing due to a new baseline exceeding the old one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811009</commentid>
    <comment_count>4</comment_count>
      <attachid>182811</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-01-18 13:55:16 -0800</bug_when>
    <thetext>Comment on attachment 182811
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderTableSection.cpp:335
&gt;&gt;&gt; +                    m_rowPos[cellStartRow + 1] = max&lt;int&gt;(m_rowPos[cellStartRow + 1], m_rowPos[cellStartRow] + m_grid[cellStartRow].baseline + baselineDescent);
&gt;&gt; 
&gt;&gt; Why do we need to move this code inside the loop? It seems bad as we now will recompute our position for each cells in each rows instead of doing it for each rows.
&gt; 
&gt; This is at the root of the regression observed in your test case. With a rowspan, this function will go to the last row in the span and then calculate the baseline. It the new baseline should grow the row it sits on (i.e. the first row) then that&apos;s the one we need to grow. In order to do that, we need to move this statement to where it can spot cellStartRow growing due to a new baseline exceeding the old one.

I guess I could limit it to cells that have a rowspan though, and keep the check per row below - yes, that would be less expensive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812285</commentid>
    <comment_count>5</comment_count>
      <attachid>182811</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-01-21 11:25:03 -0800</bug_when>
    <thetext>Comment on attachment 182811
Patch

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

&gt;&gt; LayoutTests/ChangeLog:11
&gt;&gt; +        * fast/css/vertical-align-baseline-rowspan-011.html: Added.
&gt; 
&gt; I usually advise people to pick up meaningful names for new tests.

I thought it best to put them together with the other ones covering the behaviour of baseline and vertical align with a rowspan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812286</commentid>
    <comment_count>6</comment_count>
      <attachid>183808</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-01-21 11:25:38 -0800</bug_when>
    <thetext>Created attachment 183808
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813502</commentid>
    <comment_count>7</comment_count>
      <attachid>183808</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-22 15:51:31 -0800</bug_when>
    <thetext>Comment on attachment 183808
Patch

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

&gt; Source/WebCore/rendering/RenderTableSection.cpp:331
&gt; +                        if (cell-&gt;rowSpan() == 1)
&gt; +                            baselineDescent = max(baselineDescent, cellLogicalHeight - (baselinePosition - cell-&gt;intrinsicPaddingBefore()));
&gt; +                        m_rowPos[cellStartRow + 1] = max&lt;int&gt;(m_rowPos[cellStartRow + 1], m_rowPos[cellStartRow] + m_grid[cellStartRow].baseline + baselineDescent);

Is this not open to race conditions as baselineDescent could increase *after* you compute your next row&apos;s position? Adding some testing about that would be a good addition regardless.

The old code was doing the sizing after walking over all the cells in a row which prevents that (on top of being more efficient).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815685</commentid>
    <comment_count>8</comment_count>
      <attachid>183808</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-24 11:52:40 -0800</bug_when>
    <thetext>Comment on attachment 183808
Patch

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

r=me, if you can make the test not ref-tests, you get extra bonus points but I will let you see if my suggestions work / make any sense.

&gt;&gt; Source/WebCore/rendering/RenderTableSection.cpp:331
&gt;&gt; +                        m_rowPos[cellStartRow + 1] = max&lt;int&gt;(m_rowPos[cellStartRow + 1], m_rowPos[cellStartRow] + m_grid[cellStartRow].baseline + baselineDescent);
&gt; 
&gt; Is this not open to race conditions as baselineDescent could increase *after* you compute your next row&apos;s position? Adding some testing about that would be a good addition regardless.
&gt; 
&gt; The old code was doing the sizing after walking over all the cells in a row which prevents that (on top of being more efficient).

Walking through the code over, this is my misunderstanding. There is no race condition as we keep track of the maximums and update them properly.

&gt; LayoutTests/ChangeLog:11
&gt; +        * fast/css/vertical-align-baseline-rowspan-011.html: Added.

I agree it&apos;s better to group them (especially since they are not in fast/table :() even if I still don&apos;t like the naming.

&gt; LayoutTests/fast/css/vertical-align-baseline-rowspan-010.html:25
&gt; +             &lt;td&gt;XXX&lt;/td&gt;&lt;td&gt;XXX&lt;/td&gt;&lt;td rowspan=&quot;2&quot;&gt;&lt;img&gt;&lt;/td&gt;&lt;td&gt;XXX&lt;/td&gt;&lt;td&gt;XXX&lt;/td&gt;
&gt; +        &lt;/tr&gt;
&gt; +        &lt;tr&gt;
&gt; +             &lt;td&gt;XXX&lt;/td&gt;&lt;td&gt;XXX&lt;/td&gt;&lt;td&gt;XXX&lt;/td&gt;&lt;td&gt;XXX&lt;/td&gt;
&gt; +        &lt;/tr&gt;

Not totally sure about this one but you could check that the first row (the first td XXX) matches the height of the image as this is required for baseline alignment.

&gt; LayoutTests/fast/css/vertical-align-baseline-rowspan-011.html:21
&gt; +             &lt;td&gt;XXX&lt;/td&gt;&lt;td&gt;XXX&lt;/td&gt;&lt;td rowspan=&quot;2&quot;&gt;&lt;img src=&quot;resources/greenbox-100px.png&quot;&gt;&lt;/td&gt;&lt;td&gt;XXX&lt;/td&gt;&lt;td&gt;XXX&lt;/td&gt;

This could be converted to a layout-only test easily: you want the first row to match the size of the rowspan (the second is effectively 0 sized).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817163</commentid>
    <comment_count>9</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-01-26 01:32:25 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 183808 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=183808&amp;action=review
&gt; 
&gt; r=me, if you can make the test not ref-tests, you get extra bonus points but I will let you see if my suggestions work / make any sense.

I&apos;m more comfortable with ref-tests for these two as the reference results can check for the baseline of the text as well as the height of the row.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817164</commentid>
    <comment_count>10</comment_count>
      <attachid>183808</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-26 01:38:04 -0800</bug_when>
    <thetext>Comment on attachment 183808
Patch

Clearing flags on attachment: 183808

Committed r140907: &lt;http://trac.webkit.org/changeset/140907&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817165</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-26 01:38:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>182144</attachid>
            <date>2013-01-10 08:15:03 -0800</date>
            <delta_ts>2013-01-10 08:15:03 -0800</delta_ts>
            <desc>Reduction</desc>
            <filename>rowspan-reduction.html</filename>
            <type>text/html</type>
            <size>551</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHN0eWxlPgp0ZCB7CiAgdmVydGljYWwtYWxp
Z246YmFzZWxpbmU7CiAgYm9yZGVyOiAxcHggc29saWQgI2Y5MDsKfQo8L3N0eWxlPgo8L2hlYWQ+
Cjxib2R5Pgo8dGFibGU+CiAgPHRib2R5PgogICAgICAgIDx0cj4KICAgICAgICA8dGQ+Q2VsbCB0
ZXh0IFJvdyAxIHl5eTwvdGQ+PHRkPkNlbGwgdGV4dDwvdGQ+PHRkIGNsYXNzPSJzZXBhcmF0b3Ii
IHJvd3NwYW49IjIiPjxpbWcgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2ltYWdlcy9zcnBy
L2xvZ28zdy5wbmciIGFsdD0icGxhY2Vob2xkZXIgaW1hZ2UiIC8+PC90ZD48dGQ+Q2VsbCB0ZXh0
IFJvdyAxIHl5eTwvdGQ+PHRkPkNlbGwgdGV4dDwvdGQ+CiAgICAgICAgPC90cj48dHI+CiAgICAg
ICAgICAgIDx0ZD5DZWxsIHRleHQgUm93IDIgZ2dnPC90ZD48dGQ+Q2VsbCB0ZXh0PC90ZD48dGQ+
Q2VsbCB0ZXh0IFJvdyAyIGdnZzwvdGQ+PHRkPkNlbGwgdGV4dDwvdGQ+CiAgICAgICAgPC90cj4K
ICAgIDwvdGJvZHk+CjwvdGFibGU+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182811</attachid>
            <date>2013-01-15 11:12:29 -0800</date>
            <delta_ts>2013-01-21 11:25:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106571-20130115190928.patch</filename>
            <type>text/plain</type>
            <size>9325</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE4ZjViZmZkYTExOTVj
MDkwZmEzMjQ4Y2U2NjU3MDEyMDM2NGI5Ny4uNzk2NGVmNDNiZGI5MzMyNjA3ZDA2ZGM1YjcxOWZl
ZmRjZDI2NjZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAxLTE1ICBSb2Jl
cnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMjA2
MTYpOiBDZWxsJ3MgbG9naWNhbCBoZWlnaHQgd3JvbmdseSBjb21wdXRlZCB3aXRoIHZlcnRpY2Fs
LWFsaWduOiBiYXNlbGluZSBhbmQgcm93c3BhbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhIGNlbGwgc3BhbnMgbXVsdGlwbGUgcm93cywgaXRz
IGJhc2VsaW5lIGlzIHNldCBvbiB0aGUgZmlyc3Qgcm93IGl0IHNwYW5zLiByMTIwNjE2IGNvbnRh
aW5lZCBhCisgICAgICAgIGNvdXBsZSBvZiBlcnJvcnMgaW4gaXRzIGF0dGVtcHQgdG8gZW5zdXJl
IHRoZSByb3cgaGVpZ2h0IGNhbGN1bGF0ZWQgaW4gc3VjaCBjYXNlcyB3YXMgY29ycmVjdC4gV2hl
biBpdAorICAgICAgICBjYWxjdWxhdGVkIHRoZSBiYXNlbGluZSBvbiB0aGUgZmlyc3Qgcm93IGlu
IHRoZSBzcGFuLCBpdCBkaWRuJ3QgZW5zdXJlIHRoYXQgdGhlIHJvdyBoZWlnaHQgd2FzIGluY3Jl
YXNlZAorICAgICAgICBpZiBuZWNlc3NhcnkuIEl0IGFsc28gc3VmZmVyZWQgZnJvbSBhbGxvd2lu
ZyB0aGUgYmFzZWxpbmUgZGVzY2VudCBjYWxjdWxhdGVkIG9uIGEgcm93c3BhbiB0byBhZmZlY3Qg
dGhlCisgICAgICAgIGhlaWdodCBvZiB0aGUgb3RoZXIgY2VsbHMgaW4gdGhlIGZpcnN0IHJvdyBv
ZiB0aGUgc3Bhbi4KKworICAgICAgICBGaXggYm90aCBvZiB0aGVzZSBlcnJvcnMgaW4gY2FsY1Jv
d0xvZ2ljYWxIZWlnaHQoKSBhbmQgcmVmYWN0b3IgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBiYXNl
bGluZSBhbmQgYmFzZWxpbmUKKyAgICAgICAgZGVzY2VudCBzbyB0aGF0IGl0IGlzIGZyZWVzdGFu
ZGluZyAocmF0aGVyIHRoYW4gZGVwZW5kaW5nIG9uIHRoZSBoZWlnaHQgb2YgdGhlIHNlY3Rpb24g
c28gZmFyKS4gCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzL3ZlcnRpY2FsLWFsaWduLWJhc2Vs
aW5lLXJvd3NwYW4tMDEwLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzL3ZlcnRpY2FsLWFs
aWduLWJhc2VsaW5lLXJvd3NwYW4tMDExLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUYWJsZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9u
OjpjYWxjUm93TG9naWNhbEhlaWdodCk6CisKIDIwMTMtMDEtMDkgIFJvYmVydCBIb2dhbiAgPHJv
YmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIEF2YWlsYWJsZSBoZWlnaHQgc2hvdWxkIHJlc3Bl
Y3QgbWluIGFuZCBtYXggaGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZVNlY3Rpb24uY3BwCmluZGV4IGVmOTJiOTA5NzJlYTdiNTFiNDJjNzA1MzM1MmIzMThi
NGNmOTEyYmEuLmVjYThhZjk3YTMxYjczY2Q3NDc0ODYxMWM0YTkyYzQ4MWUyZGY2ZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCkBAIC0z
MTgsMjMgKzMxOCwyNCBAQCBpbnQgUmVuZGVyVGFibGVTZWN0aW9uOjpjYWxjUm93TG9naWNhbEhl
aWdodCgpCiAgICAgICAgICAgICAgICAgaW50IGNlbGxMb2dpY2FsSGVpZ2h0ID0gY2VsbC0+bG9n
aWNhbEhlaWdodEZvclJvd1NpemluZygpOwogICAgICAgICAgICAgICAgIG1fcm93UG9zW3IgKyAx
XSA9IG1heChtX3Jvd1Bvc1tyICsgMV0sIG1fcm93UG9zW2NlbGxTdGFydFJvd10gKyBjZWxsTG9n
aWNhbEhlaWdodCk7CiAKLSAgICAgICAgICAgICAgICAvLyBmaW5kIG91dCB0aGUgYmFzZWxpbmUK
KyAgICAgICAgICAgICAgICAvLyBGaW5kIG91dCB0aGUgYmFzZWxpbmUuIFRoZSBiYXNlbGluZSBp
cyBzZXQgb24gdGhlIGZpcnN0IHJvdyBpbiBhIHJvd3NwYW4uCiAgICAgICAgICAgICAgICAgRVZl
cnRpY2FsQWxpZ24gdmEgPSBjZWxsLT5zdHlsZSgpLT52ZXJ0aWNhbEFsaWduKCk7CiAgICAgICAg
ICAgICAgICAgaWYgKHZhID09IEJBU0VMSU5FIHx8IHZhID09IFRFWFRfQk9UVE9NIHx8IHZhID09
IFRFWFRfVE9QIHx8IHZhID09IFNVUEVSIHx8IHZhID09IFNVQiB8fCB2YSA9PSBMRU5HVEgpIHsK
ICAgICAgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uID0gY2VsbC0+
Y2VsbEJhc2VsaW5lUG9zaXRpb24oKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJhc2VsaW5l
UG9zaXRpb24gPiBjZWxsLT5ib3JkZXJCZWZvcmUoKSArIGNlbGwtPnBhZGRpbmdCZWZvcmUoKSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgbV9ncmlkW2NlbGxTdGFydFJvd10uYmFzZWxpbmUg
PSBtYXgobV9ncmlkW2NlbGxTdGFydFJvd10uYmFzZWxpbmUsIGJhc2VsaW5lUG9zaXRpb24gLSBj
ZWxsLT5pbnRyaW5zaWNQYWRkaW5nQmVmb3JlKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YmFzZWxpbmVEZXNjZW50ID0gbWF4KGJhc2VsaW5lRGVzY2VudCwgbV9yb3dQb3NbY2VsbFN0YXJ0
Um93XSArIGNlbGxMb2dpY2FsSGVpZ2h0IC0gKGJhc2VsaW5lUG9zaXRpb24gLSBjZWxsLT5pbnRy
aW5zaWNQYWRkaW5nQmVmb3JlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JpZFtj
ZWxsU3RhcnRSb3ddLmJhc2VsaW5lID0gbWF4KG1fZ3JpZFtjZWxsU3RhcnRSb3ddLmJhc2VsaW5l
LCBiYXNlbGluZVBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBkZXNj
ZW50IG9mIGEgY2VsbCB0aGF0IHNwYW5zIG11bHRpcGxlIHJvd3MgZG9lcyBub3QgYWZmZWN0IHRo
ZSBoZWlnaHQgb2YgdGhlIGZpcnN0IHJvdyBpdCBzcGFucywgc28gZG9uJ3QgbGV0IGl0CisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBiZWNvbWUgdGhlIGJhc2VsaW5lIGRlc2NlbnQgYXBwbGll
ZCB0byB0aGUgcmVzdCBvZiB0aGUgcm93LiAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChj
ZWxsLT5yb3dTcGFuKCkgPT0gMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlbGlu
ZURlc2NlbnQgPSBtYXgoYmFzZWxpbmVEZXNjZW50LCBjZWxsTG9naWNhbEhlaWdodCAtIChiYXNl
bGluZVBvc2l0aW9uIC0gY2VsbC0+aW50cmluc2ljUGFkZGluZ0JlZm9yZSgpKSk7CiAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gSW5j
cmVhc2Ugcm93IGhlaWdodCBpZiB0aGUgYmFzZWxpbmUgcmVxdWlyZXMgaXQuIFRoaXMgaXMgYWx3
YXlzIHRoZSBmaXJzdCByb3cgaW4gdGhlIGNhc2Ugb2YgYSByb3dzcGFuLgorICAgICAgICAgICAg
ICAgIGlmIChtX2dyaWRbY2VsbFN0YXJ0Um93XS5iYXNlbGluZSkKKyAgICAgICAgICAgICAgICAg
ICAgbV9yb3dQb3NbY2VsbFN0YXJ0Um93ICsgMV0gPSBtYXg8aW50PihtX3Jvd1Bvc1tjZWxsU3Rh
cnRSb3cgKyAxXSwgbV9yb3dQb3NbY2VsbFN0YXJ0Um93XSArIG1fZ3JpZFtjZWxsU3RhcnRSb3dd
LmJhc2VsaW5lICsgYmFzZWxpbmVEZXNjZW50KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
Ci0gICAgICAgIC8vIGRvIHdlIGhhdmUgYmFzZWxpbmUgYWxpZ25lZCBlbGVtZW50cz8KLSAgICAg
ICAgaWYgKG1fZ3JpZFtyXS5iYXNlbGluZSkKLSAgICAgICAgICAgIC8vIGluY3JlYXNlIHJvd2hl
aWdodCBpZiBiYXNlbGluZSByZXF1aXJlcwotICAgICAgICAgICAgbV9yb3dQb3NbciArIDFdID0g
bWF4PGludD4obV9yb3dQb3NbciArIDFdLCBtX2dyaWRbcl0uYmFzZWxpbmUgKyBiYXNlbGluZURl
c2NlbnQpOwotCiAgICAgICAgIC8vIEFkZCB0aGUgYm9yZGVyLXNwYWNpbmcgdG8gb3VyIGZpbmFs
IHBvc2l0aW9uLgogICAgICAgICBtX3Jvd1Bvc1tyICsgMV0gKz0gbV9ncmlkW3JdLnJvd1JlbmRl
cmVyID8gc3BhY2luZyA6IDA7CiAgICAgICAgIG1fcm93UG9zW3IgKyAxXSA9IG1heChtX3Jvd1Bv
c1tyICsgMV0sIG1fcm93UG9zW3JdKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxODI1YzY4MjdjZjQwYTkwMjYyZjE1MjI3
ZGUzYTExMTZkYWVjMTZiLi45YWUwYjc0Y2FiOTI4ZjMzYWY3OTE3MDdlY2Y0YjllNzFhMTM0ZmJk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDEtMTUgIFJvYmVydCBIb2dhbiAgPHJvYmVy
dEB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjEyMDYxNik6IENlbGwncyBsb2dp
Y2FsIGhlaWdodCB3cm9uZ2x5IGNvbXB1dGVkIHdpdGggdmVydGljYWwtYWxpZ246IGJhc2VsaW5l
IGFuZCByb3dzcGFuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDY1NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvY3NzL3ZlcnRpY2FsLWFsaWduLWJhc2VsaW5lLXJvd3NwYW4tMDEwLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3ZlcnRpY2FsLWFsaWduLWJhc2Vs
aW5lLXJvd3NwYW4tMDEwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3ZlcnRpY2Fs
LWFsaWduLWJhc2VsaW5lLXJvd3NwYW4tMDExLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL3ZlcnRpY2FsLWFsaWduLWJhc2VsaW5lLXJvd3NwYW4tMDExLmh0bWw6IEFk
ZGVkLgorCiAyMDEzLTAxLTA5ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBBdmFpbGFibGUgaGVpZ2h0IHNob3VsZCByZXNwZWN0IG1pbiBhbmQgbWF4IGhlaWdo
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdmVydGljYWwtYWxpZ24tYmFzZWxp
bmUtcm93c3Bhbi0wMTAtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3ZlcnRp
Y2FsLWFsaWduLWJhc2VsaW5lLXJvd3NwYW4tMDEwLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGM4ZDI4OGJiNDdiMDI1OWQzNzM0ZTFmZmZiYmY5MTVmMWJhMTE1OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3ZlcnRpY2FsLWFsaWduLWJhc2VsaW5lLXJvd3NwYW4t
MDEwLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlPgorICAgIHRkIHsKKyAgICAgICAgdmVydGljYWwtYWxpZ246YmFz
ZWxpbmU7CisgICAgICAgIGZvbnQ6IDIwcHgvMSBBaGVtOworICAgIH0KKyAgICBpbWcgeworICAg
ICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NTcxOiAgVGhlIGJh
c2VsaW5lIG9mIHRoZSBmaXJzdCByb3cgb2YgY2VsbHMgc2hvdWxkIGJlIGFsaWduZWQgd2l0aCB0
aGUgYmFzZWxpbmUgb2YgdGhlIGJvdHRvbSBvZiB0aGUgZ3JlZW4gYm94LjwvcD4KKzx0YWJsZT4K
KyAgICA8dGJvZHk+CisgICAgICAgIDx0cj4KKyAgICAgICAgICAgICA8dGQ+WFhYPC90ZD48dGQ+
WFhYPC90ZD48dGQ+PGltZz48L3RkPjx0ZD5YWFg8L3RkPjx0ZD5YWFg8L3RkPgorICAgICAgICA8
L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgICAgPHRkPlhYWDwvdGQ+PHRkPlhYWDwvdGQ+
PHRkPjwvdGQ+PHRkPlhYWDwvdGQ+PHRkPlhYWDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgPC90
Ym9keT4KKzwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3ZlcnRpY2FsLWFsaWduLWJhc2VsaW5lLXJvd3NwYW4tMDEwLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy92ZXJ0aWNhbC1hbGlnbi1iYXNlbGluZS1yb3dzcGFuLTAxMC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjMxNzZmMTNiYzBhM2M3MDY1N2JiMmFlYzk0MGMyNWE1NWM4ODYxZjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy92ZXJ0aWNhbC1hbGlnbi1i
YXNlbGluZS1yb3dzcGFuLTAxMC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICB0ZCB7CisgICAgICAgIHZlcnRpY2FsLWFs
aWduOmJhc2VsaW5lOworICAgICAgICBmb250OiAyMHB4LzEgQWhlbTsKKyAgICB9CisgICAgaW1n
IHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8cD4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjU3MTog
IFRoZSBiYXNlbGluZSBvZiB0aGUgZmlyc3Qgcm93IG9mIGNlbGxzIHNob3VsZCBiZSBhbGlnbmVk
IHdpdGggdGhlIGJhc2VsaW5lIG9mIHRoZSBib3R0b20gb2YgdGhlIGdyZWVuIGJveC48L3A+Cis8
dGFibGU+CisgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgICAgPHRkPlhYWDwv
dGQ+PHRkPlhYWDwvdGQ+PHRkIHJvd3NwYW49IjIiPjxpbWc+PC90ZD48dGQ+WFhYPC90ZD48dGQ+
WFhYPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgICAgIDx0ZD5Y
WFg8L3RkPjx0ZD5YWFg8L3RkPjx0ZD5YWFg8L3RkPjx0ZD5YWFg8L3RkPgorICAgICAgICA8L3Ry
PgorICAgIDwvdGJvZHk+Cis8L3RhYmxlPgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy92ZXJ0aWNhbC1hbGlnbi1iYXNlbGluZS1yb3dzcGFuLTAx
MS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdmVydGljYWwtYWxpZ24tYmFz
ZWxpbmUtcm93c3Bhbi0wMTEtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjBjNDZmNjg3NmQx
Y2ViYWViMGZhN2QxN2U3ODA3YzMzMWMyMjhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvdmVydGljYWwtYWxpZ24tYmFzZWxpbmUtcm93c3Bhbi0wMTEtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+CisgICAgdGQgeworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTsKKyAgICAg
ICAgYm9yZGVyOiAxcHggc29saWQgI2Y5MDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cD4gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjU3MTogIFRoZSBiYXNlbGluZSBv
ZiB0aGUgZmlyc3Qgcm93IG9mIGNlbGxzIHNob3VsZCBiZSBhbGlnbmVkIHdpdGggdGhlIGJhc2Vs
aW5lIG9mIHRoZSBib3R0b20gb2YgdGhlIGdyZWVuIGJveC48L3A+Cis8dGFibGU+CisgICAgPHRi
b2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgICAgPHRkPlhYWDwvdGQ+PHRkPlhYWDwvdGQ+
PHRkPjxpbWcgc3JjPSJyZXNvdXJjZXMvZ3JlZW5ib3gtMTAwcHgucG5nIj48L3RkPjx0ZD5YWFg8
L3RkPjx0ZD5YWFg8L3RkPgorICAgICAgICA8L3RyPgorICAgIDwvdGJvZHk+Cis8L3RhYmxlPgor
PC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy92ZXJ0
aWNhbC1hbGlnbi1iYXNlbGluZS1yb3dzcGFuLTAxMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvdmVydGljYWwtYWxpZ24tYmFzZWxpbmUtcm93c3Bhbi0wMTEuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
Y2JiNDFmYTFiZmE2N2M1NTkyMzNmOWRiZjNlOTE2ZjQ1MjJiZTY0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdmVydGljYWwtYWxpZ24tYmFzZWxpbmUtcm93c3Bhbi0w
MTEuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c3R5bGU+CisgICAgdGQgeworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTsKKyAg
ICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Y5MDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cD4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjU3MTogIFRoZSBiYXNlbGlu
ZSBvZiB0aGUgZmlyc3Qgcm93IG9mIGNlbGxzIHNob3VsZCBiZSBhbGlnbmVkIHdpdGggdGhlIGJh
c2VsaW5lIG9mIHRoZSBib3R0b20gb2YgdGhlIGdyZWVuIGJveC48L3A+Cis8dGFibGU+CisgICAg
PHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgICAgPHRkPlhYWDwvdGQ+PHRkPlhYWDwv
dGQ+PHRkIHJvd3NwYW49IjIiPjxpbWcgc3JjPSJyZXNvdXJjZXMvZ3JlZW5ib3gtMTAwcHgucG5n
Ij48L3RkPjx0ZD5YWFg8L3RkPjx0ZD5YWFg8L3RkPgorICAgICAgICA8L3RyPgorICAgIDwvdGJv
ZHk+Cis8L3RhYmxlPgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183808</attachid>
            <date>2013-01-21 11:25:38 -0800</date>
            <delta_ts>2013-01-26 01:38:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106571-20130121192232.patch</filename>
            <type>text/plain</type>
            <size>9163</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVlMDljZjY3NDJiNjMz
MDdiZGQxYmJhNTEyNmFkNzYyOTdkMjQ0OS4uMDljYmVmZGU3N2FmMWUzZThhZGQxZWM3YmQxMjQy
MzAwNjQyYjM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAxLTE1ICBSb2Jl
cnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMjA2
MTYpOiBDZWxsJ3MgbG9naWNhbCBoZWlnaHQgd3JvbmdseSBjb21wdXRlZCB3aXRoIHZlcnRpY2Fs
LWFsaWduOiBiYXNlbGluZSBhbmQgcm93c3BhbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhIGNlbGwgc3BhbnMgbXVsdGlwbGUgcm93cywgaXRz
IGJhc2VsaW5lIGlzIHNldCBvbiB0aGUgZmlyc3Qgcm93IGl0IHNwYW5zLiByMTIwNjE2IGNvbnRh
aW5lZCBhCisgICAgICAgIGNvdXBsZSBvZiBlcnJvcnMgaW4gaXRzIGF0dGVtcHQgdG8gZW5zdXJl
IHRoZSByb3cgaGVpZ2h0IGNhbGN1bGF0ZWQgaW4gc3VjaCBjYXNlcyB3YXMgY29ycmVjdC4gV2hl
biBpdAorICAgICAgICBjYWxjdWxhdGVkIHRoZSBiYXNlbGluZSBvbiB0aGUgZmlyc3Qgcm93IGlu
IHRoZSBzcGFuLCBpdCBkaWRuJ3QgZW5zdXJlIHRoYXQgdGhlIHJvdyBoZWlnaHQgd2FzIGluY3Jl
YXNlZAorICAgICAgICBpZiBuZWNlc3NhcnkuIEl0IGFsc28gc3VmZmVyZWQgZnJvbSBhbGxvd2lu
ZyB0aGUgYmFzZWxpbmUgZGVzY2VudCBjYWxjdWxhdGVkIG9uIGEgcm93c3BhbiB0byBhZmZlY3Qg
dGhlCisgICAgICAgIGhlaWdodCBvZiB0aGUgb3RoZXIgY2VsbHMgaW4gdGhlIGZpcnN0IHJvdyBv
ZiB0aGUgc3Bhbi4KKworICAgICAgICBGaXggYm90aCBvZiB0aGVzZSBlcnJvcnMgaW4gY2FsY1Jv
d0xvZ2ljYWxIZWlnaHQoKSBhbmQgcmVmYWN0b3IgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBiYXNl
bGluZSBhbmQgYmFzZWxpbmUKKyAgICAgICAgZGVzY2VudCBzbyB0aGF0IGl0IGlzIGZyZWVzdGFu
ZGluZyAocmF0aGVyIHRoYW4gZGVwZW5kaW5nIG9uIHRoZSBoZWlnaHQgb2YgdGhlIHNlY3Rpb24g
c28gZmFyKS4gCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzL3ZlcnRpY2FsLWFsaWduLWJhc2Vs
aW5lLXJvd3NwYW4tMDEwLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzL3ZlcnRpY2FsLWFs
aWduLWJhc2VsaW5lLXJvd3NwYW4tMDExLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUYWJsZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9u
OjpjYWxjUm93TG9naWNhbEhlaWdodCk6CisKIDIwMTMtMDEtMTggIENocmlzIEhvcG1hbiAgPGNq
aG9wbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgRml4IHNjcm9sbFJlY3RUb1Zpc2libGUgaW4g
dGhlIHByZXNlbmNlIG9mIHRyYW5zZm9ybXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKaW5kZXggZjM0YzcwZDE1OTBmYmZjMTU3Y2U4YTJmZmI5
MWU3N2RlZWRhZTc1Ny4uOGZhYzIzOGQwMDYyMzE2MTg5ZWU4NjE1MDY0ZmM0NzJiMDcxYTkwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAK
QEAgLTMxOCwyMyArMzE4LDIyIEBAIGludCBSZW5kZXJUYWJsZVNlY3Rpb246OmNhbGNSb3dMb2dp
Y2FsSGVpZ2h0KCkKICAgICAgICAgICAgICAgICBpbnQgY2VsbExvZ2ljYWxIZWlnaHQgPSBjZWxs
LT5sb2dpY2FsSGVpZ2h0Rm9yUm93U2l6aW5nKCk7CiAgICAgICAgICAgICAgICAgbV9yb3dQb3Nb
ciArIDFdID0gbWF4KG1fcm93UG9zW3IgKyAxXSwgbV9yb3dQb3NbY2VsbFN0YXJ0Um93XSArIGNl
bGxMb2dpY2FsSGVpZ2h0KTsKIAotICAgICAgICAgICAgICAgIC8vIGZpbmQgb3V0IHRoZSBiYXNl
bGluZQorICAgICAgICAgICAgICAgIC8vIEZpbmQgb3V0IHRoZSBiYXNlbGluZS4gVGhlIGJhc2Vs
aW5lIGlzIHNldCBvbiB0aGUgZmlyc3Qgcm93IGluIGEgcm93c3Bhbi4KICAgICAgICAgICAgICAg
ICBFVmVydGljYWxBbGlnbiB2YSA9IGNlbGwtPnN0eWxlKCktPnZlcnRpY2FsQWxpZ24oKTsKICAg
ICAgICAgICAgICAgICBpZiAodmEgPT0gQkFTRUxJTkUgfHwgdmEgPT0gVEVYVF9CT1RUT00gfHwg
dmEgPT0gVEVYVF9UT1AgfHwgdmEgPT0gU1VQRVIgfHwgdmEgPT0gU1VCIHx8IHZhID09IExFTkdU
SCkgewogICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24gPSBj
ZWxsLT5jZWxsQmFzZWxpbmVQb3NpdGlvbigpOwogICAgICAgICAgICAgICAgICAgICBpZiAoYmFz
ZWxpbmVQb3NpdGlvbiA+IGNlbGwtPmJvcmRlckJlZm9yZSgpICsgY2VsbC0+cGFkZGluZ0JlZm9y
ZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtX2dyaWRbY2VsbFN0YXJ0Um93XS5iYXNl
bGluZSA9IG1heChtX2dyaWRbY2VsbFN0YXJ0Um93XS5iYXNlbGluZSwgYmFzZWxpbmVQb3NpdGlv
biAtIGNlbGwtPmludHJpbnNpY1BhZGRpbmdCZWZvcmUoKSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBiYXNlbGluZURlc2NlbnQgPSBtYXgoYmFzZWxpbmVEZXNjZW50LCBtX3Jvd1Bvc1tjZWxs
U3RhcnRSb3ddICsgY2VsbExvZ2ljYWxIZWlnaHQgLSAoYmFzZWxpbmVQb3NpdGlvbiAtIGNlbGwt
PmludHJpbnNpY1BhZGRpbmdCZWZvcmUoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbV9n
cmlkW2NlbGxTdGFydFJvd10uYmFzZWxpbmUgPSBtYXgobV9ncmlkW2NlbGxTdGFydFJvd10uYmFz
ZWxpbmUsIGJhc2VsaW5lUG9zaXRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhl
IGRlc2NlbnQgb2YgYSBjZWxsIHRoYXQgc3BhbnMgbXVsdGlwbGUgcm93cyBkb2VzIG5vdCBhZmZl
Y3QgdGhlIGhlaWdodCBvZiB0aGUgZmlyc3Qgcm93IGl0IHNwYW5zLCBzbyBkb24ndCBsZXQgaXQK
KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlY29tZSB0aGUgYmFzZWxpbmUgZGVzY2VudCBh
cHBsaWVkIHRvIHRoZSByZXN0IG9mIHRoZSByb3cuIAorICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGNlbGwtPnJvd1NwYW4oKSA9PSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJh
c2VsaW5lRGVzY2VudCA9IG1heChiYXNlbGluZURlc2NlbnQsIGNlbGxMb2dpY2FsSGVpZ2h0IC0g
KGJhc2VsaW5lUG9zaXRpb24gLSBjZWxsLT5pbnRyaW5zaWNQYWRkaW5nQmVmb3JlKCkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcm93UG9zW2NlbGxTdGFydFJvdyArIDFdID0gbWF4PGlu
dD4obV9yb3dQb3NbY2VsbFN0YXJ0Um93ICsgMV0sIG1fcm93UG9zW2NlbGxTdGFydFJvd10gKyBt
X2dyaWRbY2VsbFN0YXJ0Um93XS5iYXNlbGluZSArIGJhc2VsaW5lRGVzY2VudCk7CiAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIAotICAgICAgICAvLyBkbyB3ZSBoYXZlIGJhc2VsaW5lIGFsaWduZWQgZWxlbWVudHM/Ci0g
ICAgICAgIGlmIChtX2dyaWRbcl0uYmFzZWxpbmUpCi0gICAgICAgICAgICAvLyBpbmNyZWFzZSBy
b3doZWlnaHQgaWYgYmFzZWxpbmUgcmVxdWlyZXMKLSAgICAgICAgICAgIG1fcm93UG9zW3IgKyAx
XSA9IG1heDxpbnQ+KG1fcm93UG9zW3IgKyAxXSwgbV9ncmlkW3JdLmJhc2VsaW5lICsgYmFzZWxp
bmVEZXNjZW50KTsKLQogICAgICAgICAvLyBBZGQgdGhlIGJvcmRlci1zcGFjaW5nIHRvIG91ciBm
aW5hbCBwb3NpdGlvbi4KICAgICAgICAgbV9yb3dQb3NbciArIDFdICs9IG1fZ3JpZFtyXS5yb3dS
ZW5kZXJlciA/IHNwYWNpbmcgOiAwOwogICAgICAgICBtX3Jvd1Bvc1tyICsgMV0gPSBtYXgobV9y
b3dQb3NbciArIDFdLCBtX3Jvd1Bvc1tyXSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmQzMWJkMTcwNDcyOWVhNTA5Y2My
MWEzZTI3NGEyNmQ5OGExYmY5Ni4uZWU0ZTJjN2EyNmM1NDA0Y2IxODk3MTc1M2ZiNzAwMTZhNjM1
ZDVmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAxLTE1ICBSb2JlcnQgSG9nYW4gIDxy
b2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMjA2MTYpOiBDZWxsJ3Mg
bG9naWNhbCBoZWlnaHQgd3JvbmdseSBjb21wdXRlZCB3aXRoIHZlcnRpY2FsLWFsaWduOiBiYXNl
bGluZSBhbmQgcm93c3BhbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA2NTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2Nzcy92ZXJ0aWNhbC1hbGlnbi1iYXNlbGluZS1yb3dzcGFuLTAxMC1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy92ZXJ0aWNhbC1hbGlnbi1i
YXNlbGluZS1yb3dzcGFuLTAxMC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy92ZXJ0
aWNhbC1hbGlnbi1iYXNlbGluZS1yb3dzcGFuLTAxMS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Nzcy92ZXJ0aWNhbC1hbGlnbi1iYXNlbGluZS1yb3dzcGFuLTAxMS5odG1s
OiBBZGRlZC4KKwogMjAxMy0wMS0xOCAgQ2hyaXMgSG9wbWFuICA8Y2pob3BtYW5AZ29vZ2xlLmNv
bT4KIAogICAgICAgICBGaXggc2Nyb2xsUmVjdFRvVmlzaWJsZSBpbiB0aGUgcHJlc2VuY2Ugb2Yg
dHJhbnNmb3JtcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdmVydGljYWwtYWxp
Z24tYmFzZWxpbmUtcm93c3Bhbi0wMTAtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL3ZlcnRpY2FsLWFsaWduLWJhc2VsaW5lLXJvd3NwYW4tMDEwLWV4cGVjdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGM4ZDI4OGJiNDdiMDI1OWQzNzM0ZTFmZmZiYmY5MTVmMWJhMTE1OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3ZlcnRpY2FsLWFsaWduLWJhc2VsaW5l
LXJvd3NwYW4tMDEwLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgIHRkIHsKKyAgICAgICAgdmVydGljYWwt
YWxpZ246YmFzZWxpbmU7CisgICAgICAgIGZvbnQ6IDIwcHgvMSBBaGVtOworICAgIH0KKyAgICBp
bWcgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NTcx
OiAgVGhlIGJhc2VsaW5lIG9mIHRoZSBmaXJzdCByb3cgb2YgY2VsbHMgc2hvdWxkIGJlIGFsaWdu
ZWQgd2l0aCB0aGUgYmFzZWxpbmUgb2YgdGhlIGJvdHRvbSBvZiB0aGUgZ3JlZW4gYm94LjwvcD4K
Kzx0YWJsZT4KKyAgICA8dGJvZHk+CisgICAgICAgIDx0cj4KKyAgICAgICAgICAgICA8dGQ+WFhY
PC90ZD48dGQ+WFhYPC90ZD48dGQ+PGltZz48L3RkPjx0ZD5YWFg8L3RkPjx0ZD5YWFg8L3RkPgor
ICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgICAgPHRkPlhYWDwvdGQ+PHRk
PlhYWDwvdGQ+PHRkPjwvdGQ+PHRkPlhYWDwvdGQ+PHRkPlhYWDwvdGQ+CisgICAgICAgIDwvdHI+
CisgICAgPC90Ym9keT4KKzwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3ZlcnRpY2FsLWFsaWduLWJhc2VsaW5lLXJvd3NwYW4tMDEw
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy92ZXJ0aWNhbC1hbGlnbi1iYXNlbGluZS1yb3dz
cGFuLTAxMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxNzZmMTNiYzBhM2M3MDY1N2JiMmFlYzk0MGMyNWE1
NWM4ODYxZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy92ZXJ0aWNh
bC1hbGlnbi1iYXNlbGluZS1yb3dzcGFuLTAxMC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICB0ZCB7CisgICAgICAgIHZl
cnRpY2FsLWFsaWduOmJhc2VsaW5lOworICAgICAgICBmb250OiAyMHB4LzEgQWhlbTsKKyAgICB9
CisgICAgaW1nIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4
OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+Cis8cD4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNjU3MTogIFRoZSBiYXNlbGluZSBvZiB0aGUgZmlyc3Qgcm93IG9mIGNlbGxzIHNob3VsZCBi
ZSBhbGlnbmVkIHdpdGggdGhlIGJhc2VsaW5lIG9mIHRoZSBib3R0b20gb2YgdGhlIGdyZWVuIGJv
eC48L3A+Cis8dGFibGU+CisgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgICAg
PHRkPlhYWDwvdGQ+PHRkPlhYWDwvdGQ+PHRkIHJvd3NwYW49IjIiPjxpbWc+PC90ZD48dGQ+WFhY
PC90ZD48dGQ+WFhYPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAg
ICAgIDx0ZD5YWFg8L3RkPjx0ZD5YWFg8L3RkPjx0ZD5YWFg8L3RkPjx0ZD5YWFg8L3RkPgorICAg
ICAgICA8L3RyPgorICAgIDwvdGJvZHk+Cis8L3RhYmxlPgorPC9ib2R5PgorPC9odG1sPgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy92ZXJ0aWNhbC1hbGlnbi1iYXNlbGluZS1y
b3dzcGFuLTAxMS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdmVydGljYWwt
YWxpZ24tYmFzZWxpbmUtcm93c3Bhbi0wMTEtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjBj
NDZmNjg3NmQxY2ViYWViMGZhN2QxN2U3ODA3YzMzMWMyMjhlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvdmVydGljYWwtYWxpZ24tYmFzZWxpbmUtcm93c3Bhbi0wMTEt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+CisgICAgdGQgeworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjpiYXNlbGlu
ZTsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Y5MDsKKyAgICB9CisgICAgaW1nIHsKKyAg
ICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8
cD4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjU3MTogIFRoZSBi
YXNlbGluZSBvZiB0aGUgZmlyc3Qgcm93IG9mIGNlbGxzIHNob3VsZCBiZSBhbGlnbmVkIHdpdGgg
dGhlIGJhc2VsaW5lIG9mIHRoZSBib3R0b20gb2YgdGhlIGdyZWVuIGJveC48L3A+Cis8dGFibGU+
CisgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgICAgPHRkPlhYWDwvdGQ+PHRk
PlhYWDwvdGQ+PHRkPjxpbWcgc3JjPSJyZXNvdXJjZXMvZ3JlZW5ib3gtMTAwcHgucG5nIj48L3Rk
Pjx0ZD5YWFg8L3RkPjx0ZD5YWFg8L3RkPgorICAgICAgICA8L3RyPgorICAgIDwvdGJvZHk+Cis8
L3RhYmxlPgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy92ZXJ0aWNhbC1hbGlnbi1iYXNlbGluZS1yb3dzcGFuLTAxMS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvdmVydGljYWwtYWxpZ24tYmFzZWxpbmUtcm93c3Bhbi0wMTEuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41Y2JiNDFmYTFiZmE2N2M1NTkyMzNmOWRiZjNlOTE2ZjQ1MjJiZTY0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdmVydGljYWwtYWxpZ24tYmFzZWxpbmUt
cm93c3Bhbi0wMTEuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+CisgICAgdGQgeworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjpiYXNl
bGluZTsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Y5MDsKKyAgICB9CisgICAgaW1nIHsK
KyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8cD4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjU3MTogIFRo
ZSBiYXNlbGluZSBvZiB0aGUgZmlyc3Qgcm93IG9mIGNlbGxzIHNob3VsZCBiZSBhbGlnbmVkIHdp
dGggdGhlIGJhc2VsaW5lIG9mIHRoZSBib3R0b20gb2YgdGhlIGdyZWVuIGJveC48L3A+Cis8dGFi
bGU+CisgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgICAgPHRkPlhYWDwvdGQ+
PHRkPlhYWDwvdGQ+PHRkIHJvd3NwYW49IjIiPjxpbWcgc3JjPSJyZXNvdXJjZXMvZ3JlZW5ib3gt
MTAwcHgucG5nIj48L3RkPjx0ZD5YWFg8L3RkPjx0ZD5YWFg8L3RkPgorICAgICAgICA8L3RyPgor
ICAgIDwvdGJvZHk+Cis8L3RhYmxlPgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>