<?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>233684</bug_id>
          
          <creation_ts>2021-11-30 23:04:34 -0800</creation_ts>
          <short_desc>[Performance test] Add test lots-of-self-painting-layers.html</short_desc>
          <delta_ts>2021-12-13 10:15:07 -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>WebKit Local 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>
          
          <blocked>229802</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="cathiechen">cathiechen</reporter>
          <assigned_to name="cathiechen">cathiechen</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jbedard</cc>
    
    <cc>rbuis</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1819104</commentid>
    <comment_count>0</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-11-30 23:04:34 -0800</bug_when>
    <thetext>Add a test to track the repaint performance of self-painting layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819111</commentid>
    <comment_count>1</comment_count>
      <attachid>445527</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-11-30 23:09:50 -0800</bug_when>
    <thetext>Created attachment 445527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819119</commentid>
    <comment_count>2</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-11-30 23:30:54 -0800</bug_when>
    <thetext>The performance regression caused by self-painting layer.

Self-paint layers(position: relative):
:Time -&gt; [515.0000000000018, 452, 452, 450, 453, 660, 657, 655.0000000000018, 656.0000000000018, 652, 673.9999999999982, 657.0000000000018, 661, 656, 661, 659, 660.9999999999964, 663.9999999999964, 659, 675] ms
    mean: 611.4499999999998 ms
    median: 657.0000000000009 ms
    stdev: 88.24038638556408 ms
    min: 450 ms
    max: 675 ms

Normal flow layers(position: static):
:Time -&gt; [471, 342, 343, 335, 335, 402, 396, 383, 390, 385, 390, 387, 382, 381, 384, 379, 381.0000000000018, 385.0000000000018, 381, 381] ms
    mean: 380.6500000000002 ms
    median: 382.5 ms
    stdev: 29.207560304608954 ms
    min: 335 ms
    max: 471 ms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821423</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-07 23:05:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/86193972&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822569</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2021-12-10 01:14:35 -0800</bug_when>
    <thetext>I wouldn&apos;t call it a performance regression, after all it&apos;s a different mode. Creating N layers each rendering M elements vs. rendering one layer that renders N*M elements is naturally different: there&apos;s non-negligible amount of overhead associated with the management of layers, such as updateLayerPosition(s), etc.

Or do you call it a regression, since it was better at some point?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823446</commentid>
    <comment_count>5</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-12-13 01:57:24 -0800</bug_when>
    <thetext>(In reply to Nikolas Zimmermann from comment #4)
&gt; I wouldn&apos;t call it a performance regression, after all it&apos;s a different
&gt; mode. Creating N layers each rendering M elements vs. rendering one layer
&gt; that renders N*M elements is naturally different: there&apos;s non-negligible
&gt; amount of overhead associated with the management of layers, such as
&gt; updateLayerPosition(s), etc.
&gt; 

Yeah, I agree with you, they are different modes.

I called this as a regression, because we were addressing a performance regression for CSS contain. Like position: relative, CSS contain creates self-painting layers, the overhead of self-painting layers caused the regression.
Because the regression is not specific to CSS contain, and CSS contain is not enabled at that time. So we created this test, and keep calling it as a regression.

I guess we can call this test as a tracking for the overhead cost of self-painting layers. What do you think?


&gt; Or do you call it a regression, since it was better at some point?

Nope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823468</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2021-12-13 04:14:20 -0800</bug_when>
    <thetext>(In reply to cathiechen from comment #5)
&gt; (In reply to Nikolas Zimmermann from comment #4)
&gt; &gt; I wouldn&apos;t call it a performance regression, after all it&apos;s a different
&gt; &gt; mode. Creating N layers each rendering M elements vs. rendering one layer
&gt; &gt; that renders N*M elements is naturally different: there&apos;s non-negligible
&gt; &gt; amount of overhead associated with the management of layers, such as
&gt; &gt; updateLayerPosition(s), etc.
&gt; &gt; 
&gt; 
&gt; Yeah, I agree with you, they are different modes.
&gt; 
&gt; I called this as a regression, because we were addressing a performance
&gt; regression for CSS contain. Like position: relative, CSS contain creates
&gt; self-painting layers, the overhead of self-painting layers caused the
&gt; regression.
&gt; Because the regression is not specific to CSS contain, and CSS contain is
&gt; not enabled at that time. So we created this test, and keep calling it as a
&gt; regression.
&gt; 
&gt; I guess we can call this test as a tracking for the overhead cost of
&gt; self-painting layers. What do you think?
Agreed, I just found the wording regression confusing and thought you were really fixing a regression from a certain revision, that&apos;s not the case, so everything is fine.

Thanks, for looking at layer performance, very important for LBSE to migitate the self-painting layer overheads as much as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823545</commentid>
    <comment_count>7</comment_count>
      <attachid>447008</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-12-13 08:47:28 -0800</bug_when>
    <thetext>Created attachment 447008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823553</commentid>
    <comment_count>8</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-12-13 09:00:06 -0800</bug_when>
    <thetext>(In reply to Nikolas Zimmermann from comment #6)
&gt; (In reply to cathiechen from comment #5)
&gt; &gt; (In reply to Nikolas Zimmermann from comment #4)
&gt; &gt; &gt; I wouldn&apos;t call it a performance regression, after all it&apos;s a different
&gt; &gt; &gt; mode. Creating N layers each rendering M elements vs. rendering one layer
&gt; &gt; &gt; that renders N*M elements is naturally different: there&apos;s non-negligible
&gt; &gt; &gt; amount of overhead associated with the management of layers, such as
&gt; &gt; &gt; updateLayerPosition(s), etc.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; Yeah, I agree with you, they are different modes.
&gt; &gt; 
&gt; &gt; I called this as a regression, because we were addressing a performance
&gt; &gt; regression for CSS contain. Like position: relative, CSS contain creates
&gt; &gt; self-painting layers, the overhead of self-painting layers caused the
&gt; &gt; regression.
&gt; &gt; Because the regression is not specific to CSS contain, and CSS contain is
&gt; &gt; not enabled at that time. So we created this test, and keep calling it as a
&gt; &gt; regression.
&gt; &gt; 
&gt; &gt; I guess we can call this test as a tracking for the overhead cost of
&gt; &gt; self-painting layers. What do you think?
&gt; Agreed, I just found the wording regression confusing and thought you were
&gt; really fixing a regression from a certain revision, that&apos;s not the case, so
&gt; everything is fine.
&gt; 
&gt; Thanks, for looking at layer performance, very important for LBSE to
&gt; migitate the self-painting layer overheads as much as possible.

Great! Thanks for pointing this out:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823592</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-13 10:15:02 -0800</bug_when>
    <thetext>Committed r286954 (245179@main): &lt;https://commits.webkit.org/245179@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447008.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445527</attachid>
            <date>2021-11-30 23:09:50 -0800</date>
            <delta_ts>2021-12-13 08:47:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233684-20211201150947.patch</filename>
            <type>text/plain</type>
            <size>3738</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTA4CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg5MjM5MmQ4N2Y3
NDAwZWJmYTk4ZjVhODY1M2M5ZmQ0ZTI3NTVmNTkuLjQwZDE4YzU5ZGQ1MGZlN2E0NzIwZDIzZTZj
MDc2YTVjM2E2YzhkZjYgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTEt
MzAgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtQZXJm
b3JtYW5jZSB0ZXN0XSBBZGQgdGVzdCBsb3RzLW9mLXNlbGYtcGFpbnRpbmctbGF5ZXJzLmh0bWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzY4NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgdGVz
dCBpcyBhIHRyYW5zZm9ybSBvZiB0aGUgdGVzdCBbMV0gaW4gYmxpbmsuIEl0IHVzZXMgcG9zaXRp
b246IHJlbGF0aXZlIHRvIGNyZWF0ZQorICAgICAgICBsb3RzIG9mIHNlbGYtcGFpbnRpbmcgbGF5
ZXJzLiBCeSBjaGFuZ2luZyB0aGUgZmlyc3QgbGF5ZXIncyBoZWlnaHQsIGl0IHRyYWNrcyB0aGUg
cmVwYWludAorICAgICAgICBwZXJmb3JtYW5jZSBvZiB0aGVzZSBzZWxmLXBhaW50aW5nIGxheWVy
cy4KKworICAgICAgICBbMV0gdGhpcmRfcGFydHkvYmxpbmsvcGVyZl90ZXN0cy9sYXlvdXQvY29u
dGFpbi1jb250ZW50LXN0eWxlLWNoYW5nZS5odG1sCisKKyAgICAgICAgKiBQYWludC9sb3RzLW9m
LXNlbGYtcGFpbnRpbmctbGF5ZXJzLmh0bWw6IEFkZGVkLgorCiAyMDIxLTExLTIxICBDYXRoaWUg
Q2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBbUGVyZm9ybWFuY2UgdGVz
dF1bY3NzLWNvbnRhaW5dIEFkZCBjYXNlIHRvIHRlc3QgY29udGFpbjogbGF5b3V0IGluc2lkZSBh
IGNvbXBsZXggZG9jdW1lbnQKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvUGFpbnQvbG90
cy1vZi1zZWxmLXBhaW50aW5nLWxheWVycy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9QYWludC9s
b3RzLW9mLXNlbGYtcGFpbnRpbmctbGF5ZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWE3YTBiNTQ5YTc1
YzU3ZThlNjA1ZmU4ODk1ZmY4MmI1NjQ4ZTRlZQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1h
bmNlVGVzdHMvUGFpbnQvbG90cy1vZi1zZWxmLXBhaW50aW5nLWxheWVycy5odG1sCkBAIC0wLDAg
KzEsNjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5u
ZXIuanMiPjwvc2NyaXB0PgorPHRpdGxlPlRyYWNraW5nIHRoZSBwZXJmb3JtYW5jZSBvZiBzZWxm
LXBhaW50aW5nIGxheWVyczwvdGl0bGU+Cis8c3R5bGU+CisgICAgI2xpc3RDb250YWluZXIgewor
ICAgICAgICBtYXJnaW46IDAgYXV0bzsKKyAgICAgICAgd2lkdGg6IDYwMHB4OworICAgICAgICBw
b3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorCisgICAgLmxpc3RJdGVtIHsKKyAgICAgICAgb3V0
bGluZTogMnB4IHNvbGlkIGdyZWVuOworICAgICAgICBvdmVyZmxvdzogaGlkZGVuOworICAgICAg
ICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+
CisgICAgPHByZSBpZD0ibG9nIj48L3ByZT4KKworICAgIDxkaXYgaWQ9Imxpc3RDb250YWluZXIi
PjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGNvbnN0IExPUkVNX0lQU1VNID0gIkxvcmVt
IGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBk
byBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxp
cXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1
bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBE
dWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQg
ZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNp
bnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2Zm
aWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4iOworCisgICAgICAgIGxl
dCBsaXN0Q29udGFpbmVyID0gbnVsbDsKKyAgICAgICAgZnVuY3Rpb24gY3JlYXRlTGlzdEl0ZW0o
KSB7CisgICAgICAgICAgICBsZXQgaXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OworICAgICAgICAgICAgaXRlbS5jbGFzc0xpc3QuYWRkKCJsaXN0SXRlbSIpOworICAgICAgICAg
ICAgaXRlbS50ZXh0Q29udGVudCA9IExPUkVNX0lQU1VNLnN1YnN0cigKKyAgICAgICAgICAgICAg
ICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApLCBNYXRoLmZsb29yKE1hdGgucmFuZG9t
KCkgKiAyMDApICsgMTUwKTsKKyAgICAgICAgICAgIGxpc3RDb250YWluZXIuYXBwZW5kQ2hpbGQo
aXRlbSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZXR1cFRlc3QoKSB7CisgICAg
ICAgICAgICBsaXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxpc3RDb250
YWluZXIiKTsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAg
ICAgICAgICAgICAgICBjcmVhdGVMaXN0SXRlbSgpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5p
bWF0aW9uRnJhbWUocnVuVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgaXNEb25lID0g
ZmFsc2U7CisgICAgICAgIFBlcmZUZXN0UnVubmVyLnByZXBhcmVUb01lYXN1cmVWYWx1ZXNBc3lu
Yyh7IGRvbmU6IGRvbmUsIHVuaXQ6ICdtcycgfSk7CisgICAgICAgIGZ1bmN0aW9uIGRvbmUoKSB7
CisgICAgICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgICAgICAgICAgbGlzdENvbnRhaW5lci5p
bm5lckhUTUwgPSAiIjsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBzdGFydFRpbWU7CisgICAg
ICAgIHZhciBoZWlnaHQgPSAwOworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAg
ICAgICAgaWYgKHN0YXJ0VGltZSkKKyAgICAgICAgICAgICAgICBQZXJmVGVzdFJ1bm5lci5tZWFz
dXJlVmFsdWVBc3luYyhQZXJmVGVzdFJ1bm5lci5ub3coKSAtIHN0YXJ0VGltZSk7CisKKyAgICAg
ICAgICAgIGlmICghaXNEb25lKSB7CisgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gUGVyZlRl
c3RSdW5uZXIubm93KCk7CisgICAgICAgICAgICAgICAgbGlzdENvbnRhaW5lci5maXJzdENoaWxk
LnN0eWxlLmhlaWdodCA9IGhlaWdodCArICJweCI7CisgICAgICAgICAgICAgICAgaGVpZ2h0Kys7
CisgICAgICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShydW5UZXN0KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG9ubG9hZCA9IHNldHVwVGVzdDsK
KyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447008</attachid>
            <date>2021-12-13 08:47:28 -0800</date>
            <delta_ts>2021-12-13 10:15:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233684-20211214004727.patch</filename>
            <type>text/plain</type>
            <size>3705</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2OTQ4CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYwMWFiOTBiNDc3
ZDZmZGU5NTcwNDEwYTRmZGVkMGEwMjNlNmJhODUuLjA5M2ZjZmY4ZmY0ZTEwMDc2N2I5NmViNWY1
MGQzMDBhODVmZWY3YTAgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTIt
MTMgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtQZXJm
b3JtYW5jZSB0ZXN0XSBBZGQgdGVzdCBsb3RzLW9mLXNlbGYtcGFpbnRpbmctbGF5ZXJzLmh0bWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzY4NAor
CisgICAgICAgIFJldmlld2VkIGJ5IFJvYiBCdWlzLgorCisgICAgICAgIFRoaXMgdGVzdCBpcyBh
IHRyYW5zZm9ybSBvZiB0aGUgdGVzdCBbMV0gaW4gYmxpbmsuIEl0IHVzZXMgcG9zaXRpb246IHJl
bGF0aXZlIHRvIGNyZWF0ZQorICAgICAgICBsb3RzIG9mIHNlbGYtcGFpbnRpbmcgbGF5ZXJzLiBC
eSBjaGFuZ2luZyB0aGUgZmlyc3QgbGF5ZXIncyBoZWlnaHQsIGl0IHRyYWNrcyB0aGUgcmVwYWlu
dAorICAgICAgICBwZXJmb3JtYW5jZSBvZiB0aGVzZSBzZWxmLXBhaW50aW5nIGxheWVycy4KKwor
ICAgICAgICBbMV0gdGhpcmRfcGFydHkvYmxpbmsvcGVyZl90ZXN0cy9sYXlvdXQvY29udGFpbi1j
b250ZW50LXN0eWxlLWNoYW5nZS5odG1sCisKKyAgICAgICAgKiBQYWludC9sb3RzLW9mLXNlbGYt
cGFpbnRpbmctbGF5ZXJzLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEyLTA4ICBBbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbGF5b3V0IHBlcmZvcm1hbmNlIHRlc3Qg
Zm9yIHNpbXBsZSBiaWRpIGNvbnRlbnQgd2l0aCBpbmxpbmUgYm94ZXMKZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvUGFpbnQvbG90cy1vZi1zZWxmLXBhaW50aW5nLWxheWVycy5odG1sIGIv
UGVyZm9ybWFuY2VUZXN0cy9QYWludC9sb3RzLW9mLXNlbGYtcGFpbnRpbmctbGF5ZXJzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWE3YTBiNTQ5YTc1YzU3ZThlNjA1ZmU4ODk1ZmY4MmI1NjQ4ZTRlZQotLS0g
L2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvUGFpbnQvbG90cy1vZi1zZWxmLXBhaW50
aW5nLWxheWVycy5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHRpdGxlPlRyYWNraW5n
IHRoZSBwZXJmb3JtYW5jZSBvZiBzZWxmLXBhaW50aW5nIGxheWVyczwvdGl0bGU+Cis8c3R5bGU+
CisgICAgI2xpc3RDb250YWluZXIgeworICAgICAgICBtYXJnaW46IDAgYXV0bzsKKyAgICAgICAg
d2lkdGg6IDYwMHB4OworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorCisgICAg
Lmxpc3RJdGVtIHsKKyAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIGdyZWVuOworICAgICAgICBv
dmVyZmxvdzogaGlkZGVuOworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorPC9z
dHlsZT4KKzwvaGVhZD4KKworPGJvZHk+CisgICAgPHByZSBpZD0ibG9nIj48L3ByZT4KKworICAg
IDxkaXYgaWQ9Imxpc3RDb250YWluZXIiPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGNv
bnN0IExPUkVNX0lQU1VNID0gIkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1
ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxh
Ym9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVp
cyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4
IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5k
ZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxs
YSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVu
dCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3Qg
bGFib3J1bS4iOworCisgICAgICAgIGxldCBsaXN0Q29udGFpbmVyID0gbnVsbDsKKyAgICAgICAg
ZnVuY3Rpb24gY3JlYXRlTGlzdEl0ZW0oKSB7CisgICAgICAgICAgICBsZXQgaXRlbSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgaXRlbS5jbGFzc0xpc3QuYWRk
KCJsaXN0SXRlbSIpOworICAgICAgICAgICAgaXRlbS50ZXh0Q29udGVudCA9IExPUkVNX0lQU1VN
LnN1YnN0cigKKyAgICAgICAgICAgICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAp
LCBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMDApICsgMTUwKTsKKyAgICAgICAgICAgIGxp
c3RDb250YWluZXIuYXBwZW5kQ2hpbGQoaXRlbSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBzZXR1cFRlc3QoKSB7CisgICAgICAgICAgICBsaXN0Q29udGFpbmVyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImxpc3RDb250YWluZXIiKTsKKyAgICAgICAgICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAgICAgICAgICAgICBjcmVhdGVMaXN0SXRlbSgpOwor
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAg
ICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocnVuVGVzdCk7CisgICAgICAgIH0K
KworICAgICAgICB2YXIgaXNEb25lID0gZmFsc2U7CisgICAgICAgIFBlcmZUZXN0UnVubmVyLnBy
ZXBhcmVUb01lYXN1cmVWYWx1ZXNBc3luYyh7IGRvbmU6IGRvbmUsIHVuaXQ6ICdtcycgfSk7Cisg
ICAgICAgIGZ1bmN0aW9uIGRvbmUoKSB7CisgICAgICAgICAgICBpc0RvbmUgPSB0cnVlOworICAg
ICAgICAgICAgbGlzdENvbnRhaW5lci5pbm5lckhUTUwgPSAiIjsKKyAgICAgICAgfQorCisgICAg
ICAgIHZhciBzdGFydFRpbWU7CisgICAgICAgIHZhciBoZWlnaHQgPSAwOworICAgICAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgaWYgKHN0YXJ0VGltZSkKKyAgICAgICAgICAg
ICAgICBQZXJmVGVzdFJ1bm5lci5tZWFzdXJlVmFsdWVBc3luYyhQZXJmVGVzdFJ1bm5lci5ub3co
KSAtIHN0YXJ0VGltZSk7CisKKyAgICAgICAgICAgIGlmICghaXNEb25lKSB7CisgICAgICAgICAg
ICAgICAgc3RhcnRUaW1lID0gUGVyZlRlc3RSdW5uZXIubm93KCk7CisgICAgICAgICAgICAgICAg
bGlzdENvbnRhaW5lci5maXJzdENoaWxkLnN0eWxlLmhlaWdodCA9IGhlaWdodCArICJweCI7Cisg
ICAgICAgICAgICAgICAgaGVpZ2h0Kys7CisgICAgICAgICAgICAgICAgd2luZG93LnJlcXVlc3RB
bmltYXRpb25GcmFtZShydW5UZXN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIG9ubG9hZCA9IHNldHVwVGVzdDsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>