<?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>103573</bug_id>
          
          <creation_ts>2012-11-28 16:19:43 -0800</creation_ts>
          <short_desc>[CSS Grid Layout] Support implicit rows and columns</short_desc>
          <delta_ts>2013-01-31 16:49:43 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>103332</dependson>
          <blocked>60731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>778465</commentid>
    <comment_count>0</comment_count>
      <attachid>176596</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-28 16:19:43 -0800</bug_when>
    <thetext>Created attachment 176596
Test case

We don&apos;t account for implicit rows and columns in the current code.

After bug 102968 we will crash on the following test case as we try to access past the track vector boundary in RenderGrid::layoutGridItems. I will land a work-around as part of bug 103343 as we were hitting this but we still won&apos;t properly handle the positioning properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786514</commentid>
    <comment_count>1</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2012-12-08 08:24:05 -0800</bug_when>
    <thetext>This seems simple enough except for the small detail that implicit columns or rows are supposedly created with &apos;auto&apos; size (minmax(min-content,max-content)), so I think to properly implement this we first need bug #103332.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820393</commentid>
    <comment_count>2</comment_count>
      <attachid>185533</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-30 12:06:31 -0800</bug_when>
    <thetext>Created attachment 185533
Proposed implementation: Requires auto sizing to pass EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820462</commentid>
    <comment_count>3</comment_count>
      <attachid>185533</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-01-30 13:18:04 -0800</bug_when>
    <thetext>Comment on attachment 185533
Proposed implementation: Requires auto sizing to pass EWS.

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

&gt; Source/WebCore/rendering/RenderGrid.cpp:258
&gt; +        maximumIndex = std::max(maximumIndex, resolveGridPosition(position) + 1);

Can we ever get in this situation other than by not setting grid-rows/grid-columns? If not, then we&apos;d effectively only need to std::max(maximumIndex, 1), right? If there are cases where we need this loop, do we have test coverage for those cases?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820490</commentid>
    <comment_count>4</comment_count>
      <attachid>185533</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-30 13:32:28 -0800</bug_when>
    <thetext>Comment on attachment 185533
Proposed implementation: Requires auto sizing to pass EWS.

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

&gt;&gt; Source/WebCore/rendering/RenderGrid.cpp:258
&gt;&gt; +        maximumIndex = std::max(maximumIndex, resolveGridPosition(position) + 1);
&gt; 
&gt; Can we ever get in this situation other than by not setting grid-rows/grid-columns? If not, then we&apos;d effectively only need to std::max(maximumIndex, 1), right? If there are cases where we need this loop, do we have test coverage for those cases?

Nothing prevents people from putting a grid item in a random grid area, regardless of what is specified on the grid element&apos;s. See http://www.w3.org/TR/css3-grid-layout/#implicit-columns-and-rows for a self-contained example of that.

The tests are covering this situation but I can add something similar to the specification example if you think this would be less confusing.

Also we should probably cache this information as it is tied to changing the grid items&apos; or grid element&apos;s style but I didn&apos;t want a deep change for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820630</commentid>
    <comment_count>5</comment_count>
      <attachid>185533</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-01-30 14:54:11 -0800</bug_when>
    <thetext>Comment on attachment 185533
Proposed implementation: Requires auto sizing to pass EWS.

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderGrid.cpp:258
&gt;&gt;&gt; +        maximumIndex = std::max(maximumIndex, resolveGridPosition(position) + 1);
&gt;&gt; 
&gt;&gt; Can we ever get in this situation other than by not setting grid-rows/grid-columns? If not, then we&apos;d effectively only need to std::max(maximumIndex, 1), right? If there are cases where we need this loop, do we have test coverage for those cases?
&gt; 
&gt; Nothing prevents people from putting a grid item in a random grid area, regardless of what is specified on the grid element&apos;s. See http://www.w3.org/TR/css3-grid-layout/#implicit-columns-and-rows for a self-contained example of that.
&gt; 
&gt; The tests are covering this situation but I can add something similar to the specification example if you think this would be less confusing.
&gt; 
&gt; Also we should probably cache this information as it is tied to changing the grid items&apos; or grid element&apos;s style but I didn&apos;t want a deep change for now.

Got it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821333</commentid>
    <comment_count>6</comment_count>
      <attachid>185533</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-31 03:34:19 -0800</bug_when>
    <thetext>Comment on attachment 185533
Proposed implementation: Requires auto sizing to pass EWS.

Attachment 185533 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16278123</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821590</commentid>
    <comment_count>7</comment_count>
      <attachid>185533</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-31 09:36:04 -0800</bug_when>
    <thetext>Comment on attachment 185533
Proposed implementation: Requires auto sizing to pass EWS.

The win failure seems to be a sick bot. The patch does build on win which means it&apos;s ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822125</commentid>
    <comment_count>8</comment_count>
      <attachid>185533</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 16:49:38 -0800</bug_when>
    <thetext>Comment on attachment 185533
Proposed implementation: Requires auto sizing to pass EWS.

Clearing flags on attachment: 185533

Committed r141505: &lt;http://trac.webkit.org/changeset/141505&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822126</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 16:49:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>176596</attachid>
            <date>2012-11-28 16:19:43 -0800</date>
            <delta_ts>2012-11-28 16:19:43 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>implicit-row-column.html</filename>
            <type>text/html</type>
            <size>671</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHN0eWxlPgouZ3JpZCB7CiAgICBkaXNwbGF5
OiAtd2Via2l0LWdyaWQ7CiAgICB3aWR0aDogMjAwcHg7CiAgICBoZWlnaHQ6IDIwMHB4OwogICAg
YmFja2dyb3VuZC1jb2xvcjogcmVkOwp9CgouZ3JpZEl0ZW0gewogICAgd2lkdGg6IDEwMHB4Owog
ICAgaGVpZ2h0OiAxMDBweDsKICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwp9CgouYSB7CiAg
ICAtd2Via2l0LWdyaWQtcm93OiAxOwogICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogMTsKfQoKLmIg
ewogICAgLXdlYmtpdC1ncmlkLXJvdzogMTsKICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IDI7Cn0K
Ci5jIHsKICAgIC13ZWJraXQtZ3JpZC1yb3c6IDI7CiAgICAtd2Via2l0LWdyaWQtY29sdW1uOiAx
Owp9CgouZCB7CiAgICAtd2Via2l0LWdyaWQtcm93OiAyOwogICAgLXdlYmtpdC1ncmlkLWNvbHVt
bjogMjsKfQoKPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KPGRpdiBjbGFzcz0iZ3JpZCI+CiAgICA8
ZGl2IGNsYXNzPSJncmlkSXRlbSBhIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImdyaWRJdGVtIGIi
PjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ3JpZEl0ZW0gYyI+PC9kaXY+CiAgICA8ZGl2IGNsYXNz
PSJncmlkSXRlbSBkIj48L2Rpdj4KPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185533</attachid>
            <date>2013-01-30 12:06:31 -0800</date>
            <delta_ts>2013-01-31 16:49:38 -0800</delta_ts>
            <desc>Proposed implementation: Requires auto sizing to pass EWS.</desc>
            <filename>bug-103573-20130130120316.patch</filename>
            <type>text/plain</type>
            <size>18234</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg2NTc2ZWJjM2Q2ODhm
NGVlMDUwOTNmYmE4M2FlYjZhODczNTc4ZS4uMTU5MDU1MjFiNDI3MTQ2NDlhNWY4MzRjNWZlZmI2
ZWM2MWRmODU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAxLTMwICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIFN1cHBvcnQgaW1wbGljaXQgcm93cyBhbmQgY29sdW1ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNTczCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzLWdyaWQt
bGF5b3V0L2ltcGxpY2l0LWNvbHVtbnMtYXV0by1yZXNvbHV0aW9uLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2ltcGxpY2l0LXJvd3MtYXV0by1yZXNvbHV0aW9uLmh0
bWwKKworICAgICAgICBUaGlzIGNoYW5nZSBtYWtlcyB1cyBwcm9wZXJseSBpbml0aWFsaXplIG91
ciBHcmlkVHJhY2sgdmVjdG9ycydzIHNpemUKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gc2FmZWx5
IHF1ZXJ5IGFueSBpdGVtcyBkdXJpbmcgbGF5b3V0LgorCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3JpZFRyYWNrU2l6
ZSk6CisgICAgICAgIEFkZGVkIHRoaXMgaGVscGVyIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgdHJh
Y2sgc2l6ZSBmcm9tIHRoZSBncmlkCisgICAgICAgIGVsZW1lbnQncyBjb2x1bW5zJyAvIHJvd3Mn
IGRlZmluaXRpb25zIG9yIHRoZSBkZWZhdWx0IHZhbHVlLgorCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJHcmlkOjptYXhpbXVtSW5kZXhJbkRpcmVjdGlvbik6CisgICAgICAgIEFkZGVkIHRoaXMg
aGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgbWF4aW11bSBpbmRleCBpbiBhIGRpcmVjdGlvbgor
ICAgICAgICB0YWtpbmcgZ3JpZCBpdGVtJ3MgaW1wbGljaXQgaW5kZXhlcyBpbnRvIGFjY291bnQu
CisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVkVXNlZEJyZWFkdGhPZkdy
aWRUcmFja3MpOgorICAgICAgICBDaGFuZ2VkIHRoZSBmdW50aW9uIHRvIG5vdCBhcHBlbmQgdGhl
IG5ldyB0cmFja3MgYXMgd2UgYXJlIHByb3Blcmx5CisgICAgICAgIHNpemVkIG5vdy4KKworICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5n
RnVuY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnRyYWNrc0FyZVdpZGVy
VGhhbk1pblRyYWNrQnJlYWR0aCk6CisgICAgICAgIFVwZGF0ZWQgdGhlc2UgZnVuY3Rpb25zIHRv
IHVzZSB0aGUgbmV3IGhlbHBlciBmdW5jdGlvbnMuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckdyaWQ6OmxheW91dEdyaWRJdGVtcyk6CisgICAgICAgIENoYW5nZWQgdGhpcyBmdW5jdGlvbiB0
byBzaXplIGJvdGggdmVjdG9ycyB3aGVuIGluaXRpYWxpemluZyB0aGVtLgorICAgICAgICBBbHNv
IHJlbW92ZWQgYW4gdW5uZWVkZWQgYm91bmRzIGNoZWNrIGFzIGl0IHNob3VsZG4ndCBiZSBuZWVk
ZWQgYW55bW9yZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6CisgICAgICAg
IEFkZGVkIHRoZSBuZXcgaGVscGVyIGZ1bmN0aW9ucy4KKworICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9HcmlkVHJhY2tTaXplLmg6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjpH
cmlkVHJhY2tTaXplKToKKyAgICAgICAgQWRkZWQgYSBjb25zdHJ1Y3RvciB0YWtpbmcgYSBMZW5n
dGhUeXBlLgorCiAyMDEzLTAxLTMwICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMTM2MzI0KTogRmxleGJveCBzaG91bGQgcmVsYXlvdXQgZmxl
eCBjaGlsZHJlbiB3aGVuIHdpZHRoIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHcmlkLmNwcAppbmRleCBkYjFiMDg1ZGFlMDAxMThmOGJiZTEwNThkNTUyNzE5Y2U0M2QxOWQ3
Li5kZjBmODdmMDE5OGY1YjBiYmI3Yzc2NDMxZDkwMThmZjEzMmEwODkyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9pZCBSZW5k
ZXJHcmlkOjpjb21wdXRlZFVzZWRCcmVhZHRoT2ZHcmlkVHJhY2tzKFRyYWNrU2l6aW5nRGlyZWN0
aW9uIGRpcmVjdGlvbiwKICAgICBMYXlvdXRVbml0IGF2YWlsYWJsZUxvZ2ljYWxTcGFjZSA9IChk
aXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBhdmFpbGFibGVMb2dpY2FsV2lkdGgoKSA6IGF2YWls
YWJsZUxvZ2ljYWxIZWlnaHQoSW5jbHVkZU1hcmdpbkJvcmRlclBhZGRpbmcpOwogICAgIFZlY3Rv
cjxHcmlkVHJhY2s+JiB0cmFja3MgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gY29sdW1u
VHJhY2tzIDogcm93VHJhY2tzOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdHJhY2tTdHls
ZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgR3JpZFRyYWNrIHRyYWNrOworICAgICAgICBHcmlk
VHJhY2smIHRyYWNrID0gdHJhY2tzW2ldOwogICAgICAgICBjb25zdCBMZW5ndGgmIG1pblRyYWNr
QnJlYWR0aCA9IHRyYWNrU3R5bGVzW2ldLm1pblRyYWNrQnJlYWR0aCgpOwogICAgICAgICBjb25z
dCBMZW5ndGgmIG1heFRyYWNrQnJlYWR0aCA9IHRyYWNrU3R5bGVzW2ldLm1heFRyYWNrQnJlYWR0
aCgpOwogCkBAIC0xODYsOCArMTg2LDYgQEAgdm9pZCBSZW5kZXJHcmlkOjpjb21wdXRlZFVzZWRC
cmVhZHRoT2ZHcmlkVHJhY2tzKFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwKICAgICAg
ICAgdHJhY2subV9tYXhCcmVhZHRoID0gc3RkOjptYXgodHJhY2subV9tYXhCcmVhZHRoLCB0cmFj
ay5tX3VzZWRCcmVhZHRoKTsKIAogICAgICAgICBhdmFpbGFibGVMb2dpY2FsU3BhY2UgLT0gdHJh
Y2subV91c2VkQnJlYWR0aDsKLQotICAgICAgICB0cmFja3MuYXBwZW5kKHRyYWNrKTsKICAgICB9
CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGNhbGwgcmVzb2x2ZUNvbnRlbnRCYXNlZFRy
YWNrU2l6aW5nRnVuY3Rpb25zIGlmIHdlIGhhdmUgbm8gbWluLWNvbnRlbnQgLyBtYXgtY29udGVu
dCB0cmFja3MuCkBAIC0yMzgsNiArMjM2LDMxIEBAIHN0YXRpYyBib29sIHNvcnRCeUdyaWRUcmFj
a0dyb3d0aFBvdGVudGlhbChHcmlkVHJhY2sqIHRyYWNrMSwgR3JpZFRyYWNrKiB0cmFjazIpCiAg
ICAgcmV0dXJuICh0cmFjazEtPm1fbWF4QnJlYWR0aCAtIHRyYWNrMS0+bV91c2VkQnJlYWR0aCkg
PD0gKHRyYWNrMi0+bV9tYXhCcmVhZHRoIC0gdHJhY2syLT5tX3VzZWRCcmVhZHRoKTsKIH0KIAor
Y29uc3QgR3JpZFRyYWNrU2l6ZSYgUmVuZGVyR3JpZDo6Z3JpZFRyYWNrU2l6ZShUcmFja1Npemlu
Z0RpcmVjdGlvbiBkaXJlY3Rpb24sIHNpemVfdCBpKQoreworICAgIGNvbnN0IFZlY3RvcjxHcmlk
VHJhY2tTaXplPiYgdHJhY2tTdHlsZXMgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gc3R5
bGUoKS0+Z3JpZENvbHVtbnMoKSA6IHN0eWxlKCktPmdyaWRSb3dzKCk7CisgICAgaWYgKGkgPj0g
dHJhY2tTdHlsZXMuc2l6ZSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBtYXRj
aCB0aGUgZGVmYXVsdCBncmlkIHNpemluZyAoaHR0cHM6Ly93ZWJraXQub3JnL2IvMTAzMzMzKQor
ICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEdyaWRUcmFja1NpemUsIGRlZmF1bHRBdXRvU2l6
ZSwgKEF1dG8pKTsKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRBdXRvU2l6ZTsKKyAgICB9CisgICAg
cmV0dXJuIHRyYWNrU3R5bGVzW2ldOworfQorCitzaXplX3QgUmVuZGVyR3JpZDo6bWF4aW11bUlu
ZGV4SW5EaXJlY3Rpb24oVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAorewor
ICAgIGNvbnN0IFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgdHJhY2tTdHlsZXMgPSAoZGlyZWN0aW9u
ID09IEZvckNvbHVtbnMpID8gc3R5bGUoKS0+Z3JpZENvbHVtbnMoKSA6IHN0eWxlKCktPmdyaWRS
b3dzKCk7CisKKyAgICBzaXplX3QgbWF4aW11bUluZGV4ID0gdHJhY2tTdHlsZXMuc2l6ZSgpOwor
CisgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gZmlyc3RDaGlsZEJveCgpOyBjaGlsZDsgY2hp
bGQgPSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgeworICAgICAgICBHcmlkUG9zaXRpb24gcG9z
aXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gY2hpbGQtPnN0eWxlKCktPmdyaWRJ
dGVtQ29sdW1uKCkgOiBjaGlsZC0+c3R5bGUoKS0+Z3JpZEl0ZW1Sb3coKTsKKyAgICAgICAgbWF4
aW11bUluZGV4ID0gc3RkOjptYXgobWF4aW11bUluZGV4LCByZXNvbHZlR3JpZFBvc2l0aW9uKHBv
c2l0aW9uKSArIDEpOworICAgIH0KKworICAgIHJldHVybiBtYXhpbXVtSW5kZXg7Cit9CisKIExh
eW91dFVuaXQgUmVuZGVyR3JpZDo6bWluQ29udGVudEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQs
IFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwgVmVjdG9yPEdyaWRUcmFjaz4mIGNvbHVt
blRyYWNrcykKIHsKICAgICBib29sIGhhc09ydGhvZ29uYWxXcml0aW5nTW9kZSA9IGNoaWxkLT5p
c0hvcml6b250YWxXcml0aW5nTW9kZSgpICE9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CkBA
IC0yODQsMTIgKzMwNywxMiBAQCB2b2lkIFJlbmRlckdyaWQ6OnJlc29sdmVDb250ZW50QmFzZWRU
cmFja1NpemluZ0Z1bmN0aW9ucyhUcmFja1NpemluZ0RpcmVjdGlvbiBkaQogewogICAgIC8vIEZJ
WE1FOiBTcGxpdCB0aGUgZ3JpZCB0cmFja3Mgb25jZSB3ZSBzdXBwb3J0IHNwYW5uaW5nIG9yIGZy
YWN0aW9ucyAoc3RlcCAxIGFuZCAyIG9mIHRoZSBhbGdvcml0aG0pLgogCi0gICAgY29uc3QgVmVj
dG9yPEdyaWRUcmFja1NpemU+JiB0cmFja1N0eWxlcyA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1u
cykgPyBzdHlsZSgpLT5ncmlkQ29sdW1ucygpIDogc3R5bGUoKS0+Z3JpZFJvd3MoKTsKICAgICBW
ZWN0b3I8R3JpZFRyYWNrPiYgdHJhY2tzID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNv
bHVtblRyYWNrcyA6IHJvd1RyYWNrczsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdHJh
Y2tzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IEdyaWRUcmFja1NpemUmIHRyYWNrU2l6
ZSA9IGdyaWRUcmFja1NpemUoZGlyZWN0aW9uLCBpKTsKICAgICAgICAgR3JpZFRyYWNrJiB0cmFj
ayA9IHRyYWNrc1tpXTsKLSAgICAgICAgY29uc3QgTGVuZ3RoJiBtaW5UcmFja0JyZWFkdGggPSB0
cmFja1N0eWxlc1tpXS5taW5UcmFja0JyZWFkdGgoKTsKKyAgICAgICAgY29uc3QgTGVuZ3RoJiBt
aW5UcmFja0JyZWFkdGggPSB0cmFja1NpemUubWluVHJhY2tCcmVhZHRoKCk7CiAgICAgICAgIGlm
IChtaW5UcmFja0JyZWFkdGguaXNNaW5Db250ZW50KCkgfHwgbWluVHJhY2tCcmVhZHRoLmlzTWF4
Q29udGVudCgpKSB7CiAgICAgICAgICAgICBMYXlvdXRVbml0IG9sZFVzZWRCcmVhZHRoID0gdHJh
Y2subV91c2VkQnJlYWR0aDsKICAgICAgICAgICAgIHJlc29sdmVDb250ZW50QmFzZWRUcmFja1Np
emluZ0Z1bmN0aW9uc0Zvckl0ZW1zKGRpcmVjdGlvbiwgY29sdW1uVHJhY2tzLCByb3dUcmFja3Ms
IGksICZSZW5kZXJHcmlkOjptaW5Db250ZW50Rm9yQ2hpbGQsICZHcmlkVHJhY2s6OnVzZWRCcmVh
ZHRoLCAmR3JpZFRyYWNrOjpncm93VXNlZEJyZWFkdGgpOwpAQCAtMzAyLDcgKzMyNSw3IEBAIHZv
aWQgUmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zKFRy
YWNrU2l6aW5nRGlyZWN0aW9uIGRpCiAgICAgICAgICAgICBhdmFpbGFibGVMb2dpY2FsU3BhY2Ug
LT0gKHRyYWNrLm1fdXNlZEJyZWFkdGggLSBvbGRVc2VkQnJlYWR0aCk7CiAgICAgICAgIH0KIAot
ICAgICAgICBjb25zdCBMZW5ndGgmIG1heFRyYWNrQnJlYWR0aCA9IHRyYWNrU3R5bGVzW2ldLm1h
eFRyYWNrQnJlYWR0aCgpOworICAgICAgICBjb25zdCBMZW5ndGgmIG1heFRyYWNrQnJlYWR0aCA9
IHRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKTsKICAgICAgICAgaWYgKG1heFRyYWNrQnJlYWR0
aC5pc01pbkNvbnRlbnQoKSB8fCBtYXhUcmFja0JyZWFkdGguaXNNYXhDb250ZW50KCkpCiAgICAg
ICAgICAgICByZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnNGb3JJdGVtcyhk
aXJlY3Rpb24sIGNvbHVtblRyYWNrcywgcm93VHJhY2tzLCBpLCAmUmVuZGVyR3JpZDo6bWluQ29u
dGVudEZvckNoaWxkLCAmR3JpZFRyYWNrOjptYXhCcmVhZHRoSWZOb3RJbmZpbml0ZSwgJkdyaWRU
cmFjazo6Z3Jvd01heEJyZWFkdGgpOwogCkBAIC0zNjQsOSArMzg3LDkgQEAgdm9pZCBSZW5kZXJH
cmlkOjpkaXN0cmlidXRlU3BhY2VUb1RyYWNrcyhWZWN0b3I8R3JpZFRyYWNrKj4mIHRyYWNrcywg
VmVjdG9yPEdyaWQKICNpZm5kZWYgTkRFQlVHCiBib29sIFJlbmRlckdyaWQ6OnRyYWNrc0FyZVdp
ZGVyVGhhbk1pblRyYWNrQnJlYWR0aChUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNv
bnN0IFZlY3RvcjxHcmlkVHJhY2s+JiB0cmFja3MpCiB7Ci0gICAgY29uc3QgVmVjdG9yPEdyaWRU
cmFja1NpemU+JiB0cmFja1N0eWxlcyA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBzdHls
ZSgpLT5ncmlkQ29sdW1ucygpIDogc3R5bGUoKS0+Z3JpZFJvd3MoKTsKLSAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHRyYWNrU3R5bGVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IExl
bmd0aCYgbWluVHJhY2tCcmVhZHRoID0gdHJhY2tTdHlsZXNbaV0ubWluVHJhY2tCcmVhZHRoKCk7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0cmFja3Muc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplID0gZ3JpZFRyYWNrU2l6ZShkaXJlY3Rp
b24sIGkpOworICAgICAgICBjb25zdCBMZW5ndGgmIG1pblRyYWNrQnJlYWR0aCA9IHRyYWNrU2l6
ZS5taW5UcmFja0JyZWFkdGgoKTsKICAgICAgICAgaWYgKGNvbXB1dGVVc2VkQnJlYWR0aE9mTWlu
TGVuZ3RoKGRpcmVjdGlvbiwgbWluVHJhY2tCcmVhZHRoKSA+IHRyYWNrc1tpXS5tX3VzZWRCcmVh
ZHRoKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTM3Niw3ICszOTksOCBA
QCBib29sIFJlbmRlckdyaWQ6OnRyYWNrc0FyZVdpZGVyVGhhbk1pblRyYWNrQnJlYWR0aChUcmFj
a1NpemluZ0RpcmVjdGlvbiBkaXJlY3RpbwogCiB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEdyaWRJ
dGVtcygpCiB7Ci0gICAgVmVjdG9yPEdyaWRUcmFjaz4gY29sdW1uVHJhY2tzLCByb3dUcmFja3M7
CisgICAgVmVjdG9yPEdyaWRUcmFjaz4gY29sdW1uVHJhY2tzKG1heGltdW1JbmRleEluRGlyZWN0
aW9uKEZvckNvbHVtbnMpKTsKKyAgICBWZWN0b3I8R3JpZFRyYWNrPiByb3dUcmFja3MobWF4aW11
bUluZGV4SW5EaXJlY3Rpb24oRm9yUm93cykpOwogICAgIGNvbXB1dGVkVXNlZEJyZWFkdGhPZkdy
aWRUcmFja3MoRm9yQ29sdW1ucywgY29sdW1uVHJhY2tzLCByb3dUcmFja3MpOwogICAgIEFTU0VS
VCh0cmFja3NBcmVXaWRlclRoYW5NaW5UcmFja0JyZWFkdGgoRm9yQ29sdW1ucywgY29sdW1uVHJh
Y2tzKSk7CiAgICAgY29tcHV0ZWRVc2VkQnJlYWR0aE9mR3JpZFRyYWNrcyhGb3JSb3dzLCBjb2x1
bW5UcmFja3MsIHJvd1RyYWNrcyk7CkBAIC0zODgsMjAgKzQxMiwxNiBAQCB2b2lkIFJlbmRlckdy
aWQ6OmxheW91dEdyaWRJdGVtcygpCiAgICAgICAgIHNpemVfdCBjb2x1bW5UcmFjayA9IHJlc29s
dmVHcmlkUG9zaXRpb24oY2hpbGQtPnN0eWxlKCktPmdyaWRJdGVtQ29sdW1uKCkpOwogICAgICAg
ICBzaXplX3Qgcm93VHJhY2sgPSByZXNvbHZlR3JpZFBvc2l0aW9uKGNoaWxkLT5zdHlsZSgpLT5n
cmlkSXRlbVJvdygpKTsKIAotICAgICAgICAvLyBGSVhNRTogUHJvcGVybHkgc3VwcG9ydCBpbXBs
aWNpdCByb3dzIGFuZCBjb2x1bW5zIChidWcgMTAzNTczKS4KLSAgICAgICAgaWYgKGNvbHVtblRy
YWNrIDwgY29sdW1uVHJhY2tzLnNpemUoKSAmJiByb3dUcmFjayA8IHJvd1RyYWNrcy5zaXplKCkp
IHsKLSAgICAgICAgICAgIC8vIEJlY2F1c2UgdGhlIGdyaWQgYXJlYSBjYW5ub3QgYmUgc3R5bGVk
LCB3ZSBkb24ndCBuZWVkIHRvIGFkanVzdAotICAgICAgICAgICAgLy8gdGhlIGdyaWQgYnJlYWR0
aCB0byBhY2NvdW50IGZvciAnYm94LXNpemluZycuCi0gICAgICAgICAgICBMYXlvdXRVbml0IG9s
ZE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCA9IGNoaWxkLT5oYXNP
dmVycmlkZUNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aCgpID8gY2hpbGQtPm92ZXJyaWRlQ29u
dGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCgpIDogTGF5b3V0VW5pdCgpOwotICAgICAg
ICAgICAgTGF5b3V0VW5pdCBvbGRPdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2Fs
SGVpZ2h0ID0gY2hpbGQtPmhhc092ZXJyaWRlQ29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodCgp
ID8gY2hpbGQtPm92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoKSA6
IExheW91dFVuaXQoKTsKKyAgICAgICAgLy8gQmVjYXVzZSB0aGUgZ3JpZCBhcmVhIGNhbm5vdCBi
ZSBzdHlsZWQsIHdlIGRvbid0IG5lZWQgdG8gYWRqdXN0CisgICAgICAgIC8vIHRoZSBncmlkIGJy
ZWFkdGggdG8gYWNjb3VudCBmb3IgJ2JveC1zaXppbmcnLgorICAgICAgICBMYXlvdXRVbml0IG9s
ZE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCA9IGNoaWxkLT5oYXNP
dmVycmlkZUNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aCgpID8gY2hpbGQtPm92ZXJyaWRlQ29u
dGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCgpIDogTGF5b3V0VW5pdCgpOworICAgICAg
ICBMYXlvdXRVbml0IG9sZE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWln
aHQgPSBjaGlsZC0+aGFzT3ZlcnJpZGVDb250YWluaW5nQmxvY2tMb2dpY2FsSGVpZ2h0KCkgPyBj
aGlsZC0+b3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpIDogTGF5
b3V0VW5pdCgpOwogCi0gICAgICAgICAgICBpZiAob2xkT3ZlcnJpZGVDb250YWluaW5nQmxvY2tD
b250ZW50TG9naWNhbFdpZHRoICE9IGNvbHVtblRyYWNrc1tjb2x1bW5UcmFja10ubV91c2VkQnJl
YWR0aCB8fCBvbGRPdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0ICE9
IHJvd1RyYWNrc1tyb3dUcmFja10ubV91c2VkQnJlYWR0aCkKLSAgICAgICAgICAgICAgICBjaGls
ZC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKKyAgICAgICAgaWYgKG9sZE92
ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCAhPSBjb2x1bW5UcmFja3Nb
Y29sdW1uVHJhY2tdLm1fdXNlZEJyZWFkdGggfHwgb2xkT3ZlcnJpZGVDb250YWluaW5nQmxvY2tD
b250ZW50TG9naWNhbEhlaWdodCAhPSByb3dUcmFja3Nbcm93VHJhY2tdLm1fdXNlZEJyZWFkdGgp
CisgICAgICAgICAgICBjaGlsZC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsK
IAotICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExv
Z2ljYWxXaWR0aChjb2x1bW5UcmFja3NbY29sdW1uVHJhY2tdLm1fdXNlZEJyZWFkdGgpOwotICAg
ICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxI
ZWlnaHQocm93VHJhY2tzW3Jvd1RyYWNrXS5tX3VzZWRCcmVhZHRoKTsKLQotICAgICAgICB9Cisg
ICAgICAgIGNoaWxkLT5zZXRPdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lk
dGgoY29sdW1uVHJhY2tzW2NvbHVtblRyYWNrXS5tX3VzZWRCcmVhZHRoKTsKKyAgICAgICAgY2hp
bGQtPnNldE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQocm93VHJh
Y2tzW3Jvd1RyYWNrXS5tX3VzZWRCcmVhZHRoKTsKIAogICAgICAgICAvLyBGSVhNRTogR3JpZCBp
dGVtcyBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZWlyIGNlbGxzLiBPbmNlIHdlCiAgICAgICAg
IC8vIGltcGxlbWVudCBncmlkLXtjb2x1bW4scm93fS1hbGlnbiwgd2UgY2FuIGFsc28gc2hyaW5r
IHRvIGZpdC4gRm9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCAzMjdh
NTA5YTk1NjRiYzk5OGM0MGNiYTc3NDU5YzM3MTJmNmFiOTYwLi5lMzYyZWUyOGI1NTViODMwMWQz
NWRjOTZhNTBlMzU0YWU1OTQyZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmgKQEAgLTYyLDYgKzYyLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc29sdmVDb250ZW50QmFz
ZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvckl0ZW1zKFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBWZWN0
b3I8R3JpZFRyYWNrPiYgY29sdW1uVHJhY2tzLCBWZWN0b3I8R3JpZFRyYWNrPiYgcm93VHJhY2tz
LCBzaXplX3QsIFNpemluZ0Z1bmN0aW9uLCBBY2N1bXVsYXRvckdldHRlciwgQWNjdW11bGF0b3JH
cm93RnVuY3Rpb24pOwogICAgIHZvaWQgZGlzdHJpYnV0ZVNwYWNlVG9UcmFja3MoVmVjdG9yPEdy
aWRUcmFjayo+JiwgVmVjdG9yPEdyaWRUcmFjayo+KiB0cmFja3NGb3JHcm93dGhBYm92ZU1heEJy
ZWFkdGgsIEFjY3VtdWxhdG9yR2V0dGVyLCBBY2N1bXVsYXRvckdyb3dGdW5jdGlvbiwgTGF5b3V0
VW5pdCYgYXZhaWxhYmxlTG9naWNhbFNwYWNlKTsKIAorICAgIGNvbnN0IEdyaWRUcmFja1NpemUm
IGdyaWRUcmFja1NpemUoVHJhY2tTaXppbmdEaXJlY3Rpb24sIHNpemVfdCk7CisgICAgc2l6ZV90
IG1heGltdW1JbmRleEluRGlyZWN0aW9uKFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKKwog
ICAgIExheW91dFVuaXQgbWluQ29udGVudEZvckNoaWxkKFJlbmRlckJveCosIFRyYWNrU2l6aW5n
RGlyZWN0aW9uLCBWZWN0b3I8R3JpZFRyYWNrPiYgY29sdW1uVHJhY2tzKTsKICAgICBMYXlvdXRV
bml0IG1heENvbnRlbnRGb3JDaGlsZChSZW5kZXJCb3gqLCBUcmFja1NpemluZ0RpcmVjdGlvbiwg
VmVjdG9yPEdyaWRUcmFjaz4mIGNvbHVtblRyYWNrcyk7CiAgICAgTGF5b3V0UG9pbnQgZmluZENo
aWxkTG9naWNhbFBvc2l0aW9uKFJlbmRlckJveCosIGNvbnN0IFZlY3RvcjxHcmlkVHJhY2s+JiBj
b2x1bW5UcmFja3MsIGNvbnN0IFZlY3RvcjxHcmlkVHJhY2s+JiByb3dUcmFja3MpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRUcmFja1NpemUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tTaXplLmgKaW5kZXggMTQyYjJh
ZDdmNTAwMDU4YjI2ZDI4NGMyMGYyZTJkZTc2MWU0MjhkZC4uZjM4ODUzNmIwMDY1ZmI0ZjQ3ODdm
Mjg2ZDNiZTllMGM2Yjk3Zjk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0dyaWRUcmFja1NpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvR3JpZFRyYWNrU2l6ZS5oCkBAIC00MiwxMCArNDIsMTAgQEAgZW51bSBHcmlkVHJhY2tTaXpl
VHlwZSB7CiAKIGNsYXNzIEdyaWRUcmFja1NpemUgewogcHVibGljOgotICAgIEdyaWRUcmFja1Np
emUoKQorICAgIEdyaWRUcmFja1NpemUoTGVuZ3RoVHlwZSB0eXBlID0gVW5kZWZpbmVkKQogICAg
ICAgICA6IG1fdHlwZShMZW5ndGhUcmFja1NpemluZykKLSAgICAgICAgLCBtX21pblRyYWNrQnJl
YWR0aChVbmRlZmluZWQpCi0gICAgICAgICwgbV9tYXhUcmFja0JyZWFkdGgoVW5kZWZpbmVkKQor
ICAgICAgICAsIG1fbWluVHJhY2tCcmVhZHRoKHR5cGUpCisgICAgICAgICwgbV9tYXhUcmFja0Jy
ZWFkdGgodHlwZSkKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjllZWNhMzdiNDllMTNkZDU5ZDU5
NjI1ZGE3MTg1ZjkxMmQ2ODQ0NC4uM2MyYzViZTRiMjUzMGI3MTMyYzZhZTFjYmMwMTAzYTQxMzZk
OWJkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAxLTMwICBKdWxpZW4gQ2hhZmZyYWl4
ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIFN1
cHBvcnQgaW1wbGljaXQgcm93cyBhbmQgY29sdW1ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9pbXBsaWNpdC1j
b2x1bW5zLWF1dG8tcmVzb2x1dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzLWdyaWQtbGF5b3V0L2ltcGxpY2l0LWNvbHVtbnMtYXV0by1yZXNvbHV0aW9uLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2ltcGxpY2l0LXJvd3MtYXV0
by1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvaW1wbGljaXQtcm93cy1hdXRvLXJlc29sdXRpb24uaHRtbDogQWRkZWQuCisKIDIw
MTMtMDEtMzAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSRUdS
RVNTSU9OKHIxMzYzMjQpOiBGbGV4Ym94IHNob3VsZCByZWxheW91dCBmbGV4IGNoaWxkcmVuIHdo
ZW4gd2lkdGggY2hhbmdlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvaW1wbGljaXQtY29sdW1ucy1hdXRvLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvaW1wbGljaXQtY29sdW1ucy1hdXRvLXJlc29s
dXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkNDJlYmVjYWNiNTA1ZDI1ODFjNjU1N2E4
OTBmY2YyZGRiMDI4NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1n
cmlkLWxheW91dC9pbXBsaWNpdC1jb2x1bW5zLWF1dG8tcmVzb2x1dGlvbi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw4IEBACitUZXN0IHRoYXQgcmVzb2x2aW5nIGF1dG8gdHJhY2tzIG9uIGdyaWQg
aXRlbXMgd29ya3MgcHJvcGVybHkuCisKK1hYWCBYWFggWFhYCitQQVNTCitYWCBYWCBYWCBYWCBY
WCBYWAorUEFTUworWFhYWFgKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L2ltcGxpY2l0LWNvbHVtbnMtYXV0by1yZXNvbHV0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9pbXBsaWNpdC1jb2x1bW5zLWF1dG8tcmVzb2x1
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmNzNlZjIyZWJhYTQ4YWFhOTJhMzQ2M2ZlZjIyYWM1Nzli
MTgwNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91
dC9pbXBsaWNpdC1jb2x1bW5zLWF1dG8tcmVzb2x1dGlvbi5odG1sCkBAIC0wLDAgKzEsNTIgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1NHcmlkTGF5b3V0
RW5hYmxlZCIsIDEpOworPC9zY3JpcHQ+Cis8bGluayBocmVmPSJyZXNvdXJjZXMvZ3JpZC5jc3Mi
IHJlbD0ic3R5bGVzaGVldCI+Cis8c3R5bGU+CisuZ3JpZEF1dG9Db250ZW50IHsKKyAgICAvKiAt
d2Via2l0LWdyaWQtY29sdW1ucyBpcyBsZWZ0IHVuc2V0IHNvIHRoYXQgdGhlIGdyaWQgaXRlbSdz
IGNvbHVtbiBpcyBpbXBsaWNpdC4gKi8KKyAgICAtd2Via2l0LWdyaWQtcm93czogNTBweDsKK30K
KworLyogVGhpcyBydWxlIG1ha2VzIHN1cmUgdGhlIGNvbnRhaW5lciBpcyBzbWFsbGVyIHRoYW4g
YW55IGdyaWQgaXRlbXMgdG8gYXZvaWQgZGlzdHJpYnV0aW5nIGFueSBleHRyYSBsb2dpY2FsIHNw
YWNlIHRvIHRoZW0uICovCisuY29uc3RyYWluZWRDb250YWluZXIgeworICAgIHdpZHRoOiAxMHB4
OworICAgIGhlaWdodDogMTBweDsKK30KKworLmZpcnN0Um93Rmlyc3RDb2x1bW4geworICAgIGZv
bnQ6IDEwcHgvMSBBaGVtOworICAgIC8qIE1ha2UgdXMgZml0IG91ciBncmlkIGFyZWEuICovCisg
ICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiAxMDAlOworfQorPC9zdHlsZT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKzxib2R5IG9u
bG9hZD0iY2hlY2tMYXlvdXQoJy5ncmlkQXV0b0NvbnRlbnQnKTsiPgorCis8cD5UZXN0IHRoYXQg
cmVzb2x2aW5nIGF1dG8gdHJhY2tzIG9uIGdyaWQgaXRlbXMgd29ya3MgcHJvcGVybHkuPC9wPgor
Cis8ZGl2IGNsYXNzPSJjb25zdHJhaW5lZENvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iZ3Jp
ZCBncmlkQXV0b0NvbnRlbnQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd0ZpcnN0Q29s
dW1uIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5Y
WFggWFhYIFhYWDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzwhLS0gQWxsb3cgdGhlIGV4
dHJhIGxvZ2ljYWwgc3BhY2UgZGlzdHJpYnV0aW9uIHRvIG9jY3VyLiAtLT4KKzxkaXYgc3R5bGU9
IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDEwcHgiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1
dG9Db250ZW50Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dGaXJzdENvbHVtbiIgZGF0
YS1leHBlY3RlZC13aWR0aD0iNDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFggWFggWFgg
WFggWFggWFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IHN0eWxlPSJ3aWR0aDog
MTAwcHg7IGhlaWdodDogMTBweDsiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9Db250
ZW50Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dGaXJzdENvbHVtbiIgZGF0YS1leHBl
Y3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFg8L2Rpdj4KKyAg
ICA8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9pbXBsaWNpdC1yb3dzLWF1dG8tcmVzb2x1dGlvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9pbXBsaWNpdC1y
b3dzLWF1dG8tcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTMyNmEwNDNkNzkz
NTFhNTg3Yjk4MDMzZDg5NTc3NDQxNzE1YTIwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2ltcGxpY2l0LXJvd3MtYXV0by1yZXNvbHV0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgdGhhdCByZXNvbHZpbmcgYXV0byB0cmFj
a3Mgb24gZ3JpZCBpdGVtcyB3b3JrcyBwcm9wZXJseS4KKworWFhYWFggWFhYWFggWFhYWFgKK1BB
U1MKK1hYWFhYIFhYWFhYIFhYWFhYCitQQVNTCitYWFhYWCBYWFhYWCBYWFhYWCBYWFhYWCBYWFhY
WCBYWFhYWAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvaW1wbGljaXQtcm93cy1hdXRvLXJlc29sdXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2ltcGxpY2l0LXJvd3MtYXV0by1yZXNvbHV0aW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmFmZDFhYjY0MjMwMDNlNWQ2OWJlNTEzZDcxN2Y2MGYxMmQ0Njg1OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2ltcGxpY2l0LXJvd3Mt
YXV0by1yZXNvbHV0aW9uLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIiwgMSk7Cis8L3Nj
cmlwdD4KKzxsaW5rIGhyZWY9InJlc291cmNlcy9ncmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4K
KzxzdHlsZT4KKy5ncmlkQXV0b0NvbnRlbnQgeworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiA1
MHB4OworICAgIC8qIC13ZWJraXQtZ3JpZC1yb3dzIGlzIGxlZnQgdW5zZXQgc28gdGhhdCB0aGUg
Z3JpZCBpdGVtJ3Mgcm93IGlzIGltcGxpY2l0LiAqLworfQorCisvKiBUaGlzIHJ1bGUgbWFrZXMg
c3VyZSB0aGUgY29udGFpbmVyIGlzIHNtYWxsZXIgdGhhbiBhbnkgZ3JpZCBpdGVtcyB0byBhdm9p
ZCBkaXN0cmlidXRpbmcgYW55IGV4dHJhIGxvZ2ljYWwgc3BhY2UgdG8gdGhlbS4gKi8KKy5jb25z
dHJhaW5lZENvbnRhaW5lciB7CisgICAgd2lkdGg6IDEwcHg7CisgICAgaGVpZ2h0OiAxMHB4Owor
fQorCisuZmlyc3RSb3dGaXJzdENvbHVtbiB7CisgICAgZm9udDogMTBweC8xIEFoZW07CisgICAg
LyogTWFrZSB1cyBmaXQgb3VyIGdyaWQgYXJlYS4gKi8KKyAgICB3aWR0aDogMTAwJTsKKyAgICBo
ZWlnaHQ6IDEwMCU7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9j
aGVjay1sYXlvdXQuanMiPjwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJjaGVja0xheW91dCgnLmdy
aWRBdXRvQ29udGVudCcpOyI+CisKKzxwPlRlc3QgdGhhdCByZXNvbHZpbmcgYXV0byB0cmFja3Mg
b24gZ3JpZCBpdGVtcyB3b3JrcyBwcm9wZXJseS48L3A+CisKKzxkaXYgY2xhc3M9ImNvbnN0cmFp
bmVkQ29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWRBdXRvQ29udGVudCI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93Rmlyc3RDb2x1bW4iIGRhdGEtZXhwZWN0ZWQtd2lk
dGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMzAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+
CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPCEtLSBBbGxvdyB0aGUgZXh0cmEgbG9naWNhbCBzcGFj
ZSBkaXN0cmlidXRpb24gdG8gb2NjdXIuIC0tPgorPGRpdiBzdHlsZT0id2lkdGg6IDQwcHg7IGhl
aWdodDogMTBweCI+CisgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXV0b0NvbnRlbnQiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd0ZpcnN0Q29sdW1uIiBkYXRhLWV4cGVjdGVkLXdpZHRo
PSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjMwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2Pgor
ICAgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAx
MHB4OyI+CisgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXV0b0NvbnRlbnQiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJmaXJzdFJvd0ZpcnN0Q29sdW1uIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjYwIj5YWFhYWCBYWFhYWCBYWFhYWCBYWFhYWCBYWFhYWCBY
WFhYWDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>