<?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>230810</bug_id>
          
          <creation_ts>2021-09-26 17:49:05 -0700</creation_ts>
          <short_desc>Summary page should support calculating summary using weighted mean.</short_desc>
          <delta_ts>2021-09-27 16:33:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>dewei_zhu</reporter>
          <assigned_to>dewei_zhu</assigned_to>
          <cc>ap</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1797320</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-09-26 17:49:05 -0700</bug_when>
    <thetext>Summary page should support calculating summary using weighted mean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797321</commentid>
    <comment_count>1</comment_count>
      <attachid>439301</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-09-26 17:51:35 -0700</bug_when>
    <thetext>Created attachment 439301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797322</commentid>
    <comment_count>2</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-09-26 17:52:14 -0700</bug_when>
    <thetext>rdar://83554204</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797344</commentid>
    <comment_count>3</comment_count>
      <attachid>439301</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-09-26 21:11:26 -0700</bug_when>
    <thetext>Comment on attachment 439301
Patch

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

&gt; Websites/perf.webkit.org/public/shared/statistics.js:19
&gt; +    this.weightedMean = function (values) {

It&apos;s confusing to call this argument &quot;values&quot;.
Maybe valuesWithWeights?

&gt; Websites/perf.webkit.org/public/shared/statistics.js:27
&gt; +            if (!Array.isArray(item)) {
&gt; +                totalWeight += 1;
&gt; +                sum += item;
&gt; +                continue;
&gt; +            }

I don&apos;t think we should do polymorphism like this.

&gt; Websites/perf.webkit.org/public/shared/statistics.js:31
&gt; +            const [value, weight] = item;
&gt; +            totalWeight += weight;
&gt; +            sum += value * weight;

Why not just use a dictionary / object?
e.g.
totalWeight += item.weight;
sum += item.weight * item.value;

&gt; Websites/perf.webkit.org/public/v3/pages/summary-page.js:17
&gt; +        this._customWeightConfigurations = summarySettings.customWeightConfigurations;

It doesn&apos;t seem useful to say this is custom weight?
How about just weightedConfigurations?

&gt; Websites/perf.webkit.org/public/v3/pages/summary-page.js:352
&gt; +        if (typeof weightForPlatform === &apos;number&apos;)

There is no point in using === here. The value of typeof is always a string.
But it seems problematic to assume anything that&apos;s not a number is an object?
e.g. string and null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797367</commentid>
    <comment_count>4</comment_count>
      <attachid>439318</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-09-26 22:39:34 -0700</bug_when>
    <thetext>Created attachment 439318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797375</commentid>
    <comment_count>5</comment_count>
      <attachid>439318</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-09-26 23:53:25 -0700</bug_when>
    <thetext>Comment on attachment 439318
Patch

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

We really need tests for summary page...

&gt; Websites/perf.webkit.org/public/v3/pages/summary-page.js:17
&gt; +        this._weightConfigurations = summarySettings.weightConfigurations;

This sounds like the configuration of weights. So I think it should be weightedConfigurations.
Like excluded configurations, we&apos;re listing a list of configurations whose weight isn&apos;t 1 along with its weight.

&gt; Websites/perf.webkit.org/public/v3/pages/summary-page.js:354
&gt; +        const isNumber = (object) =&gt; [&apos;number&apos;, &apos;string&apos;].includes(typeof object) &amp;&amp; !isNaN(+object);
&gt; +        if (isNumber(weightForPlatform))
&gt; +            return +weightForPlatform;

This isn&apos;t quite right. This will throw an exception if weightForPlatform is null or true/false as well.
I think what we want to check instead is simply isNaN(+object). i.e.
if (!isNaN(weightForPlatform))
    return weightForPlatform;

&gt; Websites/perf.webkit.org/public/v3/pages/summary-page.js:358
&gt; +        const weight = weightForPlatform[metricId]
&gt; +        if (isNumber(weight))
&gt; +            return +weight;

Here, we probably want to do instead:
if (typeof weightForPlatform != &apos;object&apos; || isNaN(+weightForPlatform[metricId]))
    return 1;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797703</commentid>
    <comment_count>6</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-09-27 16:33:41 -0700</bug_when>
    <thetext>Landed in r283153.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439301</attachid>
            <date>2021-09-26 17:51:35 -0700</date>
            <delta_ts>2021-09-26 22:39:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230810-20210926175134.patch</filename>
            <type>text/plain</type>
            <size>7260</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDkxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA5YWMyYzljZDQwNDM5OGJjMTBlNzg3ZWNkNDQzMjdmMThmYWU5N2M2Li45MTYxNGY1MDlh
N2ZhOWM1MmEwNmE4Y2NlNzFhMmRlMjNhNmM0N2E3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wOS0yNiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBTdW1tYXJ5IHBhZ2Ugc2hvdWxkIHN1cHBvcnQgY2FsY3Vs
YXRpbmcgc3VtbWFyeSB1c2luZyB3ZWlnaHRlZCBtZWFuLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgd2F5IHRvIHNwZWNpZnkgd2VpZ2h0IGZv
ciBhIHBsYXRmb3JtIG9yIChwbGFmZm9ybSwgbWV0cmljKSB3aGljaCB3aWxsIGJlIHVzZWQgd2hp
bGUgY2FsY3VsYXRpbmcgYSBzdW1tYXJ5LgorCisgICAgICAgICogcHVibGljL3NoYXJlZC9zdGF0
aXN0aWNzLmpzOiBBZGRlZCAnd2VpZ2h0ZWRNZWFuJyBmdW5jdGlvbi4KKyAgICAgICAgKFN0YXRp
c3RpY3MubmV3LnRoaXMud2VpZ2h0ZWRNZWFuKToKKyAgICAgICAgKiBwdWJsaWMvdjMvcGFnZXMv
c3VtbWFyeS1wYWdlLmpzOiBBZGRlZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIGEgd2VpZ2h0IGZv
ciBwbGF0Zm9ybSBvciAocGxhdGZvcm0sIG1ldHJpYykuCisgICAgICAgIChTdW1tYXJ5UGFnZSk6
CisgICAgICAgIChTdW1tYXJ5UGFnZS5wcm90b3R5cGUuX2NyZWF0ZUNvbmZpZ3VyYXRpb25Hcm91
cCk6CisgICAgICAgIChTdW1tYXJ5UGFnZUNvbmZpZ3VyYXRpb25Hcm91cCk6CisgICAgICAgICog
dW5pdC10ZXN0cy9zdGF0aXN0aWNzLXRlc3RzLmpzOiBBZGRlZCB1bml0IHRlc3RzLgorCiAyMDIx
LTA3LTIwICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBi
aWdpbnQgZm9yICdjb21taXRfb3JkZXInIGZpZWxkIGluICdjb21taXRzJyB0YWJsZSB0byBzdXBw
b3J0IGxhcmdlciByYW5nZS4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvc2hhcmVkL3N0YXRpc3RpY3MuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3NoYXJlZC9zdGF0aXN0aWNzLmpzCmluZGV4IDMyMjhlYTliNGI2OTg4MWZjMmYxNTFkNDdj
OGZiZDc4ZDdlNDVkOGMuLmY2MzczMTVmMDgyZGQ2M2E5M2IxNjdmNmJiM2JjMjlhOWNkMTc1MGUg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvc2hhcmVkL3N0YXRp
c3RpY3MuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9zaGFyZWQvc3Rh
dGlzdGljcy5qcwpAQCAtMTYsNiArMTYsMjMgQEAgdmFyIFN0YXRpc3RpY3MgPSBuZXcgKGZ1bmN0
aW9uICgpIHsKICAgICAgICAgcmV0dXJuIHRoaXMuc3VtKHZhbHVlcykgLyB2YWx1ZXMubGVuZ3Ro
OwogICAgIH0KIAorICAgIHRoaXMud2VpZ2h0ZWRNZWFuID0gZnVuY3Rpb24gKHZhbHVlcykgewor
ICAgICAgICBsZXQgdG90YWxXZWlnaHQgPSAwOworICAgICAgICBsZXQgc3VtID0gMDsKKyAgICAg
ICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlcykgeworICAgICAgICAgICAgaWYgKCFBcnJheS5p
c0FycmF5KGl0ZW0pKSB7CisgICAgICAgICAgICAgICAgdG90YWxXZWlnaHQgKz0gMTsKKyAgICAg
ICAgICAgICAgICBzdW0gKz0gaXRlbTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGl0ZW0ubGVuZ3RoID09IDIsIGBV
bmV4cGVjdGVkIGVudHJ5IGxlbmdodDogJHtpdGVtLmxlbmd0aH1gKTsKKyAgICAgICAgICAgIGNv
bnN0IFt2YWx1ZSwgd2VpZ2h0XSA9IGl0ZW07CisgICAgICAgICAgICB0b3RhbFdlaWdodCArPSB3
ZWlnaHQ7CisgICAgICAgICAgICBzdW0gKz0gdmFsdWUgKiB3ZWlnaHQ7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHN1bSAvIHRvdGFsV2VpZ2h0OworICAgIH0KKwogICAgIHRoaXMubWVkaWFu
ID0gZnVuY3Rpb24gKHZhbHVlcykgewogICAgICAgICByZXR1cm4gdmFsdWVzLnNvcnQoZnVuY3Rp
b24gKGEsIGIpIHsgcmV0dXJuIGEgLSBiOyB9KVtNYXRoLmZsb29yKHZhbHVlcy5sZW5ndGggLyAy
KV07CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9wYWdlcy9zdW1tYXJ5LXBhZ2UuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL3BhZ2VzL3N1bW1hcnktcGFnZS5qcwppbmRleCBlNDYxOWIxOTc0ODdjZTk3MmMxOGM4MGFm
ZTg5YmZkYjJjZWE4ODdmLi5iNjRlMGE2NzFjNGE3ZTllOWQ0MzYyNGRhYjBjMGFkZWM2MTFiOTY5
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL3N1
bW1hcnktcGFnZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3Bh
Z2VzL3N1bW1hcnktcGFnZS5qcwpAQCAtMTQsNiArMTQsNyBAQCBjbGFzcyBTdW1tYXJ5UGFnZSBl
eHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CiAgICAgICAgIHRoaXMuX3JlbmRlclF1ZXVlID0gW107
CiAgICAgICAgIHRoaXMuX2NvbmZpZ0dyb3VwcyA9IFtdOwogICAgICAgICB0aGlzLl9leGNsdWRl
ZENvbmZpZ3VyYXRpb25zID0gc3VtbWFyeVNldHRpbmdzLmV4Y2x1ZGVkQ29uZmlndXJhdGlvbnM7
CisgICAgICAgIHRoaXMuX2N1c3RvbVdlaWdodENvbmZpZ3VyYXRpb25zID0gc3VtbWFyeVNldHRp
bmdzLmN1c3RvbVdlaWdodENvbmZpZ3VyYXRpb25zOwogCiAgICAgICAgIGZvciAodmFyIG1ldHJp
Y0dyb3VwIG9mIHN1bW1hcnlTZXR0aW5ncy5tZXRyaWNHcm91cHMpIHsKICAgICAgICAgICAgIHZh
ciBncm91cCA9IHtuYW1lOiBtZXRyaWNHcm91cC5uYW1lLCByb3dzOiBbXX07CkBAIC01OSw3ICs2
MCw3IEBAIGNsYXNzIFN1bW1hcnlQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICB7
CiAgICAgICAgIHZhciBwbGF0Zm9ybXMgPSBwbGF0Zm9ybUlkTGlzdC5tYXAoZnVuY3Rpb24gKGlk
KSB7IHJldHVybiBQbGF0Zm9ybS5maW5kQnlJZChpZCk7IH0pLmZpbHRlcihmdW5jdGlvbiAob2Jq
KSB7IHJldHVybiAhIW9iajsgfSk7CiAgICAgICAgIHZhciBtZXRyaWNzID0gbWV0cmljSWRMaXN0
Lm1hcChmdW5jdGlvbiAoaWQpIHsgcmV0dXJuIE1ldHJpYy5maW5kQnlJZChpZCk7IH0pLmZpbHRl
cihmdW5jdGlvbiAob2JqKSB7IHJldHVybiAhIW9iajsgfSk7Ci0gICAgICAgIHZhciBjb25maWdH
cm91cCA9IG5ldyBTdW1tYXJ5UGFnZUNvbmZpZ3VyYXRpb25Hcm91cChwbGF0Zm9ybXMsIG1ldHJp
Y3MsIHRoaXMuX2V4Y2x1ZGVkQ29uZmlndXJhdGlvbnMpOworICAgICAgICB2YXIgY29uZmlnR3Jv
dXAgPSBuZXcgU3VtbWFyeVBhZ2VDb25maWd1cmF0aW9uR3JvdXAocGxhdGZvcm1zLCBtZXRyaWNz
LCB0aGlzLl9leGNsdWRlZENvbmZpZ3VyYXRpb25zLCB0aGlzLl9jdXN0b21XZWlnaHRDb25maWd1
cmF0aW9ucyk7CiAgICAgICAgIHRoaXMuX2NvbmZpZ0dyb3Vwcy5wdXNoKGNvbmZpZ0dyb3VwKTsK
ICAgICAgICAgcmV0dXJuIGNvbmZpZ0dyb3VwOwogICAgIH0KQEAgLTI0Nyw3ICsyNDgsNyBAQCBj
bGFzcyBTdW1tYXJ5UGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CiB9CiAKIGNsYXNzIFN1
bW1hcnlQYWdlQ29uZmlndXJhdGlvbkdyb3VwIHsKLSAgICBjb25zdHJ1Y3RvcihwbGF0Zm9ybXMs
IG1ldHJpY3MsIGV4Y2x1ZGVkQ29uZmlndXJhdGlvbnMpCisgICAgY29uc3RydWN0b3IocGxhdGZv
cm1zLCBtZXRyaWNzLCBleGNsdWRlZENvbmZpZ3VyYXRpb25zLCBjdXN0b21XZWlnaHRDb25maWd1
cmF0aW9ucykKICAgICB7CiAgICAgICAgIHRoaXMuX21lYXN1cmVtZW50U2V0cyA9IFtdOwogICAg
ICAgICB0aGlzLl9jb25maWd1cmF0aW9uTGlzdCA9IFtdOwpAQCAtMjU4LDYgKzI1OSw3IEBAIGNs
YXNzIFN1bW1hcnlQYWdlQ29uZmlndXJhdGlvbkdyb3VwIHsKICAgICAgICAgdGhpcy5fcGxhdGZv
cm1zV2l0aG91dEJhc2VsaW5lID0gbmV3IFNldDsKICAgICAgICAgdGhpcy5faXNGZXRjaGluZyA9
IGZhbHNlOwogICAgICAgICB0aGlzLl9zbWFsbGVySXNCZXR0ZXIgPSBtZXRyaWNzLmxlbmd0aCA/
IG1ldHJpY3NbMF0uaXNTbWFsbGVyQmV0dGVyKCkgOiBudWxsOworICAgICAgICB0aGlzLl9jdXN0
b21XZWlnaHRDb25maWd1cmF0aW9ucyA9IGN1c3RvbVdlaWdodENvbmZpZ3VyYXRpb25zOwogCiAg
ICAgICAgIGZvciAoY29uc3QgcGxhdGZvcm0gb2YgcGxhdGZvcm1zKSB7CiAgICAgICAgICAgICBj
b25zb2xlLmFzc2VydChwbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsKQEAgLTMyMCwxMiAr
MzIyLDEzIEBAIGNsYXNzIFN1bW1hcnlQYWdlQ29uZmlndXJhdGlvbkdyb3VwIHsKICAgICB7CiAg
ICAgICAgIHZhciByYXRpb3MgPSBbXTsKICAgICAgICAgZm9yICh2YXIgc2V0IG9mIHRoaXMuX21l
YXN1cmVtZW50U2V0cykgewotICAgICAgICAgICAgdmFyIHJhdGlvID0gdGhpcy5fc2V0VG9SYXRp
by5nZXQoc2V0KTsKKyAgICAgICAgICAgIGNvbnN0IHJhdGlvID0gdGhpcy5fc2V0VG9SYXRpby5n
ZXQoc2V0KTsKKyAgICAgICAgICAgIGNvbnN0IHdlaWdodCA9IHRoaXMuX3dlaWdodEZvck1lYXN1
cmVtZW50U2V0KHNldCk7CiAgICAgICAgICAgICBpZiAoIWlzTmFOKHJhdGlvKSkKLSAgICAgICAg
ICAgICAgICByYXRpb3MucHVzaChyYXRpbyk7CisgICAgICAgICAgICAgICAgcmF0aW9zLnB1c2go
W3JhdGlvLCB3ZWlnaHRdKTsKICAgICAgICAgfQogCi0gICAgICAgIHZhciBhdmVyYWdlUmF0aW8g
PSBTdGF0aXN0aWNzLm1lYW4ocmF0aW9zKTsKKyAgICAgICAgdmFyIGF2ZXJhZ2VSYXRpbyA9IFN0
YXRpc3RpY3Mud2VpZ2h0ZWRNZWFuKHJhdGlvcyk7CiAgICAgICAgIGlmIChpc05hTihhdmVyYWdl
UmF0aW8pKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0zMzgsNiArMzQxLDIzIEBAIGNsYXNz
IFN1bW1hcnlQYWdlQ29uZmlndXJhdGlvbkdyb3VwIHsKICAgICAgICAgdGhpcy5fY2hhbmdlVHlw
ZSA9IGNoYW5nZVR5cGU7CiAgICAgfQogCisgICAgX3dlaWdodEZvck1lYXN1cmVtZW50U2V0KG1l
YXN1cmVtZW50U2V0KQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9jdXN0b21XZWlnaHRDb25m
aWd1cmF0aW9ucykKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBjb25zdCBwbGF0Zm9y
bUlkID0gbWVhc3VyZW1lbnRTZXQucGxhdGZvcm1JZCgpOworICAgICAgICBjb25zdCB3ZWlnaHRG
b3JQbGF0Zm9ybSA9IHRoaXMuX2N1c3RvbVdlaWdodENvbmZpZ3VyYXRpb25zW3BsYXRmb3JtSWRd
OworICAgICAgICBpZiAoIXdlaWdodEZvclBsYXRmb3JtKQorICAgICAgICAgICAgcmV0dXJuIDE7
CisgICAgICAgIGlmICh0eXBlb2Ygd2VpZ2h0Rm9yUGxhdGZvcm0gPT09ICdudW1iZXInKQorICAg
ICAgICAgICAgcmV0dXJuIHdlaWdodEZvclBsYXRmb3JtOworICAgICAgICBjb25zdCBtZXRyaWNJ
ZCA9IG1lYXN1cmVtZW50U2V0Lm1ldHJpY0lkKCkKKyAgICAgICAgY29uc3Qgd2VpZ2h0ID0gd2Vp
Z2h0Rm9yUGxhdGZvcm1bbWV0cmljSWRdCisgICAgICAgIGlmICh0eXBlb2Ygd2VpZ2h0ID09ICdu
dW1iZXInKQorICAgICAgICAgICAgcmV0dXJuIHdlaWdodDsKKyAgICAgICAgcmV0dXJuIDE7Cisg
ICAgfQorCiAgICAgX2ZldGNoQW5kQ29tcHV0ZVJhdGlvKHNldCwgdGltZVJhbmdlKQogICAgIHsK
ICAgICAgICAgdmFyIHNldFRvUmF0aW8gPSB0aGlzLl9zZXRUb1JhdGlvOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvc3RhdGlzdGljcy10ZXN0cy5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3N0YXRpc3RpY3MtdGVzdHMuanMK
aW5kZXggYWQ2ZjcwNWRmMDg4YmI4ZWU1YTYxZDNkYTJmMjA0MWUwMjM2NmUxOC4uZTE3NTU1Nzli
YzA4MDgyZjliYTNhNjdjZDFmNmJmZjI3OWQ1MTlhZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3VuaXQtdGVzdHMvc3RhdGlzdGljcy10ZXN0cy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9zdGF0aXN0aWNzLXRlc3RzLmpzCkBAIC02Miw2
ICs2MiwyMCBAQCBkZXNjcmliZSgnU3RhdGlzdGljcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKKworICAgIGRlc2NyaWJlKCd3ZWlnaHRlZE1lYW4nLCgpID0+IHsKKyAg
ICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gbWVhbiB3aXRoIHdlaWdodCcsICgpID0+IHsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChTdGF0aXN0aWNzLndlaWdodGVkTWVhbihbWzEsIDFdLCBbMiwg
Ml0sIFszLCAzXSwgWzQsIDRdXSksIDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFN0YXRp
c3RpY3Mud2VpZ2h0ZWRNZWFuKFtbMSwgMV0sIFsyLCAwXSwgWzMsIDBdLCBbNCwgMF1dKSwgMSk7
CisgICAgICAgIH0pOworICAgICAgICBpdCgnc2hvdWxkIGFzc2lnbiBkZWZhdWx0IHdlaWdodCAx
IGlmIHdlaWdodCBpcyBub3Qgc3BlY2lmaWVkJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKFN0YXRpc3RpY3Mud2VpZ2h0ZWRNZWFuKFsxLCAyLCAzLCA0XSksCisgICAgICAgICAg
ICAgICAgU3RhdGlzdGljcy53ZWlnaHRlZE1lYW4oW1sxLCAxXSwgWzIsIDFdLCBbMywgMV0sIFs0
LCAxXV0pKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChTdGF0aXN0aWNzLndlaWdodGVkTWVh
bihbWzEsIDFdLCBbMiwgMl0sIFszLCAzXSwgWzQsIDRdXSksCisgICAgICAgICAgICAgICAgU3Rh
dGlzdGljcy53ZWlnaHRlZE1lYW4oWzEsIFsyLCAyXSwgWzMsIDNdLCBbNCwgNF1dKSk7CisgICAg
ICAgIH0pCisgICAgfSk7CisKICAgICBkZXNjcmliZSgnc3F1YXJlU3VtJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICBpdCgnc2hvdWxkIGZpbmQgdGhlIHNxdWFyZSBzdW0gb2YgdmFsdWVzJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFN0YXRpc3RpY3Muc3F1YXJlU3Vt
KFsxLCAyLCAzLCA0XSksIDMwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439318</attachid>
            <date>2021-09-26 22:39:34 -0700</date>
            <delta_ts>2021-09-26 23:53:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230810-20210926223933.patch</filename>
            <type>text/plain</type>
            <size>6828</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDkxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA5YWMyYzljZDQwNDM5OGJjMTBlNzg3ZWNkNDQzMjdmMThmYWU5N2M2Li45MTYxNGY1MDlh
N2ZhOWM1MmEwNmE4Y2NlNzFhMmRlMjNhNmM0N2E3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wOS0yNiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBTdW1tYXJ5IHBhZ2Ugc2hvdWxkIHN1cHBvcnQgY2FsY3Vs
YXRpbmcgc3VtbWFyeSB1c2luZyB3ZWlnaHRlZCBtZWFuLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgd2F5IHRvIHNwZWNpZnkgd2VpZ2h0IGZv
ciBhIHBsYXRmb3JtIG9yIChwbGFmZm9ybSwgbWV0cmljKSB3aGljaCB3aWxsIGJlIHVzZWQgd2hp
bGUgY2FsY3VsYXRpbmcgYSBzdW1tYXJ5LgorCisgICAgICAgICogcHVibGljL3NoYXJlZC9zdGF0
aXN0aWNzLmpzOiBBZGRlZCAnd2VpZ2h0ZWRNZWFuJyBmdW5jdGlvbi4KKyAgICAgICAgKFN0YXRp
c3RpY3MubmV3LnRoaXMud2VpZ2h0ZWRNZWFuKToKKyAgICAgICAgKiBwdWJsaWMvdjMvcGFnZXMv
c3VtbWFyeS1wYWdlLmpzOiBBZGRlZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIGEgd2VpZ2h0IGZv
ciBwbGF0Zm9ybSBvciAocGxhdGZvcm0sIG1ldHJpYykuCisgICAgICAgIChTdW1tYXJ5UGFnZSk6
CisgICAgICAgIChTdW1tYXJ5UGFnZS5wcm90b3R5cGUuX2NyZWF0ZUNvbmZpZ3VyYXRpb25Hcm91
cCk6CisgICAgICAgIChTdW1tYXJ5UGFnZUNvbmZpZ3VyYXRpb25Hcm91cCk6CisgICAgICAgICog
dW5pdC10ZXN0cy9zdGF0aXN0aWNzLXRlc3RzLmpzOiBBZGRlZCB1bml0IHRlc3RzLgorCiAyMDIx
LTA3LTIwICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBi
aWdpbnQgZm9yICdjb21taXRfb3JkZXInIGZpZWxkIGluICdjb21taXRzJyB0YWJsZSB0byBzdXBw
b3J0IGxhcmdlciByYW5nZS4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvc2hhcmVkL3N0YXRpc3RpY3MuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3NoYXJlZC9zdGF0aXN0aWNzLmpzCmluZGV4IDMyMjhlYTliNGI2OTg4MWZjMmYxNTFkNDdj
OGZiZDc4ZDdlNDVkOGMuLjVlZDYzMWExNzI4MGVkMzYyODkwN2ZhZWNjZGY5YzI5YTk1YTUwMWMg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvc2hhcmVkL3N0YXRp
c3RpY3MuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9zaGFyZWQvc3Rh
dGlzdGljcy5qcwpAQCAtMTYsNiArMTYsMTYgQEAgdmFyIFN0YXRpc3RpY3MgPSBuZXcgKGZ1bmN0
aW9uICgpIHsKICAgICAgICAgcmV0dXJuIHRoaXMuc3VtKHZhbHVlcykgLyB2YWx1ZXMubGVuZ3Ro
OwogICAgIH0KIAorICAgIHRoaXMud2VpZ2h0ZWRNZWFuID0gZnVuY3Rpb24gKHZhbHVlc1dpdGhX
ZWlnaHRzKSB7CisgICAgICAgIGxldCB0b3RhbFdlaWdodCA9IDA7CisgICAgICAgIGxldCBzdW0g
PSAwOworICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHZhbHVlc1dpdGhXZWlnaHRzKSB7Cisg
ICAgICAgICAgICB0b3RhbFdlaWdodCArPSBlbnRyeS53ZWlnaHQ7CisgICAgICAgICAgICBzdW0g
Kz0gZW50cnkudmFsdWUgKiBlbnRyeS53ZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IHN1bSAvIHRvdGFsV2VpZ2h0OworICAgIH0KKwogICAgIHRoaXMubWVkaWFuID0gZnVuY3Rpb24g
KHZhbHVlcykgewogICAgICAgICByZXR1cm4gdmFsdWVzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsg
cmV0dXJuIGEgLSBiOyB9KVtNYXRoLmZsb29yKHZhbHVlcy5sZW5ndGggLyAyKV07CiAgICAgfQpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9zdW1t
YXJ5LXBhZ2UuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL3N1
bW1hcnktcGFnZS5qcwppbmRleCBlNDYxOWIxOTc0ODdjZTk3MmMxOGM4MGFmZTg5YmZkYjJjZWE4
ODdmLi5hMGRlMWFkYmRkY2YyZDk1MDcxMzU2OTY3NjhkMDUwMGYwYTc2YjgwIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL3N1bW1hcnktcGFnZS5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL3N1bW1hcnkt
cGFnZS5qcwpAQCAtMTQsNiArMTQsNyBAQCBjbGFzcyBTdW1tYXJ5UGFnZSBleHRlbmRzIFBhZ2VX
aXRoSGVhZGluZyB7CiAgICAgICAgIHRoaXMuX3JlbmRlclF1ZXVlID0gW107CiAgICAgICAgIHRo
aXMuX2NvbmZpZ0dyb3VwcyA9IFtdOwogICAgICAgICB0aGlzLl9leGNsdWRlZENvbmZpZ3VyYXRp
b25zID0gc3VtbWFyeVNldHRpbmdzLmV4Y2x1ZGVkQ29uZmlndXJhdGlvbnM7CisgICAgICAgIHRo
aXMuX3dlaWdodENvbmZpZ3VyYXRpb25zID0gc3VtbWFyeVNldHRpbmdzLndlaWdodENvbmZpZ3Vy
YXRpb25zOwogCiAgICAgICAgIGZvciAodmFyIG1ldHJpY0dyb3VwIG9mIHN1bW1hcnlTZXR0aW5n
cy5tZXRyaWNHcm91cHMpIHsKICAgICAgICAgICAgIHZhciBncm91cCA9IHtuYW1lOiBtZXRyaWNH
cm91cC5uYW1lLCByb3dzOiBbXX07CkBAIC01OSw3ICs2MCw3IEBAIGNsYXNzIFN1bW1hcnlQYWdl
IGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICB7CiAgICAgICAgIHZhciBwbGF0Zm9ybXMg
PSBwbGF0Zm9ybUlkTGlzdC5tYXAoZnVuY3Rpb24gKGlkKSB7IHJldHVybiBQbGF0Zm9ybS5maW5k
QnlJZChpZCk7IH0pLmZpbHRlcihmdW5jdGlvbiAob2JqKSB7IHJldHVybiAhIW9iajsgfSk7CiAg
ICAgICAgIHZhciBtZXRyaWNzID0gbWV0cmljSWRMaXN0Lm1hcChmdW5jdGlvbiAoaWQpIHsgcmV0
dXJuIE1ldHJpYy5maW5kQnlJZChpZCk7IH0pLmZpbHRlcihmdW5jdGlvbiAob2JqKSB7IHJldHVy
biAhIW9iajsgfSk7Ci0gICAgICAgIHZhciBjb25maWdHcm91cCA9IG5ldyBTdW1tYXJ5UGFnZUNv
bmZpZ3VyYXRpb25Hcm91cChwbGF0Zm9ybXMsIG1ldHJpY3MsIHRoaXMuX2V4Y2x1ZGVkQ29uZmln
dXJhdGlvbnMpOworICAgICAgICB2YXIgY29uZmlnR3JvdXAgPSBuZXcgU3VtbWFyeVBhZ2VDb25m
aWd1cmF0aW9uR3JvdXAocGxhdGZvcm1zLCBtZXRyaWNzLCB0aGlzLl9leGNsdWRlZENvbmZpZ3Vy
YXRpb25zLCB0aGlzLl93ZWlnaHRDb25maWd1cmF0aW9ucyk7CiAgICAgICAgIHRoaXMuX2NvbmZp
Z0dyb3Vwcy5wdXNoKGNvbmZpZ0dyb3VwKTsKICAgICAgICAgcmV0dXJuIGNvbmZpZ0dyb3VwOwog
ICAgIH0KQEAgLTI0Nyw3ICsyNDgsNyBAQCBjbGFzcyBTdW1tYXJ5UGFnZSBleHRlbmRzIFBhZ2VX
aXRoSGVhZGluZyB7CiB9CiAKIGNsYXNzIFN1bW1hcnlQYWdlQ29uZmlndXJhdGlvbkdyb3VwIHsK
LSAgICBjb25zdHJ1Y3RvcihwbGF0Zm9ybXMsIG1ldHJpY3MsIGV4Y2x1ZGVkQ29uZmlndXJhdGlv
bnMpCisgICAgY29uc3RydWN0b3IocGxhdGZvcm1zLCBtZXRyaWNzLCBleGNsdWRlZENvbmZpZ3Vy
YXRpb25zLCB3ZWlnaHRDb25maWd1cmF0aW9ucykKICAgICB7CiAgICAgICAgIHRoaXMuX21lYXN1
cmVtZW50U2V0cyA9IFtdOwogICAgICAgICB0aGlzLl9jb25maWd1cmF0aW9uTGlzdCA9IFtdOwpA
QCAtMjU4LDYgKzI1OSw3IEBAIGNsYXNzIFN1bW1hcnlQYWdlQ29uZmlndXJhdGlvbkdyb3VwIHsK
ICAgICAgICAgdGhpcy5fcGxhdGZvcm1zV2l0aG91dEJhc2VsaW5lID0gbmV3IFNldDsKICAgICAg
ICAgdGhpcy5faXNGZXRjaGluZyA9IGZhbHNlOwogICAgICAgICB0aGlzLl9zbWFsbGVySXNCZXR0
ZXIgPSBtZXRyaWNzLmxlbmd0aCA/IG1ldHJpY3NbMF0uaXNTbWFsbGVyQmV0dGVyKCkgOiBudWxs
OworICAgICAgICB0aGlzLl93ZWlnaHRDb25maWd1cmF0aW9ucyA9IHdlaWdodENvbmZpZ3VyYXRp
b25zOwogCiAgICAgICAgIGZvciAoY29uc3QgcGxhdGZvcm0gb2YgcGxhdGZvcm1zKSB7CiAgICAg
ICAgICAgICBjb25zb2xlLmFzc2VydChwbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsKQEAg
LTMyMCwxMiArMzIyLDEzIEBAIGNsYXNzIFN1bW1hcnlQYWdlQ29uZmlndXJhdGlvbkdyb3VwIHsK
ICAgICB7CiAgICAgICAgIHZhciByYXRpb3MgPSBbXTsKICAgICAgICAgZm9yICh2YXIgc2V0IG9m
IHRoaXMuX21lYXN1cmVtZW50U2V0cykgewotICAgICAgICAgICAgdmFyIHJhdGlvID0gdGhpcy5f
c2V0VG9SYXRpby5nZXQoc2V0KTsKKyAgICAgICAgICAgIGNvbnN0IHJhdGlvID0gdGhpcy5fc2V0
VG9SYXRpby5nZXQoc2V0KTsKKyAgICAgICAgICAgIGNvbnN0IHdlaWdodCA9IHRoaXMuX3dlaWdo
dEZvck1lYXN1cmVtZW50U2V0KHNldCk7CiAgICAgICAgICAgICBpZiAoIWlzTmFOKHJhdGlvKSkK
LSAgICAgICAgICAgICAgICByYXRpb3MucHVzaChyYXRpbyk7CisgICAgICAgICAgICAgICAgcmF0
aW9zLnB1c2goe3ZhbHVlOiByYXRpbywgd2VpZ2h0fSk7CiAgICAgICAgIH0KIAotICAgICAgICB2
YXIgYXZlcmFnZVJhdGlvID0gU3RhdGlzdGljcy5tZWFuKHJhdGlvcyk7CisgICAgICAgIHZhciBh
dmVyYWdlUmF0aW8gPSBTdGF0aXN0aWNzLndlaWdodGVkTWVhbihyYXRpb3MpOwogICAgICAgICBp
ZiAoaXNOYU4oYXZlcmFnZVJhdGlvKSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMzM4LDYg
KzM0MSwyNCBAQCBjbGFzcyBTdW1tYXJ5UGFnZUNvbmZpZ3VyYXRpb25Hcm91cCB7CiAgICAgICAg
IHRoaXMuX2NoYW5nZVR5cGUgPSBjaGFuZ2VUeXBlOwogICAgIH0KIAorICAgIF93ZWlnaHRGb3JN
ZWFzdXJlbWVudFNldChtZWFzdXJlbWVudFNldCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5f
d2VpZ2h0Q29uZmlndXJhdGlvbnMpCisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgY29u
c3QgcGxhdGZvcm1JZCA9IG1lYXN1cmVtZW50U2V0LnBsYXRmb3JtSWQoKTsKKyAgICAgICAgY29u
c3Qgd2VpZ2h0Rm9yUGxhdGZvcm0gPSB0aGlzLl93ZWlnaHRDb25maWd1cmF0aW9uc1twbGF0Zm9y
bUlkXTsKKyAgICAgICAgaWYgKCF3ZWlnaHRGb3JQbGF0Zm9ybSkKKyAgICAgICAgICAgIHJldHVy
biAxOworICAgICAgICBjb25zdCBpc051bWJlciA9IChvYmplY3QpID0+IFsnbnVtYmVyJywgJ3N0
cmluZyddLmluY2x1ZGVzKHR5cGVvZiBvYmplY3QpICYmICFpc05hTigrb2JqZWN0KTsKKyAgICAg
ICAgaWYgKGlzTnVtYmVyKHdlaWdodEZvclBsYXRmb3JtKSkKKyAgICAgICAgICAgIHJldHVybiAr
d2VpZ2h0Rm9yUGxhdGZvcm07CisgICAgICAgIGNvbnN0IG1ldHJpY0lkID0gbWVhc3VyZW1lbnRT
ZXQubWV0cmljSWQoKTsKKyAgICAgICAgY29uc3Qgd2VpZ2h0ID0gd2VpZ2h0Rm9yUGxhdGZvcm1b
bWV0cmljSWRdCisgICAgICAgIGlmIChpc051bWJlcih3ZWlnaHQpKQorICAgICAgICAgICAgcmV0
dXJuICt3ZWlnaHQ7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwogICAgIF9mZXRjaEFuZENv
bXB1dGVSYXRpbyhzZXQsIHRpbWVSYW5nZSkKICAgICB7CiAgICAgICAgIHZhciBzZXRUb1JhdGlv
ID0gdGhpcy5fc2V0VG9SYXRpbzsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy91bml0LXRlc3RzL3N0YXRpc3RpY3MtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdW5pdC10ZXN0cy9zdGF0aXN0aWNzLXRlc3RzLmpzCmluZGV4IGFkNmY3MDVkZjA4OGJiOGVl
NWE2MWQzZGEyZjIwNDFlMDIzNjZlMTguLjZkY2I2MzVkMjEyNGFjNWUyZDU5ZTE2MTBkYWYzMmEy
ZmJhNmE4NGEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3Rz
L3N0YXRpc3RpY3MtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQt
dGVzdHMvc3RhdGlzdGljcy10ZXN0cy5qcwpAQCAtNjIsNiArNjIsMTYgQEAgZGVzY3JpYmUoJ1N0
YXRpc3RpY3MnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisKKyAgICBk
ZXNjcmliZSgnd2VpZ2h0ZWRNZWFuJywoKSA9PiB7CisgICAgICAgIGl0KCdzaG91bGQgcmV0dXJu
IG1lYW4gd2l0aCB3ZWlnaHQnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoU3Rh
dGlzdGljcy53ZWlnaHRlZE1lYW4oW3t2YWx1ZTogMSwgd2VpZ2h0OiAxfSwge3ZhbHVlOiAyLCB3
ZWlnaHQ6IDJ9LAorICAgICAgICAgICAgICAgIHt2YWx1ZTogMywgd2VpZ2h0OiAzfSwge3ZhbHVl
OiA0LCB3ZWlnaHQ6IDR9XSksIDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFN0YXRpc3Rp
Y3Mud2VpZ2h0ZWRNZWFuKFt7dmFsdWU6IDEsIHdlaWdodDogMX0sIHt2YWx1ZTogMiwgd2VpZ2h0
OiAwfSwKKyAgICAgICAgICAgICAgICB7dmFsdWU6IDMsIHdlaWdodDogMH0sIHt2YWx1ZTogNCwg
d2VpZ2h0OiAwfV0pLCAxKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKICAgICBkZXNjcmliZSgn
c3F1YXJlU3VtJywgZnVuY3Rpb24gKCkgewogICAgICAgICBpdCgnc2hvdWxkIGZpbmQgdGhlIHNx
dWFyZSBzdW0gb2YgdmFsdWVzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKFN0YXRpc3RpY3Muc3F1YXJlU3VtKFsxLCAyLCAzLCA0XSksIDMwKTsK
</data>
<flag name="review"
          id="462937"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>