<?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>195242</bug_id>
          
          <creation_ts>2019-03-01 23:16:47 -0800</creation_ts>
          <short_desc>Test freshness page should improve the ability to correlating issues from same builder.</short_desc>
          <delta_ts>2019-06-16 20:53:11 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>dewei_zhu</reporter>
          <assigned_to>dewei_zhu</assigned_to>
          <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1511784</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-03-01 23:16:47 -0800</bug_when>
    <thetext>Test freshness page should highlight status cells from same builder when mouse is hovering over a cell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511785</commentid>
    <comment_count>1</comment_count>
      <attachid>363413</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-03-01 23:50:47 -0800</bug_when>
    <thetext>Created attachment 363413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512398</commentid>
    <comment_count>2</comment_count>
      <attachid>363413</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-03-04 16:00:35 -0800</bug_when>
    <thetext>Comment on attachment 363413
Patch

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

&gt; Websites/perf.webkit.org/public/v3/components/freshness-indicator.js:9
&gt; +        this._builder = builder;

This variable is only used by TestFreshnessPage. That&apos;s not a good practice.

&gt; Websites/perf.webkit.org/public/v3/components/freshness-indicator.js:41
&gt; -    _renderIndicator(lastDataPointDuration, testAgeTolerance, summary, url)
&gt; +    _renderIndicator(lastDataPointDuration, testAgeTolerance, summary, url, builder, hightlighted)

There is no point for this function be taking builder since it doesn&apos;t use it at all.

&gt; Websites/perf.webkit.org/public/v3/pages/test-freshness-page.js:104
&gt; +                const shouldHighlight = this._hoveringIndicator &amp;&amp; this._hoveringIndicator.builder() === lastDataPoint.builder
&gt; +                    &amp;&amp; indicator !== this._hoveringIndicator;

We should be simply storing the builder name in _hoveringIndicator and then comparing this builder against it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512415</commentid>
    <comment_count>3</comment_count>
      <attachid>363413</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-03-04 16:49:20 -0800</bug_when>
    <thetext>Comment on attachment 363413
Patch

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

&gt;&gt; Websites/perf.webkit.org/public/v3/pages/test-freshness-page.js:104
&gt;&gt; +                    &amp;&amp; indicator !== this._hoveringIndicator;
&gt; 
&gt; We should be simply storing the builder name in _hoveringIndicator and then comparing this builder against it.

The builder for an indicator may not be set during right after indicator initialization. It&apos;s set after we fetch the measurement set.
I&apos;ll push a patch with a tooltip in the indicator which will show a bigger scope of this feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512422</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-03-04 17:13:28 -0800</bug_when>
    <thetext>(In reply to dewei_zhu from comment #3)
&gt; Comment on attachment 363413 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=363413&amp;action=review
&gt; 
&gt; &gt;&gt; Websites/perf.webkit.org/public/v3/pages/test-freshness-page.js:104
&gt; &gt;&gt; +                    &amp;&amp; indicator !== this._hoveringIndicator;
&gt; &gt; 
&gt; &gt; We should be simply storing the builder name in _hoveringIndicator and then comparing this builder against it.
&gt; 
&gt; The builder for an indicator may not be set during right after indicator
&gt; initialization. It&apos;s set after we fetch the measurement set.
&gt; I&apos;ll push a patch with a tooltip in the indicator which will show a bigger
&gt; scope of this feature.

Then we should just have a map between each indicator &amp; builder in TestFreshnessPage. We shouldn&apos;t be adding an instance variable to FreshnessIndicator just because it&apos;s a convenient place to store things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513015</commentid>
    <comment_count>5</comment_count>
      <attachid>363737</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-03-06 02:35:14 -0800</bug_when>
    <thetext>Created attachment 363737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513180</commentid>
    <comment_count>6</comment_count>
      <attachid>363787</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-03-06 13:51:58 -0800</bug_when>
    <thetext>Created attachment 363787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513362</commentid>
    <comment_count>7</comment_count>
      <attachid>363835</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-03-06 20:29:37 -0800</bug_when>
    <thetext>Created attachment 363835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515054</commentid>
    <comment_count>8</comment_count>
      <attachid>363835</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-03-11 15:36:21 -0700</bug_when>
    <thetext>Comment on attachment 363835
Patch

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

&gt; Websites/perf.webkit.org/public/v3/components/freshness-indicator.js:25
&gt; +        container.addEventListener(&apos;mouseenter&apos;, () =&gt; this.dispatchAction(&apos;mouseEnterIndicator&apos;, this));

How about &quot;highlight&quot; and &quot;unhighlight&quot; or &quot;select&quot; and &quot;unselect&quot;.
By the way, it&apos;s not great that this UI is only triggering from mouse from accessibility point of view.
Maybe also make it possible to focus these indicators and trigger these when focus / blur?
We can do that in a separate patch though.

&gt; Websites/perf.webkit.org/public/v3/components/freshness-indicator.js:78
&gt; +            a:hover,

We probably shouldn&apos;t automatically highlight during :hover if highlighting is an explicit operation now.

&gt; Websites/perf.webkit.org/public/v3/pages/test-freshness-page.js:12
&gt; +        this._hoveringIndicator = null;

I think more canonical way to name these things in perf dashboard codebase is like _currentlyHighlightedIndicator.

&gt; Websites/perf.webkit.org/public/v3/pages/test-freshness-page.js:151
&gt; +        const containerPadding = 0.3;
&gt; +        const containerMargin = 0.3;

Just get this out of the computed style: getComputedStyle(indicator.element()).paddingLeft. You&apos;d get it in px even!

&gt; Websites/perf.webkit.org/public/v3/pages/test-freshness-page.js:153
&gt; +        const containerHeight = 2;
&gt; +        const containerWidth = 19;

Ditto.

&gt; Websites/perf.webkit.org/public/v3/pages/test-freshness-page.js:158
&gt; +        tooltipContainer.style.top = rect.top - (containerHeight + containerPadding * 2 + containerMargin * 2 - cellMargin) * pixelsPerREM  + &apos;px&apos;;

This is kind of silly. Why don&apos;t we simply set style.bottom instead?

&gt; Websites/perf.webkit.org/public/v3/pages/test-freshness-page.js:159
&gt; +        tooltipContainer.style.left = rect.left + rect.width / 2 - containerWidth / 2 * pixelsPerREM + containerPadding +  containerMargin + &apos;px&apos;;

Nit: two spaces between + and containerMargin

&gt; Websites/perf.webkit.org/public/v3/pages/test-freshness-page.js:305
&gt; +                width: 19rem;

19 seems like an oddly specific number. How about 20rem?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363413</attachid>
            <date>2019-03-01 23:50:47 -0800</date>
            <delta_ts>2019-03-06 02:35:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195242-20190301235047.patch</filename>
            <type>text/plain</type>
            <size>9244</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzA5CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YWIwM2QzOGUzOTZjMmI3MzJiNTA5Zjg3ZGQ3M2MzMDgzMGZiYTZkLi4wZWYzMzAwMTFl
Yzk5ZGI3NWFkZGFkYWVkNDdhMjNhMzZhODc1YjQ2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0wMy0wMSAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBUZXN0IGZyZXNobmVzcyBwYWdlIHNob3VsZCBpbXByb3Zl
IHRoZSBhYmlsaXR5IHRvIGNvcnJlbGF0aW5nIGlzc3VlcyBmcm9tIHNhbWUgYnVpbGRlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTI0MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRoZSBh
YmlsaXR5IHRvIGhpZ2hsaWdodCBpbmRpY2F0b3JzIHdpdGggc2FtZSBidWlsZGVyIHdoZW4gbW91
c2UgaXMgaG92ZXJpbmcgb3ZlciBvbmUgaW5kaWNhdG9yLgorICAgICAgICBUaGlzIGlzIGEgdmVy
eSB1c2VmdWwgdmlzdWFsaXphdGlvbiBmb3IgY29ycmVsYXRpbmcgaXNzdWVzIHNwZWNpZmljIHRv
IGEgYnVpbGRlci4KKworICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRzL2ZyZXNobmVzcy1p
bmRpY2F0b3IuanM6IE1ha2UgaW5kaWNhdG9yIHRvIGRpc3BhdGNoIG1vdXNlIGVudGVyIGFuZCBs
ZWF2ZQorICAgICAgICBtZXNzYWdlcyBzbyB0aGF0IFVJIGNhbiBoaWdobGlnaHQgY29ycmVzcG9u
ZGluZyBjZWxscy4KKyAgICAgICAgKEZyZXNobmVzc0luZGljYXRvcik6CisgICAgICAgIChGcmVz
aG5lc3NJbmRpY2F0b3IucHJvdG90eXBlLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUpOgorICAgICAg
ICAoRnJlc2huZXNzSW5kaWNhdG9yLnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAoRnJlc2hu
ZXNzSW5kaWNhdG9yLnByb3RvdHlwZS5yZW5kZXIpOgorICAgICAgICAoRnJlc2huZXNzSW5kaWNh
dG9yLmNzc1RlbXBsYXRlKToKKyAgICAgICAgKiBwdWJsaWMvdjMvcGFnZXMvdGVzdC1mcmVzaG5l
c3MtcGFnZS5qczogSGlnaGxpZ2h0IGluZGljYXRvcnMgZnJvbSBzYW1lIGJ1aWxkZXIuCisgICAg
ICAgIChUZXN0RnJlc2huZXNzUGFnZSk6CisgICAgICAgIChUZXN0RnJlc2huZXNzUGFnZS5wcm90
b3R5cGUuX2ZldGNoVGVzdFJlc3VsdHMpOgorICAgICAgICAoVGVzdEZyZXNobmVzc1BhZ2UucHJv
dG90eXBlLnJlbmRlcik6CisgICAgICAgIChUZXN0RnJlc2huZXNzUGFnZS5wcm90b3R5cGUuX2Nv
bnN0cnVjdFRhYmxlQ2VsbCk6CisgICAgICAgIChUZXN0RnJlc2huZXNzUGFnZS5jc3NUZW1wbGF0
ZSk6CisKIDIwMTktMDItMjYgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVGhlIHRhYmxlIGhlYWQgb2YgdGVzdCBmcmVzaG5lc3MgcGFnZSBzaG91bGQgbm90IHNj
cm9sbCB3aXRoIHRoZSBwYWdlLgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9jb21wb25lbnRzL2ZyZXNobmVzcy1pbmRpY2F0b3IuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvZnJlc2huZXNzLWluZGljYXRvci5q
cwppbmRleCA0MGRjMjY0M2VkNmQ1MjA0ODI3NDkyMzhhNjM3YTc1OTU3Mzg5M2QzLi4yMjU4MTlk
ZGFjMmM5ZjIxNjRhYzBjZjI1ZDgxZjE3MjU0NTIzZmI4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvZnJlc2huZXNzLWluZGljYXRvci5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvZnJl
c2huZXNzLWluZGljYXRvci5qcwpAQCAtMSwzMiArMSw0NCBAQAogY2xhc3MgRnJlc2huZXNzSW5k
aWNhdG9yIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7Ci0gICAgY29uc3RydWN0b3IobGFzdERhdGFQ
b2ludER1cmF0aW9uLCB0ZXN0QWdlVG9sZXJhbmNlLCBzdW1tYXJ5LCB1cmwpCisgICAgY29uc3Ry
dWN0b3IobGFzdERhdGFQb2ludER1cmF0aW9uLCB0ZXN0QWdlVG9sZXJhbmNlLCBzdW1tYXJ5LCB1
cmwsIGJ1aWxkZXIpCiAgICAgewogICAgICAgICBzdXBlcignZnJlc2huZXNzLWluZGljYXRvcicp
OwogICAgICAgICB0aGlzLl9sYXN0RGF0YVBvaW50RHVyYXRpb24gPSBsYXN0RGF0YVBvaW50RHVy
YXRpb247CiAgICAgICAgIHRoaXMuX3N1bW1hcnkgPSBzdW1tYXJ5OwogICAgICAgICB0aGlzLl90
ZXN0QWdlVG9sZXJhbmNlID0gdGVzdEFnZVRvbGVyYW5jZTsKICAgICAgICAgdGhpcy5fdXJsID0g
dXJsOworICAgICAgICB0aGlzLl9idWlsZGVyID0gYnVpbGRlcjsKKyAgICAgICAgdGhpcy5faGln
aGxpZ2h0ZWQgPSBmYWxzZTsKIAogICAgICAgICB0aGlzLl9yZW5kZXJJbmRpY2F0b3JMYXppbHkg
PSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24odGhpcy5fcmVuZGVySW5kaWNhdG9yLmJpbmQo
dGhpcykpOwogICAgIH0KIAotICAgIHVwZGF0ZShsYXN0RGF0YVBvaW50RHVyYXRpb24sIHRlc3RB
Z2VUb2xlcmFuY2UsIHN1bW1hcnksIHVybCkKKyAgICBidWlsZGVyKCkgeyByZXR1cm4gdGhpcy5f
YnVpbGRlcjsgfQorCisgICAgZGlkQ29uc3RydWN0U2hhZG93VHJlZSgpCisgICAgeworICAgICAg
ICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRlbnQoJ2NvbnRhaW5lcicpOworICAgICAgICBj
b250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRoaXMuZGlzcGF0
Y2hBY3Rpb24oJ21vdXNlRW50ZXJJbmRpY2F0b3InLCB0aGlzKSk7CisgICAgICAgIGNvbnRhaW5l
ci5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlv
bignbW91c2VMZWF2ZUluZGljYXRvcicpKTsKKyAgICB9CisKKyAgICB1cGRhdGUobGFzdERhdGFQ
b2ludER1cmF0aW9uLCB0ZXN0QWdlVG9sZXJhbmNlLCBzdW1tYXJ5LCB1cmwsIGJ1aWxkZXIsIGhp
Z2hsaWdodGVkKQogICAgIHsKICAgICAgICAgdGhpcy5fbGFzdERhdGFQb2ludER1cmF0aW9uID0g
bGFzdERhdGFQb2ludER1cmF0aW9uOwogICAgICAgICB0aGlzLl9zdW1tYXJ5ID0gc3VtbWFyeTsK
ICAgICAgICAgdGhpcy5fdGVzdEFnZVRvbGVyYW5jZSA9IHRlc3RBZ2VUb2xlcmFuY2U7CiAgICAg
ICAgIHRoaXMuX3VybCA9IHVybDsKKyAgICAgICAgdGhpcy5fYnVpbGRlciA9IGJ1aWxkZXI7Cisg
ICAgICAgIHRoaXMuX2hpZ2hsaWdodGVkID0gaGlnaGxpZ2h0ZWQ7CiAgICAgICAgIHRoaXMuZW5x
dWV1ZVRvUmVuZGVyKCk7CiAgICAgfQogCiAgICAgcmVuZGVyKCkKICAgICB7CiAgICAgICAgIHN1
cGVyLnJlbmRlcigpOwotICAgICAgICB0aGlzLl9yZW5kZXJJbmRpY2F0b3JMYXppbHkuZXZhbHVh
dGUodGhpcy5fbGFzdERhdGFQb2ludER1cmF0aW9uLCB0aGlzLl90ZXN0QWdlVG9sZXJhbmNlLCB0
aGlzLl9zdW1tYXJ5LCB0aGlzLl91cmwpOwotCisgICAgICAgIHRoaXMuX3JlbmRlckluZGljYXRv
ckxhemlseS5ldmFsdWF0ZSh0aGlzLl9sYXN0RGF0YVBvaW50RHVyYXRpb24sIHRoaXMuX3Rlc3RB
Z2VUb2xlcmFuY2UsIHRoaXMuX3N1bW1hcnksIHRoaXMuX3VybCwgdGhpcy5fYnVpbGRlciwgdGhp
cy5faGlnaGxpZ2h0ZWQpOwogICAgIH0KIAotICAgIF9yZW5kZXJJbmRpY2F0b3IobGFzdERhdGFQ
b2ludER1cmF0aW9uLCB0ZXN0QWdlVG9sZXJhbmNlLCBzdW1tYXJ5LCB1cmwpCisgICAgX3JlbmRl
ckluZGljYXRvcihsYXN0RGF0YVBvaW50RHVyYXRpb24sIHRlc3RBZ2VUb2xlcmFuY2UsIHN1bW1h
cnksIHVybCwgYnVpbGRlciwgaGlnaHRsaWdodGVkKQogICAgIHsKICAgICAgICAgY29uc3QgZWxl
bWVudCA9IENvbXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudDsKICAgICAgICAgaWYgKCFsYXN0RGF0
YVBvaW50RHVyYXRpb24pIHsKQEAgLTM5LDcgKzUxLDcgQEAgY2xhc3MgRnJlc2huZXNzSW5kaWNh
dG9yIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIGNvbnN0IHJhdGluZyA9IDEgLyAo
MSArIE1hdGguZXhwKE1hdGgubG9nKDEuMikgKiAoaG91cnNTaW5jZUxhc3REYXRhUG9pbnQgLSB0
ZXN0QWdlVG9sZXJhbmNlSW5Ib3VycykpKTsKICAgICAgICAgY29uc3QgaHVlID0gTWF0aC5yb3Vu
ZCgxMjAgKiByYXRpbmcpOwogICAgICAgICBjb25zdCBicmlnaHRuZXNzID0gTWF0aC5yb3VuZCgz
MCArIDUwICogcmF0aW5nKTsKLSAgICAgICAgY29uc3QgaW5kaWNhdG9yID0gZWxlbWVudCgnYScs
IHtpZDogJ2NlbGwnLCB0aXRsZTogc3VtbWFyeSwgaHJlZjogdXJsfSk7CisgICAgICAgIGNvbnN0
IGluZGljYXRvciA9IGVsZW1lbnQoJ2EnLCB7aWQ6ICdjZWxsJywgdGl0bGU6IHN1bW1hcnksIGhy
ZWY6IHVybCwgY2xhc3M6IGhpZ2h0bGlnaHRlZCA/ICdoaWdobGlnaHQnIDogJyd9KTsKIAogICAg
ICAgICBpbmRpY2F0b3Iuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYGhzbCgke2h1ZX0sIDEwMCUs
ICR7YnJpZ2h0bmVzc30lKWA7CiAgICAgICAgIHRoaXMucmVuZGVyUmVwbGFjZSh0aGlzLmNvbnRl
bnQoJ2NvbnRhaW5lcicpLCBpbmRpY2F0b3IpOwpAQCAtNTQsMjQgKzY2LDMwIEBAIGNsYXNzIEZy
ZXNobmVzc0luZGljYXRvciBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgIHsKICAgICAgICAg
cmV0dXJuIGAKICAgICAgICAgICAgIGRpdiB7CisgICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRv
OwogICAgICAgICAgICAgICAgIGhlaWdodDogMS44cmVtOwogICAgICAgICAgICAgICAgIHdpZHRo
OiAxLjhyZW07Ci0gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMXJlbTsKICAgICAgICAg
ICAgIH0KKwogICAgICAgICAgICAgYSB7CiAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7
CiAgICAgICAgICAgICAgICAgaGVpZ2h0OjEuNnJlbTsKICAgICAgICAgICAgICAgICB3aWR0aDox
LjZyZW07Ci0gICAgICAgICAgICAgICAgbWFyZ2luOiAwLjFyZW07CisgICAgICAgICAgICAgICAg
Ym9yZGVyOiAwLjFyZW07CisgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTsKKyAg
ICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgICAgICAgICAgICAgIHBhZGRp
bmc6IDA7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGE6aG92ZXIgewotICAgICAgICAg
ICAgICAgIGhlaWdodDogMS44cmVtOwotICAgICAgICAgICAgICAgIHdpZHRoOiAxLjhyZW07Ci0g
ICAgICAgICAgICAgICAgbWFyZ2luOiAwcmVtOwotICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7
Ci0gICAgICAgICAgICB9YDsKKyAgICAgICAgICAgIGE6aG92ZXIsCisgICAgICAgICAgICBhLmhp
Z2hsaWdodCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OjEuNHJlbTsKKyAgICAgICAgICAgICAg
ICB3aWR0aDoxLjRyZW07CisgICAgICAgICAgICAgICAgYm9yZGVyOiAwLjJyZW07CisgICAgICAg
ICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKKyAgICAgICAgICAgICAgICBib3JkZXItY29s
b3I6ICMwMDk5ZmY7CisgICAgICAgICAgICB9YAorICAgICAgICAgICAgOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy90ZXN0
LWZyZXNobmVzcy1wYWdlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9w
YWdlcy90ZXN0LWZyZXNobmVzcy1wYWdlLmpzCmluZGV4IDRhYjMyZWFlZjM1MTQ5ZjhiNjRhZTM0
ZTRjYmQwNzQyZGY3MTVjZWQuLjY4YzI4N2JlOWFkMzYyNmQ0ZDQ5NDYwMDc5YWQ3YmFjMTg4ZTQx
YTYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMv
dGVzdC1mcmVzaG5lc3MtcGFnZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL3BhZ2VzL3Rlc3QtZnJlc2huZXNzLXBhZ2UuanMKQEAgLTksNiArOSw3IEBAIGNsYXNz
IFRlc3RGcmVzaG5lc3NQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAgICAgdGhp
cy5fbGFzdERhdGFQb2ludEJ5Q29uZmlndXJhdGlvbiA9IG51bGw7CiAgICAgICAgIHRoaXMuX2lu
ZGljYXRvckJ5Q29uZmlndXJhdGlvbiA9IG51bGw7CiAgICAgICAgIHRoaXMuX3JlbmRlclRhYmxl
TGF6aWx5ID0gbmV3IExhemlseUV2YWx1YXRlZEZ1bmN0aW9uKHRoaXMuX3JlbmRlclRhYmxlLmJp
bmQodGhpcykpOworICAgICAgICB0aGlzLl9ob3ZlcmluZ0luZGljYXRvciA9IG51bGw7CiAKICAg
ICAgICAgdGhpcy5fbG9hZENvbmZpZyhzdW1tYXJ5UGFnZUNvbmZpZ3VyYXRpb24pOwogICAgIH0K
QEAgLTY5LDEyICs3MCwxMyBAQCBjbGFzcyBUZXN0RnJlc2huZXNzUGFnZSBleHRlbmRzIFBhZ2VX
aXRoSGVhZGluZyB7CiAgICAgICAgICAgICAgICAgY29uc3QgbWVhc3VyZW1lbnRTZXQgPSBNZWFz
dXJlbWVudFNldC5maW5kU2V0KHBsYXRmb3JtLmlkKCksIG1ldHJpYy5pZCgpLCBwbGF0Zm9ybS5s
YXN0TW9kaWZpZWQobWV0cmljKSk7CiAgICAgICAgICAgICAgICAgbWVhc3VyZW1lbnRTZXQuZmV0
Y2hCZXR3ZWVuKHN0YXJ0VGltZSwgdGhpcy5fbWVhc3VyZW1lbnRTZXRGZXRjaFRpbWUpLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VGltZVNlcmllcyA9IG1l
YXN1cmVtZW50U2V0LmZldGNoZWRUaW1lU2VyaWVzKCdjdXJyZW50JywgZmFsc2UsIGZhbHNlKTsK
LQogICAgICAgICAgICAgICAgICAgICBsZXQgdGltZUZvckxhc3REYXRhUG9pbnQgPSBzdGFydFRp
bWU7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50VGltZVNlcmllcy5sYXN0UG9pbnQo
KSkKICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVGb3JMYXN0RGF0YVBvaW50ID0gY3VycmVu
dFRpbWVTZXJpZXMubGFzdFBvaW50KCkuYnVpbGQoKS5idWlsZFRpbWUoKTsKIAotICAgICAgICAg
ICAgICAgICAgICBsYXN0RGF0YVBvaW50QnlNZXRyaWMuc2V0KG1ldHJpYywge3RpbWU6IHRpbWVG
b3JMYXN0RGF0YVBvaW50LCBoYXNDdXJyZW50RGF0YVBvaW50OiAhIWN1cnJlbnRUaW1lU2VyaWVz
Lmxhc3RQb2ludCgpfSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RQb2ludCA9IGN1
cnJlbnRUaW1lU2VyaWVzLmxhc3RQb2ludCgpOworICAgICAgICAgICAgICAgICAgICBjb25zdCBi
dWlsZGVyID0gbGFzdFBvaW50ID8gbGFzdFBvaW50LmJ1aWxkKCkuYnVpbGRlcigpIDogbnVsbDsK
KyAgICAgICAgICAgICAgICAgICAgbGFzdERhdGFQb2ludEJ5TWV0cmljLnNldChtZXRyaWMsIHt0
aW1lOiB0aW1lRm9yTGFzdERhdGFQb2ludCwgaGFzQ3VycmVudERhdGFQb2ludDogISFsYXN0UG9p
bnQsIGJ1aWxkZXJ9KTsKICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIo
KTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0KQEAgLTk4LDcgKzEwMCw5IEBA
IGNsYXNzIFRlc3RGcmVzaG5lc3NQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAg
ICAgICAgICAgICAgICAgdGhpcy5fbWVhc3VyZW1lbnRTZXRGZXRjaFRpbWUgLSB0aGlzLl90aW1l
RHVyYXRpb24pKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0IGluZGljYXRvciA9IHRoaXMuX2lu
ZGljYXRvckJ5Q29uZmlndXJhdGlvbi5nZXQocGxhdGZvcm0pLmdldChtZXRyaWMpOwotICAgICAg
ICAgICAgICAgIGluZGljYXRvci51cGRhdGUodGltZUR1cmF0aW9uLCB0aGlzLl90ZXN0QWdlVG9s
ZXJhbmNlLCBzdW1tYXJ5LCB1cmwpOworICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZEhpZ2hs
aWdodCA9IHRoaXMuX2hvdmVyaW5nSW5kaWNhdG9yICYmIHRoaXMuX2hvdmVyaW5nSW5kaWNhdG9y
LmJ1aWxkZXIoKSA9PT0gbGFzdERhdGFQb2ludC5idWlsZGVyCisgICAgICAgICAgICAgICAgICAg
ICYmIGluZGljYXRvciAhPT0gdGhpcy5faG92ZXJpbmdJbmRpY2F0b3I7CisgICAgICAgICAgICAg
ICAgaW5kaWNhdG9yLnVwZGF0ZSh0aW1lRHVyYXRpb24sIHRoaXMuX3Rlc3RBZ2VUb2xlcmFuY2Us
IHN1bW1hcnksIHVybCwgbGFzdERhdGFQb2ludC5idWlsZGVyLCBzaG91bGRIaWdobGlnaHQpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTM4LDYgKzE0MiwxNSBAQCBjbGFz
cyBUZXN0RnJlc2huZXNzUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CiAgICAgICAgICAg
ICByZXR1cm4gZWxlbWVudCgndGQnLCB7Y2xhc3M6ICdibGFuay1jZWxsJ30sIGVsZW1lbnQoJ2Rp
dicpKTsKIAogICAgICAgICBjb25zdCBpbmRpY2F0b3IgPSBuZXcgRnJlc2huZXNzSW5kaWNhdG9y
OworICAgICAgICBpbmRpY2F0b3IubGlzdGVuVG9BY3Rpb24oJ21vdXNlRW50ZXJJbmRpY2F0b3In
LCAob3JpZ2luYXRvcikgPT4geworICAgICAgICAgICAgdGhpcy5faG92ZXJpbmdJbmRpY2F0b3Ig
PSBvcmlnaW5hdG9yOworICAgICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAg
ICAgfSk7CisgICAgICAgIGluZGljYXRvci5saXN0ZW5Ub0FjdGlvbignbW91c2VMZWF2ZUluZGlj
YXRvcicsICgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2hvdmVyaW5nSW5kaWNhdG9yID0gbnVs
bDsKKyAgICAgICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7CisgICAgICAgIH0pOworCiAg
ICAgICAgIGluZGljYXRvckJ5TWV0cmljLnNldChtZXRyaWMsIGluZGljYXRvcik7CiAgICAgICAg
IHJldHVybiBlbGVtZW50KCd0ZCcsIHtjbGFzczogJ3N0YXR1cy1jZWxsJ30sIGluZGljYXRvcik7
CiAgICAgfQpAQCAtMjA4LDcgKzIyMSw3IEBAIGNsYXNzIFRlc3RGcmVzaG5lc3NQYWdlIGV4dGVu
ZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj
RjlGOUY5OwogICAgICAgICAgICAgICAgIGhlaWdodDogMS42cmVtOwogICAgICAgICAgICAgICAg
IHdpZHRoOiAxLjZyZW07Ci0gICAgICAgICAgICAgICAgbWFyZ2luOiAwLjFyZW07CisgICAgICAg
ICAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAg
ICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgIG92ZXJmbG93
OiBoaWRkZW47Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363737</attachid>
            <date>2019-03-06 02:35:14 -0800</date>
            <delta_ts>2019-03-06 13:51:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195242-20190306023514.patch</filename>
            <type>text/plain</type>
            <size>17080</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzk1CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YWIwM2QzOGUzOTZjMmI3MzJiNTA5Zjg3ZGQ3M2MzMDgzMGZiYTZkLi5jZTIwY2RlNTdk
NDkzMmRhNDI0M2M2YTkyYWZhOGNkMmQyNzNkNTUyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxOS0wMy0wNiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBUZXN0IGZyZXNobmVzcyBwYWdlIHNob3VsZCBpbXByb3Zl
IHRoZSBhYmlsaXR5IHRvIGNvcnJlbGF0aW5nIGlzc3VlcyBmcm9tIHNhbWUgYnVpbGRlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTI0MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRoZSBh
YmlsaXR5IHRvIGhpZ2hsaWdodCBpbmRpY2F0b3JzIHdpdGggc2FtZSBidWlsZGVyIHdoZW4gbW91
c2UgaXMgaG92ZXJpbmcgb3ZlciBvbmUgaW5kaWNhdG9yLgorICAgICAgICBUaGlzIGlzIGEgdmVy
eSB1c2VmdWwgdmlzdWFsaXphdGlvbiBmb3IgY29ycmVsYXRpbmcgaXNzdWVzIHNwZWNpZmljIHRv
IGEgYnVpbGRlci4KKyAgICAgICAgQWRkZWQgdG9vbHRpcCB3aXRoIGxhdGVzdCBidWlsZCBsaW5r
IHdoZW4gaG92ZXJpbmcgb3ZlciBhbiBpbmRpY2F0b3IuCisKKyAgICAgICAgKiBwdWJsaWMvdjMv
Y29tcG9uZW50cy9mcmVzaG5lc3MtaW5kaWNhdG9yLmpzOgorICAgICAgICAoRnJlc2huZXNzSW5k
aWNhdG9yKTogUmVtb3ZlZCAnc3VtbWFyeScgZmllbGQgYXMgaXQncyBubyBsb25nZXIgbmVlZGVk
LgorICAgICAgICBBZGRlZCAnaGlnaGxpZ2h0ZWQnIGZpZWxkLgorICAgICAgICAoRnJlc2huZXNz
SW5kaWNhdG9yLnByb3RvdHlwZS51cGRhdGUpOiBBZGRlZCAnaGlnaGxpZ2h0ZWQnIGFyZ3VtZW50
LgorICAgICAgICAoRnJlc2huZXNzSW5kaWNhdG9yLnByb3RvdHlwZS5kaWRDb25zdHJ1Y3RTaGFk
b3dUcmVlKTogTWFrZSBpbmRpY2F0b3IgdG8gZGlzcGF0Y2ggbW91c2UgZW50ZXIgYW5kIGxlYXZl
CisgICAgICAgIG1lc3NhZ2VzIHNvIHRoYXQgVUkgY2FuIGhpZ2hsaWdodCBjb3JyZXNwb25kaW5n
IGNlbGxzLgorICAgICAgICAoRnJlc2huZXNzSW5kaWNhdG9yLnByb3RvdHlwZS5yZW5kZXIpOgor
ICAgICAgICAoRnJlc2huZXNzSW5kaWNhdG9yLmNzc1RlbXBsYXRlKToKKyAgICAgICAgKiBwdWJs
aWMvdjMvcGFnZXMvdGVzdC1mcmVzaG5lc3MtcGFnZS5qczogQWRkZWQgdG9vbHRpcCB0byBzaG93
IGxhdGVzdCBidWlsZCB0aW1lIGFuZCBidWlsZCBsaW5rLgorICAgICAgICBBZGRlZCBsb2dpYyB0
byBtYW51YWxseSBjb21wdXRlIHRhYmxlIGJvZHkgaGVpZ2h0LgorICAgICAgICAoVGVzdEZyZXNo
bmVzc1BhZ2UpOgorICAgICAgICAoVGVzdEZyZXNobmVzc1BhZ2UucHJvdG90eXBlLmRpZENvbnN0
cnVjdFNoYWRvd1RyZWUpOgorICAgICAgICAoVGVzdEZyZXNobmVzc1BhZ2UucHJvdG90eXBlLl9m
ZXRjaFRlc3RSZXN1bHRzKToKKyAgICAgICAgKFRlc3RGcmVzaG5lc3NQYWdlLnByb3RvdHlwZS5y
ZW5kZXIpOgorICAgICAgICAoVGVzdEZyZXNobmVzc1BhZ2UucHJvdG90eXBlLl9yZW5kZXJUb29s
dGlwKToKKyAgICAgICAgKFRlc3RGcmVzaG5lc3NQYWdlLnByb3RvdHlwZS5fY29uc3RydWN0VGFi
bGVDZWxsKToKKyAgICAgICAgKFRlc3RGcmVzaG5lc3NQYWdlLmNzc1RlbXBsYXRlKToKKwogMjAx
OS0wMi0yNiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUg
dGFibGUgaGVhZCBvZiB0ZXN0IGZyZXNobmVzcyBwYWdlIHNob3VsZCBub3Qgc2Nyb2xsIHdpdGgg
dGhlIHBhZ2UuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L2NvbXBvbmVudHMvZnJlc2huZXNzLWluZGljYXRvci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9mcmVzaG5lc3MtaW5kaWNhdG9yLmpzCmluZGV4IDQw
ZGMyNjQzZWQ2ZDUyMDQ4Mjc0OTIzOGE2MzdhNzU5NTczODkzZDMuLjdmYjQ3MmM3MTk2ODhjMzE3
NzBlZjgxNTZhODFiMjc5ZTBmOTQwYmYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9mcmVzaG5lc3MtaW5kaWNhdG9yLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9mcmVzaG5lc3MtaW5k
aWNhdG9yLmpzCkBAIC0zLDMwICszLDM3IEBAIGNsYXNzIEZyZXNobmVzc0luZGljYXRvciBleHRl
bmRzIENvbXBvbmVudEJhc2UgewogICAgIHsKICAgICAgICAgc3VwZXIoJ2ZyZXNobmVzcy1pbmRp
Y2F0b3InKTsKICAgICAgICAgdGhpcy5fbGFzdERhdGFQb2ludER1cmF0aW9uID0gbGFzdERhdGFQ
b2ludER1cmF0aW9uOwotICAgICAgICB0aGlzLl9zdW1tYXJ5ID0gc3VtbWFyeTsKICAgICAgICAg
dGhpcy5fdGVzdEFnZVRvbGVyYW5jZSA9IHRlc3RBZ2VUb2xlcmFuY2U7CiAgICAgICAgIHRoaXMu
X3VybCA9IHVybDsKKyAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWQgPSBmYWxzZTsKIAogICAgICAg
ICB0aGlzLl9yZW5kZXJJbmRpY2F0b3JMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rp
b24odGhpcy5fcmVuZGVySW5kaWNhdG9yLmJpbmQodGhpcykpOwogICAgIH0KIAotICAgIHVwZGF0
ZShsYXN0RGF0YVBvaW50RHVyYXRpb24sIHRlc3RBZ2VUb2xlcmFuY2UsIHN1bW1hcnksIHVybCkK
KyAgICB1cGRhdGUobGFzdERhdGFQb2ludER1cmF0aW9uLCB0ZXN0QWdlVG9sZXJhbmNlLCB1cmws
IGhpZ2hsaWdodGVkKQogICAgIHsKICAgICAgICAgdGhpcy5fbGFzdERhdGFQb2ludER1cmF0aW9u
ID0gbGFzdERhdGFQb2ludER1cmF0aW9uOwotICAgICAgICB0aGlzLl9zdW1tYXJ5ID0gc3VtbWFy
eTsKICAgICAgICAgdGhpcy5fdGVzdEFnZVRvbGVyYW5jZSA9IHRlc3RBZ2VUb2xlcmFuY2U7CiAg
ICAgICAgIHRoaXMuX3VybCA9IHVybDsKKyAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWQgPSBoaWdo
bGlnaHRlZDsKICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKICAgICB9CiAKKyAgICBk
aWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCkKKyAgICB7CisgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9
IHRoaXMuY29udGVudCgnY29udGFpbmVyJyk7CisgICAgICAgIGNvbnRhaW5lci5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbW91c2VFbnRl
ckluZGljYXRvcicsIHRoaXMpKTsKKyAgICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIo
J21vdXNlbGVhdmUnLCAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdtb3VzZUxlYXZlSW5kaWNh
dG9yJykpOworICAgIH0KKwogICAgIHJlbmRlcigpCiAgICAgewogICAgICAgICBzdXBlci5yZW5k
ZXIoKTsKLSAgICAgICAgdGhpcy5fcmVuZGVySW5kaWNhdG9yTGF6aWx5LmV2YWx1YXRlKHRoaXMu
X2xhc3REYXRhUG9pbnREdXJhdGlvbiwgdGhpcy5fdGVzdEFnZVRvbGVyYW5jZSwgdGhpcy5fc3Vt
bWFyeSwgdGhpcy5fdXJsKTsKKyAgICAgICAgdGhpcy5fcmVuZGVySW5kaWNhdG9yTGF6aWx5LmV2
YWx1YXRlKHRoaXMuX2xhc3REYXRhUG9pbnREdXJhdGlvbiwgdGhpcy5fdGVzdEFnZVRvbGVyYW5j
ZSwgdGhpcy5fdXJsLCB0aGlzLl9oaWdobGlnaHRlZCk7CiAKICAgICB9CiAKLSAgICBfcmVuZGVy
SW5kaWNhdG9yKGxhc3REYXRhUG9pbnREdXJhdGlvbiwgdGVzdEFnZVRvbGVyYW5jZSwgc3VtbWFy
eSwgdXJsKQorICAgIF9yZW5kZXJJbmRpY2F0b3IobGFzdERhdGFQb2ludER1cmF0aW9uLCB0ZXN0
QWdlVG9sZXJhbmNlLCB1cmwsIGhpZ2hsaWdodGVkKQogICAgIHsKICAgICAgICAgY29uc3QgZWxl
bWVudCA9IENvbXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudDsKICAgICAgICAgaWYgKCFsYXN0RGF0
YVBvaW50RHVyYXRpb24pIHsKQEAgLTM5LDcgKzQ2LDcgQEAgY2xhc3MgRnJlc2huZXNzSW5kaWNh
dG9yIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIGNvbnN0IHJhdGluZyA9IDEgLyAo
MSArIE1hdGguZXhwKE1hdGgubG9nKDEuMikgKiAoaG91cnNTaW5jZUxhc3REYXRhUG9pbnQgLSB0
ZXN0QWdlVG9sZXJhbmNlSW5Ib3VycykpKTsKICAgICAgICAgY29uc3QgaHVlID0gTWF0aC5yb3Vu
ZCgxMjAgKiByYXRpbmcpOwogICAgICAgICBjb25zdCBicmlnaHRuZXNzID0gTWF0aC5yb3VuZCgz
MCArIDUwICogcmF0aW5nKTsKLSAgICAgICAgY29uc3QgaW5kaWNhdG9yID0gZWxlbWVudCgnYScs
IHtpZDogJ2NlbGwnLCB0aXRsZTogc3VtbWFyeSwgaHJlZjogdXJsfSk7CisgICAgICAgIGNvbnN0
IGluZGljYXRvciA9IGVsZW1lbnQoJ2EnLCB7aWQ6ICdjZWxsJywgaHJlZjogdXJsLCBjbGFzczog
aGlnaGxpZ2h0ZWQgPyAnaGlnaGxpZ2h0JyA6ICcnfSk7CiAKICAgICAgICAgaW5kaWNhdG9yLnN0
eWxlLmJhY2tncm91bmRDb2xvciA9IGBoc2woJHtodWV9LCAxMDAlLCAke2JyaWdodG5lc3N9JSlg
OwogICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50KCdjb250YWluZXInKSwg
aW5kaWNhdG9yKTsKQEAgLTU0LDIzICs2MSwyNyBAQCBjbGFzcyBGcmVzaG5lc3NJbmRpY2F0b3Ig
ZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICB7CiAgICAgICAgIHJldHVybiBgCiAgICAgICAg
ICAgICBkaXYgeworICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgICAgICAgICAg
ICAgIGhlaWdodDogMS44cmVtOwogICAgICAgICAgICAgICAgIHdpZHRoOiAxLjhyZW07Ci0gICAg
ICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMXJlbTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGEgewogICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICAgICAg
IGhlaWdodDoxLjZyZW07CiAgICAgICAgICAgICAgICAgd2lkdGg6MS42cmVtOwotICAgICAgICAg
ICAgICAgIG1hcmdpbjogMC4xcmVtOworICAgICAgICAgICAgICAgIGJvcmRlcjogMC4xcmVtOwor
ICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7CisgICAgICAgICAgICAgICAgYm9y
ZGVyLXN0eWxlOiBzb2xpZDsKICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICBhOmhvdmVyIHsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEu
OHJlbTsKLSAgICAgICAgICAgICAgICB3aWR0aDogMS44cmVtOwotICAgICAgICAgICAgICAgIG1h
cmdpbjogMHJlbTsKLSAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICAgICAgYTpo
b3ZlciwKKyAgICAgICAgICAgIGEuaGlnaGxpZ2h0IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6
IDEuNHJlbTsKKyAgICAgICAgICAgICAgICB3aWR0aDogMS40cmVtOworICAgICAgICAgICAgICAg
IGJvcmRlcjogMC4ycmVtOworICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7Cisg
ICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDA5OWZmOwogICAgICAgICAgICAgfWA7CiAg
ICAgfQogfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9w
YWdlcy90ZXN0LWZyZXNobmVzcy1wYWdlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9wYWdlcy90ZXN0LWZyZXNobmVzcy1wYWdlLmpzCmluZGV4IDRhYjMyZWFlZjM1MTQ5
ZjhiNjRhZTM0ZTRjYmQwNzQyZGY3MTVjZWQuLjUxNzM5Y2E5NTVhZWU2OTJlODdjMTg4ZTYyMWMy
OTg3NjZmMzU3NjYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvcGFnZXMvdGVzdC1mcmVzaG5lc3MtcGFnZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL3BhZ2VzL3Rlc3QtZnJlc2huZXNzLXBhZ2UuanMKQEAgLTksMTAgKzks
MjcgQEAgY2xhc3MgVGVzdEZyZXNobmVzc1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewog
ICAgICAgICB0aGlzLl9sYXN0RGF0YVBvaW50QnlDb25maWd1cmF0aW9uID0gbnVsbDsKICAgICAg
ICAgdGhpcy5faW5kaWNhdG9yQnlDb25maWd1cmF0aW9uID0gbnVsbDsKICAgICAgICAgdGhpcy5f
cmVuZGVyVGFibGVMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24odGhpcy5fcmVu
ZGVyVGFibGUuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX2hvdmVyaW5nSW5kaWNhdG9yID0g
bnVsbDsKKyAgICAgICAgdGhpcy5faG92ZXJpbmdUb29sdGlwID0gZmFsc2U7CisgICAgICAgIHRo
aXMuX2J1aWxkZXJCeUluZGljYXRvciA9IG51bGw7CisgICAgICAgIHRoaXMuX3JlbmRlclRvb2x0
aXBMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24odGhpcy5fcmVuZGVyVG9vbHRp
cC5iaW5kKHRoaXMpKTsKIAogICAgICAgICB0aGlzLl9sb2FkQ29uZmlnKHN1bW1hcnlQYWdlQ29u
ZmlndXJhdGlvbik7CiAgICAgfQogCisgICAgZGlkQ29uc3RydWN0U2hhZG93VHJlZSgpCisgICAg
eworICAgICAgICBjb25zdCB0b29sdGlwQ29udGFpbmVyID0gdGhpcy5jb250ZW50KCd0b29sdGlw
LWNvbnRhaW5lcicpOworICAgICAgICB0b29sdGlwQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIo
J21vdXNlZW50ZXInLCAoKSA9PiB7CisgICAgICAgICAgICB0aGlzLl9ob3ZlcmluZ1Rvb2x0aXAg
PSB0cnVlOworICAgICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgfSk7
CisgICAgICAgIHRvb2x0aXBDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScs
ICgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2hvdmVyaW5nVG9vbHRpcCA9IGZhbHNlOworICAg
ICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAg
ICAgbmFtZSgpIHsgcmV0dXJuICdUZXN0LUZyZXNobmVzcyc7IH0KIAogICAgIF9sb2FkQ29uZmln
KHN1bW1hcnlQYWdlQ29uZmlndXJhdGlvbikKQEAgLTU1LDYgKzcyLDcgQEAgY2xhc3MgVGVzdEZy
ZXNobmVzc1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgIHsKICAgICAgICAgdGhp
cy5fbWVhc3VyZW1lbnRTZXRGZXRjaFRpbWUgPSBEYXRlLm5vdygpOwogICAgICAgICB0aGlzLl9s
YXN0RGF0YVBvaW50QnlDb25maWd1cmF0aW9uID0gbmV3IE1hcDsKKyAgICAgICAgdGhpcy5fYnVp
bGRlckJ5SW5kaWNhdG9yID0gbmV3IE1hcDsKIAogICAgICAgICBjb25zdCBzdGFydFRpbWUgPSB0
aGlzLl9tZWFzdXJlbWVudFNldEZldGNoVGltZSAtIHRoaXMuX3RpbWVEdXJhdGlvbjsKIApAQCAt
NzEsMTAgKzg5LDE3IEBAIGNsYXNzIFRlc3RGcmVzaG5lc3NQYWdlIGV4dGVuZHMgUGFnZVdpdGhI
ZWFkaW5nIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFRpbWVTZXJpZXMgPSBt
ZWFzdXJlbWVudFNldC5mZXRjaGVkVGltZVNlcmllcygnY3VycmVudCcsIGZhbHNlLCBmYWxzZSk7
CiAKICAgICAgICAgICAgICAgICAgICAgbGV0IHRpbWVGb3JMYXN0RGF0YVBvaW50ID0gc3RhcnRU
aW1lOwotICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFRpbWVTZXJpZXMubGFzdFBvaW50
KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aW1lRm9yTGFzdERhdGFQb2ludCA9IGN1cnJl
bnRUaW1lU2VyaWVzLmxhc3RQb2ludCgpLmJ1aWxkKCkuYnVpbGRUaW1lKCk7CisgICAgICAgICAg
ICAgICAgICAgIGxldCBsYXN0QnVpbGRMaW5rID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAg
bGV0IGJ1aWxkZXIgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0UG9pbnQg
PSBjdXJyZW50VGltZVNlcmllcy5sYXN0UG9pbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGxhc3RQb2ludCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGltZUZvckxhc3REYXRhUG9p
bnQgPSBsYXN0UG9pbnQuYnVpbGQoKS5idWlsZFRpbWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxhc3RCdWlsZExpbmsgPSBsYXN0UG9pbnQuYnVpbGQoKS51cmwoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJ1aWxkZXIgPSBsYXN0UG9pbnQuYnVpbGQoKS5idWlsZGVyKCk7CisgICAg
ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBsYXN0RGF0YVBvaW50QnlN
ZXRyaWMuc2V0KG1ldHJpYywge3RpbWU6IHRpbWVGb3JMYXN0RGF0YVBvaW50LCBoYXNDdXJyZW50
RGF0YVBvaW50OiAhIWN1cnJlbnRUaW1lU2VyaWVzLmxhc3RQb2ludCgpfSk7CisgICAgICAgICAg
ICAgICAgICAgIGxhc3REYXRhUG9pbnRCeU1ldHJpYy5zZXQobWV0cmljLCB7dGltZTogdGltZUZv
ckxhc3REYXRhUG9pbnQsIGhhc0N1cnJlbnREYXRhUG9pbnQ6ICEhY3VycmVudFRpbWVTZXJpZXMu
bGFzdFBvaW50KCksCisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0QnVpbGRMaW5rLCBidWls
ZGVyfSk7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7CiAgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CkBAIC04NywyMCArMTEyLDUzIEBAIGNsYXNz
IFRlc3RGcmVzaG5lc3NQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKIAogICAgICAgICB0
aGlzLl9yZW5kZXJUYWJsZUxhemlseS5ldmFsdWF0ZSh0aGlzLl9wbGF0Zm9ybXMsIHRoaXMuX21l
dHJpY3MpOwogCisgICAgICAgIGxldCBidWlsZFN1bW1hcnlGb3JIb3ZlcmluZ0luZGljYXRvciA9
IG51bGw7CisgICAgICAgIGxldCBidWlsZExpbmtGb3JIb3ZlcmluZ0luZGljYXRvciA9IG51bGw7
CisgICAgICAgIGNvbnN0IGJ1aWxkZXJGb3JIb3ZlcmluZ0luZGljYXRvciA9IHRoaXMuX2hvdmVy
aW5nSW5kaWNhdG9yID8gdGhpcy5fYnVpbGRlckJ5SW5kaWNhdG9yLmdldCh0aGlzLl9ob3Zlcmlu
Z0luZGljYXRvcikgOiBudWxsOwogICAgICAgICBmb3IgKGNvbnN0IFtwbGF0Zm9ybSwgbGFzdERh
dGFQb2ludEJ5TWV0cmljXSBvZiB0aGlzLl9sYXN0RGF0YVBvaW50QnlDb25maWd1cmF0aW9uLmVu
dHJpZXMoKSkgewogICAgICAgICAgICAgZm9yIChjb25zdCBbbWV0cmljLCBsYXN0RGF0YVBvaW50
XSBvZiBsYXN0RGF0YVBvaW50QnlNZXRyaWMuZW50cmllcygpKSB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgdGltZUR1cmF0aW9uID0gdGhpcy5fbWVhc3VyZW1lbnRTZXRGZXRjaFRpbWUgLSBsYXN0
RGF0YVBvaW50LnRpbWU7CiAgICAgICAgICAgICAgICAgY29uc3QgdGltZUR1cmF0aW9uU3VtbWFy
eVByZWZpeCA9IGxhc3REYXRhUG9pbnQuaGFzQ3VycmVudERhdGFQb2ludCA/ICcnIDogJ01vcmUg
dGhhbiAnOwogICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVEdXJhdGlvblN1bW1hcnkgPSBCdWls
ZFJlcXVlc3QuZm9ybWF0VGltZUludGVydmFsKHRpbWVEdXJhdGlvbik7Ci0gICAgICAgICAgICAg
ICAgY29uc3QgdGVzdExhYmVsID0gYCIke21ldHJpYy50ZXN0KCkuZnVsbE5hbWUoKX0iIGZvciAi
JHtwbGF0Zm9ybS5uYW1lKCl9ImA7Ci0gICAgICAgICAgICAgICAgY29uc3Qgc3VtbWFyeSA9IGAk
e3RpbWVEdXJhdGlvblN1bW1hcnlQcmVmaXh9JHt0aW1lRHVyYXRpb25TdW1tYXJ5fSBzaW5jZSBs
YXN0IGRhdGEgcG9pbnQgb24gJHt0ZXN0TGFiZWx9YDsKKyAgICAgICAgICAgICAgICBjb25zdCBz
dW1tYXJ5ID0gYCR7dGltZUR1cmF0aW9uU3VtbWFyeVByZWZpeH0ke3RpbWVEdXJhdGlvblN1bW1h
cnl9IHNpbmNlIGxhdGVzdCBkYXRhIHBvaW50LmA7CiAgICAgICAgICAgICAgICAgY29uc3QgdXJs
ID0gdGhpcy5fcm91dGVyLnVybCgnY2hhcnRzJywgQ2hhcnRzUGFnZS5jcmVhdGVTdGF0ZUZvckRh
c2hib2FyZEl0ZW0ocGxhdGZvcm0uaWQoKSwgbWV0cmljLmlkKCksCiAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX21lYXN1cmVtZW50U2V0RmV0Y2hUaW1lIC0gdGhpcy5fdGltZUR1cmF0aW9uKSk7
CiAKICAgICAgICAgICAgICAgICBjb25zdCBpbmRpY2F0b3IgPSB0aGlzLl9pbmRpY2F0b3JCeUNv
bmZpZ3VyYXRpb24uZ2V0KHBsYXRmb3JtKS5nZXQobWV0cmljKTsKLSAgICAgICAgICAgICAgICBp
bmRpY2F0b3IudXBkYXRlKHRpbWVEdXJhdGlvbiwgdGhpcy5fdGVzdEFnZVRvbGVyYW5jZSwgc3Vt
bWFyeSwgdXJsKTsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5faG92ZXJpbmdJbmRpY2F0b3Ig
JiYgdGhpcy5faG92ZXJpbmdJbmRpY2F0b3IgPT09IGluZGljYXRvcikgeworICAgICAgICAgICAg
ICAgICAgICBidWlsZFN1bW1hcnlGb3JIb3ZlcmluZ0luZGljYXRvciA9IHN1bW1hcnk7CisgICAg
ICAgICAgICAgICAgICAgIGJ1aWxkTGlua0ZvckhvdmVyaW5nSW5kaWNhdG9yID0gbGFzdERhdGFQ
b2ludC5sYXN0QnVpbGRMaW5rOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0
aGlzLl9idWlsZGVyQnlJbmRpY2F0b3Iuc2V0KGluZGljYXRvciwgbGFzdERhdGFQb2ludC5idWls
ZGVyKTsKKyAgICAgICAgICAgICAgICBpbmRpY2F0b3IudXBkYXRlKHRpbWVEdXJhdGlvbiwgdGhp
cy5fdGVzdEFnZVRvbGVyYW5jZSwgdXJsLCBidWlsZGVyRm9ySG92ZXJpbmdJbmRpY2F0b3IgJiYg
YnVpbGRlckZvckhvdmVyaW5nSW5kaWNhdG9yID09PSBsYXN0RGF0YVBvaW50LmJ1aWxkZXIpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CisgICAgICAgIHRoaXMuX3JlbmRlclRvb2x0aXBMYXpp
bHkuZXZhbHVhdGUodGhpcy5faG92ZXJpbmdJbmRpY2F0b3IsIHRoaXMuX2hvdmVyaW5nVG9vbHRp
cCwgYnVpbGRTdW1tYXJ5Rm9ySG92ZXJpbmdJbmRpY2F0b3IsIGJ1aWxkTGlua0ZvckhvdmVyaW5n
SW5kaWNhdG9yKTsKKyAgICB9CisKKyAgICBfcmVuZGVyVG9vbHRpcChpbmRpY2F0b3IsIGhvdmVy
aW5nVG9vbHRpcCwgYnVpbGRTdW1tYXJ5LCBidWlsZExpbmspCisgICAgeworICAgICAgICBpZiAo
IWluZGljYXRvcikgeworICAgICAgICAgICAgdGhpcy5jb250ZW50KCd0b29sdGlwLWNvbnRhaW5l
cicpLnN0eWxlLmRpc3BsYXkgPSBob3ZlcmluZ1Rvb2x0aXAgPyBudWxsIDogJ25vbmUnOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IENv
bXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudDsKKworICAgICAgICBjb25zdCBwaXhlbHNQZXJSRU0g
PSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZm9u
dFNpemUpOworICAgICAgICBjb25zdCByZWN0ID0gaW5kaWNhdG9yLmVsZW1lbnQoKS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgY29uc3QgY29udGFpbmVyUGFkZGluZyA9IDAuMzsK
KyAgICAgICAgY29uc3QgY29udGFpbmVyTWFyZ2luID0gMC4zOworICAgICAgICBjb25zdCBjb250
YWluZXJIZWlnaHQgPSA0LjUgOworICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IDE5Owor
ICAgICAgICBjb25zdCBjZWxsTWFyZ2luID0gMC4yOworICAgICAgICBjb25zdCB0b29sdGlwQ29u
dGFpbmVyID0gdGhpcy5jb250ZW50KCd0b29sdGlwLWNvbnRhaW5lcicpOworICAgICAgICB0b29s
dGlwQ29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSBudWxsOworICAgICAgICB0b29sdGlwQ29udGFp
bmVyLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKKyAgICAgICAgdG9vbHRpcENvbnRhaW5l
ci5zdHlsZS50b3AgPSByZWN0LnRvcCAtIChjb250YWluZXJIZWlnaHQgKyBjb250YWluZXJQYWRk
aW5nICogMiArIGNvbnRhaW5lck1hcmdpbiAqIDIgLSBjZWxsTWFyZ2luKSAqIHBpeGVsc1BlclJF
TSAgKyAncHgnOworICAgICAgICB0b29sdGlwQ29udGFpbmVyLnN0eWxlLmxlZnQgPSByZWN0Lmxl
ZnQgKyByZWN0LndpZHRoIC8gMiAtIGNvbnRhaW5lcldpZHRoIC8gMiAqIHBpeGVsc1BlclJFTSAr
IGNvbnRhaW5lclBhZGRpbmcgKyAgY29udGFpbmVyTWFyZ2luICsgJ3B4JzsKKworICAgICAgICB0
aGlzLnJlbmRlclJlcGxhY2UodG9vbHRpcENvbnRhaW5lciwgW2VsZW1lbnQoJ3AnLCBidWlsZFN1
bW1hcnkpLCBlbGVtZW50KCdhJywge2hyZWY6IGJ1aWxkTGlua30sICdMYXRlc3QgQnVpbGQnKV0p
OwogICAgIH0KIAogICAgIF9yZW5kZXJUYWJsZShwbGF0Zm9ybXMsIG1ldHJpY3MpCkBAIC0xMjAs
NyArMTc4LDE1IEBAIGNsYXNzIFRlc3RGcmVzaG5lc3NQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFk
aW5nIHsKICAgICAgICAgICAgICAgICBbZWxlbWVudCgndGgnLCB7Y2xhc3M6ICdyb3ctaGVhZCd9
LCBwbGF0Zm9ybS5sYWJlbCgpKSwgLi4ubWV0cmljcy5tYXAoKG1ldHJpYykgPT4gdGhpcy5fY29u
c3RydWN0VGFibGVDZWxsKHBsYXRmb3JtLCBtZXRyaWMsIGluZGljYXRvckJ5TWV0cmljKSldKSk7
CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50KCd0
ZXN0LWhlYWx0aCcpLCBbZWxlbWVudCgndGhlYWQnLCB0YWJsZUhlYWRFbGVtZW50cyksIGVsZW1l
bnQoJ3Rib2R5JywgdGFibGVCb2R5RWxlbWVudCldKTsKKyAgICAgICAgY29uc3QgcGl4ZWxzUGVy
UkVNID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQp
LmZvbnRTaXplKTsKKyAgICAgICAgY29uc3QgZm9vdGVySGVpZ2h0ID0gMjsKKyAgICAgICAgY29u
c3QgcGFnZUhlYWRpbmdIZWlnaHQgPSA2OworICAgICAgICBjb25zdCB0YWJsZUhlYWRlckhlaWdo
dCA9IDE2OworICAgICAgICBjb25zdCB0YWJsZUJvZHlIZWlnaHQgPSBkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gKGZvb3RlckhlaWdodCArIHBhZ2VIZWFkaW5nSGVpZ2h0
ICsgdGFibGVIZWFkZXJIZWlnaHQpICogcGl4ZWxzUGVyUkVNOworICAgICAgICBjb25zdCB0YWJs
ZUJvZHkgPSBlbGVtZW50KCd0Ym9keScsIHRhYmxlQm9keUVsZW1lbnQpOworICAgICAgICB0YWJs
ZUJvZHkuc3R5bGUuaGVpZ2h0ID0gdGFibGVCb2R5SGVpZ2h0ICsgJ3B4JzsKKworICAgICAgICB0
aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50KCd0ZXN0LWhlYWx0aCcpLCBbZWxlbWVudCgn
dGhlYWQnLCB0YWJsZUhlYWRFbGVtZW50cyksIHRhYmxlQm9keV0pOwogICAgIH0KIAogICAgIF9p
c1ZhbGlkUGxhdGZvcm1NZXRyaWNDb21iaW5hdGlvbihwbGF0Zm9ybSwgbWV0cmljKQpAQCAtMTM4
LDEzICsyMDQsMjEgQEAgY2xhc3MgVGVzdEZyZXNobmVzc1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhl
YWRpbmcgewogICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQoJ3RkJywge2NsYXNzOiAnYmxhbmst
Y2VsbCd9LCBlbGVtZW50KCdkaXYnKSk7CiAKICAgICAgICAgY29uc3QgaW5kaWNhdG9yID0gbmV3
IEZyZXNobmVzc0luZGljYXRvcjsKKyAgICAgICAgaW5kaWNhdG9yLmxpc3RlblRvQWN0aW9uKCdt
b3VzZUVudGVySW5kaWNhdG9yJywgKG9yaWdpbmF0b3IpID0+IHsKKyAgICAgICAgICAgIHRoaXMu
X2hvdmVyaW5nSW5kaWNhdG9yID0gb3JpZ2luYXRvcjsKKyAgICAgICAgICAgIHRoaXMuZW5xdWV1
ZVRvUmVuZGVyKCk7CisgICAgICAgIH0pOworICAgICAgICBpbmRpY2F0b3IubGlzdGVuVG9BY3Rp
b24oJ21vdXNlTGVhdmVJbmRpY2F0b3InLCAoKSA9PiB7CisgICAgICAgICAgICB0aGlzLl9ob3Zl
cmluZ0luZGljYXRvciA9IG51bGw7CisgICAgICAgICAgICB0aGlzLmVucXVldWVUb1JlbmRlcigp
OworICAgICAgICB9KTsKICAgICAgICAgaW5kaWNhdG9yQnlNZXRyaWMuc2V0KG1ldHJpYywgaW5k
aWNhdG9yKTsKICAgICAgICAgcmV0dXJuIGVsZW1lbnQoJ3RkJywge2NsYXNzOiAnc3RhdHVzLWNl
bGwnfSwgaW5kaWNhdG9yKTsKICAgICB9CiAKICAgICBzdGF0aWMgaHRtbFRlbXBsYXRlKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBgPHNlY3Rpb24gY2xhc3M9InBhZ2Utd2l0aC1oZWFkaW5nIj48
dGFibGUgaWQ9InRlc3QtaGVhbHRoIj48L3RhYmxlPjwvc2VjdGlvbj5gOworICAgICAgICByZXR1
cm4gYDxzZWN0aW9uIGNsYXNzPSJwYWdlLXdpdGgtaGVhZGluZyI+PGRpdiBpZD0idG9vbHRpcC1j
b250YWluZXIiPjwvZGl2Pjx0YWJsZSBpZD0idGVzdC1oZWFsdGgiPjwvdGFibGU+PC9zZWN0aW9u
PmA7CiAgICAgfQogCiAgICAgc3RhdGljIGNzc1RlbXBsYXRlKCkKQEAgLTE4Niw3ICsyNjAsNiBA
QCBjbGFzcyBUZXN0RnJlc2huZXNzUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CiAgICAg
ICAgICAgICAjdGVzdC1oZWFsdGggdGJvZHkgewogICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJs
b2NrOwogICAgICAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwotICAgICAgICAgICAgICAgIGhl
aWdodDogNzV2aDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgICN0ZXN0LWhlYWx0aCB0ZC5z
dGF0dXMtY2VsbCB7CiAgICAgICAgICAgICAgICAgbWFyZ2luOiAwOwpAQCAtMjE0LDI2ICsyODcs
NTMgQEAgY2xhc3MgVGVzdEZyZXNobmVzc1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewog
ICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAjdGVzdC1oZWFsdGggdGQuYmxhbmstY2VsbCA+IGRpdjo6YmVmb3JlIHsKLSAgICAgICAg
ICAgICAgY29udGVudDogIiI7Ci0gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAg
ICAgICAgICAgICAgdG9wOiAtMXB4OwotICAgICAgICAgICAgICBsZWZ0OiAtMXB4OwotICAgICAg
ICAgICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgICAgICAgICAgd2lkdGg6IDBweDsKLSAgICAg
ICAgICAgICAgaGVpZ2h0OiAwcHg7Ci0gICAgICAgICAgICAgIGJvcmRlci1yaWdodDogY2FsYygx
LjZyZW0gKyAxcHgpIHNvbGlkICNkZGQ7Ci0gICAgICAgICAgICAgIGJvcmRlci10b3A6IGNhbGMo
MS42cmVtICsgMXB4KSBzb2xpZCB0cmFuc3BhcmVudDsKKyAgICAgICAgICAgICAgICBjb250ZW50
OiAiIjsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICAg
ICAgdG9wOiAtMXB4OworICAgICAgICAgICAgICAgIGxlZnQ6IC0xcHg7CisgICAgICAgICAgICAg
ICAgZGlzcGxheTogYmxvY2s7CisgICAgICAgICAgICAgICAgd2lkdGg6IDBweDsKKyAgICAgICAg
ICAgICAgICBoZWlnaHQ6IDBweDsKKyAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IGNhbGMo
MS42cmVtICsgMXB4KSBzb2xpZCAjZGRkOworICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IGNh
bGMoMS42cmVtICsgMXB4KSBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICN0ZXN0LWhlYWx0aCB0ZC5ibGFuay1jZWxsID4gZGl2OjphZnRlciB7Ci0gICAgICAg
ICAgICAgIGNvbnRlbnQ6ICIiOwotICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgICAgICAgICB0b3A6IDFweDsKLSAg
ICAgICAgICAgICAgbGVmdDogMXB4OwotICAgICAgICAgICAgICB3aWR0aDogMHB4OwotICAgICAg
ICAgICAgICBoZWlnaHQ6IDBweDsKLSAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBjYWxjKDEu
NnJlbSAtIDFweCkgc29saWQgI0Y5RjlGOTsKLSAgICAgICAgICAgICAgYm9yZGVyLXRvcDogY2Fs
YygxLjZyZW0gLSAxcHgpIHNvbGlkIHRyYW5zcGFyZW50OworICAgICAgICAgICAgICAgIGNvbnRl
bnQ6ICIiOworICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICAgICAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgICAgICB0b3A6IDFweDsKKyAgICAgICAg
ICAgICAgICBsZWZ0OiAxcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDBweDsKKyAgICAgICAg
ICAgICAgICBoZWlnaHQ6IDBweDsKKyAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IGNhbGMo
MS42cmVtIC0gMXB4KSBzb2xpZCAjRjlGOUY5OworICAgICAgICAgICAgICAgIGJvcmRlci10b3A6
IGNhbGMoMS42cmVtIC0gMXB4KSBzb2xpZCB0cmFuc3BhcmVudDsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICN0b29sdGlwLWNvbnRhaW5lciB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDE5
cmVtOworICAgICAgICAgICAgICAgIGhlaWdodDogNC41cmVtOworICAgICAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6ICMzNDQ5NUU7CisgICAgICAgICAgICAgICAgb3BhY2l0eTogMC45Owor
ICAgICAgICAgICAgICAgIG1hcmdpbjogMC4zcmVtOworICAgICAgICAgICAgICAgIHBhZGRpbmc6
IDAuM3JlbTsKKyAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjRyZW07CisgICAgICAg
ICAgICAgICAgei1pbmRleDogMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICN0b29sdGlw
LWNvbnRhaW5lcjo6YWZ0ZXIgeworICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICIgIjsKKyAgICAg
ICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICAgICAgdG9wOiAxMDAl
OyAvKiBBdCB0aGUgYm90dG9tIG9mIHRoZSB0b29sdGlwICovCisgICAgICAgICAgICAgICAgbGVm
dDogNTAlOworICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC44cmVtOworICAgICAgICAg
ICAgICAgIGJvcmRlci13aWR0aDogMC4ycmVtOworICAgICAgICAgICAgICAgIGJvcmRlci1zdHls
ZTogc29saWQ7CisgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMzQ0OTVFIHRyYW5zcGFy
ZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAg
I3Rvb2x0aXAtY29udGFpbmVyIHAgeworICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICN0b29sdGlwLWNvbnRhaW5lciBhIHsKKyAgICAgICAg
ICAgICAgICBjb2xvcjogI0IwM0EyRTsKKyAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9s
ZDsKICAgICAgICAgICAgIH0KICAgICAgICAgYDsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363787</attachid>
            <date>2019-03-06 13:51:58 -0800</date>
            <delta_ts>2019-03-06 20:29:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195242-20190306135157.patch</filename>
            <type>text/plain</type>
            <size>16134</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzk1CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YWIwM2QzOGUzOTZjMmI3MzJiNTA5Zjg3ZGQ3M2MzMDgzMGZiYTZkLi5jZTIwY2RlNTdk
NDkzMmRhNDI0M2M2YTkyYWZhOGNkMmQyNzNkNTUyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxOS0wMy0wNiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBUZXN0IGZyZXNobmVzcyBwYWdlIHNob3VsZCBpbXByb3Zl
IHRoZSBhYmlsaXR5IHRvIGNvcnJlbGF0aW5nIGlzc3VlcyBmcm9tIHNhbWUgYnVpbGRlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTI0MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRoZSBh
YmlsaXR5IHRvIGhpZ2hsaWdodCBpbmRpY2F0b3JzIHdpdGggc2FtZSBidWlsZGVyIHdoZW4gbW91
c2UgaXMgaG92ZXJpbmcgb3ZlciBvbmUgaW5kaWNhdG9yLgorICAgICAgICBUaGlzIGlzIGEgdmVy
eSB1c2VmdWwgdmlzdWFsaXphdGlvbiBmb3IgY29ycmVsYXRpbmcgaXNzdWVzIHNwZWNpZmljIHRv
IGEgYnVpbGRlci4KKyAgICAgICAgQWRkZWQgdG9vbHRpcCB3aXRoIGxhdGVzdCBidWlsZCBsaW5r
IHdoZW4gaG92ZXJpbmcgb3ZlciBhbiBpbmRpY2F0b3IuCisKKyAgICAgICAgKiBwdWJsaWMvdjMv
Y29tcG9uZW50cy9mcmVzaG5lc3MtaW5kaWNhdG9yLmpzOgorICAgICAgICAoRnJlc2huZXNzSW5k
aWNhdG9yKTogUmVtb3ZlZCAnc3VtbWFyeScgZmllbGQgYXMgaXQncyBubyBsb25nZXIgbmVlZGVk
LgorICAgICAgICBBZGRlZCAnaGlnaGxpZ2h0ZWQnIGZpZWxkLgorICAgICAgICAoRnJlc2huZXNz
SW5kaWNhdG9yLnByb3RvdHlwZS51cGRhdGUpOiBBZGRlZCAnaGlnaGxpZ2h0ZWQnIGFyZ3VtZW50
LgorICAgICAgICAoRnJlc2huZXNzSW5kaWNhdG9yLnByb3RvdHlwZS5kaWRDb25zdHJ1Y3RTaGFk
b3dUcmVlKTogTWFrZSBpbmRpY2F0b3IgdG8gZGlzcGF0Y2ggbW91c2UgZW50ZXIgYW5kIGxlYXZl
CisgICAgICAgIG1lc3NhZ2VzIHNvIHRoYXQgVUkgY2FuIGhpZ2hsaWdodCBjb3JyZXNwb25kaW5n
IGNlbGxzLgorICAgICAgICAoRnJlc2huZXNzSW5kaWNhdG9yLnByb3RvdHlwZS5yZW5kZXIpOgor
ICAgICAgICAoRnJlc2huZXNzSW5kaWNhdG9yLmNzc1RlbXBsYXRlKToKKyAgICAgICAgKiBwdWJs
aWMvdjMvcGFnZXMvdGVzdC1mcmVzaG5lc3MtcGFnZS5qczogQWRkZWQgdG9vbHRpcCB0byBzaG93
IGxhdGVzdCBidWlsZCB0aW1lIGFuZCBidWlsZCBsaW5rLgorICAgICAgICBBZGRlZCBsb2dpYyB0
byBtYW51YWxseSBjb21wdXRlIHRhYmxlIGJvZHkgaGVpZ2h0LgorICAgICAgICAoVGVzdEZyZXNo
bmVzc1BhZ2UpOgorICAgICAgICAoVGVzdEZyZXNobmVzc1BhZ2UucHJvdG90eXBlLmRpZENvbnN0
cnVjdFNoYWRvd1RyZWUpOgorICAgICAgICAoVGVzdEZyZXNobmVzc1BhZ2UucHJvdG90eXBlLl9m
ZXRjaFRlc3RSZXN1bHRzKToKKyAgICAgICAgKFRlc3RGcmVzaG5lc3NQYWdlLnByb3RvdHlwZS5y
ZW5kZXIpOgorICAgICAgICAoVGVzdEZyZXNobmVzc1BhZ2UucHJvdG90eXBlLl9yZW5kZXJUb29s
dGlwKToKKyAgICAgICAgKFRlc3RGcmVzaG5lc3NQYWdlLnByb3RvdHlwZS5fY29uc3RydWN0VGFi
bGVDZWxsKToKKyAgICAgICAgKFRlc3RGcmVzaG5lc3NQYWdlLmNzc1RlbXBsYXRlKToKKwogMjAx
OS0wMi0yNiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUg
dGFibGUgaGVhZCBvZiB0ZXN0IGZyZXNobmVzcyBwYWdlIHNob3VsZCBub3Qgc2Nyb2xsIHdpdGgg
dGhlIHBhZ2UuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L2NvbXBvbmVudHMvZnJlc2huZXNzLWluZGljYXRvci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9mcmVzaG5lc3MtaW5kaWNhdG9yLmpzCmluZGV4IDQw
ZGMyNjQzZWQ2ZDUyMDQ4Mjc0OTIzOGE2MzdhNzU5NTczODkzZDMuLjdmYjQ3MmM3MTk2ODhjMzE3
NzBlZjgxNTZhODFiMjc5ZTBmOTQwYmYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9mcmVzaG5lc3MtaW5kaWNhdG9yLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9mcmVzaG5lc3MtaW5k
aWNhdG9yLmpzCkBAIC0zLDMwICszLDM3IEBAIGNsYXNzIEZyZXNobmVzc0luZGljYXRvciBleHRl
bmRzIENvbXBvbmVudEJhc2UgewogICAgIHsKICAgICAgICAgc3VwZXIoJ2ZyZXNobmVzcy1pbmRp
Y2F0b3InKTsKICAgICAgICAgdGhpcy5fbGFzdERhdGFQb2ludER1cmF0aW9uID0gbGFzdERhdGFQ
b2ludER1cmF0aW9uOwotICAgICAgICB0aGlzLl9zdW1tYXJ5ID0gc3VtbWFyeTsKICAgICAgICAg
dGhpcy5fdGVzdEFnZVRvbGVyYW5jZSA9IHRlc3RBZ2VUb2xlcmFuY2U7CiAgICAgICAgIHRoaXMu
X3VybCA9IHVybDsKKyAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWQgPSBmYWxzZTsKIAogICAgICAg
ICB0aGlzLl9yZW5kZXJJbmRpY2F0b3JMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rp
b24odGhpcy5fcmVuZGVySW5kaWNhdG9yLmJpbmQodGhpcykpOwogICAgIH0KIAotICAgIHVwZGF0
ZShsYXN0RGF0YVBvaW50RHVyYXRpb24sIHRlc3RBZ2VUb2xlcmFuY2UsIHN1bW1hcnksIHVybCkK
KyAgICB1cGRhdGUobGFzdERhdGFQb2ludER1cmF0aW9uLCB0ZXN0QWdlVG9sZXJhbmNlLCB1cmws
IGhpZ2hsaWdodGVkKQogICAgIHsKICAgICAgICAgdGhpcy5fbGFzdERhdGFQb2ludER1cmF0aW9u
ID0gbGFzdERhdGFQb2ludER1cmF0aW9uOwotICAgICAgICB0aGlzLl9zdW1tYXJ5ID0gc3VtbWFy
eTsKICAgICAgICAgdGhpcy5fdGVzdEFnZVRvbGVyYW5jZSA9IHRlc3RBZ2VUb2xlcmFuY2U7CiAg
ICAgICAgIHRoaXMuX3VybCA9IHVybDsKKyAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWQgPSBoaWdo
bGlnaHRlZDsKICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKICAgICB9CiAKKyAgICBk
aWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCkKKyAgICB7CisgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9
IHRoaXMuY29udGVudCgnY29udGFpbmVyJyk7CisgICAgICAgIGNvbnRhaW5lci5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbW91c2VFbnRl
ckluZGljYXRvcicsIHRoaXMpKTsKKyAgICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIo
J21vdXNlbGVhdmUnLCAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdtb3VzZUxlYXZlSW5kaWNh
dG9yJykpOworICAgIH0KKwogICAgIHJlbmRlcigpCiAgICAgewogICAgICAgICBzdXBlci5yZW5k
ZXIoKTsKLSAgICAgICAgdGhpcy5fcmVuZGVySW5kaWNhdG9yTGF6aWx5LmV2YWx1YXRlKHRoaXMu
X2xhc3REYXRhUG9pbnREdXJhdGlvbiwgdGhpcy5fdGVzdEFnZVRvbGVyYW5jZSwgdGhpcy5fc3Vt
bWFyeSwgdGhpcy5fdXJsKTsKKyAgICAgICAgdGhpcy5fcmVuZGVySW5kaWNhdG9yTGF6aWx5LmV2
YWx1YXRlKHRoaXMuX2xhc3REYXRhUG9pbnREdXJhdGlvbiwgdGhpcy5fdGVzdEFnZVRvbGVyYW5j
ZSwgdGhpcy5fdXJsLCB0aGlzLl9oaWdobGlnaHRlZCk7CiAKICAgICB9CiAKLSAgICBfcmVuZGVy
SW5kaWNhdG9yKGxhc3REYXRhUG9pbnREdXJhdGlvbiwgdGVzdEFnZVRvbGVyYW5jZSwgc3VtbWFy
eSwgdXJsKQorICAgIF9yZW5kZXJJbmRpY2F0b3IobGFzdERhdGFQb2ludER1cmF0aW9uLCB0ZXN0
QWdlVG9sZXJhbmNlLCB1cmwsIGhpZ2hsaWdodGVkKQogICAgIHsKICAgICAgICAgY29uc3QgZWxl
bWVudCA9IENvbXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudDsKICAgICAgICAgaWYgKCFsYXN0RGF0
YVBvaW50RHVyYXRpb24pIHsKQEAgLTM5LDcgKzQ2LDcgQEAgY2xhc3MgRnJlc2huZXNzSW5kaWNh
dG9yIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIGNvbnN0IHJhdGluZyA9IDEgLyAo
MSArIE1hdGguZXhwKE1hdGgubG9nKDEuMikgKiAoaG91cnNTaW5jZUxhc3REYXRhUG9pbnQgLSB0
ZXN0QWdlVG9sZXJhbmNlSW5Ib3VycykpKTsKICAgICAgICAgY29uc3QgaHVlID0gTWF0aC5yb3Vu
ZCgxMjAgKiByYXRpbmcpOwogICAgICAgICBjb25zdCBicmlnaHRuZXNzID0gTWF0aC5yb3VuZCgz
MCArIDUwICogcmF0aW5nKTsKLSAgICAgICAgY29uc3QgaW5kaWNhdG9yID0gZWxlbWVudCgnYScs
IHtpZDogJ2NlbGwnLCB0aXRsZTogc3VtbWFyeSwgaHJlZjogdXJsfSk7CisgICAgICAgIGNvbnN0
IGluZGljYXRvciA9IGVsZW1lbnQoJ2EnLCB7aWQ6ICdjZWxsJywgaHJlZjogdXJsLCBjbGFzczog
aGlnaGxpZ2h0ZWQgPyAnaGlnaGxpZ2h0JyA6ICcnfSk7CiAKICAgICAgICAgaW5kaWNhdG9yLnN0
eWxlLmJhY2tncm91bmRDb2xvciA9IGBoc2woJHtodWV9LCAxMDAlLCAke2JyaWdodG5lc3N9JSlg
OwogICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50KCdjb250YWluZXInKSwg
aW5kaWNhdG9yKTsKQEAgLTU0LDIzICs2MSwyNyBAQCBjbGFzcyBGcmVzaG5lc3NJbmRpY2F0b3Ig
ZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICB7CiAgICAgICAgIHJldHVybiBgCiAgICAgICAg
ICAgICBkaXYgeworICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgICAgICAgICAg
ICAgIGhlaWdodDogMS44cmVtOwogICAgICAgICAgICAgICAgIHdpZHRoOiAxLjhyZW07Ci0gICAg
ICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMXJlbTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGEgewogICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICAgICAg
IGhlaWdodDoxLjZyZW07CiAgICAgICAgICAgICAgICAgd2lkdGg6MS42cmVtOwotICAgICAgICAg
ICAgICAgIG1hcmdpbjogMC4xcmVtOworICAgICAgICAgICAgICAgIGJvcmRlcjogMC4xcmVtOwor
ICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7CisgICAgICAgICAgICAgICAgYm9y
ZGVyLXN0eWxlOiBzb2xpZDsKICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICBhOmhvdmVyIHsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEu
OHJlbTsKLSAgICAgICAgICAgICAgICB3aWR0aDogMS44cmVtOwotICAgICAgICAgICAgICAgIG1h
cmdpbjogMHJlbTsKLSAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICAgICAgYTpo
b3ZlciwKKyAgICAgICAgICAgIGEuaGlnaGxpZ2h0IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6
IDEuNHJlbTsKKyAgICAgICAgICAgICAgICB3aWR0aDogMS40cmVtOworICAgICAgICAgICAgICAg
IGJvcmRlcjogMC4ycmVtOworICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7Cisg
ICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDA5OWZmOwogICAgICAgICAgICAgfWA7CiAg
ICAgfQogfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9w
YWdlcy90ZXN0LWZyZXNobmVzcy1wYWdlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9wYWdlcy90ZXN0LWZyZXNobmVzcy1wYWdlLmpzCmluZGV4IDRhYjMyZWFlZjM1MTQ5
ZjhiNjRhZTM0ZTRjYmQwNzQyZGY3MTVjZWQuLjBiZTdiMTRlMTFhYjIzZjYyZjliNzM0MzIwY2Vm
YjBiZDVlY2Y2MDYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvcGFnZXMvdGVzdC1mcmVzaG5lc3MtcGFnZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL3BhZ2VzL3Rlc3QtZnJlc2huZXNzLXBhZ2UuanMKQEAgLTksMTAgKzks
MjcgQEAgY2xhc3MgVGVzdEZyZXNobmVzc1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewog
ICAgICAgICB0aGlzLl9sYXN0RGF0YVBvaW50QnlDb25maWd1cmF0aW9uID0gbnVsbDsKICAgICAg
ICAgdGhpcy5faW5kaWNhdG9yQnlDb25maWd1cmF0aW9uID0gbnVsbDsKICAgICAgICAgdGhpcy5f
cmVuZGVyVGFibGVMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24odGhpcy5fcmVu
ZGVyVGFibGUuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX2hvdmVyaW5nSW5kaWNhdG9yID0g
bnVsbDsKKyAgICAgICAgdGhpcy5faG92ZXJpbmdUb29sdGlwID0gZmFsc2U7CisgICAgICAgIHRo
aXMuX2J1aWxkZXJCeUluZGljYXRvciA9IG51bGw7CisgICAgICAgIHRoaXMuX3JlbmRlclRvb2x0
aXBMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24odGhpcy5fcmVuZGVyVG9vbHRp
cC5iaW5kKHRoaXMpKTsKIAogICAgICAgICB0aGlzLl9sb2FkQ29uZmlnKHN1bW1hcnlQYWdlQ29u
ZmlndXJhdGlvbik7CiAgICAgfQogCisgICAgZGlkQ29uc3RydWN0U2hhZG93VHJlZSgpCisgICAg
eworICAgICAgICBjb25zdCB0b29sdGlwQ29udGFpbmVyID0gdGhpcy5jb250ZW50KCd0b29sdGlw
LWNvbnRhaW5lcicpOworICAgICAgICB0b29sdGlwQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIo
J21vdXNlZW50ZXInLCAoKSA9PiB7CisgICAgICAgICAgICB0aGlzLl9ob3ZlcmluZ1Rvb2x0aXAg
PSB0cnVlOworICAgICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgfSk7
CisgICAgICAgIHRvb2x0aXBDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScs
ICgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2hvdmVyaW5nVG9vbHRpcCA9IGZhbHNlOworICAg
ICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAg
ICAgbmFtZSgpIHsgcmV0dXJuICdUZXN0LUZyZXNobmVzcyc7IH0KIAogICAgIF9sb2FkQ29uZmln
KHN1bW1hcnlQYWdlQ29uZmlndXJhdGlvbikKQEAgLTU1LDYgKzcyLDcgQEAgY2xhc3MgVGVzdEZy
ZXNobmVzc1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgIHsKICAgICAgICAgdGhp
cy5fbWVhc3VyZW1lbnRTZXRGZXRjaFRpbWUgPSBEYXRlLm5vdygpOwogICAgICAgICB0aGlzLl9s
YXN0RGF0YVBvaW50QnlDb25maWd1cmF0aW9uID0gbmV3IE1hcDsKKyAgICAgICAgdGhpcy5fYnVp
bGRlckJ5SW5kaWNhdG9yID0gbmV3IE1hcDsKIAogICAgICAgICBjb25zdCBzdGFydFRpbWUgPSB0
aGlzLl9tZWFzdXJlbWVudFNldEZldGNoVGltZSAtIHRoaXMuX3RpbWVEdXJhdGlvbjsKIApAQCAt
NzEsMTAgKzg5LDE3IEBAIGNsYXNzIFRlc3RGcmVzaG5lc3NQYWdlIGV4dGVuZHMgUGFnZVdpdGhI
ZWFkaW5nIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFRpbWVTZXJpZXMgPSBt
ZWFzdXJlbWVudFNldC5mZXRjaGVkVGltZVNlcmllcygnY3VycmVudCcsIGZhbHNlLCBmYWxzZSk7
CiAKICAgICAgICAgICAgICAgICAgICAgbGV0IHRpbWVGb3JMYXN0RGF0YVBvaW50ID0gc3RhcnRU
aW1lOwotICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFRpbWVTZXJpZXMubGFzdFBvaW50
KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aW1lRm9yTGFzdERhdGFQb2ludCA9IGN1cnJl
bnRUaW1lU2VyaWVzLmxhc3RQb2ludCgpLmJ1aWxkKCkuYnVpbGRUaW1lKCk7CisgICAgICAgICAg
ICAgICAgICAgIGxldCBsYXN0QnVpbGRMaW5rID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAg
bGV0IGJ1aWxkZXIgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0UG9pbnQg
PSBjdXJyZW50VGltZVNlcmllcy5sYXN0UG9pbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGxhc3RQb2ludCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGltZUZvckxhc3REYXRhUG9p
bnQgPSBsYXN0UG9pbnQuYnVpbGQoKS5idWlsZFRpbWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxhc3RCdWlsZExpbmsgPSBsYXN0UG9pbnQuYnVpbGQoKS51cmwoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJ1aWxkZXIgPSBsYXN0UG9pbnQuYnVpbGQoKS5idWlsZGVyKCk7CisgICAg
ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBsYXN0RGF0YVBvaW50QnlN
ZXRyaWMuc2V0KG1ldHJpYywge3RpbWU6IHRpbWVGb3JMYXN0RGF0YVBvaW50LCBoYXNDdXJyZW50
RGF0YVBvaW50OiAhIWN1cnJlbnRUaW1lU2VyaWVzLmxhc3RQb2ludCgpfSk7CisgICAgICAgICAg
ICAgICAgICAgIGxhc3REYXRhUG9pbnRCeU1ldHJpYy5zZXQobWV0cmljLCB7dGltZTogdGltZUZv
ckxhc3REYXRhUG9pbnQsIGhhc0N1cnJlbnREYXRhUG9pbnQ6ICEhY3VycmVudFRpbWVTZXJpZXMu
bGFzdFBvaW50KCksCisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0QnVpbGRMaW5rLCBidWls
ZGVyfSk7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7CiAgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CkBAIC04NywyMCArMTEyLDUzIEBAIGNsYXNz
IFRlc3RGcmVzaG5lc3NQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKIAogICAgICAgICB0
aGlzLl9yZW5kZXJUYWJsZUxhemlseS5ldmFsdWF0ZSh0aGlzLl9wbGF0Zm9ybXMsIHRoaXMuX21l
dHJpY3MpOwogCisgICAgICAgIGxldCBidWlsZFN1bW1hcnlGb3JIb3ZlcmluZ0luZGljYXRvciA9
IG51bGw7CisgICAgICAgIGxldCBidWlsZExpbmtGb3JIb3ZlcmluZ0luZGljYXRvciA9IG51bGw7
CisgICAgICAgIGNvbnN0IGJ1aWxkZXJGb3JIb3ZlcmluZ0luZGljYXRvciA9IHRoaXMuX2hvdmVy
aW5nSW5kaWNhdG9yID8gdGhpcy5fYnVpbGRlckJ5SW5kaWNhdG9yLmdldCh0aGlzLl9ob3Zlcmlu
Z0luZGljYXRvcikgOiBudWxsOwogICAgICAgICBmb3IgKGNvbnN0IFtwbGF0Zm9ybSwgbGFzdERh
dGFQb2ludEJ5TWV0cmljXSBvZiB0aGlzLl9sYXN0RGF0YVBvaW50QnlDb25maWd1cmF0aW9uLmVu
dHJpZXMoKSkgewogICAgICAgICAgICAgZm9yIChjb25zdCBbbWV0cmljLCBsYXN0RGF0YVBvaW50
XSBvZiBsYXN0RGF0YVBvaW50QnlNZXRyaWMuZW50cmllcygpKSB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgdGltZUR1cmF0aW9uID0gdGhpcy5fbWVhc3VyZW1lbnRTZXRGZXRjaFRpbWUgLSBsYXN0
RGF0YVBvaW50LnRpbWU7CiAgICAgICAgICAgICAgICAgY29uc3QgdGltZUR1cmF0aW9uU3VtbWFy
eVByZWZpeCA9IGxhc3REYXRhUG9pbnQuaGFzQ3VycmVudERhdGFQb2ludCA/ICcnIDogJ01vcmUg
dGhhbiAnOwogICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVEdXJhdGlvblN1bW1hcnkgPSBCdWls
ZFJlcXVlc3QuZm9ybWF0VGltZUludGVydmFsKHRpbWVEdXJhdGlvbik7Ci0gICAgICAgICAgICAg
ICAgY29uc3QgdGVzdExhYmVsID0gYCIke21ldHJpYy50ZXN0KCkuZnVsbE5hbWUoKX0iIGZvciAi
JHtwbGF0Zm9ybS5uYW1lKCl9ImA7Ci0gICAgICAgICAgICAgICAgY29uc3Qgc3VtbWFyeSA9IGAk
e3RpbWVEdXJhdGlvblN1bW1hcnlQcmVmaXh9JHt0aW1lRHVyYXRpb25TdW1tYXJ5fSBzaW5jZSBs
YXN0IGRhdGEgcG9pbnQgb24gJHt0ZXN0TGFiZWx9YDsKKyAgICAgICAgICAgICAgICBjb25zdCBz
dW1tYXJ5ID0gYCR7dGltZUR1cmF0aW9uU3VtbWFyeVByZWZpeH0ke3RpbWVEdXJhdGlvblN1bW1h
cnl9IHNpbmNlIGxhdGVzdCBkYXRhIHBvaW50LmA7CiAgICAgICAgICAgICAgICAgY29uc3QgdXJs
ID0gdGhpcy5fcm91dGVyLnVybCgnY2hhcnRzJywgQ2hhcnRzUGFnZS5jcmVhdGVTdGF0ZUZvckRh
c2hib2FyZEl0ZW0ocGxhdGZvcm0uaWQoKSwgbWV0cmljLmlkKCksCiAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX21lYXN1cmVtZW50U2V0RmV0Y2hUaW1lIC0gdGhpcy5fdGltZUR1cmF0aW9uKSk7
CiAKICAgICAgICAgICAgICAgICBjb25zdCBpbmRpY2F0b3IgPSB0aGlzLl9pbmRpY2F0b3JCeUNv
bmZpZ3VyYXRpb24uZ2V0KHBsYXRmb3JtKS5nZXQobWV0cmljKTsKLSAgICAgICAgICAgICAgICBp
bmRpY2F0b3IudXBkYXRlKHRpbWVEdXJhdGlvbiwgdGhpcy5fdGVzdEFnZVRvbGVyYW5jZSwgc3Vt
bWFyeSwgdXJsKTsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5faG92ZXJpbmdJbmRpY2F0b3Ig
JiYgdGhpcy5faG92ZXJpbmdJbmRpY2F0b3IgPT09IGluZGljYXRvcikgeworICAgICAgICAgICAg
ICAgICAgICBidWlsZFN1bW1hcnlGb3JIb3ZlcmluZ0luZGljYXRvciA9IHN1bW1hcnk7CisgICAg
ICAgICAgICAgICAgICAgIGJ1aWxkTGlua0ZvckhvdmVyaW5nSW5kaWNhdG9yID0gbGFzdERhdGFQ
b2ludC5sYXN0QnVpbGRMaW5rOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0
aGlzLl9idWlsZGVyQnlJbmRpY2F0b3Iuc2V0KGluZGljYXRvciwgbGFzdERhdGFQb2ludC5idWls
ZGVyKTsKKyAgICAgICAgICAgICAgICBpbmRpY2F0b3IudXBkYXRlKHRpbWVEdXJhdGlvbiwgdGhp
cy5fdGVzdEFnZVRvbGVyYW5jZSwgdXJsLCBidWlsZGVyRm9ySG92ZXJpbmdJbmRpY2F0b3IgJiYg
YnVpbGRlckZvckhvdmVyaW5nSW5kaWNhdG9yID09PSBsYXN0RGF0YVBvaW50LmJ1aWxkZXIpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CisgICAgICAgIHRoaXMuX3JlbmRlclRvb2x0aXBMYXpp
bHkuZXZhbHVhdGUodGhpcy5faG92ZXJpbmdJbmRpY2F0b3IsIHRoaXMuX2hvdmVyaW5nVG9vbHRp
cCwgYnVpbGRTdW1tYXJ5Rm9ySG92ZXJpbmdJbmRpY2F0b3IsIGJ1aWxkTGlua0ZvckhvdmVyaW5n
SW5kaWNhdG9yKTsKKyAgICB9CisKKyAgICBfcmVuZGVyVG9vbHRpcChpbmRpY2F0b3IsIGhvdmVy
aW5nVG9vbHRpcCwgYnVpbGRTdW1tYXJ5LCBidWlsZExpbmspCisgICAgeworICAgICAgICBpZiAo
IWluZGljYXRvcikgeworICAgICAgICAgICAgdGhpcy5jb250ZW50KCd0b29sdGlwLWNvbnRhaW5l
cicpLnN0eWxlLmRpc3BsYXkgPSBob3ZlcmluZ1Rvb2x0aXAgPyBudWxsIDogJ25vbmUnOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IENv
bXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudDsKKworICAgICAgICBjb25zdCBwaXhlbHNQZXJSRU0g
PSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZm9u
dFNpemUpOworICAgICAgICBjb25zdCByZWN0ID0gaW5kaWNhdG9yLmVsZW1lbnQoKS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgY29uc3QgY29udGFpbmVyUGFkZGluZyA9IDAuMzsK
KyAgICAgICAgY29uc3QgY29udGFpbmVyTWFyZ2luID0gMC4zOworICAgICAgICBjb25zdCBjb250
YWluZXJIZWlnaHQgPSA0LjUgOworICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IDE5Owor
ICAgICAgICBjb25zdCBjZWxsTWFyZ2luID0gMC4yOworICAgICAgICBjb25zdCB0b29sdGlwQ29u
dGFpbmVyID0gdGhpcy5jb250ZW50KCd0b29sdGlwLWNvbnRhaW5lcicpOworICAgICAgICB0b29s
dGlwQ29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSBudWxsOworICAgICAgICB0b29sdGlwQ29udGFp
bmVyLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKKyAgICAgICAgdG9vbHRpcENvbnRhaW5l
ci5zdHlsZS50b3AgPSByZWN0LnRvcCAtIChjb250YWluZXJIZWlnaHQgKyBjb250YWluZXJQYWRk
aW5nICogMiArIGNvbnRhaW5lck1hcmdpbiAqIDIgLSBjZWxsTWFyZ2luKSAqIHBpeGVsc1BlclJF
TSAgKyAncHgnOworICAgICAgICB0b29sdGlwQ29udGFpbmVyLnN0eWxlLmxlZnQgPSByZWN0Lmxl
ZnQgKyByZWN0LndpZHRoIC8gMiAtIGNvbnRhaW5lcldpZHRoIC8gMiAqIHBpeGVsc1BlclJFTSAr
IGNvbnRhaW5lclBhZGRpbmcgKyAgY29udGFpbmVyTWFyZ2luICsgJ3B4JzsKKworICAgICAgICB0
aGlzLnJlbmRlclJlcGxhY2UodG9vbHRpcENvbnRhaW5lciwgW2VsZW1lbnQoJ3AnLCBidWlsZFN1
bW1hcnkpLCBlbGVtZW50KCdhJywge2hyZWY6IGJ1aWxkTGlua30sICdMYXRlc3QgQnVpbGQnKV0p
OwogICAgIH0KIAogICAgIF9yZW5kZXJUYWJsZShwbGF0Zm9ybXMsIG1ldHJpY3MpCkBAIC0xMzgs
MTMgKzE5NiwyMSBAQCBjbGFzcyBUZXN0RnJlc2huZXNzUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVh
ZGluZyB7CiAgICAgICAgICAgICByZXR1cm4gZWxlbWVudCgndGQnLCB7Y2xhc3M6ICdibGFuay1j
ZWxsJ30sIGVsZW1lbnQoJ2RpdicpKTsKIAogICAgICAgICBjb25zdCBpbmRpY2F0b3IgPSBuZXcg
RnJlc2huZXNzSW5kaWNhdG9yOworICAgICAgICBpbmRpY2F0b3IubGlzdGVuVG9BY3Rpb24oJ21v
dXNlRW50ZXJJbmRpY2F0b3InLCAob3JpZ2luYXRvcikgPT4geworICAgICAgICAgICAgdGhpcy5f
aG92ZXJpbmdJbmRpY2F0b3IgPSBvcmlnaW5hdG9yOworICAgICAgICAgICAgdGhpcy5lbnF1ZXVl
VG9SZW5kZXIoKTsKKyAgICAgICAgfSk7CisgICAgICAgIGluZGljYXRvci5saXN0ZW5Ub0FjdGlv
bignbW91c2VMZWF2ZUluZGljYXRvcicsICgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2hvdmVy
aW5nSW5kaWNhdG9yID0gbnVsbDsKKyAgICAgICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7
CisgICAgICAgIH0pOwogICAgICAgICBpbmRpY2F0b3JCeU1ldHJpYy5zZXQobWV0cmljLCBpbmRp
Y2F0b3IpOwogICAgICAgICByZXR1cm4gZWxlbWVudCgndGQnLCB7Y2xhc3M6ICdzdGF0dXMtY2Vs
bCd9LCBpbmRpY2F0b3IpOwogICAgIH0KIAogICAgIHN0YXRpYyBodG1sVGVtcGxhdGUoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGA8c2VjdGlvbiBjbGFzcz0icGFnZS13aXRoLWhlYWRpbmciPjx0
YWJsZSBpZD0idGVzdC1oZWFsdGgiPjwvdGFibGU+PC9zZWN0aW9uPmA7CisgICAgICAgIHJldHVy
biBgPHNlY3Rpb24gY2xhc3M9InBhZ2Utd2l0aC1oZWFkaW5nIj48ZGl2IGlkPSJ0b29sdGlwLWNv
bnRhaW5lciI+PC9kaXY+PHRhYmxlIGlkPSJ0ZXN0LWhlYWx0aCI+PC90YWJsZT48L3NlY3Rpb24+
YDsKICAgICB9CiAKICAgICBzdGF0aWMgY3NzVGVtcGxhdGUoKQpAQCAtMTg2LDcgKzI1Miw3IEBA
IGNsYXNzIFRlc3RGcmVzaG5lc3NQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAg
ICAgICAgICN0ZXN0LWhlYWx0aCB0Ym9keSB7CiAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxv
Y2s7CiAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87Ci0gICAgICAgICAgICAgICAgaGVp
Z2h0OiA3NXZoOworICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDI0cmVtKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICN0ZXN0LWhlYWx0aCB0ZC5zdGF0dXMtY2VsbCB7
CiAgICAgICAgICAgICAgICAgbWFyZ2luOiAwOwpAQCAtMjE0LDI2ICsyODAsNTQgQEAgY2xhc3Mg
VGVzdEZyZXNobmVzc1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgICAgICAgICAg
ICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAjdGVzdC1o
ZWFsdGggdGQuYmxhbmstY2VsbCA+IGRpdjo6YmVmb3JlIHsKLSAgICAgICAgICAgICAgY29udGVu
dDogIiI7Ci0gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgICAgICAg
dG9wOiAtMXB4OwotICAgICAgICAgICAgICBsZWZ0OiAtMXB4OwotICAgICAgICAgICAgICBkaXNw
bGF5OiBibG9jazsKLSAgICAgICAgICAgICAgd2lkdGg6IDBweDsKLSAgICAgICAgICAgICAgaGVp
Z2h0OiAwcHg7Ci0gICAgICAgICAgICAgIGJvcmRlci1yaWdodDogY2FsYygxLjZyZW0gKyAxcHgp
IHNvbGlkICNkZGQ7Ci0gICAgICAgICAgICAgIGJvcmRlci10b3A6IGNhbGMoMS42cmVtICsgMXB4
KSBzb2xpZCB0cmFuc3BhcmVudDsKKyAgICAgICAgICAgICAgICBjb250ZW50OiAiIjsKKyAgICAg
ICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICAgICAgdG9wOiAtMXB4
OworICAgICAgICAgICAgICAgIGxlZnQ6IC0xcHg7CisgICAgICAgICAgICAgICAgZGlzcGxheTog
YmxvY2s7CisgICAgICAgICAgICAgICAgd2lkdGg6IDBweDsKKyAgICAgICAgICAgICAgICBoZWln
aHQ6IDBweDsKKyAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IGNhbGMoMS42cmVtICsgMXB4
KSBzb2xpZCAjZGRkOworICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IGNhbGMoMS42cmVtICsg
MXB4KSBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgICN0ZXN0
LWhlYWx0aCB0ZC5ibGFuay1jZWxsID4gZGl2OjphZnRlciB7Ci0gICAgICAgICAgICAgIGNvbnRl
bnQ6ICIiOwotICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgICAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOwotICAgICAgICAgICAgICB0b3A6IDFweDsKLSAgICAgICAgICAgICAg
bGVmdDogMXB4OwotICAgICAgICAgICAgICB3aWR0aDogMHB4OwotICAgICAgICAgICAgICBoZWln
aHQ6IDBweDsKLSAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBjYWxjKDEuNnJlbSAtIDFweCkg
c29saWQgI0Y5RjlGOTsKLSAgICAgICAgICAgICAgYm9yZGVyLXRvcDogY2FsYygxLjZyZW0gLSAx
cHgpIHNvbGlkIHRyYW5zcGFyZW50OworICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICIiOworICAg
ICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICAgICAgICAgICAgICB0b3A6IDFweDsKKyAgICAgICAgICAgICAgICBsZWZ0
OiAxcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDBweDsKKyAgICAgICAgICAgICAgICBoZWln
aHQ6IDBweDsKKyAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IGNhbGMoMS42cmVtIC0gMXB4
KSBzb2xpZCAjRjlGOUY5OworICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IGNhbGMoMS42cmVt
IC0gMXB4KSBzb2xpZCB0cmFuc3BhcmVudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICN0
b29sdGlwLWNvbnRhaW5lciB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDE5cmVtOworICAgICAg
ICAgICAgICAgIGhlaWdodDogNC41cmVtOworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29s
b3I6ICMzNDQ5NUU7CisgICAgICAgICAgICAgICAgb3BhY2l0eTogMC45OworICAgICAgICAgICAg
ICAgIG1hcmdpbjogMC4zcmVtOworICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuM3JlbTsKKyAg
ICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjRyZW07CisgICAgICAgICAgICAgICAgei1p
bmRleDogMTsKKyAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICAjdG9vbHRpcC1jb250YWluZXI6OmFmdGVyIHsKKyAgICAgICAgICAg
ICAgICBjb250ZW50OiAiICI7CisgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICAgICAgICAgIHRvcDogMTAwJTsgLyogQXQgdGhlIGJvdHRvbSBvZiB0aGUgdG9vbHRp
cCAqLworICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTsKKyAgICAgICAgICAgICAgICBtYXJnaW4t
bGVmdDogLTFyZW07CisgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwLjJyZW07CisgICAg
ICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKKyAgICAgICAgICAgICAgICBib3JkZXIt
Y29sb3I6ICMzNDQ5NUUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICAjdG9vbHRpcC1jb250YWluZXIgcCB7CisgICAgICAgICAg
ICAgICAgY29sb3I6IHdoaXRlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgI3Rvb2x0aXAt
Y29udGFpbmVyIGEgeworICAgICAgICAgICAgICAgIGNvbG9yOiAjQjAzQTJFOworICAgICAgICAg
ICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgICAgICAgfQogICAgICAgICBgOwogICAg
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363835</attachid>
            <date>2019-03-06 20:29:37 -0800</date>
            <delta_ts>2019-03-11 15:36:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195242-20190306202937.patch</filename>
            <type>text/plain</type>
            <size>16122</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzk1CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YWIwM2QzOGUzOTZjMmI3MzJiNTA5Zjg3ZGQ3M2MzMDgzMGZiYTZkLi5jZTIwY2RlNTdk
NDkzMmRhNDI0M2M2YTkyYWZhOGNkMmQyNzNkNTUyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxOS0wMy0wNiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBUZXN0IGZyZXNobmVzcyBwYWdlIHNob3VsZCBpbXByb3Zl
IHRoZSBhYmlsaXR5IHRvIGNvcnJlbGF0aW5nIGlzc3VlcyBmcm9tIHNhbWUgYnVpbGRlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTI0MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRoZSBh
YmlsaXR5IHRvIGhpZ2hsaWdodCBpbmRpY2F0b3JzIHdpdGggc2FtZSBidWlsZGVyIHdoZW4gbW91
c2UgaXMgaG92ZXJpbmcgb3ZlciBvbmUgaW5kaWNhdG9yLgorICAgICAgICBUaGlzIGlzIGEgdmVy
eSB1c2VmdWwgdmlzdWFsaXphdGlvbiBmb3IgY29ycmVsYXRpbmcgaXNzdWVzIHNwZWNpZmljIHRv
IGEgYnVpbGRlci4KKyAgICAgICAgQWRkZWQgdG9vbHRpcCB3aXRoIGxhdGVzdCBidWlsZCBsaW5r
IHdoZW4gaG92ZXJpbmcgb3ZlciBhbiBpbmRpY2F0b3IuCisKKyAgICAgICAgKiBwdWJsaWMvdjMv
Y29tcG9uZW50cy9mcmVzaG5lc3MtaW5kaWNhdG9yLmpzOgorICAgICAgICAoRnJlc2huZXNzSW5k
aWNhdG9yKTogUmVtb3ZlZCAnc3VtbWFyeScgZmllbGQgYXMgaXQncyBubyBsb25nZXIgbmVlZGVk
LgorICAgICAgICBBZGRlZCAnaGlnaGxpZ2h0ZWQnIGZpZWxkLgorICAgICAgICAoRnJlc2huZXNz
SW5kaWNhdG9yLnByb3RvdHlwZS51cGRhdGUpOiBBZGRlZCAnaGlnaGxpZ2h0ZWQnIGFyZ3VtZW50
LgorICAgICAgICAoRnJlc2huZXNzSW5kaWNhdG9yLnByb3RvdHlwZS5kaWRDb25zdHJ1Y3RTaGFk
b3dUcmVlKTogTWFrZSBpbmRpY2F0b3IgdG8gZGlzcGF0Y2ggbW91c2UgZW50ZXIgYW5kIGxlYXZl
CisgICAgICAgIG1lc3NhZ2VzIHNvIHRoYXQgVUkgY2FuIGhpZ2hsaWdodCBjb3JyZXNwb25kaW5n
IGNlbGxzLgorICAgICAgICAoRnJlc2huZXNzSW5kaWNhdG9yLnByb3RvdHlwZS5yZW5kZXIpOgor
ICAgICAgICAoRnJlc2huZXNzSW5kaWNhdG9yLmNzc1RlbXBsYXRlKToKKyAgICAgICAgKiBwdWJs
aWMvdjMvcGFnZXMvdGVzdC1mcmVzaG5lc3MtcGFnZS5qczogQWRkZWQgdG9vbHRpcCB0byBzaG93
IGxhdGVzdCBidWlsZCB0aW1lIGFuZCBidWlsZCBsaW5rLgorICAgICAgICBBZGRlZCBsb2dpYyB0
byBtYW51YWxseSBjb21wdXRlIHRhYmxlIGJvZHkgaGVpZ2h0LgorICAgICAgICAoVGVzdEZyZXNo
bmVzc1BhZ2UpOgorICAgICAgICAoVGVzdEZyZXNobmVzc1BhZ2UucHJvdG90eXBlLmRpZENvbnN0
cnVjdFNoYWRvd1RyZWUpOgorICAgICAgICAoVGVzdEZyZXNobmVzc1BhZ2UucHJvdG90eXBlLl9m
ZXRjaFRlc3RSZXN1bHRzKToKKyAgICAgICAgKFRlc3RGcmVzaG5lc3NQYWdlLnByb3RvdHlwZS5y
ZW5kZXIpOgorICAgICAgICAoVGVzdEZyZXNobmVzc1BhZ2UucHJvdG90eXBlLl9yZW5kZXJUb29s
dGlwKToKKyAgICAgICAgKFRlc3RGcmVzaG5lc3NQYWdlLnByb3RvdHlwZS5fY29uc3RydWN0VGFi
bGVDZWxsKToKKyAgICAgICAgKFRlc3RGcmVzaG5lc3NQYWdlLmNzc1RlbXBsYXRlKToKKwogMjAx
OS0wMi0yNiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUg
dGFibGUgaGVhZCBvZiB0ZXN0IGZyZXNobmVzcyBwYWdlIHNob3VsZCBub3Qgc2Nyb2xsIHdpdGgg
dGhlIHBhZ2UuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L2NvbXBvbmVudHMvZnJlc2huZXNzLWluZGljYXRvci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9mcmVzaG5lc3MtaW5kaWNhdG9yLmpzCmluZGV4IDQw
ZGMyNjQzZWQ2ZDUyMDQ4Mjc0OTIzOGE2MzdhNzU5NTczODkzZDMuLjdmYjQ3MmM3MTk2ODhjMzE3
NzBlZjgxNTZhODFiMjc5ZTBmOTQwYmYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9mcmVzaG5lc3MtaW5kaWNhdG9yLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9mcmVzaG5lc3MtaW5k
aWNhdG9yLmpzCkBAIC0zLDMwICszLDM3IEBAIGNsYXNzIEZyZXNobmVzc0luZGljYXRvciBleHRl
bmRzIENvbXBvbmVudEJhc2UgewogICAgIHsKICAgICAgICAgc3VwZXIoJ2ZyZXNobmVzcy1pbmRp
Y2F0b3InKTsKICAgICAgICAgdGhpcy5fbGFzdERhdGFQb2ludER1cmF0aW9uID0gbGFzdERhdGFQ
b2ludER1cmF0aW9uOwotICAgICAgICB0aGlzLl9zdW1tYXJ5ID0gc3VtbWFyeTsKICAgICAgICAg
dGhpcy5fdGVzdEFnZVRvbGVyYW5jZSA9IHRlc3RBZ2VUb2xlcmFuY2U7CiAgICAgICAgIHRoaXMu
X3VybCA9IHVybDsKKyAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWQgPSBmYWxzZTsKIAogICAgICAg
ICB0aGlzLl9yZW5kZXJJbmRpY2F0b3JMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rp
b24odGhpcy5fcmVuZGVySW5kaWNhdG9yLmJpbmQodGhpcykpOwogICAgIH0KIAotICAgIHVwZGF0
ZShsYXN0RGF0YVBvaW50RHVyYXRpb24sIHRlc3RBZ2VUb2xlcmFuY2UsIHN1bW1hcnksIHVybCkK
KyAgICB1cGRhdGUobGFzdERhdGFQb2ludER1cmF0aW9uLCB0ZXN0QWdlVG9sZXJhbmNlLCB1cmws
IGhpZ2hsaWdodGVkKQogICAgIHsKICAgICAgICAgdGhpcy5fbGFzdERhdGFQb2ludER1cmF0aW9u
ID0gbGFzdERhdGFQb2ludER1cmF0aW9uOwotICAgICAgICB0aGlzLl9zdW1tYXJ5ID0gc3VtbWFy
eTsKICAgICAgICAgdGhpcy5fdGVzdEFnZVRvbGVyYW5jZSA9IHRlc3RBZ2VUb2xlcmFuY2U7CiAg
ICAgICAgIHRoaXMuX3VybCA9IHVybDsKKyAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWQgPSBoaWdo
bGlnaHRlZDsKICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKICAgICB9CiAKKyAgICBk
aWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCkKKyAgICB7CisgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9
IHRoaXMuY29udGVudCgnY29udGFpbmVyJyk7CisgICAgICAgIGNvbnRhaW5lci5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbW91c2VFbnRl
ckluZGljYXRvcicsIHRoaXMpKTsKKyAgICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIo
J21vdXNlbGVhdmUnLCAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdtb3VzZUxlYXZlSW5kaWNh
dG9yJykpOworICAgIH0KKwogICAgIHJlbmRlcigpCiAgICAgewogICAgICAgICBzdXBlci5yZW5k
ZXIoKTsKLSAgICAgICAgdGhpcy5fcmVuZGVySW5kaWNhdG9yTGF6aWx5LmV2YWx1YXRlKHRoaXMu
X2xhc3REYXRhUG9pbnREdXJhdGlvbiwgdGhpcy5fdGVzdEFnZVRvbGVyYW5jZSwgdGhpcy5fc3Vt
bWFyeSwgdGhpcy5fdXJsKTsKKyAgICAgICAgdGhpcy5fcmVuZGVySW5kaWNhdG9yTGF6aWx5LmV2
YWx1YXRlKHRoaXMuX2xhc3REYXRhUG9pbnREdXJhdGlvbiwgdGhpcy5fdGVzdEFnZVRvbGVyYW5j
ZSwgdGhpcy5fdXJsLCB0aGlzLl9oaWdobGlnaHRlZCk7CiAKICAgICB9CiAKLSAgICBfcmVuZGVy
SW5kaWNhdG9yKGxhc3REYXRhUG9pbnREdXJhdGlvbiwgdGVzdEFnZVRvbGVyYW5jZSwgc3VtbWFy
eSwgdXJsKQorICAgIF9yZW5kZXJJbmRpY2F0b3IobGFzdERhdGFQb2ludER1cmF0aW9uLCB0ZXN0
QWdlVG9sZXJhbmNlLCB1cmwsIGhpZ2hsaWdodGVkKQogICAgIHsKICAgICAgICAgY29uc3QgZWxl
bWVudCA9IENvbXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudDsKICAgICAgICAgaWYgKCFsYXN0RGF0
YVBvaW50RHVyYXRpb24pIHsKQEAgLTM5LDcgKzQ2LDcgQEAgY2xhc3MgRnJlc2huZXNzSW5kaWNh
dG9yIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIGNvbnN0IHJhdGluZyA9IDEgLyAo
MSArIE1hdGguZXhwKE1hdGgubG9nKDEuMikgKiAoaG91cnNTaW5jZUxhc3REYXRhUG9pbnQgLSB0
ZXN0QWdlVG9sZXJhbmNlSW5Ib3VycykpKTsKICAgICAgICAgY29uc3QgaHVlID0gTWF0aC5yb3Vu
ZCgxMjAgKiByYXRpbmcpOwogICAgICAgICBjb25zdCBicmlnaHRuZXNzID0gTWF0aC5yb3VuZCgz
MCArIDUwICogcmF0aW5nKTsKLSAgICAgICAgY29uc3QgaW5kaWNhdG9yID0gZWxlbWVudCgnYScs
IHtpZDogJ2NlbGwnLCB0aXRsZTogc3VtbWFyeSwgaHJlZjogdXJsfSk7CisgICAgICAgIGNvbnN0
IGluZGljYXRvciA9IGVsZW1lbnQoJ2EnLCB7aWQ6ICdjZWxsJywgaHJlZjogdXJsLCBjbGFzczog
aGlnaGxpZ2h0ZWQgPyAnaGlnaGxpZ2h0JyA6ICcnfSk7CiAKICAgICAgICAgaW5kaWNhdG9yLnN0
eWxlLmJhY2tncm91bmRDb2xvciA9IGBoc2woJHtodWV9LCAxMDAlLCAke2JyaWdodG5lc3N9JSlg
OwogICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50KCdjb250YWluZXInKSwg
aW5kaWNhdG9yKTsKQEAgLTU0LDIzICs2MSwyNyBAQCBjbGFzcyBGcmVzaG5lc3NJbmRpY2F0b3Ig
ZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICB7CiAgICAgICAgIHJldHVybiBgCiAgICAgICAg
ICAgICBkaXYgeworICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgICAgICAgICAg
ICAgIGhlaWdodDogMS44cmVtOwogICAgICAgICAgICAgICAgIHdpZHRoOiAxLjhyZW07Ci0gICAg
ICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMXJlbTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGEgewogICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICAgICAg
IGhlaWdodDoxLjZyZW07CiAgICAgICAgICAgICAgICAgd2lkdGg6MS42cmVtOwotICAgICAgICAg
ICAgICAgIG1hcmdpbjogMC4xcmVtOworICAgICAgICAgICAgICAgIGJvcmRlcjogMC4xcmVtOwor
ICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7CisgICAgICAgICAgICAgICAgYm9y
ZGVyLXN0eWxlOiBzb2xpZDsKICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICBhOmhvdmVyIHsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEu
OHJlbTsKLSAgICAgICAgICAgICAgICB3aWR0aDogMS44cmVtOwotICAgICAgICAgICAgICAgIG1h
cmdpbjogMHJlbTsKLSAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICAgICAgYTpo
b3ZlciwKKyAgICAgICAgICAgIGEuaGlnaGxpZ2h0IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6
IDEuNHJlbTsKKyAgICAgICAgICAgICAgICB3aWR0aDogMS40cmVtOworICAgICAgICAgICAgICAg
IGJvcmRlcjogMC4ycmVtOworICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7Cisg
ICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDA5OWZmOwogICAgICAgICAgICAgfWA7CiAg
ICAgfQogfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9w
YWdlcy90ZXN0LWZyZXNobmVzcy1wYWdlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9wYWdlcy90ZXN0LWZyZXNobmVzcy1wYWdlLmpzCmluZGV4IDRhYjMyZWFlZjM1MTQ5
ZjhiNjRhZTM0ZTRjYmQwNzQyZGY3MTVjZWQuLjA1OWEyMWIzNzA3MmE1MmRmOWE1MWMxM2RmYTgw
ODhjOTBiNmQ2ZjcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvcGFnZXMvdGVzdC1mcmVzaG5lc3MtcGFnZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL3BhZ2VzL3Rlc3QtZnJlc2huZXNzLXBhZ2UuanMKQEAgLTksMTAgKzks
MjcgQEAgY2xhc3MgVGVzdEZyZXNobmVzc1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewog
ICAgICAgICB0aGlzLl9sYXN0RGF0YVBvaW50QnlDb25maWd1cmF0aW9uID0gbnVsbDsKICAgICAg
ICAgdGhpcy5faW5kaWNhdG9yQnlDb25maWd1cmF0aW9uID0gbnVsbDsKICAgICAgICAgdGhpcy5f
cmVuZGVyVGFibGVMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24odGhpcy5fcmVu
ZGVyVGFibGUuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX2hvdmVyaW5nSW5kaWNhdG9yID0g
bnVsbDsKKyAgICAgICAgdGhpcy5faG92ZXJpbmdUb29sdGlwID0gZmFsc2U7CisgICAgICAgIHRo
aXMuX2J1aWxkZXJCeUluZGljYXRvciA9IG51bGw7CisgICAgICAgIHRoaXMuX3JlbmRlclRvb2x0
aXBMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24odGhpcy5fcmVuZGVyVG9vbHRp
cC5iaW5kKHRoaXMpKTsKIAogICAgICAgICB0aGlzLl9sb2FkQ29uZmlnKHN1bW1hcnlQYWdlQ29u
ZmlndXJhdGlvbik7CiAgICAgfQogCisgICAgZGlkQ29uc3RydWN0U2hhZG93VHJlZSgpCisgICAg
eworICAgICAgICBjb25zdCB0b29sdGlwQ29udGFpbmVyID0gdGhpcy5jb250ZW50KCd0b29sdGlw
LWNvbnRhaW5lcicpOworICAgICAgICB0b29sdGlwQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIo
J21vdXNlZW50ZXInLCAoKSA9PiB7CisgICAgICAgICAgICB0aGlzLl9ob3ZlcmluZ1Rvb2x0aXAg
PSB0cnVlOworICAgICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgfSk7
CisgICAgICAgIHRvb2x0aXBDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScs
ICgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2hvdmVyaW5nVG9vbHRpcCA9IGZhbHNlOworICAg
ICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAg
ICAgbmFtZSgpIHsgcmV0dXJuICdUZXN0LUZyZXNobmVzcyc7IH0KIAogICAgIF9sb2FkQ29uZmln
KHN1bW1hcnlQYWdlQ29uZmlndXJhdGlvbikKQEAgLTU1LDYgKzcyLDcgQEAgY2xhc3MgVGVzdEZy
ZXNobmVzc1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgIHsKICAgICAgICAgdGhp
cy5fbWVhc3VyZW1lbnRTZXRGZXRjaFRpbWUgPSBEYXRlLm5vdygpOwogICAgICAgICB0aGlzLl9s
YXN0RGF0YVBvaW50QnlDb25maWd1cmF0aW9uID0gbmV3IE1hcDsKKyAgICAgICAgdGhpcy5fYnVp
bGRlckJ5SW5kaWNhdG9yID0gbmV3IE1hcDsKIAogICAgICAgICBjb25zdCBzdGFydFRpbWUgPSB0
aGlzLl9tZWFzdXJlbWVudFNldEZldGNoVGltZSAtIHRoaXMuX3RpbWVEdXJhdGlvbjsKIApAQCAt
NzEsMTAgKzg5LDE3IEBAIGNsYXNzIFRlc3RGcmVzaG5lc3NQYWdlIGV4dGVuZHMgUGFnZVdpdGhI
ZWFkaW5nIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFRpbWVTZXJpZXMgPSBt
ZWFzdXJlbWVudFNldC5mZXRjaGVkVGltZVNlcmllcygnY3VycmVudCcsIGZhbHNlLCBmYWxzZSk7
CiAKICAgICAgICAgICAgICAgICAgICAgbGV0IHRpbWVGb3JMYXN0RGF0YVBvaW50ID0gc3RhcnRU
aW1lOwotICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFRpbWVTZXJpZXMubGFzdFBvaW50
KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aW1lRm9yTGFzdERhdGFQb2ludCA9IGN1cnJl
bnRUaW1lU2VyaWVzLmxhc3RQb2ludCgpLmJ1aWxkKCkuYnVpbGRUaW1lKCk7CisgICAgICAgICAg
ICAgICAgICAgIGxldCBsYXN0QnVpbGRMaW5rID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAg
bGV0IGJ1aWxkZXIgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0UG9pbnQg
PSBjdXJyZW50VGltZVNlcmllcy5sYXN0UG9pbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGxhc3RQb2ludCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGltZUZvckxhc3REYXRhUG9p
bnQgPSBsYXN0UG9pbnQuYnVpbGQoKS5idWlsZFRpbWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxhc3RCdWlsZExpbmsgPSBsYXN0UG9pbnQuYnVpbGQoKS51cmwoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJ1aWxkZXIgPSBsYXN0UG9pbnQuYnVpbGQoKS5idWlsZGVyKCk7CisgICAg
ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBsYXN0RGF0YVBvaW50QnlN
ZXRyaWMuc2V0KG1ldHJpYywge3RpbWU6IHRpbWVGb3JMYXN0RGF0YVBvaW50LCBoYXNDdXJyZW50
RGF0YVBvaW50OiAhIWN1cnJlbnRUaW1lU2VyaWVzLmxhc3RQb2ludCgpfSk7CisgICAgICAgICAg
ICAgICAgICAgIGxhc3REYXRhUG9pbnRCeU1ldHJpYy5zZXQobWV0cmljLCB7dGltZTogdGltZUZv
ckxhc3REYXRhUG9pbnQsIGhhc0N1cnJlbnREYXRhUG9pbnQ6ICEhY3VycmVudFRpbWVTZXJpZXMu
bGFzdFBvaW50KCksCisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0QnVpbGRMaW5rLCBidWls
ZGVyfSk7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7CiAgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CkBAIC04NywyMCArMTEyLDUzIEBAIGNsYXNz
IFRlc3RGcmVzaG5lc3NQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKIAogICAgICAgICB0
aGlzLl9yZW5kZXJUYWJsZUxhemlseS5ldmFsdWF0ZSh0aGlzLl9wbGF0Zm9ybXMsIHRoaXMuX21l
dHJpY3MpOwogCisgICAgICAgIGxldCBidWlsZFN1bW1hcnlGb3JIb3ZlcmluZ0luZGljYXRvciA9
IG51bGw7CisgICAgICAgIGxldCBidWlsZExpbmtGb3JIb3ZlcmluZ0luZGljYXRvciA9IG51bGw7
CisgICAgICAgIGNvbnN0IGJ1aWxkZXJGb3JIb3ZlcmluZ0luZGljYXRvciA9IHRoaXMuX2hvdmVy
aW5nSW5kaWNhdG9yID8gdGhpcy5fYnVpbGRlckJ5SW5kaWNhdG9yLmdldCh0aGlzLl9ob3Zlcmlu
Z0luZGljYXRvcikgOiBudWxsOwogICAgICAgICBmb3IgKGNvbnN0IFtwbGF0Zm9ybSwgbGFzdERh
dGFQb2ludEJ5TWV0cmljXSBvZiB0aGlzLl9sYXN0RGF0YVBvaW50QnlDb25maWd1cmF0aW9uLmVu
dHJpZXMoKSkgewogICAgICAgICAgICAgZm9yIChjb25zdCBbbWV0cmljLCBsYXN0RGF0YVBvaW50
XSBvZiBsYXN0RGF0YVBvaW50QnlNZXRyaWMuZW50cmllcygpKSB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgdGltZUR1cmF0aW9uID0gdGhpcy5fbWVhc3VyZW1lbnRTZXRGZXRjaFRpbWUgLSBsYXN0
RGF0YVBvaW50LnRpbWU7CiAgICAgICAgICAgICAgICAgY29uc3QgdGltZUR1cmF0aW9uU3VtbWFy
eVByZWZpeCA9IGxhc3REYXRhUG9pbnQuaGFzQ3VycmVudERhdGFQb2ludCA/ICcnIDogJ01vcmUg
dGhhbiAnOwogICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVEdXJhdGlvblN1bW1hcnkgPSBCdWls
ZFJlcXVlc3QuZm9ybWF0VGltZUludGVydmFsKHRpbWVEdXJhdGlvbik7Ci0gICAgICAgICAgICAg
ICAgY29uc3QgdGVzdExhYmVsID0gYCIke21ldHJpYy50ZXN0KCkuZnVsbE5hbWUoKX0iIGZvciAi
JHtwbGF0Zm9ybS5uYW1lKCl9ImA7Ci0gICAgICAgICAgICAgICAgY29uc3Qgc3VtbWFyeSA9IGAk
e3RpbWVEdXJhdGlvblN1bW1hcnlQcmVmaXh9JHt0aW1lRHVyYXRpb25TdW1tYXJ5fSBzaW5jZSBs
YXN0IGRhdGEgcG9pbnQgb24gJHt0ZXN0TGFiZWx9YDsKKyAgICAgICAgICAgICAgICBjb25zdCBz
dW1tYXJ5ID0gYCR7dGltZUR1cmF0aW9uU3VtbWFyeVByZWZpeH0ke3RpbWVEdXJhdGlvblN1bW1h
cnl9IHNpbmNlIGxhdGVzdCBkYXRhIHBvaW50LmA7CiAgICAgICAgICAgICAgICAgY29uc3QgdXJs
ID0gdGhpcy5fcm91dGVyLnVybCgnY2hhcnRzJywgQ2hhcnRzUGFnZS5jcmVhdGVTdGF0ZUZvckRh
c2hib2FyZEl0ZW0ocGxhdGZvcm0uaWQoKSwgbWV0cmljLmlkKCksCiAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX21lYXN1cmVtZW50U2V0RmV0Y2hUaW1lIC0gdGhpcy5fdGltZUR1cmF0aW9uKSk7
CiAKICAgICAgICAgICAgICAgICBjb25zdCBpbmRpY2F0b3IgPSB0aGlzLl9pbmRpY2F0b3JCeUNv
bmZpZ3VyYXRpb24uZ2V0KHBsYXRmb3JtKS5nZXQobWV0cmljKTsKLSAgICAgICAgICAgICAgICBp
bmRpY2F0b3IudXBkYXRlKHRpbWVEdXJhdGlvbiwgdGhpcy5fdGVzdEFnZVRvbGVyYW5jZSwgc3Vt
bWFyeSwgdXJsKTsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5faG92ZXJpbmdJbmRpY2F0b3Ig
JiYgdGhpcy5faG92ZXJpbmdJbmRpY2F0b3IgPT09IGluZGljYXRvcikgeworICAgICAgICAgICAg
ICAgICAgICBidWlsZFN1bW1hcnlGb3JIb3ZlcmluZ0luZGljYXRvciA9IHN1bW1hcnk7CisgICAg
ICAgICAgICAgICAgICAgIGJ1aWxkTGlua0ZvckhvdmVyaW5nSW5kaWNhdG9yID0gbGFzdERhdGFQ
b2ludC5sYXN0QnVpbGRMaW5rOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0
aGlzLl9idWlsZGVyQnlJbmRpY2F0b3Iuc2V0KGluZGljYXRvciwgbGFzdERhdGFQb2ludC5idWls
ZGVyKTsKKyAgICAgICAgICAgICAgICBpbmRpY2F0b3IudXBkYXRlKHRpbWVEdXJhdGlvbiwgdGhp
cy5fdGVzdEFnZVRvbGVyYW5jZSwgdXJsLCBidWlsZGVyRm9ySG92ZXJpbmdJbmRpY2F0b3IgJiYg
YnVpbGRlckZvckhvdmVyaW5nSW5kaWNhdG9yID09PSBsYXN0RGF0YVBvaW50LmJ1aWxkZXIpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CisgICAgICAgIHRoaXMuX3JlbmRlclRvb2x0aXBMYXpp
bHkuZXZhbHVhdGUodGhpcy5faG92ZXJpbmdJbmRpY2F0b3IsIHRoaXMuX2hvdmVyaW5nVG9vbHRp
cCwgYnVpbGRTdW1tYXJ5Rm9ySG92ZXJpbmdJbmRpY2F0b3IsIGJ1aWxkTGlua0ZvckhvdmVyaW5n
SW5kaWNhdG9yKTsKKyAgICB9CisKKyAgICBfcmVuZGVyVG9vbHRpcChpbmRpY2F0b3IsIGhvdmVy
aW5nVG9vbHRpcCwgYnVpbGRTdW1tYXJ5LCBidWlsZExpbmspCisgICAgeworICAgICAgICBpZiAo
IWluZGljYXRvcikgeworICAgICAgICAgICAgdGhpcy5jb250ZW50KCd0b29sdGlwLWNvbnRhaW5l
cicpLnN0eWxlLmRpc3BsYXkgPSBob3ZlcmluZ1Rvb2x0aXAgPyBudWxsIDogJ25vbmUnOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IENv
bXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudDsKKworICAgICAgICBjb25zdCBwaXhlbHNQZXJSRU0g
PSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZm9u
dFNpemUpOworICAgICAgICBjb25zdCByZWN0ID0gaW5kaWNhdG9yLmVsZW1lbnQoKS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgY29uc3QgY29udGFpbmVyUGFkZGluZyA9IDAuMzsK
KyAgICAgICAgY29uc3QgY29udGFpbmVyTWFyZ2luID0gMC4zOworICAgICAgICBjb25zdCBjb250
YWluZXJIZWlnaHQgPSAyOworICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IDE5OworICAg
ICAgICBjb25zdCBjZWxsTWFyZ2luID0gMC4yOworICAgICAgICBjb25zdCB0b29sdGlwQ29udGFp
bmVyID0gdGhpcy5jb250ZW50KCd0b29sdGlwLWNvbnRhaW5lcicpOworICAgICAgICB0b29sdGlw
Q29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSBudWxsOworICAgICAgICB0b29sdGlwQ29udGFpbmVy
LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKKyAgICAgICAgdG9vbHRpcENvbnRhaW5lci5z
dHlsZS50b3AgPSByZWN0LnRvcCAtIChjb250YWluZXJIZWlnaHQgKyBjb250YWluZXJQYWRkaW5n
ICogMiArIGNvbnRhaW5lck1hcmdpbiAqIDIgLSBjZWxsTWFyZ2luKSAqIHBpeGVsc1BlclJFTSAg
KyAncHgnOworICAgICAgICB0b29sdGlwQ29udGFpbmVyLnN0eWxlLmxlZnQgPSByZWN0LmxlZnQg
KyByZWN0LndpZHRoIC8gMiAtIGNvbnRhaW5lcldpZHRoIC8gMiAqIHBpeGVsc1BlclJFTSArIGNv
bnRhaW5lclBhZGRpbmcgKyAgY29udGFpbmVyTWFyZ2luICsgJ3B4JzsKKworICAgICAgICB0aGlz
LnJlbmRlclJlcGxhY2UodG9vbHRpcENvbnRhaW5lciwgW2VsZW1lbnQoJ3AnLCBidWlsZFN1bW1h
cnkpLCBlbGVtZW50KCdhJywge2hyZWY6IGJ1aWxkTGlua30sICdMYXRlc3QgQnVpbGQnKV0pOwog
ICAgIH0KIAogICAgIF9yZW5kZXJUYWJsZShwbGF0Zm9ybXMsIG1ldHJpY3MpCkBAIC0xMzgsMTMg
KzE5NiwyMSBAQCBjbGFzcyBUZXN0RnJlc2huZXNzUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGlu
ZyB7CiAgICAgICAgICAgICByZXR1cm4gZWxlbWVudCgndGQnLCB7Y2xhc3M6ICdibGFuay1jZWxs
J30sIGVsZW1lbnQoJ2RpdicpKTsKIAogICAgICAgICBjb25zdCBpbmRpY2F0b3IgPSBuZXcgRnJl
c2huZXNzSW5kaWNhdG9yOworICAgICAgICBpbmRpY2F0b3IubGlzdGVuVG9BY3Rpb24oJ21vdXNl
RW50ZXJJbmRpY2F0b3InLCAob3JpZ2luYXRvcikgPT4geworICAgICAgICAgICAgdGhpcy5faG92
ZXJpbmdJbmRpY2F0b3IgPSBvcmlnaW5hdG9yOworICAgICAgICAgICAgdGhpcy5lbnF1ZXVlVG9S
ZW5kZXIoKTsKKyAgICAgICAgfSk7CisgICAgICAgIGluZGljYXRvci5saXN0ZW5Ub0FjdGlvbign
bW91c2VMZWF2ZUluZGljYXRvcicsICgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2hvdmVyaW5n
SW5kaWNhdG9yID0gbnVsbDsKKyAgICAgICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7Cisg
ICAgICAgIH0pOwogICAgICAgICBpbmRpY2F0b3JCeU1ldHJpYy5zZXQobWV0cmljLCBpbmRpY2F0
b3IpOwogICAgICAgICByZXR1cm4gZWxlbWVudCgndGQnLCB7Y2xhc3M6ICdzdGF0dXMtY2VsbCd9
LCBpbmRpY2F0b3IpOwogICAgIH0KIAogICAgIHN0YXRpYyBodG1sVGVtcGxhdGUoKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGA8c2VjdGlvbiBjbGFzcz0icGFnZS13aXRoLWhlYWRpbmciPjx0YWJs
ZSBpZD0idGVzdC1oZWFsdGgiPjwvdGFibGU+PC9zZWN0aW9uPmA7CisgICAgICAgIHJldHVybiBg
PHNlY3Rpb24gY2xhc3M9InBhZ2Utd2l0aC1oZWFkaW5nIj48ZGl2IGlkPSJ0b29sdGlwLWNvbnRh
aW5lciI+PC9kaXY+PHRhYmxlIGlkPSJ0ZXN0LWhlYWx0aCI+PC90YWJsZT48L3NlY3Rpb24+YDsK
ICAgICB9CiAKICAgICBzdGF0aWMgY3NzVGVtcGxhdGUoKQpAQCAtMTg2LDcgKzI1Miw3IEBAIGNs
YXNzIFRlc3RGcmVzaG5lc3NQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAgICAg
ICAgICN0ZXN0LWhlYWx0aCB0Ym9keSB7CiAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7
CiAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87Ci0gICAgICAgICAgICAgICAgaGVpZ2h0
OiA3NXZoOworICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDI0cmVtKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICN0ZXN0LWhlYWx0aCB0ZC5zdGF0dXMtY2VsbCB7CiAg
ICAgICAgICAgICAgICAgbWFyZ2luOiAwOwpAQCAtMjE0LDI2ICsyODAsNTUgQEAgY2xhc3MgVGVz
dEZyZXNobmVzc1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgICAgICAgICAgICAg
IG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAjdGVzdC1oZWFs
dGggdGQuYmxhbmstY2VsbCA+IGRpdjo6YmVmb3JlIHsKLSAgICAgICAgICAgICAgY29udGVudDog
IiI7Ci0gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgICAgICAgdG9w
OiAtMXB4OwotICAgICAgICAgICAgICBsZWZ0OiAtMXB4OwotICAgICAgICAgICAgICBkaXNwbGF5
OiBibG9jazsKLSAgICAgICAgICAgICAgd2lkdGg6IDBweDsKLSAgICAgICAgICAgICAgaGVpZ2h0
OiAwcHg7Ci0gICAgICAgICAgICAgIGJvcmRlci1yaWdodDogY2FsYygxLjZyZW0gKyAxcHgpIHNv
bGlkICNkZGQ7Ci0gICAgICAgICAgICAgIGJvcmRlci10b3A6IGNhbGMoMS42cmVtICsgMXB4KSBz
b2xpZCB0cmFuc3BhcmVudDsKKyAgICAgICAgICAgICAgICBjb250ZW50OiAiIjsKKyAgICAgICAg
ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICAgICAgdG9wOiAtMXB4Owor
ICAgICAgICAgICAgICAgIGxlZnQ6IC0xcHg7CisgICAgICAgICAgICAgICAgZGlzcGxheTogYmxv
Y2s7CisgICAgICAgICAgICAgICAgd2lkdGg6IDBweDsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6
IDBweDsKKyAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IGNhbGMoMS42cmVtICsgMXB4KSBz
b2xpZCAjZGRkOworICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IGNhbGMoMS42cmVtICsgMXB4
KSBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgICN0ZXN0LWhl
YWx0aCB0ZC5ibGFuay1jZWxsID4gZGl2OjphZnRlciB7Ci0gICAgICAgICAgICAgIGNvbnRlbnQ6
ICIiOwotICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgICAgICAgICAgcG9zaXRp
b246IGFic29sdXRlOwotICAgICAgICAgICAgICB0b3A6IDFweDsKLSAgICAgICAgICAgICAgbGVm
dDogMXB4OwotICAgICAgICAgICAgICB3aWR0aDogMHB4OwotICAgICAgICAgICAgICBoZWlnaHQ6
IDBweDsKLSAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBjYWxjKDEuNnJlbSAtIDFweCkgc29s
aWQgI0Y5RjlGOTsKLSAgICAgICAgICAgICAgYm9yZGVyLXRvcDogY2FsYygxLjZyZW0gLSAxcHgp
IHNvbGlkIHRyYW5zcGFyZW50OworICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICIiOworICAgICAg
ICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgICAgICAgICAgICB0b3A6IDFweDsKKyAgICAgICAgICAgICAgICBsZWZ0OiAx
cHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDBweDsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6
IDBweDsKKyAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IGNhbGMoMS42cmVtIC0gMXB4KSBz
b2xpZCAjRjlGOUY5OworICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IGNhbGMoMS42cmVtIC0g
MXB4KSBzb2xpZCB0cmFuc3BhcmVudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICN0b29s
dGlwLWNvbnRhaW5lciB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDE5cmVtOworICAgICAgICAg
ICAgICAgIGhlaWdodDogMnJlbTsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj
MzQ0OTVFOworICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuOTsKKyAgICAgICAgICAgICAgICBt
YXJnaW46IDAuM3JlbTsKKyAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjNyZW07CisgICAgICAg
ICAgICAgICAgYm9yZGVyLXJhZGl1czogMC40cmVtOworICAgICAgICAgICAgICAgIHotaW5kZXg6
IDE7CisgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgI3Rvb2x0aXAtY29udGFpbmVyOjphZnRlciB7CisgICAgICAgICAgICAgICAg
Y29udGVudDogIiAiOworICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAg
ICAgICAgICAgICB0b3A6IDEwMCU7CisgICAgICAgICAgICAgICAgbGVmdDogNTAlOworICAgICAg
ICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTsKKyAgICAgICAgICAgICAgICBib3JkZXItd2lk
dGg6IDAuMnJlbTsKKyAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkOworICAgICAg
ICAgICAgICAgIGJvcmRlci1jb2xvcjogIzM0NDk1RSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0
cmFuc3BhcmVudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICN0b29sdGlwLWNvbnRhaW5l
ciBwIHsKKyAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7CisgICAgICAgICAgICAgICAgbWFy
Z2luOiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgI3Rvb2x0aXAtY29udGFpbmVyIGEg
eworICAgICAgICAgICAgICAgIGNvbG9yOiAjQjAzQTJFOworICAgICAgICAgICAgICAgIGZvbnQt
d2VpZ2h0OiBib2xkOwogICAgICAgICAgICAgfQogICAgICAgICBgOwogICAgIH0K
</data>
<flag name="review"
          id="380398"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>